Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mcs
diff options
context:
space:
mode:
authordotnet-bot <dotnet-bot@microsoft.com>2015-10-16 00:43:47 +0300
committerMarek Safar <marek.safar@gmail.com>2016-05-03 12:32:33 +0300
commit8f2487b3ce2817d0d9013981272b876371222f64 (patch)
tree6d69f0f6b4778b89b2307a2c045200f2377ececa /mcs
parent5f82524097130bf3e29844adcb47d1695bb14c6b (diff)
Update Reference Sources to .NET Framework 4.6
Diffstat (limited to 'mcs')
-rw-r--r--mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/EventLogCategory.cs6
-rw-r--r--mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/EventLogEventId.cs4
-rw-r--r--mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/NativeMethods.cs2
-rw-r--r--mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/TraceSourceKind.cs2
-rw-r--r--mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/Utility.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.DurableInstancing/AssemblyInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/InstanceCompletionAction.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/InstanceEncodingOption.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/LoadType.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/PrimitiveType.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/SqlCommandAsyncResult.cs4
-rw-r--r--mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/SuspensionStateChange.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/Microsoft.Tools.Common/Microsoft/Activities/Presentation/Xaml/XamlTypeKind.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/Microsoft.Tools.Common/Microsoft/Activities/Presentation/Xaml/XamlWriterExtensions.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Annotations/AdornerLocation.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Annotations/IDockedAnnotation.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Annotations/NotifyArgumentVariableAnnotationTextChanged.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/CategoryList.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/EditModeSwitchButtonKeyboardFix.cs30
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/Editors/EditorUtilities.cs18
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/ExtensibilityAccessor.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/Controls/WorkaroundPopup.cs16
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/CategoryContainer.xaml.cs16
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/CategoryContainerCommands.cs40
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/ExtensibilityMetadataHelper.cs113
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/PropertyContainerPopupHelper.cs74
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/ValueEditors/ChoiceEditor.cs10
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/PropertyValueDialogHost.cs4
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/VisualTreeUtils.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Metadata/MetadataStore.cs22
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/PropertyEditing/EditModeSwitchButton.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/PropertyEditing/PropertyMarker.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/CachedResourceDictionaryExtension.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/AutoConnectDirections.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/AutoSplitAlignment.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/INestedFreeFormPanelContainer.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/RequiredSizeChangedEventHandler.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Hosting/WindowHelperService.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Model/ModelItemDictionaryImpl.cs4
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Model/ModelPropertyImpl.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Toolbox/IActivityTemplateFactory.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Validation/ValidationReason.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Validation/ValidationState.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/ArgumentDesigner.xaml.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/DataGridHelper.cs6
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/ExpressionTextBox.xaml.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/IVersionEditor.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/VBIdentifierName.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/VariableDesigner.xaml.cs4
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/ViewStateService.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/WorkflowItemPresenter.cs12
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Xaml/ErrorTolerantObjectWriter.cs2
-rw-r--r--mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Xaml/ObjectToSourceLocationMapping.cs2
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/ActivityInstance.cs2
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/ActivityInstanceState.cs24
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/AssemblyInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/Debugger/ICharacterSpottingTextReaderForUnitTest.cs2
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/Debugger/StateManager.cs26
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/Expressions/ILocationReferenceExpression.cs2
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/Hosting/IWorkflowInstanceExtension.cs2
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/Runtime/ActivityExecutor.cs113
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/Runtime/ActivityInstanceMap.cs2
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/Statements/MethodExecutor.cs4
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/Statements/MethodResolver.cs2
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/Tracking/ActivityStates.cs2
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/Tracking/ImplementationVisibility.cs2
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/WorkflowApplication.cs6
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/WorkflowPersistenceContext.cs2
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/XamlIntegration/ActivityWithResultConverter.cs2
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/XamlIntegration/DynamicActivityXamlReader.cs4
-rw-r--r--mcs/class/referencesource/System.Activities/System/Activities/XamlIntegration/XamlWriterExtensions.cs2
-rw-r--r--mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/CreditCardAttribute.cs5
-rw-r--r--mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/EmailAddressAttribute.cs5
-rw-r--r--mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/FileExtensionsAttribute.cs5
-rw-r--r--mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/IValidatableObject.cs2
-rw-r--r--mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/MetadataPropertyDescriptorWrapper.cs6
-rw-r--r--mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/PhoneAttribute.cs5
-rw-r--r--mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/Schema/ComplexTypeAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/Schema/DatabaseGeneratedOption.cs2
-rw-r--r--mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/Schema/NotMappedAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/UrlAttribute.cs5
-rw-r--r--mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/ValidationAttribute.cs108
-rw-r--r--mcs/class/referencesource/System.ComponentModel.DataAnnotations/Properties/AssemblyInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Configuration/System/Configuration/BaseConfigurationRecord.cs22
-rw-r--r--mcs/class/referencesource/System.Configuration/System/Configuration/DateTimeConfigurationCollection.cs2
-rw-r--r--mcs/class/referencesource/System.Configuration/System/Configuration/DateTimeConfigurationElement.cs2
-rw-r--r--mcs/class/referencesource/System.Configuration/System/Configuration/FipsAwareEncryptedXml.cs75
-rw-r--r--mcs/class/referencesource/System.Configuration/System/Configuration/Internal/InternalConfigHost.cs2
-rw-r--r--mcs/class/referencesource/System.Configuration/System/Configuration/MgmtConfigurationRecord.cs6
-rw-r--r--mcs/class/referencesource/System.Configuration/System/Configuration/RSAProtectedConfigurationProvider.cs69
-rw-r--r--mcs/class/referencesource/System.Configuration/System/Configuration/TypeUtil.cs13
-rw-r--r--mcs/class/referencesource/System.Core/BaselineExcludes.lst.cs2124
-rw-r--r--mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/DynamicExpression.cs13
-rw-r--r--mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/IArgumentProvider.cs2
-rw-r--r--mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/IDynamicExpression.cs49
-rw-r--r--mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/TypeBinaryExpression.cs8
-rw-r--r--mcs/class/referencesource/System.Core/Microsoft/Scripting/Compiler/AssemblyGen.cs6
-rw-r--r--mcs/class/referencesource/System.Core/Microsoft/Scripting/Compiler/LambdaCompiler.Unary.cs12
-rw-r--r--mcs/class/referencesource/System.Core/Microsoft/Scripting/Stubs.cs2
-rw-r--r--mcs/class/referencesource/System.Core/Microsoft/Win32/SafeHandles/CapiSafeHandles.cs91
-rw-r--r--mcs/class/referencesource/System.Core/Microsoft/Win32/SafeHandles/NCryptSafeHandles.cs2
-rw-r--r--mcs/class/referencesource/System.Core/Microsoft/Win32/UnsafeNativeMethods.cs27
-rw-r--r--mcs/class/referencesource/System.Core/System.Core.CLR.lst.cs1930
-rw-r--r--mcs/class/referencesource/System.Core/System.Core.dll.Triaged.lst.cs190
-rw-r--r--mcs/class/referencesource/System.Core/System/Collections/Generic/HashSet.cs12
-rw-r--r--mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/EventDescriptor.cs4
-rw-r--r--mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/EventProvider.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventLogSession.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventMetadata.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventOpcode.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventRecord.cs4
-rw-r--r--mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/ProviderMetadata.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/Winmeta.cs4
-rw-r--r--mcs/class/referencesource/System.Core/System/FuncAndAction.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/IO/BufferedStream2.cs4
-rw-r--r--mcs/class/referencesource/System.Core/System/IO/Enums.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/IO/LogStream.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedFile.cs18
-rw-r--r--mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedView.cs34
-rw-r--r--mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedViewAccessor.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedViewStream.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/IO/Pipes/IOCancellationHelper.cs99
-rw-r--r--mcs/class/referencesource/System.Core/System/IO/Pipes/Pipe.cs164
-rw-r--r--mcs/class/referencesource/System.Core/System/IO/Pipes/PipeStream.cs6
-rw-r--r--mcs/class/referencesource/System.Core/System/IO/__Error.cs3
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Enumerable.cs18
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/IQueryable.cs370
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Channels/AsynchronousChannel.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Channels/SynchronousChannel.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/AggregationMinMaxHelpers.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/EmptyEnumerable.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/EnumerableWrapperWeakToStrong.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/IParallelPartitionable.cs4
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/OrderedParallelQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/ParallelEnumerableWrapper.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/ParallelQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/QueryAggregationOptions.cs4
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/RangeEnumerable.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/RepeatEnumerable.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/ArrayMergeHelper.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/AsynchronousChannelMergeEnumerator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/DefaultMergeHelper.cs4
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/IMergeHelper.cs4
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/MergeEnumerator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/MergeExecutor.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/OrderPreservingMergeHelper.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/OrderPreservingPipeliningMergeHelper.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/SynchronousChannelMergeEnumerator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/HashRepartitionEnumerator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/HashRepartitionStream.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/IPartitionedStreamRecipient.cs4
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/OrderedHashRepartitionEnumerator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/OrderedHashRepartitionStream.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/PartitionedDataSource.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/PartitionedStream.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/UnorderedHashRepartitionStream.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/AssociativeAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/ExceptQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/GroupJoinQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/HashJoinQueryOperatorEnumerator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/IntersectQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/JoinQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/UnionQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/ZipQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/BinaryQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/CountAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DecimalAverageAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DecimalMinMaxAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DecimalSumAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DoubleAverageAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DoubleMinMaxAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DoubleSumAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/FloatAverageAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/FloatMinMaxAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/FloatSumAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/InlinedAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/InlinedAggregationOperatorEnumerator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/IntAverageAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/IntMinMaxAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/IntSumAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongAverageAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongCountAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongMinMaxAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongSumAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDecimalAverageAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDecimalMinMaxAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDecimalSumAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDoubleAverageAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDoubleMinMaxAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDoubleSumAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableFloatAverageAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableFloatMinMaxAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableFloatSumAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableIntAverageAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableIntMinMaxAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableIntSumAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableLongAverageAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableLongMinMaxAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableLongSumAggregationOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/ListQueryResults.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Options/OrderingQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Options/QueryExecutionOption.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/OrdinalIndexState.cs4
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/PartitionedStreamMerger.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/PartitionerQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryOpeningEnumerator.cs4
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryOperatorEnumerator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryResults.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QuerySettings.cs6
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/ScanQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/AnyAllSearchOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ConcatQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ContainsSearchOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/DefaultIfEmptyQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/DistinctQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ElementAtQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/FirstQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ForAllOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/GroupByQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/IndexedSelectQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/IndexedWhereQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/LastQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ReverseQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SelectManyQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SelectQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SingleQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SortQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/TakeOrSkipQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/TakeOrSkipWhileQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/WhereQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/UnaryQueryOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/CancellationState.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/OrderPreservingPipeliningSpoolingTask.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/OrderPreservingSpoolingTask.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/QueryLifecycle.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/QueryTask.cs4
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/QueryTaskGroupState.cs10
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/Scheduling.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/SpoolingTask.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/SpoolingTaskBase.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/CancellableEnumerable.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ExceptionAggregator.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ExchangeUtilities.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/FixedMaxHeap.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/GrowingArray.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/HashLookup.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ListChunk.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Lookup.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/PLINQETWProvider.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Pair.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/PairComparer.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ReverseComparer.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Shared.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Sorting.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/TraceHelpers.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Util.cs14
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Wrapper.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/WrapperEqualityComparer.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/ParallelEnumerable.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/ParallelExecutionMode.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/ParallelMergeOptions.cs4
-rw-r--r--mcs/class/referencesource/System.Core/System/Linq/SequenceQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Runtime/InteropServices/ComAwareEventInfo.cs10
-rw-r--r--mcs/class/referencesource/System.Core/System/Security/Cryptography/Aes.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Security/Cryptography/AesCryptoServiceProvider.cs23
-rw-r--r--mcs/class/referencesource/System.Core/System/Security/Cryptography/BCryptNative.cs75
-rw-r--r--mcs/class/referencesource/System.Core/System/Security/Cryptography/CapiNative.cs392
-rw-r--r--mcs/class/referencesource/System.Core/System/Security/Cryptography/CapiSymmetricAlgorithm.cs3
-rw-r--r--mcs/class/referencesource/System.Core/System/Security/Cryptography/CngAlgorithm.cs13
-rw-r--r--mcs/class/referencesource/System.Core/System/Security/Cryptography/CngKey.cs17
-rw-r--r--mcs/class/referencesource/System.Core/System/Security/Cryptography/ECKeyXmlFormat.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/Security/Cryptography/NCryptNative.cs465
-rw-r--r--mcs/class/referencesource/System.Core/System/Security/Cryptography/RsaCng.cs508
-rw-r--r--mcs/class/referencesource/System.Core/System/Security/Cryptography/SignatureVerificationResult.cs4
-rw-r--r--mcs/class/referencesource/System.Core/System/Security/Cryptography/X509Certificates/RSACertificateExtensions.cs123
-rw-r--r--mcs/class/referencesource/System.Core/System/Security/Cryptography/X509Certificates/X509Native.cs230
-rw-r--r--mcs/class/referencesource/System.Core/System/Security/ManifestKinds.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/threading/ReaderWriterLockSlim/LockRecursionException.cs2
-rw-r--r--mcs/class/referencesource/System.Core/System/threading/Tasks/TaskExtensions.cs2
-rw-r--r--mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataRowComparer.cs2
-rw-r--r--mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataRowExtensions.cs2
-rw-r--r--mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataSetUtil.cs4
-rw-r--r--mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataTableExtensions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/EnumerableRowCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/EnumerableRowCollectionExtensions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/LinqDataView.cs4
-rw-r--r--mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/OrderedEnumerableRowCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/ShippingAssemblyAttribute.cs6
-rw-r--r--mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/SortExpressionBuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/TypedTableBase.cs2
-rw-r--r--mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/TypedTableBaseExtensions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/BuildProviderUtils.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/EntityDesignerBuildProvider.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/EntityModelBuildProvider.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/MappingModelBuildProvider.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/StorageModelBuildProvider.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/EDesignUtil.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/MetadataItemSerializer.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/MetadataUtil.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/OneToOneMappingSerializer.cs34
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/UniqueIdentifierService.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/DesignXmlConstants.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityCodeGenerator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityDesignerUtils.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityFrameworkVersions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityModelSchemaGenerator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaFilterEffect.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaFilterEntry.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaFilterObjectTypes.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator/EntityStoreSchemaGenerator.DbObjectKey.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator/EntityStoreSchemaGenerator.EntityCreationStatus.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator/EntityStoreSchemaGenerator.LoadMethodSessionState.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityViewGeneration/EntityViewGenerationConstants.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityViewGeneration/EntityViewGenerator.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/MetadataExtensionMethods.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/MetadataItemCollectionFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/BidirectionalDictionary.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/EnglishPluralizationService.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/EntityDesignPluralizationHandler.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/ICustomPluralizationMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/PluralizationServiceUtil.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/EntityStoreSchemaGeneratorDatabaseSchemaLoader.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/FunctionDetailsReader.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/ModelBuilderErrorCodes.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/RelationshipDetailsCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/RelationshipDetailsRow.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/TableDetailsCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/TableDetailsRow.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/EdmToObjectNamespaceMap.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/AssociationTypeEmitter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/AttributeEmitter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/ClientApiGenerator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/CommentEmitter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/ComplexTypeEmitter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/Emitter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/EntityContainerEmitter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/EntityTypeEmitter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/FixUp.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/FixUpCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/FixUpType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/MetadataItemEmitter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/NamespaceEmitter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/NavigationPropertyEmitter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/PrivateMemberPrefixId.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/PropertyEmitter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/PropertyEmitterBase.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/SchemaTypeEmitter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/StructuredTypeEmitter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/TypeReference.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/Utils.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/EntityClassGenerator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/LanguageOption.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/LazyTextWriterCreator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/PropertyGeneratedEventArgs.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/TerminalErrorException.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/TypeGeneratedEventArgs.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/AbstractExpressions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Aggregates.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/BasicCommandTreeVisitor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/BasicExpressionVisitor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbCommandTree.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbDeleteCommandTree.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbExpressionVisitor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbExpressionVisitor_TResultType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbFunctionCommandTree.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbInsertCommandTree.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbLambda.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbModificationClause.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbModificationCommandTree.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbQueryCommandTree.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbSetClause.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbUpdateCommandTree.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DefaultExpressionVisitor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBindings.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/DbExpressionBuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/EdmFunctions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Internal/ArgumentValidation.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Internal/EnumerableValidator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Row.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Spatial/SpatialEdmFunctions.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/DbExpressionRules.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionCopier.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionDumper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionKeyGen.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionList.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionPrinter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ParameterRetriever.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/PatternMatchRules.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/Validator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ViewSimplifier.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/XmlExpressionDumper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/OperatorExpressions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/RelationalExpressions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ValueExpressions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/DataRecord.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/DataRecordInfo.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbCommandDefinition.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbProviderManifest.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbProviderServices.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbXmlEnabledProviderManifest.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntityRecordInfo.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/AliasedExpr.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/AstNode.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/BuiltInExpr.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/CaseExpr.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/Command.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/ConstructorExpr.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/CreateRefExpr.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/DotExpr.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/FunctionDefinition.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/GroupAggregateExpr.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/GroupPartitionExpr.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/Identifier.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/Literal.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/MethodExpr.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/NamespaceImport.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/NavigationExpr.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/ParenExpr.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/QueryExpr.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/QueryParameter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/QueryStatement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/RefExpr.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/TypeDefinition.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlErrorHelper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlLexer.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlLexerHelpers.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlParser.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlParserHelpers.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlQuery.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/EntitySqlParser.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/FunctionOverloadResolver.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/ParseResult.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/ParserOptions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/SemanticAnalyzer.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/SemanticResolver.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/StaticContext.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/TypeResolver.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntityUtil.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/FieldMetadata.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/FieldNameLookup.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/DbTypeMap.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/ColumnMapKeyBuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/CompensatingCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Coordinator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/CoordinatorFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/CoordinatorScratchpad.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/RecordState.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/RecordStateFactory.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/RecordStateScratchpad.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Shaper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/ShaperFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Translator.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Util.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/MultipartIdentifier.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/CompiledQueryCacheEntry.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/CompiledQueryCacheKey.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/EntityClientCacheKey.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/EntitySqlQueryCacheKey.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/LinqQueryCacheKey.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/QueryCacheEntry.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/QueryCacheKey.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/QueryCacheManager.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/ShaperFactoryQueryCacheKey.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/ShippingAssemblyAttributes.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/AliasGenerator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/BoolExpr.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Clause.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/ConversionContext.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Converter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/DomainConstraint.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/IdentifierService.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/KnowledgeBase.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Literal.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/NegationPusher.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Sentence.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Simplifier.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Solver.cs8
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Vertex.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Visitor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/ByValueEqualityComparer.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/CommandHelper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/DisposableCollectionWrapper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Helpers.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/InternalBase.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/KeyToListMap.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Memoizer.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/MetadataHelper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/ModifiableIteratorCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Pair.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Set.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Singleton.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/StringUtil.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/ThreadSafeList.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/TrailingSpaceComparer.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/TreePrinter.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/DbConnectionOptions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/DbParameterCollectionHelper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/DbParameterHelper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityAdapter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityCommand.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityCommandDefinition.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityConnection.cs20
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityConnectionStringBuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityDataReader.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityParameter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityParameterCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityProviderFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityProviderServices.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityTransaction.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/NameValuePair.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityCommandCompilationException.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityCommandExecutionException.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityException.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityKey.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Action.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/BooleanFacetDescriptionElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ByteFacetDescriptionElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/CollectionKind.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/CollectionTypeElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ConcurrencyMode.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Documentation.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainer.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerAssociationSet.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerAssociationSetEnd.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerEntitySet.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerEntitySetDefiningQuery.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerRelationshipSet.cs34
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerRelationshipSetEnd.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityKeyElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ErrorCode.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FacetDescriptionElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FacetEnabledSchemaElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FilteredSchemaElementLookUpTable.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Function.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FunctionCommandText.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FunctionImportElement.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/IRelationship.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/IRelationshipEnd.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ISchemaElementLookUpTable.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/IntegerFacetDescriptionElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ItemType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/KeyProperty.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ModelFunction.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ModelFunctionTypeElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/NavigationProperty.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/OnOperation.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Operation.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Parameter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/PrimitiveSchema.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Property.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferenceSchema.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferenceTypeElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferentialConstraint.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferentialConstraintRoleElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Relationship.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RelationshipEnd.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RelationshipEndCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReturnType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReturnValue.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RowTypeElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RowTypePropertyElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ScalarType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Schema.cs10
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaComplexType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaDataModelOption.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaElementLookUpTable.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaElementLookUpTableEnumerator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaEnumMember.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaEnumType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaLookupTable.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaManager.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SridFacetDescriptionElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/StoreGeneratedPattern.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/StructuredProperty.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/StructuredType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TextElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeModifier.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeRefElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeUsageBuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Utils.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ValidationHelper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/XmlSchemaResource.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntitySqlException.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/EntityState.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/IEntityAdapter.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/IEntityStateEntry.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/IEntityStateManager.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/IExtendedDataRecord.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/InternalMappingException.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/InvalidCommandTreeException.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/BaseMetadataMappingVisitor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/DefaultObjectMappingItemCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/EntityViewContainer.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/EntityViewGenerationAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMapping.ReturnTypeRenameMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMapping.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMappingComposable.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMappingNonComposable.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Mapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/MappingItemCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/MetadataMappingHasherVisitor.HashSourceBuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/MetadataMappingHasherVisitor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectAssociationEndMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectComplexPropertyMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectMemberMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectMslConstructs.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectNavigationPropertyMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectPropertyMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectTypeMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageAssociationSetMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageAssociationTypeMapping.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageComplexPropertyMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageComplexTypeMapping.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageConditionPropertyMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEndPropertyMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEntityContainerMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEntitySetMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEntityTypeMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingErrorCode.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingFragment.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingItemCollection.ViewDictionary.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingItemCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingItemLoader.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageModificationFunctionMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMslConstructs.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StoragePropertyMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageScalarPropertyMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageSetMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageTypeMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/AssociationSetMetadata.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ChangeNode.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/CompositeKey.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/DynamicUpdateCommand.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ExtractedStateEntry.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ExtractorMetadata.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/FunctionMappingTranslator.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/FunctionUpdateCommand.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Graph.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/KeyManager.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.Evaluator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.ExtentPlaceholderCreator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.JoinPropagator.JoinPredicateVisitor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.JoinPropagator.SubstitutingCloneVisitor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.JoinPropagator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/PropagatorFlags.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/PropagatorResult.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/RecordConverter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/RelationshipConstraintValidator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/SourceInterpreter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/TableChangeProcessor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UndirectedGraph.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateCommand.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateCommandOrderer.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateCompiler.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateExpressionVisitor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateTranslator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ViewLoader.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/BasicViewGenerator.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CellCreator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CellPartitioner.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CellTreeSimplifier.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ConfigViewGenerator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/AliasedSlot.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/BooleanProjectedSlot.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CaseCqlBlock.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CqlBlock.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CqlIdentifiers.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CqlWriter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/ExtentCqlBlock.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/JoinCqlBlock.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/SlotInfo.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/UnionCqlBlock.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGenerator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/DiscriminatorMap.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/GeneratedView.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/FragmentQuery.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/FragmentQueryKB.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/FragmentQueryProcessor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/QueryRewriter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingPass.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingProcessor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingSimplifier.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingValidator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RoleBoolean.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/Tile.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/BoolExpression.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/BoolExpressionVisitors.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/BoolLiteral.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CaseStatement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CaseStatementProjectedSlot.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/Cell.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellIdBoolean.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellLabel.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellQuery.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellTreeNode.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellTreeNodeVisitors.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellTreeOpType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/Constant.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ConstantProjectedSlot.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/Domain.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ErrorLog.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/LeafCellTreeNode.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/LeftCellWrapper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberDomainMap.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberMaps.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberPath.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberProjectedSlot.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberProjectionIndex.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberRestriction.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/NegatedConstant.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/OpCellTreeNode.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ProjectedSlot.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/QualifiedCellIdBoolean.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ScalarConstant.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ScalarRestriction.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/TypeConstant.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/TypeRestriction.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/WithStatement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Utils/ExceptionHelpers.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Utils/ExternalCalls.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Utils/ViewGenErrorCode.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/BasicCellRelation.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/BasicKeyConstraint.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/CellRelation.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ConstraintBase.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ErrorPatternMatcher.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ExtentKey.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ForeignConstraint.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/KeyConstraint.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/SchemaConstraints.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ViewCellRelation.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ViewCellSlot.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ViewKeyConstraint.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewGenResults.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewGenerator.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewgenContext.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewgenGatekeeper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewValidator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/MappingException.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/AspProxy.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/CacheForPrimitiveTypes.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ClrPerspective.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Converter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/CustomAssemblyResolver.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/DataSpace.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/DefaultAssemblyResolver.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationEndMember.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationSet.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationSetEnd.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AttributeKind.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/BuiltInKind.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/CollectionType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ComplexType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Documentation.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmConstants.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmFunction.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmMember.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmProperty.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntityContainer.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntitySet.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntitySetBase.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntitySetBaseCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntityType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntityTypeBase.cs10
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EnumMember.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EnumType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Facet.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FacetDescription.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FacetValueContainer.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FacetValues.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FilteredReadOnlyMetadataCollection.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FunctionParameter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/GlobalItem.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ItemCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/LightweightCodeGenerator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MemberCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataCollection.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataItem.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataItem_Static.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataProperty.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataPropertyAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataPropertyCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataPropertyvalue.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/NavigationProperty.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/NavigationPropertyAccessor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/OperationAction.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ParameterMode.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/PrimitiveType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/PrimitiveTypeKind.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/ClrProviderManifest.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/EdmProviderManifest.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/EdmProviderManifestFunctionBuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/EdmProviderManifestSpatialFunctions.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ReadOnlyMetadataCollection.cs12
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RefType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ReferentialConstraint.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipEndMember.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipMultiplicity.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipSet.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RowType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/SafeLink.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/SafeLinkCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/SimpleType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/StructuralType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/TypeUsage.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/util.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmError.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmItemCollection.OcAssemblyCache.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmItemCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmItemError.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmSchemaError.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmSchemaErrorSeverity.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmValidator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Helper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MappingMetadataHelper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactAssemblyResolver.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoader.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderComposite.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderCompositeFile.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderCompositeResource.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderFile.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderResource.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderXmlReaderWrapper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataCache.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataWorkspace.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ModelPerspective.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectHelper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectItemCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/AssemblyCache.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/AssemblyCacheEntry.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ImmutableAssemblyCacheEntry.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/KnownAssembliesSet.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/KnownAssemblyEntry.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/LoadMessageLogger.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/LockedAssemblyCache.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/MetadataAssemblyHelper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/MutableAssemblyCacheEntry.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemAssemblyLoader.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemAttributeAssemblyLoader.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemCachedAssemblyLoader.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemConventionAssemblyLoader.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemLoadingSessionData.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemNoOpAssemblyLoader.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ParameterTypeSemantics.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Perspective.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/StoreItemCollection.Loader.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/StoreItemCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/TargetPerspective.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/TypeHelpers.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/TypeSemantics.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/XmlConstants.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/MetadataException.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/ObjectNotFoundException.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/AdditionalEntityFunctions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/CompiledQuery.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/ComplexObject.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmComplexPropertyAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmComplexTypeAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmEntityTypeAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmEnumTypeAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmFunctionAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmPropertyAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmRelationshipNavigationPropertyAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmRelationshipRoleAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmScalarPropertyAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmSchemaAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmTypeAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityObject.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityReference.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityReference_TResultType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityChangeTracker.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityWithChangeTracker.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityWithKey.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityWithRelationships.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IRelatedEnd.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IRelationshipFixer.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelatedEnd.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipFixer.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipKind.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipManager.cs8
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipNavigation.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/StructuralObject.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataRecordObjectView.cs12
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/BindingContext.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/CompiledELinqQueryState.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ELinqQueryState.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ExpressionConverter.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ExpressionVisitorHelpers.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/Funcletizer.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/InitializerFacet.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/LinqExpressionNormalizer.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/MethodCallTranslator.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ObjectQueryProvider.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/OrderByLifter.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ReflectionUtil.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/SpatialMethodCallTranslator.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/SpatialPropertyTranslator.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/Translator.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/TypeSystem.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/EntityEntry.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/EntityFunctions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/FieldDescriptor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/IObjectSet.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/IObjectView.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/IObjectViewData.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/BaseEntityWrapper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ComplexTypeMaterializer.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityProxyFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityProxyTypeInfo.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntitySqlQueryBuilder.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntitySqlQueryState.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityWrapper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityWrapperFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/IEntityWrapper.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/LazyLoadBehavior.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/LightweightEntityWrapper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/NullEntityWrapper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectFullSpanRewriter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectQueryExecutionPlan.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectQueryState.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectSpanRewriter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/TransactionManager.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/MergeOption.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectContext.cs12
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectMaterializedEventArgs.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectParameter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectParameterCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectQuery.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectQuery_EntitySqlExtensions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectQuery_TResultType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectResult.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectResult_TResultType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectSet.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntry.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryBaseUpdatableDataRecord.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryDbDataRecord.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryDbUpdatableDataRecord.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryOriginalDbUpdatableDataRecord.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateManager.cs8
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateManagerMetadata.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectView.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewEntityCollectionData.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewListener.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewQueryResultData.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ProxyDataContractResolver.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/RefreshMode.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/RelationshipEntry.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/RelationshipWrapper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SaveOptions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Span.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SpanIndex.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SqlClient/SqlFunctions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SqlClient/SqlSpatialFunctions.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/OptimisticConcurrencyException.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/PropertyConstraintException.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/ProviderIncompatibleException.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/AncillaryOps.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/BasicValidator.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMap.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMapCopier.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMapFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMapVisitor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Command.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Dump.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ExplicitDiscriminatorMap.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Metadata.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/NodeCounter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/NodeInfo.cs8
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Nodes.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/OpCopier.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Ops.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/PhysicalOps.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RelOps.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RelPropertyHelper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Rule.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RulePatternOps.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RuleProcessor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ScalarOps.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Vars.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Visitors.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/AggregatePushdown.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/CTreeGenerator.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/CodeGen.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ColumnMapProcessor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ColumnMapTranslator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/CommandPlan.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ConstraintManager.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ITreeGenerator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/JoinElimination.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/JoinGraph.cs14
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/KeyPullup.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/NestPullup.cs30
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/NominalTypeEliminator.cs10
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/Normalizer.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PlanCompiler.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PlanCompilerUtil.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PreProcessor.cs8
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/Predicate.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ProjectionPruner.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PropertyPushdownHelper.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PropertyRef.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ProviderCommandInfoUtils.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/StructuredTypeInfo.cs14
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/SubqueryTrackingVisitor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/TransformationRules.cs40
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/TypeInfo.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/TypeUtils.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/Validator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/VarInfo.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/VarRefManager.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/VarRemapper.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/ResultAssembly/BridgeDataReader.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Query/ResultAssembly/BridgeDataRecord.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeography.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeographyWellKnownValue.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeometry.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeometryWellKnownValue.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbSpatialDataReader.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbSpatialServices.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DefaultSpatialServices.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/ExtensionMethods.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/Internal/SpatialExceptions.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/SpatialHelpers.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/IDbSpatialValue.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/DmlSqlGenerator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/ISqlFragment.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/JoinSymbol.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/OptionalColumn.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/Sql8ConformanceChecker.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/Sql8ExpressionRewriter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlBuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlFunctionCallHandler.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlGenerator.cs8
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlSelectClauseBuilder.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlSelectStatement.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlWriter.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/Symbol.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SymbolPair.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SymbolTable.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SymbolUsageManager.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/TopClause.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlProviderManifest.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlProviderServices.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlProviderUtilities.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlSpatialDataReader.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlSpatialServices.Generated.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlSpatialServices.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlTypesAssembly.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlVersion.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/System/Data/UpdateException.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Entity/Util/AppSettings.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Linq/ChangeConflicts.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Linq/ChangeDirector.cs22
-rw-r--r--mcs/class/referencesource/System.Data.Linq/ChangeProcessor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Linq/ChangeTracker.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Linq/CompiledQuery.cs32
-rw-r--r--mcs/class/referencesource/System.Data.Linq/DataContext.cs20
-rw-r--r--mcs/class/referencesource/System.Data.Linq/DataShape.cs10
-rw-r--r--mcs/class/referencesource/System.Data.Linq/DbConvert.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Linq/FunctionResults.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Linq/IdentityManager.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Linq/Mapping/MetaModel.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Linq/Provider/IProvider.cs28
-rw-r--r--mcs/class/referencesource/System.Data.Linq/SqlClient/Common/SqlVisitor.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Linq/SqlClient/Query/Funcletizer.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Linq/SqlClient/Query/QueryConverter.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlBinder.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlComparer.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlDeflator.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlFlattener.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlMethodCallConverter.cs6
-rw-r--r--mcs/class/referencesource/System.Data.Linq/SqlClient/Reader/ObjectReader.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Linq/SqlClient/Reader/ObjectReaderCompiler.cs28
-rw-r--r--mcs/class/referencesource/System.Data.Linq/SqlClient/SqlMethods.cs16
-rw-r--r--mcs/class/referencesource/System.Data.Linq/SqlClient/SqlProvider.cs4
-rw-r--r--mcs/class/referencesource/System.Data.Linq/SqlClient/SqlTypeSystemProvider.cs2
-rw-r--r--mcs/class/referencesource/System.Data.Linq/Types.cs18
-rw-r--r--mcs/class/referencesource/System.Data.Linq/misc/SecurityUtils.cs6
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Assembly.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/ISourceLineInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/GenerateHelper.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/IteratorDescriptor.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/OptimizerPatterns.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/StaticDataManager.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/TailCallAnalyzer.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILAnnotation.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILConstructAnalyzer.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILModule.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILOptimization.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILOptimizerVisitor.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlIlTrace.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlIlTypeHelper.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlIlVisitor.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/ListBase.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Pair.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilBinary.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilChoice.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilCloneVisitor.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilDataSource.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilExpression.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilFactory.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilFunction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilInvoke.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilInvokeEarlyBound.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilInvokeLateBound.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilIterator.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilList.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilLiteral.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilLoop.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilName.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilNode.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilNodeType.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilParameter.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilPatternFactory.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilPatternVisitor.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilReference.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilReplaceVisitor.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilScopedVisitor.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilSortKey.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilStrConcat.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilTargetType.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilTernary.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilTypeChecker.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilUnary.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilValidationVisitor.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilVisitor.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilXmlReader.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilXmlWriter.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/SerializationHints.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/SubstitutionList.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/WhitespaceRule.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QueryReaderSettings.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/ContentIterators.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/DecimalFormatter.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/DocumentOrderComparer.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/DodSequenceMerge.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/EarlyBoundInfo.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/NumberFormatter.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/RtfNavigator.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/SetIterators.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/SiblingIterators.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/StringConcat.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/TreeIterators.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/WhitespaceRuleLookup.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/WhitespaceRuleReader.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlAggregates.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlAttributeCache.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlCollation.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlExtensionFunction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlILIndex.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlILStorageConverter.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlIterators.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlNavigatorFilter.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlNavigatorStack.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryContext.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryOutput.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryRuntime.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQuerySequence.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryStaticData.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlRawWriterWrapper.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlSequenceWriter.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlSortKey.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlSortKeyAccumulator.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XslNumber.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XsltConvert.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XsltFunctions.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XsltLibrary.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/SourceLineInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/IXPathEnvironment.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/IXpathBuilder.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathAxis.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathBuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathCompileException.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathContext.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathOperator.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathParser.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathQilFactory.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathScanner.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPathConvert.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlILCommand.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlIlGenerator.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlNodeKindFlags.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQualifiedNameTest.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQueryCardinality.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQueryType.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQueryTypeFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XslException.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Compiler.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/CompilerScopeManager.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Focus.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/IErrorHelper.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/InvokeGenerator.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/KeyMatchBuilder.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Keywords.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/MatcherBuilder.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/OutputScopeManager.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/QilGenerator.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/QilGeneratorEnv.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/QilStrConcatenator.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Scripts.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Stylesheet.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XPathPatternBuilder.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XPathPatternParser.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslAst.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslAstAnalyzer.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslFlags.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslVisitor.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XsltInput.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XsltLoader.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XsltQilFactory.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Action.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ActionFrame.cs3
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ApplyImportsAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ApplyTemplatesAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/AttributeAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/AttributeSetAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Avt.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/AvtEvent.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/BeginEvent.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/BuilderInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CallTemplateAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ChooseAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CommentAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CompiledAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Compiler.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ContainerAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyAttributesAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyCodeAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyNamespacesAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyNodesetAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyOfAction.cs6
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/DbgCompiler.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/DocumentScope.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ElementAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/EndEvent.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Event.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ForeachAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/HtmlProps.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/IfAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/InputScope.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/InputScopeManager.cs3
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/MessageAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NamespaceDecl.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NamespaceEvent.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NavigatorInput.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NavigatorOutput.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NewInstructionAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NumberAction.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/OutKeywords.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/OutputScope.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/OutputScopeManager.cs3
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/PrefixQname.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ProcessingInstructionAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Processor.cs4
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ReaderOutput.cs12
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/RecordBuilder.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/RecordOutput.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/RootAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/SequentialOutput.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/SortAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/StateMachine.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/StringOutput.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Stylesheet.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TemplateAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TemplateBaseAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TemplateLookupAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Templatemanager.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextEvent.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextOnlyOutput.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextOutput.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TheQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/UseAttributesetsAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ValueOfAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/VariableAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/WithParamAction.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/WriterOutput.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/XsltCompileContext.cs5
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/XsltDebugger.cs2
-rw-r--r--mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/XsltOutput.cs2
-rw-r--r--mcs/class/referencesource/System.Data/FxCopSuppressions/Baseline.cs6
-rw-r--r--mcs/class/referencesource/System.Data/FxCopSuppressions/EverettBreaking.cs6
-rw-r--r--mcs/class/referencesource/System.Data/FxCopSuppressions/FxCop40Suppressions.cs2
-rw-r--r--mcs/class/referencesource/System.Data/FxCopSuppressions/Triaged.cs6
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ExtendedClrTypeCode.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedGetters.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedGettersV3.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedSetters.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedSettersV3.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/MemoryRecordBuffer.cs6
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/MetadataUtilsSmi.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiConnection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiContext.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiContextFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventSink.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventSink_Default.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventSink_DeferedProcessing.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventStream.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiExecuteType.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiGettersStream.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiLink.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiMetaData.cs6
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiMetaDataProperty.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiRecordBuffer.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiRequestExecutor.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiSettersStream.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiStream.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiTypedGetterSetter.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiXetterAccessMap.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiXetterTypeCode.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SqlDataRecord.cs8
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SqlRecordBuffer.cs6
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SqlTriggerContext.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ValueUtilsSmi.cs12
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/sqlcontext.cs4
-rw-r--r--mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/sqlpipe.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/AcceptRejectRule.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/AggregateType.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/BaseCollection.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/CatalogLocation.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/CodeGen/StrongTypingException.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/CodeGen/datacache.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ColumnTypeConverter.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/CommandBehavior.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/CommandType.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/ActivityCorrelator.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/AdapterSwitches.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/AdapterUtil.cs39
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/BigIntegerStorage.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/BooleanStorage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/ByteStorage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/CharStorage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DBCommand.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DBCommandBuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DBConnection.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DBConnectionString.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DBDataPermission.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DBDataPermissionAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DBParameter.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DBSchemaRow.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DBSchemaTable.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DataAdapter.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DataColumnMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DataColumnMappingCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DataRecordInternal.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DataStorage.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DataTableMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DataTableMappingCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DateTimeOffsetStorage.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DateTimeStorage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionOptions.cs7
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionPoolKey.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionStringBuilder.cs12
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionStringCommon.cs432
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DbDataAdapter.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DbDataReader.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DbDataSourceEnumerator.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DbException.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DbParameterCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DbProviderConfigurationHandler.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DbProviderFactories.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DbProviderFactoriesConfigurationHandler.cs10
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DbProviderFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DbProviderSpecificTypePropertyAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DbTransaction.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DecimalStorage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/DoubleStorage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/FieldNameLookup.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/GreenMethods.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/Groupbybehavior.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/HandlerBase.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/Int16Storage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/Int32Storage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/Int64Storage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/MultipartIdentifier.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/NameValuePair.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/NameValuePermission.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/NativeMethods.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/ObjectStorage.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/RowUpdatedEventArgs.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/RowUpdatingEventArgs.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SByteStorage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLConvert.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLBinaryStorage.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLByteStorage.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLBytesStorage.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLCharsStorage.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLDateTimeStorage.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLDecimalStorage.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLDoubleStorage.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLGuidStorage.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLInt16Storage.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLInt32Storage.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLInt64Storage.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLMoneyStorage.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLSingleStorage.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLStringStorage.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQlBooleanStorage.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SqlUDTStorage.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SqlXmlStorage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SafeNativeMethods.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SchemaTableColumn.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SchemaTableOptionalColumn.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SingleStorage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SqlEventSource.cs76
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/StringStorage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/SupportedJoinOperators.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/System.Data_BID.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/TimeSpanStorage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/UInt16Storage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/UInt32Storage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/UInt64Storage.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/UnsafeNativeMethods.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/dbdatarecord.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/dbenumerator.cs31
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Common/identifiercase.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ConflictOptions.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ConnectionState.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Constraint.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ConstraintCollection.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ConstraintConverter.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ConstraintEnumerator.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DBConcurrencyException.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataColumn.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataColumnChangeEvent.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataColumnChangeEventHandler.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataColumnCollection.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataColumnPropertyDescriptor.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataError.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataException.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataKey.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataRelation.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataRelationCollection.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataRelationPropertyDescriptor.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataRow.cs10
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataRowAction.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataRowChangeEvent.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataRowChangeEventHandler.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataRowCollection.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataRowCreatedEventHandler.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataRowState.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataRowVersion.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataRowView.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataSerializationFormat.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataSet.cs10
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataSetDateTime.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataSysAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataTable.cs40
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataTableClearEvent.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataTableClearEventHandler.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataTableCollection.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataTableNewRowEvent.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataTableNewRowEventHandler.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataTablePropertyDescriptor.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataTableReader.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataTableReaderListener.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataTableTypeConverter.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataView.cs10
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataViewListener.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataViewManager.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataViewManagerListItemTypeDescriptor.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataViewRowState.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataViewSetting.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DataViewSettingCollection.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/DefaultValueTypeConverter.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/FillErrorEventArgs.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/FillErrorEventHandler.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Filter/AggregateNode.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Filter/BinaryNode.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Filter/ConstNode.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Filter/DataExpression.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Filter/ExpressionNode.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Filter/ExpressionParser.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Filter/FilterException.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Filter/FunctionNode.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Filter/IFilter.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Filter/LookupNode.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Filter/NameNode.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Filter/Operators.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Filter/UnaryNode.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Filter/ZeroOpNode.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ForeignKeyConstraint.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/IColumnMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/IColumnMappingCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/IDataAdapter.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/IDataParameter.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/IDataParameterCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/IDataReader.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/IDataRecord.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/IDbCommand.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/IDbConnection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/IDbDataAdapter.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/IDbDataParameter.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/IDbTransaction.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ITableMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ITableMappingCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/IsolationLevel.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/LoadOption.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/MappingType.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/MergeFailedEvent.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/MergeFailedEventHandler.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Merger.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/MissingMappingAction.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/MissingSchemaAction.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/DbDataRecord.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/Odbc32.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcCommand.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcCommandBuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionHandle.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionOpen.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionPoolProviderInfo.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionString.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionStringbuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcDataAdapter.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcDataReader.cs26
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcEnvironment.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcEnvironmentHandle.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcError.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcErrorCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcException.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcHandle.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcInfoMessageEvent.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcParameter.cs18
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcParameterCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcPermission.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcReferenceCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcRowUpdatingEvent.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcStatementHandle.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcTransaction.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcType.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcUtils.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/odbcmetadatacollectionnames.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/odbcmetadatacolumnnames.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Odbc/odbcmetadatafactory.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/ColumnBinding.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/DBBindings.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/DBPropSet.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OLEDB_Enum.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OLEDB_Util.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbCommand.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbCommandBuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnectionFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnectionInternal.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnectionPoolGroupProviderInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbDataAdapter.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbDataReader.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbEnumerator.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbError.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbErrorCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbException.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbHResult.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbInfoMessageEvent.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbInfoMessageEventHandler.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbLiteral.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbMetaDataFactory.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbParameter.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbParameterCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbPermission.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbPropertySetGuid.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbPropertyStatus.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbReferenceCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatedEvent.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatedEventHandler.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatingEvent.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatingEventHandler.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbSchemaGuid.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbStruct.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbTransaction.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbType.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbWrapper.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/OledbConnectionStringbuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/PropertyAttributes.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/PropertyIDSet.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/PropertyInfoSet.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/RowBinding.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/SafeHandles.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/oledbconnectionstring.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/oledbmetadatacollectionnames.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OleDb/oledbmetadatacolumnnames.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/OperationAbortedException.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ParameterDirection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/PrimaryKeyTypeConverter.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/PropertyCollection.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DataReaderContainer.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbBuffer.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionClosed.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionHelper.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionInternal.cs26
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPool.cs25
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolAuthenticationContext.cs108
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolAuthenticationContextKey.cs106
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolCounters.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolGroup.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolGroupProviderInfo.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolIdentity.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolOptions.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolProviderInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbMetaDataCollectionNames.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbMetaDataColumnNames.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbMetaDataFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbParameterCollectionHelper.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbParameterHelper.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbReferenceCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/SchemaMapping.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/TimeoutTimer.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/ProviderBase/WrappedIUnknown.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Range.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/RbTree.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/RecordManager.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/RecordsAffectedEventArgs.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/RecordsAffectedEventHandler.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/RelatedView.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/RelationshipConverter.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Rule.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/INullable.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLBinary.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLBoolean.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLByte.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLBytes.cs26
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLChars.cs24
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLDateTime.cs10
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLDecimal.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLDouble.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLFileStream.cs10
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLGuid.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLInt16.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLInt32.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLInt64.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLMoney.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLResource.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLSingle.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLString.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLUtility.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SqlCharStream.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SqlTypesSchemaImporter.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/SqlXml.cs14
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SQLTypes/UnsafeNativeMethods.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SchemaSerializationMode.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SchemaType.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Select.cs14
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Selection.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SimpleType.cs92
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Sql/IBinarySerialize.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Sql/SqlDataSourceEnumerator.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Sql/SqlFacetAttribute.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Sql/SqlFunctionAttribute.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Sql/SqlGenericUtil.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Sql/SqlMetaData.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Sql/SqlMethodAttribute.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Sql/SqlNotificationRequest.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Sql/SqlProcedureAttribute.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Sql/SqlTriggerAttribute.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Sql/SqlUserDefinedAggregateAttribute.cs10
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Sql/SqlUserDefinedTypeAttribute.cs10
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Sql/TriggerAction.cs10
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Sql/invalidudtexception.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Sql/sqlnorm.cs10
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/Sql/sqlser.cs10
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/OnChangedEventHandler.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/ParameterPeekAheadValue.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/RowsCopiedEventArgs.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/RowsCopiedEventHandler.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SortOrder.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAeadAes256CbcHmac256Algorithm.cs406
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAeadAes256CbcHmac256EncryptionKey.cs128
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAeadAes256CbcHmac256Factory.cs80
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAes256CbcAlgorithm.cs65
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAes256CbcFactory.cs85
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBuffer.cs27
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopy.cs336
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopyColumnMapping.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopyOptions.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCachedBuffer.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientEncryptionAlgorithm.cs33
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientEncryptionAlgorithmFactory.cs26
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientEncryptionAlgorithmFactoryList.cs79
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientEncryptionType.cs19
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientFactory.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientMetaDataCollectionNames.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientPermission.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientSymmetricKey.cs73
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientWrapperSmiStream.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientWrapperSmiStreamChars.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlColumnEncryptionCertificateStoreProvider.cs555
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlColumnEncryptionKeyStoreProvider.cs39
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCommand.cs1495
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCommandBuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCommandSet.cs12
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnection.cs346
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionFactory.cs10
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionPoolGroupProviderInfo.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionPoolKey.cs27
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionPoolProviderInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionString.cs81
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionStringBuilder.cs118
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionTimeoutErrorInternal.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCredential.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDataAdapter.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDataReader.cs216
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDataReaderSmi.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDelegatedTransaction.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDependency.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDependencyListener.cs12
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDependencyUtils.cs16
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlEnums.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlError.cs20
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlErrorCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlException.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInfoMessageEvent.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInfoMessageEventHandler.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInternalConnection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInternalConnectionSmi.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInternalConnectionTds.cs480
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationEventArgs.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationInfo.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationSource.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationType.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlParameter.cs121
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlParameterCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlReferenceCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatedEvent.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatedEventHandler.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatingEvent.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatingEventHandler.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlSecurityUtility.cs263
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlSequentialTextReader.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlStatistics.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlStream.cs8
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlSymmetricKeyCache.cs107
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlTransaction.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlUdtInfo.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlUtil.cs385
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsEnums.cs181
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParameterSetter.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParser.cs2395
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserHelperClasses.cs561
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserSafeHandles.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserSessionPool.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserStateObject.cs36
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserStaticMethods.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsRecordBufferSetter.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsValueSetter.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/assemblycache.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/sqlinternaltransaction.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlClient/sqlmetadatafactory.cs2
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/SqlDbType.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/StateChangeEvent.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/StateChangeEventHandler.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/StatementType.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/UniqueConstraint.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/UpdateRowSource.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/XDRSchema.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/XMLDiffLoader.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/XMLSchema.cs14
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/XmlContent.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/XmlDataLoader.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/XmlKeywords.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/XmlReadMode.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/XmlToDatasetMap.cs14
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/XmlWriteMode.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/dbtype.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/updatestatus.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/Data/xmlsaver.cs16
-rw-r--r--mcs/class/referencesource/System.Data/System/NewXml/BaseTreeIterator.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/NewXml/DataDocumentXPathNavigator.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/NewXml/DataPointer.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/NewXml/DataSetMappper.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/NewXml/IXmlDataVirtualNode.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/NewXml/RegionIterator.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/NewXml/TreeIterator.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/NewXml/XPathNodePointer.cs6
-rw-r--r--mcs/class/referencesource/System.Data/System/NewXml/XmlBoundElement.cs4
-rw-r--r--mcs/class/referencesource/System.Data/System/NewXml/XmlDataDocument.cs26
-rw-r--r--mcs/class/referencesource/System.Data/System/NewXml/XmlDataImplementation.cs4
-rw-r--r--mcs/class/referencesource/System.Data/bid/inc/cs/bidPrivateBase.cs4
-rw-r--r--mcs/class/referencesource/System.IdentityModel.Selectors/infocard/common/managed/InfoCardCryptoHelper.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/InternalApis/Clr/inc/AppContextDefaultValues.cs170
-rw-r--r--mcs/class/referencesource/System.IdentityModel/InternalApis/Clr/inc/LocalAppContext.cs128
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/AppContextDefaultValues.cs34
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/AsyncResult.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Claims/Claim.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/CryptoApi.cs6
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/CryptoHelper.cs6
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/HashStream.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/IdentityModelStrings.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/LocalAppContextSwitches.cs33
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Policy/DefaultAuthorizationContext.cs17
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Protocols/WSTrust/WSTrustSerializationHelper.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/SafeCryptHandles.cs4
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/SecurityUtils.cs10
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/SspiSafeHandles.cs32
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/BinaryKeyIdentifierClause.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/EncryptedKeyIdentifierClause.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/GenericXmlSecurityKeyIdentifierClause.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/LocalIdKeyIdentifierClause.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/RsaKeyIdentifierClause.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/Saml2SecurityTokenHandler.cs6
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/SamlAssertionKeyIdentifierClause.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/SamlSecurityTokenHandler.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/WrappedSaml2AssertionKeyIdentifierClause.cs6
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/X509IssuerSerialKeyIdentifierClause.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/IdentityModel/X509Util.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/BinarySecretKeyIdentifierClause.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/KeyNameIdentifierClause.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/ReferenceList.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/RelAssertionDirectKeyIdentifierClause.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/SamlAssertionDirectKeyIdentifierClause.cs2
-rw-r--r--mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/SecurityContextKeyIdentifierClause.cs2
-rw-r--r--mcs/class/referencesource/System.Net/net/PeerToPeer/Collaboration/CollaborationEnumTypes.cs2
-rw-r--r--mcs/class/referencesource/System.Net/net/PeerToPeer/Collaboration/ContactManager.cs2
-rw-r--r--mcs/class/referencesource/System.Net/net/PeerToPeer/Collaboration/PeerNearMe.cs6
-rw-r--r--mcs/class/referencesource/System.Net/net/PeerToPeer/PeerName.cs2
-rw-r--r--mcs/class/referencesource/System.Net/net/PeerToPeer/PeerNameResolver.cs8
-rw-r--r--mcs/class/referencesource/System.Numerics/BaselineExcludes.lst.cs4
-rw-r--r--mcs/class/referencesource/System.Numerics/System/Numerics/Complex.cs8
-rw-r--r--mcs/class/referencesource/System.Numerics/System/Numerics/HashCodeHelper.cs16
-rw-r--r--mcs/class/referencesource/System.Numerics/System/Numerics/JITIntrinsicAttribute.cs13
-rw-r--r--mcs/class/referencesource/System.Numerics/System/Numerics/Matrix3x2.cs809
-rw-r--r--mcs/class/referencesource/System.Numerics/System/Numerics/Matrix4x4.cs2212
-rw-r--r--mcs/class/referencesource/System.Numerics/System/Numerics/Plane.cs366
-rw-r--r--mcs/class/referencesource/System.Numerics/System/Numerics/Quaternion.cs792
-rw-r--r--mcs/class/referencesource/System.Numerics/System/Numerics/Vector2.cs451
-rw-r--r--mcs/class/referencesource/System.Numerics/System/Numerics/Vector2_Intrinsics.cs289
-rw-r--r--mcs/class/referencesource/System.Numerics/System/Numerics/Vector3.cs471
-rw-r--r--mcs/class/referencesource/System.Numerics/System/Numerics/Vector3_Intrinsics.cs315
-rw-r--r--mcs/class/referencesource/System.Numerics/System/Numerics/Vector4.cs520
-rw-r--r--mcs/class/referencesource/System.Numerics/System/Numerics/Vector4_Intrinsics.cs346
-rw-r--r--mcs/class/referencesource/System.Numerics/System/Numerics/Vector_Operations.cs29
-rw-r--r--mcs/class/referencesource/System.Runtime.Caching/System/Caching/MemoryCache.cs5
-rw-r--r--mcs/class/referencesource/System.Runtime.Caching/System/Caching/MemoryCacheEntry.cs2
-rw-r--r--mcs/class/referencesource/System.Runtime.Caching/System/Caching/MemoryCacheStore.cs12
-rw-r--r--mcs/class/referencesource/System.Runtime.Caching/System/Caching/PerfCounters.cs2
-rw-r--r--mcs/class/referencesource/System.Runtime.DurableInstancing/AssemblyInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Runtime.DurableInstancing/System/Runtime/DurableInstancing/InstanceHandle.cs2
-rw-r--r--mcs/class/referencesource/System.Runtime.DurableInstancing/System/Runtime/DurableInstancing/InstancePersistenceContext.cs2
-rw-r--r--mcs/class/referencesource/System.Runtime.DurableInstancing/System/Runtime/ICancelable.cs2
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/ClassDataContract.cs4
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/CollectionDataContract.cs6
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/CollectionDataContractAttribute.cs48
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Configuration/SerializationSectionGroup.cs2
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataContract.cs14
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataContractAttribute.cs24
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataContractSet.cs53
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataMemberAttribute.cs8
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/EnumDataContract.cs2
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/EnumMemberAttribute.cs8
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Globals.cs19
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/JsonEncodingStreamWrapper.cs2
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/JsonNodeType.cs2
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/JsonWriterDelegator.cs2
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/XmlJsonWriter.cs4
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerContext.cs4
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Xml/EncodingStreamWrapper.cs8
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Xml/UniqueID.cs2
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Xml/ValueHandle.cs2
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlBaseReader.cs4
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlConverter.cs6
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlDictionaryWriter.cs47
-rw-r--r--mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlMtomReader.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/Activation/HostedHttpContext.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/Activation/HostedImpersonationContext.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/Activation/IServiceModelActivationHandler.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/ServiceHostingEnvironment.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activities/SuppressMessages.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/AppSettings.cs25
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/BufferedReceiveManager.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/DurableInstanceManager.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/PersistenceContext.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/PersistenceProviderDirectory.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/WorkflowServiceInstance.cs25
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/IWorkflowInstanceManagement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/InternalSendMessage.cs10
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/SerializerOption.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/WorkflowOperationContext.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/WorkflowService.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/WorkflowServiceHost.cs3
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Channels/AssemblyInfo.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/ByteStreamMessage.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/UdpChannelBase.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/UdpOutputChannel.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/UdpSocket.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/XmlByteStreamWriter.cs20
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Discovery/AssemblyInfo.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Discovery/System/ServiceModel/Discovery/AnnouncementService.cs12
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Discovery/System/ServiceModel/Discovery/DiscoveryProxy.cs32
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Discovery/System/ServiceModel/Discovery/DiscoveryService.cs20
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Internals/AssemblyInfo.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/AsyncResult.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/DiagnosticTraceBase.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/EtwDiagnosticTrace.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/EventLogCategory.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/EventLogEventId.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/IOThreadScheduler.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Interop/UnsafeNativeMethods.cs15
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/MruCache.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/ThreadNeutralSemaphore.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/TraceLevelHelper.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Routing/System/ServiceModel/Routing/RoutingService.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Web/GlobalSuppressions.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Description/WebHttpBehavior.cs20
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Description/WebScriptEnablingBehavior.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Dispatcher/HelpHtmlBuilder.cs6
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Dispatcher/HttpUnhandledOperationInvoker.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Dispatcher/WebHttpDispatchOperationSelector.cs10
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Web/HttpDateParse.cs12
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Web/WebOperationContext.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/WebHttpBinding.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/InternalApis/Clr/inc/AppContextDefaultValues.cs170
-rw-r--r--mcs/class/referencesource/System.ServiceModel/InternalApis/Clr/inc/LocalAppContext.cs128
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Activation/Configuration/ServiceModelActivationSectionGroup.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Activation/ListenerUnsafeNativeMethods.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Activation/Utility.cs14
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/EndpointInstanceProvider.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/ProviderBase.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/ServiceInstanceProvider.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/WbemProvider.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/AppContextDefaultValues.Default.cs35
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/CacheSetting.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/AddressHeader.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/AddressHeaderCollection.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/BinaryMessageEncoder.cs6
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/BufferedOutputAsyncStream.cs12
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ClientWebSocketFactory.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/CompositeDuplexBindingElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/Connection.cs6
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ConnectionDemuxer.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ConnectionModeReader.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ConnectionPool.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ContentOnlyMessage.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/FramingChannels.cs26
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/FramingDecoders.cs38
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpChannelFactory.cs48
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpChannelHelpers.cs56
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpPipeline.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpRequestContext.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpTransportBindingElement.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpsChannelFactory.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpsChannelListener.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IChannelAcceptor.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IChannelBindingProvider.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IHttpCookieContainerManager.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IReliableFactorySettings.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IStreamUpgradeChannelBindingProvider.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IdlingCommunicationPool.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InitialServerConnectionReader.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InputChannel.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InternalDuplexBindingElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InternalDuplexChannelListener.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/Message.cs20
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageBuffer.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageEncodingBindingElement.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageEncodingBindingElementImporter.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageFault.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageHeaders.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MsmqDecodeHelper.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/OneWayChannelFactory.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/OneWayChannelListener.cs18
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/OverlappedContext.cs24
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PeerCustomResolverBindingElement.cs10
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PeerFlooder.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PeerNeighborManager.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PipeConnection.cs10
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ReplyChannel.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/RequestChannel.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/RequestContextBase.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SafeNativeMethods.cs14
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SecurityBindingElementImporter.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ServiceChannelProxy.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SessionConnectionReader.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SingletonConnectionReader.cs10
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SocketConnection.cs10
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SslStreamSecurityBindingElement.cs28
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SslStreamSecurityUpgradeProvider.cs42
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StandardBindingImporter.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StreamSecurityUpgradeAcceptorAsyncResult.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StreamSecurityUpgradeInitiatorAsyncResult.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StreamedFramingRequestChannel.cs16
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SynchronizedMessageSource.cs6
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportBindingElement.cs6
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportBindingElementImporter.cs6
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportDefaults.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportDuplexSessionChannel.cs14
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportManager.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportSecurityHelpers.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/UnsafeNativeMethods.cs9
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/UriPrefixTable.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/WindowsStreamSecurityBindingElement.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/WindowsStreamSecurityUpgradeProvider.cs10
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ClientBase.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ComIntegration/IClassFactory.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ComIntegration/IContextSecurityPerimeter.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ComIntegration/IServerSecurity.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/BinaryMessageEncodingElement.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CallbackDebugElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CallbackTimeoutsElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ClientCredentialsElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ClientViaElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CommonEndpointBehaviorElement.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CommonServiceBehaviorElement.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CompositeDuplexElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ConfigurationHelpers.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ConfigurationStrings.cs1
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ConnectionOrientedTransportElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/DataContractSerializerElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/EndpointBehaviorElement.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ExtensionElementCollection.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/HttpTransportElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/HttpsTransportElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/IdentityElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/IssuedTokenClientElement.cs6
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/IssuedTokenServiceElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/MtomMessageEncodingElement.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/NamedPipeTransportElement.cs6
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/OneWayElement.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/PeerTransportElement.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/PrivacyNoticeElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/Properties.cs764
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ReliableMessagingVersionConverter.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ReliableSessionElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/RemoveBehaviorElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/SecurityElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/SecurityElementBase.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceAuthorizationElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceBehaviorElement.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceCredentialsElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceDebugElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceMetadataEndpointCollectionElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceMetadataPublishingElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceModelConfigurationElementCollection.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceModelExtensionCollectionElement.cs6
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceModelSectionGroup.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceSecurityAuditElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceThrottlingElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceTimeoutsElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/SslStreamSecurityElement.cs16
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/StandardBindingCollectionElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/StandardEndpointCollectionElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TcpTransportElement.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TcpTransportSecurityElement.cs11
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TextMessageEncodingElement.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransactedBatchingElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransactionFlowElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransactionProtocolConverter.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransportElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/WindowsStreamSecurityElement.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ClientClassGenerator.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ConfigWriter.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/DispatcherBuilder.cs6
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/IPolicyImportExtension.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/IWsdlExportExtension.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/IWsdlImportExtension.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ImportedPolicyConversionContext.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/MessageContractExporter.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/MetadataSection.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/PolicyReader.cs6
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ServiceEndpoint.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/SoapHelper.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/TaskOperationDescriptionValidator.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/TypeLoader.cs14
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/WsdlExporter.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/WsdlImporter.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/ActivityType.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/EndpointPerformanceCountersBase.cs33
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/EndpointPerformanceCountersV2.cs12
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/OperationPerformanceCountersBase.cs34
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/OperationPerformanceCountersV2.cs12
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/PerformanceCountersBase.cs64
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/PerformanceCountersFactory.cs81
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/ServicePerformanceCountersBase.cs49
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/ServicePerformanceCountersV2.cs12
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ActionMessageFilterTable.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/DuplexChannelBinder.cs6
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/EndpointAddressMessageFilter.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/EndpointAddressMessageFilterTable.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ErrorHandlingAcceptor.cs6
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ImmutableDispatchRuntime.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/InputChannelBinder.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/MessageFilterTable.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/OperationInvokerBehavior.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/OutputChannelBinder.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/PrefixEndpointAddressMessageFilter.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/PrefixEndpointAddressMessageFilterTable.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/PrimitiveOperationFormatter.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryFunctions.cs6
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryMatcher.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryNode.cs14
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryProcessor.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QuerySelectOp.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QuerySubExprEliminator.cs6
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryUtil.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ReplyChannelBinder.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/SecurityImpersonationBehavior.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/SecurityValidationBehavior.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/SeekableMessageNavigator.cs14
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/StreamFormatter.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/XPathMessageContext.cs10
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/DnsEndpointIdentity.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/EndpointAddress.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/EndpointIdentity.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/EndpointTrait.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/FaultReason.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/LocalAppContextSwitches.cs33
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/OSVersion.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/RsaEndpointIdentity.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/CryptoHelper.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/FederatedSecurityTokenManager.cs16
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/RequestSecurityToken.cs10
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/RequestSecurityTokenResponse.cs16
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SctClaimSerializer.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecureConversationDriver.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecuritySessionClientSettings.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecuritySessionSecurityTokenProvider.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecurityUtils.cs35
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecurityVerifiedMessage.cs4
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/TlsSspiNegotiation.cs6
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/TransportSecurityProtocol.cs7
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/TrustDriver.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSSecurityPolicy.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSSecurityTokenSerializer.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSTrust.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSTrustFeb2005.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSTrustServiceContract.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ServiceModelAppSettings.cs99
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ServiceModelAttributeTargets.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ServiceModelStrings.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/SpnEndpointIdentity.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/StringUtil.cs63
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Syndication/Rss20FeedFormatter.cs46
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/TcpTransportSecurity.cs27
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Transactions/IsolationFlags.cs2
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Transactions/WsatTransactionFormatter.cs8
-rw-r--r--mcs/class/referencesource/System.ServiceModel/System/ServiceModel/UpnEndpointIdentity.cs2
-rw-r--r--mcs/class/referencesource/System.Web.ApplicationServices/Properties/AssemblyInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Web.DynamicData/DynamicData/DynamicDataExtensions.cs2
-rw-r--r--mcs/class/referencesource/System.Web.DynamicData/DynamicData/DynamicDataManager.cs2
-rw-r--r--mcs/class/referencesource/System.Web.DynamicData/DynamicData/FieldTemplateUserControl.cs10
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityConnectionStringBuilderItem.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceConfigureObjectContext.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceConfigureObjectContextPanel.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceConfigureObjectContextPanel.designer.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceContainerNameConverter.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceContainerNameItem.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDataSelection.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDataSelectionPanel.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDataSelectionPanel.designer.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDesigner.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDesignerHelper.cs44
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntitySetNameConverter.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntitySetNameItem.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntityTypeFilterConverter.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntityTypeFilterItem.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceState.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceStatementEditor.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceStatementEditorForm.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceWizardForm.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDesignerDataSourceView.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/DesignerForm.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/RTLAwareMessageBox.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/ResourceDescriptionAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/TaskFormBase.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/UIHelper.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/WizardForm.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/WizardPanel.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/WizardPanelChangingEventArgs.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity/AssemblyInfo.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSource.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceChangedEventArgs.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceChangingEventArgs.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceColumn.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceContextCreatedEventArgs.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceContextCreatingEventArgs.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceContextDisposingEventArgs.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceMemberPath.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceQueryBuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceReferenceGroup.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceSelectedEventArgs.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceSelectingEventArgs.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceUtil.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceValidationException.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceView.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceViewSchema.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceWrapper.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceWrapperCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceWrapperPropertyDescriptor.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/ResourceDescriptionAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/ResourceDisplayNameAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/WebControlParameterProxy.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Extensions/Compilation/WCFModel/VSWCFServiceContractGenerator.cs8
-rw-r--r--mcs/class/referencesource/System.Web.Extensions/Handlers/ScriptModule.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Extensions/Handlers/ScriptResourceHandler.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Extensions/Script/Services/PageClientProxyGenerator.cs14
-rw-r--r--mcs/class/referencesource/System.Web.Extensions/Script/Services/RestHandler.cs6
-rw-r--r--mcs/class/referencesource/System.Web.Extensions/ui/AssemblyCache.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Extensions/ui/EmbeddedResourceFinder.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Extensions/ui/PageRequestManager.cs1
-rw-r--r--mcs/class/referencesource/System.Web.Extensions/ui/ProfileServiceManager.cs6
-rw-r--r--mcs/class/referencesource/System.Web.Extensions/ui/RoleServiceManager.cs6
-rw-r--r--mcs/class/referencesource/System.Web.Extensions/ui/ScriptManager.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Mobile/GlobalSuppressions.cs660
-rw-r--r--mcs/class/referencesource/System.Web.Mobile/Mobile/UrlPath.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Adapters/XhtmlAdapters/XhtmlBasicObjectListAdapter.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/AppliedDeviceFiltersDialog.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/ListComponentEditorPage.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/StylesEditorDialog.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/Util/GenericUI.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/Util/InterchangeableLists.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/Util/MSHTMLHost.cs6
-rw-r--r--mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/MobilePage.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/ObjectList.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/SessionViewState.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/Configuration/Protocols.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/Description/SoapProtocolImporter.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DiscoveryDocument.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DiscoveryDocumentReference.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DiscoveryRequestHandler.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DynamicVirtualDiscoSearcher.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/NativeMethods.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/ClientProtocol.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/DiscoveryServerProtocol.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/DocumentationServerProtocol.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/LogicalMethodInfo.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/RuntimeUtils.cs8
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/Scalars.cs4
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/ScatterGatherStream.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/SoapException.cs14
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/SoapServerMessage.cs2
-rw-r--r--mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/SoapServiceRoutingStyle.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Abstractions/HttpContextWrapper.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Abstractions/HttpRequestBase.cs6
-rw-r--r--mcs/class/referencesource/System.Web/Abstractions/HttpRequestWrapper.cs8
-rw-r--r--mcs/class/referencesource/System.Web/Abstractions/HttpResponseBase.cs13
-rw-r--r--mcs/class/referencesource/System.Web/Abstractions/HttpResponseWrapper.cs13
-rw-r--r--mcs/class/referencesource/System.Web/AspNetEventSource.cs6
-rw-r--r--mcs/class/referencesource/System.Web/AspNetSynchronizationContext.cs16
-rw-r--r--mcs/class/referencesource/System.Web/BufferAllocator.cs274
-rw-r--r--mcs/class/referencesource/System.Web/Cache/SqlCacheDependency.cs6
-rw-r--r--mcs/class/referencesource/System.Web/Compilation/BaseResourcesBuildProvider.cs4
-rw-r--r--mcs/class/referencesource/System.Web/Compilation/BaseTemplateCodeDomTreeGenerator.cs22
-rw-r--r--mcs/class/referencesource/System.Web/Compilation/BrowserCapabilitiesCompiler.cs4
-rw-r--r--mcs/class/referencesource/System.Web/Compilation/BuildManager.cs22
-rw-r--r--mcs/class/referencesource/System.Web/Compilation/BuildManagerHost.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Compilation/BuildProvidersCompiler.cs8
-rw-r--r--mcs/class/referencesource/System.Web/Compilation/BuildResult.cs18
-rw-r--r--mcs/class/referencesource/System.Web/Compilation/BuildResultCache.cs7
-rw-r--r--mcs/class/referencesource/System.Web/Compilation/CompilationLock.cs5
-rw-r--r--mcs/class/referencesource/System.Web/Compilation/CompilationUtil.cs14
-rw-r--r--mcs/class/referencesource/System.Web/Compilation/MultiTargetingUtil.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Compilation/PreservationFileReader.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Compilation/XsdBuildProvider.cs8
-rw-r--r--mcs/class/referencesource/System.Web/Configuration/BrowserCapabilitiesCodeGenerator.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Configuration/BuildProvider.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Configuration/FolderLevelBuildProvider.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Configuration/MachineKeySection.cs12
-rw-r--r--mcs/class/referencesource/System.Web/Configuration/MetabaseServerConfig.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Configuration/ProcessHostMapPath.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Configuration/RuntimeConfig.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Configuration/SessionStateSection.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Configuration/TicketCompatibilityMode.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Configuration/WebConfigurationHost.cs6
-rw-r--r--mcs/class/referencesource/System.Web/ErrorFormatter.cs16
-rw-r--r--mcs/class/referencesource/System.Web/EtwTrace.cs1
-rw-r--r--mcs/class/referencesource/System.Web/FileChangesMonitor.cs8
-rw-r--r--mcs/class/referencesource/System.Web/GlobalSuppressions.cs7558
-rw-r--r--mcs/class/referencesource/System.Web/GlobalSuppressions3.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Hosting/AppDomainFactory.cs8
-rw-r--r--mcs/class/referencesource/System.Web/Hosting/ApplicationHost.cs3
-rw-r--r--mcs/class/referencesource/System.Web/Hosting/ApplicationManager.cs74
-rw-r--r--mcs/class/referencesource/System.Web/Hosting/HostingEnvironment.cs39
-rw-r--r--mcs/class/referencesource/System.Web/Hosting/IIS7WorkerRequest.cs139
-rw-r--r--mcs/class/referencesource/System.Web/Hosting/IISUnsafeMethods.cs25
-rw-r--r--mcs/class/referencesource/System.Web/Hosting/IPipelineRuntime.cs10
-rw-r--r--mcs/class/referencesource/System.Web/Hosting/ISAPIWorkerRequest.cs5
-rw-r--r--mcs/class/referencesource/System.Web/Hosting/ProcessHost.cs6
-rw-r--r--mcs/class/referencesource/System.Web/Hosting/TlsTokenBindingInfo.cs31
-rw-r--r--mcs/class/referencesource/System.Web/HttpApplication.cs114
-rw-r--r--mcs/class/referencesource/System.Web/HttpBufferlessInputStream.cs2
-rw-r--r--mcs/class/referencesource/System.Web/HttpCachePolicy.cs15
-rw-r--r--mcs/class/referencesource/System.Web/HttpContext.cs19
-rw-r--r--mcs/class/referencesource/System.Web/HttpCookieCollection.cs2
-rw-r--r--mcs/class/referencesource/System.Web/HttpHeaderCollection.cs4
-rw-r--r--mcs/class/referencesource/System.Web/HttpRequest.cs76
-rw-r--r--mcs/class/referencesource/System.Web/HttpResponse.cs104
-rw-r--r--mcs/class/referencesource/System.Web/HttpRuntime.cs22
-rw-r--r--mcs/class/referencesource/System.Web/HttpServerVarsCollection.cs37
-rw-r--r--mcs/class/referencesource/System.Web/HttpWriter.cs98
-rw-r--r--mcs/class/referencesource/System.Web/ITlsTokenBindingInfo.cs36
-rw-r--r--mcs/class/referencesource/System.Web/InternalApis/NDP_Common/inc/StrongNameHelpers.cs40
-rw-r--r--mcs/class/referencesource/System.Web/IntraPartitionAPIs/xsp/PerfCounterEnum.cs131
-rw-r--r--mcs/class/referencesource/System.Web/LegacyAspNetSynchronizationContext.cs22
-rw-r--r--mcs/class/referencesource/System.Web/Management/WebEvents.cs18
-rw-r--r--mcs/class/referencesource/System.Web/ModelBinding/ControlValueProvider.cs2
-rw-r--r--mcs/class/referencesource/System.Web/ModelBinding/RangeAttributeAdapter.cs2
-rw-r--r--mcs/class/referencesource/System.Web/OutputCacheModule.cs4
-rw-r--r--mcs/class/referencesource/System.Web/PerfCounters.cs4
-rw-r--r--mcs/class/referencesource/System.Web/PipelineModuleStepContainer.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Properties/AssemblyInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Web/RootedObjects.cs6
-rw-r--r--mcs/class/referencesource/System.Web/Routing/Route.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Routing/RouteCollection.cs6
-rw-r--r--mcs/class/referencesource/System.Web/Security/ADMembershipProvider.cs4
-rw-r--r--mcs/class/referencesource/System.Web/Security/AntiXss/GlobalSuppressions.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Security/Cryptography/CryptoAlgorithms.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Security/IVType.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Security/RoleClaimProvider.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Security/RolePrincipal.cs6
-rw-r--r--mcs/class/referencesource/System.Web/Security/Roles.cs8
-rw-r--r--mcs/class/referencesource/System.Web/State/StateRuntime.cs12
-rw-r--r--mcs/class/referencesource/System.Web/State/StateWorkerRequest.cs2
-rw-r--r--mcs/class/referencesource/System.Web/State/sqlstateclientmanager.cs3
-rw-r--r--mcs/class/referencesource/System.Web/StaticFileHandler.cs2
-rw-r--r--mcs/class/referencesource/System.Web/ThreadContext.cs6
-rw-r--r--mcs/class/referencesource/System.Web/UI/BaseParser.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/ConflictOptions.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/Control.cs42
-rw-r--r--mcs/class/referencesource/System.Web/UI/ControlBuilder.cs4
-rw-r--r--mcs/class/referencesource/System.Web/UI/ControlCollection.cs3
-rw-r--r--mcs/class/referencesource/System.Web/UI/EmptyTextWriter.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/HTMLTextWriter.cs12
-rw-r--r--mcs/class/referencesource/System.Web/UI/HtmlControls/HtmlControl.cs1
-rw-r--r--mcs/class/referencesource/System.Web/UI/HtmlForm.cs8
-rw-r--r--mcs/class/referencesource/System.Web/UI/IUpdatePanel.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/LiteralControl.cs1
-rw-r--r--mcs/class/referencesource/System.Web/UI/ObjectStateFormatter.cs4
-rw-r--r--mcs/class/referencesource/System.Web/UI/Page.cs176
-rw-r--r--mcs/class/referencesource/System.Web/UI/PartialCachingControl.cs12
-rw-r--r--mcs/class/referencesource/System.Web/UI/TargetFrameworkUtil.cs4
-rw-r--r--mcs/class/referencesource/System.Web/UI/TemplateParser.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/TraceContext.cs62
-rw-r--r--mcs/class/referencesource/System.Web/UI/Util.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/Adapters/MenuAdapter.cs4
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlBulletedListAdapter.cs4
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlDataBoundLiteralControlAdapter.cs4
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlHyperLinkAdapter.cs4
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlImageButtonAdapter.cs8
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlLiteralAdapter.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlLiteralControlAdapter.cs4
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlPageAdapter.cs26
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlPhoneLinkAdapter.cs6
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlRadioButtonAdapter.cs4
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlTextBoxAdapter.cs8
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/BaseDataBoundControl.cs4
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/ChangePassword.cs12
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/CheckBoxList.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/DataBoundControl.cs15
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/DataGridItem.cs1
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/DetailsView.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/DropDownList.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/GridView.cs24
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/ICompositeControlDesignerAccessor.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/IFieldControl.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/ListControl.cs50
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/Listbox.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/LoginView.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/MenuItem.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/MenuRenderingMode.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/ModelDataSourceView.cs407
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/PagerTable.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/Panel.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/PasswordRecovery.cs4
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/RadioButtonList.cs3
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/RepeatLayout.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/Repeater.cs68
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/SelectResult.cs17
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/Style.cs3
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/TextBox.cs10
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/WebControl.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/Wizard.cs4
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebControls/basecomparevalidator.cs6
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebParts/CatalogZoneBase.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebParts/EditorPart.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebParts/EditorZoneBase.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebParts/ProxyWebPartConnectionCollection.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebParts/WebPartManager.cs8
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebParts/WebPartZoneBase.cs4
-rw-r--r--mcs/class/referencesource/System.Web/UI/WebResourceAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Web/UI/WmlTextWriter.cs12
-rw-r--r--mcs/class/referencesource/System.Web/UnsafeNativeMethods.cs13
-rw-r--r--mcs/class/referencesource/System.Web/Util/AppSettings.cs27
-rw-r--r--mcs/class/referencesource/System.Web/Util/AppVerifier.cs151
-rw-r--r--mcs/class/referencesource/System.Web/Util/AppVerifierErrorCode.cs8
-rw-r--r--mcs/class/referencesource/System.Web/Util/BinaryCompatibility.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Util/FastPropertyAccessor.cs12
-rw-r--r--mcs/class/referencesource/System.Web/Util/HashCodeCombiner.cs4
-rw-r--r--mcs/class/referencesource/System.Web/Util/HeapAllocHandle.cs26
-rw-r--r--mcs/class/referencesource/System.Web/Util/HttpEncoder.cs48
-rw-r--r--mcs/class/referencesource/System.Web/Util/ParseHttpDate.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Util/StringUtil.cs52
-rw-r--r--mcs/class/referencesource/System.Web/Util/SynchronizationHelper.cs63
-rw-r--r--mcs/class/referencesource/System.Web/Util/TlsTokenBindingHandle.cs68
-rw-r--r--mcs/class/referencesource/System.Web/Util/VersionUtil.cs2
-rw-r--r--mcs/class/referencesource/System.Web/Util/versioninfo.cs7
-rw-r--r--mcs/class/referencesource/System.Web/VirtualPath.cs5
-rw-r--r--mcs/class/referencesource/System.Web/WebSockets/AspNetWebSocket.cs4
-rw-r--r--mcs/class/referencesource/System.Web/httpserverutility.cs5
-rw-r--r--mcs/class/referencesource/System.Web/misc/SecurityUtils.cs6
-rw-r--r--mcs/class/referencesource/System.Workflow.Activities/Common/AssemblyRef.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Activities/Common/BasePropertyDescriptor.cs6
-rw-r--r--mcs/class/referencesource/System.Workflow.Activities/Common/CompModHelpers.cs18
-rw-r--r--mcs/class/referencesource/System.Workflow.Activities/Common/CompilerHelpers.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Activities/Common/DelegateTypeInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Activities/Common/NativeMethods.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Activities/Common/TypeSystemHelpers.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Activities/Common/ValidationHelpers.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Activities/Common/Walker.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Activities/Common/userdatakeys.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Activities/CorrelationValidator.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Activities/Delay.cs4
-rw-r--r--mcs/class/referencesource/System.Workflow.Activities/LocalService/CorrelationService.cs14
-rw-r--r--mcs/class/referencesource/System.Workflow.Activities/LocalService/FollowerQueueCreator.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Activities/State.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Activities/StateMachineHelpers.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Activity.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/ActivityExecutor.cs6
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/TypeSystem/DesignTimeType.cs18
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/TypeSystem/TypeProvider.cs12
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/XomlCompiler.cs88
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/XomlCompilerHelpers.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/DependencyProperty.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/CommandSet.cs4
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/CompositeActivityDesigner.cs8
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/CustomActivityDesigner.cs16
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/Dialogs/ThemeConfigurationDialog.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/Dialogs/TypeBrowserDialog.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/Dialogs/WorkflowPageSetupDialog.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/MenuCommands.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/ReferenceService.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/StructuredCompositeActivityDesigner.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/WorkflowView.cs4
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/RuleDeclaration.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/ScheduleChanges.cs4
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/Shared/AssemblyRef.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/Shared/BasePropertyDescriptor.cs6
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/Shared/CompModHelpers.cs18
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/Shared/CompilerHelpers.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/Shared/DelegateTypeInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/Shared/NativeMethods.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/Shared/TypeSystemHelpers.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/Shared/ValidationHelpers.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/Shared/Walker.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/Shared/XomlSerializationHelpers.cs10
-rw-r--r--mcs/class/referencesource/System.Workflow.ComponentModel/Shared/userdatakeys.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Runtime/Common/Shared/DigestComparer.cs39
-rw-r--r--mcs/class/referencesource/System.Workflow.Runtime/DebugEngine/DebugController.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Runtime/DebugEngine/DebugControllerThread.cs4
-rw-r--r--mcs/class/referencesource/System.Workflow.Runtime/ExecutorLocksHeldException.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Runtime/Hosting/SqlWorkflowPersistenceService.cs6
-rw-r--r--mcs/class/referencesource/System.Workflow.Runtime/Hosting/WorkflowWebHostingModule.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Runtime/ISupportInterop.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Runtime/Scheduler.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Runtime/System/Activities/Statements/Interop.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Runtime/TransactionalProperties.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Runtime/WorkflowEventArgs.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Runtime/WorkflowEventInternal.cs2
-rw-r--r--mcs/class/referencesource/System.Workflow.Runtime/WorkflowExecutor.cs14
-rw-r--r--mcs/class/referencesource/System.WorkflowServices/GlobalSuppressions.cs6
-rw-r--r--mcs/class/referencesource/System.WorkflowServices/System/ServiceModel/QueueNameHelper.cs2
-rw-r--r--mcs/class/referencesource/System.WorkflowServices/System/ServiceModel/WorkflowServiceHost.cs2
-rw-r--r--mcs/class/referencesource/System.WorkflowServices/System/Workflow/Activities/Design/OperationPickerDialog.cs2
-rw-r--r--mcs/class/referencesource/System.WorkflowServices/System/Workflow/Runtime/Hosting/SynchronizationContextWorkflowSchedulerService.cs2
-rw-r--r--mcs/class/referencesource/System.Xml.Linq/System/Xml/Linq/XLinq.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/InternalApis/Clr/inc/AppContextDefaultValues.cs170
-rw-r--r--mcs/class/referencesource/System.Xml/InternalApis/Clr/inc/LocalAppContext.cs128
-rw-r--r--mcs/class/referencesource/System.Xml/InternalApis/NDP_Common/inc/Win8Helpers.cs8
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Assembly/System.Xml.Assembly.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Base64Decoder.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Base64Encoder.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/BinHexDecoder.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/BinHexEncoder.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/BinXmltoken.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/SqlUtils.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/XmlBinaryReader.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/XmlBinaryReaderAsync.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/BitStack.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Bits.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/ByteStack.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Cache/Shape.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Cache/ShapeGenerator.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentBuilder.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentIterator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentNavigator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentView.cs6
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNode.cs3
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeHelper.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeInfoAtom.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeView.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeViewPropertyDescriptor.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/AppContextDefaultValues.Defaults.cs46
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/BinaryCompatibility.cs6
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/CharEntityEncoderFallback.cs10
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/ConformanceLevel.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/DtdProcessing.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/EntityHandling.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/HtmlEncodedRawTextWriter.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/HtmlTernaryTree.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/HtmlUtf8RawTextWriter.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdParser.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdParserAdapter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdParserAsync.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/IRemovableWriter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/IValidationEventHandling.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/IncrementalReadDecoders.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/LocalAppContextSwitches.cs33
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/NamespaceHandling.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/NewLineHandling.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/QueryOutputWriter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/QueryOutputWriterV1.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/ReadContentAsBinaryHelper.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/ReadOnlyTernaryTree.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/ReadState.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/SecureStringHasher.cs47
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/TextEncodedRawTextWriter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/TextUtf8RawTextWriter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/ValidatingReaderNodeData.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/ValidationType.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/WhitespaceHandling.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlAsyncCheckReader.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlAsyncCheckWriter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlAutoDetectWriter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlCharCheckingReader.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlCharCheckingWriter.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlEncodedRawTextWriter.cs9
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlEncodedRawTextWriterAsync.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlEventCache.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlParserContext.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlRawWriter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlReader.cs8
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlReaderSettings.cs14
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlSpace.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlSubtreeReader.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextEncoder.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextReader.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextReaderImpl.cs11
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextReaderImplHelpers.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextWriter.cs8
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlUtf8RawTextWriter.cs10
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlUtf8RawTextWriterAsync.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlValidatingReader.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlValidatingReaderImpl.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWellFormedWriter.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWellFormedWriterAsync.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWellFormedWriterHelpers.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWrappingReader.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWrappingWriter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWriter.cs3
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWriterAsync.cs3
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWriterSettings.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XsdCachingReader.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Core/XsdValidatingReader.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/DiagnosticsSwitches.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/DocumentSchemaValidator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/DocumentXPathNavigator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/DocumentXmlWriter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/DomNameTable.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XPathNodeList.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlAttribute.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlAttributeCollection.cs3
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlCDataSection.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlCharacterData.cs3
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlChildEnumerator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlChildNodes.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlComment.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDeclaration.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDocument.cs3
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDocumentFragment.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDocumentType.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDomTextWriter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlElement.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlElementList.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlEntity.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlEntityReference.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlEventChangedAction.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlImplementation.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlLinkedNode.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlLoader.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlName.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNamedNodemap.cs3
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNode.cs9
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeChangedEventArgs.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeChangedEventHandler.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeList.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeReader.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNotation.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlProcessingInstruction.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlSignificantWhiteSpace.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlText.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlUnspecifiedAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlWhitespace.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/EmptyEnumerator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/HWStack.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/IHasXmlNode.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/IXmlLineInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/IXmlNamespaceResolver.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/LineInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/MTNameTable.cs10
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/NameTable.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Ref.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Resolvers/XmlKnownDtds.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Resolvers/XmlPreloadedResolver.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Resolvers/XmlPreloadedResolverAsync.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/Asttree.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/AutoValidator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/BaseProcessor.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/BaseValidator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/BitSet.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/Chameleonkey.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/CompiledidEntityConstraint.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/ConstraintStruct.cs107
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/ContentValidator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/DataTypeImplementation.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/DtdParser.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/DtdValidator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/FacetChecker.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/IXmlSchemaInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/Inference/Infer.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/Inference/XmlSchemaInferenceException.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/NamespaceList.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/Parser.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/Preprocessor.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaAttDef.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaBuilder.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaCollectionCompiler.cs6
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaCollectionpreProcessor.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaDeclBase.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaElementDecl.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaEntity.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaNames.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaNamespacemanager.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaNotation.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaSetCompiler.cs10
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaType.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/ValidationEventArgs.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/ValidationEventHandler.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/ValidationState.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XdrBuilder.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XdrValidator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlAtomicValue.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchema.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAll.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAnnotated.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAnnotation.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAny.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAnyAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAppInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAttributeGroup.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAttributeGroupref.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaChoice.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaCollection.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaCompilationSettings.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexContent.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexContentExtension.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexContentRestriction.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexType.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContent.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContentModel.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContentProcessing.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContentType.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaDataType.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaDerivationMethod.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaDocumentation.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaElement.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaException.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaExternal.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaFacet.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaForm.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaGroup.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaGroupBase.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaGroupRef.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaIdEntityConstraint.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaImport.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaInclude.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaNotation.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaObject.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaObjectCollection.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaObjectTable.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaParticle.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaRedefine.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSequence.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSet.cs24
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleContent.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleContentExtension.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleContentRestriction.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleType.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeContent.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeList.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeRestriction.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeUnion.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSubstitutionGroup.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaType.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaUse.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaValidationException.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaValidator.cs8
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaValidity.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSeverityType.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlTokenizedType.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlTypeCode.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlValueConverter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdBuilder.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdDateTime.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdDuration.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdValidator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/Advanced/SchemaImporterExtension.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeExporter.cs3
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeGenerationoptions.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeGenerator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeIdentifier.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeIdentifiers.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/Compilation.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/Compiler.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/ConfigurationStrings.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/DateTimeSerializationSection.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SchemaImporterExtensionElement.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SchemaImporterExtensionElementCollection.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SchemaImporterExtensionsSection.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SerializationSectionGroup.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/IXmlSerializable.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/IXmlTextParser.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/ImportContext.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/Mappings.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/Models.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/NameTable.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/PrimitiveXmlSerializers.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/SchemaImporter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/SchemaObjectWriter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapAttributeAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapAttributeOverrides.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapAttributes.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapCodeExporter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapElementAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapEnumAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapIgnoreAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapIncludeAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapReflectionImporter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapSchemaExporter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapSchemaImporter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapSchemamember.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapTypeAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/SourceInfo.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/Types.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAnyAttributeAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAnyElementAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAnyElementAttributes.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlArrayAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlArrayItemAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlArrayItemAttributes.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAttributeAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAttributeOverrides.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAttributes.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlChoiceIdentifierAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlCodeExporter.cs8
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlElementAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlElementAttributes.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlEnumAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlIgnoreAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlIncludeAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlMapping.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlMemberMapping.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlMembersMapping.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlNamespaceDeclarationsAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlReflectionImporter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlReflectionMember.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlRootAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemaExporter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemaImporter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemaProviderAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemas.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationGeneratedCode.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationILGen.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationReader.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationReaderILGen.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationWriter.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationWriterILGen.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializer.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerAssemblyAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerFactory.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerNamespaces.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerVersionAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlTextAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlTypeAttribute.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlTypeMapping.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/Xmlcustomformatter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/_Events.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Serialization/indentedWriter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/ValidateNames.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/IXPathNavigable.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/AbsoluteQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/AstNode.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/AttributeQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Axis.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/BaseAxisQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/BooleanExpr.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/BooleanFunctions.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CacheAxisQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CacheChildrenQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CacheOutputQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ChildrenQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ClonableStack.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CompiledXPathExpr.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ContextQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DescendantBaseQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DescendantQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DescendantoverDescendantQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DocumentorderQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/EmptyQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ExtensionQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Filter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FilterQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FollowingQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FollowingSibling.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ForwardPositionQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Function.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FunctionQuery.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Group.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/GroupQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/IdQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/IteratorFilter.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/LogicalExpr.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/MergeFilterQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NamespaceQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NodeFunctions.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NumberFunctions.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NumericExpr.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Operand.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/OperandQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Operator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ParentQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/PrecedingQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/PrecedingSibling.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Query.cs3
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/QueryBuilder.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ResetableIterator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ReversePositionQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Root.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/SortQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/StringFunctions.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/UnionExpr.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ValueQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Variable.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/VariableQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathAncestorIterator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathAncestorQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathArrayIterator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathAxisIterator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathChildIterator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathDescendantIterator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathEmptyIterator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathMultyIterator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathParser.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathScanner.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathSelectionIterator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathSelfQuery.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathSingletonIterator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathDocument.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathException.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathExpr.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathItem.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNamespaceScope.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNavigator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNavigatorKeyComparer.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNavigatorReader.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNodeIterator.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNodeType.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlCharType.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlComplianceUtil.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlConvert.cs4
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlDownloadManager.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlEncoding.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlException.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlNameTable.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlNamespaceScope.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlNamespacemanager.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlNodeOrder.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlNodeType.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlNullResolver.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlQualifiedName.cs74
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlReservedNs.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlResolver.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlSecureResolver.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/XmlUrlResolver.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Xslt/XslCompiledTransform.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Xslt/XslTransform.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltArgumentList.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltContext.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltException.cs2
-rw-r--r--mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltSettings.cs2
-rw-r--r--mcs/class/referencesource/System/InternalApis/Clr/inc/AppContextDefaultValues.cs170
-rw-r--r--mcs/class/referencesource/System/InternalApis/Clr/inc/LocalAppContext.cs128
-rw-r--r--mcs/class/referencesource/System/InternalApis/NDP_Common/inc/PinnableBufferCache.cs9
-rw-r--r--mcs/class/referencesource/System/compmod/microsoft/visualbasic/VBCodeProvider.cs4
-rw-r--r--mcs/class/referencesource/System/compmod/microsoft/win32/SafeNativeMethods.cs13
-rw-r--r--mcs/class/referencesource/System/compmod/microsoft/win32/UnsafeNativeMethods.cs6
-rw-r--r--mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeEventLogReadHandle.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeEventLogWriteHandle.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeFileMapViewHandle.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeFileMappingHandle.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeLibraryHandle.cs4
-rw-r--r--mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeLocalMemHandle.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeProcessHandle.cs15
-rw-r--r--mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeTimerHandle.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeUserTokenHandle.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/Runtime/InteropServices/ComTypes/FxCopSuppression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeArgumentReferenceExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeArrayCreateExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeArrayIndexerExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeAssignStatement.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeAttachEventStatement.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeArgument.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeArgumentCollection.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeDeclaration.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeDeclarationCollection.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeBaseReferenceExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeBinaryOperatorExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeBinaryOperatorType.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeCastExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeCatchClause.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeCatchClauseCollection.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeChecksumPragma.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeComment.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeCommentStatement.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeCommentStatementCollection.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeCompileUnit.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeConditionStatement.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeConstructor.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeDefaultValueExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeDelegateCreateExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeDelegateInvokeExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeDirectionExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeDirective.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeDirectiveCollection.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeEntryPointMethod.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeEventReferenceExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeExpressionCollection.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeExpressionStatement.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeFieldReferenceExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeGotoStatement.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeIndexerExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeIterationStatement.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeLabeledStatement.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeLinePragma.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeMemberEvent.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeMemberField.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeMemberMethod.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeMemberProperty.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeMethodInvokeExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeMethodReturnStatement.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeNamespace.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeNamespaceCollection.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeNamespaceImport.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeNamespaceImportCollection.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeObject.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeObjectCreateExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeParameterDeclarationExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeParameterDeclarationExpressionCollection.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodePrimitiveExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodePropertyReferenceExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodePropertySetValueReferenceExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeRegionDirective.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeRegionMode.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeRemoveEventStatement.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetCompileUnit.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetStatement.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetTypeMember.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeStatement.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeStatementCollection.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeThisReferenceExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeThrowExceptionStatement.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeTryCatchFinallyStatement.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeTypeConstructor.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeTypeDeclaration.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeTypeDeclarationCollection.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeTypeDelegate.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeTypeMember.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeTypeMemberCollection.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeTypeOfExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeTypeParameter.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeTypeParameterCollection.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeTypeReference.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeTypeReferenceCollection.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeTypeReferenceExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeVariableDeclarationStatement.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/CodeVariableReferenceExpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/FieldDirection.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/MemberAttributes.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/codemethodreferenceexpression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeCompiler.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeDOMProvider.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeDomConfigurationHandler.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeGenerator.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeGeneratorOptions.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeParser.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeValidator.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerError.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerErrorCollection.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerInfo.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerParameters.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerResults.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/Executor.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/GeneratedCodeAttribute.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/GeneratorSupport.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/ICodeCompiler.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/ICodeGenerator.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/ICodeParser.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/IndentTextWriter.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/LanguageOptions.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/RedistVersionInfo.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/codedom/compiler/TempFiles.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/collections/generic/iset.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/collections/generic/linkedlist.cs4
-rw-r--r--mcs/class/referencesource/System/compmod/system/collections/generic/queue.cs3
-rw-r--r--mcs/class/referencesource/System/compmod/system/collections/generic/sorteddictionary.cs22
-rw-r--r--mcs/class/referencesource/System/compmod/system/collections/generic/sortedlist.cs41
-rw-r--r--mcs/class/referencesource/System/compmod/system/collections/generic/sortedset.cs4
-rw-r--r--mcs/class/referencesource/System/compmod/system/collections/generic/stack.cs5
-rw-r--r--mcs/class/referencesource/System/compmod/system/collections/generic/throwhelper.cs18
-rw-r--r--mcs/class/referencesource/System/compmod/system/collections/objectmodel/observablecollection.cs12
-rw-r--r--mcs/class/referencesource/System/compmod/system/collections/specialized/casesensitivestringdictionary.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/collections/specialized/hybriddictionary.cs40
-rw-r--r--mcs/class/referencesource/System/compmod/system/collections/specialized/marshalinghelpers.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/collections/specialized/stringdictionary.cs272
-rw-r--r--mcs/class/referencesource/System/compmod/system/componentmodel/AsyncOperation.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/componentmodel/FxCopSuppression.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/componentmodel/InstallerTypeAttribute.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/componentmodel/LicenseProviderAttribute.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/componentmodel/MemberDescriptor.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/componentmodel/PropertyChangedEventArgs.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/componentmodel/PropertyChangedEventHandler.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/componentmodel/PropertyDescriptor.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/componentmodel/ReflectPropertyDescriptor.cs1
-rw-r--r--mcs/class/referencesource/System/compmod/system/componentmodel/Win32Exception.cs47
-rw-r--r--mcs/class/referencesource/System/compmod/system/componentmodel/design/DesignerVerb.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/componentmodel/design/DesigntimeLicenseContextSerializer.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/componentmodel/design/PropertyTabAttribute.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/componentmodel/design/ToolboxItemAttribute.cs2
-rw-r--r--mcs/class/referencesource/System/compmod/system/diagnostics/Debug.cs96
-rw-r--r--mcs/class/referencesource/System/compmod/system/diagnostics/XmlWriterTraceListener.cs6
-rw-r--r--mcs/class/referencesource/System/compmod/system/diagnostics/assertwrapper.cs8
-rw-r--r--mcs/class/referencesource/System/misc/ClientUtils.cs6
-rw-r--r--mcs/class/referencesource/System/misc/SecurityUtils.cs6
-rw-r--r--mcs/class/referencesource/System/net/System/IriHelper.cs370
-rw-r--r--mcs/class/referencesource/System/net/System/Net/AuthenticationManager.cs752
-rw-r--r--mcs/class/referencesource/System/net/System/Net/AuthenticationScheme.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/Cache/HttpRequestCacheValidator.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/Cache/IERequestCache.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/Cache/RequestCachePolicy.cs4
-rw-r--r--mcs/class/referencesource/System/net/System/Net/Cache/WinInetCache.cs80
-rw-r--r--mcs/class/referencesource/System/net/System/Net/Configuration/DefaultProxySection.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/Configuration/TimeoutValidationAttribute.cs4
-rw-r--r--mcs/class/referencesource/System/net/System/Net/FtpWebRequest.cs158
-rw-r--r--mcs/class/referencesource/System/net/System/Net/HttpListener.cs26
-rw-r--r--mcs/class/referencesource/System/net/System/Net/HttpListenerRequest.cs6
-rw-r--r--mcs/class/referencesource/System/net/System/Net/HttpWebRequest.cs962
-rw-r--r--mcs/class/referencesource/System/net/System/Net/HttpWebResponse.cs26
-rw-r--r--mcs/class/referencesource/System/net/System/Net/IPAddress.cs7
-rw-r--r--mcs/class/referencesource/System/net/System/Net/Internal.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/NetRegistryConfiguration.cs197
-rw-r--r--mcs/class/referencesource/System/net/System/Net/SecureProtocols/NegotiateStream.cs10
-rw-r--r--mcs/class/referencesource/System/net/System/Net/SecureProtocols/_FixedSizeReader.cs4
-rw-r--r--mcs/class/referencesource/System/net/System/Net/SecureProtocols/_NegoStream.cs12
-rw-r--r--mcs/class/referencesource/System/net/System/Net/SecureProtocols/_SslState.cs8
-rw-r--r--mcs/class/referencesource/System/net/System/Net/SecureProtocols/_SslStream.cs14
-rw-r--r--mcs/class/referencesource/System/net/System/Net/ServicePoint.cs70
-rw-r--r--mcs/class/referencesource/System/net/System/Net/ServicePointManager.cs144
-rw-r--r--mcs/class/referencesource/System/net/System/Net/Sockets/Internal.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/Sockets/NetworkStream.cs14
-rw-r--r--mcs/class/referencesource/System/net/System/Net/Sockets/Socket.cs52
-rw-r--r--mcs/class/referencesource/System/net/System/Net/Sockets/SocketErrors.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/Sockets/SocketOptionName.cs8
-rw-r--r--mcs/class/referencesource/System/net/System/Net/Sockets/TCPClient.cs3
-rw-r--r--mcs/class/referencesource/System/net/System/Net/Sockets/UDPClient.cs3
-rw-r--r--mcs/class/referencesource/System/net/System/Net/WebRequest.cs57
-rw-r--r--mcs/class/referencesource/System/net/System/Net/WebSockets/ClientWebSocket.cs17
-rw-r--r--mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketBase.cs45
-rw-r--r--mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketBuffer.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketCloseStatus.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketError.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketHttpListenerDuplexStream.cs12
-rw-r--r--mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketMessageType.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketState.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/WebUtility.cs17
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_AuthenticationManager2.cs376
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_AuthenticationManagerBase.cs241
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_AuthenticationManagerDefault.cs465
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_AuthenticationState.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_AutoWebProxyScriptEngine.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_AutoWebProxyScriptHelper.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_AutoWebProxyScriptWrapper.cs18
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_BasicClient.cs22
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_ChunkParser.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_CommandStream.cs8
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_ConnectStream.cs18
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_Connection.cs20
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_ContextAwareResult.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_DigestClient.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_HTTPDateParse.cs4
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_IAuthenticationManager.cs60
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_LazyAsyncResult.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_ListenerResponseStream.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_PrefixLookup.cs173
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_SafeNetHandles.cs7
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_SecureChannel.cs3
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_TLSstream.cs14
-rw-r--r--mcs/class/referencesource/System/net/System/Net/_TimerThread.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/cookiecontainer.cs100
-rw-r--r--mcs/class/referencesource/System/net/System/Net/filewebrequest.cs41
-rw-r--r--mcs/class/referencesource/System/net/System/Net/mail/IEncodableStream.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/mail/MailHeaderInfo.cs6
-rw-r--r--mcs/class/referencesource/System/net/System/Net/mail/SmtpClient.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/mail/SmtpDateTime.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/mail/SmtpTransport.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/Net/mail/smtpconnection.cs4
-rw-r--r--mcs/class/referencesource/System/net/System/URI.cs50
-rw-r--r--mcs/class/referencesource/System/net/System/UriEnumTypes.cs2
-rw-r--r--mcs/class/referencesource/System/net/System/UriExt.cs320
-rw-r--r--mcs/class/referencesource/System/net/System/UriHelper.cs33
-rw-r--r--mcs/class/referencesource/System/net/System/_UriSyntax.cs4
-rw-r--r--mcs/class/referencesource/System/regex/system/text/regularexpressions/Regex.cs8
-rw-r--r--mcs/class/referencesource/System/regex/system/text/regularexpressions/RegexBoyerMoore.cs26
-rw-r--r--mcs/class/referencesource/System/regex/system/text/regularexpressions/RegexCompiler.cs4
-rw-r--r--mcs/class/referencesource/System/security/system/security/cryptography/cryptoapi.cs330
-rw-r--r--mcs/class/referencesource/System/security/system/security/cryptography/x509/x500Name.cs9
-rw-r--r--mcs/class/referencesource/System/security/system/security/cryptography/x509/x509certificate2.cs283
-rw-r--r--mcs/class/referencesource/System/security/system/security/cryptography/x509/x509certificate2collection.cs85
-rw-r--r--mcs/class/referencesource/System/security/system/security/cryptography/x509/x509chain.cs66
-rw-r--r--mcs/class/referencesource/System/security/system/security/cryptography/x509/x509chainelement.cs7
-rw-r--r--mcs/class/referencesource/System/security/system/security/cryptography/x509/x509extension.cs60
-rw-r--r--mcs/class/referencesource/System/security/system/security/cryptography/x509/x509store.cs37
-rw-r--r--mcs/class/referencesource/System/security/system/security/cryptography/x509/x509utils.cs41
-rw-r--r--mcs/class/referencesource/System/services/monitoring/system/diagnosticts/AsyncStreamReader.cs38
-rw-r--r--mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLog.cs12
-rw-r--r--mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLogEntry.cs2
-rw-r--r--mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLogEntryCollection.cs2
-rw-r--r--mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLogInternal.cs22
-rw-r--r--mcs/class/referencesource/System/services/monitoring/system/diagnosticts/Process.cs8
-rw-r--r--mcs/class/referencesource/System/services/monitoring/system/diagnosticts/ProcessManager.cs57
-rw-r--r--mcs/class/referencesource/System/services/monitoring/system/diagnosticts/ProcessStartInfo.cs35
-rw-r--r--mcs/class/referencesource/System/services/monitoring/system/diagnosticts/SharedUtils.cs2
-rw-r--r--mcs/class/referencesource/System/services/timers/system/timers/Timer.cs2
-rw-r--r--mcs/class/referencesource/System/sys/AppContextDefaultValues.Defaults.cs44
-rw-r--r--mcs/class/referencesource/System/sys/LocalAppContextSwitches.cs29
-rw-r--r--mcs/class/referencesource/System/sys/baseline.cs2
-rw-r--r--mcs/class/referencesource/System/sys/system/IO/compression/CompressionLevel.cs2
-rw-r--r--mcs/class/referencesource/System/sys/system/IO/compression/FastEncoderWindow.cs6
-rw-r--r--mcs/class/referencesource/System/sys/system/IO/ports/SerialStream.cs2
-rw-r--r--mcs/class/referencesource/System/sys/system/Media/SoundPlayer.cs4
-rw-r--r--mcs/class/referencesource/System/sys/system/Reflection/ICustomTypeProvider.cs2
-rw-r--r--mcs/class/referencesource/System/sys/system/collections/concurrent/BlockingCollection.cs10
-rw-r--r--mcs/class/referencesource/System/sys/system/collections/concurrent/ConcurrentBag.cs6
-rw-r--r--mcs/class/referencesource/System/sys/system/runtime/interopservices/handlecollector.cs3
-rw-r--r--mcs/class/referencesource/System/sys/system/runtime/versioning/FrameworkName.cs3
-rw-r--r--mcs/class/referencesource/System/sys/system/threading/Barrier.cs2
-rw-r--r--mcs/class/referencesource/System/sys/system/threading/semaphore.cs27
-rw-r--r--mcs/class/referencesource/System/sys/system/threading/semaphorefullexception.cs2
-rw-r--r--mcs/class/referencesource/System/sys/system/windows/markup/ValueSerializerAttribute.cs2
-rw-r--r--mcs/class/referencesource/System/sys/v4suppressions.cs4
-rw-r--r--mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/CompilationPass2TaskInternal.cs9
-rw-r--r--mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/PartialClassGenerationTaskInternal.cs19
-rw-r--r--mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/ResolveAssemblyHelper.cs6
-rw-r--r--mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/XamlBuildTaskLeaseLifetimeHelper.cs77
-rw-r--r--mcs/class/referencesource/mscorlib/GlobalSuppressions.cs200
-rw-r--r--mcs/class/referencesource/mscorlib/InternalApis/NDP_Common/inc/PinnableBufferCache.cs9
-rw-r--r--mcs/class/referencesource/mscorlib/InternalApis/NDP_Common/inc/StrongNameHelpers.cs40
-rw-r--r--mcs/class/referencesource/mscorlib/microsoft/win32/RegistryOptions.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/microsoft/win32/RegistryView.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/microsoft/win32/oavariantlib.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/microsoft/win32/registrykey.cs26
-rw-r--r--mcs/class/referencesource/mscorlib/microsoft/win32/safehandles/saferegistryhandle.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/microsoft/win32/safehandles/safewaithandle.cs48
-rw-r--r--mcs/class/referencesource/mscorlib/microsoft/win32/unsafenativemethods.cs46
-rw-r--r--mcs/class/referencesource/mscorlib/microsoft/win32/win32native.cs229
-rw-r--r--mcs/class/referencesource/mscorlib/system/AggregateException.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/AppContext/AppContext.cs171
-rw-r--r--mcs/class/referencesource/mscorlib/system/AppContext/AppContextDefaultValues.Defaults.Central.cs34
-rw-r--r--mcs/class/referencesource/mscorlib/system/AppContext/AppContextDefaultValues.Defaults.cs62
-rw-r--r--mcs/class/referencesource/mscorlib/system/AppContext/AppContextDefaultValues.DesktopOverrides.cs136
-rw-r--r--mcs/class/referencesource/mscorlib/system/AppContext/AppContextDefaultValues.cs170
-rw-r--r--mcs/class/referencesource/mscorlib/system/AppContext/AppContextSwitches.cs82
-rw-r--r--mcs/class/referencesource/mscorlib/system/AppDomainSetup.cs1431
-rw-r--r--mcs/class/referencesource/mscorlib/system/FormattableString.cs82
-rw-r--r--mcs/class/referencesource/mscorlib/system/Lazy.cs9
-rw-r--r--mcs/class/referencesource/mscorlib/system/action.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/activator.cs24
-rw-r--r--mcs/class/referencesource/mscorlib/system/appdomain.cs362
-rw-r--r--mcs/class/referencesource/mscorlib/system/appdomainattributes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/appdomainmanager.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/appdomainunloadedexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/argiterator.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/argumentexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/argumentoutofrangeexception.cs8
-rw-r--r--mcs/class/referencesource/mscorlib/system/array.cs78
-rw-r--r--mcs/class/referencesource/mscorlib/system/arraysegment.cs9
-rw-r--r--mcs/class/referencesource/mscorlib/system/attribute.cs42
-rw-r--r--mcs/class/referencesource/mscorlib/system/badimageformatexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/boolean.cs1
-rw-r--r--mcs/class/referencesource/mscorlib/system/buffer.cs111
-rw-r--r--mcs/class/referencesource/mscorlib/system/byte.cs1
-rw-r--r--mcs/class/referencesource/mscorlib/system/cannotunloadappdomainexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/char.cs29
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/Concurrent/CDSCollectionETWBCLProvider.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentDictionary.cs44
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentQueue.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentStack.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/Concurrent/IProducerConsumerCollection.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/Concurrent/OrderablePartitioner.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/Concurrent/Partitioner.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/Concurrent/PartitionerStatic.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/arraylist.cs43
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/bitarray.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/caseinsensitivecomparer.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/caseinsensitivehashcodeprovider.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/collectionbase.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/comparer.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/compatiblecomparer.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/dictionarybase.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/dictionaryentry.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/emptyreadonlydictionaryinternal.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/arraysorthelper.cs51
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/comparer.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/debugview.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/dictionary.cs28
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/equalitycomparer.cs140
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/icollection.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/icomparer.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/idictionary.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/ienumerable.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/ienumerator.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/iequalitycomparer.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/ilist.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/ireadonlycollection.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/ireadonlydictionary.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/ireadonlylist.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/keynotfoundexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/keyvaluepair.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/generic/list.cs54
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/hashtable.cs157
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/icollection.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/icomparer.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/idictionary.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/idictionaryenumerator.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/ienumerable.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/ienumerator.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/iequalitycomparer.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/ihashcodeprovider.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/ilist.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/istructuralequatable.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/keyvaluepairs.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/listdictionaryinternal.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/objectmodel/collection.cs32
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/objectmodel/keyedcollection.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/objectmodel/readonlycollection.cs17
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/objectmodel/readonlydictionary.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/queue.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/readonlycollectionbase.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/sortedlist.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/stack.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/collections/structuralcomparisons.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/cominterfaces.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/compatibilityswitches.cs54
-rw-r--r--mcs/class/referencesource/mscorlib/system/configuration/assemblies/assemblyhashalgorithm.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/console.cs48
-rw-r--r--mcs/class/referencesource/mscorlib/system/contextboundobject.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/currency.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/datetime.cs79
-rw-r--r--mcs/class/referencesource/mscorlib/system/datetimeoffset.cs12
-rw-r--r--mcs/class/referencesource/mscorlib/system/decimal.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/defaultbinder.cs8
-rw-r--r--mcs/class/referencesource/mscorlib/system/delegate.cs20
-rw-r--r--mcs/class/referencesource/mscorlib/system/deployment/cdf.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/deployment/cmsinterop.cs5
-rw-r--r--mcs/class/referencesource/mscorlib/system/deployment/isolationinterop.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/ICustomDebuggerNotification.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/assert.cs18
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/contracts/contracts.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/contracts/contractsbcl.cs17
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/debugger.cs29
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/StubEnvironment.cs350
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/ArrayTypeInfo.cs60
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/ConcurrentSet.cs123
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/ConcurrentSetItem.cs21
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/DataCollector.cs315
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EmptyStruct.cs13
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EnumHelper.cs42
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EnumerableTypeInfo.cs62
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventDataAttribute.cs142
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventFieldAttribute.cs72
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventFieldFormat.cs126
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventIgnoreAttribute.cs21
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventPayload.cs147
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventSourceActivity.cs317
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventSourceOptions.cs126
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/FieldMetadata.cs227
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/InvokeTypeInfo.cs114
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/NameInfo.cs75
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/PropertyAccessor.cs154
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/PropertyAnalysis.cs33
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/SimpleEventTypes.cs46
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/SimpleTypeInfos.cs1044
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/Statics.cs827
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingDataCollector.cs392
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingDataType.cs354
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingEventSource.cs844
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingEventTraits.cs24
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingEventTypes.cs258
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingMetadataCollector.cs366
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingTypeInfo.cs176
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingTypeInfo_T.cs158
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TypeAnalysis.cs99
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/activitytracker.cs564
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventactivityoptions.cs40
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventdescriptor.cs41
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventprovider.cs447
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventsource.cs6634
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventsourceexception.cs32
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/frameworkeventsource.cs720
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/eventing/winmeta.cs62
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/stacktrace.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/diagnostics/symbolstore/isymwriter.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/double.cs10
-rw-r--r--mcs/class/referencesource/mscorlib/system/enum.cs191
-rw-r--r--mcs/class/referencesource/mscorlib/system/environment.cs675
-rw-r--r--mcs/class/referencesource/mscorlib/system/exception.cs25
-rw-r--r--mcs/class/referencesource/mscorlib/system/executionengineexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/gc.cs103
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/CalendricalCalculationsHelper.cs414
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/Persiancalendar.cs194
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/bidicategory.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/calendar.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/calendardata.cs18
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/compareinfo.cs43
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/culturedata.cs85
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/cultureinfo.cs128
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/datetimeformat.cs11
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/datetimeparse.cs69
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/eastasianlunisolarcalendar.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/hebrewnumber.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/japanesecalendar.cs8
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/regioninfo.cs10
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/stringinfo.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/taiwancalendar.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/textelementenumerator.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/textinfo.cs106
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/timespanformat.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/timespanparse.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/globalization/umalquracalendar.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/guid.cs135
-rw-r--r--mcs/class/referencesource/mscorlib/system/iappdomain.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/iappdomainsetup.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/int16.cs1
-rw-r--r--mcs/class/referencesource/mscorlib/system/int32.cs40
-rw-r--r--mcs/class/referencesource/mscorlib/system/int64.cs1
-rw-r--r--mcs/class/referencesource/mscorlib/system/internal.cs217
-rw-r--r--mcs/class/referencesource/mscorlib/system/intptr.cs78
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/ReadLinesIterator.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/__consolestream.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/__debugoutputtextwriter.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/__error.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/__hresults.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/binaryreader.cs12
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/binarywriter.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/bufferedstream.cs8
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/directory.cs240
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/directoryinfo.cs135
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/directorynotfoundexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/driveinfo.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/drivenotfoundexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/endofstreamexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/file.cs183
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/fileaccess.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/fileattributes.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/fileinfo.cs72
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/fileloadexception.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/filemode.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/filenotfoundexception.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/fileshare.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/filestream.cs90
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/filesystemenumerable.cs53
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/filesysteminfo.cs55
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/ioexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/isolatedstorage/__hresults.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/isolatedstorage/inormalizeforisolatedstorage.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstorage.cs13
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstorageexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstoragefile.cs12
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstoragefilestream.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/longpath.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/memorystream.cs74
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/path.cs165
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/pathhelper.cs12
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/pathtoolongexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/pinnedbuffermemorystream.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/searchoption.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/seekorigin.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/stream.cs5
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/streamreader.cs21
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/streamwriter.cs13
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/stringreader.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/stringwriter.cs29
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/textreader.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/textwriter.cs11
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/unmanagedmemoryaccessor.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/unmanagedmemorystream.cs21
-rw-r--r--mcs/class/referencesource/mscorlib/system/io/unmanagedmemorystreamwrapper.cs9
-rw-r--r--mcs/class/referencesource/mscorlib/system/iobservable.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/iobserver.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/iprogress.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/math.cs139
-rw-r--r--mcs/class/referencesource/mscorlib/system/multicastdelegate.cs41
-rw-r--r--mcs/class/referencesource/mscorlib/system/nullable.cs30
-rw-r--r--mcs/class/referencesource/mscorlib/system/number.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/object.cs17
-rw-r--r--mcs/class/referencesource/mscorlib/system/oleautbinder.cs58
-rw-r--r--mcs/class/referencesource/mscorlib/system/paramsarray.cs78
-rw-r--r--mcs/class/referencesource/mscorlib/system/platforms.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/progress.cs10
-rw-r--r--mcs/class/referencesource/mscorlib/system/random.cs9
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/Associates.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/ConstructorInfo.cs26
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/RuntimeReflectionExtensions.cs127
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/__filters.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/ambiguousmatchexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/assembly.cs114
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/assemblyattributes.cs7
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/assemblyname.cs31
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/assemblynameflags.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/assemblynameproxy.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/binder.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/bindingflags.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/callingconventions.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/cominterfaces.cs26
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/customattribute.cs73
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/customattributeformatexception.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/defaultmemberattribute.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/aqnbuilder.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/assemblybuilder.cs10
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/assemblybuilderaccess.cs8
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/assemblybuilderdata.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/cominterfaces.cs32
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/constructorbuilder.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/customattributebuilder.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/dynamicilgenerator.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/dynamicmethod.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/enumbuilder.cs18
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/eventbuilder.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/eventtoken.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/fieldbuilder.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/fieldtoken.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/flowcontrol.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/generictypeparameterbuilder.cs12
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/ilgenerator.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/isymwrappercore.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/label.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/localbuilder.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/methodbuilder.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/methodbuilderinstantiation.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/methodrental.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/methodtoken.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/modulebuilder.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/modulebuilderdata.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/opcode.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/opcodes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/opcodetype.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/operandtype.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/parameterbuilder.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/parametertoken.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/pefilekinds.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/propertybuilder.cs5
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/propertytoken.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/signaturehelper.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/signaturetoken.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/stackbehaviour.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/stringtoken.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/symbolmethod.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/symboltype.cs12
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/typebuilder.cs28
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/typebuilderinstantiation.cs12
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/typetoken.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/unmanagedmarshal.cs16
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/emit/xxxontypebuilderinstantiation.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/eventattributes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/eventinfo.cs28
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/fieldattributes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/fieldinfo.cs85
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/genericparameterattributes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/icustomattributeprovider.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/interfacemapping.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/introspectionextensions.cs9
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/invalidfiltercriteriaexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/ireflect.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/ireflectabletype.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/loaderallocator.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/manifestresourceinfo.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/mdconstant.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/mdimport.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/memberfilter.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/memberinfo.cs27
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/memberinfoserializationholder.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/membertypes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/methodattributes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/methodbase.cs76
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/methodbody.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/methodimplattributes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/methodinfo.cs61
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/missing.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/module.cs15
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/obfuscateassemblyattribute.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/obfuscationattribute.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/parameterattributes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/parameterinfo.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/parametermodifier.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/pointer.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/propertyattributes.cs8
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/propertyinfo.cs31
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/reflectioncontext.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/reflectiontypeloadexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/resourceattributes.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/strongnamekeypair.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/targetexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/targetinvocationexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/targetparametercountexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/typeattributes.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/typedelegator.cs12
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/typefilter.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/reflection/typeinfo.cs167
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/__fastresourcecomparer.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/__hresults.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/filebasedresourcegroveler.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/iresourcegroveler.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/iresourcereader.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/iresourcewriter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/looselylinkedresourcereference.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/manifestbasedresourcegroveler.cs41
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/missingmanifestresourceexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/missingsatelliteassemblyexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/neutralresourceslanguageattribute.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/resourcefallbackmanager.cs38
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/resourcemanager.cs127
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/resourcereader.cs44
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/resourceset.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/resourcetypecode.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/resourcewriter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/runtimeresourceset.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/satellitecontractversionattribute.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/resources/ultimateresourcefallbacklocation.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/rttype.cs202
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/NgenServicingAttributes.cs22
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/ProfileOptimization.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs391
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/compilerservices/ConditionalWeakTable.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/compilerservices/FormattableStringFactory.cs59
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/compilerservices/IAsyncStateMachine.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/compilerservices/INotifyCompletion.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs77
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/compilerservices/YieldAwaitable.cs19
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/compilerservices/compilationrelaxations.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/compilerservices/disableprivatereflectionattribute.cs19
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/compilerservices/issignunspecifiedbyte.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/compilerservices/jithelpers.cs24
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/compilerservices/runtimehelpers.cs14
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/corruptingexceptioncommon.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionnotification.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/gcsettings.cs12
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsHelper.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsInfo.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsMethod.cs3
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsSink.cs3
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/arraywithoffset.cs9
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/attributes.cs35
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/criticalhandle.cs3
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/expando/iexpando.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/gchandle.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/iexception.cs12
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/marshal.cs419
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/pinvokemap.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/safebuffer.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/safehandle.cs12
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/IClosable.cs3
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/attributes.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/bindablevectortocollectionadapter.cs8
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/bindablevectortolistadapter.cs13
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/clrikeyvaluepairimpl.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/clripropertyvalueimpl.cs8
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/clrireferenceimpl.cs39
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/custompropertyimpl.cs58
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/dictionarytomapadapter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/enumeratortoiteratoradapter.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/eventregistrationtoken.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/eventregistrationtokentable.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iactivationfactory.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/icustomproperty.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/icustompropertyprovider.cs34
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iiterable.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iiterator.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/imap.cs7
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/imapviewtoireadonlydictionaryadapter.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ipropertyvalue.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ireadonlydictionarytoimapviewadapter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ireadonlylisttoivectorviewadapter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ireference.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/irestrictederrorinfo.cs5
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iteratortoenumeratoradapter.cs5
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ivector.cs8
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ivectorviewtoireadonlylistadapter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iwinrtclassactivator.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/listtobindablevectoradapter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/listtobindablevectorviewadapter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/listtovectoradapter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/managedactivationfactory.cs13
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/maptocollectionadapter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/maptodictionaryadapter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/mapviewtoreadonlycollectionadapter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/nativemethods.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/propertyvalue.cs8
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/runtimeclass.cs1
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/vectortocollectionadapter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/vectortolistadapter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/vectorviewtoreadonlycollectionadapter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/windowsfoundationeventhandler.cs3
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/windowsruntimemarshal.cs22
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/windowsruntimemetadata.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/winrtclassactivator.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/memoryfailpoint.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/activationservices.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/callcontext.cs12
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/channelservices.cs8
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/channelsinkstacks.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/clientsponsor.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/configuration.cs36
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/context.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/crossappdomainchannel.cs10
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/crosscontextchannel.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/identity.cs14
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/identityholder.cs33
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/iinternalmessage.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/ilease.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/isponsor.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/lease.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/leasemanager.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/leasestate.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/message.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/objref.cs18
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/realproxy.cs10
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingattributes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingconfigparser.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingproxy.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingservices.cs45
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/soapinteroptypes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/synchronizeddispatch.cs40
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/remoting/urlattribute.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/serialization/formatters/soapfault.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/serialization/formatterservices.cs5
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/serialization/objectclonehelper.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/serialization/objectidgenerator.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/serialization/safeserializationmanager.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/serialization/serializationinfo.cs55
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/serialization/streamingcontext.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/versioning/CompatibilitySwitch.cs15
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/versioning/NonVersionableAttribute.cs34
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/versioning/binarycompatibility.cs113
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtime/versioning/multitargetinghelpers.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/runtimehandles.cs38
-rw-r--r--mcs/class/referencesource/mscorlib/system/sbyte.cs1
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/accesscontrol/ace.cs12
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/accesscontrol/acl.cs64
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/accesscontrol/objectsecurity.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/accesscontrol/privilege.cs10
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/accesscontrol/rules.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/accesscontrol/securitydescriptor.cs17
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/attributes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/builtinpermissionsets.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/claims/Claim.cs321
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/claims/ClaimTypes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/claims/ClaimValueTypes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/claims/ClaimsIdentity.cs269
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/claims/ClaimsPrincipal.cs160
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/claims/RoleClaimProvider.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/codeaccesspermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/codeaccesssecurityengine.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/HashAlgorithmName.cs109
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/RSAEncryptionPadding.cs130
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/RSAEncryptionPaddingMode.cs32
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/RSASignaturePadding.cs87
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/RSASignaturePaddingMode.cs32
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetricalgorithm.cs31
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetrickeyexchangedeformatter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetrickeyexchangeformatter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetricsignaturedeformatter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetricsignatureformatter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/base64transforms.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/capinative.cs598
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/crypto.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/cryptoapitransform.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/cryptoconfig.cs15
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/cryptostream.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/derivebytes.cs7
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/des.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/descryptoserviceprovider.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/dsa.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/dsacryptoserviceprovider.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/dsasignaturedeformatter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/dsasignatureformatter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/hashalgorithm.cs9
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/hmac.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/hmacmd5.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/hmacripemd160.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha1.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha256.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha384.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha512.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/icryptotransform.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/icspasymmetricalgorithm.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/keyedhashalgorithm.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/mactripledes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/maskgenerationmethod.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/md5.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/md5cryptoserviceprovider.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/passwordderivebytes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/pkcs1maskgenerationmethod.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/randomnumbergenerator.cs17
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/rc2.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/rc2cryptoserviceprovider.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/rfc2898derivebytes.cs76
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/rijndael.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/rijndaelmanaged.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/rijndaelmanagedtransform.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/ripemd160.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/ripemd160managed.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/rngcryptoserviceprovider.cs16
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/rsa.cs198
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/rsacryptoserviceprovider.cs142
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/rsaoaepkeyexchangedeformatter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/rsaoaepkeyexchangeformatter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1keyexchangedeformatter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1keyexchangeformatter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1signaturedeformatter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1signatureformatter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/safecryptohandles.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/sha1.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/sha1cryptoserviceprovider.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/sha1managed.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/sha256.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/sha256managed.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/sha384.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/sha384managed.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/sha512.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/sha512managed.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/signaturedescription.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/symmetricalgorithm.cs9
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/tripledes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/tripledescryptoserviceprovider.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/utils.cs53
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/cryptography/x509certificates/x509certificate.cs28
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/framesecuritydescriptor.cs10
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/hostprotectionexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/hostsecuritymanager.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/ievidencefactory.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/ipermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/isecurityencodable.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/isecuritypolicyencodable.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/istackwalk.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/namedpermissionset.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissionlistset.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/environmentpermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/filedialogpermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/fileiopermission.cs41
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/gacidentitypermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/hostprotectionpermission.cs9
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/ibuiltinpermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/isolatedstoragefilepermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/isolatedstoragepermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/iunrestrictedpermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/keycontainerpermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/permissionattributes.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/permissionstate.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/principalpermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/publisheridentitypermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/reflectionpermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/registrypermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/securitypermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/siteidentitypermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/strongnameidentitypermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/strongnamepublickeyblob.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/uipermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/urlidentitypermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissions/zoneidentitypermission.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissionset.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissionsetenumerator.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissionsettriple.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/permissiontoken.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/allmembershipcondition.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/applicationdirectory.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/applicationdirectorymembershipcondition.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/applicationsecurityinfo.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/applicationsecuritymanager.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/applicationtrust.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/assemblyevidencefactory.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/codegroup.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/evidence.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/evidencebase.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/evidencetypedescriptor.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/filecodegroup.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/firstmatchcodegroup.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/gac.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/gacmembershipcondition.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/hash.cs23
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/hashmembershipcondition.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/iapplicationtrustmanager.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/iconstantmembershipcondition.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/idelayevaluatedevidence.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/iidentitypermissionfactory.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/imembershipcondition.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/iruntimeevidencefactory.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/netcodegroup.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/pefileevidencefactory.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/permissionrequestevidence.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/policyexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/policylevel.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/policystatement.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/publisher.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/publishermembershipcondition.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/site.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/sitemembershipcondition.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/strongname.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/strongnamemembershipcondition.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/unioncodegroup.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/url.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/urlmembershipcondition.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/zone.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policy/zonemembershipcondition.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/policymanager.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/principal/genericidentity.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/principal/genericprincipal.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/principal/identitynotmappedexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/principal/identityreference.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/principal/iidentity.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/principal/iprincipal.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/principal/ircollection.cs20
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/principal/ntaccount.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/principal/principalpolicy.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/principal/sid.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/principal/tokenaccesslevels.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/principal/tokenimpersonationlevel.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/principal/win32.cs8
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/principal/windowsidentity.cs107
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/principal/windowsimpersonationcontext.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/principal/windowsprincipal.cs10
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/readonlypermissionset.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/safesecurityhandles.cs59
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/securestring.cs26
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/securitycontext.cs12
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/securitydocument.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/securityelement.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/securityexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/securitymanager.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/securityruntime.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/securitystate.cs8
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/securityzone.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/util/config.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/util/hex.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/util/parser.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/util/sitestring.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/util/stringexpressionset.cs15
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/util/tokenbasedset.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/util/tokenbasedsetenumerator.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/util/tokenizer.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/util/urlstring.cs140
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/util/xmlutil.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/verificationexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/security/xmlsyntaxexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/sharedstatics.cs27
-rw-r--r--mcs/class/referencesource/mscorlib/system/single.cs10
-rw-r--r--mcs/class/referencesource/mscorlib/system/string.cs311
-rw-r--r--mcs/class/referencesource/mscorlib/system/stubhelpers.cs447
-rw-r--r--mcs/class/referencesource/mscorlib/system/supportedplatformsattribute.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/text/asciiencoding.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/text/decoder.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/text/encoder.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/text/encoderreplacementfallback.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/text/encoding.cs105
-rw-r--r--mcs/class/referencesource/mscorlib/system/text/encodingprovider.cs138
-rw-r--r--mcs/class/referencesource/mscorlib/system/text/gb18030encoding.cs144
-rw-r--r--mcs/class/referencesource/mscorlib/system/text/iso2022encoding.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/text/normalization.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/text/stringbuilder.cs100
-rw-r--r--mcs/class/referencesource/mscorlib/system/text/unicodeencoding.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/text/utf32encoding.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/text/utf7encoding.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/text/utf8encoding.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threadattributes.cs3
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/CDSsyncETWBCLProvider.cs10
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/CancellationToken.cs27
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/CancellationTokenRegistration.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/CancellationTokenSource.cs57
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/CountdownEvent.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/LazyInitializer.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/ManualResetEventSlim.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/SemaphoreSlim.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/SpinLock.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/SpinWait.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/AsyncCausalityTracer.cs207
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/BeginEndAwaitableAdapter.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/ConcurrentExclusiveSchedulerPair.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/Future.cs17
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/FutureFactory.cs39
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/Parallel.cs53
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/ParallelLoopState.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/ParallelRangeManager.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/ProducerConsumerQueues.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/TPLETWProvider.cs298
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs355
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskCanceledException.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskCompletionSource.cs6
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskContinuation.cs73
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskExceptionHolder.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskFactory.cs33
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskScheduler.cs9
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskSchedulerException.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskToApm.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/Tasks/ThreadPoolTaskScheduler.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/ThreadLocal.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/abandonedmutexexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/apartmentstate.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/asynclocal.cs118
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/autoresetevent.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/compressedstack.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/eventresetmode.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/eventwaithandle.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs501
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/hostexecutioncontextmanager.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/interlocked.cs25
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/lockcookie.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/lockrecursionexception.cs4
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/manualresetevent.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/monitor.cs14
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/mutex.cs117
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/overlapped.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/parameterizedthreadstart.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/readerwriterlock.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/semaphorefullexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/sendorpostcallback.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/synchronizationcontext.cs110
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/synchronizationlockexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/thread.cs105
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/threadabortexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/threadinterruptedexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/threadpool.cs19
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/threadpriority.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/threadstart.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/threadstartexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/threadstate.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/threadstateexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/timeout.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/timer.cs20
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/volatile.cs86
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/waithandle.cs12
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/waithandleExtensions.cs47
-rw-r--r--mcs/class/referencesource/mscorlib/system/threading/waithandlecannotbeopenedexception.cs2
-rw-r--r--mcs/class/referencesource/mscorlib/system/throwhelper.cs38
-rw-r--r--mcs/class/referencesource/mscorlib/system/timespan.cs30
-rw-r--r--mcs/class/referencesource/mscorlib/system/timezoneinfo.cs1360
-rw-r--r--mcs/class/referencesource/mscorlib/system/type.cs72
-rw-r--r--mcs/class/referencesource/mscorlib/system/typedreference.cs3
-rw-r--r--mcs/class/referencesource/mscorlib/system/uint16.cs1
-rw-r--r--mcs/class/referencesource/mscorlib/system/uint32.cs19
-rw-r--r--mcs/class/referencesource/mscorlib/system/uint64.cs1
-rw-r--r--mcs/class/referencesource/mscorlib/system/uintptr.cs21
-rw-r--r--mcs/class/referencesource/mscorlib/system/version.cs60
-rw-r--r--mcs/class/referencesource/mscorlib/system/weakreferenceoft.cs10
3992 files changed, 67165 insertions, 26678 deletions
diff --git a/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/EventLogCategory.cs b/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/EventLogCategory.cs
index 11bca186538..e68da03ac22 100644
--- a/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/EventLogCategory.cs
+++ b/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/EventLogCategory.cs
@@ -4,8 +4,8 @@
namespace System.ServiceModel.Diagnostics
{
- //
-
+ // FUTURE: This class is kept so that 4.0 Extended SKU runs fine on 4.5 Client. Will remove this in the future.
+ // Order is important here. The order must match the order of strings in ..\EventLog\EventLog.mc
[Obsolete("This has been replaced by System.Runtime.Diagnostics.EventLogCategory")]
enum EventLogCategory : ushort
{
@@ -25,4 +25,4 @@ namespace System.ServiceModel.Diagnostics
ListenerAdapter
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/EventLogEventId.cs b/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/EventLogEventId.cs
index 3fe96971ff6..0652dfe0c75 100644
--- a/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/EventLogEventId.cs
+++ b/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/EventLogEventId.cs
@@ -4,8 +4,8 @@
namespace System.ServiceModel.Diagnostics
{
- //
-
+ // FUTURE: This class is kept so that 4.0 Extended SKU runs fine on 4.5 Client. Will remove this in the future.
+ // Order is important here. The order must match the order of strings in ..\EventLog\EventLog.mc
[Obsolete("This has been replaced by System.Runtime.Diagnostics.EventLogEventId")]
enum EventLogEventId : uint
{
diff --git a/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/NativeMethods.cs b/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/NativeMethods.cs
index bbcf4395c8b..1da0a2cfd76 100644
--- a/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/NativeMethods.cs
+++ b/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/NativeMethods.cs
@@ -19,4 +19,4 @@ namespace System.ServiceModel.Diagnostics
[SecurityCritical]
internal static extern SafeEventLogWriteHandle RegisterEventSource(string uncServerName, string sourceName);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/TraceSourceKind.cs b/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/TraceSourceKind.cs
index 97ccaa01f27..8b361b22879 100644
--- a/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/TraceSourceKind.cs
+++ b/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/TraceSourceKind.cs
@@ -9,4 +9,4 @@ namespace System.ServiceModel.Diagnostics
DiagnosticTraceSource,
PiiTraceSource
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/Utility.cs b/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/Utility.cs
index 71fd837a355..9bdec4c12ca 100644
--- a/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/Utility.cs
+++ b/mcs/class/referencesource/SMDiagnostics/System/ServiceModel/Diagnostics/Utility.cs
@@ -28,7 +28,7 @@ namespace System.ServiceModel.Diagnostics
[SuppressMessage(FxCop.Category.Security, FxCop.Rule.TransparentMethodsMustNotReferenceCriticalCode)] // we got APTCA approval with no requirement to fix this transparency warning
internal static void CloseInvalidOutSafeHandle(SafeHandle handle)
{
- // Workaround for 64-bit CLR bug VSWhidbey 546830 - sometimes invalid SafeHandles come back null.
+ // Workaround for 64-bit CLR
if (handle != null)
{
#pragma warning disable 618
diff --git a/mcs/class/referencesource/System.Activities.DurableInstancing/AssemblyInfo.cs b/mcs/class/referencesource/System.Activities.DurableInstancing/AssemblyInfo.cs
index b8d9e68ff0e..bbaeab37bad 100644
--- a/mcs/class/referencesource/System.Activities.DurableInstancing/AssemblyInfo.cs
+++ b/mcs/class/referencesource/System.Activities.DurableInstancing/AssemblyInfo.cs
@@ -27,4 +27,4 @@ using System.Security.Permissions;
// by using the '*' as shown below:
// Friend assemblies
-// Partial Trust :
+// Partial Trust : \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/InstanceCompletionAction.cs b/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/InstanceCompletionAction.cs
index caf08656b23..c8b21a74a70 100644
--- a/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/InstanceCompletionAction.cs
+++ b/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/InstanceCompletionAction.cs
@@ -9,4 +9,4 @@ namespace System.Activities.DurableInstancing
DeleteNothing = 0,
DeleteAll
};
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/InstanceEncodingOption.cs b/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/InstanceEncodingOption.cs
index e313b7eeeab..62ab9512ebe 100644
--- a/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/InstanceEncodingOption.cs
+++ b/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/InstanceEncodingOption.cs
@@ -9,4 +9,4 @@ namespace System.Activities.DurableInstancing
None = 0,
GZip
};
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/LoadType.cs b/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/LoadType.cs
index ebc665f5ddc..6507d03da2c 100644
--- a/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/LoadType.cs
+++ b/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/LoadType.cs
@@ -11,4 +11,4 @@ namespace System.Activities.DurableInstancing
LoadByKey = 2,
LoadByInstance = 3
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/PrimitiveType.cs b/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/PrimitiveType.cs
index f1a6a749e75..d919f07772f 100644
--- a/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/PrimitiveType.cs
+++ b/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/PrimitiveType.cs
@@ -30,4 +30,4 @@ namespace System.Activities.DurableInstancing
XmlQualifiedName,
Unavailable = 99
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/SqlCommandAsyncResult.cs b/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/SqlCommandAsyncResult.cs
index 1c9cd4b90f2..b7b1bcd90ef 100644
--- a/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/SqlCommandAsyncResult.cs
+++ b/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/SqlCommandAsyncResult.cs
@@ -116,7 +116,7 @@ namespace System.Activities.DurableInstancing
SqlCommandAsyncResult thisPtr = (SqlCommandAsyncResult) state;
try
{
- // this can throw on the [....] path - we need to signal the callback
+ // this can throw on the sync path - we need to signal the callback
thisPtr.StartCommandInternal(false);
}
catch (Exception e)
@@ -169,7 +169,7 @@ namespace System.Activities.DurableInstancing
this.sqlCommand.Connection.Close();
}
- // If we completed [....] then any retry is done by the original caller.
+ // If we completed sync then any retry is done by the original caller.
if (!result.CompletedSynchronously)
{
if (this.CheckRetryCountAndTimer() && ShouldRetryForSqlError(exception.Number, RetryErrorOptions.RetryOnEnd))
diff --git a/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/SuspensionStateChange.cs b/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/SuspensionStateChange.cs
index 52cbdd6a0ea..0999941ca29 100644
--- a/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/SuspensionStateChange.cs
+++ b/mcs/class/referencesource/System.Activities.DurableInstancing/System/Activities/DurableInstancing/SuspensionStateChange.cs
@@ -10,4 +10,4 @@ namespace System.Activities.DurableInstancing
SuspendInstance = 1,
UnsuspendInstance = 2
};
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.Presentation/Microsoft.Tools.Common/Microsoft/Activities/Presentation/Xaml/XamlTypeKind.cs b/mcs/class/referencesource/System.Activities.Presentation/Microsoft.Tools.Common/Microsoft/Activities/Presentation/Xaml/XamlTypeKind.cs
index 2aaae52f26f..bf1bf11343f 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/Microsoft.Tools.Common/Microsoft/Activities/Presentation/Xaml/XamlTypeKind.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/Microsoft.Tools.Common/Microsoft/Activities/Presentation/Xaml/XamlTypeKind.cs
@@ -12,4 +12,4 @@ namespace Microsoft.Activities.Presentation.Xaml
PartialSupported, // I understand this type if you would like to remove some new properties
FullySupported, // I understand this type
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.Presentation/Microsoft.Tools.Common/Microsoft/Activities/Presentation/Xaml/XamlWriterExtensions.cs b/mcs/class/referencesource/System.Activities.Presentation/Microsoft.Tools.Common/Microsoft/Activities/Presentation/Xaml/XamlWriterExtensions.cs
index 8b73e31c731..8728eccd08f 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/Microsoft.Tools.Common/Microsoft/Activities/Presentation/Xaml/XamlWriterExtensions.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/Microsoft.Tools.Common/Microsoft/Activities/Presentation/Xaml/XamlWriterExtensions.cs
@@ -26,7 +26,7 @@ namespace Microsoft.Activities.Presentation.Xaml
consumer.SetLineInfo(lineNumber, linePosition);
}
- // This method is a workaround for TFS bug #788190, since XamlReader.ReadSubtree() should (but doesn't) preserve IXamlLineInfo on the subreader
+ // This method is a workaround for TFS
public static void Transform(XamlReader reader, XamlWriter writer, IXamlLineInfo readerLineInfo, bool closeWriter)
{
IXamlLineInfoConsumer consumer = writer as IXamlLineInfoConsumer;
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Annotations/AdornerLocation.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Annotations/AdornerLocation.cs
index 86f482beb15..34d3d24b7e2 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Annotations/AdornerLocation.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Annotations/AdornerLocation.cs
@@ -14,4 +14,4 @@ namespace System.Activities.Presentation.Annotations
TopLeft,
BottomLeft
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Annotations/IDockedAnnotation.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Annotations/IDockedAnnotation.cs
index 80054290f65..658c833204a 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Annotations/IDockedAnnotation.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Annotations/IDockedAnnotation.cs
@@ -24,4 +24,4 @@ namespace System.Activities.Presentation.Annotations
void FocusOnContent();
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Annotations/NotifyArgumentVariableAnnotationTextChanged.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Annotations/NotifyArgumentVariableAnnotationTextChanged.cs
index d4ff80cfa99..c1c10b8bf64 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Annotations/NotifyArgumentVariableAnnotationTextChanged.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Annotations/NotifyArgumentVariableAnnotationTextChanged.cs
@@ -10,7 +10,7 @@ namespace System.Activities.Presentation.Annotations
using System.Activities.Presentation.Model;
using System.Activities.Presentation.View;
- // This is to workaround a bug that updating ModelItem from outside of ArgumentDesigner/VariableDesigner will not update it.
+ // This is to workaround a
internal class NotifyArgumentVariableAnnotationTextChanged : Change
{
public ArgumentDesigner ArgumentDesigner { get; set; }
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/CategoryList.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/CategoryList.cs
index cd5a3a4784a..a8e8f20835c 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/CategoryList.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/CategoryList.cs
@@ -582,7 +582,7 @@ namespace System.Activities.Presentation.Internal.PropertyEditing
if (hasKeyboardFocus)
{
- // We just gained keyboard focus. Make sure we [....] up the current property selection
+ // We just gained keyboard focus. Make sure we sync up the current property selection
// with the keyboard focus, so that navigation works.
SynchronizeSelectionFocus(StealFocusMode.OnlyIfCurrentSelectionDoesNotHaveFocusWithin);
}
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/EditModeSwitchButtonKeyboardFix.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/EditModeSwitchButtonKeyboardFix.cs
index c77f41ffa39..6a8084d4415 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/EditModeSwitchButtonKeyboardFix.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/EditModeSwitchButtonKeyboardFix.cs
@@ -15,21 +15,21 @@ namespace System.Activities.Presentation.Internal.PropertyEditing
using System.Activities.Presentation;
// <summary>
- // This is a fix for a bug in EditModeSwitchButton which lives in System.Activities.Presentation and
- // which has already been locked as an assembly. EditModeSwitchButton only responds to MouseDown
- // events to make sure that the opening of the popup extended editor works correctly. However,
- // that means that it will never respond to keyboard or automation events. To fix it, this class
- // offers up an attached DP that, when used, hooks into events offered by EditModeSwitchButton
- // to correct this issue and still have the button do the right thing even if mouse is not involved
- // in invoking the button.
- //
- // This class is associated with every instance of EditModeSwitchButton using a setter in the
- // EditModeSwitchButton style:
- //
- // &lt;Style TargetType="{x:Type PropertyEditing:EditModeSwitchButton}" BasedOn="{StaticResource {x:Type Button}}"&gt;
- // ...
- // &lt;Setter Property="Internal:EditModeSwitchButtonKeyboardFix.ApplyFix" Value="True" /&gt;
- // </summary>
+ // This is a fix for a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
class EditModeSwitchButtonKeyboardFix
{
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/Editors/EditorUtilities.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/Editors/EditorUtilities.cs
index a9e9e78a4c0..efa004b05d8 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/Editors/EditorUtilities.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/Editors/EditorUtilities.cs
@@ -24,15 +24,15 @@ namespace System.Activities.Presentation.Internal.PropertyEditing.Editors
// That information if both returned and cached for future reference.
//
// NOTE: This method does not handle structs correctly because it will return FALSE
- // for struct types, which is incorrect. However, this bug has its counter-part in
- // System.Activities.Presentation.dll where the default NewItemFactory only instantiates
- // non-struct classes. Both of these need to be fixed at the same time because
- // they are used in conjunction. However, MWD is currently locked.
- //
- // </summary>
- // <param name="type">Type to verify</param>
- // <returns>True if the specified type is concrete and has a default constructor,
- // false otherwise.</returns>
+ // for struct types, which is incorrect. However, this
+
+
+
+
+
+
+
+
public static bool IsConcreteWithDefaultCtor(Type type)
{
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/ExtensibilityAccessor.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/ExtensibilityAccessor.cs
index 002837b49a8..7f7d788b4c1 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/ExtensibilityAccessor.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/ExtensibilityAccessor.cs
@@ -711,7 +711,7 @@ namespace System.Activities.Presentation.Internal.PropertyEditing
// Hack to deal with {x:Static ...} extensions. The Cider Markup code currently
// replaces all StaticExtensions with internal versions of the same class.
- // Once bug 100647 is fixed this code can go away.
+ // Once
private static bool IsStaticExtension(Type type)
{
return type != null && (
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/Controls/WorkaroundPopup.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/Controls/WorkaroundPopup.cs
index 0b4cf1b4b8d..4278b735643 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/Controls/WorkaroundPopup.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/Controls/WorkaroundPopup.cs
@@ -13,14 +13,14 @@ namespace System.Activities.Presentation.Internal.PropertyEditing.FromExpression
// <summary>
// This class contains specific behavior for the Popup associated with PropertyContainer.
- // Basically, it is a workaround for Windows OS bug #1745919. The "StaysOpen = false" setting
- // on a Popup does not function as we expect when the Popup is created within another
- // "StaysOpen = false" popup (or if anything has capture). What happens is the Popup first
- // checks if anything has capture, and only takes capture if nothing else has taken it. But the
- // StaysOpen behavior is implemented using the capture, so we lose that. Also, related to that
- // the Closed event will not be called, so to workaround both of those issues we essentially
- // re-implement the popup capture grabbing code, except we take capture no matter what.
- // </summary>
+ // Basically, it is a workaround for Windows OS
+
+
+
+
+
+
+
internal class WorkaroundPopup : Popup
{
private bool releasingCapture = false;
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/CategoryContainer.xaml.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/CategoryContainer.xaml.cs
index efdb0b6da29..c6d3d6d2ac3 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/CategoryContainer.xaml.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/CategoryContainer.xaml.cs
@@ -54,11 +54,11 @@ namespace System.Activities.Presentation.Internal.PropertyEditing.FromExpression
// Data for managing expanded state based on a filter.
private FilterState filterIsEmpty = FilterState.Unknown;
- // garylins 11/15/2006 - This variable has been added to fix bug 29740. The real fix is to find
- // a way to update CategoryContainers expansion state when the Category changes. The bug comes about
- // because when UpdateFilter is called from the PI, it fires the FilterUpdated event. At this time
- // the CategoryContainer is not yet built out, so it hasn't hooked up to listen to the event and hence
- // never gets it's filter state related variables updated.
+ // garylins 11/15/2006 - This variable has been added to fix
+
+
+
+
private bool haveCachedExpanded = false;
private bool wasAdvancedPinnedBeforeFilter = false;
private bool wasExpandedBeforeFilter = true;
@@ -375,7 +375,7 @@ namespace System.Activities.Presentation.Internal.PropertyEditing.FromExpression
// ###################################################
// Bugfix: this condition used to reference editor.Category.AdvancedProperties.Count instead of
- // editor.unconsumedAdvancedProperties, which is a bug.
+ // editor.unconsumedAdvancedProperties, which is a
if ((editor.unconsumedAdvancedProperties.Count <= 0 && editor.advancedCategoryEditors.Count == 0) || !editor.AdvancedPropertyMatchesFilter)
// ###################################################
@@ -518,8 +518,8 @@ namespace System.Activities.Presentation.Internal.PropertyEditing.FromExpression
// CIDER-SPECIFIC CHANGE IN NEED OF PORTING - BEGIN
// ###################################################
- // This change is a result of bug 88870. Blend has this issue
- // as well and will need to address it soon.
+ // This change is a result of
+
// Original code:
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/CategoryContainerCommands.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/CategoryContainerCommands.cs
new file mode 100644
index 00000000000..3897fd57c77
--- /dev/null
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/CategoryContainerCommands.cs
@@ -0,0 +1,40 @@
+
+
+// -------------------------------------------------------------------
+// Copyright (c) Microsoft Corporation. All Rights Reserved.
+// -------------------------------------------------------------------
+//From \\authoring\Sparkle\Source\1.0.1083.0\Common\Source\Framework\Properties
+namespace System.Activities.Presentation.Internal.PropertyEditing.FromExpression.Framework.PropertyInspector
+{
+ using System;
+ using System.Windows;
+ using System.Windows.Input;
+
+
+ // <summary>
+ // Standard commands and command implementations used by PropertyContainer templates
+ // and implemented by property editing hosts
+ // </summary>
+ internal static class CategoryContainerCommands
+ {
+ private static readonly RoutedCommand togglePinAdvancedProperties = new RoutedCommand("TogglePinAdvancedProperties", typeof(CategoryContainerCommands));
+ private static readonly RoutedCommand updateCategoryExpansionState = new RoutedCommand("UpdateCategoryExpansionState", typeof(CategoryContainerCommands));
+
+ // <summary>
+ // standard command to category edit host to togglePinAdvancedProperties
+ // </summary>
+ public static RoutedCommand TogglePinAdvancedProperties
+ {
+ get { return CategoryContainerCommands.togglePinAdvancedProperties; }
+ }
+
+ // <summary>
+ // standard command to property edit host to updateCategoryExpansionState
+ // </summary>
+ public static RoutedCommand UpdateCategoryExpansionState
+ {
+ get { return CategoryContainerCommands.updateCategoryExpansionState; }
+ }
+
+ }
+}
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/ExtensibilityMetadataHelper.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/ExtensibilityMetadataHelper.cs
new file mode 100644
index 00000000000..5b106a83a21
--- /dev/null
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/ExtensibilityMetadataHelper.cs
@@ -0,0 +1,113 @@
+
+// -------------------------------------------------------------------
+// Copyright (c) Microsoft Corporation. All Rights Reserved.
+// -------------------------------------------------------------------
+//From \\authoring\Sparkle\Source\1.0.1083.0\Common\Source\Framework\Properties
+namespace System.Activities.Presentation.Internal.PropertyEditing.FromExpression.Framework.PropertyInspector
+{
+ using System.ComponentModel;
+ using System.Diagnostics;
+ using System.Collections.Generic;
+ using System.Collections.ObjectModel;
+ using System;
+ using System.Activities.Presentation.PropertyEditing;
+ using System.Collections;
+ using System.Globalization;
+ using System.Runtime;
+ using System.Diagnostics.CodeAnalysis;
+
+ internal static class ExtensibilityMetadataHelper
+ {
+ // <summary>
+ // Returns an instance of the PropertyValueEditor specified in the provided attribute list.
+ // </summary>
+ // <param name="attributes">A list of attributes. If an EditorAttribute is not specified in this collection, will return null.</param>
+ // <param name="exceptionLogger">Interface for exception logging. If null, exceptions will be silently ignored.</param>
+ // <returns></returns>
+ [SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Justification = "Propagating the error might cause VS to crash")]
+ [SuppressMessage("Reliability", "Reliability108", Justification = "Propagating the error might cause VS to crash")]
+ public static PropertyValueEditor GetValueEditor(IEnumerable attributes, IMessageLogger exceptionLogger)
+ {
+ PropertyValueEditor propertyValueEditor = null;
+ if (attributes != null)
+ {
+ foreach (Attribute attribute in attributes)
+ {
+ EditorAttribute editorAttribute = attribute as EditorAttribute;
+ if (editorAttribute != null)
+ {
+ try
+ {
+ Type editorType = Type.GetType(editorAttribute.EditorTypeName);
+ if (editorType != null && typeof(PropertyValueEditor).IsAssignableFrom(editorType))
+ {
+ propertyValueEditor = (PropertyValueEditor)Activator.CreateInstance(editorType);
+ break;
+ }
+ }
+ catch (Exception e)
+ {
+ if (exceptionLogger != null)
+ {
+ exceptionLogger.WriteLine(string.Format(CultureInfo.CurrentCulture, ExceptionStringTable.ValueEditorLoadFailed, ExtensibilityMetadataHelper.GetExceptionMessage(e)));
+ }
+ }
+ }
+ }
+ }
+ return propertyValueEditor;
+ }
+
+ // <summary>
+ // Returns the type of the editor specified by the provided EditorAttribute.
+ // </summary>
+ // <param name="attribute">EditorAttribute that specifies a CategoryEditor type. If the type specified is not derived from CategoryEditor, or cannot be loaded, will return null.</param>
+ // <param name="exceptionLogger">Interface for exception logging. If null, exceptions will be silently ignored.</param>
+ // <returns></returns>
+ [SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Justification = "Propagating the error might cause VS to crash")]
+ [SuppressMessage("Reliability", "Reliability108", Justification = "Propagating the error might cause VS to crash")]
+ public static Type GetCategoryEditorType(EditorAttribute attribute, IMessageLogger exceptionLogger)
+ {
+ try
+ {
+ Type editorType = Type.GetType(attribute.EditorTypeName);
+ if (editorType != null && typeof(CategoryEditor).IsAssignableFrom(editorType))
+ {
+ return editorType;
+ }
+ }
+ catch (Exception e)
+ {
+ if (exceptionLogger != null)
+ {
+ exceptionLogger.WriteLine(string.Format(CultureInfo.CurrentCulture, ExceptionStringTable.CategoryEditorTypeLoadFailed, ExtensibilityMetadataHelper.GetExceptionMessage(e)));
+ }
+ }
+ return null;
+ }
+
+ public static string GetExceptionMessage(Exception e)
+ {
+ return (e.InnerException != null) ? e.InnerException.ToString() : e.Message;
+ }
+
+ public static bool IsEditorReusable(IEnumerable attributes)
+ {
+ bool isEditorReusable = true;
+ if (attributes != null)
+ {
+ foreach (Attribute attribute in attributes)
+ {
+ EditorReuseAttribute editorReuseAttribute = attribute as EditorReuseAttribute;
+ if (editorReuseAttribute != null)
+ {
+ isEditorReusable = editorReuseAttribute.ReuseEditor;
+ break;
+ }
+ }
+ }
+ return isEditorReusable;
+ }
+ }
+}
+
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/PropertyContainerPopupHelper.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/PropertyContainerPopupHelper.cs
new file mode 100644
index 00000000000..acb18836f3a
--- /dev/null
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/PropertyInspector/PropertyContainerPopupHelper.cs
@@ -0,0 +1,74 @@
+// -------------------------------------------------------------------
+// Copyright (c) Microsoft Corporation. All Rights Reserved.
+// -------------------------------------------------------------------
+//From \\authoring\Sparkle\Source\1.0.1083.0\Common\Source\Framework\Properties
+namespace System.Activities.Presentation.Internal.PropertyEditing.FromExpression.Framework.PropertyInspector
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Text;
+ using System.Windows;
+ using System.Windows.Controls.Primitives;
+ using System.Windows.Input;
+ using System.Windows.Media;
+ using System.Activities.Presentation.PropertyEditing;
+ using System.Activities.Presentation.Internal.PropertyEditing.FromExpression.Framework.Controls;
+
+ // <summary>
+ // Acrylic needs a way of knowing when we begin and end extended edit mode,
+ // so this class fires commands when those two events take place.
+ // </summary>
+ internal class PropertyContainerPopup : WorkaroundPopup
+ {
+ // these events allow Acrylic to implement its workaround for Avalon/MFC interop
+ // focus issues (WinOS
+ public static readonly RoutedCommand OnBeginExtendedEdit = new RoutedCommand("OnBeginExtendedEdit", typeof(PropertyContainerPopup));
+ public static readonly RoutedCommand OnEndExtendedEdit = new RoutedCommand("OnEndExtendedEdit", typeof(PropertyContainerPopup));
+
+ public static CustomPopupPlacementCallback RightAlignedPopupPlacement
+ {
+ get { return new CustomPopupPlacementCallback(PropertyContainerPopup.RightAlignedPopupPlacementCallback); }
+ }
+
+ protected override void OnOpened(EventArgs e)
+ {
+ // Fire OnBeginExtendedEdit command (for Acrylic)
+ PropertyContainer owningPropertyContainer = (PropertyContainer)this.GetValue(PropertyContainer.OwningPropertyContainerProperty);
+ PropertyContainerPopup.OnBeginExtendedEdit.Execute(this, owningPropertyContainer);
+
+ base.OnOpened(e);
+ }
+
+ protected override void OnClosed(EventArgs e)
+ {
+ base.OnClosed(e);
+
+ PropertyContainer owningPropertyContainer = (PropertyContainer)this.GetValue(PropertyContainer.OwningPropertyContainerProperty);
+
+ // Revert back to Inline when the popup is dismissed and we haven't already switched
+ // to the pinned mode
+ if (owningPropertyContainer != null && owningPropertyContainer.ActiveEditMode == PropertyContainerEditMode.ExtendedPopup)
+ {
+ DependencyObject potentialDescendant = Mouse.Captured as DependencyObject;
+ if (potentialDescendant != null && owningPropertyContainer.IsAncestorOf(potentialDescendant))
+ {
+ // v1 38479: This is a mitigation for Windows OS
+
+
+
+ Mouse.Capture(null);
+ }
+
+ owningPropertyContainer.ActiveEditMode = PropertyContainerEditMode.Inline;
+ }
+
+ // Fire OnEndExtendedEdit command (for Acrylic)
+ OnEndExtendedEdit.Execute(this, owningPropertyContainer);
+ }
+
+ public static CustomPopupPlacement[] RightAlignedPopupPlacementCallback(Size popupSize, Size targetSize, Point offset)
+ {
+ return new CustomPopupPlacement[] { new CustomPopupPlacement(new Point(targetSize.Width - popupSize.Width, targetSize.Height), PopupPrimaryAxis.Horizontal) };
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/ValueEditors/ChoiceEditor.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/ValueEditors/ChoiceEditor.cs
index 92992285fa8..9807223c01d 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/ValueEditors/ChoiceEditor.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/FromExpression/Framework/ValueEditors/ChoiceEditor.cs
@@ -70,7 +70,7 @@ namespace System.Activities.Presentation.Internal.PropertyEditing.FromExpression
public static readonly DependencyProperty ComboBoxLoadingCursorProperty = DependencyProperty.Register("ComboBoxLoadingCursor", typeof(Cursor), typeof(ChoiceEditor), new PropertyMetadata(null));
- // WORKAROUND this property is used in combination with a trigger to kick the combobox when it clears its bindings Avalon bug: 1756023
+ // WORKAROUND this property is used in combination with a trigger to kick the combobox when it clears its bindings Avalon
public static readonly DependencyProperty ForceBindingProperty = DependencyProperty.Register("ForceBinding", typeof(bool), typeof(ChoiceEditor), new FrameworkPropertyMetadata(false));
@@ -924,7 +924,7 @@ namespace System.Activities.Presentation.Internal.PropertyEditing.FromExpression
protected override void OnTemplateChanged(ControlTemplate oldTemplate, ControlTemplate newTemplate)
{
this.BeginNoCommitInternalValueChangeBlock();
- // WORKAROUND Turn off bindings on the internal combo while the template is udpating. This works around Avalon bug: 1756023
+ // WORKAROUND Turn off bindings on the internal combo while the template is udpating. This works around Avalon
this.ForceBinding = false;
base.OnTemplateChanged(oldTemplate, newTemplate);
}
@@ -932,7 +932,7 @@ namespace System.Activities.Presentation.Internal.PropertyEditing.FromExpression
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
- // WORKAROUND Force the bindings on our internal combo (if there is one) to update. This works around Avalon bug: 1756023
+ // WORKAROUND Force the bindings on our internal combo (if there is one) to update. This works around Avalon
this.ForceBinding = true;
this.EndNoCommitInternalValueChangeBlock();
@@ -992,7 +992,7 @@ namespace System.Activities.Presentation.Internal.PropertyEditing.FromExpression
private void ItemsSourceChanged()
{
- // The collection just changed, so we need to make sure that things are in [....]
+ // The collection just changed, so we need to make sure that things are in sync
// ###################################################
// CIDER-SPECIFIC CHANGE IN NEED OF PORTING - BEGIN
@@ -1131,7 +1131,7 @@ namespace System.Activities.Presentation.Internal.PropertyEditing.FromExpression
this.Value = newValue;
- // At this point it is possible that the value that we just set is out of [....] with the internal value
+ // At this point it is possible that the value that we just set is out of sync with the internal value
if (newValue != this.InternalValue)
{
this.UpdateInternalValuesFromValue();
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/PropertyValueDialogHost.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/PropertyValueDialogHost.cs
index d0d06ddf416..4fc58c4b9b0 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/PropertyValueDialogHost.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/PropertyValueDialogHost.cs
@@ -22,7 +22,7 @@ namespace System.Activities.Presentation.Internal.PropertyEditing
using Microsoft.Win32;
// <summary>
- // Helper class that is responsible for opening a [....] Form that hosts the WPF
+ // Helper class that is responsible for opening a Microsoft Form that hosts the WPF
// PropertyValueDialogControl that ultimately hosts a DialogPropertyValueEditor.
// Both PropertyInspector control as well as PropertyValueDialogControl use this class.
// </summary>
@@ -71,7 +71,7 @@ namespace System.Activities.Presentation.Internal.PropertyEditing
// <summary>
// Called in response to OpenDialogWindow command firing. The method opens a
- // [....] Form that contains an ElementHost that, in turn, contains
+ // Microsoft Form that contains an ElementHost that, in turn, contains
// PropertyValueDialogControl.
// </summary>
// <param name="sender"></param>
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/VisualTreeUtils.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/VisualTreeUtils.cs
index a9d683bd51c..3d7712e3b00 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/VisualTreeUtils.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Internal/PropertyEditing/VisualTreeUtils.cs
@@ -22,7 +22,7 @@ namespace System.Activities.Presentation.Internal.PropertyEditing
private const int MaxSearchDepth = 5;
// The maxium wpf visual tree depth
- // this value should be kept in [....] with WPF's limit
+ // this value should be kept in sync with WPF's limit
private const int MaxAllowedTreeDepth = 250;
// <summary>
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Metadata/MetadataStore.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Metadata/MetadataStore.cs
index 036e3cf883a..e779c0c2517 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Metadata/MetadataStore.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/Metadata/MetadataStore.cs
@@ -288,17 +288,17 @@ namespace System.Activities.Presentation.Metadata
Fx.Assert(objectType != null, "objectType parameter should not be null");
Type reflectType = TypeDescriptor.GetReflectionType(objectType);
- // There is a bug in CLR reflection that does not respect the "inherit"
- // flag for event or property infos. Our custom metadata type does respect
- // this flag and correctly does the right thing. If the object type we
- // are passed is not a metadata type, just use the default behavior of the
- // parent member descriptor. It will be right, and since we're not a metadata
- // type that means we have no overrides anyway.
- //
- // The reason we have to call our type with inherit, instead of just using
- // one code path is we need to support the interleaving of CLR and
- // metadata table attributes up the inheritance hierarchy. MetadataType
- // does that for us.
+ // There is a
+
+
+
+
+
+
+
+
+
+
if (parentDescriptor != null && !(reflectType is MetadataType))
{
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/PropertyEditing/EditModeSwitchButton.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/PropertyEditing/EditModeSwitchButton.cs
index 68652bc26b4..14cc52fea63 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/PropertyEditing/EditModeSwitchButton.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/PropertyEditing/EditModeSwitchButton.cs
@@ -61,7 +61,7 @@ namespace System.Activities.Presentation.PropertyEditing {
EditModeSwitchButton theThis = (EditModeSwitchButton) obj;
- // [....] to the owning PropertyContainer only if requested to do so
+ // Sync to the owning PropertyContainer only if requested to do so
if (!theThis.SyncModeToOwningContainer)
return value;
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/PropertyEditing/PropertyMarker.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/PropertyEditing/PropertyMarker.cs
index 5155e5f3c0d..13d1cb67370 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/PropertyEditing/PropertyMarker.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Base/Core/PropertyEditing/PropertyMarker.cs
@@ -11,4 +11,4 @@ namespace System.Activities.Presentation.PropertyEditing {
/// </summary>
class PropertyMarker : Control {
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/CachedResourceDictionaryExtension.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/CachedResourceDictionaryExtension.cs
index 34aa3df23d8..cffc805734f 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/CachedResourceDictionaryExtension.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/CachedResourceDictionaryExtension.cs
@@ -21,7 +21,7 @@ namespace System.Activities.Presentation
public override object ProvideValue(IServiceProvider serviceProvider)
{
ResourceDictionary resourceDictionary = null;
- // disable caching till the wpf mergedictionaries in theme dictionary bug is fixed.
+ // disable caching till the wpf mergedictionaries in theme dictionary
if (!Cache.TryGetValue(this.Source, out resourceDictionary))
{
resourceDictionary = new ResourceDictionary();
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/AutoConnectDirections.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/AutoConnectDirections.cs
index bbb763183af..c1e980ce6ae 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/AutoConnectDirections.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/AutoConnectDirections.cs
@@ -37,4 +37,4 @@ namespace System.Activities.Presentation.FreeFormEditing
/// </summary>
Bottom = 8
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/AutoSplitAlignment.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/AutoSplitAlignment.cs
index 4246d778454..ff4a2536849 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/AutoSplitAlignment.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/AutoSplitAlignment.cs
@@ -26,4 +26,4 @@ namespace System.Activities.Presentation.FreeFormEditing
/// </summary>
Horizontal
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/INestedFreeFormPanelContainer.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/INestedFreeFormPanelContainer.cs
index 4b1b9c54c45..1900d4ec234 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/INestedFreeFormPanelContainer.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/INestedFreeFormPanelContainer.cs
@@ -9,4 +9,4 @@ namespace System.Activities.Presentation.FreeFormEditing
FreeFormPanel GetChildFreeFormPanel();
FreeFormPanel GetOutmostFreeFormPanel();
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/RequiredSizeChangedEventHandler.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/RequiredSizeChangedEventHandler.cs
index 1acab96b1bb..97283b0920c 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/RequiredSizeChangedEventHandler.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/FreeFormEditing/RequiredSizeChangedEventHandler.cs
@@ -5,4 +5,4 @@
namespace System.Activities.Presentation.FreeFormEditing
{
internal delegate void RequiredSizeChangedEventHandler(object sender, RequiredSizeChangedEventArgs e);
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Hosting/WindowHelperService.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Hosting/WindowHelperService.cs
index a4b11aaf0f0..4a61043615b 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Hosting/WindowHelperService.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Hosting/WindowHelperService.cs
@@ -159,7 +159,7 @@ namespace System.Activities.Presentation.Hosting
{
this.hwndSource = HwndSource.FromHwnd(this.ParentWindowHwnd);
}
- //if didn't succeed - (either handle is null or we are hosted in [....] app)
+ //if didn't succeed - (either handle is null or we are hosted in Microsoft app)
//try to create hwnd source out of designer's view
if (null == this.hwndSource)
{
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Model/ModelItemDictionaryImpl.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Model/ModelItemDictionaryImpl.cs
index 8be4b90438e..4b4ca979b96 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Model/ModelItemDictionaryImpl.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Model/ModelItemDictionaryImpl.cs
@@ -751,7 +751,7 @@ namespace System.Activities.Presentation.Model
if (updateInstance)
{
- //no need to [....] if the ItemsCollection is not DictionaryItemsCollection wrapped by ModelItemCollectionImpl
+ //no need to sync if the ItemsCollection is not DictionaryItemsCollection wrapped by ModelItemCollectionImpl
ModelItemCollectionImpl itemsCollectionImpl = this.ItemsCollectionModelItemCollection as ModelItemCollectionImpl;
if (ItemsCollectionObject != null && itemsCollectionImpl != null)
{
@@ -810,7 +810,7 @@ namespace System.Activities.Presentation.Model
IList removed = this.modelItems.ToList<KeyValuePair<ModelItem, ModelItem>>();
if (updateInstance)
{
- //no need to [....] if the ItemsCollection is not DictionaryItemsCollection wrapped by ModelItemCollectionImpl
+ //no need to sync if the ItemsCollection is not DictionaryItemsCollection wrapped by ModelItemCollectionImpl
ModelItemCollectionImpl itemsCollectionImpl = this.ItemsCollectionModelItemCollection as ModelItemCollectionImpl;
if (ItemsCollectionObject != null && itemsCollectionImpl != null)
{
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Model/ModelPropertyImpl.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Model/ModelPropertyImpl.cs
index d3237f8b05b..a2d7921da44 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Model/ModelPropertyImpl.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Model/ModelPropertyImpl.cs
@@ -10,7 +10,7 @@ namespace System.Activities.Presentation.Model
// This class provides the implementation for a model property.
// this intercepts sets /gets to the property and works with modeltreemanager
- // to keep the xaml in [....].
+ // to keep the xaml in sync.
class ModelPropertyImpl : ModelProperty
{
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Toolbox/IActivityTemplateFactory.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Toolbox/IActivityTemplateFactory.cs
index 86ecd7ee0bf..dca449e1980 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Toolbox/IActivityTemplateFactory.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Toolbox/IActivityTemplateFactory.cs
@@ -15,4 +15,4 @@ namespace System.Activities.Presentation
{
T Create(DependencyObject target, IDataObject dataObject);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Validation/ValidationReason.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Validation/ValidationReason.cs
index be04091bc3a..81e4593e865 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Validation/ValidationReason.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Validation/ValidationReason.cs
@@ -11,4 +11,4 @@ namespace System.Activities.Presentation.Validation
Save,
ModelChange,
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Validation/ValidationState.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Validation/ValidationState.cs
index c6766aa3861..62f42b9a69a 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Validation/ValidationState.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Validation/ValidationState.cs
@@ -37,4 +37,4 @@ namespace System.Activities.Presentation.Validation
/// </summary>
Valid = 0
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/ArgumentDesigner.xaml.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/ArgumentDesigner.xaml.cs
index 9298aff978a..693ff4dd581 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/ArgumentDesigner.xaml.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/ArgumentDesigner.xaml.cs
@@ -556,7 +556,7 @@ namespace System.Activities.Presentation.View
DataGridHelper.OnEditingControlUnloaded(sender, args);
}
- // This is to workaround a bug that updating ModelItem from outside of ArgumentDesigner will not update ArgumentDesigner.
+ // This is to workaround a
internal void NotifyAnnotationTextChanged()
{
foreach (object item in this.argumentsDataGrid.Items)
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/DataGridHelper.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/DataGridHelper.cs
index f2db4694ff9..87a7e2377f4 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/DataGridHelper.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/DataGridHelper.cs
@@ -185,7 +185,7 @@ namespace System.Activities.Presentation.View
e.Handled = true;
}
- //Hook KeyDown event on DataGrid row to workaround DataGrid bug with customized NewItemPlaceHolder
+ //Hook KeyDown event on DataGrid row to workaround DataGrid
void OnDataGridRowKeyDown(object sender, KeyEventArgs e)
{
if (e.Handled)
@@ -519,8 +519,8 @@ namespace System.Activities.Presentation.View
void OnAddNewRowGotFocus(object sender, RoutedEventArgs e)
{
- //When tab over the last row, the last column won't get commit by default, which is a bug of DataGrid with
- //customized new place holder template. Call commit explicitly here to workaround this issue
+ //When tab over the last row, the last column won't get commit by default, which is a
+
this.CommitDataGrid();
this.dataGrid.SelectedItem = null;
}
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/ExpressionTextBox.xaml.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/ExpressionTextBox.xaml.cs
index e6497e158d4..012a9c67abf 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/ExpressionTextBox.xaml.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/ExpressionTextBox.xaml.cs
@@ -176,7 +176,7 @@ namespace System.Activities.Presentation.View
set { SetValue(ExplicitCommitProperty, value); }
}
- //[....]
+ //Microsoft
public IExpressionEditorService ExpressionEditorService
{
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/IVersionEditor.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/IVersionEditor.cs
index 49051223a95..aaa7622211a 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/IVersionEditor.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/IVersionEditor.cs
@@ -10,4 +10,4 @@ namespace System.Activities.Presentation.View
{
void ShowErrorMessage(string message);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/VBIdentifierName.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/VBIdentifierName.cs
index fb36c50cf3b..75c8e441c1a 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/VBIdentifierName.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/VBIdentifierName.cs
@@ -105,7 +105,7 @@ namespace System.Activities.Presentation.View
if (isValid)
{
- //Work around TFS bug #825815, in some cases, XamlMember.IsNameValid returns true but it's not valid Xml Name.
+ //Work around TFS
try
{
XmlConvert.VerifyName(name);
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/VariableDesigner.xaml.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/VariableDesigner.xaml.cs
index 91dc3737a34..39209221c9b 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/VariableDesigner.xaml.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/VariableDesigner.xaml.cs
@@ -566,7 +566,7 @@ namespace System.Activities.Presentation.View
DataGridHelper.OnEditingControlUnloaded(sender, args);
}
- // This is to workaround a bug that updating ModelItem from outside of VariableDesigner will not update VariableDesigner.
+ // This is to workaround a
internal void NotifyAnnotationTextChanged()
{
foreach (object item in this.variableDataGrid.Items)
@@ -1232,7 +1232,7 @@ namespace System.Activities.Presentation.View
{
variable.Default = morphedExpression;
}
- //[....]
+ //Microsoft
}
}
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/ViewStateService.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/ViewStateService.cs
index bdf1b73ba52..de09908116c 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/ViewStateService.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/View/ViewStateService.cs
@@ -17,4 +17,4 @@ namespace System.Activities.Presentation.View
public abstract Dictionary<string, object> RetrieveAllViewState(ModelItem modelItem);
public abstract bool RemoveViewState(ModelItem modelItem, string key);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/WorkflowItemPresenter.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/WorkflowItemPresenter.cs
index e76ba7c02cd..2f6a69db290 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/WorkflowItemPresenter.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/WorkflowItemPresenter.cs
@@ -446,9 +446,9 @@ namespace System.Activities.Presentation
{
this.Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, (Action)(() =>
{
- // check for Item == null, we found an interesting bug, where the user
- // could drop something in here, and undo the change before the code below
- // could execute
+ // check for Item == null, we found an interesting
+
+
if (this.Item != null)
{
UIElement view = (UIElement)(this.Item.View);
@@ -817,9 +817,9 @@ namespace System.Activities.Presentation
// NOTE: This wrapper method is exclusively called by TransitionDesigner, because
// WIP of Transition.Action would handle the event if the dragged source comes from
- // WIP of Transition.Trigger (see Bug 201342). However, Auto-Surround spacer is usually
- // handled in DragEnter handler of WIP, and other ActivityDesigner should not need to
- // access this method directly.
+ // WIP of Transition.Trigger (see
+
+
internal void ShowSpacerHelperOnDraggedItems(DragEventArgs arg)
{
this.spacerHelper.OnWfItemPresenterPreviewDragEnter(this, arg);
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Xaml/ErrorTolerantObjectWriter.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Xaml/ErrorTolerantObjectWriter.cs
index 19dd9326776..e3c674e4d16 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Xaml/ErrorTolerantObjectWriter.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Xaml/ErrorTolerantObjectWriter.cs
@@ -195,7 +195,7 @@ namespace System.Activities.Presentation.Xaml
this.lineNumber = lineNumber;
this.linePosition = linePosition;
- // But we also need to keep it in [....] with the nodestream, for XOW errors
+ // But we also need to keep it in sync with the nodestream, for XOW errors
// XOW and XamlNodeQueue.Writer both implement IXamlLineInfoConsumer, so we can do a straight cast
if (this.rootFragment.HasError)
{
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Xaml/ObjectToSourceLocationMapping.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Xaml/ObjectToSourceLocationMapping.cs
index 7f024e60203..8e14dae3e3a 100644
--- a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Xaml/ObjectToSourceLocationMapping.cs
+++ b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Xaml/ObjectToSourceLocationMapping.cs
@@ -82,7 +82,7 @@ namespace System.Activities.Presentation.Xaml
if (viewStateSrcLocation != null)
{
// In some cases duplicated key is possible, use indexer instead of Add() to avoid throw.
- // See TFS bug 523908 for detailed information
+ // See TFS
viewStateSourceLocationToModelItemMapping[viewStateSrcLocation] = modelItem;
}
}
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/ActivityInstance.cs b/mcs/class/referencesource/System.Activities/System/Activities/ActivityInstance.cs
index df8eb6ea82a..1393d9b34e2 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/ActivityInstance.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/ActivityInstance.cs
@@ -1292,7 +1292,7 @@ namespace System.Activities
if (TD.ActivityCompletedIsEnabled())
{
- TD.ActivityCompleted(this.Activity.GetType().ToString(), this.Activity.DisplayName, this.Id, this.State.ToString());
+ TD.ActivityCompleted(this.Activity.GetType().ToString(), this.Activity.DisplayName, this.Id, this.State.GetStateName());
}
}
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/ActivityInstanceState.cs b/mcs/class/referencesource/System.Activities/System/Activities/ActivityInstanceState.cs
index 0148272a1e7..1c9943e05af 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/ActivityInstanceState.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/ActivityInstanceState.cs
@@ -5,6 +5,7 @@
namespace System.Activities
{
using System.Runtime.Serialization;
+ using System.Runtime;
[DataContract]
public enum ActivityInstanceState
@@ -20,5 +21,28 @@ namespace System.Activities
[EnumMember]
Faulted,
+
+ // If any more states are added, ensure they are also added to ActivityInstanceStateExtension.GetStateName
+ }
+
+ internal static class ActivityInstanceStateExtension
+ {
+ internal static string GetStateName(this ActivityInstanceState state)
+ {
+ switch (state)
+ {
+ case ActivityInstanceState.Executing:
+ return "Executing";
+ case ActivityInstanceState.Closed:
+ return "Closed";
+ case ActivityInstanceState.Canceled:
+ return "Canceled";
+ case ActivityInstanceState.Faulted:
+ return "Faulted";
+ default:
+ Fx.Assert("Don't understand ActivityInstanceState named " + state.ToString());
+ return state.ToString();
+ }
+ }
}
}
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/AssemblyInfo.cs b/mcs/class/referencesource/System.Activities/System/Activities/AssemblyInfo.cs
index ab3fa5c3878..9523e622044 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/AssemblyInfo.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/AssemblyInfo.cs
@@ -24,7 +24,7 @@ using System.Windows.Markup;
[assembly: XmlnsPrefix("http://schemas.microsoft.com/netfx/2010/xaml/activities/debugger", "sads")]
// Friends Assembly
-//
+// TODO, 33059, Make common shim to access System.Activities's internal classes.
[assembly: InternalsVisibleTo("CDF.CIT.Scenarios.WorkflowModel.Debugger, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
[assembly: InternalsVisibleTo("CDF.CIT.Scenarios.WorkflowModel.Compensation, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
[assembly: InternalsVisibleTo("CDF.CIT.Scenarios.WorkflowModel.DataModel, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/Debugger/ICharacterSpottingTextReaderForUnitTest.cs b/mcs/class/referencesource/System.Activities/System/Activities/Debugger/ICharacterSpottingTextReaderForUnitTest.cs
index 7d6881d39a1..7e179b65a3c 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/Debugger/ICharacterSpottingTextReaderForUnitTest.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/Debugger/ICharacterSpottingTextReaderForUnitTest.cs
@@ -20,4 +20,4 @@ namespace System.Activities.Debugger
List<DocumentLocation> DoubleQuotes { get; }
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/Debugger/StateManager.cs b/mcs/class/referencesource/System.Activities/System/Activities/Debugger/StateManager.cs
index 662116b4d4d..87412dd8375 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/Debugger/StateManager.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/Debugger/StateManager.cs
@@ -681,7 +681,7 @@ namespace System.Activities.Debugger
[SecurityCritical]
void InitDynamicModule(string asmName)
{
- // See http://blogs.msdn.com/[....]/archive/2005/02/03/366429.aspx for a simple example
+ // See http://blogs.msdn.com/Microsoft/archive/2005/02/03/366429.aspx for a simple example
// of debuggable reflection-emit.
Fx.Assert(dynamicModule == null, "can only be initialized once");
@@ -738,26 +738,36 @@ namespace System.Activities.Debugger
if (isPriming)
{
- if (!islandsWithPriming.TryGetValue(state, out island))
+ lock (islandsWithPriming)
{
- island = state.GetMethodInfo(true);
- islandsWithPriming[state] = island;
+ if (!islandsWithPriming.TryGetValue(state, out island))
+ {
+ island = state.GetMethodInfo(true);
+ islandsWithPriming[state] = island;
+ }
}
}
else
{
- if (!islands.TryGetValue(state, out island))
+ lock (islands)
{
- island = state.GetMethodInfo(false);
- islands[state] = island;
+ if (!islands.TryGetValue(state, out island))
+ {
+ island = state.GetMethodInfo(false);
+ islands[state] = island;
+ }
}
}
return island;
}
+ // This method is only called from CreateIsland, which is only called from Bake.
+ // Bake does a "lock(this)" before calling CreateIsland, so access to the sourceDocuments
+ // dictionary is protected by that lock. If this changes, locking will need to be added
+ // to this method to protect the sourceDocuments dictionary.
[Fx.Tag.SecurityNote(Critical = "Used in generating the dynamic module.")]
[SecurityCritical]
- internal ISymbolDocumentWriter GetSourceDocument(string fileName, byte[] checksum, Dictionary<string, byte[]> checksumCache)
+ private ISymbolDocumentWriter GetSourceDocument(string fileName, byte[] checksum, Dictionary<string, byte[]> checksumCache)
{
ISymbolDocumentWriter documentWriter;
string sourceDocKey = fileName + SymbolHelper.GetHexStringFromChecksum(checksum);
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/Expressions/ILocationReferenceExpression.cs b/mcs/class/referencesource/System.Activities/System/Activities/Expressions/ILocationReferenceExpression.cs
index 3df5b7ca46c..0eb19dffc10 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/Expressions/ILocationReferenceExpression.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/Expressions/ILocationReferenceExpression.cs
@@ -10,4 +10,4 @@ namespace System.Activities.Expressions
{
ActivityWithResult CreateNewInstance(LocationReference locationReference);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/Hosting/IWorkflowInstanceExtension.cs b/mcs/class/referencesource/System.Activities/System/Activities/Hosting/IWorkflowInstanceExtension.cs
index ffd3796a538..56eacc8e45e 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/Hosting/IWorkflowInstanceExtension.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/Hosting/IWorkflowInstanceExtension.cs
@@ -15,4 +15,4 @@ namespace System.Activities.Hosting
// called with the targe instance under WorkflowInstance.Initialize
void SetInstance(WorkflowInstanceProxy instance);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/Runtime/ActivityExecutor.cs b/mcs/class/referencesource/System.Activities/System/Activities/Runtime/ActivityExecutor.cs
index 1141038dd1e..417960427bf 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/Runtime/ActivityExecutor.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/Runtime/ActivityExecutor.cs
@@ -1833,72 +1833,85 @@ namespace System.Activities.Runtime
return extension;
}
- // callback from scheduler to process a work item
- internal Scheduler.RequestedAction OnExecuteWorkItem(WorkItem workItem)
+ internal Scheduler.RequestedAction TryExecuteNonEmptyWorkItem(WorkItem workItem)
{
- workItem.Release(this);
-
- // thunk out early if the work item is no longer valid (that is, we're not in the Executing state)
- if (!workItem.IsValid)
- {
- return Scheduler.Continue;
- }
-
- if (!workItem.IsEmpty)
+ Exception setupOrCleanupException = null;
+ ActivityInstance propertyManagerOwner = workItem.PropertyManagerOwner;
+ try
{
- Exception setupOrCleanupException = null;
- ActivityInstance propertyManagerOwner = workItem.PropertyManagerOwner;
- try
+ if (propertyManagerOwner != null && propertyManagerOwner.PropertyManager != null)
{
- if (propertyManagerOwner != null && propertyManagerOwner.PropertyManager != null)
+ try
{
- try
- {
- propertyManagerOwner.PropertyManager.SetupWorkflowThread();
- }
- catch (Exception e)
- {
- if (Fx.IsFatal(e))
- {
- throw;
- }
-
- setupOrCleanupException = e;
- }
+ propertyManagerOwner.PropertyManager.SetupWorkflowThread();
}
-
- if (setupOrCleanupException == null)
+ catch (Exception e)
{
- if (!workItem.Execute(this, this.bookmarkManager))
+ if (Fx.IsFatal(e))
{
- return Scheduler.YieldSilently;
+ throw;
}
+
+ setupOrCleanupException = e;
}
}
- finally
- {
- // We might be multi-threaded when we execute code in
- // this finally block. The work item might have gone
- // async and may already have called back into FinishWorkItem.
- if (propertyManagerOwner != null && propertyManagerOwner.PropertyManager != null)
- {
- // This throws only fatal exceptions
- propertyManagerOwner.PropertyManager.CleanupWorkflowThread(ref setupOrCleanupException);
- }
- if (setupOrCleanupException != null)
+ if (setupOrCleanupException == null)
+ {
+ if (!workItem.Execute(this, this.bookmarkManager))
{
- // This API must allow the runtime to be
- // multi-threaded when it is called.
- AbortWorkflowInstance(new OperationCanceledException(SR.SetupOrCleanupWorkflowThreadThrew, setupOrCleanupException));
+ return Scheduler.YieldSilently;
}
}
+ }
+ finally
+ {
+ // We might be multi-threaded when we execute code in
+ // this finally block. The work item might have gone
+ // async and may already have called back into FinishWorkItem.
+ if (propertyManagerOwner != null && propertyManagerOwner.PropertyManager != null)
+ {
+ // This throws only fatal exceptions
+ propertyManagerOwner.PropertyManager.CleanupWorkflowThread(ref setupOrCleanupException);
+ }
if (setupOrCleanupException != null)
{
- // We already aborted the instance in the finally block so
- // now we just need to return early.
- return Scheduler.Continue;
+ // This API must allow the runtime to be
+ // multi-threaded when it is called.
+ AbortWorkflowInstance(new OperationCanceledException(SR.SetupOrCleanupWorkflowThreadThrew, setupOrCleanupException));
+ }
+ }
+
+ if (setupOrCleanupException != null)
+ {
+ // We already aborted the instance in the finally block so
+ // now we just need to return early.
+ return Scheduler.Continue;
+ }
+ return null;
+ }
+
+ // callback from scheduler to process a work item
+ internal Scheduler.RequestedAction OnExecuteWorkItem(WorkItem workItem)
+ {
+ workItem.Release(this);
+
+ // thunk out early if the work item is no longer valid (that is, we're not in the Executing state)
+ if (!workItem.IsValid)
+ {
+ return Scheduler.Continue;
+ }
+
+ if (!workItem.IsEmpty)
+ {
+ // The try/catch/finally block used in executing a workItem prevents ryujit from performing
+ // some optimizations. Moving the functionality back into this method may cause a performance
+ // regression.
+ var result = TryExecuteNonEmptyWorkItem(workItem);
+ if (result != null)
+ {
+ return result;
}
}
@@ -1908,7 +1921,7 @@ namespace System.Activities.Runtime
return Scheduler.Continue;
}
- // We only check this in the [....] path because there are no ways of changing the keys collections from the work items that can
+ // We only check this in the sync path because there are no ways of changing the keys collections from the work items that can
// go async. There's an assert to this effect in FinishWorkItem.
if (this.bookmarkScopeManager != null && this.bookmarkScopeManager.HasKeysToUpdate)
{
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/Runtime/ActivityInstanceMap.cs b/mcs/class/referencesource/System.Activities/System/Activities/Runtime/ActivityInstanceMap.cs
index 7c4cae273d7..c4983a022b0 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/Runtime/ActivityInstanceMap.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/Runtime/ActivityInstanceMap.cs
@@ -599,7 +599,7 @@ namespace System.Activities.Runtime
}
// We need to null this out once we've recreated the dictionary to avoid
- // having out of [....] data
+ // having out of sync data
this.rawDeserializedLists = null;
// then walk our instance list, fixup parent references, and perform basic validation
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/Statements/MethodExecutor.cs b/mcs/class/referencesource/System.Activities/System/Activities/Statements/MethodExecutor.cs
index 3819a0e6429..432dd9efc81 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/Statements/MethodExecutor.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/Statements/MethodExecutor.cs
@@ -114,12 +114,12 @@ namespace System.Activities.Statements
}
}
- return BeginMakeMethodCall(context, targetInstance, callback, state); // defer to concrete instance for [....]/async variations
+ return BeginMakeMethodCall(context, targetInstance, callback, state); // defer to concrete instance for sync/async variations
}
public void EndExecuteMethod(AsyncCodeActivityContext context, IAsyncResult result)
{
- EndMakeMethodCall(context, result); // defer to concrete instance for [....]/async variations
+ EndMakeMethodCall(context, result); // defer to concrete instance for sync/async variations
}
[SuppressMessage("Reliability", "Reliability108:IsFatalRule",
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/Statements/MethodResolver.cs b/mcs/class/referencesource/System.Activities/System/Activities/Statements/MethodResolver.cs
index 2a7b1084b33..5181f4f2a65 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/Statements/MethodResolver.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/Statements/MethodResolver.cs
@@ -355,7 +355,7 @@ namespace System.Activities.Statements
{
return null;
}
- else // For a regular [....] method, ambiguity is distinct from no match and gets an explicit error message
+ else // For a regular sync method, ambiguity is distinct from no match and gets an explicit error message
{
throw;
}
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/Tracking/ActivityStates.cs b/mcs/class/referencesource/System.Activities/System/Activities/Tracking/ActivityStates.cs
index 8ff24141aca..5ec41000060 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/Tracking/ActivityStates.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/Tracking/ActivityStates.cs
@@ -11,4 +11,4 @@ namespace System.Activities.Tracking
public const string Executing = "Executing";
public const string Faulted = "Faulted";
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/Tracking/ImplementationVisibility.cs b/mcs/class/referencesource/System.Activities/System/Activities/Tracking/ImplementationVisibility.cs
index df3678b39a3..30b1068926d 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/Tracking/ImplementationVisibility.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/Tracking/ImplementationVisibility.cs
@@ -9,4 +9,4 @@ namespace System.Activities.Tracking
RootScope,
All
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/WorkflowApplication.cs b/mcs/class/referencesource/System.Activities/System/Activities/WorkflowApplication.cs
index 20900632507..b2b16a305dd 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/WorkflowApplication.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/WorkflowApplication.cs
@@ -367,7 +367,7 @@ namespace System.Activities
try
{
- // The "false" is to notify that we are not still [....]
+ // The "false" is to notify that we are not still sync
done = data.NextCallback(result, thisPtr, false);
}
catch (Exception e)
@@ -1100,7 +1100,7 @@ namespace System.Activities
TerminateAsyncResult.End(result);
}
- // called from the [....] and async paths
+ // called from the sync and async paths
void CancelCore()
{
// We only actually do any work if we haven't completed and we aren't
@@ -3867,7 +3867,7 @@ namespace System.Activities
if (this.instance.HasPersistenceProvider && this.instance.persistenceManager.OwnerWasCreated &&
(this.operation == PersistenceOperation.Unload || this.operation == PersistenceOperation.Complete))
{
- // This call uses the ambient transaction directly if there was one, to mimic the [....] case.
+ // This call uses the ambient transaction directly if there was one, to mimic the sync case.
//
IAsyncResult deleteOwnerResult = null;
using (PrepareTransactionalCall(this.dependentTransaction))
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/WorkflowPersistenceContext.cs b/mcs/class/referencesource/System.Activities/System/Activities/WorkflowPersistenceContext.cs
index d056669a4e9..78f8b612763 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/WorkflowPersistenceContext.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/WorkflowPersistenceContext.cs
@@ -74,7 +74,7 @@ namespace System.Activities
{
// In the interest of allocating less objects we don't implement
// the full async pattern here. Instead, we've flattened it to
- // do the [....] part and then optionally delegate down to the inner
+ // do the sync part and then optionally delegate down to the inner
// BeginCommit.
if (this.contextOwnedTransaction != null)
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/XamlIntegration/ActivityWithResultConverter.cs b/mcs/class/referencesource/System.Activities/System/Activities/XamlIntegration/ActivityWithResultConverter.cs
index 9334dd3bdee..6ca7f69ec20 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/XamlIntegration/ActivityWithResultConverter.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/XamlIntegration/ActivityWithResultConverter.cs
@@ -158,7 +158,7 @@ namespace System.Activities.XamlIntegration
{
literalValue = (T)(object)text;
}
- else if (text == string.Empty) // workaround for System.Runtime.Xaml bug
+ else if (text == string.Empty) // workaround for System.Runtime.Xaml
{
literalValue = default(T);
}
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/XamlIntegration/DynamicActivityXamlReader.cs b/mcs/class/referencesource/System.Activities/System/Activities/XamlIntegration/DynamicActivityXamlReader.cs
index fbee8ee31e7..7c6c97de6ea 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/XamlIntegration/DynamicActivityXamlReader.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/XamlIntegration/DynamicActivityXamlReader.cs
@@ -566,8 +566,8 @@ namespace System.Activities.XamlIntegration
}
// GetXamlNamespaces is a superset of PreferredXamlNamespace, it's not a must for the above code
- // to check for preferredXamlNamespace, but since the old code uses .Contains(), which was a minor bug,
- // we decide to use StartsWith in new code and keep the old code for back compatible reason.
+ // to check for preferredXamlNamespace, but since the old code uses .Contains(), which was a minor
+
IList<string> namespaces = xamlType.GetXamlNamespaces();
foreach (string ns in namespaces)
{
diff --git a/mcs/class/referencesource/System.Activities/System/Activities/XamlIntegration/XamlWriterExtensions.cs b/mcs/class/referencesource/System.Activities/System/Activities/XamlIntegration/XamlWriterExtensions.cs
index 900d81509fc..93e08a34957 100644
--- a/mcs/class/referencesource/System.Activities/System/Activities/XamlIntegration/XamlWriterExtensions.cs
+++ b/mcs/class/referencesource/System.Activities/System/Activities/XamlIntegration/XamlWriterExtensions.cs
@@ -27,7 +27,7 @@ namespace System.Activities.XamlIntegration
consumer.SetLineInfo(lineNumber, linePosition);
}
- // This method is a workaround for TFS bug #788190, since XamlReader.ReadSubtree() should (but doesn't) preserve IXamlLineInfo on the subreader
+ // This method is a workaround for TFS
public static void Transform(XamlReader reader, XamlWriter writer, IXamlLineInfo readerLineInfo, bool closeWriter)
{
IXamlLineInfoConsumer consumer = writer as IXamlLineInfoConsumer;
diff --git a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/CreditCardAttribute.cs b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/CreditCardAttribute.cs
index a67feda81de..b071cf9acdd 100644
--- a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/CreditCardAttribute.cs
+++ b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/CreditCardAttribute.cs
@@ -9,7 +9,10 @@
public sealed class CreditCardAttribute : DataTypeAttribute {
public CreditCardAttribute()
: base(DataType.CreditCard) {
- ErrorMessage = DataAnnotationsResources.CreditCardAttribute_Invalid;
+
+ // DevDiv 468241: set DefaultErrorMessage not ErrorMessage, allowing user to set
+ // ErrorMessageResourceType and ErrorMessageResourceName to use localized messages.
+ DefaultErrorMessage = DataAnnotationsResources.CreditCardAttribute_Invalid;
}
public override bool IsValid(object value) {
diff --git a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/EmailAddressAttribute.cs b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/EmailAddressAttribute.cs
index 4d667658ae5..745a00398fb 100644
--- a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/EmailAddressAttribute.cs
+++ b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/EmailAddressAttribute.cs
@@ -12,7 +12,10 @@
public EmailAddressAttribute()
: base(DataType.EmailAddress) {
- ErrorMessage = DataAnnotationsResources.EmailAddressAttribute_Invalid;
+
+ // DevDiv 468241: set DefaultErrorMessage not ErrorMessage, allowing user to set
+ // ErrorMessageResourceType and ErrorMessageResourceName to use localized messages.
+ DefaultErrorMessage = DataAnnotationsResources.EmailAddressAttribute_Invalid;
}
public override bool IsValid(object value) {
diff --git a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/FileExtensionsAttribute.cs b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/FileExtensionsAttribute.cs
index 56448644868..93d9e2e151d 100644
--- a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/FileExtensionsAttribute.cs
+++ b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/FileExtensionsAttribute.cs
@@ -14,7 +14,10 @@ namespace System.ComponentModel.DataAnnotations {
public FileExtensionsAttribute()
: base(DataType.Upload) {
- ErrorMessage = DataAnnotationsResources.FileExtensionsAttribute_Invalid;
+
+ // DevDiv 468241: set DefaultErrorMessage not ErrorMessage, allowing user to set
+ // ErrorMessageResourceType and ErrorMessageResourceName to use localized messages.
+ DefaultErrorMessage = DataAnnotationsResources.FileExtensionsAttribute_Invalid;
}
public string Extensions {
diff --git a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/IValidatableObject.cs b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/IValidatableObject.cs
index 7bdca5cfa36..cbf5fe05d96 100644
--- a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/IValidatableObject.cs
+++ b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/IValidatableObject.cs
@@ -8,4 +8,4 @@ namespace System.ComponentModel.DataAnnotations {
IEnumerable<ValidationResult> Validate(ValidationContext validationContext);
}
}
-#endif
+#endif \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/MetadataPropertyDescriptorWrapper.cs b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/MetadataPropertyDescriptorWrapper.cs
index eaeb3ba5edc..95e7db7f2be 100644
--- a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/MetadataPropertyDescriptorWrapper.cs
+++ b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/MetadataPropertyDescriptorWrapper.cs
@@ -26,9 +26,9 @@ namespace System.ComponentModel.DataAnnotations {
public override bool IsReadOnly {
get {
- // Dev10 Bug 594083
- // It's not enough to call the wrapped _descriptor because it does not know anything about
- // new attributes passed into the constructor of this class.
+ // Dev10
+
+
return _isReadOnly || _descriptor.IsReadOnly;
}
}
diff --git a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/PhoneAttribute.cs b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/PhoneAttribute.cs
index 926a1f58ead..bbd8c975975 100644
--- a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/PhoneAttribute.cs
+++ b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/PhoneAttribute.cs
@@ -10,7 +10,10 @@
public PhoneAttribute()
: base(DataType.PhoneNumber) {
- ErrorMessage = DataAnnotationsResources.PhoneAttribute_Invalid;
+
+ // DevDiv 468241: set DefaultErrorMessage not ErrorMessage, allowing user to set
+ // ErrorMessageResourceType and ErrorMessageResourceName to use localized messages.
+ DefaultErrorMessage = DataAnnotationsResources.PhoneAttribute_Invalid;
}
public override bool IsValid(object value) {
diff --git a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/Schema/ComplexTypeAttribute.cs b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/Schema/ComplexTypeAttribute.cs
index e2063b1c755..a1ab21924d8 100644
--- a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/Schema/ComplexTypeAttribute.cs
+++ b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/Schema/ComplexTypeAttribute.cs
@@ -10,4 +10,4 @@ namespace System.ComponentModel.DataAnnotations.Schema {
[SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes", Justification = "We want users to be able to extend this class")]
public class ComplexTypeAttribute : Attribute {
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/Schema/DatabaseGeneratedOption.cs b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/Schema/DatabaseGeneratedOption.cs
index ec47f9afbbe..7e6df60e333 100644
--- a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/Schema/DatabaseGeneratedOption.cs
+++ b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/Schema/DatabaseGeneratedOption.cs
@@ -18,4 +18,4 @@ namespace System.ComponentModel.DataAnnotations.Schema {
/// </summary>
Computed
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/Schema/NotMappedAttribute.cs b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/Schema/NotMappedAttribute.cs
index 1463ed73710..2127d5eeb9c 100644
--- a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/Schema/NotMappedAttribute.cs
+++ b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/Schema/NotMappedAttribute.cs
@@ -8,4 +8,4 @@ namespace System.ComponentModel.DataAnnotations.Schema {
[SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes", Justification = "We want users to be able to extend this class")]
public class NotMappedAttribute : Attribute {
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/UrlAttribute.cs b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/UrlAttribute.cs
index e8f5376ddfb..b77395d107d 100644
--- a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/UrlAttribute.cs
+++ b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/UrlAttribute.cs
@@ -12,7 +12,10 @@
public UrlAttribute()
: base(DataType.Url) {
- ErrorMessage = DataAnnotationsResources.UrlAttribute_Invalid;
+
+ // DevDiv 468241: set DefaultErrorMessage not ErrorMessage, allowing user to set
+ // ErrorMessageResourceType and ErrorMessageResourceName to use localized messages.
+ DefaultErrorMessage = DataAnnotationsResources.UrlAttribute_Invalid;
}
public override bool IsValid(object value) {
diff --git a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/ValidationAttribute.cs b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/ValidationAttribute.cs
index 8e3727e3991..a8d7d4d05f9 100644
--- a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/ValidationAttribute.cs
+++ b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/DataAnnotations/ValidationAttribute.cs
@@ -21,8 +21,9 @@ namespace System.ComponentModel.DataAnnotations {
private Func<string> _errorMessageResourceAccessor;
private string _errorMessageResourceName;
private Type _errorMessageResourceType;
- private bool _isCallingOverload;
- private object _syncLock = new object();
+ private string _defaultErrorMessage;
+
+ private volatile bool _hasBaseIsValid;
#endregion
@@ -60,6 +61,31 @@ namespace System.ComponentModel.DataAnnotations {
#endregion
+ #region Internal Properties
+ /// <summary>
+ /// Gets or sets and the default error message string.
+ /// This message will be used if the user has not set <see cref="ErrorMessage"/>
+ /// or the <see cref="ErrorMessageResourceType"/> and <see cref="ErrorMessageResourceName"/> pair.
+ /// This property was added after the public contract for DataAnnotations was created.
+ /// It was added to fix DevDiv issue 468241.
+ /// It is internal to avoid changing the DataAnnotations contract.
+ /// </summary>
+ internal string DefaultErrorMessage
+ {
+ get
+ {
+ return this._defaultErrorMessage;
+ }
+ set
+ {
+ this._defaultErrorMessage = value;
+ this._errorMessageResourceAccessor = null;
+ this.CustomErrorMessageSet = true;
+ }
+ }
+
+ #endregion
+
#region Protected Properties
/// <summary>
@@ -75,7 +101,7 @@ namespace System.ComponentModel.DataAnnotations {
/// <summary>
/// A flag indicating whether a developer has customized the attribute's error message by setting any one of
- /// ErrorMessage, ErrorMessageResourceName, or ErrorMessageResourceType.
+ /// ErrorMessage, ErrorMessageResourceName, ErrorMessageResourceType or DefaultErrorMessage.
/// </summary>
internal bool CustomErrorMessageSet {
get;
@@ -105,12 +131,23 @@ namespace System.ComponentModel.DataAnnotations {
/// </value>
public string ErrorMessage {
get {
- return this._errorMessage;
+ // DevDiv: 468241
+ // If _errorMessage is not set, return the default. This is done to preserve
+ // behavior prior to the fix where ErrorMessage showed the non-null message to use.
+ return this._errorMessage ?? this._defaultErrorMessage;
}
set {
this._errorMessage = value;
this._errorMessageResourceAccessor = null;
this.CustomErrorMessageSet = true;
+
+ // DevDiv: 468241
+ // Explicitly setting ErrorMessage also sets DefaultErrorMessage if null.
+ // This prevents subsequent read of ErrorMessage from returning default.
+ if (value == null)
+ {
+ this._defaultErrorMessage = null;
+ }
}
}
@@ -163,14 +200,16 @@ namespace System.ComponentModel.DataAnnotations {
/// <exception cref="InvalidOperationException"> is thrown if the current attribute is malformed.</exception>
private void SetupResourceAccessor() {
if (this._errorMessageResourceAccessor == null) {
- string localErrorMessage = this._errorMessage;
+ string localErrorMessage = this.ErrorMessage;
bool resourceNameSet = !string.IsNullOrEmpty(this._errorMessageResourceName);
- bool errorMessageSet = !string.IsNullOrEmpty(localErrorMessage);
+ bool errorMessageSet = !string.IsNullOrEmpty(this._errorMessage);
bool resourceTypeSet = this._errorMessageResourceType != null;
+ bool defaultMessageSet = !string.IsNullOrEmpty(this._defaultErrorMessage);
- // Either ErrorMessageResourceName or ErrorMessage may be set, but not both.
- // The following test checks both being set as well as both being not set.
- if (resourceNameSet == errorMessageSet) {
+ // The following combinations are illegal and throw InvalidOperationException:
+ // 1) Both ErrorMessage and ErrorMessageResourceName are set, or
+ // 2) None of ErrorMessage, ErrorMessageReourceName, and DefaultErrorMessage are set.
+ if ((resourceNameSet && errorMessageSet) || !(resourceNameSet || errorMessageSet || defaultMessageSet)) {
throw new InvalidOperationException(DataAnnotationsResources.ValidationAttribute_Cannot_Set_ErrorMessage_And_Resource);
}
@@ -281,20 +320,14 @@ namespace System.ComponentModel.DataAnnotations {
#else
internal
#endif
- virtual bool IsValid(object value) {
- lock (this._syncLock) {
- if (this._isCallingOverload) {
- throw new NotImplementedException(DataAnnotationsResources.ValidationAttribute_IsValid_NotImplemented);
- } else {
- this._isCallingOverload = true;
-
- try {
- return this.IsValid(value, null) == null;
- } finally {
- this._isCallingOverload = false;
- }
- }
+ virtual bool IsValid(object value) {
+ if(!this._hasBaseIsValid) {
+ // track that this method overload has not been overridden.
+ this._hasBaseIsValid = true;
}
+
+ // call overridden method.
+ return this.IsValid(value, null) == null;
}
#if !SILVERLIGHT
@@ -336,25 +369,20 @@ namespace System.ComponentModel.DataAnnotations {
/// </exception>
#endif
protected virtual ValidationResult IsValid(object value, ValidationContext validationContext) {
- lock (this._syncLock) {
- if (this._isCallingOverload) {
- throw new NotImplementedException(DataAnnotationsResources.ValidationAttribute_IsValid_NotImplemented);
- } else {
- this._isCallingOverload = true;
-
- try {
- ValidationResult result = ValidationResult.Success;
-
- if (!this.IsValid(value)) {
- string[] memberNames = validationContext.MemberName != null ? new string[] { validationContext.MemberName } : null;
- result = new ValidationResult(this.FormatErrorMessage(validationContext.DisplayName), memberNames);
- }
- return result;
- } finally {
- this._isCallingOverload = false;
- }
- }
+ if (this._hasBaseIsValid) {
+ // this means neither of the IsValid methods has been overriden, throw.
+ throw new NotImplementedException(DataAnnotationsResources.ValidationAttribute_IsValid_NotImplemented);
+ }
+
+ ValidationResult result = ValidationResult.Success;
+
+ // call overridden method.
+ if (!this.IsValid(value)) {
+ string[] memberNames = validationContext.MemberName != null ? new string[] { validationContext.MemberName } : null;
+ result = new ValidationResult(this.FormatErrorMessage(validationContext.DisplayName), memberNames);
}
+
+ return result;
}
/// <summary>
diff --git a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/Properties/AssemblyInfo.cs b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/Properties/AssemblyInfo.cs
index fcd6198cd55..ecf6158fe59 100644
--- a/mcs/class/referencesource/System.ComponentModel.DataAnnotations/Properties/AssemblyInfo.cs
+++ b/mcs/class/referencesource/System.ComponentModel.DataAnnotations/Properties/AssemblyInfo.cs
@@ -32,4 +32,4 @@ using System.Security;
[assembly: CLSCompliant(true)]
[assembly: AssemblyVersion("99.0.0.0")]
[assembly: NeutralResourcesLanguage("en-US")]
-#endif
+#endif \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Configuration/System/Configuration/BaseConfigurationRecord.cs b/mcs/class/referencesource/System.Configuration/System/Configuration/BaseConfigurationRecord.cs
index c378f1d68b1..b816d03ed51 100644
--- a/mcs/class/referencesource/System.Configuration/System/Configuration/BaseConfigurationRecord.cs
+++ b/mcs/class/referencesource/System.Configuration/System/Configuration/BaseConfigurationRecord.cs
@@ -3143,17 +3143,17 @@ namespace System.Configuration {
locationSubPath = NormalizeLocationSubPath(locationSubPath, xmlUtil);
// VSWhidbey 535595
- // See attached email in the bug. Basically, we decided to throw if we see one of these
- // in machine.config or root web.config:
- // <location path="." inheritInChildApplications="false" >
- // <location inheritInChildApplications="false" >
- //
- // To detect whetherewe're machine.config or root web.config, the current fix is to use
- // Host.IsDefinitionAllowed. Instead of this we should invent a new method in
- // IInternalConfigHost to return whether a configPath can be part of an app or not.
- // But since it's Whidbey RC "Ask Mode" I chose not to do it due to bigger code churn.
- //
- //
+ // See attached email in the
+
+
+
+
+
+
+
+
+
+
if (locationSubPath == null &&
!inheritInChildApp &&
Host.IsDefinitionAllowed(_configPath, ConfigurationAllowDefinition.MachineToWebRoot, ConfigurationAllowExeDefinition.MachineOnly)) {
diff --git a/mcs/class/referencesource/System.Configuration/System/Configuration/DateTimeConfigurationCollection.cs b/mcs/class/referencesource/System.Configuration/System/Configuration/DateTimeConfigurationCollection.cs
index 14a4f5253f3..1fd7e32bbf2 100644
--- a/mcs/class/referencesource/System.Configuration/System/Configuration/DateTimeConfigurationCollection.cs
+++ b/mcs/class/referencesource/System.Configuration/System/Configuration/DateTimeConfigurationCollection.cs
@@ -89,4 +89,4 @@ namespace System.Configuration {
}
}
}
-#endif
+#endif \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Configuration/System/Configuration/DateTimeConfigurationElement.cs b/mcs/class/referencesource/System.Configuration/System/Configuration/DateTimeConfigurationElement.cs
index 666cb52e965..3e4b0d5142b 100644
--- a/mcs/class/referencesource/System.Configuration/System/Configuration/DateTimeConfigurationElement.cs
+++ b/mcs/class/referencesource/System.Configuration/System/Configuration/DateTimeConfigurationElement.cs
@@ -82,4 +82,4 @@ namespace System.Configuration {
}
}
}
-#endif
+#endif \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Configuration/System/Configuration/FipsAwareEncryptedXml.cs b/mcs/class/referencesource/System.Configuration/System/Configuration/FipsAwareEncryptedXml.cs
new file mode 100644
index 00000000000..ce7a3a24c3b
--- /dev/null
+++ b/mcs/class/referencesource/System.Configuration/System/Configuration/FipsAwareEncryptedXml.cs
@@ -0,0 +1,75 @@
+//------------------------------------------------------------------------------
+// <copyright file="FipsAwareEncryptedXml.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+//------------------------------------------------------------------------------
+
+namespace System.Configuration {
+ using System.Collections;
+ using System.Security.Cryptography;
+ using System.Security.Cryptography.Xml;
+ using System.Xml;
+
+ //
+ // Extends EncryptedXml to use FIPS-certified symmetric algorithm
+ //
+ class FipsAwareEncryptedXml : EncryptedXml {
+
+ public FipsAwareEncryptedXml(XmlDocument doc)
+ : base(doc) {
+ }
+
+ // Override EncryptedXml.GetDecryptionKey to avoid calling into CryptoConfig.CreateFromName
+ // When detect AES, we need to return AesCryptoServiceProvider (FIPS certified) instead of AesManaged (FIPS obsolated)
+ public override SymmetricAlgorithm GetDecryptionKey(EncryptedData encryptedData, string symmetricAlgorithmUri) {
+
+ // If AES is used then assume FIPS is required
+ bool fipsRequired = IsAesDetected(encryptedData, symmetricAlgorithmUri);
+
+ if (fipsRequired) {
+ // Obtain the EncryptedKey
+ EncryptedKey ek = null;
+
+ foreach (var ki in encryptedData.KeyInfo) {
+ KeyInfoEncryptedKey kiEncKey = ki as KeyInfoEncryptedKey;
+ if (kiEncKey != null) {
+ ek = kiEncKey.EncryptedKey;
+ break;
+ }
+ }
+
+ // Got an EncryptedKey, decrypt it to get the AES key
+ if (ek != null) {
+ byte[] key = DecryptEncryptedKey(ek);
+
+ // Construct FIPS-certified AES provider
+ if (key != null) {
+ AesCryptoServiceProvider aes = new AesCryptoServiceProvider();
+ aes.Key = key;
+
+ return aes;
+ }
+ }
+ }
+
+ // Fallback to the base implementation
+ return base.GetDecryptionKey(encryptedData, symmetricAlgorithmUri);
+ }
+
+ private static bool IsAesDetected(EncryptedData encryptedData, string symmetricAlgorithmUri) {
+ if (encryptedData != null &&
+ encryptedData.KeyInfo != null &&
+ (symmetricAlgorithmUri != null || encryptedData.EncryptionMethod != null)) {
+
+ if (symmetricAlgorithmUri == null) {
+ symmetricAlgorithmUri = encryptedData.EncryptionMethod.KeyAlgorithm;
+ }
+
+ // Check if the Uri matches AES256
+ return string.Equals(symmetricAlgorithmUri, EncryptedXml.XmlEncAES256Url, StringComparison.InvariantCultureIgnoreCase);
+ }
+
+ return false;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Configuration/System/Configuration/Internal/InternalConfigHost.cs b/mcs/class/referencesource/System.Configuration/System/Configuration/Internal/InternalConfigHost.cs
index 962ac400dcd..128702ad542 100644
--- a/mcs/class/referencesource/System.Configuration/System/Configuration/Internal/InternalConfigHost.cs
+++ b/mcs/class/referencesource/System.Configuration/System/Configuration/Internal/InternalConfigHost.cs
@@ -69,7 +69,7 @@ namespace System.Configuration.Internal {
[SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Justification = "The callers don't leak this information.")]
static internal string StaticGetStreamNameForConfigSource(string streamName, string configSource) {
//
- // Note ([....] 7/08/05):
+ // Note (Microsoft 7/08/05):
// RemoteWebConfigurationHost also redirects GetStreamNameForConfigSource to this
// method, and that means streamName is referring to a path that's on the remote
// machine. The problem is that Path.GetFullPath will demand FileIOPermission on
diff --git a/mcs/class/referencesource/System.Configuration/System/Configuration/MgmtConfigurationRecord.cs b/mcs/class/referencesource/System.Configuration/System/Configuration/MgmtConfigurationRecord.cs
index 748bf3a8adf..2d50547362a 100644
--- a/mcs/class/referencesource/System.Configuration/System/Configuration/MgmtConfigurationRecord.cs
+++ b/mcs/class/referencesource/System.Configuration/System/Configuration/MgmtConfigurationRecord.cs
@@ -1212,8 +1212,8 @@ namespace System.Configuration {
reader.Read();
}
- // Dev10 bug 687017 - Handle only UTF-16 explicitly, so that handling of other
- // encodings are not affected.
+ // Dev10
+
if (reader.CurrentEncoding is UnicodeEncoding) {
encoding = reader.CurrentEncoding;
}
@@ -1776,7 +1776,7 @@ namespace System.Configuration {
// VSWhidbey 580658: When a section is to be removed, its corresponding file
// input should be cleared as well so this section will be indicated as "moved"
// next time something is added back to the section. Without marking it as "moved",
- // adding new content to a removed section fails as the bug describes.
+ // adding new content to a removed section fails as the
sectionRecord.RemoveFileInput();
}
}
diff --git a/mcs/class/referencesource/System.Configuration/System/Configuration/RSAProtectedConfigurationProvider.cs b/mcs/class/referencesource/System.Configuration/System/Configuration/RSAProtectedConfigurationProvider.cs
index 5f3d6a67cfa..44812b08716 100644
--- a/mcs/class/referencesource/System.Configuration/System/Configuration/RSAProtectedConfigurationProvider.cs
+++ b/mcs/class/referencesource/System.Configuration/System/Configuration/RSAProtectedConfigurationProvider.cs
@@ -32,7 +32,7 @@ namespace System.Configuration
xmlDocument.PreserveWhitespace = true;
xmlDocument.LoadXml(encryptedNode.OuterXml);
- exml = new EncryptedXml(xmlDocument);
+ exml = new FipsAwareEncryptedXml(xmlDocument);
exml.AddKeyNameMapping(_KeyName, rsa);
exml.DecryptDocument();
rsa.Clear();
@@ -46,13 +46,11 @@ namespace System.Configuration
byte[] rgbOutput;
EncryptedData ed;
KeyInfoName kin;
- SymmetricAlgorithm symAlg;
EncryptedKey ek;
KeyInfoEncryptedKey kek;
XmlElement inputElement;
RSACryptoServiceProvider rsa = GetCryptoServiceProvider(false, false);
-
// Encrypt the node with the new key
xmlDocument = new XmlDocument();
xmlDocument.PreserveWhitespace = true;
@@ -60,23 +58,20 @@ namespace System.Configuration
exml = new EncryptedXml(xmlDocument);
inputElement = xmlDocument.DocumentElement;
- // Create a new 3DES key
- symAlg = new TripleDESCryptoServiceProvider();
- byte[] rgbKey1 = GetRandomKey();
- symAlg.Key = rgbKey1;
- symAlg.Mode = CipherMode.ECB;
- symAlg.Padding = PaddingMode.PKCS7;
- rgbOutput = exml.EncryptData(inputElement, symAlg, true);
- ed = new EncryptedData();
- ed.Type = EncryptedXml.XmlEncElementUrl;
- ed.EncryptionMethod = new EncryptionMethod(EncryptedXml.XmlEncTripleDESUrl);
- ed.KeyInfo = new KeyInfo();
-
- ek = new EncryptedKey();
- ek.EncryptionMethod = new EncryptionMethod(EncryptedXml.XmlEncRSA15Url);
- ek.KeyInfo = new KeyInfo();
- ek.CipherData = new CipherData();
- ek.CipherData.CipherValue = EncryptedXml.EncryptKey(symAlg.Key, rsa, UseOAEP);
+ using (SymmetricAlgorithm symAlg = GetSymAlgorithmProvider()) {
+ rgbOutput = exml.EncryptData(inputElement, symAlg, true);
+ ed = new EncryptedData();
+ ed.Type = EncryptedXml.XmlEncElementUrl;
+ ed.EncryptionMethod = GetSymEncryptionMethod();
+ ed.KeyInfo = new KeyInfo();
+
+ ek = new EncryptedKey();
+ ek.EncryptionMethod = new EncryptionMethod(EncryptedXml.XmlEncRSA15Url);
+ ek.KeyInfo = new KeyInfo();
+ ek.CipherData = new CipherData();
+ ek.CipherData.CipherValue = EncryptedXml.EncryptKey(symAlg.Key, rsa, UseOAEP);
+ }
+
kin = new KeyInfoName();
kin.Value = _KeyName;
ek.KeyInfo.AddClause(kin);
@@ -85,6 +80,9 @@ namespace System.Configuration
ed.CipherData = new CipherData();
ed.CipherData.CipherValue = rgbOutput;
EncryptedXml.ReplaceElement(inputElement, ed, true);
+
+ rsa.Clear();
+
// Get node from the document
foreach (XmlNode node2 in xmlDocument.ChildNodes)
if (node2.NodeType == XmlNodeType.Element)
@@ -129,6 +127,8 @@ namespace System.Configuration
public string CspProviderName { get { return _CspProviderName; } }
public bool UseMachineContainer { get { return _UseMachineContainer; } }
public bool UseOAEP { get { return _UseOAEP; } }
+ public bool UseFIPS { get { return _UseFIPS; } }
+
public override void Initialize(string name, NameValueCollection configurationValues)
{
base.Initialize(name, configurationValues);
@@ -143,6 +143,7 @@ namespace System.Configuration
configurationValues.Remove("cspProviderName");
_UseMachineContainer = GetBooleanValue(configurationValues, "useMachineContainer", true);
_UseOAEP = GetBooleanValue(configurationValues, "useOAEP", false);
+ _UseFIPS = GetBooleanValue(configurationValues, "useFIPS", false);
if (configurationValues.Count > 0)
throw new ConfigurationErrorsException(SR.GetString(SR.Unrecognized_initialization_value, configurationValues.GetKey(0)));
}
@@ -153,6 +154,7 @@ namespace System.Configuration
private string _CspProviderName;
private bool _UseMachineContainer;
private bool _UseOAEP;
+ private bool _UseFIPS;
public RSAParameters RsaPublicKey { get { return GetCryptoServiceProvider(false, false).ExportParameters(false); } }
@@ -162,7 +164,7 @@ namespace System.Configuration
CspParameters csp = new CspParameters();
csp.KeyContainerName = KeyContainerName;
csp.KeyNumber = 1;
- csp.ProviderType = 1; // Dev10 Bug #548719: Explicitly require "RSA Full (Signature and Key Exchange)"
+ csp.ProviderType = 1; // Dev10
if (CspProviderName != null && CspProviderName.Length > 0)
csp.ProviderName = CspProviderName;
@@ -234,5 +236,30 @@ namespace System.Configuration
return false;
throw new ConfigurationErrorsException(SR.GetString(SR.Config_invalid_boolean_attribute, valueName));
}
+
+ private SymmetricAlgorithm GetSymAlgorithmProvider() {
+ SymmetricAlgorithm symAlg;
+
+ if (UseFIPS) {
+ // AesCryptoServiceProvider implementation is FIPS certified
+ symAlg = new AesCryptoServiceProvider();
+ }
+ else {
+ // Use the 3DES. FIPS obsolated 3DES
+ symAlg = new TripleDESCryptoServiceProvider();
+
+ byte[] rgbKey1 = GetRandomKey();
+ symAlg.Key = rgbKey1;
+ symAlg.Mode = CipherMode.ECB;
+ symAlg.Padding = PaddingMode.PKCS7;
+ }
+
+ return symAlg;
+ }
+
+ private EncryptionMethod GetSymEncryptionMethod() {
+ return UseFIPS ? new EncryptionMethod(EncryptedXml.XmlEncAES256Url) :
+ new EncryptionMethod(EncryptedXml.XmlEncTripleDESUrl);
+ }
}
}
diff --git a/mcs/class/referencesource/System.Configuration/System/Configuration/TypeUtil.cs b/mcs/class/referencesource/System.Configuration/System/Configuration/TypeUtil.cs
index ce654da3905..14af70f0178 100644
--- a/mcs/class/referencesource/System.Configuration/System/Configuration/TypeUtil.cs
+++ b/mcs/class/referencesource/System.Configuration/System/Configuration/TypeUtil.cs
@@ -135,6 +135,7 @@ namespace System.Configuration {
ilGen.Emit(OpCodes.Ldarg_0); // stack = { type }
ilGen.Emit(OpCodes.Ldc_I4_1); // stack = { type, TRUE }
ilGen.Emit(OpCodes.Call, typeof(Activator).GetMethod("CreateInstance", new Type[] { typeof(Type), typeof(bool) })); // stack = { retVal }
+ PreventTailCall(ilGen); // stack = { retVal }
ilGen.Emit(OpCodes.Ret);
var createInstanceDel = (Func<Type, object>)dm.CreateDelegate(typeof(Func<Type, object>));
return createInstanceDel(targetType);
@@ -163,6 +164,7 @@ namespace System.Configuration {
ilGen.Emit(OpCodes.Ldarg_0); // stack = { type }
ilGen.Emit(OpCodes.Ldarg_1); // stack = { type, method }
ilGen.Emit(OpCodes.Call, typeof(Delegate).GetMethod("CreateDelegate", new Type[] { typeof(Type), typeof(MethodInfo) })); // stack = { retVal }
+ PreventTailCall(ilGen); // stack = { retVal }
ilGen.Emit(OpCodes.Ret);
var createDelegateDel = (Func<Type, MethodInfo, Delegate>)dm.CreateDelegate(typeof(Func<Type, MethodInfo, Delegate>));
return createDelegateDel(delegateType, targetMethod);
@@ -188,6 +190,17 @@ namespace System.Configuration {
return new DynamicMethod("temp-dynamic-method", returnType, parameterTypes, owner);
}
+ // DevDiv #736562: If a dynamic method tail-calls into Activator.CreateInstance or Delegate.CreateDelegate, it could
+ // modify stack frames in such a way that a stack walk fails when it should have succeeded. A volatile field read
+ // prevents reordering so ensures that the dynamic method cannot tail-call into these methods.
+ //
+ // Stack transitional behavior: unchanged.
+ private static void PreventTailCall(ILGenerator ilGen) {
+ ilGen.Emit(OpCodes.Volatile);
+ ilGen.Emit(OpCodes.Ldsfld, typeof(String).GetField("Empty"));
+ ilGen.Emit(OpCodes.Pop);
+ }
+
static internal ConstructorInfo GetConstructorWithReflectionPermission(Type type, Type baseType, bool throwOnError) {
type = VerifyAssignableType(baseType, type, throwOnError);
if (type == null) {
diff --git a/mcs/class/referencesource/System.Core/BaselineExcludes.lst.cs b/mcs/class/referencesource/System.Core/BaselineExcludes.lst.cs
index 9b6cda1ef2f..7e654aca3fa 100644
--- a/mcs/class/referencesource/System.Core/BaselineExcludes.lst.cs
+++ b/mcs/class/referencesource/System.Core/BaselineExcludes.lst.cs
@@ -1,940 +1,940 @@
using System.Diagnostics.CodeAnalysis;
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.SRDescriptionAttribute..ctor(System.String)", Justification = "[....]:Only present in unoptimized builds.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Linq.SR..cctor()", Justification = "[....]:Only present in unoptimized builds.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Linq.Expressions.SRDescriptionAttribute..ctor(System.String)", Justification = "[....]:Only present in unoptimized builds.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Linq.SRDescriptionAttribute..ctor(System.String)", Justification = "[....]:Only present in unoptimized builds.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Linq.Expressions.SR..cctor()", Justification = "[....]:Only present in unoptimized builds.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.SR..cctor()", Justification = "[....]:Only present in unoptimized builds.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "Microsoft.CSharp.Errors.SR..cctor()", Justification = "[....]:Only present in unoptimized builds.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "Microsoft.CSharp.Errors.SRDescriptionAttribute..ctor(System.String)", Justification = "[....]:Only present in unoptimized builds.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "Microsoft.CSharp.RuntimeBinder.SR..cctor()", Justification = "[....]:Only present in unoptimized builds.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "Microsoft.CSharp.RuntimeBinder.SRDescriptionAttribute..ctor(System.String)", Justification = "[....]:Only present in unoptimized builds.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.SRDescriptionAttribute..ctor(System.String)", Justification = "jomof:Only present in unoptimized builds.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Linq.SR..cctor()", Justification = "wesdyer:Only present in unoptimized builds.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Linq.Expressions.SRDescriptionAttribute..ctor(System.String)", Justification = "wesdyer:Only present in unoptimized builds.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Linq.SRDescriptionAttribute..ctor(System.String)", Justification = "wesdyer:Only present in unoptimized builds.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Linq.Expressions.SR..cctor()", Justification = "wesdyer:Only present in unoptimized builds.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.SR..cctor()", Justification = "jomof:Only present in unoptimized builds.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "Microsoft.CSharp.Errors.SR..cctor()", Justification = "cburrows:Only present in unoptimized builds.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "Microsoft.CSharp.Errors.SRDescriptionAttribute..ctor(System.String)", Justification = "cburrows:Only present in unoptimized builds.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "Microsoft.CSharp.RuntimeBinder.SR..cctor()", Justification = "cburrows:Only present in unoptimized builds.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "Microsoft.CSharp.RuntimeBinder.SRDescriptionAttribute..ctor(System.String)", Justification = "cburrows:Only present in unoptimized builds.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA900:AptcaAssembliesShouldBeReviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):System.Void", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.CreateNamedPipe(System.String,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES):Microsoft.Win32.SafeHandles.SafePipeHandle", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1000:DoNotDeclareStaticMembersOnGenericTypes", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.CreateSetComparer():System.Collections.Generic.IEqualityComparer`1<System.Collections.Generic.HashSet`1<T>", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.InitializeLifetimeService():System.Object", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm..ctor(System.String,System.Security.Cryptography.CapiNative+ProviderType,System.Security.Cryptography.CapiNative+AlgorithmId)", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.TimeZoneInfo.System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):System.Void", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm..ctor(System.Security.Cryptography.BCryptAlgorithm,System.String)", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream..ctor(System.String,System.IO.Pipes.PipeDirection,System.Int32,System.IO.Pipes.PipeTransmissionMode,System.IO.Pipes.PipeOptions,System.Int32,System.Int32,System.IO.Pipes.PipeSecurity,System.IO.HandleInheritability,System.IO.Pipes.PipeAccessRights)", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.Create(System.String,System.IO.Pipes.PipeDirection,System.Int32,System.IO.Pipes.PipeTransmissionMode,System.IO.Pipes.PipeOptions,System.Int32,System.Int32,System.IO.Pipes.PipeAccessRights,Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES):System.Void", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider..ctor()", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.CreateSetComparer():System.Collections.Generic.IEqualityComparer`1<System.Collections.Generic.HashSet`1<T>", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):System.Void", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.Renewal(System.Runtime.Remoting.Lifetime.ILease):System.TimeSpan", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.GetSecAttrs(System.IO.HandleInheritability,System.IO.Pipes.PipeSecurity,System.Object&):Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.DeriveSecretAgreement(Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle,Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle):Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle", Justification = "[....]:baselining until owner can fix")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.AddIn.MiniReflection.TypeInfo.HasToken.get_HasToken():System.Boolean", Justification = "[....]:baselining until owner can fix")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2215:DisposeMethodsShouldCallBaseClassDispose", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.Dispose(System.Boolean):System.Void", Justification = "[....]:baselining until owner can fix")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.OpenStorageProvider(System.String):Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle", Justification = "[....]:baselining until owner can fix")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm..ctor(System.Security.Cryptography.CngAlgorithm,System.String)", Justification = "[....]:baselining until owner can fix")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeBinary(System.Linq.Expressions.ExpressionType,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Boolean,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression", Justification = "[....]:Source code is not complex")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):System.Void", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.CreateNamedPipe(System.String,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES):Microsoft.Win32.SafeHandles.SafePipeHandle", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1000:DoNotDeclareStaticMembersOnGenericTypes", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.CreateSetComparer():System.Collections.Generic.IEqualityComparer`1<System.Collections.Generic.HashSet`1<T>", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.InitializeLifetimeService():System.Object", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm..ctor(System.String,System.Security.Cryptography.CapiNative+ProviderType,System.Security.Cryptography.CapiNative+AlgorithmId)", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.TimeZone2.System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):System.Void", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm..ctor(System.Security.Cryptography.BCryptAlgorithm,System.String)", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream..ctor(System.String,System.IO.Pipes.PipeDirection,System.Int32,System.IO.Pipes.PipeTransmissionMode,System.IO.Pipes.PipeOptions,System.Int32,System.Int32,System.Security.AccessControl.PipeSecurity,System.IO.HandleInheritability,System.Security.AccessControl.PipeAccessRights)", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.Create(System.String,System.IO.Pipes.PipeDirection,System.Int32,System.IO.Pipes.PipeTransmissionMode,System.IO.Pipes.PipeOptions,System.Int32,System.Int32,System.Security.AccessControl.PipeAccessRights,Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES):System.Void", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider..ctor()", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.CreateSetComparer():System.Collections.Generic.IEqualityComparer`1<System.Collections.Generic.HashSet`1<T>", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):System.Void", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.Renewal(System.Runtime.Remoting.Lifetime.ILease):System.TimeSpan", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.GetSecAttrs(System.IO.HandleInheritability,System.Security.AccessControl.PipeSecurity,System.Object&):Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES", Justification = "[....]:X86CHK only violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.DeriveSecretAgreement(Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle,Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle):Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle", Justification = "[....]:baselining until owner can fix")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.AddIn.MiniReflection.TypeInfo.HasToken.get_HasToken():System.Boolean", Justification = "[....]:baselining until owner can fix")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2215:DisposeMethodsShouldCallBaseClassDispose", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.Dispose(System.Boolean):System.Void", Justification = "[....]:baselining until owner can fix")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.OpenStorageProvider(System.String):Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle", Justification = "[....]:baselining until owner can fix")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm..ctor(System.Security.Cryptography.CngAlgorithm,System.String)", Justification = "[....]:baselining until owner can fix")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeBinary(System.Linq.Expressions.ExpressionType,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Boolean,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression", Justification = "[....]:Source code is not complex")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Query.Queryable.AsQueryable(System.Collections.Generic.IEnumerable`1<T>):System.Query.IQueryable`1<T>", Justification = "[....]:cl# 2204059 caused fxcop violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "Member", Target = "System.Expressions.StrongBox`1.System.Expressions.IStrongBox.Value.System.Expressions.IStrongBox.set_Value(System.Object):System.Void", Justification = "[....]:cl# 2204059 caused fxcop violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Query.Queryable.AsQueryable(System.Collections.IEnumerable):System.Query.IQueryable", Justification = "[....]:cl# 2204059 caused fxcop violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Expressions.ExecutionScope.Locals", Justification = "[....]:cl# 2204059 caused fxcop violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "Member", Target = "System.Expressions.IStrongBox", MessageId = "StrongBox", Justification = "[....]:cl# 2204059 caused fxcop violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "Member", Target = "System.Expressions.StrongBox`1.System.Expressions.IStrongBox.Value.System.Expressions.IStrongBox.get_Value():System.Object", Justification = "[....]:cl# 2204059 caused fxcop violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Expressions.ExecutionScope.Globals", Justification = "[....]:cl# 2204059 caused fxcop violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Expressions.ExecutionScope.Parent", Justification = "[....]:cl# 2204059 caused fxcop violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Expressions.StrongBox`1.Value", Justification = "[....]:cl# 2204059 caused fxcop violations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Count.get_Count():System.Int32", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.GetItem(System.Int32):U", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.RevokeLifetimeToken(System.Int32):System.Void", MessageId = "0#", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.RemoveAt(System.Int32):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Add(U):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractEnumeratorAdapter`2.MoveNext():System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Remove(U):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.IsReadOnly.get_IsReadOnly():System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Clear():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractEnumeratorAdapter`2.Reset():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.AddIn.Pipeline.CollectionAdapters.ToIListContract(System.Void):System.AddIn.Contract.IListContract`1", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.CopyTo(U[],System.Int32):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Insert(System.Int32,U):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractEnumeratorAdapter`2.Dispose(System.Boolean):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.TimeZoneInfo..cctor()", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Item[System.Int32].set_Item(System.Int32,U):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Hosting.AddInController.Shutdown():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Finalize():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.GetEnumerator():System.Collections.Generic.IEnumerator`1<U>", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Contains(U):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.IndexOf(U):System.Int32", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.SetItem(System.Int32,U):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.GetRemoteHashCode():System.Int32", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractEnumeratorAdapter`2.Current.get_Current():U", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Hosting.AddInController.AssociateWithHostAddinView(System.Object,System.AddIn.Contract.IContract):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.AddIn.Pipeline.CollectionAdapters.ToIList(System.AddIn.Contract.IListContract`1):System.Collections.Generic.IList`1<T>", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Item[System.Int32].get_Item(System.Int32):U", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.DiffieHellman", MessageId = "Diffie", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm.Initialize():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction", MessageId = "Diffie", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanPublicKey", MessageId = "Diffie", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyBlobFormat", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDsaP384", MessageId = "Dsa", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeAxlBufferHandle.HeapFree(System.IntPtr,System.Int32,System.IntPtr):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.AddIn.Hosting.AddInActivator.ActivateInAppDomain(System.AddIn.Hosting.AddInToken,System.AppDomain,System.AddIn.Hosting.AddInController,System.Boolean):T", MessageId = "System.Reflection.Assembly.LoadFrom", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.SHA512Cng", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyBlobFormat.EccPublicBlob", MessageId = "Ecc", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline", Scope = "Member", Target = "System.AddIn.Hosting.InspectionWorker..cctor()", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm.Dispose():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "Member", Target = "System.Security.Cryptography.X509Certificates.X509Native+UnsafeNativeMethods._AxlGetIssuerPublicKeyHash(System.IntPtr,Microsoft.Win32.SafeHandles.SafeAxlBufferHandle&):System.Int32", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP256", MessageId = "Hellman", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.AddIn.Pipeline.ContractAdapter.ContractToViewAdapter(System.AddIn.Contract.IContract,System.String):TView", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.SecretPrepend", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCspHandle..ctor()", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.Dispose(System.Boolean):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.AddIn.Hosting.Utils.LoadAssemblyFrom(System.Collections.Generic.List`1<System.String>,System.String):System.Reflection.Assembly", MessageId = "System.Reflection.Assembly.LoadFrom", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.CheckConnectOperations():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.GetClientHandleAsString():System.String", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCapiKeyHandle.InvalidHandle.get_InvalidHandle():Microsoft.Win32.SafeHandles.SafeCapiKeyHandle", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.DiffieHellman", MessageId = "Hellman", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyCreationParameters", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyBlobFormat.EccPrivateBlob", MessageId = "Ecc", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDsa", MessageId = "Dsa", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "Type", Target = "System.IO.Pipes.PipeDirection", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Numeric", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1802:UseLiteralsWhereAppropriate", Scope = "Member", Target = "System.IO.Pipes.PipeStream._canUseAsync", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.Dsa", MessageId = "Dsa", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Hosting.AddInActivator.ActivateInAppDomain(System.AddIn.Hosting.AddInToken,System.AppDomain,System.AddIn.Hosting.AddInController,System.Boolean):T", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.Dispose(System.Boolean):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.Seed", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.SetKeyParameter(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Security.Cryptography.CapiNative+KeyParameter,System.Byte[]):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.ECDiffieHellman", MessageId = "Diffie", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeAxlBufferHandle.GetProcessHeap():System.IntPtr", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream..cctor()", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateDecryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "0#", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanPublicKey", MessageId = "Hellman", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeClientStream..ctor(System.IO.Pipes.PipeDirection,System.String)", MessageId = "1#", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.SHA1Cng", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng", MessageId = "Hellman", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngExportPolicies", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.Rsa", MessageId = "Rsa", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesManaged.CreateDecryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "1#", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesManaged.CreateDecryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "0#", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeClientStream..ctor(System.IO.Pipes.PipeDirection,System.String)", MessageId = "System.Int64.Parse(System.String)", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.IsMessageComplete.get_IsMessageComplete():System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.Label", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngProperty", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.RevokeLifetimeToken(System.Int32):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngUIProtectionLevels", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.WaitForPipeDrain():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeClientStream..ctor(System.String)", MessageId = "0#", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.GetImpersonationUserName():System.String", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.AddIn.Hosting.AddInStore.Rebuild(System.String):System.String[]", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.GetPropertyAsString(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.Security.Cryptography.CngPropertyOptions):System.String", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.ExportSymmetricKey(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle):System.Byte[]", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCngPublicKey", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCngPublicKey", MessageId = "Diffie", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellman", MessageId = "Diffie", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateEncryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "1#", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.HmacKey", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Threading.ReaderWriterLockSlim.MyLockHeld.get_MyLockHeld():System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle.NCryptFreeObject(System.IntPtr):System.Int32", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.AddIn.Hosting.AddInToken.Activate(System.Security.PermissionSet):T", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.UseSecretAgreementAsHmacKey", MessageId = "Hmac", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.WaitForConnection():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.NCryptSupported.get_NCryptSupported():System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2217:DoNotMarkEnumsWithFlags", Scope = "Type", Target = "System.Security.Cryptography.CngPropertyOptions", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCspHandle.Duplicate():Microsoft.Win32.SafeHandles.SafeCspHandle", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.ImportSymmetricKey(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Security.Cryptography.CapiNative+AlgorithmId,System.Byte[]):Microsoft.Win32.SafeHandles.SafeCapiKeyHandle", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCngPublicKey", MessageId = "Hellman", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "Member", Target = "System.AddIn.AddInAttribute..ctor(System.String)", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeBCryptAlgorithmHandle.BCryptCloseAlgorithmProvider(System.IntPtr,System.Int32):System.Security.Cryptography.BCryptNative+ErrorCode", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm.HashCore(System.Byte[],System.Int32,System.Int32):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.ECDsa", MessageId = "Dsa", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "Namespace", Target = "System.Numeric", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.AddIn.Hosting.AddInStore.RebuildAddIns(System.String):System.String[]", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.GetClientHandleAsString():System.String", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP521", MessageId = "Diffie", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.GenerateIV():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2119:SealMethodsThatSatisfyPrivateInterfaces", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.QueryContract(System.String):System.AddIn.Contract.IContract", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CngKey.Exists(System.String,System.Security.Cryptography.CngProvider,System.Security.Cryptography.CngKeyOpenOptions):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.KeySize.set_KeySize(System.Int32):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.GetProviderParameterStruct(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Security.Cryptography.CapiNative+ProviderParameter,System.Security.Cryptography.CapiNative+ProviderParameterFlags):T", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngUIPolicy", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.DeriveKeyMaterial(Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle,System.String,System.String,System.Byte[],System.Byte[],System.Byte[],System.Security.Cryptography.NCryptNative+SecretAgreementFlags):System.Byte[]", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "Namespace", Target = "System.IO.Pipes", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Core.resources", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.MD5Cng", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Core.resources", MessageId = "Hellman", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesManaged.CreateEncryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "1#", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesManaged.CreateEncryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "0#", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyUsages", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "Member", Target = "System.AddIn.Pipeline.LifetimeTokenHandle.AppDomainOwner(System.AppDomain):System.AddIn.Contract.IContract", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2217:DoNotMarkEnumsWithFlags", Scope = "Type", Target = "System.IO.Pipes.PipeOptions", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeBCryptHashHandle.BCryptDestroyHash(System.IntPtr):System.Security.Cryptography.BCryptNative+ErrorCode", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng", MessageId = "Diffie", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.IO.Pipes.PipeStream.GetAccessControl():System.Security.AccessControl.PipeSecurity", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCspHandle.CryptContextAddRef(Microsoft.Win32.SafeHandles.SafeCspHandle,System.IntPtr,System.Int32):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.Key.get_Key():System.Byte[]", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative.BCryptSupported.get_BCryptSupported():System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "Member", Target = "System.AddIn.Pipeline.LifetimeTokenHandle.ContractOwnsAppDomain(System.AddIn.Contract.IContract,System.AppDomain):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyCreationOptions", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.OutBufferSize.get_OutBufferSize():System.Int32", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.AddIn.Hosting.AddInActivator.Activate(System.AddIn.Hosting.PartialToken,System.AddIn.Contract.IContract):T", MessageId = "System.Reflection.Assembly.LoadFrom", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngPropertyOptions", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.ReadMode.set_ReadMode(System.IO.Pipes.PipeTransmissionMode):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.AddIn.Hosting.AddInStore.DiscoverHostAdapters(System.String,System.Collections.Generic.List`1<System.AddIn.HostAdapter>,System.String,System.Collections.ObjectModel.Collection`1<System.String>):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.GetAccessControl():System.Security.AccessControl.PipeSecurity", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.InBufferSize.get_InBufferSize():System.Int32", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.RegisterAsSponsor():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKey", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngProvider.MicrosoftSmartCardKeyStorageProvider", MessageId = "CardKey", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.AcquireCsp(System.String,System.String,System.Security.Cryptography.CapiNative+ProviderType,System.Security.Cryptography.CapiNative+CryptAcquireContextFlags,System.Boolean):Microsoft.Win32.SafeHandles.SafeCspHandle", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyOpenOptions", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm.Initialize():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateEncryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "0#", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP521", MessageId = "Hellman", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.SafePipeHandle.get_SafePipeHandle():Microsoft.Win32.SafeHandles.SafePipeHandle", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateDecryptor():System.Security.Cryptography.ICryptoTransform", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDsaP256", MessageId = "Dsa", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.Key.set_Key(System.Byte[]):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiSymmetricAlgorithm..ctor(System.Int32,System.Int32,Microsoft.Win32.SafeHandles.SafeCspHandle,Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Byte[],System.Security.Cryptography.CipherMode,System.Security.Cryptography.PaddingMode,System.Security.Cryptography.EncryptionMode)", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.SHA384Cng", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.DisposeLocalCopyOfClientHandle():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP384", MessageId = "Diffie", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle.NCryptFreeObject(System.IntPtr):System.Int32", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCapiKeyHandle..ctor()", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateEncryptor():System.Security.Cryptography.ICryptoTransform", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngPropertyCollection", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCapiHashHandle.CryptDestroyHash(System.IntPtr):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCapiKeyHandle.Duplicate():Microsoft.Win32.SafeHandles.SafeCapiKeyHandle", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP256", MessageId = "Diffie", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginRead(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IAsyncResult", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeClientStream.NumberOfServerInstances.get_NumberOfServerInstances():System.Int32", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Core.resources", MessageId = "Diffie", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCspHandle.CryptReleaseContext(System.IntPtr,System.Int32):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.Dispose(System.Boolean):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm.Dispose():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.BeginWaitForConnection(System.AsyncCallback,System.Object):System.IAsyncResult", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CngKey.Dispose():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IAsyncResult", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.HmacKey", MessageId = "Hmac", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle.NCryptFreeObject(System.IntPtr):System.Int32", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginReadCore(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IO.Pipes.PipeStreamAsyncResult", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP384", MessageId = "Hellman", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.GetClientHandleAsString():System.String", MessageId = "System.Runtime.InteropServices.SafeHandle.DangerousGetHandle", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "Type", Target = "System.Security.Cryptography.CngKeyOpenOptions", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction.Hmac", MessageId = "Hmac", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.CheckPipePropertyOperations():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.QueryContract(System.String):System.AddIn.Contract.IContract", MessageId = "0#", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.ECDiffieHellman", MessageId = "Hellman", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.GetHashParameter(Microsoft.Win32.SafeHandles.SafeCapiHashHandle,System.Security.Cryptography.CapiNative+HashParameter):System.Byte[]", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline", Scope = "Member", Target = "System.IO.Pipes.PipeStream..cctor()", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.TransmissionMode.get_TransmissionMode():System.IO.Pipes.PipeTransmissionMode", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.CheckReadWriteOperations():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.AddIn.Hosting.InspectionWorker.Inspect(System.AddIn.PipelineComponentType):System.AddIn.Hosting.InspectionResults", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginWriteCore(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IO.Pipes.PipeStreamAsyncResult", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateDecryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "1#", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.GetSecAttrs(System.IO.HandleInheritability):Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDsaP521", MessageId = "Dsa", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.CheckDisconnectOperations():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.SecretAppend", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellman", MessageId = "Hellman", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Core.resources", MessageId = "Dsa", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Scope = "Member", Target = "System.Security.Cryptography.CngKey.BuildKeyContainerPermission(System.Security.Permissions.KeyContainerPermissionFlags):System.Security.Permissions.KeyContainerPermission", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.WinIOError(System.Int32):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.GenerateKey():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDsaCng", MessageId = "Dsa", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDsaCng", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.SHA256Cng", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.AddIn.Hosting.AddInStore.DiscoverAddIns(System.String,System.Collections.Generic.List`1<System.AddIn.AddIn>,System.String,System.Collections.ObjectModel.Collection`1<System.String>):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngProvider", MessageId = "Cng", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.AcquireLifetimeToken():System.Int32", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction", MessageId = "Hellman", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.GetPropertyAsStruct(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.Security.Cryptography.CngPropertyOptions):T", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngProvider.MicrosoftSmartCardKeyStorageProvider", MessageId = "SmartCard", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.LifetimeTokenHandle.Dispose(System.Boolean):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.Disconnect():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeClientStream.Connect(System.Int32):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2217:DoNotMarkEnumsWithFlags", Scope = "Type", Target = "System.Security.Cryptography.CngKeyUsages", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCapiKeyHandle.CryptDestroyKey(System.IntPtr):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.AddIn.Pipeline.CollectionAdapters.ToIListContract(System.Collections.Generic.IList`1<TView>,System.Converter`2<TView,TContract>,System.Converter`2<TContract,TView>):System.AddIn.Contract.IListContract`1<TContract>", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.AddIn.Pipeline.CollectionAdapters.ToIList(System.AddIn.Contract.IListContract`1<T>):System.Collections.Generic.IList`1<T>", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.AddIn.Pipeline.CollectionAdapters.ToIList(System.AddIn.Contract.IListContract`1<TContract>,System.Converter`2<TContract,TView>,System.Converter`2<TView,TContract>):System.Collections.Generic.IList`1<TView>", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.AddIn.Pipeline.CollectionAdapters.ToIListContract(System.Collections.Generic.IList`1<T>):System.AddIn.Contract.IListContract`1<T>", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.CompileDynamicLambda(System.Linq.Expressions.LambdaExpression):System.Delegate", MessageId = "scope", Justification = "[....]:FI from main@2007/01/02 23:37:29 ")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "Member", Target = "System.Management.WmiConfigurationAttribute..ctor(System.String)", Justification = "[....]:FI from Main @ 2379435")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1807:AvoidUnnecessaryStringCreation", Scope = "Member", Target = "System.Management.WmiConfigurationAttribute..ctor(System.String)", MessageId = "namespacePart", Justification = "[....]:FI from Main @ 2379435")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:FI from Main @ 2576802")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Boolean,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:FI from Main @ 2576802")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", MessageId = "ask", Justification = "[....]:FI from Main @ 2576802")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNumericConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "[....]:FI from Main @ 2576802")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNumericConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "[....]:FI from Main @ 2576802")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeBinary(System.Linq.Expressions.ExpressionType,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Boolean,System.Reflection.MethodInfo,System.Linq.Expressions.LambdaExpression):System.Linq.Expressions.BinaryExpression", Justification = "[....]:FI from Main @ 2576802")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableToReferenceConversion(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "[....]:FI from Main @ 2576802")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberWriteBack(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.Expression,System.Reflection.MemberInfo,System.Reflection.Emit.LocalBuilder):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateCastToType(System.Reflection.Emit.ILGenerator,System.Type,System.Type):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateQuote(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.UnaryExpression):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateConvert(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.UnaryExpression):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.IsInteger(System.Type):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateReferenceCoalesceWithoutConversion(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberInit(System.Reflection.Emit.ILGenerator,System.Collections.ObjectModel.ReadOnlyCollection`1<System.Linq.Expressions.MemberBinding>,System.Boolean):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLoadHoistedLocals(System.Reflection.Emit.ILGenerator):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Boolean,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GetNonNullableType(System.Type):System.Type", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.IsFloatingPoint(System.Type):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMethodOrElse(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNumericConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateInvoke(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.InvocationExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateHasValue(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateBinding(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.MemberBinding):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.Generate(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.Expression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLambdaReferenceCoalesce(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMethodCall(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.MethodCallExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.CheckReadOperations():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUserdefinedLiftedAndAlso(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.VerifyStrongNameSignature(System.Xml.XmlElement):System.Security.Cryptography.StrongNameSignatureInformation", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedAndAlso(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedRelational(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Boolean,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.IsNullable(System.Type):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedBinaryArithmetic(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GetMemberType(System.Reflection.MemberInfo):System.Type", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.AddGlobal(System.Type,System.Object):System.Int32", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateAndAlso(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginRead(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IAsyncResult", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.IsConvertible(System.Type):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnaryMethod(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.UnaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateFieldAccess(System.Reflection.Emit.ILGenerator,System.Reflection.FieldInfo,System.Linq.Expressions.ExpressionCompiler+StackType):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableToReferenceConversion(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedBooleanAnd(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateListInit(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ListInitExpression):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GetParameterTypes(System.Reflection.MethodInfo):System.Type[]", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateGetValue(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateWriteBack(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionCompiler+WriteBack):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedEquality(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberAccess(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.MemberExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableToNullableConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberAccess(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.Expression,System.Reflection.MemberInfo,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateParameterAccess(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ParameterExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableToNonNullableStructConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateArrayAccess(System.Reflection.Emit.ILGenerator,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.MakeStrongBoxType(System.Type):System.Type", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateConditional(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ConditionalExpression):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableToNonNullableConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateGetValueOrDefault(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateConstant(System.Reflection.Emit.ILGenerator,System.Type,System.Object,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateGlobalAccess(System.Reflection.Emit.ILGenerator,System.Int32,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberListBinding(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.MemberListBinding):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberAssignment(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.MemberAssignment):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUserdefinedLiftedOrElse(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.IsHoisted(System.Linq.Expressions.ParameterExpression):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Boolean,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedAndAlso(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateInitHoistedLocals(System.Reflection.Emit.ILGenerator):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.CheckWriteOperations():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.IsLiftedLogicalBinaryOperator(System.Type,System.Type,System.Reflection.MethodInfo):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateInitLocal(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ParameterExpression):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMethodCall(System.Reflection.Emit.ILGenerator,System.Reflection.MethodInfo,System.Collections.ObjectModel.ReadOnlyCollection`1<System.Linq.Expressions.Expression>,System.Type):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.CheckConnectOperationsServer():System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateArgAccess(System.Reflection.Emit.ILGenerator,System.Int32,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateConvertToType(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateListInit(System.Reflection.Emit.ILGenerator,System.Collections.ObjectModel.ReadOnlyCollection`1<System.Linq.Expressions.ElementInit>,System.Boolean,System.Type):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLift(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.IEnumerable`1<System.Linq.Expressions.ParameterExpression>,System.Collections.Generic.IEnumerable`1<System.Linq.Expressions.Expression>):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNonNullableToNullableConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableCoalesce(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateArgs(System.Reflection.Emit.ILGenerator,System.Reflection.ParameterInfo[],System.Collections.ObjectModel.ReadOnlyCollection`1<System.Linq.Expressions.Expression>):System.Collections.Generic.List`1<System.Linq.Expressions.ExpressionCompiler+WriteBack>", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUserDefinedReferenceCoalesce(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateBinaryMethod(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateCoalesce(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberMemberBinding(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.MemberMemberBinding):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullEquality(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Linq.Expressions.Expression,System.Boolean):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLoadExecutionScope(System.Reflection.Emit.ILGenerator):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberInit(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.MemberInitExpression):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNewArray(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.NewArrayExpression):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateConstInt(System.Reflection.Emit.ILGenerator,System.Int32):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.PrepareInitLocal(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ParameterExpression):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNew(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.NewExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateHoistedLocalAccess(System.Reflection.Emit.ILGenerator,System.Int32,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateOrElse(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnary(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.UnaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.UseVirtual(System.Reflection.MethodInfo):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler+WriteBack..ctor(System.Reflection.Emit.LocalBuilder,System.Linq.Expressions.Expression)", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMethodAndAlso(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateTypeIs(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.TypeBinaryExpression):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateArrayAssign(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.IsNullConstant(System.Linq.Expressions.Expression):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedOrElse(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedBooleanOr(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateBinary(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateConstant(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ConstantExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberAccess(System.Reflection.Emit.ILGenerator,System.Reflection.MemberInfo,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedOrElse(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateCreateDelegate(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.LambdaExpression):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.ReturnFromLocal(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionCompiler+StackType,System.Reflection.Emit.LocalBuilder):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.IsUnsigned(System.Type):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.OfType(System.Linq.IParallelEnumerable):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.OrderByDescending(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IParallelOrderedEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableIntMinMaxAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,TAccumulate,System.Func`3<TAccumulate,TSource,TAccumulate>):TAccumulate", MessageId = "2#func", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Concat(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.All(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Double>):System.Double", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.Util+FastIntComparer", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Single>):System.Single", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.ContainsSearchOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TInput,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<System.Boolean>,System.Boolean):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Any(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "Member", Target = "System.Linq.Parallel.HashRepartitionEnumerator`2.m_valueExchangeMatrix", MessageId = "Member", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IParallelEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToDictionary(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Collections.Generic.Dictionary`2<TKey,TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Reverse(System.Linq.IParallelEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SkipWhile(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Single>):System.Single", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Single>):System.Single", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Threading", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.FloatSumAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SingleOrDefault(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupJoin(System.Linq.IParallelEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.OrderBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IParallelOrderedEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Single(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Linq.Parallel.TraceHelpers.TraceInfo(System.String,System.Object[]):System.Void", MessageId = "args", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2231:OverloadOperatorEqualsOnOverridingValueTypeEquals", Scope = "Member", Target = "System.Linq.Parallel.WrapperEqualityComparer`1.Equals(System.Linq.Parallel.Wrapper`1<T>,System.Linq.Parallel.Wrapper`1<T>):System.Boolean", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelQuery.AsParallel(System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToLookup(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.ILookup`2<TKey,TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Linq.resources", MessageId = "env", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ThenByDescending(System.Linq.IParallelOrderedEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IParallelOrderedEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.Linq.Parallel.SpoolingTaskBase.Work():System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Int64>):System.Double", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupJoin(System.Linq.IParallelEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.LastOrDefault(System.Linq.IParallelEnumerable`1<TSource>):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.SelectManyQueryOperator`3.WrapPartitionedStreamIndexed(System.Linq.Parallel.PartitionedStream`2<TLeftInput,System.Int32>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TOutput>):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "Member", Target = "System.Linq.Parallel.OrderedHashRepartitionEnumerator`3.MoveNext():System.Boolean", MessageId = "Body", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Int64>):System.Int64", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableIntAverageAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.Linq.Parallel.TraceHelpers.NotYetImplemented():System.Void", MessageId = "System.Linq.Parallel.TraceHelpers.NotYetImplemented(System.Boolean,System.String)", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableFloatMinMaxAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.LongCount(System.Linq.IParallelEnumerable`1<TSource>):System.Int64", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TResult>):TResult", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Double>):System.Double", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,System.Func`1<TAccumulate>,System.Func`3<TAccumulate,TSource,TAccumulate>,System.Func`3<TAccumulate,TAccumulate,TAccumulate>,System.Func`2<TAccumulate,TResult>):TResult", MessageId = "3#Func", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelQuery.AsMerged(System.Linq.IParallelEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableDecimalSumAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelQuery.AsOrdered(System.Linq.IParallelEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ElementAtOrDefault(System.Linq.IParallelEnumerable`1<TSource>,System.Int32):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.First(System.Linq.IParallelEnumerable`1<TSource>):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Linq.IParallelEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableFloatSumAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IParallelOrderedEnumerable`1", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Linq.Parallel.Scheduling..cctor()", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.SelectManyQueryOperator`3.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TLeftInput,TLeftKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TOutput>,System.Boolean):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IParallelEnumerable", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableFloatAverageAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupJoin(System.Linq.IParallelEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Count(System.Linq.IParallelEnumerable`1<TSource>):System.Int32", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToLookup(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.ILookup`2<TKey,TElement>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,TAccumulate,System.Func`3<TAccumulate,TSource,TAccumulate>,System.Func`3<TAccumulate,TAccumulate,TAccumulate>,System.Func`2<TAccumulate,TResult>):TResult", MessageId = "3#Func", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.InlinedAggregationOperator`3.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TSource,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TIntermediate>,System.Boolean):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "Member", Target = "System.Linq.Parallel.OrderedHashRepartitionEnumerator`3.m_valueExchangeMatrix", MessageId = "Member", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Zip(System.Linq.IParallelEnumerable`1<TFirst>,System.Collections.Generic.IEnumerable`1<TSecond>,System.Func`3<TFirst,TSecond,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SkipWhile(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.TakeOrSkipWhileQueryOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TResult,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TResult>,System.Boolean):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.FloatMinMaxAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,TSource,TSource>):TSource", MessageId = "1#func", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TResult>):TResult", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.DecimalAverageAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.TakeWhile(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableDoubleSumAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.FirstOrDefault(System.Linq.IParallelEnumerable`1<TSource>):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Intersect(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1040:AvoidEmptyInterfaces", Scope = "Type", Target = "System.Linq.IParallelEnumerable", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableDecimalAverageAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.SingleQueryOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TSource,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TSource>,System.Boolean):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Distinct(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Union(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SingleOrDefault(System.Linq.IParallelEnumerable`1<TSource>):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableDoubleMinMaxAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Last(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Where(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IParallelEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableDecimalMinMaxAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,System.Func`1<TAccumulate>,System.Func`3<TAccumulate,TSource,TAccumulate>,System.Func`3<TAccumulate,TAccumulate,TAccumulate>,System.Func`2<TAccumulate,TResult>):TResult", MessageId = "2#Func", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.DecimalMinMaxAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,System.Func`1<TAccumulate>,System.Func`3<TAccumulate,TSource,TAccumulate>,System.Func`3<TAccumulate,TAccumulate,TAccumulate>,System.Func`2<TAccumulate,TResult>):TResult", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.TakeOrSkipQueryOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TResult,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TResult>,System.Boolean):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Union(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ThenBy(System.Linq.IParallelOrderedEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IParallelOrderedEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Linq.Parallel.TraceHelpers.NotYetImplemented(System.Boolean,System.String):System.Void", MessageId = "message", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Join(System.Linq.IParallelEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,TInner,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.TakeWhile(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Intersect(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.Util+FastDateTimeComparer", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IParallelEnumerable`1", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupJoin(System.Linq.IParallelEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ElementAt(System.Linq.IParallelEnumerable`1<TSource>,System.Int32):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,TSource,TSource>):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.IndexedSelectQueryOperator`2.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TInput,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TOutput>,System.Boolean):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.DoubleMinMaxAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1002:DoNotExposeGenericLists", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToList(System.Linq.IParallelEnumerable`1<TSource>):System.Collections.Generic.List`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,TAccumulate,System.Func`3<TAccumulate,TSource,TAccumulate>,System.Func`2<TAccumulate,TResult>):TResult", MessageId = "2#func", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.PartitionedDataSource`1..ctor(System.Collections.Generic.IEnumerable`1<T>,System.Int32,System.Boolean)", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableLongMinMaxAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelQuery.AsUnordered(System.Linq.IParallelEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelQuery.AsParallel(System.Collections.Generic.IEnumerable`1<TSource>,System.Int32):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.Util+FastFloatComparer", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToArray(System.Linq.IParallelEnumerable`1<TSource>,System.Int32[]):System.Array", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.LastOrDefault(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SequenceEqual(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Boolean", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Take(System.Linq.IParallelEnumerable`1<TSource>,System.Int32):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Int32>):System.Int32", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Linq.resources", MessageId = "failfast", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.UnionQueryOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TInputOutput,TLeftKey>,System.Linq.Parallel.PartitionedStream`2<TInputOutput,TRightKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TInputOutput>,System.Boolean):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ForAll(System.Linq.IParallelEnumerable`1<TSource>,System.Action`1<TSource>):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.Util+FastLongComparer", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.LongCount(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Int64", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.AssociativeAggregationOperator`3.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TInput,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TIntermediate>,System.Boolean):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.ExchangeUtilities.PartitionDataSource(System.Collections.Generic.IEnumerable`1<T>,System.Int32,System.Boolean):System.Linq.Parallel.PartitionedStream`2<T,System.Int32>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.ForAllOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TInput,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TInput>,System.Boolean):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.SequenceEqualQueryOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TSource,TLeftKey>,System.Linq.Parallel.PartitionedStream`2<TSource,TRightKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<System.Boolean>,System.Boolean):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ThenBy(System.Linq.IParallelOrderedEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IParallelOrderedEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Cast(System.Linq.IParallelEnumerable):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ThenByDescending(System.Linq.IParallelOrderedEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IParallelOrderedEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "Member", Target = "System.Linq.Parallel.HashRepartitionEnumerator`2.MoveNext():System.Boolean", MessageId = "Body", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Empty():System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,TAccumulate,System.Func`3<TAccumulate,TSource,TAccumulate>,System.Func`3<TAccumulate,TAccumulate,TAccumulate>,System.Func`2<TAccumulate,TResult>):TResult", MessageId = "2#Func", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Double>):System.Double", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToLookup(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.ILookup`2<TKey,TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.AnyAllSearchOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TInput,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<System.Boolean>,System.Boolean):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.LongSumAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Where(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Single>):System.Single", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.DoubleAverageAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToList(System.Linq.IParallelEnumerable`1<TSource>):System.Collections.Generic.List`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.IntSumAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Int32>):System.Int32", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.DoubleSumAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Int64>):System.Int64", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.IndexedWhereQueryOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TInputOutput,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TInputOutput>,System.Boolean):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SequenceEqual(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Boolean", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToLookup(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Linq.ILookup`2<TKey,TElement>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.First(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Select(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.LongMinMaxAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Distinct(System.Linq.IParallelEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Single(System.Linq.IParallelEnumerable`1<TSource>):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.Linq.Parallel.TraceHelpers.NotYetImplemented(System.String):System.Void", MessageId = "System.Linq.Parallel.TraceHelpers.NotYetImplemented(System.Boolean,System.String)", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.LongAverageAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "Member", Target = "System.Linq.Parallel.SortHelper`2.m_sharedBarriers", MessageId = "Member", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Linq.IParallelEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.DecimalSumAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Int64>):System.Int64", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Int32>):System.Double", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.ElementAtQueryOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TSource,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TSource>,System.Boolean):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Select(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToDictionary(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.Dictionary`2<TKey,TElement>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Last(System.Linq.IParallelEnumerable`1<TSource>):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToDictionary(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.Dictionary`2<TKey,TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableLongSumAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.OrderByDescending(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IParallelOrderedEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.FirstOrDefault(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableIntSumAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "Member", Target = "System.Linq.Parallel.SortHelper`2.GenerateSortHelpers(System.Linq.Parallel.PartitionedStream`2<TInputOutput,TKey>,System.Linq.Parallel.TaskGroupState):System.Linq.Parallel.SortHelper`2<TInputOutput,TKey>", MessageId = "Body", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.CountAggregationOperator`1", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableDoubleAverageAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToDictionary(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Collections.Generic.Dictionary`2<TKey,TElement>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelQuery.AsMerged(System.Linq.IParallelEnumerable`1<TSource>,System.Linq.ParallelQueryMergeOptions):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Count(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Int32", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Join(System.Linq.IParallelEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,TInner,TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1717:OnlyFlagsEnumsShouldHavePluralNames", Scope = "Type", Target = "System.Linq.ParallelQueryMergeOptions", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.FirstQueryOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TSource,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TSource>,System.Boolean):System.Void", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Int32>):System.Int32", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.OrderBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IParallelOrderedEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Linq.Parallel.TraceHelpers.TraceInfo(System.String,System.Object[]):System.Void", MessageId = "msg", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Skip(System.Linq.IParallelEnumerable`1<TSource>,System.Int32):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.IntMinMaxAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>):TSource", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.Util+FastDoubleComparer", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Double>):System.Double", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Except(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToArray(System.Linq.IParallelEnumerable`1<TSource>):TSource[]", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.FloatAverageAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.IntAverageAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableLongAverageAggregationOperator", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.UnorderedHashRepartitionStream`2..ctor(System.Linq.Parallel.IPartitionedStream`1<TInputOutput>,System.Func`2<TInputOutput,THashKey>,System.Collections.Generic.IEqualityComparer`1<THashKey>)", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Any(System.Linq.IParallelEnumerable`1<TSource>):System.Boolean", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.AsEnumerable(System.Linq.IParallelEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.DefaultIfEmpty(System.Linq.IParallelEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Except(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "Member", Target = "System.Linq.Parallel.OrderedHashRepartitionEnumerator`3.m_keyExchangeMatrix", MessageId = "Member", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline", Scope = "Member", Target = "System.Linq.Parallel.Scheduling..cctor()", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "[....]:FI from main to puclr at build 10918.00")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="Microsoft.Win32.SafeHandles.SafeNCryptHandle.#DuplicateOwnerHandle`1()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope="member", Target="Microsoft.Win32.SafeHandles.SafeNCryptHandle.#ReleaseHandle()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Action`2", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Action`2", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Action`3", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Action`3", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="3", Scope="type", Target="System.Action`3", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Action`4", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Action`4", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="3", Scope="type", Target="System.Action`4", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="4", Scope="type", Target="System.Action`4", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Func`3", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Func`3", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Func`4", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Func`4", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="3", Scope="type", Target="System.Func`4", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Func`5", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Func`5", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="3", Scope="type", Target="System.Func`5", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="4", Scope="type", Target="System.Func`5", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="Microsoft.Win32.UnsafeNativeMethods.EventActivityIdControl(System.Int32,System.Guid@)", Scope="member", Target="System.Diagnostics.Eventing.EventProvider.#CreateActivityId()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="Microsoft.Win32.UnsafeNativeMethods.EventUnregister(System.Int64)", Scope="member", Target="System.Diagnostics.Eventing.EventProvider.#Deregister()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.EventProvider.#Dispose(System.Boolean)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="Microsoft.Win32.UnsafeNativeMethods.EventActivityIdControl(System.Int32,System.Guid@)", Scope="member", Target="System.Diagnostics.Eventing.EventProvider.#SetActivityId(System.Guid&)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventBookmark.#System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogHandle.#ReleaseHandle()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogInformation.#.ctor(System.Diagnostics.Eventing.Reader.EventLogSession,System.String,System.Diagnostics.Eventing.Reader.PathType)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogReader.#Dispose(System.Boolean)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogRecord.#get_Bookmark()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogRecord.#ToXml()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogSession.#SetupSystemContext()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogSession.#SetupUserContext()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogWatcher.#Dispose(System.Boolean)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogWatcher.#RequestEvents()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogWatcher.#StartSubscribing()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogWatcher.#StopSubscribing()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.NativeWrapper.#EvtGetChannelConfigProperty(System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtChannelConfigPropertyId)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.NativeWrapper.#EvtGetEventInfo(System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtEventPropertyId)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.NativeWrapper.#EvtGetPublisherMetadataProperty(System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtPublisherMetadataPropertyId)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.NativeWrapper.#EvtRenderBufferWithContextSystem(System.Diagnostics.Eventing.Reader.EventLogHandle,System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtRenderFlags,System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties,System.Int32)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.NativeWrapper.#EvtRenderBufferWithContextUserOrValues(System.Diagnostics.Eventing.Reader.EventLogHandle,System.Diagnostics.Eventing.Reader.EventLogHandle)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.NativeWrapper.#EvtSetChannelConfigProperty(System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtChannelConfigPropertyId,System.Object)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.ProviderMetadata.#.ctor(System.String,System.Diagnostics.Eventing.Reader.EventLogSession,System.Globalization.CultureInfo,System.String)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.ProviderMetadata.#GetProviderListProperty(System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtPublisherMetadataPropertyId)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.PerformanceData.CounterSet.#Dispose(System.Boolean)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="Microsoft.Win32.UnsafeNativeMethods.PerfDeleteInstance(Microsoft.Win32.SafeHandles.SafePerfProviderHandle,Microsoft.Win32.UnsafeNativeMethods+PerfCounterSetInstanceStruct*)", Scope="member", Target="System.Diagnostics.PerformanceData.CounterSetInstance.#Dispose(System.Boolean)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="Microsoft.Win32.UnsafeNativeMethods.SetErrorMode(System.Int32)", Scope="member", Target="System.IO.LogStream.#_Init(System.String,System.Int32,System.IO.FileShare,Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES,System.Security.Permissions.FileIOPermissionAccess,System.IO.FileMode,System.Int32,System.Boolean)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA2208:InstantiateArgumentExceptionsCorrectly", Scope="member", Target="System.IO.MemoryMappedFiles.MemoryMappedFile.#OpenCore(System.String,System.IO.HandleInheritability,System.Int32,System.Boolean)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1720:IdentifiersShouldNotContainTypeNames", MessageId="long", Scope="member", Target="System.Linq.Enumerable.#LongCount`1(System.Collections.Generic.IEnumerable`1<!!0>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1720:IdentifiersShouldNotContainTypeNames", MessageId="long", Scope="member", Target="System.Linq.Enumerable.#LongCount`1(System.Collections.Generic.IEnumerable`1<!!0>,System.Func`2<!!0,System.Boolean>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Enumerable+Iterator`1.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Enumerable+WhereEnumerableIterator`1.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Enumerable+WhereSelectEnumerableIterator`2.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.EnumerableQuery`1", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1715:IdentifiersShouldHaveCorrectPrefix", MessageId="T", Scope="member", Target="System.Linq.EnumerableQuery`1.#System.Linq.IQueryProvider.CreateQuery`1(System.Linq.Expressions.Expression)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1715:IdentifiersShouldHaveCorrectPrefix", MessageId="T", Scope="member", Target="System.Linq.EnumerableQuery`1.#System.Linq.IQueryProvider.Execute`1(System.Linq.Expressions.Expression)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.EnumerableWrapperWeakToStrong+WrapperEnumeratorWeakToStrong.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IGrouping`2", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.ILookup`2", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IOrderedEnumerable`1", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IOrderedQueryable", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IOrderedQueryable`1", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IParallelEnumerable", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IParallelEnumerable`1", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IParallelOrderedEnumerable`1", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IQueryable", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IQueryable`1", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.Lookup`2", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1720:IdentifiersShouldNotContainTypeNames", MessageId="long", Scope="member", Target="System.Linq.ParallelEnumerable.#LongCount`1(System.Linq.IParallelEnumerable`1<!!0>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1720:IdentifiersShouldNotContainTypeNames", MessageId="long", Scope="member", Target="System.Linq.ParallelEnumerable.#LongCount`1(System.Linq.IParallelEnumerable`1<!!0>,System.Func`2<!!0,System.Boolean>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.ParallelEnumerable+EmptyEnumerator`1.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.ParallelEnumerable+RangeEnumerable+RangeEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.ParallelEnumerable+RepeatEnumerable`1+RepeatEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Aggregate`3(System.Linq.IQueryable`1<!!0>,!!1,System.Linq.Expressions.Expression`1<System.Func`3<!!1,!!0,!!1>>,System.Linq.Expressions.Expression`1<System.Func`2<!!1,!!2>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#All`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Any`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Decimal>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Double>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Int32>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Int64>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Nullable`1<System.Decimal>>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Nullable`1<System.Double>>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Nullable`1<System.Int32>>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Nullable`1<System.Int64>>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Nullable`1<System.Single>>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Single>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Count`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#First`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#FirstOrDefault`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupBy`2(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupBy`2(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Collections.Generic.IEqualityComparer`1<!!1>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupBy`3(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!2>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupBy`3(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!2>>,System.Collections.Generic.IEqualityComparer`1<!!1>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupBy`3(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Linq.Expressions.Expression`1<System.Func`3<!!1,System.Collections.Generic.IEnumerable`1<!!0>,!!2>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupBy`3(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Linq.Expressions.Expression`1<System.Func`3<!!1,System.Collections.Generic.IEnumerable`1<!!0>,!!2>>,System.Collections.Generic.IEqualityComparer`1<!!1>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupBy`4(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!2>>,System.Linq.Expressions.Expression`1<System.Func`3<!!1,System.Collections.Generic.IEnumerable`1<!!2>,!!3>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupBy`4(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!2>>,System.Linq.Expressions.Expression`1<System.Func`3<!!1,System.Collections.Generic.IEnumerable`1<!!2>,!!3>>,System.Collections.Generic.IEqualityComparer`1<!!1>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupJoin`4(System.Linq.IQueryable`1<!!0>,System.Collections.Generic.IEnumerable`1<!!1>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!2>>,System.Linq.Expressions.Expression`1<System.Func`2<!!1,!!2>>,System.Linq.Expressions.Expression`1<System.Func`3<!!0,System.Collections.Generic.IEnumerable`1<!!1>,!!3>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupJoin`4(System.Linq.IQueryable`1<!!0>,System.Collections.Generic.IEnumerable`1<!!1>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!2>>,System.Linq.Expressions.Expression`1<System.Func`2<!!1,!!2>>,System.Linq.Expressions.Expression`1<System.Func`3<!!0,System.Collections.Generic.IEnumerable`1<!!1>,!!3>>,System.Collections.Generic.IEqualityComparer`1<!!2>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Join`4(System.Linq.IQueryable`1<!!0>,System.Collections.Generic.IEnumerable`1<!!1>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!2>>,System.Linq.Expressions.Expression`1<System.Func`2<!!1,!!2>>,System.Linq.Expressions.Expression`1<System.Func`3<!!0,!!1,!!3>>,System.Collections.Generic.IEqualityComparer`1<!!2>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Last`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#LastOrDefault`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1720:IdentifiersShouldNotContainTypeNames", MessageId="long", Scope="member", Target="System.Linq.Queryable.#LongCount`1(System.Linq.IQueryable`1<!!0>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#LongCount`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1720:IdentifiersShouldNotContainTypeNames", MessageId="long", Scope="member", Target="System.Linq.Queryable.#LongCount`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Max`2(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#OrderBy`2(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Collections.Generic.IComparer`1<!!1>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#OrderByDescending`2(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#OrderByDescending`2(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Collections.Generic.IComparer`1<!!1>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#SelectMany`2(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Collections.Generic.IEnumerable`1<!!1>>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#SelectMany`2(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`3<!!0,System.Int32,System.Collections.Generic.IEnumerable`1<!!1>>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Single`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#SingleOrDefault`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#SkipWhile`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#SkipWhile`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`3<!!0,System.Int32,System.Boolean>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#TakeWhile`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#TakeWhile`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`3<!!0,System.Int32,System.Boolean>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#ThenBy`2(System.Linq.IOrderedQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#ThenBy`2(System.Linq.IOrderedQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Collections.Generic.IComparer`1<!!1>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#ThenByDescending`2(System.Linq.IOrderedQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#ThenByDescending`2(System.Linq.IOrderedQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Collections.Generic.IComparer`1<!!1>)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1032:ImplementStandardExceptionConstructors", Scope="type", Target="System.Linq.SystemCore_EnumerableDebugViewEmptyException", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA2237:MarkISerializableTypesWithSerializable", Scope="type", Target="System.Linq.SystemCore_EnumerableDebugViewEmptyException", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1721:PropertyNamesShouldNotMatchGetMethods", Scope="member", Target="System.Linq.Expressions.Expression.#Type", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.AnyAllSearchOperator`1+AnyAllSearchOperatorEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.AssociativeAggregationOperator`3+AssociativeAggregationOperatorEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.Barrier.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.ConcatQueryOperator`1+ConcatQueryOperatorEnumerator`2.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.ContainsSearchOperator`1+ContainsSearchOperatorEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.CountAggregationOperator`1+CountAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.DecimalAverageAggregationOperator+DecimalAverageAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.DecimalMinMaxAggregationOperator+DecimalMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.DecimalSumAggregationOperator+DecimalSumAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.DefaultIfEmptyQueryOperator`1+DefaultIfEmptyQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.DistinctQueryOperator`1+DistinctQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.DoubleAverageAggregationOperator+DoubleAverageAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.DoubleMinMaxAggregationOperator+DoubleMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.DoubleSumAggregationOperator+DoubleSumAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.ElementAtQueryOperator`1+ElementAtQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.ExceptQueryOperator`1+ExceptQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.FirstQueryOperator`1+FirstQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.FloatAverageAggregationOperator+FloatAverageAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.FloatMinMaxAggregationOperator+FloatMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.FloatSumAggregationOperator+FloatSumAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.ForAllOperator`1+ForAllEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.GroupByQueryOperatorEnumerator`4.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.HashJoinQueryOperatorEnumerator`5.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.HashRepartitionEnumerator`2.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.IndexedSelectQueryOperator`2+IndexedSelectQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.IndexedWhereQueryOperator`1+IndexedWhereQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.IntAverageAggregationOperator+IntAverageAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1032:ImplementStandardExceptionConstructors", Scope="type", Target="System.Linq.Parallel.InternalOperationCanceledException", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA2237:MarkISerializableTypesWithSerializable", Scope="type", Target="System.Linq.Parallel.InternalOperationCanceledException", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.IntersectQueryOperator`1+IntersectQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.IntMinMaxAggregationOperator+IntMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.IntSumAggregationOperator+IntSumAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.LastQueryOperator`1+LastQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.LongAverageAggregationOperator+LongAverageAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.LongMinMaxAggregationOperator+LongMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.LongSumAggregationOperator+LongSumAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.MergeEnumerator`1.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableDecimalAverageAggregationOperator+NullableDecimalAverageAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableDecimalMinMaxAggregationOperator+NullableDecimalMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableDecimalSumAggregationOperator+NullableDecimalSumAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableDoubleAverageAggregationOperator+NullableDoubleAverageAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableDoubleMinMaxAggregationOperator+NullableDoubleMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableDoubleSumAggregationOperator+NullableDoubleSumAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableFloatAverageAggregationOperator+NullableFloatAverageAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableFloatMinMaxAggregationOperator+NullableFloatMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableFloatSumAggregationOperator+NullableFloatSumAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableIntAverageAggregationOperator+NullableIntAverageAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableIntMinMaxAggregationOperator+NullableIntMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableIntSumAggregationOperator+NullableIntSumAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableLongAverageAggregationOperator+NullableLongAverageAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableLongMinMaxAggregationOperator+NullableLongMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableLongSumAggregationOperator+NullableLongSumAggregationOperatorEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.OrderedHashRepartitionEnumerator`3.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.PartitionedDataSource`1+ContiguousChunkLazyEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.PartitionedDataSource`1+IndexRangeEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="System.Linq.Parallel.NativeMethods.SwitchToThread", Scope="member", Target="System.Linq.Parallel.Platform.#Yield()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.QueryOperator`1+QueryOpeningEnumerator.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.ReverseQueryOperator`1+ReverseQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.ScanQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.SelectManyQueryOperator`3+IndexedSelectManyQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.SelectManyQueryOperator`3+SelectManyQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.SelectQueryOperator`2+SelectQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.SequenceEqualQueryOperator`1+SequenceEqualOperatorEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.SingleQueryOperator`1+SingleQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization","CA1305:SpecifyIFormatProvider", MessageId="System.String.Format(System.String,System.Object[])", Scope="member", Target="System.Linq.Parallel.SortHelper`2.#CancelEntireSort()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.SortHelper`2.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.SortQueryOperatorEnumerator`2.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.SynchronousChannel`1.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.TakeOrSkipQueryOperator`1+TakeOrSkipQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.TakeOrSkipWhileQueryOperator`1+TakeOrSkipWhileQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.UnionQueryOperator`1+UnionQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.WhereQueryOperator`1+WhereQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1721:PropertyNamesShouldNotMatchGetMethods", Scope="member", Target="System.Management.Instrumentation.ManagementReferenceAttribute.#Type", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="StrongBox", Scope="type", Target="System.Runtime.CompilerServices.IStrongBox", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="StrongBox", Scope="type", Target="System.Runtime.CompilerServices.StrongBox`1", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Security.Cryptography.ECDiffieHellmanPublicKey.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="System.Security.Cryptography.X509Certificates.X509Native+UnsafeNativeMethods.CertFreeAuthenticodeSignerInfo(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_SIGNER_INFO@)", Scope="member", Target="System.Security.Cryptography.Xml.ManifestSignedXml.#VerifyAuthenticodeSignature(System.Xml.XmlElement,System.Security.Cryptography.X509Certificates.X509RevocationFlag,System.Security.Cryptography.X509Certificates.X509RevocationMode)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="System.Security.Cryptography.X509Certificates.X509Native+UnsafeNativeMethods.CertFreeAuthenticodeTimestamperInfo(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_TIMESTAMPER_INFO@)", Scope="member", Target="System.Security.Cryptography.Xml.ManifestSignedXml.#VerifyAuthenticodeSignature(System.Xml.XmlElement,System.Security.Cryptography.X509Certificates.X509RevocationFlag,System.Security.Cryptography.X509Certificates.X509RevocationMode)", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Threading.ReaderWriterLockSlim.#Dispose()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId="Zif", Scope="resource", Target="System.Linq.resources", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId="env-var", Scope="resource", Target="System.Linq.resources", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId="failfast", Scope="resource", Target="System.Linq.resources", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId="tzfile", Scope="resource", Target="System.Linq.resources", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="Microsoft.Win32.UnsafeNativeMethods.PerfStopProvider(System.IntPtr)", Scope="member", Target="Microsoft.Win32.SafeHandles.SafePerfProviderHandle.#ReleaseHandle()", Justification="[....]: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA2214:DoNotCallOverridableMethodsInConstructors", Scope="member", Target="System.Linq.Parallel.RangeEnumerable+RangeEnumerator.#.ctor(System.Int32,System.Int32,System.Int32)", Justification="This needs to be reviewed by [....]")]
-[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Linq.Parallel.Scheduling.#GetDefaultDegreeOfParallelism()", Justification="This needs to be reviewed by [....]")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):System.Void", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.CreateNamedPipe(System.String,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES):Microsoft.Win32.SafeHandles.SafePipeHandle", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1000:DoNotDeclareStaticMembersOnGenericTypes", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.CreateSetComparer():System.Collections.Generic.IEqualityComparer`1<System.Collections.Generic.HashSet`1<T>", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.InitializeLifetimeService():System.Object", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm..ctor(System.String,System.Security.Cryptography.CapiNative+ProviderType,System.Security.Cryptography.CapiNative+AlgorithmId)", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.TimeZoneInfo.System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):System.Void", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm..ctor(System.Security.Cryptography.BCryptAlgorithm,System.String)", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream..ctor(System.String,System.IO.Pipes.PipeDirection,System.Int32,System.IO.Pipes.PipeTransmissionMode,System.IO.Pipes.PipeOptions,System.Int32,System.Int32,System.IO.Pipes.PipeSecurity,System.IO.HandleInheritability,System.IO.Pipes.PipeAccessRights)", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.Create(System.String,System.IO.Pipes.PipeDirection,System.Int32,System.IO.Pipes.PipeTransmissionMode,System.IO.Pipes.PipeOptions,System.Int32,System.Int32,System.IO.Pipes.PipeAccessRights,Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES):System.Void", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider..ctor()", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.CreateSetComparer():System.Collections.Generic.IEqualityComparer`1<System.Collections.Generic.HashSet`1<T>", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):System.Void", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.Renewal(System.Runtime.Remoting.Lifetime.ILease):System.TimeSpan", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.GetSecAttrs(System.IO.HandleInheritability,System.IO.Pipes.PipeSecurity,System.Object&):Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.DeriveSecretAgreement(Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle,Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle):Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle", Justification = "kimhamil:baselining until owner can fix")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.AddIn.MiniReflection.TypeInfo.HasToken.get_HasToken():System.Boolean", Justification = "kimhamil:baselining until owner can fix")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2215:DisposeMethodsShouldCallBaseClassDispose", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.Dispose(System.Boolean):System.Void", Justification = "kimhamil:baselining until owner can fix")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.OpenStorageProvider(System.String):Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle", Justification = "kimhamil:baselining until owner can fix")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm..ctor(System.Security.Cryptography.CngAlgorithm,System.String)", Justification = "kimhamil:baselining until owner can fix")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeBinary(System.Linq.Expressions.ExpressionType,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Boolean,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression", Justification = "rokyu:Source code is not complex")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):System.Void", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.CreateNamedPipe(System.String,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES):Microsoft.Win32.SafeHandles.SafePipeHandle", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1000:DoNotDeclareStaticMembersOnGenericTypes", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.CreateSetComparer():System.Collections.Generic.IEqualityComparer`1<System.Collections.Generic.HashSet`1<T>", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.InitializeLifetimeService():System.Object", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm..ctor(System.String,System.Security.Cryptography.CapiNative+ProviderType,System.Security.Cryptography.CapiNative+AlgorithmId)", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.TimeZone2.System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):System.Void", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm..ctor(System.Security.Cryptography.BCryptAlgorithm,System.String)", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream..ctor(System.String,System.IO.Pipes.PipeDirection,System.Int32,System.IO.Pipes.PipeTransmissionMode,System.IO.Pipes.PipeOptions,System.Int32,System.Int32,System.Security.AccessControl.PipeSecurity,System.IO.HandleInheritability,System.Security.AccessControl.PipeAccessRights)", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.Create(System.String,System.IO.Pipes.PipeDirection,System.Int32,System.IO.Pipes.PipeTransmissionMode,System.IO.Pipes.PipeOptions,System.Int32,System.Int32,System.Security.AccessControl.PipeAccessRights,Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES):System.Void", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider..ctor()", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.CreateSetComparer():System.Collections.Generic.IEqualityComparer`1<System.Collections.Generic.HashSet`1<T>", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):System.Void", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.Renewal(System.Runtime.Remoting.Lifetime.ILease):System.TimeSpan", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.GetSecAttrs(System.IO.HandleInheritability,System.Security.AccessControl.PipeSecurity,System.Object&):Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES", Justification = "jfree:X86CHK only violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.DeriveSecretAgreement(Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle,Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle):Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle", Justification = "kimhamil:baselining until owner can fix")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.AddIn.MiniReflection.TypeInfo.HasToken.get_HasToken():System.Boolean", Justification = "kimhamil:baselining until owner can fix")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2215:DisposeMethodsShouldCallBaseClassDispose", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.Dispose(System.Boolean):System.Void", Justification = "kimhamil:baselining until owner can fix")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.OpenStorageProvider(System.String):Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle", Justification = "kimhamil:baselining until owner can fix")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm..ctor(System.Security.Cryptography.CngAlgorithm,System.String)", Justification = "kimhamil:baselining until owner can fix")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeBinary(System.Linq.Expressions.ExpressionType,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Boolean,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression", Justification = "rokyu:Source code is not complex")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Query.Queryable.AsQueryable(System.Collections.Generic.IEnumerable`1<T>):System.Query.IQueryable`1<T>", Justification = "chcosta:cl# 2204059 caused fxcop violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "Member", Target = "System.Expressions.StrongBox`1.System.Expressions.IStrongBox.Value.System.Expressions.IStrongBox.set_Value(System.Object):System.Void", Justification = "chcosta:cl# 2204059 caused fxcop violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Query.Queryable.AsQueryable(System.Collections.IEnumerable):System.Query.IQueryable", Justification = "chcosta:cl# 2204059 caused fxcop violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Expressions.ExecutionScope.Locals", Justification = "chcosta:cl# 2204059 caused fxcop violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "Member", Target = "System.Expressions.IStrongBox", MessageId = "StrongBox", Justification = "chcosta:cl# 2204059 caused fxcop violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "Member", Target = "System.Expressions.StrongBox`1.System.Expressions.IStrongBox.Value.System.Expressions.IStrongBox.get_Value():System.Object", Justification = "chcosta:cl# 2204059 caused fxcop violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Expressions.ExecutionScope.Globals", Justification = "chcosta:cl# 2204059 caused fxcop violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Expressions.ExecutionScope.Parent", Justification = "chcosta:cl# 2204059 caused fxcop violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Expressions.StrongBox`1.Value", Justification = "chcosta:cl# 2204059 caused fxcop violations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Count.get_Count():System.Int32", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.GetItem(System.Int32):U", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.RevokeLifetimeToken(System.Int32):System.Void", MessageId = "0#", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.RemoveAt(System.Int32):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Add(U):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractEnumeratorAdapter`2.MoveNext():System.Boolean", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Remove(U):System.Boolean", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.IsReadOnly.get_IsReadOnly():System.Boolean", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Clear():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractEnumeratorAdapter`2.Reset():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.AddIn.Pipeline.CollectionAdapters.ToIListContract(System.Void):System.AddIn.Contract.IListContract`1", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.CopyTo(U[],System.Int32):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Insert(System.Int32,U):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractEnumeratorAdapter`2.Dispose(System.Boolean):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.TimeZoneInfo..cctor()", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Item[System.Int32].set_Item(System.Int32,U):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Hosting.AddInController.Shutdown():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Finalize():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.GetEnumerator():System.Collections.Generic.IEnumerator`1<U>", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Contains(U):System.Boolean", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.IndexOf(U):System.Int32", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.SetItem(System.Int32,U):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.GetRemoteHashCode():System.Int32", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractEnumeratorAdapter`2.Current.get_Current():U", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Hosting.AddInController.AssociateWithHostAddinView(System.Object,System.AddIn.Contract.IContract):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.AddIn.Pipeline.CollectionAdapters.ToIList(System.AddIn.Contract.IListContract`1):System.Collections.Generic.IList`1<T>", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractListAdapter`2.Item[System.Int32].get_Item(System.Int32):U", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.DiffieHellman", MessageId = "Diffie", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm.Initialize():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction", MessageId = "Diffie", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanPublicKey", MessageId = "Diffie", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyBlobFormat", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDsaP384", MessageId = "Dsa", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeAxlBufferHandle.HeapFree(System.IntPtr,System.Int32,System.IntPtr):System.Boolean", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.AddIn.Hosting.AddInActivator.ActivateInAppDomain(System.AddIn.Hosting.AddInToken,System.AppDomain,System.AddIn.Hosting.AddInController,System.Boolean):T", MessageId = "System.Reflection.Assembly.LoadFrom", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.SHA512Cng", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyBlobFormat.EccPublicBlob", MessageId = "Ecc", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline", Scope = "Member", Target = "System.AddIn.Hosting.InspectionWorker..cctor()", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm.Dispose():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "Member", Target = "System.Security.Cryptography.X509Certificates.X509Native+UnsafeNativeMethods._AxlGetIssuerPublicKeyHash(System.IntPtr,Microsoft.Win32.SafeHandles.SafeAxlBufferHandle&):System.Int32", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP256", MessageId = "Hellman", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.AddIn.Pipeline.ContractAdapter.ContractToViewAdapter(System.AddIn.Contract.IContract,System.String):TView", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.SecretPrepend", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCspHandle..ctor()", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.Dispose(System.Boolean):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.AddIn.Hosting.Utils.LoadAssemblyFrom(System.Collections.Generic.List`1<System.String>,System.String):System.Reflection.Assembly", MessageId = "System.Reflection.Assembly.LoadFrom", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.CheckConnectOperations():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.GetClientHandleAsString():System.String", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCapiKeyHandle.InvalidHandle.get_InvalidHandle():Microsoft.Win32.SafeHandles.SafeCapiKeyHandle", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.DiffieHellman", MessageId = "Hellman", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyCreationParameters", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyBlobFormat.EccPrivateBlob", MessageId = "Ecc", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDsa", MessageId = "Dsa", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "Type", Target = "System.IO.Pipes.PipeDirection", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Numeric", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1802:UseLiteralsWhereAppropriate", Scope = "Member", Target = "System.IO.Pipes.PipeStream._canUseAsync", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.Dsa", MessageId = "Dsa", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Hosting.AddInActivator.ActivateInAppDomain(System.AddIn.Hosting.AddInToken,System.AppDomain,System.AddIn.Hosting.AddInController,System.Boolean):T", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.Dispose(System.Boolean):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.Seed", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.SetKeyParameter(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Security.Cryptography.CapiNative+KeyParameter,System.Byte[]):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.ECDiffieHellman", MessageId = "Diffie", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeAxlBufferHandle.GetProcessHeap():System.IntPtr", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream..cctor()", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateDecryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "0#", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanPublicKey", MessageId = "Hellman", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeClientStream..ctor(System.IO.Pipes.PipeDirection,System.String)", MessageId = "1#", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.SHA1Cng", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng", MessageId = "Hellman", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngExportPolicies", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.Rsa", MessageId = "Rsa", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesManaged.CreateDecryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "1#", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesManaged.CreateDecryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "0#", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeClientStream..ctor(System.IO.Pipes.PipeDirection,System.String)", MessageId = "System.Int64.Parse(System.String)", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.IsMessageComplete.get_IsMessageComplete():System.Boolean", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.Label", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngProperty", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.RevokeLifetimeToken(System.Int32):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngUIProtectionLevels", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.WaitForPipeDrain():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeClientStream..ctor(System.String)", MessageId = "0#", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.GetImpersonationUserName():System.String", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.AddIn.Hosting.AddInStore.Rebuild(System.String):System.String[]", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.GetPropertyAsString(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.Security.Cryptography.CngPropertyOptions):System.String", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.ExportSymmetricKey(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle):System.Byte[]", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCngPublicKey", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCngPublicKey", MessageId = "Diffie", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellman", MessageId = "Diffie", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateEncryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "1#", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.HmacKey", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Threading.ReaderWriterLockSlim.MyLockHeld.get_MyLockHeld():System.Boolean", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle.NCryptFreeObject(System.IntPtr):System.Int32", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.AddIn.Hosting.AddInToken.Activate(System.Security.PermissionSet):T", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.UseSecretAgreementAsHmacKey", MessageId = "Hmac", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.WaitForConnection():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.NCryptSupported.get_NCryptSupported():System.Boolean", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2217:DoNotMarkEnumsWithFlags", Scope = "Type", Target = "System.Security.Cryptography.CngPropertyOptions", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCspHandle.Duplicate():Microsoft.Win32.SafeHandles.SafeCspHandle", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.ImportSymmetricKey(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Security.Cryptography.CapiNative+AlgorithmId,System.Byte[]):Microsoft.Win32.SafeHandles.SafeCapiKeyHandle", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCngPublicKey", MessageId = "Hellman", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "Member", Target = "System.AddIn.AddInAttribute..ctor(System.String)", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeBCryptAlgorithmHandle.BCryptCloseAlgorithmProvider(System.IntPtr,System.Int32):System.Security.Cryptography.BCryptNative+ErrorCode", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm.HashCore(System.Byte[],System.Int32,System.Int32):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.ECDsa", MessageId = "Dsa", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "Namespace", Target = "System.Numeric", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.AddIn.Hosting.AddInStore.RebuildAddIns(System.String):System.String[]", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.GetClientHandleAsString():System.String", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP521", MessageId = "Diffie", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.GenerateIV():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2119:SealMethodsThatSatisfyPrivateInterfaces", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.QueryContract(System.String):System.AddIn.Contract.IContract", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CngKey.Exists(System.String,System.Security.Cryptography.CngProvider,System.Security.Cryptography.CngKeyOpenOptions):System.Boolean", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.KeySize.set_KeySize(System.Int32):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.GetProviderParameterStruct(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Security.Cryptography.CapiNative+ProviderParameter,System.Security.Cryptography.CapiNative+ProviderParameterFlags):T", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngUIPolicy", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.DeriveKeyMaterial(Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle,System.String,System.String,System.Byte[],System.Byte[],System.Byte[],System.Security.Cryptography.NCryptNative+SecretAgreementFlags):System.Byte[]", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "Namespace", Target = "System.IO.Pipes", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Core.resources", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.MD5Cng", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Core.resources", MessageId = "Hellman", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesManaged.CreateEncryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "1#", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesManaged.CreateEncryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "0#", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyUsages", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "Member", Target = "System.AddIn.Pipeline.LifetimeTokenHandle.AppDomainOwner(System.AppDomain):System.AddIn.Contract.IContract", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2217:DoNotMarkEnumsWithFlags", Scope = "Type", Target = "System.IO.Pipes.PipeOptions", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeBCryptHashHandle.BCryptDestroyHash(System.IntPtr):System.Security.Cryptography.BCryptNative+ErrorCode", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng", MessageId = "Diffie", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.IO.Pipes.PipeStream.GetAccessControl():System.Security.AccessControl.PipeSecurity", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCspHandle.CryptContextAddRef(Microsoft.Win32.SafeHandles.SafeCspHandle,System.IntPtr,System.Int32):System.Boolean", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.Key.get_Key():System.Byte[]", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative.BCryptSupported.get_BCryptSupported():System.Boolean", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "Member", Target = "System.AddIn.Pipeline.LifetimeTokenHandle.ContractOwnsAppDomain(System.AddIn.Contract.IContract,System.AppDomain):System.Boolean", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyCreationOptions", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.OutBufferSize.get_OutBufferSize():System.Int32", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.AddIn.Hosting.AddInActivator.Activate(System.AddIn.Hosting.PartialToken,System.AddIn.Contract.IContract):T", MessageId = "System.Reflection.Assembly.LoadFrom", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngPropertyOptions", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.ReadMode.set_ReadMode(System.IO.Pipes.PipeTransmissionMode):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.AddIn.Hosting.AddInStore.DiscoverHostAdapters(System.String,System.Collections.Generic.List`1<System.AddIn.HostAdapter>,System.String,System.Collections.ObjectModel.Collection`1<System.String>):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.GetAccessControl():System.Security.AccessControl.PipeSecurity", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.InBufferSize.get_InBufferSize():System.Int32", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.RegisterAsSponsor():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKey", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngProvider.MicrosoftSmartCardKeyStorageProvider", MessageId = "CardKey", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.AcquireCsp(System.String,System.String,System.Security.Cryptography.CapiNative+ProviderType,System.Security.Cryptography.CapiNative+CryptAcquireContextFlags,System.Boolean):Microsoft.Win32.SafeHandles.SafeCspHandle", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyOpenOptions", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm.Initialize():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateEncryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "0#", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP521", MessageId = "Hellman", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.SafePipeHandle.get_SafePipeHandle():Microsoft.Win32.SafeHandles.SafePipeHandle", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateDecryptor():System.Security.Cryptography.ICryptoTransform", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDsaP256", MessageId = "Dsa", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.Key.set_Key(System.Byte[]):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiSymmetricAlgorithm..ctor(System.Int32,System.Int32,Microsoft.Win32.SafeHandles.SafeCspHandle,Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Byte[],System.Security.Cryptography.CipherMode,System.Security.Cryptography.PaddingMode,System.Security.Cryptography.EncryptionMode)", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.SHA384Cng", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.DisposeLocalCopyOfClientHandle():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP384", MessageId = "Diffie", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle.NCryptFreeObject(System.IntPtr):System.Int32", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCapiKeyHandle..ctor()", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateEncryptor():System.Security.Cryptography.ICryptoTransform", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngPropertyCollection", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCapiHashHandle.CryptDestroyHash(System.IntPtr):System.Boolean", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCapiKeyHandle.Duplicate():Microsoft.Win32.SafeHandles.SafeCapiKeyHandle", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP256", MessageId = "Diffie", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginRead(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IAsyncResult", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeClientStream.NumberOfServerInstances.get_NumberOfServerInstances():System.Int32", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Core.resources", MessageId = "Diffie", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCspHandle.CryptReleaseContext(System.IntPtr,System.Int32):System.Boolean", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.Dispose(System.Boolean):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm.Dispose():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.BeginWaitForConnection(System.AsyncCallback,System.Object):System.IAsyncResult", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CngKey.Dispose():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IAsyncResult", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.HmacKey", MessageId = "Hmac", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle.NCryptFreeObject(System.IntPtr):System.Int32", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginReadCore(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IO.Pipes.PipeStreamAsyncResult", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP384", MessageId = "Hellman", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.GetClientHandleAsString():System.String", MessageId = "System.Runtime.InteropServices.SafeHandle.DangerousGetHandle", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "Type", Target = "System.Security.Cryptography.CngKeyOpenOptions", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction.Hmac", MessageId = "Hmac", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.CheckPipePropertyOperations():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.QueryContract(System.String):System.AddIn.Contract.IContract", MessageId = "0#", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.ECDiffieHellman", MessageId = "Hellman", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.GetHashParameter(Microsoft.Win32.SafeHandles.SafeCapiHashHandle,System.Security.Cryptography.CapiNative+HashParameter):System.Byte[]", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline", Scope = "Member", Target = "System.IO.Pipes.PipeStream..cctor()", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.TransmissionMode.get_TransmissionMode():System.IO.Pipes.PipeTransmissionMode", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.CheckReadWriteOperations():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.AddIn.Hosting.InspectionWorker.Inspect(System.AddIn.PipelineComponentType):System.AddIn.Hosting.InspectionResults", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginWriteCore(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IO.Pipes.PipeStreamAsyncResult", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateDecryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "1#", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.GetSecAttrs(System.IO.HandleInheritability):Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDsaP521", MessageId = "Dsa", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.CheckDisconnectOperations():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.SecretAppend", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellman", MessageId = "Hellman", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Core.resources", MessageId = "Dsa", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Scope = "Member", Target = "System.Security.Cryptography.CngKey.BuildKeyContainerPermission(System.Security.Permissions.KeyContainerPermissionFlags):System.Security.Permissions.KeyContainerPermission", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.WinIOError(System.Int32):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.GenerateKey():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDsaCng", MessageId = "Dsa", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDsaCng", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.SHA256Cng", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.AddIn.Hosting.AddInStore.DiscoverAddIns(System.String,System.Collections.Generic.List`1<System.AddIn.AddIn>,System.String,System.Collections.ObjectModel.Collection`1<System.String>):System.Boolean", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngProvider", MessageId = "Cng", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.ContractBase.AcquireLifetimeToken():System.Int32", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction", MessageId = "Hellman", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.GetPropertyAsStruct(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.Security.Cryptography.CngPropertyOptions):T", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngProvider.MicrosoftSmartCardKeyStorageProvider", MessageId = "SmartCard", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "Member", Target = "System.AddIn.Pipeline.LifetimeTokenHandle.Dispose(System.Boolean):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.Disconnect():System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeClientStream.Connect(System.Int32):System.Void", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2217:DoNotMarkEnumsWithFlags", Scope = "Type", Target = "System.Security.Cryptography.CngKeyUsages", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeCapiKeyHandle.CryptDestroyKey(System.IntPtr):System.Boolean", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.AddIn.Pipeline.CollectionAdapters.ToIListContract(System.Collections.Generic.IList`1<TView>,System.Converter`2<TView,TContract>,System.Converter`2<TContract,TView>):System.AddIn.Contract.IListContract`1<TContract>", Justification = "tadam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.AddIn.Pipeline.CollectionAdapters.ToIList(System.AddIn.Contract.IListContract`1<T>):System.Collections.Generic.IList`1<T>", Justification = "tadam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.AddIn.Pipeline.CollectionAdapters.ToIList(System.AddIn.Contract.IListContract`1<TContract>,System.Converter`2<TContract,TView>,System.Converter`2<TView,TContract>):System.Collections.Generic.IList`1<TView>", Justification = "tadam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.AddIn.Pipeline.CollectionAdapters.ToIListContract(System.Collections.Generic.IList`1<T>):System.AddIn.Contract.IListContract`1<T>", Justification = "tadam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.CompileDynamicLambda(System.Linq.Expressions.LambdaExpression):System.Delegate", MessageId = "scope", Justification = "chcosta:FI from main@2007/01/02 23:37:29 ")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "Member", Target = "System.Management.WmiConfigurationAttribute..ctor(System.String)", Justification = "a-kevine:FI from Main @ 2379435")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1807:AvoidUnnecessaryStringCreation", Scope = "Member", Target = "System.Management.WmiConfigurationAttribute..ctor(System.String)", MessageId = "namespacePart", Justification = "a-kevine:FI from Main @ 2379435")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "a-kevine:FI from Main @ 2576802")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Boolean,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "a-kevine:FI from Main @ 2576802")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", MessageId = "ask", Justification = "a-kevine:FI from Main @ 2576802")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNumericConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "a-kevine:FI from Main @ 2576802")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNumericConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "a-kevine:FI from Main @ 2576802")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeBinary(System.Linq.Expressions.ExpressionType,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Boolean,System.Reflection.MethodInfo,System.Linq.Expressions.LambdaExpression):System.Linq.Expressions.BinaryExpression", Justification = "a-kevine:FI from Main @ 2576802")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableToReferenceConversion(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "a-kevine:FI from Main @ 2576802")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberWriteBack(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.Expression,System.Reflection.MemberInfo,System.Reflection.Emit.LocalBuilder):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateCastToType(System.Reflection.Emit.ILGenerator,System.Type,System.Type):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateQuote(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.UnaryExpression):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateConvert(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.UnaryExpression):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.IsInteger(System.Type):System.Boolean", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateReferenceCoalesceWithoutConversion(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberInit(System.Reflection.Emit.ILGenerator,System.Collections.ObjectModel.ReadOnlyCollection`1<System.Linq.Expressions.MemberBinding>,System.Boolean):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLoadHoistedLocals(System.Reflection.Emit.ILGenerator):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Boolean,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GetNonNullableType(System.Type):System.Type", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.IsFloatingPoint(System.Type):System.Boolean", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMethodOrElse(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNumericConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateInvoke(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.InvocationExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateHasValue(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateBinding(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.MemberBinding):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.Generate(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.Expression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLambdaReferenceCoalesce(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMethodCall(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.MethodCallExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.CheckReadOperations():System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUserdefinedLiftedAndAlso(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.VerifyStrongNameSignature(System.Xml.XmlElement):System.Security.Cryptography.StrongNameSignatureInformation", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedAndAlso(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedRelational(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Boolean,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.IsNullable(System.Type):System.Boolean", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedBinaryArithmetic(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GetMemberType(System.Reflection.MemberInfo):System.Type", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.AddGlobal(System.Type,System.Object):System.Int32", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateAndAlso(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginRead(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IAsyncResult", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.IsConvertible(System.Type):System.Boolean", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnaryMethod(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.UnaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateFieldAccess(System.Reflection.Emit.ILGenerator,System.Reflection.FieldInfo,System.Linq.Expressions.ExpressionCompiler+StackType):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableToReferenceConversion(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedBooleanAnd(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateListInit(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ListInitExpression):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GetParameterTypes(System.Reflection.MethodInfo):System.Type[]", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateGetValue(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateWriteBack(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionCompiler+WriteBack):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedEquality(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberAccess(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.MemberExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableToNullableConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberAccess(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.Expression,System.Reflection.MemberInfo,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateParameterAccess(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ParameterExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableToNonNullableStructConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateArrayAccess(System.Reflection.Emit.ILGenerator,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.MakeStrongBoxType(System.Type):System.Type", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateConditional(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ConditionalExpression):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableToNonNullableConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateGetValueOrDefault(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateConstant(System.Reflection.Emit.ILGenerator,System.Type,System.Object,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateGlobalAccess(System.Reflection.Emit.ILGenerator,System.Int32,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberListBinding(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.MemberListBinding):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberAssignment(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.MemberAssignment):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUserdefinedLiftedOrElse(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.IsHoisted(System.Linq.Expressions.ParameterExpression):System.Boolean", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Boolean,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedAndAlso(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateInitHoistedLocals(System.Reflection.Emit.ILGenerator):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.CheckWriteOperations():System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.IsLiftedLogicalBinaryOperator(System.Type,System.Type,System.Reflection.MethodInfo):System.Boolean", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateInitLocal(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ParameterExpression):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMethodCall(System.Reflection.Emit.ILGenerator,System.Reflection.MethodInfo,System.Collections.ObjectModel.ReadOnlyCollection`1<System.Linq.Expressions.Expression>,System.Type):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.CheckConnectOperationsServer():System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateArgAccess(System.Reflection.Emit.ILGenerator,System.Int32,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateConvertToType(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateListInit(System.Reflection.Emit.ILGenerator,System.Collections.ObjectModel.ReadOnlyCollection`1<System.Linq.Expressions.ElementInit>,System.Boolean,System.Type):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLift(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.IEnumerable`1<System.Linq.Expressions.ParameterExpression>,System.Collections.Generic.IEnumerable`1<System.Linq.Expressions.Expression>):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNonNullableToNullableConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableCoalesce(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateArgs(System.Reflection.Emit.ILGenerator,System.Reflection.ParameterInfo[],System.Collections.ObjectModel.ReadOnlyCollection`1<System.Linq.Expressions.Expression>):System.Collections.Generic.List`1<System.Linq.Expressions.ExpressionCompiler+WriteBack>", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUserDefinedReferenceCoalesce(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateBinaryMethod(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateCoalesce(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberMemberBinding(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.MemberMemberBinding):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullEquality(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Linq.Expressions.Expression,System.Boolean):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLoadExecutionScope(System.Reflection.Emit.ILGenerator):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberInit(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.MemberInitExpression):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNewArray(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.NewArrayExpression):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateConstInt(System.Reflection.Emit.ILGenerator,System.Int32):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.PrepareInitLocal(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ParameterExpression):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNew(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.NewExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateHoistedLocalAccess(System.Reflection.Emit.ILGenerator,System.Int32,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateOrElse(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnary(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.UnaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.UseVirtual(System.Reflection.MethodInfo):System.Boolean", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler+WriteBack..ctor(System.Reflection.Emit.LocalBuilder,System.Linq.Expressions.Expression)", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMethodAndAlso(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateTypeIs(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.TypeBinaryExpression):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateArrayAssign(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.IsNullConstant(System.Linq.Expressions.Expression):System.Boolean", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedOrElse(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedBooleanOr(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateBinary(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateConstant(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ConstantExpression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberAccess(System.Reflection.Emit.ILGenerator,System.Reflection.MemberInfo,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedOrElse(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.BinaryExpression):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateCreateDelegate(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.LambdaExpression):System.Void", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.ReturnFromLocal(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionCompiler+StackType,System.Reflection.Emit.LocalBuilder):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.IsUnsigned(System.Type):System.Boolean", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.OfType(System.Linq.IParallelEnumerable):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.OrderByDescending(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IParallelOrderedEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableIntMinMaxAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,TAccumulate,System.Func`3<TAccumulate,TSource,TAccumulate>):TAccumulate", MessageId = "2#func", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Concat(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.All(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Double>):System.Double", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.Util+FastIntComparer", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Single>):System.Single", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.ContainsSearchOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TInput,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<System.Boolean>,System.Boolean):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Any(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "Member", Target = "System.Linq.Parallel.HashRepartitionEnumerator`2.m_valueExchangeMatrix", MessageId = "Member", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IParallelEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToDictionary(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Collections.Generic.Dictionary`2<TKey,TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Reverse(System.Linq.IParallelEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SkipWhile(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Single>):System.Single", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Single>):System.Single", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Threading", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.FloatSumAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SingleOrDefault(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupJoin(System.Linq.IParallelEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.OrderBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IParallelOrderedEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Single(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Linq.Parallel.TraceHelpers.TraceInfo(System.String,System.Object[]):System.Void", MessageId = "args", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2231:OverloadOperatorEqualsOnOverridingValueTypeEquals", Scope = "Member", Target = "System.Linq.Parallel.WrapperEqualityComparer`1.Equals(System.Linq.Parallel.Wrapper`1<T>,System.Linq.Parallel.Wrapper`1<T>):System.Boolean", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelQuery.AsParallel(System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToLookup(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.ILookup`2<TKey,TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Linq.resources", MessageId = "env", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ThenByDescending(System.Linq.IParallelOrderedEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IParallelOrderedEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.Linq.Parallel.SpoolingTaskBase.Work():System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Int64>):System.Double", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupJoin(System.Linq.IParallelEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.LastOrDefault(System.Linq.IParallelEnumerable`1<TSource>):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.SelectManyQueryOperator`3.WrapPartitionedStreamIndexed(System.Linq.Parallel.PartitionedStream`2<TLeftInput,System.Int32>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TOutput>):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "Member", Target = "System.Linq.Parallel.OrderedHashRepartitionEnumerator`3.MoveNext():System.Boolean", MessageId = "Body", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Int64>):System.Int64", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableIntAverageAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.Linq.Parallel.TraceHelpers.NotYetImplemented():System.Void", MessageId = "System.Linq.Parallel.TraceHelpers.NotYetImplemented(System.Boolean,System.String)", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableFloatMinMaxAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.LongCount(System.Linq.IParallelEnumerable`1<TSource>):System.Int64", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TResult>):TResult", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Double>):System.Double", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,System.Func`1<TAccumulate>,System.Func`3<TAccumulate,TSource,TAccumulate>,System.Func`3<TAccumulate,TAccumulate,TAccumulate>,System.Func`2<TAccumulate,TResult>):TResult", MessageId = "3#Func", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelQuery.AsMerged(System.Linq.IParallelEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableDecimalSumAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelQuery.AsOrdered(System.Linq.IParallelEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ElementAtOrDefault(System.Linq.IParallelEnumerable`1<TSource>,System.Int32):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.First(System.Linq.IParallelEnumerable`1<TSource>):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Linq.IParallelEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableFloatSumAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IParallelOrderedEnumerable`1", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Linq.Parallel.Scheduling..cctor()", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.SelectManyQueryOperator`3.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TLeftInput,TLeftKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TOutput>,System.Boolean):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IParallelEnumerable", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableFloatAverageAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupJoin(System.Linq.IParallelEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Count(System.Linq.IParallelEnumerable`1<TSource>):System.Int32", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToLookup(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.ILookup`2<TKey,TElement>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,TAccumulate,System.Func`3<TAccumulate,TSource,TAccumulate>,System.Func`3<TAccumulate,TAccumulate,TAccumulate>,System.Func`2<TAccumulate,TResult>):TResult", MessageId = "3#Func", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.InlinedAggregationOperator`3.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TSource,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TIntermediate>,System.Boolean):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "Member", Target = "System.Linq.Parallel.OrderedHashRepartitionEnumerator`3.m_valueExchangeMatrix", MessageId = "Member", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Zip(System.Linq.IParallelEnumerable`1<TFirst>,System.Collections.Generic.IEnumerable`1<TSecond>,System.Func`3<TFirst,TSecond,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SkipWhile(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.TakeOrSkipWhileQueryOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TResult,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TResult>,System.Boolean):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.FloatMinMaxAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,TSource,TSource>):TSource", MessageId = "1#func", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TResult>):TResult", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.DecimalAverageAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.TakeWhile(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableDoubleSumAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.FirstOrDefault(System.Linq.IParallelEnumerable`1<TSource>):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Intersect(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1040:AvoidEmptyInterfaces", Scope = "Type", Target = "System.Linq.IParallelEnumerable", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableDecimalAverageAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.SingleQueryOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TSource,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TSource>,System.Boolean):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Distinct(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Union(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SingleOrDefault(System.Linq.IParallelEnumerable`1<TSource>):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableDoubleMinMaxAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Last(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Where(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IParallelEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableDecimalMinMaxAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,System.Func`1<TAccumulate>,System.Func`3<TAccumulate,TSource,TAccumulate>,System.Func`3<TAccumulate,TAccumulate,TAccumulate>,System.Func`2<TAccumulate,TResult>):TResult", MessageId = "2#Func", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.DecimalMinMaxAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,System.Func`1<TAccumulate>,System.Func`3<TAccumulate,TSource,TAccumulate>,System.Func`3<TAccumulate,TAccumulate,TAccumulate>,System.Func`2<TAccumulate,TResult>):TResult", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.TakeOrSkipQueryOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TResult,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TResult>,System.Boolean):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Union(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ThenBy(System.Linq.IParallelOrderedEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IParallelOrderedEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Linq.Parallel.TraceHelpers.NotYetImplemented(System.Boolean,System.String):System.Void", MessageId = "message", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Join(System.Linq.IParallelEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,TInner,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.TakeWhile(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Intersect(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.Util+FastDateTimeComparer", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IParallelEnumerable`1", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupJoin(System.Linq.IParallelEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ElementAt(System.Linq.IParallelEnumerable`1<TSource>,System.Int32):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,TSource,TSource>):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.IndexedSelectQueryOperator`2.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TInput,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TOutput>,System.Boolean):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.DoubleMinMaxAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1002:DoNotExposeGenericLists", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToList(System.Linq.IParallelEnumerable`1<TSource>):System.Collections.Generic.List`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,TAccumulate,System.Func`3<TAccumulate,TSource,TAccumulate>,System.Func`2<TAccumulate,TResult>):TResult", MessageId = "2#func", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.PartitionedDataSource`1..ctor(System.Collections.Generic.IEnumerable`1<T>,System.Int32,System.Boolean)", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableLongMinMaxAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelQuery.AsUnordered(System.Linq.IParallelEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelQuery.AsParallel(System.Collections.Generic.IEnumerable`1<TSource>,System.Int32):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.Util+FastFloatComparer", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToArray(System.Linq.IParallelEnumerable`1<TSource>,System.Int32[]):System.Array", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.LastOrDefault(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SequenceEqual(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Boolean", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Take(System.Linq.IParallelEnumerable`1<TSource>,System.Int32):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Int32>):System.Int32", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Linq.resources", MessageId = "failfast", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.UnionQueryOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TInputOutput,TLeftKey>,System.Linq.Parallel.PartitionedStream`2<TInputOutput,TRightKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TInputOutput>,System.Boolean):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ForAll(System.Linq.IParallelEnumerable`1<TSource>,System.Action`1<TSource>):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.Util+FastLongComparer", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.LongCount(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Int64", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.AssociativeAggregationOperator`3.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TInput,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TIntermediate>,System.Boolean):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.ExchangeUtilities.PartitionDataSource(System.Collections.Generic.IEnumerable`1<T>,System.Int32,System.Boolean):System.Linq.Parallel.PartitionedStream`2<T,System.Int32>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.ForAllOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TInput,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TInput>,System.Boolean):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.SequenceEqualQueryOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TSource,TLeftKey>,System.Linq.Parallel.PartitionedStream`2<TSource,TRightKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<System.Boolean>,System.Boolean):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ThenBy(System.Linq.IParallelOrderedEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IParallelOrderedEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Cast(System.Linq.IParallelEnumerable):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ThenByDescending(System.Linq.IParallelOrderedEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IParallelOrderedEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "Member", Target = "System.Linq.Parallel.HashRepartitionEnumerator`2.MoveNext():System.Boolean", MessageId = "Body", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Empty():System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Aggregate(System.Linq.IParallelEnumerable`1<TSource>,TAccumulate,System.Func`3<TAccumulate,TSource,TAccumulate>,System.Func`3<TAccumulate,TAccumulate,TAccumulate>,System.Func`2<TAccumulate,TResult>):TResult", MessageId = "2#Func", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Double>):System.Double", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToLookup(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.ILookup`2<TKey,TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.AnyAllSearchOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TInput,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<System.Boolean>,System.Boolean):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.LongSumAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Where(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Single>):System.Single", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.DoubleAverageAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToList(System.Linq.IParallelEnumerable`1<TSource>):System.Collections.Generic.List`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.IntSumAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Int32>):System.Int32", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.DoubleSumAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Int64>):System.Int64", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.IndexedWhereQueryOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TInputOutput,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TInputOutput>,System.Boolean):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SequenceEqual(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Boolean", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToLookup(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Linq.ILookup`2<TKey,TElement>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.First(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Select(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.LongMinMaxAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Distinct(System.Linq.IParallelEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Single(System.Linq.IParallelEnumerable`1<TSource>):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.Linq.Parallel.TraceHelpers.NotYetImplemented(System.String):System.Void", MessageId = "System.Linq.Parallel.TraceHelpers.NotYetImplemented(System.Boolean,System.String)", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.LongAverageAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "Member", Target = "System.Linq.Parallel.SortHelper`2.m_sharedBarriers", MessageId = "Member", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Linq.IParallelEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.DecimalSumAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Int64>):System.Int64", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Int32>):System.Double", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.ElementAtQueryOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TSource,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TSource>,System.Boolean):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Select(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToDictionary(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.Dictionary`2<TKey,TElement>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Last(System.Linq.IParallelEnumerable`1<TSource>):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToDictionary(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.Dictionary`2<TKey,TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableLongSumAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.OrderByDescending(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IParallelOrderedEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.FirstOrDefault(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableIntSumAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "Member", Target = "System.Linq.Parallel.SortHelper`2.GenerateSortHelpers(System.Linq.Parallel.PartitionedStream`2<TInputOutput,TKey>,System.Linq.Parallel.TaskGroupState):System.Linq.Parallel.SortHelper`2<TInputOutput,TKey>", MessageId = "Body", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.CountAggregationOperator`1", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableDoubleAverageAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToDictionary(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Collections.Generic.Dictionary`2<TKey,TElement>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelQuery.AsMerged(System.Linq.IParallelEnumerable`1<TSource>,System.Linq.ParallelQueryMergeOptions):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Count(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Int32", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Join(System.Linq.IParallelEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,TInner,TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1717:OnlyFlagsEnumsShouldHavePluralNames", Scope = "Type", Target = "System.Linq.ParallelQueryMergeOptions", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.FirstQueryOperator`1.WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2<TSource,TKey>,System.Linq.Parallel.IPartitionedStreamRecipient`1<TSource>,System.Boolean):System.Void", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Int32>):System.Int32", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.OrderBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IParallelOrderedEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Linq.Parallel.TraceHelpers.TraceInfo(System.String,System.Object[]):System.Void", MessageId = "msg", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Skip(System.Linq.IParallelEnumerable`1<TSource>,System.Int32):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.GroupBy(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IParallelEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.IntMinMaxAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>):TSource", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.Util+FastDoubleComparer", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Double>):System.Double", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Except(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.ToArray(System.Linq.IParallelEnumerable`1<TSource>):TSource[]", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.FloatAverageAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.IntAverageAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Scope = "Type", Target = "System.Linq.Parallel.NullableLongAverageAggregationOperator", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.SelectMany(System.Linq.IParallelEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TResult>):System.Linq.IParallelEnumerable`1<TResult>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Linq.Parallel.UnorderedHashRepartitionStream`2..ctor(System.Linq.Parallel.IPartitionedStream`1<TInputOutput>,System.Func`2<TInputOutput,THashKey>,System.Collections.Generic.IEqualityComparer`1<THashKey>)", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Max(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Any(System.Linq.IParallelEnumerable`1<TSource>):System.Boolean", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Min(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Sum(System.Linq.IParallelEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.AsEnumerable(System.Linq.IParallelEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.DefaultIfEmpty(System.Linq.IParallelEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Except(System.Linq.IParallelEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IParallelEnumerable`1<TSource>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "Member", Target = "System.Linq.Parallel.OrderedHashRepartitionEnumerator`3.m_keyExchangeMatrix", MessageId = "Member", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline", Scope = "Member", Target = "System.Linq.Parallel.Scheduling..cctor()", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.ParallelEnumerable.Average(System.Linq.IParallelEnumerable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "chcosta:FI from main to puclr at build 10918.00")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="Microsoft.Win32.SafeHandles.SafeNCryptHandle.#DuplicateOwnerHandle`1()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope="member", Target="Microsoft.Win32.SafeHandles.SafeNCryptHandle.#ReleaseHandle()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Action`2", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Action`2", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Action`3", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Action`3", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="3", Scope="type", Target="System.Action`3", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Action`4", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Action`4", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="3", Scope="type", Target="System.Action`4", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="4", Scope="type", Target="System.Action`4", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Func`3", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Func`3", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Func`4", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Func`4", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="3", Scope="type", Target="System.Func`4", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Func`5", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Func`5", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="3", Scope="type", Target="System.Func`5", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="4", Scope="type", Target="System.Func`5", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="Microsoft.Win32.UnsafeNativeMethods.EventActivityIdControl(System.Int32,System.Guid@)", Scope="member", Target="System.Diagnostics.Eventing.EventProvider.#CreateActivityId()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="Microsoft.Win32.UnsafeNativeMethods.EventUnregister(System.Int64)", Scope="member", Target="System.Diagnostics.Eventing.EventProvider.#Deregister()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.EventProvider.#Dispose(System.Boolean)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="Microsoft.Win32.UnsafeNativeMethods.EventActivityIdControl(System.Int32,System.Guid@)", Scope="member", Target="System.Diagnostics.Eventing.EventProvider.#SetActivityId(System.Guid&)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventBookmark.#System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogHandle.#ReleaseHandle()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogInformation.#.ctor(System.Diagnostics.Eventing.Reader.EventLogSession,System.String,System.Diagnostics.Eventing.Reader.PathType)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogReader.#Dispose(System.Boolean)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogRecord.#get_Bookmark()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogRecord.#ToXml()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogSession.#SetupSystemContext()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogSession.#SetupUserContext()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogWatcher.#Dispose(System.Boolean)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogWatcher.#RequestEvents()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogWatcher.#StartSubscribing()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.EventLogWatcher.#StopSubscribing()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.NativeWrapper.#EvtGetChannelConfigProperty(System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtChannelConfigPropertyId)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.NativeWrapper.#EvtGetEventInfo(System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtEventPropertyId)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.NativeWrapper.#EvtGetPublisherMetadataProperty(System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtPublisherMetadataPropertyId)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.NativeWrapper.#EvtRenderBufferWithContextSystem(System.Diagnostics.Eventing.Reader.EventLogHandle,System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtRenderFlags,System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties,System.Int32)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.NativeWrapper.#EvtRenderBufferWithContextUserOrValues(System.Diagnostics.Eventing.Reader.EventLogHandle,System.Diagnostics.Eventing.Reader.EventLogHandle)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.NativeWrapper.#EvtSetChannelConfigProperty(System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtChannelConfigPropertyId,System.Object)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.ProviderMetadata.#.ctor(System.String,System.Diagnostics.Eventing.Reader.EventLogSession,System.Globalization.CultureInfo,System.String)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.Eventing.Reader.ProviderMetadata.#GetProviderListProperty(System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtPublisherMetadataPropertyId)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Diagnostics.PerformanceData.CounterSet.#Dispose(System.Boolean)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="Microsoft.Win32.UnsafeNativeMethods.PerfDeleteInstance(Microsoft.Win32.SafeHandles.SafePerfProviderHandle,Microsoft.Win32.UnsafeNativeMethods+PerfCounterSetInstanceStruct*)", Scope="member", Target="System.Diagnostics.PerformanceData.CounterSetInstance.#Dispose(System.Boolean)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="Microsoft.Win32.UnsafeNativeMethods.SetErrorMode(System.Int32)", Scope="member", Target="System.IO.LogStream.#_Init(System.String,System.Int32,System.IO.FileShare,Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES,System.Security.Permissions.FileIOPermissionAccess,System.IO.FileMode,System.Int32,System.Boolean)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA2208:InstantiateArgumentExceptionsCorrectly", Scope="member", Target="System.IO.MemoryMappedFiles.MemoryMappedFile.#OpenCore(System.String,System.IO.HandleInheritability,System.Int32,System.Boolean)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1720:IdentifiersShouldNotContainTypeNames", MessageId="long", Scope="member", Target="System.Linq.Enumerable.#LongCount`1(System.Collections.Generic.IEnumerable`1<!!0>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1720:IdentifiersShouldNotContainTypeNames", MessageId="long", Scope="member", Target="System.Linq.Enumerable.#LongCount`1(System.Collections.Generic.IEnumerable`1<!!0>,System.Func`2<!!0,System.Boolean>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Enumerable+Iterator`1.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Enumerable+WhereEnumerableIterator`1.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Enumerable+WhereSelectEnumerableIterator`2.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.EnumerableQuery`1", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1715:IdentifiersShouldHaveCorrectPrefix", MessageId="T", Scope="member", Target="System.Linq.EnumerableQuery`1.#System.Linq.IQueryProvider.CreateQuery`1(System.Linq.Expressions.Expression)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1715:IdentifiersShouldHaveCorrectPrefix", MessageId="T", Scope="member", Target="System.Linq.EnumerableQuery`1.#System.Linq.IQueryProvider.Execute`1(System.Linq.Expressions.Expression)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.EnumerableWrapperWeakToStrong+WrapperEnumeratorWeakToStrong.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IGrouping`2", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.ILookup`2", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IOrderedEnumerable`1", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IOrderedQueryable", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IOrderedQueryable`1", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IParallelEnumerable", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IParallelEnumerable`1", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IParallelOrderedEnumerable`1", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IQueryable", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.IQueryable`1", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.Lookup`2", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1720:IdentifiersShouldNotContainTypeNames", MessageId="long", Scope="member", Target="System.Linq.ParallelEnumerable.#LongCount`1(System.Linq.IParallelEnumerable`1<!!0>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1720:IdentifiersShouldNotContainTypeNames", MessageId="long", Scope="member", Target="System.Linq.ParallelEnumerable.#LongCount`1(System.Linq.IParallelEnumerable`1<!!0>,System.Func`2<!!0,System.Boolean>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.ParallelEnumerable+EmptyEnumerator`1.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.ParallelEnumerable+RangeEnumerable+RangeEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.ParallelEnumerable+RepeatEnumerable`1+RepeatEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Aggregate`3(System.Linq.IQueryable`1<!!0>,!!1,System.Linq.Expressions.Expression`1<System.Func`3<!!1,!!0,!!1>>,System.Linq.Expressions.Expression`1<System.Func`2<!!1,!!2>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#All`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Any`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Decimal>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Double>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Int32>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Int64>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Nullable`1<System.Decimal>>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Nullable`1<System.Double>>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Nullable`1<System.Int32>>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Nullable`1<System.Int64>>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Nullable`1<System.Single>>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Average`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Single>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Count`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#First`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#FirstOrDefault`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupBy`2(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupBy`2(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Collections.Generic.IEqualityComparer`1<!!1>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupBy`3(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!2>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupBy`3(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!2>>,System.Collections.Generic.IEqualityComparer`1<!!1>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupBy`3(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Linq.Expressions.Expression`1<System.Func`3<!!1,System.Collections.Generic.IEnumerable`1<!!0>,!!2>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupBy`3(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Linq.Expressions.Expression`1<System.Func`3<!!1,System.Collections.Generic.IEnumerable`1<!!0>,!!2>>,System.Collections.Generic.IEqualityComparer`1<!!1>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupBy`4(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!2>>,System.Linq.Expressions.Expression`1<System.Func`3<!!1,System.Collections.Generic.IEnumerable`1<!!2>,!!3>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupBy`4(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!2>>,System.Linq.Expressions.Expression`1<System.Func`3<!!1,System.Collections.Generic.IEnumerable`1<!!2>,!!3>>,System.Collections.Generic.IEqualityComparer`1<!!1>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupJoin`4(System.Linq.IQueryable`1<!!0>,System.Collections.Generic.IEnumerable`1<!!1>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!2>>,System.Linq.Expressions.Expression`1<System.Func`2<!!1,!!2>>,System.Linq.Expressions.Expression`1<System.Func`3<!!0,System.Collections.Generic.IEnumerable`1<!!1>,!!3>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#GroupJoin`4(System.Linq.IQueryable`1<!!0>,System.Collections.Generic.IEnumerable`1<!!1>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!2>>,System.Linq.Expressions.Expression`1<System.Func`2<!!1,!!2>>,System.Linq.Expressions.Expression`1<System.Func`3<!!0,System.Collections.Generic.IEnumerable`1<!!1>,!!3>>,System.Collections.Generic.IEqualityComparer`1<!!2>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Join`4(System.Linq.IQueryable`1<!!0>,System.Collections.Generic.IEnumerable`1<!!1>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!2>>,System.Linq.Expressions.Expression`1<System.Func`2<!!1,!!2>>,System.Linq.Expressions.Expression`1<System.Func`3<!!0,!!1,!!3>>,System.Collections.Generic.IEqualityComparer`1<!!2>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Last`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#LastOrDefault`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1720:IdentifiersShouldNotContainTypeNames", MessageId="long", Scope="member", Target="System.Linq.Queryable.#LongCount`1(System.Linq.IQueryable`1<!!0>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#LongCount`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1720:IdentifiersShouldNotContainTypeNames", MessageId="long", Scope="member", Target="System.Linq.Queryable.#LongCount`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Max`2(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#OrderBy`2(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Collections.Generic.IComparer`1<!!1>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#OrderByDescending`2(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#OrderByDescending`2(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Collections.Generic.IComparer`1<!!1>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#SelectMany`2(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Collections.Generic.IEnumerable`1<!!1>>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#SelectMany`2(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`3<!!0,System.Int32,System.Collections.Generic.IEnumerable`1<!!1>>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#Single`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#SingleOrDefault`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#SkipWhile`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#SkipWhile`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`3<!!0,System.Int32,System.Boolean>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#TakeWhile`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#TakeWhile`1(System.Linq.IQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`3<!!0,System.Int32,System.Boolean>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#ThenBy`2(System.Linq.IOrderedQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#ThenBy`2(System.Linq.IOrderedQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Collections.Generic.IComparer`1<!!1>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#ThenByDescending`2(System.Linq.IOrderedQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1011:ConsiderPassingBaseTypesAsParameters", Scope="member", Target="System.Linq.Queryable.#ThenByDescending`2(System.Linq.IOrderedQueryable`1<!!0>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,System.Collections.Generic.IComparer`1<!!1>)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1032:ImplementStandardExceptionConstructors", Scope="type", Target="System.Linq.SystemCore_EnumerableDebugViewEmptyException", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA2237:MarkISerializableTypesWithSerializable", Scope="type", Target="System.Linq.SystemCore_EnumerableDebugViewEmptyException", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1721:PropertyNamesShouldNotMatchGetMethods", Scope="member", Target="System.Linq.Expressions.Expression.#Type", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.AnyAllSearchOperator`1+AnyAllSearchOperatorEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.AssociativeAggregationOperator`3+AssociativeAggregationOperatorEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.Barrier.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.ConcatQueryOperator`1+ConcatQueryOperatorEnumerator`2.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.ContainsSearchOperator`1+ContainsSearchOperatorEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.CountAggregationOperator`1+CountAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.DecimalAverageAggregationOperator+DecimalAverageAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.DecimalMinMaxAggregationOperator+DecimalMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.DecimalSumAggregationOperator+DecimalSumAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.DefaultIfEmptyQueryOperator`1+DefaultIfEmptyQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.DistinctQueryOperator`1+DistinctQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.DoubleAverageAggregationOperator+DoubleAverageAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.DoubleMinMaxAggregationOperator+DoubleMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.DoubleSumAggregationOperator+DoubleSumAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.ElementAtQueryOperator`1+ElementAtQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.ExceptQueryOperator`1+ExceptQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.FirstQueryOperator`1+FirstQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.FloatAverageAggregationOperator+FloatAverageAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.FloatMinMaxAggregationOperator+FloatMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.FloatSumAggregationOperator+FloatSumAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.ForAllOperator`1+ForAllEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.GroupByQueryOperatorEnumerator`4.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.HashJoinQueryOperatorEnumerator`5.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.HashRepartitionEnumerator`2.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.IndexedSelectQueryOperator`2+IndexedSelectQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.IndexedWhereQueryOperator`1+IndexedWhereQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.IntAverageAggregationOperator+IntAverageAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design","CA1032:ImplementStandardExceptionConstructors", Scope="type", Target="System.Linq.Parallel.InternalOperationCanceledException", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA2237:MarkISerializableTypesWithSerializable", Scope="type", Target="System.Linq.Parallel.InternalOperationCanceledException", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.IntersectQueryOperator`1+IntersectQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.IntMinMaxAggregationOperator+IntMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.IntSumAggregationOperator+IntSumAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.LastQueryOperator`1+LastQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.LongAverageAggregationOperator+LongAverageAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.LongMinMaxAggregationOperator+LongMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.LongSumAggregationOperator+LongSumAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.MergeEnumerator`1.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableDecimalAverageAggregationOperator+NullableDecimalAverageAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableDecimalMinMaxAggregationOperator+NullableDecimalMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableDecimalSumAggregationOperator+NullableDecimalSumAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableDoubleAverageAggregationOperator+NullableDoubleAverageAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableDoubleMinMaxAggregationOperator+NullableDoubleMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableDoubleSumAggregationOperator+NullableDoubleSumAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableFloatAverageAggregationOperator+NullableFloatAverageAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableFloatMinMaxAggregationOperator+NullableFloatMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableFloatSumAggregationOperator+NullableFloatSumAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableIntAverageAggregationOperator+NullableIntAverageAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableIntMinMaxAggregationOperator+NullableIntMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableIntSumAggregationOperator+NullableIntSumAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableLongAverageAggregationOperator+NullableLongAverageAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableLongMinMaxAggregationOperator+NullableLongMinMaxAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.NullableLongSumAggregationOperator+NullableLongSumAggregationOperatorEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.OrderedHashRepartitionEnumerator`3.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.PartitionedDataSource`1+ContiguousChunkLazyEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.PartitionedDataSource`1+IndexRangeEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="System.Linq.Parallel.NativeMethods.SwitchToThread", Scope="member", Target="System.Linq.Parallel.Platform.#Yield()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.QueryOperator`1+QueryOpeningEnumerator.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.ReverseQueryOperator`1+ReverseQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.ScanQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.SelectManyQueryOperator`3+IndexedSelectManyQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.SelectManyQueryOperator`3+SelectManyQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.SelectQueryOperator`2+SelectQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.SequenceEqualQueryOperator`1+SequenceEqualOperatorEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.SingleQueryOperator`1+SingleQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization","CA1305:SpecifyIFormatProvider", MessageId="System.String.Format(System.String,System.Object[])", Scope="member", Target="System.Linq.Parallel.SortHelper`2.#CancelEntireSort()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.SortHelper`2.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.SortQueryOperatorEnumerator`2.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.SynchronousChannel`1.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.TakeOrSkipQueryOperator`1+TakeOrSkipQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.TakeOrSkipWhileQueryOperator`1+TakeOrSkipWhileQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.UnionQueryOperator`1+UnionQueryOperatorEnumerator.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Linq.Parallel.WhereQueryOperator`1+WhereQueryOperatorEnumerator`1.#System.IDisposable.Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1721:PropertyNamesShouldNotMatchGetMethods", Scope="member", Target="System.Management.Instrumentation.ManagementReferenceAttribute.#Type", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="StrongBox", Scope="type", Target="System.Runtime.CompilerServices.IStrongBox", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="StrongBox", Scope="type", Target="System.Runtime.CompilerServices.StrongBox`1", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Security.Cryptography.ECDiffieHellmanPublicKey.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="System.Security.Cryptography.X509Certificates.X509Native+UnsafeNativeMethods.CertFreeAuthenticodeSignerInfo(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_SIGNER_INFO@)", Scope="member", Target="System.Security.Cryptography.Xml.ManifestSignedXml.#VerifyAuthenticodeSignature(System.Xml.XmlElement,System.Security.Cryptography.X509Certificates.X509RevocationFlag,System.Security.Cryptography.X509Certificates.X509RevocationMode)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="System.Security.Cryptography.X509Certificates.X509Native+UnsafeNativeMethods.CertFreeAuthenticodeTimestamperInfo(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_TIMESTAMPER_INFO@)", Scope="member", Target="System.Security.Cryptography.Xml.ManifestSignedXml.#VerifyAuthenticodeSignature(System.Xml.XmlElement,System.Security.Cryptography.X509Certificates.X509RevocationFlag,System.Security.Cryptography.X509Certificates.X509RevocationMode)", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Threading.ReaderWriterLockSlim.#Dispose()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId="Zif", Scope="resource", Target="System.Linq.resources", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId="env-var", Scope="resource", Target="System.Linq.resources", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId="failfast", Scope="resource", Target="System.Linq.resources", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId="tzfile", Scope="resource", Target="System.Linq.resources", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="Microsoft.Win32.UnsafeNativeMethods.PerfStopProvider(System.IntPtr)", Scope="member", Target="Microsoft.Win32.SafeHandles.SafePerfProviderHandle.#ReleaseHandle()", Justification="matell: Initial Baseline for FxCop 1.36 with RunCodeAnalysis.")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA2214:DoNotCallOverridableMethodsInConstructors", Scope="member", Target="System.Linq.Parallel.RangeEnumerable+RangeEnumerator.#.ctor(System.Int32,System.Int32,System.Int32)", Justification="This needs to be reviewed by IgorO")]
+[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security","CA2129:SecurityTransparentCodeShouldNotReferenceNonpublicSecurityCriticalCode", Scope="member", Target="System.Linq.Parallel.Scheduling.#GetDefaultDegreeOfParallelism()", Justification="This needs to be reviewed by IgorO")]
-/* [....] 1/21/09 - reenable RCA for system.core.dll
+/* jfree 1/21/09 - reenable RCA for system.core.dll
*
*/
-[module: SuppressMessage("Microsoft.Globalization","CA1305:SpecifyIFormatProvider", MessageId="System.String.Format(System.String,System.Object[])", Scope="member", Target="Microsoft.CSharp.CError.#ComputeString(Microsoft.CSharp.ErrorCode,System.String[])", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="Microsoft.CSharp.CErrorSinkObtainer.#Dispose()", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Design","CA1008:EnumsShouldHaveZeroValue", Scope="type", Target="Microsoft.CSharp.CompilerCreationFlags", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Design","CA1027:MarkEnumsWithFlags", Scope="type", Target="Microsoft.CSharp.CompilerCreationFlags", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="CCF", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_IDEUSAGE", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDEUSAGE", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_IDEUSAGE", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_IDEUSAGE", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="CCF", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_KEEPNODETABLES", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="KEEPNODETABLES", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_KEEPNODETABLES", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_KEEPNODETABLES", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="CCF", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_TRACKCOMMENTS", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="TRACKCOMMENTS", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_TRACKCOMMENTS", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_TRACKCOMMENTS", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Performance","CA1813:AvoidUnsealedAttributes", Scope="type", Target="Microsoft.CSharp.CompilerOptionAttribute", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ADDR", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_ADDR", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_ADDR", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_ADDR", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_ADDR", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ALIAS", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_ALIAS", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_ALIAS", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_ALIAS", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_ALIAS", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_BOOLSTRING", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="BOOLSTRING", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_BOOLSTRING", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_BOOLSTRING", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_BOOLSTRING", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_DEBUGTYPE", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_DEBUGTYPE", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="DEBUGTYPE", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_DEBUGTYPE", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_DEBUGTYPE", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_FILE", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_FILE", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="FILE", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_FILE", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_FILE", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_FILELIST", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_FILELIST", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="FILELIST", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_FILELIST", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_FILELIST", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_MASK", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_MASK", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="MASK", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_MASK", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_MASK", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NOCOLON", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NOCOLON", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="NOCOLON", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NOCOLON", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NOCOLON", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NONE", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NONE", Justification="[....] - reenable rca for system.core")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="NONE", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NONE", Justification="[....] - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Globalization","CA1305:SpecifyIFormatProvider", MessageId="System.String.Format(System.String,System.Object[])", Scope="member", Target="Microsoft.CSharp.CError.#ComputeString(Microsoft.CSharp.ErrorCode,System.String[])", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="Microsoft.CSharp.CErrorSinkObtainer.#Dispose()", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Design","CA1008:EnumsShouldHaveZeroValue", Scope="type", Target="Microsoft.CSharp.CompilerCreationFlags", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Design","CA1027:MarkEnumsWithFlags", Scope="type", Target="Microsoft.CSharp.CompilerCreationFlags", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="CCF", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_IDEUSAGE", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDEUSAGE", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_IDEUSAGE", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_IDEUSAGE", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="CCF", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_KEEPNODETABLES", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="KEEPNODETABLES", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_KEEPNODETABLES", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_KEEPNODETABLES", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="CCF", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_TRACKCOMMENTS", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="TRACKCOMMENTS", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_TRACKCOMMENTS", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerCreationFlags.#CCF_TRACKCOMMENTS", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Performance","CA1813:AvoidUnsealedAttributes", Scope="type", Target="Microsoft.CSharp.CompilerOptionAttribute", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ADDR", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_ADDR", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_ADDR", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_ADDR", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_ADDR", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ALIAS", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_ALIAS", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_ALIAS", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_ALIAS", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_ALIAS", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_BOOLSTRING", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="BOOLSTRING", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_BOOLSTRING", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_BOOLSTRING", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_BOOLSTRING", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_DEBUGTYPE", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_DEBUGTYPE", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="DEBUGTYPE", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_DEBUGTYPE", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_DEBUGTYPE", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_FILE", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_FILE", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="FILE", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_FILE", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_FILE", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_FILELIST", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_FILELIST", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="FILELIST", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_FILELIST", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_FILELIST", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_MASK", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_MASK", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="MASK", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_MASK", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_MASK", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NOCOLON", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NOCOLON", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="NOCOLON", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NOCOLON", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NOCOLON", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NONE", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NONE", Justification="jfree - reenable rca for system.core")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="NONE", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NONE", Justification="jfree - reenable rca for system.core")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NONE")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ARG", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NUMBER")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="COF", Scope="member", Target="Microsoft.CSharp.CompilerOptionFlags.#COF_ARG_NUMBER")]
@@ -1240,42 +1240,42 @@ using System.Diagnostics.CodeAnalysis;
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssemblyMatchBadVersion")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssemblyNameOnNonModule")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssemblyNameOnNonModule")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gLvalueExpected")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gLvalueExpected")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Lvalue", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gLvalueExpected")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gLvalueExpected")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonly")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonly")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonly")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonly")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonly2")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonly2")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonly2")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonly2")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyLocal")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyLocal")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyLocal")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyLocal")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyLocal2Cause")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyLocal2Cause")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyLocal2Cause")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyLocal2Cause")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyLocalCause")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyLocalCause")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyLocalCause")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyLocalCause")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyProp")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyProp")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyProp")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyProp")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyStatic")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyStatic")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyStatic")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyStatic")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyStatic2")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyStatic2")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyStatic2")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_----gReadonlyStatic2")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgLvalueExpected")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgLvalueExpected")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Lvalue", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgLvalueExpected")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgLvalueExpected")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonly")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonly")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonly")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonly")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonly2")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonly2")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonly2")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonly2")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyLocal")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyLocal")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyLocal")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyLocal")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyLocal2Cause")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyLocal2Cause")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyLocal2Cause")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyLocal2Cause")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyLocalCause")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyLocalCause")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyLocalCause")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyLocalCause")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyProp")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyProp")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyProp")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyProp")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyStatic")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyStatic")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyStatic")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyStatic")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyStatic2")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyStatic2")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyStatic2")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AssgReadonlyStatic2")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AsWithTypeVar")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AsWithTypeVar")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="ERR", Scope="member", Target="Microsoft.CSharp.ErrorCode.#ERR_AttrArgWithTypeVars")]
@@ -3206,9 +3206,9 @@ using System.Diagnostics.CodeAnalysis;
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_IllegalPPWarning")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="WRN", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_IllegalPragma")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_IllegalPragma")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="WRN", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_IncorrectBoolean----g")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_IncorrectBoolean----g")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_IncorrectBoolean----g")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="WRN", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_IncorrectBooleanAssg")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_IncorrectBooleanAssg")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_IncorrectBooleanAssg")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="WRN", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_IncrSwitchObsolete")]
[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Incr", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_IncrSwitchObsolete")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_IncrSwitchObsolete")]
@@ -3341,16 +3341,16 @@ using System.Diagnostics.CodeAnalysis;
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedEvent")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="WRN", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedField")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedField")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="WRN", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedField----g")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedField----g")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedField----g")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="WRN", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedFieldAssg")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedFieldAssg")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedFieldAssg")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="WRN", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedLabel")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedLabel")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="WRN", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedVar")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedVar")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="WRN", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedVar----g")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedVar----g")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedVar----g")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="WRN", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedVarAssg")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedVarAssg")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UnreferencedVarAssg")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="WRN", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UseNewSwitch")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UseNewSwitch")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="WRN", Scope="member", Target="Microsoft.CSharp.ErrorCode.#WRN_UseSwitchInsteadOfAttribute")]
@@ -3609,46 +3609,46 @@ using System.Diagnostics.CodeAnalysis;
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssemblyMatchBadVersion")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssemblyNameOnNonModule")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssemblyNameOnNonModule")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gLvalueExpected")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gLvalueExpected")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Lvalue", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gLvalueExpected")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gLvalueExpected")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonly")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonly")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonly")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonly")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonly2")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonly2")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonly2")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonly2")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyLocal")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyLocal")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyLocal")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyLocal")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyLocal2")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyLocal2")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyLocal2")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyLocal2")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyLocal2Cause")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyLocal2Cause")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyLocal2Cause")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyLocal2Cause")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyLocalCause")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyLocalCause")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyLocalCause")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyLocalCause")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyProp")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyProp")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyProp")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyProp")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyStatic")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyStatic")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyStatic")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyStatic")]
-[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyStatic2")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyStatic2")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyStatic2")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_----gReadonlyStatic2")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgLvalueExpected")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgLvalueExpected")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Lvalue", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgLvalueExpected")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgLvalueExpected")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonly")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonly")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonly")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonly")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonly2")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonly2")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonly2")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonly2")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyLocal")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyLocal")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyLocal")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyLocal")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyLocal2")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyLocal2")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyLocal2")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyLocal2")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyLocal2Cause")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyLocal2Cause")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyLocal2Cause")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyLocal2Cause")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyLocalCause")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyLocalCause")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyLocalCause")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyLocalCause")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyProp")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyProp")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyProp")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyProp")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyStatic")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyStatic")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyStatic")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyStatic")]
+[module: SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Readonly", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyStatic2")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyStatic2")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyStatic2")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssgReadonlyStatic2")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssignmentToLockOrDispose")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssignmentToLockOrDispose")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_AssignmentToSelf")]
@@ -5028,9 +5028,9 @@ using System.Diagnostics.CodeAnalysis;
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_InconsistantIndexerNames")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_InconsistentLambdaParameterUsage")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_InconsistentLambdaParameterUsage")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_IncorrectBoolean----g")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_IncorrectBoolean----g")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_IncorrectBoolean----g")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_IncorrectBooleanAssg")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_IncorrectBooleanAssg")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_IncorrectBooleanAssg")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_IncrementLvalueExpected")]
[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Lvalue", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_IncrementLvalueExpected")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_IncrementLvalueExpected")]
@@ -6344,16 +6344,16 @@ using System.Diagnostics.CodeAnalysis;
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedEvent")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedField")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedField")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedField----g")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedField----g")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedField----g")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedFieldAssg")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedFieldAssg")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedFieldAssg")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedLabel")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedLabel")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedVar")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedVar")]
-[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedVar----g")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="----g", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedVar----g")]
-[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedVar----g")]
+[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedVarAssg")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Assg", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedVarAssg")]
+[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnreferencedVarAssg")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnsafeIteratorArgType")]
[module: SuppressMessage("Microsoft.Naming","CA1707:IdentifiersShouldNotContainUnderscores", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnsafeIteratorArgType")]
[module: SuppressMessage("Microsoft.Naming","CA1709:IdentifiersShouldBeCasedCorrectly", MessageId="IDS", Scope="member", Target="Microsoft.CSharp.MessageID.#IDS_UnsafeNeeded")]
@@ -6676,7 +6676,7 @@ using System.Diagnostics.CodeAnalysis;
[module: SuppressMessage("Microsoft.Naming","CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId="Ambigous", Scope="resource", Target="Microsoft.CSharp.Errors.resources")]
[module: SuppressMessage("Microsoft.Naming","CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId="Arglist", Scope="resource", Target="Microsoft.CSharp.Errors.resources")]
[module: SuppressMessage("Microsoft.Naming","CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId="Arity", Scope="resource", Target="Microsoft.CSharp.Errors.resources")]
-[module: SuppressMessage("Microsoft.Naming","CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId="----g", Scope="resource", Target="Microsoft.CSharp.Errors.resources")]
+[module: SuppressMessage("Microsoft.Naming","CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId="Assg", Scope="resource", Target="Microsoft.CSharp.Errors.resources")]
[module: SuppressMessage("Microsoft.Naming","CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId="Attr", Scope="resource", Target="Microsoft.CSharp.Errors.resources")]
[module: SuppressMessage("Microsoft.Naming","CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId="Bld", Scope="resource", Target="Microsoft.CSharp.Errors.resources")]
[module: SuppressMessage("Microsoft.Naming","CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId="Builtin", Scope="resource", Target="Microsoft.CSharp.Errors.resources")]
@@ -6790,44 +6790,44 @@ using System.Diagnostics.CodeAnalysis;
/*
- * [....] Action/Func
+ * jfree Action/Func
*/
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Action`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Action`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="3", Scope="type", Target="System.Action`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="4", Scope="type", Target="System.Action`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="5", Scope="type", Target="System.Action`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="6", Scope="type", Target="System.Action`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="7", Scope="type", Target="System.Action`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="8", Scope="type", Target="System.Action`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="9", Scope="type", Target="System.Action`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Action`9", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Action`9", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="3", Scope="type", Target="System.Action`9", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="4", Scope="type", Target="System.Action`9", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="5", Scope="type", Target="System.Action`9", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="6", Scope="type", Target="System.Action`9", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="7", Scope="type", Target="System.Action`9", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="8", Scope="type", Target="System.Action`9", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="9", Scope="type", Target="System.Action`9", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Func`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Func`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="3", Scope="type", Target="System.Func`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="4", Scope="type", Target="System.Func`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="5", Scope="type", Target="System.Func`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="6", Scope="type", Target="System.Func`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="7", Scope="type", Target="System.Func`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="8", Scope="type", Target="System.Func`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="9", Scope="type", Target="System.Func`10", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Func`11", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Func`11", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="3", Scope="type", Target="System.Func`11", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="4", Scope="type", Target="System.Func`11", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="5", Scope="type", Target="System.Func`11", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="6", Scope="type", Target="System.Func`11", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="7", Scope="type", Target="System.Func`11", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="8", Scope="type", Target="System.Func`11", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="9", Scope="type", Target="System.Func`11", Justification="[....] - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Action`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Action`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="3", Scope="type", Target="System.Action`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="4", Scope="type", Target="System.Action`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="5", Scope="type", Target="System.Action`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="6", Scope="type", Target="System.Action`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="7", Scope="type", Target="System.Action`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="8", Scope="type", Target="System.Action`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="9", Scope="type", Target="System.Action`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Action`9", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Action`9", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="3", Scope="type", Target="System.Action`9", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="4", Scope="type", Target="System.Action`9", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="5", Scope="type", Target="System.Action`9", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="6", Scope="type", Target="System.Action`9", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="7", Scope="type", Target="System.Action`9", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="8", Scope="type", Target="System.Action`9", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="9", Scope="type", Target="System.Action`9", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Func`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Func`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="3", Scope="type", Target="System.Func`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="4", Scope="type", Target="System.Func`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="5", Scope="type", Target="System.Func`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="6", Scope="type", Target="System.Func`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="7", Scope="type", Target="System.Func`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="8", Scope="type", Target="System.Func`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="9", Scope="type", Target="System.Func`10", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="1", Scope="type", Target="System.Func`11", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="2", Scope="type", Target="System.Func`11", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="3", Scope="type", Target="System.Func`11", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="4", Scope="type", Target="System.Func`11", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="5", Scope="type", Target="System.Func`11", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="6", Scope="type", Target="System.Func`11", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="7", Scope="type", Target="System.Func`11", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="8", Scope="type", Target="System.Func`11", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="9", Scope="type", Target="System.Func`11", Justification="jfree - by design")]
/*
* DLR needs to review
diff --git a/mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/DynamicExpression.cs b/mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/DynamicExpression.cs
index c7bf9036a30..361d7eeda74 100644
--- a/mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/DynamicExpression.cs
+++ b/mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/DynamicExpression.cs
@@ -38,7 +38,8 @@ namespace System.Linq.Expressions {
#if !SILVERLIGHT
[DebuggerTypeProxy(typeof(Expression.DynamicExpressionProxy))]
#endif
- public class DynamicExpression : Expression, IArgumentProvider {
+ public class DynamicExpression : Expression, IDynamicExpression
+ {
private readonly CallSiteBinder _binder;
private readonly Type _delegateType;
@@ -413,6 +414,16 @@ namespace System.Linq.Expressions {
}
#endif // !SILVERLIGHT || FEATURE_NETCORE
#endregion
+
+ Expression IDynamicExpression.Rewrite(Expression[] args)
+ {
+ return this.Rewrite(args);
+ }
+
+ object IDynamicExpression.CreateCallSite()
+ {
+ return CallSite.Create(this.DelegateType, this.Binder);
+ }
}
#region Specialized Subclasses
diff --git a/mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/IArgumentProvider.cs b/mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/IArgumentProvider.cs
index c7d40c24c04..b023c23d382 100644
--- a/mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/IArgumentProvider.cs
+++ b/mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/IArgumentProvider.cs
@@ -55,7 +55,7 @@ namespace System.Linq.Expressions {
/// an overloaded field enables us to both reduce memory usage as well as maintain compatibility and an
/// easy to use external API.
/// </summary>
- internal interface IArgumentProvider {
+ public interface IArgumentProvider {
Expression GetArgument(int index);
int ArgumentCount {
get;
diff --git a/mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/IDynamicExpression.cs b/mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/IDynamicExpression.cs
new file mode 100644
index 00000000000..70e2be44968
--- /dev/null
+++ b/mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/IDynamicExpression.cs
@@ -0,0 +1,49 @@
+/* ****************************************************************************
+ *
+ * Copyright (c) Microsoft Corporation.
+ *
+ * This source code is subject to terms and conditions of the Apache License, Version 2.0. A
+ * copy of the license can be found in the License.html file at the root of this distribution. If
+ * you cannot locate the Apache License, Version 2.0, please send an email to
+ * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
+ * by the terms of the Apache License, Version 2.0.
+ *
+ * You must not remove this notice, or any other, from this software.
+ *
+ *
+ * ***************************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+#if CLR2
+namespace Microsoft.Scripting.Ast {
+ using Microsoft.Scripting.Utils;
+#else
+namespace System.Linq.Expressions
+{
+#endif
+
+ public interface IDynamicExpression : IArgumentProvider
+ {
+ /// <summary>
+ /// Gets the type of the delegate used by the CallSite />.
+ /// </summary>
+ Type DelegateType { get; }
+
+ /// <summary>
+ /// Rewrite this node replacing the args with the provided values. The
+ /// number of the args needs to match the number of the current block.
+ ///
+ /// This helper is provided to allow re-writing of nodes to not depend on the specific
+ /// class of DynamicExpression which is being used.
+ /// </summary>
+ Expression Rewrite(Expression[] args);
+
+ /// <summary>
+ /// Creates a CallSite for the node.
+ /// </summary>
+ object CreateCallSite();
+ }
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/TypeBinaryExpression.cs b/mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/TypeBinaryExpression.cs
index ef5ba7de9f0..2a1989b766c 100644
--- a/mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/TypeBinaryExpression.cs
+++ b/mcs/class/referencesource/System.Core/Microsoft/Scripting/Ast/TypeBinaryExpression.cs
@@ -127,10 +127,10 @@ namespace System.Linq.Expressions {
Expression getType = Expression.Call(value, typeof(object).GetMethod("GetType"));
// In remoting scenarios, obj.GetType() can return an interface.
- // But there's a bug in the JIT32's optimized "obj.GetType() ==
- // typeof(ISomething)" codegen, causing it to always return false.
- // We workaround the bug by generating different, less optimal IL
- // if TypeOperand is an interface.
+ // But there's a
+
+
+
if (_typeOperand.IsInterface) {
var temp = Expression.Parameter(typeof(Type));
getType = Expression.Block(new[] { temp }, Expression.Assign(temp, getType), temp);
diff --git a/mcs/class/referencesource/System.Core/Microsoft/Scripting/Compiler/AssemblyGen.cs b/mcs/class/referencesource/System.Core/Microsoft/Scripting/Compiler/AssemblyGen.cs
index b908bcfadbc..17e79e1bce5 100644
--- a/mcs/class/referencesource/System.Core/Microsoft/Scripting/Compiler/AssemblyGen.cs
+++ b/mcs/class/referencesource/System.Core/Microsoft/Scripting/Compiler/AssemblyGen.cs
@@ -110,9 +110,9 @@ namespace System.Linq.Expressions.Compiler {
sb.Append("$");
sb.Append(index);
- // There is a bug in Reflection.Emit that leads to
- // Unhandled Exception: System.Runtime.InteropServices.COMException (0x80131130): Record not found on lookup.
- // if there is any of the characters []*&+,\ in the type name and a method defined on the type is called.
+ // There is a
+
+
sb.Replace('+', '_').Replace('[', '_').Replace(']', '_').Replace('*', '_').Replace('&', '_').Replace(',', '_').Replace('\\', '_');
name = sb.ToString();
diff --git a/mcs/class/referencesource/System.Core/Microsoft/Scripting/Compiler/LambdaCompiler.Unary.cs b/mcs/class/referencesource/System.Core/Microsoft/Scripting/Compiler/LambdaCompiler.Unary.cs
index cb8ef7da166..e7e9dc17254 100644
--- a/mcs/class/referencesource/System.Core/Microsoft/Scripting/Compiler/LambdaCompiler.Unary.cs
+++ b/mcs/class/referencesource/System.Core/Microsoft/Scripting/Compiler/LambdaCompiler.Unary.cs
@@ -291,12 +291,12 @@ namespace System.Linq.Expressions.Compiler {
// if it is null, and then call the conversion.
//
// We cannot fix this in C# but there is no reason why we need to
- // propagate this bug into the expression tree API. Unfortunately
- // this means that when the C# compiler generates the lambda
- // (int? i)=>(MyClass)i, we will get different results for converting
- // that lambda to a delegate directly and converting that lambda to
- // an expression tree and then compiling it. We can live with this
- // discrepancy however.
+ // propagate this
+
+
+
+
+
if (node.IsLifted && (!node.Type.IsValueType || !node.Operand.Type.IsValueType)) {
ParameterInfo[] pis = node.Method.GetParametersCached();
diff --git a/mcs/class/referencesource/System.Core/Microsoft/Scripting/Stubs.cs b/mcs/class/referencesource/System.Core/Microsoft/Scripting/Stubs.cs
index b8e796f54fb..08104e9fb23 100644
--- a/mcs/class/referencesource/System.Core/Microsoft/Scripting/Stubs.cs
+++ b/mcs/class/referencesource/System.Core/Microsoft/Scripting/Stubs.cs
@@ -209,4 +209,4 @@ namespace System {
}
-#endif
+#endif \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Core/Microsoft/Win32/SafeHandles/CapiSafeHandles.cs b/mcs/class/referencesource/System.Core/Microsoft/Win32/SafeHandles/CapiSafeHandles.cs
index 7b577d04f27..16669900dca 100644
--- a/mcs/class/referencesource/System.Core/Microsoft/Win32/SafeHandles/CapiSafeHandles.cs
+++ b/mcs/class/referencesource/System.Core/Microsoft/Win32/SafeHandles/CapiSafeHandles.cs
@@ -18,21 +18,27 @@ namespace Microsoft.Win32.SafeHandles {
/// <summary>
/// SafeHandle for buffers returned by the Axl APIs
/// </summary>
+#if !FEATURE_CORESYSTEM
#pragma warning disable 618 // Have not migrated to v4 transparency yet
[System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)]
#pragma warning restore 618
+#endif
internal sealed class SafeAxlBufferHandle : SafeHandleZeroOrMinusOneIsInvalid {
private SafeAxlBufferHandle() : base(true) {
return;
}
[DllImport("kernel32")]
+#if !FEATURE_CORESYSTEM
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
[SuppressUnmanagedCodeSecurity]
private static extern IntPtr GetProcessHeap();
[DllImport("kernel32")]
+#if !FEATURE_CORESYSTEM
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
[SuppressUnmanagedCodeSecurity]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool HeapFree(IntPtr hHeap, int dwFlags, IntPtr lpMem);
@@ -53,26 +59,43 @@ namespace Microsoft.Win32.SafeHandles {
/// maintains a native refcount on its parent HCRYPTPROV to ensure that if the corresponding
/// SafeCspKeyHandle is finalized first CAPI still keeps the provider alive.
/// </summary>
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#else
#pragma warning disable 618 // Have not migrated to v4 transparency yet
[SecurityCritical(SecurityCriticalScope.Everything)]
#pragma warning restore 618
+#endif
internal abstract class SafeCapiHandleBase : SafeHandleZeroOrMinusOneIsInvalid {
private IntPtr m_csp;
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
[SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands")]
internal SafeCapiHandleBase() : base(true) {
}
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
[DllImport("advapi32", SetLastError = true)]
+#if !FEATURE_CORESYSTEM
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
[SuppressUnmanagedCodeSecurity]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool CryptContextAddRef(IntPtr hProv,
IntPtr pdwReserved,
int dwFlags);
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
[DllImport("advapi32")]
+#if !FEATURE_CORESYSTEM
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
[SuppressUnmanagedCodeSecurity]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool CryptReleaseContext(IntPtr hProv, int dwFlags);
@@ -81,7 +104,9 @@ namespace Microsoft.Win32.SafeHandles {
protected IntPtr ParentCsp {
get { return m_csp; }
+#if !FEATURE_CORESYSTEM
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
+#endif
set {
// We should not be resetting the parent CSP if it's already been set once - that will
// lead to leaking the original handle.
@@ -108,7 +133,12 @@ namespace Microsoft.Win32.SafeHandles {
}
}
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
+#if !FEATURE_CORESYSTEM
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
+#endif
internal void SetParentCsp(SafeCspHandle parentCsp) {
bool addedRef = false;
RuntimeHelpers.PrepareConstrainedRegions();
@@ -124,8 +154,14 @@ namespace Microsoft.Win32.SafeHandles {
}
}
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
protected abstract bool ReleaseCapiChildHandle();
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
protected override sealed bool ReleaseHandle() {
// Order is important here - we must destroy the child handle before the parent CSP
bool destroyedChild = ReleaseCapiChildHandle();
@@ -142,10 +178,17 @@ namespace Microsoft.Win32.SafeHandles {
/// <summary>
/// SafeHandle for CAPI hash algorithms (HCRYPTHASH)
/// </summary>
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#else
#pragma warning disable 618 // Have not migrated to v4 transparency yet
[System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)]
#pragma warning restore 618
+#endif
internal sealed class SafeCapiHashHandle : SafeCapiHandleBase {
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
private SafeCapiHashHandle() {
}
@@ -160,12 +203,20 @@ namespace Microsoft.Win32.SafeHandles {
}
}
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
[DllImport("advapi32")]
+#if !FEATURE_CORESYSTEM
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
[SuppressUnmanagedCodeSecurity]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool CryptDestroyHash(IntPtr hHash);
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
protected override bool ReleaseCapiChildHandle() {
return CryptDestroyHash(handle);
}
@@ -174,10 +225,17 @@ namespace Microsoft.Win32.SafeHandles {
/// <summary>
/// SafeHandle for CAPI keys (HCRYPTKEY)
/// </summary>
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#else
#pragma warning disable 618 // Have not migrated to v4 transparency yet
[System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)]
#pragma warning restore 618
+#endif
internal sealed class SafeCapiKeyHandle : SafeCapiHandleBase {
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
private SafeCapiKeyHandle() {
}
@@ -194,7 +252,11 @@ namespace Microsoft.Win32.SafeHandles {
}
[DllImport("advapi32")]
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#else
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
[SuppressUnmanagedCodeSecurity]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool CryptDestroyKey(IntPtr hKey);
@@ -203,6 +265,9 @@ namespace Microsoft.Win32.SafeHandles {
/// Make a copy of this key handle
/// </summary>
[SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands")]
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
internal SafeCapiKeyHandle Duplicate() {
Contract.Requires(!IsInvalid && !IsClosed);
Contract.Ensures(Contract.Result<SafeCapiKeyHandle>() != null && !Contract.Result<SafeCapiKeyHandle>().IsInvalid && !Contract.Result<SafeCapiKeyHandle>().IsClosed);
@@ -224,6 +289,9 @@ namespace Microsoft.Win32.SafeHandles {
return duplicate;
}
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
protected override bool ReleaseCapiChildHandle() {
return CryptDestroyKey(handle);
}
@@ -232,26 +300,43 @@ namespace Microsoft.Win32.SafeHandles {
/// <summary>
/// SafeHandle for crypto service providers (HCRYPTPROV)
/// </summary>
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#else
#pragma warning disable 618 // Have not migrated to v4 transparency yet
[System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)]
#pragma warning restore 618
+#endif
internal sealed class SafeCspHandle : SafeHandleZeroOrMinusOneIsInvalid {
[SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands")]
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
private SafeCspHandle() : base(true) {
return;
}
[DllImport("advapi32", SetLastError = true)]
+#if !FEATURE_CORESYSTEM
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
[SuppressUnmanagedCodeSecurity]
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool CryptContextAddRef(SafeCspHandle hProv,
IntPtr pdwReserved,
int dwFlags);
[DllImport("advapi32")]
+#if !FEATURE_CORESYSTEM
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
[SuppressUnmanagedCodeSecurity]
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool CryptReleaseContext(IntPtr hProv, int dwFlags);
@@ -259,6 +344,9 @@ namespace Microsoft.Win32.SafeHandles {
/// Create a second SafeCspHandle which refers to the same HCRYPTPROV
/// </summary>
[SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands")]
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
public SafeCspHandle Duplicate() {
Contract.Requires(!IsInvalid && !IsClosed);
@@ -308,6 +396,9 @@ namespace Microsoft.Win32.SafeHandles {
}
}
+#if FEATURE_CORESYSTEM
+ [System.Security.SecurityCritical]
+#endif
protected override bool ReleaseHandle() {
return CryptReleaseContext(handle, 0);
}
diff --git a/mcs/class/referencesource/System.Core/Microsoft/Win32/SafeHandles/NCryptSafeHandles.cs b/mcs/class/referencesource/System.Core/Microsoft/Win32/SafeHandles/NCryptSafeHandles.cs
index 9e09c9feb6e..ab3a042e02e 100644
--- a/mcs/class/referencesource/System.Core/Microsoft/Win32/SafeHandles/NCryptSafeHandles.cs
+++ b/mcs/class/referencesource/System.Core/Microsoft/Win32/SafeHandles/NCryptSafeHandles.cs
@@ -263,7 +263,7 @@ namespace Microsoft.Win32.SafeHandles {
T duplicate = new T();
// We need to do this operation in a CER in order to ensure that everybody's state stays consistent
- // with the current view of the world. If the state of the various handles gets out of [....], then
+ // with the current view of the world. If the state of the various handles gets out of sync, then
// we'll end up leaking since reference counts will not be set up properly.
RuntimeHelpers.PrepareConstrainedRegions();
try { }
diff --git a/mcs/class/referencesource/System.Core/Microsoft/Win32/UnsafeNativeMethods.cs b/mcs/class/referencesource/System.Core/Microsoft/Win32/UnsafeNativeMethods.cs
index fa5faaf065a..5fba558def2 100644
--- a/mcs/class/referencesource/System.Core/Microsoft/Win32/UnsafeNativeMethods.cs
+++ b/mcs/class/referencesource/System.Core/Microsoft/Win32/UnsafeNativeMethods.cs
@@ -438,7 +438,7 @@ namespace Microsoft.Win32 {
// simultaneously: overlapped IO, free the memory for the overlapped
// struct in a callback (or an EndRead method called by that callback),
// and pass in an address for the numBytesRead parameter.
- // <STRIP> See Windows Bug 105512 for details. -- </STRIP>
+ // <
[DllImport(KERNEL32, SetLastError = true)]
[SecurityCritical]
@@ -456,7 +456,7 @@ namespace Microsoft.Win32 {
// simultaneously: overlapped IO, free the memory for the overlapped
// struct in a callback (or an EndWrite method called by that callback),
// and pass in an address for the numBytesRead parameter.
- // <STRIP> See Windows Bug 105512 for details. -- </STRIP>
+ // <
[DllImport(KERNEL32, SetLastError = true)]
[SecurityCritical]
@@ -1474,19 +1474,24 @@ namespace Microsoft.Win32 {
int pageProtectionMode
);
- [DllImport(KERNEL32, CharSet = CharSet.Auto, SetLastError = true)]
+ [SecurityCritical]
+ internal static bool GlobalMemoryStatusEx(ref MEMORYSTATUSEX lpBuffer)
+ {
+ lpBuffer.dwLength = (uint)Marshal.SizeOf(typeof(MEMORYSTATUSEX));
+ return GlobalMemoryStatusExNative(ref lpBuffer);
+ }
+
+ [DllImport(KERNEL32, CharSet = CharSet.Auto, SetLastError = true, EntryPoint = "GlobalMemoryStatusEx")]
[SecurityCritical]
[return: MarshalAs(UnmanagedType.Bool)]
- internal static extern bool GlobalMemoryStatusEx([In, Out] MEMORYSTATUSEX lpBuffer);
-
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
- internal class MEMORYSTATUSEX {
+ private static extern bool GlobalMemoryStatusExNative([In, Out] ref MEMORYSTATUSEX lpBuffer);
- [System.Security.SecurityCritical]
- internal MEMORYSTATUSEX() {
- this.dwLength = (uint)Marshal.SizeOf(typeof(MEMORYSTATUSEX));
- }
+ [DllImport(KERNEL32, SetLastError = true)]
+ [SecurityCritical]
+ internal static unsafe extern bool CancelIoEx(SafeHandle handle, NativeOverlapped* lpOverlapped);
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
+ internal struct MEMORYSTATUSEX {
internal uint dwLength;
internal uint dwMemoryLoad;
internal ulong ullTotalPhys;
diff --git a/mcs/class/referencesource/System.Core/System.Core.CLR.lst.cs b/mcs/class/referencesource/System.Core/System.Core.CLR.lst.cs
index ded27b8e8b9..07150ad804b 100644
--- a/mcs/class/referencesource/System.Core/System.Core.CLR.lst.cs
+++ b/mcs/class/referencesource/System.Core/System.Core.CLR.lst.cs
@@ -1,966 +1,966 @@
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.FirstOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Needed static typing >")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Need Static Typing>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Need Static Typing>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Need static Typing>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.LongCount(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Int64", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Max(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):TResult", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Min(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>>):TResult", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.LastOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Last(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.First(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Any(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>):System.Double", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.All(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>>):TSource", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>,System.Linq.Expressions.Expression`1<System.Func`2<TAccumulate,TResult>>):TResult", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>>):TAccumulate", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Count(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Int32", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>):System.Double", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>):System.Double", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>):System.Single", Justification = "[....]:<Needed static typing>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>>):System.Nullable`1<System.Single>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>>):System.Single", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.TakeWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>>):System.Nullable`1<System.Int64>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>>):System.Nullable`1<System.Double>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>>):System.Nullable`1<System.Int32>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.ThenByDescending(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.ThenByDescending(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.TakeWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.ThenBy(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.ThenBy(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>>):System.Int64", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,S>>):System.Linq.IQueryable`1<S>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.OrderByDescending(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.OrderByDescending(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>>):System.Decimal", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>>):System.Double", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>>):System.Int32", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SkipWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Single(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SingleOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SkipWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Needed static typing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Min(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):TResult", Justification = "[....]:<Reviewed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:more specific input types needed by method which is called in body.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:more specific input types needed by method which is called in body.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:more specific input types needed by method which is called in body.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:more specific input types needed by method which is called in body.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.TakeWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.LastOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.First(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>>):TSource", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.ThenBy(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Last(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>>):System.Decimal", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>):TSource", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>):TAccumulate", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>,System.Linq.Expressions.Expression`1<System.Func`2<TAccumulate,TResult>):TResult", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>):System.Double", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>):System.Int32", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>):System.Int64", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>):System.Single", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Zip(System.Linq.IQueryable`1<TFirst>,System.Collections.Generic.IEnumerable`1<TSecond>,System.Linq.Expressions.Expression`1<System.Func`3<TFirst,TSecond,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:Needed static typing.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.ToQueryable(System.Collections.Generic.IEnumerable`1<T>):System.Linq.IQueryable`1<T>", MessageId = "Queryable", Justification = "[....]:<Queryable is new term for a structure that can be queried>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.IQueryable", MessageId = "Queryable", Justification = "[....]:<Queryable is new term for a structure that can be queried>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.IOrderedQueryable", MessageId = "Queryable", Justification = "[....]:<Queryable is new term for a structure that can be queried>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.ToQueryable(System.Collections.IEnumerable):System.Linq.IQueryable", MessageId = "Queryable", Justification = "[....]:<Queryable is new term for a structure that can be queried>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable", MessageId = "Queryable", Justification = "[....]:<Queryable is new term for a structure that can be queried>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>>):TAccumulate", MessageId = "2#func", Justification = "[....]:<FxCop not handling generic Func argument well.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>,System.Linq.Expressions.Expression`1<System.Func`2<TAccumulate,TResult>>):TResult", MessageId = "2#func", Justification = "[....]:<FxCop not handling generic Func argument well.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Enumerable.Aggregate(System.Collections.Generic.IEnumerable`1<TSource>,TAccumulate,System.Func`3<TAccumulate,TSource,TAccumulate>):TAccumulate", MessageId = "2#func", Justification = "[....]:<FxCop not handling generic Func argument well.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Enumerable.Aggregate(System.Collections.Generic.IEnumerable`1<TSource>,TAccumulate,System.Func`3<TAccumulate,TSource,TAccumulate>,System.Func`2<TAccumulate,TResult>):TResult", MessageId = "2#func", Justification = "[....]:<FxCop not handling generic Func argument well.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>>):TSource", MessageId = "1#func", Justification = "[....]:<FxCop not handling generic Func argument well.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Enumerable.Aggregate(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,TSource,TSource>):TSource", MessageId = "1#func", Justification = "[....]:<FxCop not handling generic Func argument well.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Sequence.Concat(System.Collections.Generic.IEnumerable`1<T>,System.Collections.Generic.IEnumerable`1<T>):System.Collections.Generic.IEnumerable`1<T>", MessageId = "Concat", Justification = "[....]:<Common syntax consistent with String.Concat>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Enumerable.Concat(System.Collections.Generic.IEnumerable`1<T>,System.Collections.Generic.IEnumerable`1<T>):System.Collections.Generic.IEnumerable`1<T>", MessageId = "Concat", Justification = "[....]:<Common syntax consistent with String.Concat>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.QueryExpression.Concat(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression):System.Linq.Expressions.Expression", MessageId = "Concat", Justification = "[....]:<Common syntax consistent with String.Concat>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Concat(System.Linq.IQueryable`1<T>,System.Linq.IQueryable`1<T>):System.Linq.IQueryable`1<T>", MessageId = "Concat", Justification = "[....]:<Common syntax consistent with String.Concat>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>>):TSource", MessageId = "1#func", Justification = "[....]:<Abbreviation of function used for delegates, clear meaning.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Enumerable.Aggregate(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,TSource,TSource>):TSource", MessageId = "1#func", Justification = "[....]:<Abbreviation of function used for delegates, clear meaning.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Enumerable.Aggregate(System.Collections.Generic.IEnumerable`1<TSource>,TAccumulate,System.Func`3<TAccumulate,TSource,TAccumulate>,System.Func`2<TAccumulate,TResult>):TResult", MessageId = "2#func", Justification = "[....]:<Abbreviation of function used for delegates, clear meaning.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Enumerable.Aggregate(System.Collections.Generic.IEnumerable`1<TSource>,TAccumulate,System.Func`3<TAccumulate,TSource,TAccumulate>):TAccumulate", MessageId = "2#func", Justification = "[....]:<Abbreviation of function used for delegates, clear meaning.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>>):TAccumulate", MessageId = "2#func", Justification = "[....]:<Abbreviation of function used for delegates, clear meaning.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>,System.Linq.Expressions.Expression`1<System.Func`2<TAccumulate,TResult>>):TResult", MessageId = "2#func", Justification = "[....]:<Abbreviation of function used for delegates, clear meaning.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Expressions.Expression.Funclet(System.Linq.Expressions.Funclet,System.Type):System.Linq.Expressions.FuncletExpression", MessageId = "0#funclet", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Expressions.FuncletExpression.Funclet", MessageId = "Funclet", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Expressions.ExpressionType.Funclet", MessageId = "Funclet", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Expressions.Expression.Funclet(System.Linq.Expressions.Funclet,System.Type):System.Linq.Expressions.FuncletExpression", MessageId = "Funclet", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Expressions.FuncletExpression", MessageId = "Funclet", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Expressions.Funclet", MessageId = "Funclet", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Expressions.Expression.GetFuncType(System.Type[]):System.Type", MessageId = "Func", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Linq.Expressions.resources", MessageId = "Func", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>):TSource", MessageId = "1#func", Justification = "[....]:Valid abbreviation for a variable of type Func.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>):TAccumulate", MessageId = "2#func", Justification = "[....]:Valid abbreviation for a variable of type Func.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>,System.Linq.Expressions.Expression`1<System.Func`2<TAccumulate,TResult>):TResult", MessageId = "2#func", Justification = "[....]:Valid abbreviation for a variable of type Func.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Linq.Expressions.resources", MessageId = "Linq", Justification = "[....]:<Marketing term for Language INtegrated Query>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Linq.resources", MessageId = "Linq", Justification = "[....]:<Marketing term for Language INtegrated Query>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Runtime.CompilerServices.ExecutionScope.Globals", MessageId = "Globals", Justification = "[....]:<Referring to variable is Global scope and is a reasonable complement to Locals>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Zip(System.Linq.IQueryable`1<TFirst>,System.Collections.Generic.IEnumerable`1<TSecond>,System.Linq.Expressions.Expression`1<System.Func`3<TFirst,TSecond,TResult>):System.Linq.IQueryable`1<TResult>", MessageId = "2#func", Justification = "[....]:Valid Linq API operator name")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Enumerable.Zip(System.Collections.Generic.IEnumerable`1<TFirst>,System.Collections.Generic.IEnumerable`1<TSecond>,System.Func`3<TFirst,TSecond,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", MessageId = "2#func", Justification = "[....]:Valid Linq API operator name")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IOrderedQueryable", Justification = "[....]:<Collection is not appropriate in this instance because the API needs to denote queryability>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IOrderedQueryable`1", Justification = "[....]:<Collection is not appropriate in this instance because the API needs to denote queryability>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IGrouping`2", Justification = "[....]:<Collection is not appropriate in this instance because the API needs to denote queryability>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IQueryable`1", Justification = "[....]:<Collection is not appropriate in this instance because the API needs to denote queryability>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IQueryable", Justification = "[....]:<Collection is not appropriate in this instance because the API needs to denote queryability>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.Lookup`2", Justification = "[....]:<Collection is not appropriate in this instance because the API needs to denote queryability>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IOrderedEnumerable`1", Justification = "[....]:<Collection is not appropriate in this instance because the API needs to denote queryability>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "Namespace", Target = "System.Linq.Expressions", Justification = "[....]:<Will be approved as part of architecture reveiw.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "Namespace", Target = "System.Linq", Justification = "[....]:<Will be approved as part of architecture reveiw.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1719:ParameterNamesShouldNotMatchMemberNames", Scope = "Member", Target = "System.Linq.Expressions.Expression.Funclet(System.Linq.Expressions.Funclet,System.Type):System.Linq.Expressions.FuncletExpression", MessageId = "0#", Justification = "[....]:<Expression factory function used to indicate expression type that is being created and argument is type of expression to create, these two names are meant to indicate the same thing and other choices would be confusing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1719:ParameterNamesShouldNotMatchMemberNames", Scope = "Member", Target = "System.Linq.Expressions.Expression.Property(System.Linq.Expressions.Expression,System.Reflection.PropertyInfo):System.Linq.Expressions.MemberExpression", MessageId = "1#", Justification = "[....]:<Expression factory function used to indicate expression type that is being created and argument is type of expression to create, these two names are meant to indicate the same thing and other choices would be confusing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1719:ParameterNamesShouldNotMatchMemberNames", Scope = "Member", Target = "System.Linq.Expressions.Expression.Field(System.Linq.Expressions.Expression,System.Reflection.FieldInfo):System.Linq.Expressions.MemberExpression", MessageId = "1#", Justification = "[....]:<Expression factory function used to indicate expression type that is being created and argument is type of expression to create, these two names are meant to indicate the same thing and other choices would be confusing.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression):System.Linq.IQueryable", MessageId = "expression", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression):System.Object", MessageId = "expression", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateConvertToType(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.BinaryExpression.GetOperator():System.String", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionVisitor.Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.Generate(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.Expression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeBinary(System.Linq.Expressions.ExpressionType,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression):System.Linq.Expressions.BinaryExpression", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeBinary(System.Linq.Expressions.ExpressionType,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Boolean,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLift(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.IEnumerable`1<System.Linq.Expressions.ParameterExpression>,System.Collections.Generic.IEnumerable`1<System.Linq.Expressions.Expression>):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.ValidateNewArgs(System.Reflection.ConstructorInfo,System.Collections.ObjectModel.ReadOnlyCollection`1<System.Linq.Expressions.Expression>&,System.Collections.ObjectModel.ReadOnlyCollection`1<System.Reflection.MemberInfo>):System.Void", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Boolean,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeBinary(System.Linq.Expressions.ExpressionType,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Boolean,System.Reflection.MethodInfo,System.Linq.Expressions.LambdaExpression):System.Linq.Expressions.BinaryExpression", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNumericConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Boolean,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Action`3", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Action`4", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Action`5", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Action`6", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Action`7", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Action`8", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Func`3", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Func`4", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Func`5", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Func`6", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Func`7", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Func`8", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Func`9", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Runtime.CompilerServices", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Management", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.Generate(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.Expression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Queryable.ToQueryable(System.Collections.Generic.IEnumerable`1<T>):System.Linq.IQueryable`1<T>", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Queryable.ToQueryable(System.Collections.IEnumerable):System.Linq.IQueryable", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Queryable.AsQueryable(System.Collections.Generic.IEnumerable`1<TElement>):System.Linq.IQueryable`1<TElement>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Queryable.AsQueryable(System.Collections.Generic.IEnumerable`1<TElement>):System.Linq.IQueryable`1<TElement>", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Enumerable.Where(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1002:DoNotExposeGenericLists", Scope = "Member", Target = "System.Linq.Enumerable.ToList(System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.List`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1002:DoNotExposeGenericLists", Scope = "Member", Target = "System.Linq.Enumerable.ToList(System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.List`1<TSource>", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeGenericMethod(System.Reflection.MethodInfo,System.Type[]):System.Reflection.MethodInfo", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression):S", MessageId = "expression", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression):System.Object", MessageId = "expression", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression):System.Object", MessageId = "expression", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression):System.Linq.IQueryable", MessageId = "expression", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression):System.Linq.IQueryable", MessageId = "expression", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression):System.Linq.IQueryable`1<S>", MessageId = "expression", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereArrayIterator`1.Where(System.Func`2<TSource,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", MessageId = "predicate", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereEnumerableIterator`1.Where(System.Func`2<TSource,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", MessageId = "predicate", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereListIterator`1.Where(System.Func`2<TSource,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", MessageId = "predicate", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereSelectArrayIterator`2.Select(System.Func`2<TResult,TResult2>):System.Collections.Generic.IEnumerable`1<TResult2>", MessageId = "selector", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereSelectArrayIterator`2.Where(System.Func`2<TResult,System.Boolean>):System.Collections.Generic.IEnumerable`1<TResult>", MessageId = "predicate", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereSelectEnumerableIterator`2.Select(System.Func`2<TResult,TResult2>):System.Collections.Generic.IEnumerable`1<TResult2>", MessageId = "selector", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereSelectEnumerableIterator`2.Where(System.Func`2<TResult,System.Boolean>):System.Collections.Generic.IEnumerable`1<TResult>", MessageId = "predicate", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereSelectListIterator`2.Select(System.Func`2<TResult,TResult2>):System.Collections.Generic.IEnumerable`1<TResult2>", MessageId = "selector", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereSelectListIterator`2.Where(System.Func`2<TResult,System.Boolean>):System.Collections.Generic.IEnumerable`1<TResult>", MessageId = "predicate", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Lookup`2.GetEnumerator():System.Collections.Generic.IEnumerator`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>>):TSource", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SingleOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Single(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>):System.Single", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.All(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>>):TAccumulate", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupJoin(System.Collections.Generic.IEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.OrderByDescending(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>,System.Linq.Expressions.Expression`1<System.Func`2<TAccumulate,TResult>>):TResult", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>>):System.Int32", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>>):System.Double", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SkipWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SkipWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>>):System.Decimal", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.First(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.FirstOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Last(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Count(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Int32", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Max(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):TResult", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.LastOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.LongCount(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Int64", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Lookup`2.ApplyResultSelector(System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>):System.Double", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>):System.Double", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.OrderByDescending(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Any(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupJoin(System.Collections.Generic.IEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Min(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>>):TResult", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>):System.Double", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>>):System.Int64", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.ThenBy(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.TakeWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>>):System.Single", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.TakeWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.ThenByDescending(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.ThenBy(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.ThenByDescending(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>>):System.Nullable`1<System.Int64>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>>):System.Nullable`1<System.Single>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>>):System.Nullable`1<System.Double>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>>):System.Nullable`1<System.Int32>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "[....]:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,S>>):System.Linq.IQueryable`1<S>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviewed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:reviewed.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:reviewed.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:reviewed.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:reviewed.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>>,System.Func`3<TSource,TCollection,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>):TSource", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>):TAccumulate", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>,System.Linq.Expressions.Expression`1<System.Func`2<TAccumulate,TResult>):TResult", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>):System.Double", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>):System.Int32", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>):System.Int64", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>):System.Single", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Zip(System.Linq.IQueryable`1<TFirst>,System.Collections.Generic.IEnumerable`1<TSecond>,System.Linq.Expressions.Expression`1<System.Func`3<TFirst,TSecond,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.LastOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Union(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.LongCount(System.Linq.IQueryable`1<TSource>):System.Int64", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>):System.Single", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.DefaultIfEmpty(System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>>):System.Int32", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Last(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Distinct(System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.LastOrDefault(System.Linq.IQueryable`1<TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Min(System.Linq.IQueryable`1<TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Max(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):TResult", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.ThenByDescending(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Count(System.Collections.Generic.IEnumerable`1<TSource>):System.Int32", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>>):System.Nullable`1<System.Double>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Union(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.LongCount(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Int64", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Max(System.Linq.IQueryable`1<TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Int32>):System.Double", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Count(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Int32", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Intersect(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Intersect(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>>):System.Int64", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ElementAtOrDefault(System.Collections.Generic.IEnumerable`1<TSource>,System.Int32):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Expressions.Expression.Lambda(System.Linq.Expressions.Expression,System.Linq.Expressions.ParameterExpression[]):System.Linq.Expressions.Expression`1<TDelegate>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Empty():System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Expressions.Expression.Lambda(System.Linq.Expressions.Expression,System.Collections.Generic.IEnumerable`1<System.Linq.Expressions.ParameterExpression>):System.Linq.Expressions.Expression`1<TDelegate>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Double>):System.Double", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Last(System.Linq.IQueryable`1<TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Aggregate(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,TSource,TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Distinct(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SingleOrDefault(System.Linq.IQueryable`1<TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ElementAt(System.Collections.Generic.IEnumerable`1<TSource>,System.Int32):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Single(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>>):System.Double", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>>):System.Nullable`1<System.Int64>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.OrderByDescending(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SkipWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Reverse(System.Linq.IQueryable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.OrderByDescending(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SkipWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Any(System.Collections.Generic.IEnumerable`1<TSource>):System.Boolean", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.TakeWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Skip(System.Linq.IQueryable`1<TSource>,System.Int32):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SingleOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.AsEnumerable(System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Any(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Take(System.Linq.IQueryable`1<TSource>,System.Int32):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.TakeWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Concat(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Single(System.Linq.IQueryable`1<TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.ThenBy(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>>):System.Nullable`1<System.Int32>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Int64>):System.Double", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Min(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>>):TResult", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>>):System.Nullable`1<System.Single>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.ThenByDescending(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.OfType(System.Linq.IQueryable):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>>):System.Single", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.All(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.ThenBy(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Single>):System.Single", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>>):System.Decimal", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Cast(System.Collections.IEnumerable):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SequenceEqual(System.Linq.IQueryable`1<T>,System.Linq.IQueryable`1<T>):System.Boolean", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SequenceEqual(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Boolean", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Single(System.Collections.Generic.IEnumerable`1<TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Single(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SequenceEqual(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Boolean", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SequenceEqual(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Boolean", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Skip(System.Collections.Generic.IEnumerable`1<TSource>,System.Int32):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SkipWhile(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SingleOrDefault(System.Collections.Generic.IEnumerable`1<TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SingleOrDefault(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.OrderByDescending(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Reverse(System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.OrderBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.OrderByDescending(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IOrderedEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SkipWhile(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Take(System.Collections.Generic.IEnumerable`1<TSource>,System.Int32):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.TakeWhile(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Single>):System.Single", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ThenBy(System.Linq.IOrderedEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ThenByDescending(System.Linq.IOrderedEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IOrderedEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.TakeWhile(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ThenBy(System.Linq.IOrderedEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IOrderedEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Int32>):System.Int32", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Int64>):System.Int64", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Double>):System.Double", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Int32>):System.Int32", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Int64>):System.Int64", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Double>):System.Double", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Last(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.LastOrDefault(System.Collections.Generic.IEnumerable`1<TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Join(System.Collections.Generic.IEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,TInner,TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Last(System.Collections.Generic.IEnumerable`1<TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.LongCount(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Int64", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.LastOrDefault(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.LongCount(System.Collections.Generic.IEnumerable`1<TSource>):System.Int64", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.OfType(System.Collections.IEnumerable):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.OrderBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IOrderedEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Single>):System.Single", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TResult>):TResult", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Single>):System.Single", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TResult>):TResult", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Int64>):System.Int64", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Double>):System.Double", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Int32>):System.Int32", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Count(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Int32", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.DefaultIfEmpty(System.Linq.IQueryable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Count(System.Linq.IQueryable`1<TSource>):System.Int32", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.ElementAt(System.Linq.IQueryable`1<TSource>,System.Int32):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.ElementAtOrDefault(System.Linq.IQueryable`1<TSource>,System.Int32):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Distinct(System.Linq.IQueryable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Distinct(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviwed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviwed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviwed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Cast(System.Linq.IQueryable):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Concat(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Except(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.First(System.Collections.Generic.IEnumerable`1<TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.First(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Except(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Except(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.First(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.FirstOrDefault(System.Linq.IQueryable`1<TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Except(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.First(System.Linq.IQueryable`1<TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.FirstOrDefault(System.Collections.Generic.IEnumerable`1<TSource>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.FirstOrDefault(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.FirstOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Union(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Union(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToLookup(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Linq.ILookup`2<TKey,TElement>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToLookup(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.ILookup`2<TKey,TElement>", Justification = "[....]:<reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Join(System.Collections.Generic.IEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,TInner,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>>):TSource", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Where(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Where(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToLookup(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.ILookup`2<TKey,TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToDictionary(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Collections.Generic.Dictionary`2<TKey,TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToDictionary(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.Dictionary`2<TKey,TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ThenByDescending(System.Linq.IOrderedEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToArray(System.Collections.Generic.IEnumerable`1<TSource>):TSource[]", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToList(System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.List`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToLookup(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.ILookup`2<TKey,TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToDictionary(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Collections.Generic.Dictionary`2<TKey,TElement>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToDictionary(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.Dictionary`2<TKey,TElement>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.AsQueryable(System.Collections.Generic.IEnumerable`1<TElement>):System.Linq.IQueryable`1<TElement>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupJoin(System.Collections.Generic.IEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Any(System.Linq.IQueryable`1<TSource>):System.Boolean", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Any(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>):System.Double", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>):System.Double", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>):System.Double", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.All(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Intersect(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Intersect(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupJoin(System.Collections.Generic.IEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeGenericMethod(System.Reflection.MethodInfo):System.Reflection.MethodInfo", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,S>>):System.Linq.IQueryable`1<S>", Justification = "[....]:<Reviewed>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:<Reviewed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Union(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:modern type inference permits inference here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:modern type inference permits inference here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Union(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:modern type inference permits inference here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SequenceEqual(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Boolean", Justification = "[....]:modern type inference permits inference here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:modern type inference permits inference here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SequenceEqual(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Boolean", Justification = "[....]:modern type inference permits inference here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Intersect(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:modern type inference permits inference here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:modern type inference permits inference here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Except(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:modern type inference permits inference here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Concat(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:modern type inference permits inference here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Except(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:modern type inference permits inference here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:modern type inference permits inference here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Intersect(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:modern type inference permits inference here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression):TResult", Justification = "[....]:<modern type inference permits inference here>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression):System.Linq.IQueryable`1<TElement>", Justification = "[....]:<modern type inference permits inference here>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>>,System.Func`3<TSource,TCollection,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>):TSource", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>):System.Double", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>):System.Int32", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>):System.Int64", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>):System.Single", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Zip(System.Linq.IQueryable`1<TFirst>,System.Collections.Generic.IEnumerable`1<TSecond>,System.Linq.Expressions.Expression`1<System.Func`3<TFirst,TSecond,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Zip(System.Collections.Generic.IEnumerable`1<TFirst>,System.Collections.Generic.IEnumerable`1<TSecond>,System.Func`3<TFirst,TSecond,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.HasLinkDemand(System.Reflection.MemberInfo):System.Boolean", MessageId = "member", Justification = "[....]:<This parameter will be used later.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateDecimalUnaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType):System.Void", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateArrayAssign(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateGetValue(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateGetValueOrDefault(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateArrayAccess(System.Reflection.Emit.ILGenerator,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberAccess(System.Reflection.Emit.ILGenerator,System.Reflection.MemberInfo,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateArgAccess(System.Reflection.Emit.ILGenerator,System.Int32,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateHasValue(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GetParameterTypes(System.Linq.Expressions.LambdaExpression):System.Type[]", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateConstInt(System.Reflection.Emit.ILGenerator,System.Int32):System.Void", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.EnumerableRewriter.UnwrapQueryable(System.Type):System.Type", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.EnumerableRewriter.UnwrapQueryable(System.Type):System.Type", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GetMemberType(System.Reflection.MemberInfo):System.Type", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateCastToType(System.Reflection.Emit.ILGenerator,System.Type,System.Type):System.Void", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.EnumerableRewriter.ArgTypesEqual(System.Linq.Expressions.Expression[],System.Linq.Expressions.Expression[]):System.Boolean", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.EnumerableRewriter.ArgTypesEqual(System.Linq.Expressions.Expression[],System.Linq.Expressions.Expression[]):System.Boolean", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.HasLinkDemand(System.Reflection.MemberInfo):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GetParameterTypes(System.Reflection.MethodInfo):System.Type[]", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.ReturnFromLocal(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionCompiler+StackType,System.Reflection.Emit.LocalBuilder):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.ExpressionCompiler.CompileDynamicLambda(System.Expressions.LambdaExpression):System.Delegate", MessageId = "scope", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.EnumerableRewriter.UnwrapQueryable(System.Type):System.Type", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.SystemCore_EnumerableDebugViewEmptyException.Empty.get_Empty():System.String", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNumericConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableToReferenceConversion(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateFieldAccess(System.Reflection.Emit.ILGenerator,System.Reflection.FieldInfo,System.Linq.Expressions.ExpressionCompiler+StackType):System.Void", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Runtime.CompilerServices.ExecutionScope.Parent", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Runtime.CompilerServices.StrongBox`1.Value", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Runtime.CompilerServices.ExecutionScope.Locals", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Runtime.CompilerServices.ExecutionScope.Globals", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "Member", Target = "System.Runtime.CompilerServices.IStrongBox", MessageId = "StrongBox", Justification = "[....]:<Cased correctly>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Queryable.AsQueryable(System.Collections.Generic.IEnumerable`1<T>):System.Linq.IQueryable`1<T>", Justification = "[....]:<Not explicitly cast, done in underlying IL.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Queryable.AsQueryable(System.Collections.IEnumerable):System.Linq.IQueryable", Justification = "[....]:<Not explicitly cast, done in underlying IL.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "Member", Target = "System.Linq.Expressions.StrongBox`1.System.Linq.Expressions.IStrongBox.Value.System.Linq.Expressions.IStrongBox.get_Value():System.Object", Justification = "[....]:<Hidden so that a different Value could be exposed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "Member", Target = "System.Runtime.CompilerServices.StrongBox`1.System.Runtime.CompilerServices.IStrongBox.Value.System.Runtime.CompilerServices.IStrongBox.set_Value(System.Object):System.Void", Justification = "[....]:<Hidden so that a different Value could be exposed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Linq.Expressions.SRDescriptionAttribute..ctor(System.String)", Justification = "[....]:<Initializing to false makes code cleaner.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Linq.Expressions.SR..cctor()", Justification = "[....]:<Generated code, no side effects>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType", Scope = "Member", Target = "System.Linq.Expressions.Expression.Lambda(System.Linq.Expressions.Expression,System.Linq.Expressions.ParameterExpression[]):System.Linq.Expressions.LambdaExpression", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType", Scope = "Member", Target = "System.Linq.Expressions.Expression.Lambda(System.Linq.Expressions.Expression,System.Linq.Expressions.ParameterExpression[]):System.Linq.Expressions.Expression`1<TDelegate>", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType", Scope = "Member", Target = "System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression):System.Linq.IQueryable", Justification = "[....]:<FxCop doesn't recognize different between Foo and Foot of T for return types>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType", Scope = "Member", Target = "System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression):System.Linq.IQueryable`1<TElement>", Justification = "[....]:<FxCop doesn't recognize different between Foo and Foot of T for return types>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType", Scope = "Member", Target = "System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression):TResult", Justification = "[....]:<FxCop doesn't recognize different between Foo and Foot of T for return types>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType", Scope = "Member", Target = "System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression):System.Object", Justification = "[....]:<FxCop doesn't recognize different between Foo and Foot of T for return types>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.GetFileMUIPath(System.Int32,System.String,System.Text.StringBuilder,System.Int32&,System.Text.StringBuilder,System.Int32&,System.Int64&):System.Boolean", Justification = "[....]:the entry point exists on Windows Vista. This FxCop warning occurs when analyzing system.core.dll on legacy operating systems")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.GetDynamicTimeZoneInformation(Microsoft.Win32.NativeMethods+DynamicTimeZoneInformation&):System.Int32", Justification = "[....]:the entry point exists on Windows Vista. This FxCop warning occurs when analyzing system.core.dll on legacy operating systems")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.GetFileMUIPath(System.Int32,System.String,System.Text.StringBuilder,System.Int32&,System.Text.StringBuilder,System.Int32&,System.Int64&):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.LoadString(Microsoft.Win32.SafeLibraryHandle,System.Int32,System.Text.StringBuilder,System.Int32):System.Int32", Justification = "[....]:pinvoke required by System.TimeZoneInfo")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.LoadLibraryEx(System.String,System.IntPtr,System.Int32):Microsoft.Win32.SafeLibraryHandle", Justification = "[....]:pinvoke required by System.TimeZoneInfo")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.GetTimeZoneInformation(Microsoft.Win32.NativeMethods+TimeZoneInformation&):System.Int32", Justification = "[....]:pinvoke required by System.TimeZoneInfo")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.GetDynamicTimeZoneInformation(Microsoft.Win32.NativeMethods+DynamicTimeZoneInformation&):System.Int32", Justification = "[....]:pinvoke required by System.TimeZoneInfo")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1047:DoNotDeclareProtectedMembersInSealedTypes", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeMemoryMappedViewHandle.ReleaseHandle():System.Boolean", Justification = "[....]:ReleaseHandle is declared on the base class")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1048:DoNotDeclareVirtualMembersInSealedTypes", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeMemoryMappedViewHandle.ReleaseHandle():System.Boolean", Justification = "[....]:ReleaseHandle is declared on the base class")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.TimeZoneInfo.Local.get_Local():System.TimeZoneInfo", Justification = "[....]:call to Marshal.GetLastWin32Error() is safe")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.TimeZoneInfo.GetLocalTimeZone():System.TimeZoneInfo", Justification = "[....]:call to Marshal.GetLastWin32Error() is safe")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.TimeZoneInfo.GetSystemTimeZones():System.Collections.ObjectModel.ReadOnlyCollection`1<System.TimeZoneInfo>", Justification = "[....]:GetSystemTimeZones is an expensive call; it should remain as a method instead of a property")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.TimeZoneInfo.TryGetLocalizedNameByNativeResource(System.String,System.Int32):System.String", Justification = "[....]:SafeHandle.get_IsInvalid() call is safe")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible", Scope = "Type", Target = "System.TimeZoneInfo+AdjustmentRule", Justification = "[....]:Type is nested 1) because using this class is an ultra-advanced scenario. 2) to reduce clutter in System namespace.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible", Scope = "Type", Target = "System.TimeZoneInfo+TransitionTime", Justification = "[....]:Type is nested 1) because using this class is an ultra-advanced scenario. 2) to reduce clutter in System namespace.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.ILookup`2", Justification = "[....]:<consistancy with Lookup>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Collections.Generic", Justification = "[....]:Namespace has other types in a different assembly")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1000:DoNotDeclareStaticMembersOnGenericTypes", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.CreateSetComparer():System.Collections.Generic.IEqualityComparer`1<System.Collections.Generic.HashSet`1<T>>", Justification = "[....]:Special case: expect that this will be used rarely. This provides set-of-set equality and is included for Linq compatibility.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.CreateSetComparer():System.Collections.Generic.IEqualityComparer`1<System.Collections.Generic.HashSet`1<T>>", Justification = "[....]:Special case: expect that this will be used rarely. This provides set-of-set equality and is included for Linq compatibility.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Collections.Generic.HashSet`1", Justification = "[....]:HashSetCollection or any other XCollection is unacceptable as a name for this feature")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1815:OverrideEqualsAndOperatorEqualsOnValueTypes", Scope = "Type", Target = "System.Collections.Generic.HashSet`1+Enumerator", Justification = "[....]:Consistency with other enumerators.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.IO.AnonymousPipeServerStream.GetClientHandleAsString():System.String", MessageId = "System.Runtime.InteropServices.SafeHandle.DangerousGetHandle", Justification = "[....]:currently used to pass client's handle")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1415:DeclarePInvokesCorrectly", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.WriteFile(Microsoft.Win32.SafeHandles.SafePipeHandle,System.Byte*,System.Int32,System.Int32&,System.IntPtr):System.Int32", Justification = "[....]:accepted")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.Dispose(System.Boolean):System.Void", Justification = "[....]:security policy is full demand for full trust at construction, then only subsequent demands for impersonation-related methods")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.Persist(System.Runtime.InteropServices.SafeHandle):System.Void", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.WaitForPipeDrain():System.Void", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.CheckConnectOperations():System.Void", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1415:DeclarePInvokesCorrectly", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.ReadFile(Microsoft.Win32.SafeHandles.SafePipeHandle,System.Byte*,System.Int32,System.Int32&,System.IntPtr):System.Int32", Justification = "[....]:exception here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginRead(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IAsyncResult", Justification = "[....]:method security on type is to prevent malicious code from subclassing PipeStream and binding to threadpool; this exception is ok. Will consider relaxing security more on PipeStream in the future")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1802:UseLiteralsWhereAppropriate", Scope = "Member", Target = "System.IO.Pipes.PipeStream._canUseAsync", Justification = "[....]:not necessary")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.GetAccessControl():System.IO.Pipes.PipeSecurity", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.CheckReadWriteOperations():System.Void", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.RunAsClient(System.IO.Pipes.PipeStreamImpersonationWorker):System.Void", Justification = "[....]:accepted")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.TransmissionMode.get_TransmissionMode():System.IO.Pipes.PipeTransmissionMode", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.Persist(System.String):System.Void", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "Microsoft.Win32.SafeHandles", Justification = "[....]:others exist in different assemblies")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.SafePipeHandle.get_SafePipeHandle():Microsoft.Win32.SafeHandles.SafePipeHandle", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.InBufferSize.get_InBufferSize():System.Int32", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeClientStream..ctor(System.String)", MessageId = "0#", Justification = "[....]:consistency; by design")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.Disconnect():System.Void", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.OutBufferSize.get_OutBufferSize():System.Int32", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.RemoveAuditRuleAll(System.IO.Pipes.PipeAuditRule):System.Void", Justification = "[....]:consistency; by design")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.ReadMode.set_ReadMode(System.IO.Pipes.PipeTransmissionMode):System.Void", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeClientStream.Connect(System.Int32):System.Void", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.CheckDisconnectOperations():System.Void", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeClientStream..ctor(System.IO.Pipes.PipeDirection,System.String)", MessageId = "1#", Justification = "[....]:FC agreed on this and got approval")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.Dispose(System.Boolean):System.Void", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.GetClientHandleAsString():System.String", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.ConnectNamedPipe(Microsoft.Win32.SafeHandles.SafePipeHandle,System.IntPtr):System.Boolean", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.GetImpersonationUserName():System.String", Justification = "[....]:by design")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.ResetAccessRule(System.IO.Pipes.PipeAccessRule):System.Void", Justification = "[....]:by design")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.ConnectNamedPipe(Microsoft.Win32.SafeHandles.SafePipeHandle,System.Threading.NativeOverlapped*):System.Boolean", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.NamedPipeServerStream.WaitForConnection():System.Void", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.DisconnectNamedPipe(Microsoft.Win32.SafeHandles.SafePipeHandle):System.Boolean", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.GetClientHandleAsString():System.String", Justification = "[....]:by design")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.IO.Pipes.NamedPipeClientStream..ctor(System.String,System.String,System.IO.Pipes.PipeAccessRights,System.IO.Pipes.PipeOptions,System.Security.Principal.TokenImpersonationLevel,System.IO.HandleInheritability)", MessageId = "System.ArgumentException.#ctor(System.String)", Justification = "[....]:exception ok here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.AddAuditRule(System.IO.Pipes.PipeAuditRule):System.Void", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.CheckPipePropertyOperations():System.Void", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.FormatMessage(System.Int32,System.IntPtr,System.Int32,System.Int32,System.Text.StringBuilder,System.Int32,System.IntPtr):System.Int32", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.DisposeLocalCopyOfClientHandle():System.Void", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IAsyncResult", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.IO.Pipes.PipeStream.GetAccessControl():System.IO.Pipes.PipeSecurity", Justification = "[....]:by design")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "Type", Target = "System.IO.Pipes.PipeDirection", Justification = "[....]:exception in this case")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.GetSecAttrs(System.IO.HandleInheritability):Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.WinIOError(System.Int32):System.Void", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.SetAccessRule(System.IO.Pipes.PipeAccessRule):System.Void", Justification = "[....]:by design")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.AddAccessRule(System.IO.Pipes.PipeAccessRule):System.Void", Justification = "[....]:by design")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.IsMessageComplete.get_IsMessageComplete():System.Boolean", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.RemoveAuditRule(System.IO.Pipes.PipeAuditRule):System.Boolean", Justification = "[....]:by design")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginWriteCore(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IO.Pipes.PipeStreamAsyncResult", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeClientStream..ctor(System.IO.Pipes.PipeDirection,System.String)", MessageId = "System.Int64.Parse(System.String)", Justification = "[....]:not necessary for handle")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeClientStream.NumberOfServerInstances.get_NumberOfServerInstances():System.Int32", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2217:DoNotMarkEnumsWithFlags", Scope = "Type", Target = "System.IO.Pipes.PipeOptions", Justification = "[....]:accepted")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginReadCore(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IO.Pipes.PipeStreamAsyncResult", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.SetAuditRule(System.IO.Pipes.PipeAuditRule):System.Void", Justification = "[....]:by design")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.BeginWaitForConnection(System.AsyncCallback,System.Object):System.IAsyncResult", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.RemoveAuditRuleSpecific(System.IO.Pipes.PipeAuditRule):System.Void", Justification = "[....]:by design")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.WaitNamedPipe(System.String,System.Int32):System.Boolean", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.GetNamedPipeHandleState(Microsoft.Win32.SafeHandles.SafePipeHandle,System.IntPtr,System.Int32&,System.IntPtr,System.IntPtr,System.IntPtr,System.Int32):System.Boolean", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.CreateNamedPipeClient(System.String,System.Int32,System.IO.FileShare,Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES,System.IO.FileMode,System.Int32,System.IntPtr):Microsoft.Win32.SafeHandles.SafePipeHandle", Justification = "[....]:see security policy above")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1414:MarkBooleanPInvokeArgumentsWithMarshalAs", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.SetEndOfFile(System.IntPtr):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Security.Cryptography.StrongNameSignatureInformation.HashAlgorithm.get_HashAlgorithm():System.String", Justification = "[....]:Conceptually the hash algorithm is a property of the object, not the class.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Security.Cryptography.X509Certificates", Justification = "[....]:System.Security.Cryptography.X509Certificates is also defined in other assemblies")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Security.Cryptography.X509Certificates.AuthenticodeSignatureInformation..ctor(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_SIGNER_INFO,System.Security.Cryptography.X509Certificates.X509Chain,System.Security.Cryptography.X509Certificates.TimestampInformation)", Justification = "[....]:Code clarity - we want to make it explicit that we choose to have a null time stamp in this case")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.BuildSignatureChain(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_SIGNER_INFO,System.Xml.XmlElement,System.Security.Cryptography.X509Certificates.X509RevocationFlag,System.Security.Cryptography.X509Certificates.X509RevocationMode):System.Security.Cryptography.X509Certificates.X509Chain", Justification = "[....]:Signature chain access is protected with a StorePermission demand")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.CalculateSignerPublicKeyToken(System.Security.Cryptography.AsymmetricAlgorithm):System.Byte[]", MessageId = "System.Runtime.InteropServices.SafeHandle.DangerousGetHandle", Justification = "[....]:DangerousGetHandle is called within a CER and wrapped by a AddRef/Release")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.CalculateSignerPublicKeyToken(System.Security.Cryptography.AsymmetricAlgorithm):System.Byte[]", Justification = "[....]:Safe use of these methods, not exposed to user code")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.GetTimestampInformation(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_TIMESTAMPER_INFO,System.Xml.XmlElement):System.Security.Cryptography.X509Certificates.TimestampInformation", Justification = "[....]:LinkDemand APIs are not under the control of the callers")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.VerifyAuthenticodePublisher(System.Security.Cryptography.X509Certificates.X509Certificate2):System.Security.Cryptography.SignatureVerificationResult", MessageId = "System.Runtime.InteropServices.SafeHandle.DangerousGetHandle", Justification = "[....]:DangerousGetHandle is called within a CER and wrapped by a AddRef/Release")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.VerifyAuthenticodePublisher(System.Security.Cryptography.X509Certificates.X509Certificate2):System.Security.Cryptography.SignatureVerificationResult", Justification = "[....]:Safe use of these methods, not exposed to user code")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.VerifyAuthenticodeSignature(System.Xml.XmlElement,System.Security.Cryptography.X509Certificates.X509RevocationFlag,System.Security.Cryptography.X509Certificates.X509RevocationMode):System.Security.Cryptography.X509Certificates.AuthenticodeSignatureInformation", Justification = "[....]:Safe use of these methods, not exposed to user code")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Linq.Expressions.ExecutionScope.Parent", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Linq.Expressions.StrongBox`1.Value", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Linq.Expressions.ExecutionScope.Locals", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Linq.Expressions.ExecutionScope.Globals", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "Member", Target = "System.Linq.Expressions.IStrongBox", MessageId = "StrongBox", Justification = "[....]:<Cased correctly>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Queryable.AsQueryable(System.Collections.Generic.IEnumerable`1<T>):System.Linq.IQueryable`1<T>", Justification = "[....]:<Not explicitly cast, done in underlying IL.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Queryable.AsQueryable(System.Collections.IEnumerable):System.Linq.IQueryable", Justification = "[....]:<Not explicitly cast, done in underlying IL.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "Member", Target = "System.Runtime.CompilerServices.StrongBox`1.System.Runtime.CompilerServices.IStrongBox.Value.System.Runtime.CompilerServices.IStrongBox.get_Value():System.Object", Justification = "[....]:<Hidden so that a different Value could be exposed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "Member", Target = "System.Linq.Expressions.StrongBox`1.System.Linq.Expressions.IStrongBox.Value.System.Linq.Expressions.IStrongBox.set_Value(System.Object):System.Void", Justification = "[....]:<Hidden so that a different Value could be exposed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Min(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):TResult", Justification = "[....]:<Reviewed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "[....]:<Reviewed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SequenceEqual(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>):System.Boolean", Justification = "[....]:<Reviewed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.TimeZoneInfo..cctor()", Justification = "[....]:<Reviewed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Min(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):TResult", Justification = "[....]:<Reviewed.>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.IsImplicitNumericConversion(System.Type,System.Type):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.UseVirtual(System.Reflection.MethodInfo):System.Boolean", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Threading.ReaderWriterLockSlim.MyLockHeld.get_MyLockHeld():System.Boolean", Justification = "[....]:Integration")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Linq.SystemCore_EnumerableDebugView..ctor(System.Collections.IEnumerable)", Justification = "[....]:Integration")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Threading.ReaderWriterLockSlim.MyLockHeld.get_MyLockHeld():System.Boolean", Justification = "[....]:baselining error")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Core.resources", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Core.resources", MessageId = "Diffie", Justification = "[....]:Diffie is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Core.resources", MessageId = "Dsa", Justification = "[....]:DSA is the algorithm name")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Core.resources", MessageId = "Hellman", Justification = "[....]:Hellman is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateDecryptor():System.Security.Cryptography.ICryptoTransform", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateDecryptor(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Byte[]):System.Security.Cryptography.ICryptoTransform", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateDecryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "0#", Justification = "[....]:Approved break to match framework guidelines")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateDecryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "1#", Justification = "[....]:Approved break to match framework guidelines")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateEncryptor():System.Security.Cryptography.ICryptoTransform", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateEncryptor(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Byte[]):System.Security.Cryptography.ICryptoTransform", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateEncryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "0#", Justification = "[....]:Approved break to match framework guidelines")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateEncryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "1#", Justification = "[....]:Approved break to match framework guidelines")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.Dispose(System.Boolean):System.Void", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.FindSupportedKeySizes(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Int32&):System.Security.Cryptography.KeySizes[]", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.GenerateIV():System.Void", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.GenerateKey():System.Void", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.Key.get_Key():System.Byte[]", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.Key.set_Key(System.Byte[]):System.Void", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.KeySize.set_KeySize(System.Int32):System.Void", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesManaged.CreateDecryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "0#", Justification = "[....]:Approved break to match framework guidelines")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesManaged.CreateDecryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "1#", Justification = "[....]:Approved break to match framework guidelines")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesManaged.CreateEncryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "0#", Justification = "[....]:Approved break to match framework guidelines")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesManaged.CreateEncryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "1#", Justification = "[....]:Approved break to match framework guidelines")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm.Dispose():System.Void", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm.HashCore(System.Byte[],System.Int32,System.Int32):System.Void", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm.HashFinal():System.Byte[]", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm.Initialize():System.Void", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative.BCryptSupported.get_BCryptSupported():System.Boolean", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative.GetInt32Property(T,System.String):System.Int32", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative.GetProperty(T,System.String):System.Byte[]", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative.OpenAlgorithm(System.String,System.String):Microsoft.Win32.SafeHandles.SafeBCryptAlgorithmHandle", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative+UnsafeNativeMethods.BCryptCreateHash(Microsoft.Win32.SafeHandles.SafeBCryptAlgorithmHandle,Microsoft.Win32.SafeHandles.SafeBCryptHashHandle&,System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.Int32):System.Security.Cryptography.BCryptNative+ErrorCode", Justification = "[....]:Reviewed.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative+UnsafeNativeMethods.BCryptFinishHash(Microsoft.Win32.SafeHandles.SafeBCryptHashHandle,System.Byte[],System.Int32,System.Int32):System.Security.Cryptography.BCryptNative+ErrorCode", Justification = "[....]:Reviewed.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative+UnsafeNativeMethods.BCryptHashData(Microsoft.Win32.SafeHandles.SafeBCryptHashHandle,System.Byte[],System.Int32,System.Int32):System.Security.Cryptography.BCryptNative+ErrorCode", Justification = "[....]:Reviewed.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative+UnsafeNativeMethods.BCryptOpenAlgorithmProvider(Microsoft.Win32.SafeHandles.SafeBCryptAlgorithmHandle&,System.String,System.String,System.Int32):System.Security.Cryptography.BCryptNative+ErrorCode", Justification = "[....]:Reviewed.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm.Dispose():System.Void", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.GetHashParameter(Microsoft.Win32.SafeHandles.SafeCapiHashHandle,System.Security.Cryptography.CapiNative+HashParameter):System.Byte[]", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm.HashCore(System.Byte[],System.Int32,System.Int32):System.Void", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm.HashFinal():System.Byte[]", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm.Initialize():System.Void", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.AcquireCsp(System.String,System.String,System.Security.Cryptography.CapiNative+ProviderType,System.Security.Cryptography.CapiNative+CryptAcquireContextFlags,System.Boolean):Microsoft.Win32.SafeHandles.SafeCspHandle", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.ExportSymmetricKey(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle):System.Byte[]", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.GetProviderParameterStruct(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Security.Cryptography.CapiNative+ProviderParameter,System.Security.Cryptography.CapiNative+ProviderParameterFlags):T", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.ImportSymmetricKey(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Security.Cryptography.CapiNative+AlgorithmId,System.Byte[]):Microsoft.Win32.SafeHandles.SafeCapiKeyHandle", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.SetKeyParameter(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Security.Cryptography.CapiNative+KeyParameter,System.Byte[]):System.Void", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.SetKeyParameter(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Security.Cryptography.CapiNative+KeyParameter,System.Int32):System.Void", Justification = "[....]:Safe use of these mehtods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods._AxlPublicKeyBlobToPublicKeyToken(System.Security.Cryptography.CapiNative+CRYPTOAPI_BLOB&,Microsoft.Win32.SafeHandles.SafeAxlBufferHandle&):System.Int32", Justification = "[....]:UnsafeNativeMethods class")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptAcquireContext(Microsoft.Win32.SafeHandles.SafeCspHandle&,System.String,System.String,System.Security.Cryptography.CapiNative+ProviderType,System.Security.Cryptography.CapiNative+CryptAcquireContextFlags):System.Boolean", Justification = "[....]:Reviewed usage.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptCreateHash(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Security.Cryptography.CapiNative+AlgorithmId,Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Int32,Microsoft.Win32.SafeHandles.SafeCapiHashHandle&):System.Boolean", Justification = "[....]:Reviewed usage.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptDuplicateKey(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.IntPtr,System.Int32,Microsoft.Win32.SafeHandles.SafeCapiKeyHandle&):System.Boolean", Justification = "[....]:Reviewed usage.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptExportKey(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Int32,System.Int32,System.Byte[],System.Int32&):System.Boolean", Justification = "[....]:Reviewed usage.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptGenKey(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Security.Cryptography.CapiNative+AlgorithmId,System.Security.Cryptography.CapiNative+KeyFlags,Microsoft.Win32.SafeHandles.SafeCapiKeyHandle&):System.Boolean", Justification = "[....]:Reviewed usage.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptGenRandom(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Int32,System.Byte[]):System.Boolean", Justification = "[....]:Reviewed usage.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptGetHashParam(Microsoft.Win32.SafeHandles.SafeCapiHashHandle,System.Security.Cryptography.CapiNative+HashParameter,System.Byte[],System.Int32&,System.Int32):System.Boolean", Justification = "[....]:Reviewed usage.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptGetProvParam(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Security.Cryptography.CapiNative+ProviderParameter,System.IntPtr,System.Int32&,System.Security.Cryptography.CapiNative+ProviderParameterFlags):System.Boolean", Justification = "[....]:Reviewed usage.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptHashData(Microsoft.Win32.SafeHandles.SafeCapiHashHandle,System.Byte[],System.Int32,System.Int32):System.Boolean", Justification = "[....]:Reviewed usage.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptImportKey(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Byte[],System.Int32,Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Security.Cryptography.CapiNative+KeyFlags,Microsoft.Win32.SafeHandles.SafeCapiKeyHandle&):System.Boolean", Justification = "[....]:Reviewed usage.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptSetKeyParam(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Security.Cryptography.CapiNative+KeyParameter,System.Byte[],System.Int32):System.Boolean", Justification = "[....]:Reviewed usage.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiSymmetricAlgorithm..ctor(System.Int32,System.Int32,Microsoft.Win32.SafeHandles.SafeCspHandle,Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Byte[],System.Security.Cryptography.CipherMode,System.Security.Cryptography.PaddingMode,System.Security.Cryptography.EncryptionMode)", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiSymmetricAlgorithm.SetupKey(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Byte[],System.Security.Cryptography.CipherMode,System.Int32):Microsoft.Win32.SafeHandles.SafeCapiKeyHandle", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP256", MessageId = "Diffie", Justification = "[....]:Diffie is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP256", MessageId = "Hellman", Justification = "[....]:Hellman is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP384", MessageId = "Diffie", Justification = "[....]:Diffie is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP384", MessageId = "Hellman", Justification = "[....]:Hellman is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP521", MessageId = "Diffie", Justification = "[....]:Diffie is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP521", MessageId = "Hellman", Justification = "[....]:Hellman is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDsaP256", MessageId = "Dsa", Justification = "[....]:DSA is the algorithm name")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDsaP384", MessageId = "Dsa", Justification = "[....]:DSA is the algorithm name")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDsaP521", MessageId = "Dsa", Justification = "[....]:DSA is the algorithm name")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.DiffieHellman", MessageId = "Diffie", Justification = "[....]:Diffie is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.DiffieHellman", MessageId = "Hellman", Justification = "[....]:Hellman is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.Dsa", MessageId = "Dsa", Justification = "[....]:DSA is the algorithm name")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.ECDiffieHellman", MessageId = "Diffie", Justification = "[....]:Diffie is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.ECDiffieHellman", MessageId = "Hellman", Justification = "[....]:Hellman is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.ECDsa", MessageId = "Dsa", Justification = "[....]:DSA is the algorithm name")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.Rsa", MessageId = "Rsa", Justification = "[....]:RSA is the algorithm name")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngExportPolicies", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKey", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CngKey..ctor(Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle,Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle)", Justification = "[....]:Safe use of these methods")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Scope = "Member", Target = "System.Security.Cryptography.CngKey.BuildKeyContainerPermission(System.Security.Permissions.KeyContainerPermissionFlags):System.Security.Permissions.KeyContainerPermission", Justification = "[....]:Internal method, safe for use")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CngKey.Create(System.Security.Cryptography.CngAlgorithm,System.String,System.Security.Cryptography.CngKeyCreationParameters):System.Security.Cryptography.CngKey", Justification = "[....]:Safe use of these methods")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CngKey.Dispose():System.Void", Justification = "[....]:Cleanup method, safe to call.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CngKey.Exists(System.String,System.Security.Cryptography.CngProvider,System.Security.Cryptography.CngKeyOpenOptions):System.Boolean", Justification = "[....]:Safe use of this method.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyBlobFormat", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyBlobFormat.EccPrivateBlob", MessageId = "Ecc", Justification = "[....]:Ecc is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyBlobFormat.EccPublicBlob", MessageId = "Ecc", Justification = "[....]:Ecc is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyCreationOptions", MessageId = "Cng", Justification = "[....]:Cng is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyCreationParameters", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyHandleOpenOptions", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyOpenOptions", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "Type", Target = "System.Security.Cryptography.CngKeyOpenOptions", Justification = "[....]:For usability purposes we're mapping User to value 0")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyUsages", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2217:DoNotMarkEnumsWithFlags", Scope = "Type", Target = "System.Security.Cryptography.CngKeyUsages", Justification = "[....]:Flag values are defined for interop with CNG")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngProperty", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.FirstOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "Sreekarc:<Needed static typing >")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "Sreekarc:<Need Static Typing>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "Sreekarc:<Need Static Typing>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "Sreekarc:<Need static Typing>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.LongCount(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Int64", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Max(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):TResult", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Min(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>>):TResult", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.LastOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Last(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.First(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Any(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>):System.Double", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.All(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>>):TSource", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>,System.Linq.Expressions.Expression`1<System.Func`2<TAccumulate,TResult>>):TResult", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>>):TAccumulate", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Count(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Int32", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>):System.Double", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>):System.Double", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>):System.Single", Justification = "sreekarc:<Needed static typing>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "sreekarc:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>>):System.Nullable`1<System.Single>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>>):System.Single", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.TakeWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>>):System.Nullable`1<System.Int64>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>>):System.Nullable`1<System.Int32>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.ThenByDescending(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.ThenByDescending(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.TakeWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.ThenBy(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.ThenBy(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>>):System.Int64", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,S>>):System.Linq.IQueryable`1<S>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.OrderByDescending(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.OrderByDescending(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>>):System.Decimal", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>>):System.Double", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>>):System.Int32", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SkipWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Single(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SingleOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SkipWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Needed static typing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Reviewed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "sreekarc:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "sreekarc:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Reviewed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Min(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):TResult", Justification = "wesdyer:<Reviewed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "edmaurer:more specific input types needed by method which is called in body.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "edmaurer:more specific input types needed by method which is called in body.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "edmaurer:more specific input types needed by method which is called in body.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "edmaurer:more specific input types needed by method which is called in body.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.TakeWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.LastOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.First(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>>):TSource", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.ThenBy(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Last(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>>):System.Decimal", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>):TSource", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>):TAccumulate", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>,System.Linq.Expressions.Expression`1<System.Func`2<TAccumulate,TResult>):TResult", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>):System.Double", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>):System.Int32", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>):System.Int64", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>):System.Single", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Zip(System.Linq.IQueryable`1<TFirst>,System.Collections.Generic.IEnumerable`1<TSecond>,System.Linq.Expressions.Expression`1<System.Func`3<TFirst,TSecond,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "esentuna:Needed static typing.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.ToQueryable(System.Collections.Generic.IEnumerable`1<T>):System.Linq.IQueryable`1<T>", MessageId = "Queryable", Justification = "tadam:<Queryable is new term for a structure that can be queried>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.IQueryable", MessageId = "Queryable", Justification = "tadam:<Queryable is new term for a structure that can be queried>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.IOrderedQueryable", MessageId = "Queryable", Justification = "tadam:<Queryable is new term for a structure that can be queried>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.ToQueryable(System.Collections.IEnumerable):System.Linq.IQueryable", MessageId = "Queryable", Justification = "tadam:<Queryable is new term for a structure that can be queried>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable", MessageId = "Queryable", Justification = "tadam:<Queryable is new term for a structure that can be queried>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>>):TAccumulate", MessageId = "2#func", Justification = "TAdam:<FxCop not handling generic Func argument well.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>,System.Linq.Expressions.Expression`1<System.Func`2<TAccumulate,TResult>>):TResult", MessageId = "2#func", Justification = "TAdam:<FxCop not handling generic Func argument well.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Enumerable.Aggregate(System.Collections.Generic.IEnumerable`1<TSource>,TAccumulate,System.Func`3<TAccumulate,TSource,TAccumulate>):TAccumulate", MessageId = "2#func", Justification = "TAdam:<FxCop not handling generic Func argument well.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Enumerable.Aggregate(System.Collections.Generic.IEnumerable`1<TSource>,TAccumulate,System.Func`3<TAccumulate,TSource,TAccumulate>,System.Func`2<TAccumulate,TResult>):TResult", MessageId = "2#func", Justification = "TAdam:<FxCop not handling generic Func argument well.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>>):TSource", MessageId = "1#func", Justification = "TAdam:<FxCop not handling generic Func argument well.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Enumerable.Aggregate(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,TSource,TSource>):TSource", MessageId = "1#func", Justification = "TAdam:<FxCop not handling generic Func argument well.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Sequence.Concat(System.Collections.Generic.IEnumerable`1<T>,System.Collections.Generic.IEnumerable`1<T>):System.Collections.Generic.IEnumerable`1<T>", MessageId = "Concat", Justification = "tadam:<Common syntax consistent with String.Concat>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Enumerable.Concat(System.Collections.Generic.IEnumerable`1<T>,System.Collections.Generic.IEnumerable`1<T>):System.Collections.Generic.IEnumerable`1<T>", MessageId = "Concat", Justification = "tadam:<Common syntax consistent with String.Concat>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.QueryExpression.Concat(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression):System.Linq.Expressions.Expression", MessageId = "Concat", Justification = "tadam:<Common syntax consistent with String.Concat>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Concat(System.Linq.IQueryable`1<T>,System.Linq.IQueryable`1<T>):System.Linq.IQueryable`1<T>", MessageId = "Concat", Justification = "tadam:<Common syntax consistent with String.Concat>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>>):TSource", MessageId = "1#func", Justification = "wesdyer:<Abbreviation of function used for delegates, clear meaning.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Enumerable.Aggregate(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,TSource,TSource>):TSource", MessageId = "1#func", Justification = "wesdyer:<Abbreviation of function used for delegates, clear meaning.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Enumerable.Aggregate(System.Collections.Generic.IEnumerable`1<TSource>,TAccumulate,System.Func`3<TAccumulate,TSource,TAccumulate>,System.Func`2<TAccumulate,TResult>):TResult", MessageId = "2#func", Justification = "wesdyer:<Abbreviation of function used for delegates, clear meaning.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Enumerable.Aggregate(System.Collections.Generic.IEnumerable`1<TSource>,TAccumulate,System.Func`3<TAccumulate,TSource,TAccumulate>):TAccumulate", MessageId = "2#func", Justification = "wesdyer:<Abbreviation of function used for delegates, clear meaning.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>>):TAccumulate", MessageId = "2#func", Justification = "wesdyer:<Abbreviation of function used for delegates, clear meaning.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>,System.Linq.Expressions.Expression`1<System.Func`2<TAccumulate,TResult>>):TResult", MessageId = "2#func", Justification = "wesdyer:<Abbreviation of function used for delegates, clear meaning.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Expressions.Expression.Funclet(System.Linq.Expressions.Funclet,System.Type):System.Linq.Expressions.FuncletExpression", MessageId = "0#funclet", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Expressions.FuncletExpression.Funclet", MessageId = "Funclet", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Expressions.ExpressionType.Funclet", MessageId = "Funclet", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Expressions.Expression.Funclet(System.Linq.Expressions.Funclet,System.Type):System.Linq.Expressions.FuncletExpression", MessageId = "Funclet", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Expressions.FuncletExpression", MessageId = "Funclet", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Expressions.Funclet", MessageId = "Funclet", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Expressions.Expression.GetFuncType(System.Type[]):System.Type", MessageId = "Func", Justification = "TAdam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Linq.Expressions.resources", MessageId = "Func", Justification = "TAdam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>):TSource", MessageId = "1#func", Justification = "esentuna:Valid abbreviation for a variable of type Func.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>):TAccumulate", MessageId = "2#func", Justification = "esentuna:Valid abbreviation for a variable of type Func.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>,System.Linq.Expressions.Expression`1<System.Func`2<TAccumulate,TResult>):TResult", MessageId = "2#func", Justification = "esentuna:Valid abbreviation for a variable of type Func.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Linq.Expressions.resources", MessageId = "Linq", Justification = "tadam:<Marketing term for Language INtegrated Query>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Linq.resources", MessageId = "Linq", Justification = "tadam:<Marketing term for Language INtegrated Query>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Runtime.CompilerServices.ExecutionScope.Globals", MessageId = "Globals", Justification = "tadam:<Referring to variable is Global scope and is a reasonable complement to Locals>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Queryable.Zip(System.Linq.IQueryable`1<TFirst>,System.Collections.Generic.IEnumerable`1<TSecond>,System.Linq.Expressions.Expression`1<System.Func`3<TFirst,TSecond,TResult>):System.Linq.IQueryable`1<TResult>", MessageId = "2#func", Justification = "esentuna:Valid Linq API operator name")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Linq.Enumerable.Zip(System.Collections.Generic.IEnumerable`1<TFirst>,System.Collections.Generic.IEnumerable`1<TSecond>,System.Func`3<TFirst,TSecond,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", MessageId = "2#func", Justification = "esentuna:Valid Linq API operator name")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IOrderedQueryable", Justification = "tadam:<Collection is not appropriate in this instance because the API needs to denote queryability>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IOrderedQueryable`1", Justification = "tadam:<Collection is not appropriate in this instance because the API needs to denote queryability>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IGrouping`2", Justification = "tadam:<Collection is not appropriate in this instance because the API needs to denote queryability>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IQueryable`1", Justification = "tadam:<Collection is not appropriate in this instance because the API needs to denote queryability>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IQueryable", Justification = "tadam:<Collection is not appropriate in this instance because the API needs to denote queryability>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.Lookup`2", Justification = "tadam:<Collection is not appropriate in this instance because the API needs to denote queryability>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.IOrderedEnumerable`1", Justification = "jomof:<Collection is not appropriate in this instance because the API needs to denote queryability>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "Namespace", Target = "System.Linq.Expressions", Justification = "tadam:<Will be approved as part of architecture reveiw.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "Namespace", Target = "System.Linq", Justification = "tadam:<Will be approved as part of architecture reveiw.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1719:ParameterNamesShouldNotMatchMemberNames", Scope = "Member", Target = "System.Linq.Expressions.Expression.Funclet(System.Linq.Expressions.Funclet,System.Type):System.Linq.Expressions.FuncletExpression", MessageId = "0#", Justification = "tadam:<Expression factory function used to indicate expression type that is being created and argument is type of expression to create, these two names are meant to indicate the same thing and other choices would be confusing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1719:ParameterNamesShouldNotMatchMemberNames", Scope = "Member", Target = "System.Linq.Expressions.Expression.Property(System.Linq.Expressions.Expression,System.Reflection.PropertyInfo):System.Linq.Expressions.MemberExpression", MessageId = "1#", Justification = "tadam:<Expression factory function used to indicate expression type that is being created and argument is type of expression to create, these two names are meant to indicate the same thing and other choices would be confusing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1719:ParameterNamesShouldNotMatchMemberNames", Scope = "Member", Target = "System.Linq.Expressions.Expression.Field(System.Linq.Expressions.Expression,System.Reflection.FieldInfo):System.Linq.Expressions.MemberExpression", MessageId = "1#", Justification = "tadam:<Expression factory function used to indicate expression type that is being created and argument is type of expression to create, these two names are meant to indicate the same thing and other choices would be confusing.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression):System.Linq.IQueryable", MessageId = "expression", Justification = "TAdam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression):System.Object", MessageId = "expression", Justification = "TAdam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateConvertToType(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.BinaryExpression.GetOperator():System.String", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionVisitor.Visit(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.Generate(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.Expression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeBinary(System.Linq.Expressions.ExpressionType,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression):System.Linq.Expressions.BinaryExpression", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeBinary(System.Linq.Expressions.ExpressionType,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Boolean,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLift(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Linq.Expressions.MethodCallExpression,System.Collections.Generic.IEnumerable`1<System.Linq.Expressions.ParameterExpression>,System.Collections.Generic.IEnumerable`1<System.Linq.Expressions.Expression>):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "sreekarc:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.ValidateNewArgs(System.Reflection.ConstructorInfo,System.Collections.ObjectModel.ReadOnlyCollection`1<System.Linq.Expressions.Expression>&,System.Collections.ObjectModel.ReadOnlyCollection`1<System.Reflection.MemberInfo>):System.Void", Justification = "sreekarc:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Boolean,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "sreekarc:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeBinary(System.Linq.Expressions.ExpressionType,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Boolean,System.Reflection.MethodInfo,System.Linq.Expressions.LambdaExpression):System.Linq.Expressions.BinaryExpression", Justification = "cburrows:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "cburrows:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNumericConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "cburrows:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Boolean,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "cburrows:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Action`3", Justification = "lukeh:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Action`4", Justification = "lukeh:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Action`5", Justification = "cburrows:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Action`6", Justification = "cburrows:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Action`7", Justification = "cburrows:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Action`8", Justification = "cburrows:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Func`3", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Func`4", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Func`5", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Func`6", Justification = "cburrows:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Func`7", Justification = "cburrows:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Func`8", Justification = "cburrows:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1005:AvoidExcessiveParametersOnGenericTypes", Scope = "Type", Target = "System.Func`9", Justification = "cburrows:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Runtime.CompilerServices", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Management", Justification = "cburrows:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.Generate(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.Expression,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Queryable.ToQueryable(System.Collections.Generic.IEnumerable`1<T>):System.Linq.IQueryable`1<T>", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Queryable.ToQueryable(System.Collections.IEnumerable):System.Linq.IQueryable", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Queryable.AsQueryable(System.Collections.Generic.IEnumerable`1<TElement>):System.Linq.IQueryable`1<TElement>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Queryable.AsQueryable(System.Collections.Generic.IEnumerable`1<TElement>):System.Linq.IQueryable`1<TElement>", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Enumerable.Where(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1002:DoNotExposeGenericLists", Scope = "Member", Target = "System.Linq.Enumerable.ToList(System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.List`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1002:DoNotExposeGenericLists", Scope = "Member", Target = "System.Linq.Enumerable.ToList(System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.List`1<TSource>", Justification = "TAdam:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeGenericMethod(System.Reflection.MethodInfo,System.Type[]):System.Reflection.MethodInfo", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression):S", MessageId = "expression", Justification = "sreekarc:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression):System.Object", MessageId = "expression", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression):System.Object", MessageId = "expression", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression):System.Linq.IQueryable", MessageId = "expression", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression):System.Linq.IQueryable", MessageId = "expression", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.EnumerableQuery`1.System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression):System.Linq.IQueryable`1<S>", MessageId = "expression", Justification = "sreekarc:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereArrayIterator`1.Where(System.Func`2<TSource,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", MessageId = "predicate", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereEnumerableIterator`1.Where(System.Func`2<TSource,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", MessageId = "predicate", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereListIterator`1.Where(System.Func`2<TSource,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", MessageId = "predicate", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereSelectArrayIterator`2.Select(System.Func`2<TResult,TResult2>):System.Collections.Generic.IEnumerable`1<TResult2>", MessageId = "selector", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereSelectArrayIterator`2.Where(System.Func`2<TResult,System.Boolean>):System.Collections.Generic.IEnumerable`1<TResult>", MessageId = "predicate", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereSelectEnumerableIterator`2.Select(System.Func`2<TResult,TResult2>):System.Collections.Generic.IEnumerable`1<TResult2>", MessageId = "selector", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereSelectEnumerableIterator`2.Where(System.Func`2<TResult,System.Boolean>):System.Collections.Generic.IEnumerable`1<TResult>", MessageId = "predicate", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereSelectListIterator`2.Select(System.Func`2<TResult,TResult2>):System.Collections.Generic.IEnumerable`1<TResult2>", MessageId = "selector", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.Enumerable+WhereSelectListIterator`2.Where(System.Func`2<TResult,System.Boolean>):System.Collections.Generic.IEnumerable`1<TResult>", MessageId = "predicate", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Lookup`2.GetEnumerator():System.Collections.Generic.IEnumerator`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "sreekarc:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>>):TSource", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SingleOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Single(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "sreekarc:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>):System.Single", Justification = "sreekarc:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "sreekarc:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.All(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>>):TAccumulate", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupJoin(System.Collections.Generic.IEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.OrderByDescending(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>,System.Linq.Expressions.Expression`1<System.Func`2<TAccumulate,TResult>>):TResult", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>>):System.Int32", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>>):System.Double", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SkipWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SkipWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>>):System.Decimal", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.First(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.FirstOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Last(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Count(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Int32", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Max(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):TResult", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.LastOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.LongCount(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Int64", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "Sreekarc:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "Sreekarc:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "Sreekarc:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "Sreekarc:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "Sreekarc:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "Sreekarc:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Lookup`2.ApplyResultSelector(System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "Sreekarc:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "Sreekarc:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "Sreekarc:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>):System.Double", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>):System.Double", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.OrderByDescending(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Any(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupJoin(System.Collections.Generic.IEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Min(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>>):TResult", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>):System.Double", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>>):System.Int64", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.ThenBy(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.TakeWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>>):System.Single", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.TakeWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.ThenByDescending(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.ThenBy(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.ThenByDescending(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>>):System.Nullable`1<System.Int64>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>>):System.Nullable`1<System.Single>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>>):System.Nullable`1<System.Int32>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Generics are a key component of .Net Framework 2.0 and is utilized extensively by the LINQ APIs. These APIs need to be writtn with generics in order to be flexible and allow querying on any datatype.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,S>>):System.Linq.IQueryable`1<S>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Reviewed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Reviewed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "sreekarc:<reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "sreekarc:<reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "sreekarc:<reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "edmaurer:reviewed.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "edmaurer:reviewed.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "edmaurer:reviewed.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "edmaurer:reviewed.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>>,System.Func`3<TSource,TCollection,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>):TSource", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>):TAccumulate", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,TAccumulate,System.Linq.Expressions.Expression`1<System.Func`3<TAccumulate,TSource,TAccumulate>,System.Linq.Expressions.Expression`1<System.Func`2<TAccumulate,TResult>):TResult", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>):System.Double", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>):System.Int32", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>):System.Int64", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>):System.Single", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Zip(System.Linq.IQueryable`1<TFirst>,System.Collections.Generic.IEnumerable`1<TSecond>,System.Linq.Expressions.Expression`1<System.Func`3<TFirst,TSecond,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.LastOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Union(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.LongCount(System.Linq.IQueryable`1<TSource>):System.Int64", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>):System.Single", Justification = "sreekarc:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "sreekarc:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.DefaultIfEmpty(System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>>):System.Int32", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Last(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Distinct(System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.LastOrDefault(System.Linq.IQueryable`1<TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Min(System.Linq.IQueryable`1<TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Max(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):TResult", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.ThenByDescending(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Count(System.Collections.Generic.IEnumerable`1<TSource>):System.Int32", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Union(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.LongCount(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Int64", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Max(System.Linq.IQueryable`1<TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Int32>):System.Double", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Count(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Int32", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Intersect(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Intersect(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>>):System.Int64", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ElementAtOrDefault(System.Collections.Generic.IEnumerable`1<TSource>,System.Int32):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Expressions.Expression.Lambda(System.Linq.Expressions.Expression,System.Linq.Expressions.ParameterExpression[]):System.Linq.Expressions.Expression`1<TDelegate>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Empty():System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Expressions.Expression.Lambda(System.Linq.Expressions.Expression,System.Collections.Generic.IEnumerable`1<System.Linq.Expressions.ParameterExpression>):System.Linq.Expressions.Expression`1<TDelegate>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Double>):System.Double", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Last(System.Linq.IQueryable`1<TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Aggregate(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,TSource,TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Distinct(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SingleOrDefault(System.Linq.IQueryable`1<TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ElementAt(System.Collections.Generic.IEnumerable`1<TSource>,System.Int32):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Single(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>>):System.Double", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>>):System.Nullable`1<System.Int64>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.OrderByDescending(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SkipWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Reverse(System.Linq.IQueryable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.OrderByDescending(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SkipWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Any(System.Collections.Generic.IEnumerable`1<TSource>):System.Boolean", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.TakeWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Skip(System.Linq.IQueryable`1<TSource>,System.Int32):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SingleOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.AsEnumerable(System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Any(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Take(System.Linq.IQueryable`1<TSource>,System.Int32):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.TakeWhile(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Concat(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Single(System.Linq.IQueryable`1<TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.ThenBy(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>>):System.Nullable`1<System.Int32>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Int64>):System.Double", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Min(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>>):TResult", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>>):System.Nullable`1<System.Single>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.ThenByDescending(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.OfType(System.Linq.IQueryable):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>>):System.Single", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.All(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.ThenBy(System.Linq.IOrderedQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Average(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Single>):System.Single", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>>):System.Decimal", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Cast(System.Collections.IEnumerable):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SequenceEqual(System.Linq.IQueryable`1<T>,System.Linq.IQueryable`1<T>):System.Boolean", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SequenceEqual(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Boolean", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Single(System.Collections.Generic.IEnumerable`1<TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Single(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SequenceEqual(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Boolean", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SequenceEqual(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Boolean", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Skip(System.Collections.Generic.IEnumerable`1<TSource>,System.Int32):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SkipWhile(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SingleOrDefault(System.Collections.Generic.IEnumerable`1<TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SingleOrDefault(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.OrderByDescending(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Reverse(System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.OrderBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.OrderByDescending(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IOrderedEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "sreekarc:<reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "sreekarc:<reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "sreekarc:<reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SkipWhile(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Take(System.Collections.Generic.IEnumerable`1<TSource>,System.Int32):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.TakeWhile(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Single>):System.Single", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ThenBy(System.Linq.IOrderedEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ThenByDescending(System.Linq.IOrderedEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IOrderedEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.TakeWhile(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ThenBy(System.Linq.IOrderedEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IOrderedEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Int32>):System.Int32", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Int64>):System.Int64", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Double>):System.Double", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Int32>):System.Int32", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Int64>):System.Int64", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Double>):System.Double", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Last(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.LastOrDefault(System.Collections.Generic.IEnumerable`1<TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Join(System.Collections.Generic.IEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,TInner,TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Last(System.Collections.Generic.IEnumerable`1<TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.LongCount(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Int64", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.LastOrDefault(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.LongCount(System.Collections.Generic.IEnumerable`1<TSource>):System.Int64", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.OfType(System.Collections.IEnumerable):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.OrderBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.IOrderedEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Single>):System.Single", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TResult>):TResult", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Single>):System.Single", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Max(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TResult>):TResult", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Int64>):System.Int64", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Double>):System.Double", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Min(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Int32>):System.Int32", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Count(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Int32", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.DefaultIfEmpty(System.Linq.IQueryable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Count(System.Linq.IQueryable`1<TSource>):System.Int32", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.ElementAt(System.Linq.IQueryable`1<TSource>,System.Int32):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.ElementAtOrDefault(System.Linq.IQueryable`1<TSource>,System.Int32):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Distinct(System.Linq.IQueryable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Distinct(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "Sreekarc:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "Sreekarc:<Reviwed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "Sreekarc:<Reviwed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "Sreekarc:<Reviwed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Cast(System.Linq.IQueryable):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Concat(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Double>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Except(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.First(System.Collections.Generic.IEnumerable`1<TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.First(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "Sreekarc:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TSource>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "Sreekarc:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "Sreekarc:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>,System.Linq.Expressions.Expression`1<System.Func`3<TKey,System.Collections.Generic.IEnumerable`1<TElement>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "Sreekarc:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Except(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Linq.IQueryable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Except(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.First(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.FirstOrDefault(System.Linq.IQueryable`1<TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Except(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.First(System.Linq.IQueryable`1<TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.FirstOrDefault(System.Collections.Generic.IEnumerable`1<TSource>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.FirstOrDefault(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.FirstOrDefault(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Union(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Union(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToLookup(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Linq.ILookup`2<TKey,TElement>", Justification = "sreekarc:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToLookup(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.ILookup`2<TKey,TElement>", Justification = "sreekarc:<reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Join(System.Collections.Generic.IEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,TInner,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>>):TSource", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Where(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Where(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Boolean>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToLookup(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.ILookup`2<TKey,TSource>", Justification = "sreekarc:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToDictionary(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Collections.Generic.Dictionary`2<TKey,TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToDictionary(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.Dictionary`2<TKey,TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ThenByDescending(System.Linq.IOrderedEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Collections.Generic.IComparer`1<TKey>):System.Linq.IOrderedEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToArray(System.Collections.Generic.IEnumerable`1<TSource>):TSource[]", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToList(System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.List`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToLookup(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Linq.ILookup`2<TKey,TSource>", Justification = "sreekarc:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToDictionary(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Collections.Generic.Dictionary`2<TKey,TElement>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.ToDictionary(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.Dictionary`2<TKey,TElement>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.AsQueryable(System.Collections.Generic.IEnumerable`1<TElement>):System.Linq.IQueryable`1<TElement>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupJoin(System.Collections.Generic.IEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Any(System.Linq.IQueryable`1<TSource>):System.Boolean", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Any(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>):System.Double", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>):System.Double", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Average(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>):System.Double", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.All(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Boolean", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Intersect(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Intersect(System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Collections.Generic.IEnumerable`1<TSource>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupJoin(System.Collections.Generic.IEnumerable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Func`2<TOuter,TKey>,System.Func`2<TInner,TKey>,System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeGenericMethod(System.Reflection.MethodInfo):System.Reflection.MethodInfo", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<T>,System.Linq.Expressions.Expression`1<System.Func`2<T,S>>):System.Linq.IQueryable`1<S>", Justification = "wesdyer:<Reviewed>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Reviewed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,System.Collections.Generic.IEnumerable`1<TCollection>,System.Func`3<TSource,TCollection,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "wesdyer:<Reviewed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Union(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "edmaurer:modern type inference permits inference here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "edmaurer:modern type inference permits inference here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Union(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "edmaurer:modern type inference permits inference here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SequenceEqual(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Boolean", Justification = "edmaurer:modern type inference permits inference here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "edmaurer:modern type inference permits inference here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SequenceEqual(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Boolean", Justification = "edmaurer:modern type inference permits inference here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Intersect(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "edmaurer:modern type inference permits inference here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "edmaurer:modern type inference permits inference here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Except(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>,System.Collections.Generic.IEqualityComparer`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "edmaurer:modern type inference permits inference here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Concat(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "edmaurer:modern type inference permits inference here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Except(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "edmaurer:modern type inference permits inference here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupJoin(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,System.Collections.Generic.IEnumerable`1<TInner>TResult>>,System.Collections.Generic.IEqualityComparer`1<TKey>):System.Linq.IQueryable`1<TResult>", Justification = "edmaurer:modern type inference permits inference here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Intersect(System.Linq.IQueryable`1<TSource>,System.Collections.Generic.IEnumerable`1<TSource>):System.Linq.IQueryable`1<TSource>", Justification = "edmaurer:modern type inference permits inference here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression):TResult", Justification = "sreekarc:<modern type inference permits inference here>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression):System.Linq.IQueryable`1<TElement>", Justification = "sreekarc:<modern type inference permits inference here>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TSource>>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.GroupBy(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`2<TSource,TKey>,System.Func`2<TSource,TElement>):System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<TKey,TElement>>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable`1<TSource>,System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>>,System.Func`3<TSource,TCollection,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Aggregate(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TSource,TSource>):TSource", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TSource>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.GroupBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TElement>):System.Linq.IQueryable`1<System.Linq.IGrouping`2<TKey,TElement>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Join(System.Linq.IQueryable`1<TOuter>,System.Collections.Generic.IEnumerable`1<TInner>,System.Linq.Expressions.Expression`1<System.Func`2<TOuter,TKey>,System.Linq.Expressions.Expression`1<System.Func`2<TInner,TKey>,System.Linq.Expressions.Expression`1<System.Func`3<TOuter,TInner,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.OrderBy(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TKey>):System.Linq.IOrderedQueryable`1<TSource>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SelectMany(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Collections.Generic.IEnumerable`1<TCollection>>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,TCollection,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Decimal>):System.Decimal", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Double>):System.Double", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int32>):System.Int32", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Int64>):System.Int64", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Decimal>>):System.Nullable`1<System.Decimal>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Double>>):System.Nullable`1<System.Double>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int32>>):System.Nullable`1<System.Int32>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Int64>>):System.Nullable`1<System.Int64>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Nullable`1<System.Single>>):System.Nullable`1<System.Single>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Sum(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Single>):System.Single", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Where(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`3<TSource,System.Int32,System.Boolean>):System.Linq.IQueryable`1<TSource>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.Zip(System.Linq.IQueryable`1<TFirst>,System.Collections.Generic.IEnumerable`1<TSecond>,System.Linq.Expressions.Expression`1<System.Func`3<TFirst,TSecond,TResult>):System.Linq.IQueryable`1<TResult>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Enumerable.Zip(System.Collections.Generic.IEnumerable`1<TFirst>,System.Collections.Generic.IEnumerable`1<TSecond>,System.Func`3<TFirst,TSecond,TResult>):System.Collections.Generic.IEnumerable`1<TResult>", Justification = "esentuna:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.HasLinkDemand(System.Reflection.MemberInfo):System.Boolean", MessageId = "member", Justification = "jomof:<This parameter will be used later.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateDecimalUnaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType):System.Void", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateArrayAssign(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateGetValue(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateGetValueOrDefault(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateArrayAccess(System.Reflection.Emit.ILGenerator,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateMemberAccess(System.Reflection.Emit.ILGenerator,System.Reflection.MemberInfo,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateArgAccess(System.Reflection.Emit.ILGenerator,System.Int32,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateHasValue(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GetParameterTypes(System.Linq.Expressions.LambdaExpression):System.Type[]", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateConstInt(System.Reflection.Emit.ILGenerator,System.Int32):System.Void", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.EnumerableRewriter.UnwrapQueryable(System.Type):System.Type", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.EnumerableRewriter.UnwrapQueryable(System.Type):System.Type", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GetMemberType(System.Reflection.MemberInfo):System.Type", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateCastToType(System.Reflection.Emit.ILGenerator,System.Type,System.Type):System.Void", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.EnumerableRewriter.ArgTypesEqual(System.Linq.Expressions.Expression[],System.Linq.Expressions.Expression[]):System.Boolean", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.EnumerableRewriter.ArgTypesEqual(System.Linq.Expressions.Expression[],System.Linq.Expressions.Expression[]):System.Boolean", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.HasLinkDemand(System.Reflection.MemberInfo):System.Boolean", Justification = "jomof:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GetParameterTypes(System.Reflection.MethodInfo):System.Type[]", Justification = "jomof:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.ReturnFromLocal(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionCompiler+StackType,System.Reflection.Emit.LocalBuilder):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "jomof:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", Scope = "Member", Target = "System.Linq.ExpressionCompiler.CompileDynamicLambda(System.Expressions.LambdaExpression):System.Delegate", MessageId = "scope", Justification = "petes:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.EnumerableRewriter.UnwrapQueryable(System.Type):System.Type", Justification = "TAdam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.SystemCore_EnumerableDebugViewEmptyException.Empty.get_Empty():System.String", Justification = "sreekarc:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNumericConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "cburrows:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableToReferenceConversion(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "cburrows:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateFieldAccess(System.Reflection.Emit.ILGenerator,System.Reflection.FieldInfo,System.Linq.Expressions.ExpressionCompiler+StackType):System.Void", Justification = "EricLi:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Runtime.CompilerServices.ExecutionScope.Parent", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Runtime.CompilerServices.StrongBox`1.Value", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Runtime.CompilerServices.ExecutionScope.Locals", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Runtime.CompilerServices.ExecutionScope.Globals", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "Member", Target = "System.Runtime.CompilerServices.IStrongBox", MessageId = "StrongBox", Justification = "tadam:<Cased correctly>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Queryable.AsQueryable(System.Collections.Generic.IEnumerable`1<T>):System.Linq.IQueryable`1<T>", Justification = "tadam:<Not explicitly cast, done in underlying IL.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Queryable.AsQueryable(System.Collections.IEnumerable):System.Linq.IQueryable", Justification = "tadam:<Not explicitly cast, done in underlying IL.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "Member", Target = "System.Linq.Expressions.StrongBox`1.System.Linq.Expressions.IStrongBox.Value.System.Linq.Expressions.IStrongBox.get_Value():System.Object", Justification = "tadam:<Hidden so that a different Value could be exposed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "Member", Target = "System.Runtime.CompilerServices.StrongBox`1.System.Runtime.CompilerServices.IStrongBox.Value.System.Runtime.CompilerServices.IStrongBox.set_Value(System.Object):System.Void", Justification = "tadam:<Hidden so that a different Value could be exposed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Linq.Expressions.SRDescriptionAttribute..ctor(System.String)", Justification = "TAdam:<Initializing to false makes code cleaner.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Linq.Expressions.SR..cctor()", Justification = "TAdam:<Generated code, no side effects>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType", Scope = "Member", Target = "System.Linq.Expressions.Expression.Lambda(System.Linq.Expressions.Expression,System.Linq.Expressions.ParameterExpression[]):System.Linq.Expressions.LambdaExpression", Justification = "TAdam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType", Scope = "Member", Target = "System.Linq.Expressions.Expression.Lambda(System.Linq.Expressions.Expression,System.Linq.Expressions.ParameterExpression[]):System.Linq.Expressions.Expression`1<TDelegate>", Justification = "TAdam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType", Scope = "Member", Target = "System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression):System.Linq.IQueryable", Justification = "sreekarc:<FxCop doesn't recognize different between Foo and Foot of T for return types>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType", Scope = "Member", Target = "System.Linq.IQueryProvider.CreateQuery(System.Linq.Expressions.Expression):System.Linq.IQueryable`1<TElement>", Justification = "sreekarc:<FxCop doesn't recognize different between Foo and Foot of T for return types>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType", Scope = "Member", Target = "System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression):TResult", Justification = "sreekarc:<FxCop doesn't recognize different between Foo and Foot of T for return types>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType", Scope = "Member", Target = "System.Linq.IQueryProvider.Execute(System.Linq.Expressions.Expression):System.Object", Justification = "sreekarc:<FxCop doesn't recognize different between Foo and Foot of T for return types>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.GetFileMUIPath(System.Int32,System.String,System.Text.StringBuilder,System.Int32&,System.Text.StringBuilder,System.Int32&,System.Int64&):System.Boolean", Justification = "jfree:the entry point exists on Windows Vista. This FxCop warning occurs when analyzing system.core.dll on legacy operating systems")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.GetDynamicTimeZoneInformation(Microsoft.Win32.NativeMethods+DynamicTimeZoneInformation&):System.Int32", Justification = "jfree:the entry point exists on Windows Vista. This FxCop warning occurs when analyzing system.core.dll on legacy operating systems")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.GetFileMUIPath(System.Int32,System.String,System.Text.StringBuilder,System.Int32&,System.Text.StringBuilder,System.Int32&,System.Int64&):System.Boolean", Justification = "jfree:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.LoadString(Microsoft.Win32.SafeLibraryHandle,System.Int32,System.Text.StringBuilder,System.Int32):System.Int32", Justification = "jfree:pinvoke required by System.TimeZoneInfo")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.LoadLibraryEx(System.String,System.IntPtr,System.Int32):Microsoft.Win32.SafeLibraryHandle", Justification = "jfree:pinvoke required by System.TimeZoneInfo")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.GetTimeZoneInformation(Microsoft.Win32.NativeMethods+TimeZoneInformation&):System.Int32", Justification = "jfree:pinvoke required by System.TimeZoneInfo")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.GetDynamicTimeZoneInformation(Microsoft.Win32.NativeMethods+DynamicTimeZoneInformation&):System.Int32", Justification = "jfree:pinvoke required by System.TimeZoneInfo")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1047:DoNotDeclareProtectedMembersInSealedTypes", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeMemoryMappedViewHandle.ReleaseHandle():System.Boolean", Justification = "jfree:ReleaseHandle is declared on the base class")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1048:DoNotDeclareVirtualMembersInSealedTypes", Scope = "Member", Target = "Microsoft.Win32.SafeHandles.SafeMemoryMappedViewHandle.ReleaseHandle():System.Boolean", Justification = "jfree:ReleaseHandle is declared on the base class")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.TimeZoneInfo.Local.get_Local():System.TimeZoneInfo", Justification = "jfree:call to Marshal.GetLastWin32Error() is safe")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.TimeZoneInfo.GetLocalTimeZone():System.TimeZoneInfo", Justification = "jfree:call to Marshal.GetLastWin32Error() is safe")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.TimeZoneInfo.GetSystemTimeZones():System.Collections.ObjectModel.ReadOnlyCollection`1<System.TimeZoneInfo>", Justification = "jfree:GetSystemTimeZones is an expensive call; it should remain as a method instead of a property")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.TimeZoneInfo.TryGetLocalizedNameByNativeResource(System.String,System.Int32):System.String", Justification = "jfree:SafeHandle.get_IsInvalid() call is safe")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible", Scope = "Type", Target = "System.TimeZoneInfo+AdjustmentRule", Justification = "jfree:Type is nested 1) because using this class is an ultra-advanced scenario. 2) to reduce clutter in System namespace.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible", Scope = "Type", Target = "System.TimeZoneInfo+TransitionTime", Justification = "jfree:Type is nested 1) because using this class is an ultra-advanced scenario. 2) to reduce clutter in System namespace.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Linq.ILookup`2", Justification = "sreekarc:<consistancy with Lookup>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Collections.Generic", Justification = "kimhamil:Namespace has other types in a different assembly")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1000:DoNotDeclareStaticMembersOnGenericTypes", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.CreateSetComparer():System.Collections.Generic.IEqualityComparer`1<System.Collections.Generic.HashSet`1<T>>", Justification = "kimhamil:Special case: expect that this will be used rarely. This provides set-of-set equality and is included for Linq compatibility.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Collections.Generic.HashSet`1.CreateSetComparer():System.Collections.Generic.IEqualityComparer`1<System.Collections.Generic.HashSet`1<T>>", Justification = "kimhamil:Special case: expect that this will be used rarely. This provides set-of-set equality and is included for Linq compatibility.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "Member", Target = "System.Collections.Generic.HashSet`1", Justification = "kimhamil:HashSetCollection or any other XCollection is unacceptable as a name for this feature")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1815:OverrideEqualsAndOperatorEqualsOnValueTypes", Scope = "Type", Target = "System.Collections.Generic.HashSet`1+Enumerator", Justification = "kimhamil:Consistency with other enumerators.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.IO.AnonymousPipeServerStream.GetClientHandleAsString():System.String", MessageId = "System.Runtime.InteropServices.SafeHandle.DangerousGetHandle", Justification = "kimhamil:currently used to pass client's handle")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1415:DeclarePInvokesCorrectly", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.WriteFile(Microsoft.Win32.SafeHandles.SafePipeHandle,System.Byte*,System.Int32,System.Int32&,System.IntPtr):System.Int32", Justification = "kimhamil:accepted")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.Dispose(System.Boolean):System.Void", Justification = "kimhamil:security policy is full demand for full trust at construction, then only subsequent demands for impersonation-related methods")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.Persist(System.Runtime.InteropServices.SafeHandle):System.Void", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.WaitForPipeDrain():System.Void", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.CheckConnectOperations():System.Void", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1415:DeclarePInvokesCorrectly", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.ReadFile(Microsoft.Win32.SafeHandles.SafePipeHandle,System.Byte*,System.Int32,System.Int32&,System.IntPtr):System.Int32", Justification = "kimhamil:exception here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginRead(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IAsyncResult", Justification = "kimhamil:method security on type is to prevent malicious code from subclassing PipeStream and binding to threadpool; this exception is ok. Will consider relaxing security more on PipeStream in the future")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1802:UseLiteralsWhereAppropriate", Scope = "Member", Target = "System.IO.Pipes.PipeStream._canUseAsync", Justification = "kimhamil:not necessary")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.GetAccessControl():System.IO.Pipes.PipeSecurity", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.CheckReadWriteOperations():System.Void", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.RunAsClient(System.IO.Pipes.PipeStreamImpersonationWorker):System.Void", Justification = "kimhamil:accepted")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.TransmissionMode.get_TransmissionMode():System.IO.Pipes.PipeTransmissionMode", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.Persist(System.String):System.Void", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "Microsoft.Win32.SafeHandles", Justification = "kimhamil:others exist in different assemblies")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.SafePipeHandle.get_SafePipeHandle():Microsoft.Win32.SafeHandles.SafePipeHandle", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.InBufferSize.get_InBufferSize():System.Int32", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeClientStream..ctor(System.String)", MessageId = "0#", Justification = "kimhamil:consistency; by design")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.Disconnect():System.Void", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.OutBufferSize.get_OutBufferSize():System.Int32", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.RemoveAuditRuleAll(System.IO.Pipes.PipeAuditRule):System.Void", Justification = "kimhamil:consistency; by design")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.ReadMode.set_ReadMode(System.IO.Pipes.PipeTransmissionMode):System.Void", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeClientStream.Connect(System.Int32):System.Void", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.CheckDisconnectOperations():System.Void", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeClientStream..ctor(System.IO.Pipes.PipeDirection,System.String)", MessageId = "1#", Justification = "kimhamil:FC agreed on this and got approval")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.Dispose(System.Boolean):System.Void", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.GetClientHandleAsString():System.String", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.ConnectNamedPipe(Microsoft.Win32.SafeHandles.SafePipeHandle,System.IntPtr):System.Boolean", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.GetImpersonationUserName():System.String", Justification = "kimhamil:by design")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.ResetAccessRule(System.IO.Pipes.PipeAccessRule):System.Void", Justification = "kimhamil:by design")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.ConnectNamedPipe(Microsoft.Win32.SafeHandles.SafePipeHandle,System.Threading.NativeOverlapped*):System.Boolean", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.NamedPipeServerStream.WaitForConnection():System.Void", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.DisconnectNamedPipe(Microsoft.Win32.SafeHandles.SafePipeHandle):System.Boolean", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.GetClientHandleAsString():System.String", Justification = "kimhamil:by design")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.IO.Pipes.NamedPipeClientStream..ctor(System.String,System.String,System.IO.Pipes.PipeAccessRights,System.IO.Pipes.PipeOptions,System.Security.Principal.TokenImpersonationLevel,System.IO.HandleInheritability)", MessageId = "System.ArgumentException.#ctor(System.String)", Justification = "kimhamil:exception ok here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.AddAuditRule(System.IO.Pipes.PipeAuditRule):System.Void", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.CheckPipePropertyOperations():System.Void", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.FormatMessage(System.Int32,System.IntPtr,System.Int32,System.Int32,System.Text.StringBuilder,System.Int32,System.IntPtr):System.Int32", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeServerStream.DisposeLocalCopyOfClientHandle():System.Void", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IAsyncResult", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.IO.Pipes.PipeStream.GetAccessControl():System.IO.Pipes.PipeSecurity", Justification = "kimhamil:by design")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "Type", Target = "System.IO.Pipes.PipeDirection", Justification = "kimhamil:exception in this case")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.GetSecAttrs(System.IO.HandleInheritability):Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.WinIOError(System.Int32):System.Void", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.SetAccessRule(System.IO.Pipes.PipeAccessRule):System.Void", Justification = "kimhamil:by design")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.AddAccessRule(System.IO.Pipes.PipeAccessRule):System.Void", Justification = "kimhamil:by design")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.IsMessageComplete.get_IsMessageComplete():System.Boolean", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.RemoveAuditRule(System.IO.Pipes.PipeAuditRule):System.Boolean", Justification = "kimhamil:by design")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginWriteCore(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IO.Pipes.PipeStreamAsyncResult", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "Member", Target = "System.IO.Pipes.AnonymousPipeClientStream..ctor(System.IO.Pipes.PipeDirection,System.String)", MessageId = "System.Int64.Parse(System.String)", Justification = "kimhamil:not necessary for handle")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeClientStream.NumberOfServerInstances.get_NumberOfServerInstances():System.Int32", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2217:DoNotMarkEnumsWithFlags", Scope = "Type", Target = "System.IO.Pipes.PipeOptions", Justification = "kimhamil:accepted")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.PipeStream.BeginReadCore(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object):System.IO.Pipes.PipeStreamAsyncResult", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.SetAuditRule(System.IO.Pipes.PipeAuditRule):System.Void", Justification = "kimhamil:by design")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.Pipes.NamedPipeServerStream.BeginWaitForConnection(System.AsyncCallback,System.Object):System.IAsyncResult", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.IO.Pipes.PipeSecurity.RemoveAuditRuleSpecific(System.IO.Pipes.PipeAuditRule):System.Void", Justification = "kimhamil:by design")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.WaitNamedPipe(System.String,System.Int32):System.Boolean", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.GetNamedPipeHandleState(Microsoft.Win32.SafeHandles.SafePipeHandle,System.IntPtr,System.Int32&,System.IntPtr,System.IntPtr,System.IntPtr,System.Int32):System.Boolean", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.CreateNamedPipeClient(System.String,System.Int32,System.IO.FileShare,Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES,System.IO.FileMode,System.Int32,System.IntPtr):Microsoft.Win32.SafeHandles.SafePipeHandle", Justification = "kimhamil:see security policy above")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1414:MarkBooleanPInvokeArgumentsWithMarshalAs", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.SetEndOfFile(System.IntPtr):System.Boolean", Justification = "kimhamil:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Security.Cryptography.StrongNameSignatureInformation.HashAlgorithm.get_HashAlgorithm():System.String", Justification = "ShawnFa:Conceptually the hash algorithm is a property of the object, not the class.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Security.Cryptography.X509Certificates", Justification = "ShawnFa:System.Security.Cryptography.X509Certificates is also defined in other assemblies")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Security.Cryptography.X509Certificates.AuthenticodeSignatureInformation..ctor(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_SIGNER_INFO,System.Security.Cryptography.X509Certificates.X509Chain,System.Security.Cryptography.X509Certificates.TimestampInformation)", Justification = "ShawnFa:Code clarity - we want to make it explicit that we choose to have a null time stamp in this case")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.BuildSignatureChain(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_SIGNER_INFO,System.Xml.XmlElement,System.Security.Cryptography.X509Certificates.X509RevocationFlag,System.Security.Cryptography.X509Certificates.X509RevocationMode):System.Security.Cryptography.X509Certificates.X509Chain", Justification = "ShawnFa:Signature chain access is protected with a StorePermission demand")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.CalculateSignerPublicKeyToken(System.Security.Cryptography.AsymmetricAlgorithm):System.Byte[]", MessageId = "System.Runtime.InteropServices.SafeHandle.DangerousGetHandle", Justification = "ShawnFa:DangerousGetHandle is called within a CER and wrapped by a AddRef/Release")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.CalculateSignerPublicKeyToken(System.Security.Cryptography.AsymmetricAlgorithm):System.Byte[]", Justification = "ShawnFa:Safe use of these methods, not exposed to user code")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.GetTimestampInformation(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_TIMESTAMPER_INFO,System.Xml.XmlElement):System.Security.Cryptography.X509Certificates.TimestampInformation", Justification = "ShawnFa:LinkDemand APIs are not under the control of the callers")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.VerifyAuthenticodePublisher(System.Security.Cryptography.X509Certificates.X509Certificate2):System.Security.Cryptography.SignatureVerificationResult", MessageId = "System.Runtime.InteropServices.SafeHandle.DangerousGetHandle", Justification = "ShawnFa:DangerousGetHandle is called within a CER and wrapped by a AddRef/Release")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.VerifyAuthenticodePublisher(System.Security.Cryptography.X509Certificates.X509Certificate2):System.Security.Cryptography.SignatureVerificationResult", Justification = "ShawnFa:Safe use of these methods, not exposed to user code")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.VerifyAuthenticodeSignature(System.Xml.XmlElement,System.Security.Cryptography.X509Certificates.X509RevocationFlag,System.Security.Cryptography.X509Certificates.X509RevocationMode):System.Security.Cryptography.X509Certificates.AuthenticodeSignatureInformation", Justification = "ShawnFa:Safe use of these methods, not exposed to user code")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Linq.Expressions.ExecutionScope.Parent", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Linq.Expressions.StrongBox`1.Value", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Linq.Expressions.ExecutionScope.Locals", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "Member", Target = "System.Linq.Expressions.ExecutionScope.Globals", Justification = "tadam:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "Member", Target = "System.Linq.Expressions.IStrongBox", MessageId = "StrongBox", Justification = "tadam:<Cased correctly>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Queryable.AsQueryable(System.Collections.Generic.IEnumerable`1<T>):System.Linq.IQueryable`1<T>", Justification = "tadam:<Not explicitly cast, done in underlying IL.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Linq.Queryable.AsQueryable(System.Collections.IEnumerable):System.Linq.IQueryable", Justification = "tadam:<Not explicitly cast, done in underlying IL.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "Member", Target = "System.Runtime.CompilerServices.StrongBox`1.System.Runtime.CompilerServices.IStrongBox.Value.System.Runtime.CompilerServices.IStrongBox.get_Value():System.Object", Justification = "tadam:<Hidden so that a different Value could be exposed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "Member", Target = "System.Linq.Expressions.StrongBox`1.System.Linq.Expressions.IStrongBox.Value.System.Linq.Expressions.IStrongBox.set_Value(System.Object):System.Void", Justification = "tadam:<Hidden so that a different Value could be exposed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Reviewed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Min(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):TResult", Justification = "wesdyer:<Reviewed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "Member", Target = "System.Linq.Queryable.Select(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>>):System.Linq.IQueryable`1<TResult>", Justification = "wesdyer:<Reviewed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "Member", Target = "System.Linq.Queryable.SequenceEqual(System.Linq.IQueryable`1<TSource>,System.Linq.IQueryable`1<TSource>):System.Boolean", Justification = "wesdyer:<Reviewed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.TimeZoneInfo..cctor()", Justification = "wesdyer:<Reviewed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "Member", Target = "System.Linq.Queryable.Min(System.Linq.IQueryable`1<TSource>,System.Linq.Expressions.Expression`1<System.Func`2<TSource,TResult>):TResult", Justification = "wesdyer:<Reviewed.>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.IsImplicitNumericConversion(System.Type,System.Type):System.Boolean", Justification = "jomof:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.UseVirtual(System.Reflection.MethodInfo):System.Boolean", Justification = "jomof:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Threading.ReaderWriterLockSlim.MyLockHeld.get_MyLockHeld():System.Boolean", Justification = "jomof:Integration")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Linq.SystemCore_EnumerableDebugView..ctor(System.Collections.IEnumerable)", Justification = "vcgaunt:Integration")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.Threading.ReaderWriterLockSlim.MyLockHeld.get_MyLockHeld():System.Boolean", Justification = "briangru:baselining error")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Core.resources", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Core.resources", MessageId = "Diffie", Justification = "ShawnFa:Diffie is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Core.resources", MessageId = "Dsa", Justification = "ShawnFa:DSA is the algorithm name")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "Resource", Target = "Resource: Module: system.core.dll : System.Core.resources", MessageId = "Hellman", Justification = "ShawnFa:Hellman is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateDecryptor():System.Security.Cryptography.ICryptoTransform", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateDecryptor(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Byte[]):System.Security.Cryptography.ICryptoTransform", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateDecryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "0#", Justification = "ShawnFa:Approved break to match framework guidelines")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateDecryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "1#", Justification = "ShawnFa:Approved break to match framework guidelines")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateEncryptor():System.Security.Cryptography.ICryptoTransform", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateEncryptor(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Byte[]):System.Security.Cryptography.ICryptoTransform", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateEncryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "0#", Justification = "ShawnFa:Approved break to match framework guidelines")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.CreateEncryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "1#", Justification = "ShawnFa:Approved break to match framework guidelines")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.Dispose(System.Boolean):System.Void", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.FindSupportedKeySizes(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Int32&):System.Security.Cryptography.KeySizes[]", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.GenerateIV():System.Void", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.GenerateKey():System.Void", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.Key.get_Key():System.Byte[]", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.Key.set_Key(System.Byte[]):System.Void", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.AesCryptoServiceProvider.KeySize.set_KeySize(System.Int32):System.Void", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesManaged.CreateDecryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "0#", Justification = "ShawnFa:Approved break to match framework guidelines")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesManaged.CreateDecryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "1#", Justification = "ShawnFa:Approved break to match framework guidelines")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesManaged.CreateEncryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "0#", Justification = "ShawnFa:Approved break to match framework guidelines")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", Scope = "Member", Target = "System.Security.Cryptography.AesManaged.CreateEncryptor(System.Byte[],System.Byte[]):System.Security.Cryptography.ICryptoTransform", MessageId = "1#", Justification = "ShawnFa:Approved break to match framework guidelines")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm.Dispose():System.Void", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm.HashCore(System.Byte[],System.Int32,System.Int32):System.Void", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm.HashFinal():System.Byte[]", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptHashAlgorithm.Initialize():System.Void", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative.BCryptSupported.get_BCryptSupported():System.Boolean", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative.GetInt32Property(T,System.String):System.Int32", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative.GetProperty(T,System.String):System.Byte[]", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative.OpenAlgorithm(System.String,System.String):Microsoft.Win32.SafeHandles.SafeBCryptAlgorithmHandle", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative+UnsafeNativeMethods.BCryptCreateHash(Microsoft.Win32.SafeHandles.SafeBCryptAlgorithmHandle,Microsoft.Win32.SafeHandles.SafeBCryptHashHandle&,System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.Int32):System.Security.Cryptography.BCryptNative+ErrorCode", Justification = "ShawnFa:Reviewed.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative+UnsafeNativeMethods.BCryptFinishHash(Microsoft.Win32.SafeHandles.SafeBCryptHashHandle,System.Byte[],System.Int32,System.Int32):System.Security.Cryptography.BCryptNative+ErrorCode", Justification = "ShawnFa:Reviewed.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative+UnsafeNativeMethods.BCryptHashData(Microsoft.Win32.SafeHandles.SafeBCryptHashHandle,System.Byte[],System.Int32,System.Int32):System.Security.Cryptography.BCryptNative+ErrorCode", Justification = "ShawnFa:Reviewed.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.BCryptNative+UnsafeNativeMethods.BCryptOpenAlgorithmProvider(Microsoft.Win32.SafeHandles.SafeBCryptAlgorithmHandle&,System.String,System.String,System.Int32):System.Security.Cryptography.BCryptNative+ErrorCode", Justification = "ShawnFa:Reviewed.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm.Dispose():System.Void", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.GetHashParameter(Microsoft.Win32.SafeHandles.SafeCapiHashHandle,System.Security.Cryptography.CapiNative+HashParameter):System.Byte[]", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm.HashCore(System.Byte[],System.Int32,System.Int32):System.Void", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm.HashFinal():System.Byte[]", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiHashAlgorithm.Initialize():System.Void", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.AcquireCsp(System.String,System.String,System.Security.Cryptography.CapiNative+ProviderType,System.Security.Cryptography.CapiNative+CryptAcquireContextFlags,System.Boolean):Microsoft.Win32.SafeHandles.SafeCspHandle", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.ExportSymmetricKey(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle):System.Byte[]", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.GetProviderParameterStruct(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Security.Cryptography.CapiNative+ProviderParameter,System.Security.Cryptography.CapiNative+ProviderParameterFlags):T", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.ImportSymmetricKey(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Security.Cryptography.CapiNative+AlgorithmId,System.Byte[]):Microsoft.Win32.SafeHandles.SafeCapiKeyHandle", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.SetKeyParameter(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Security.Cryptography.CapiNative+KeyParameter,System.Byte[]):System.Void", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiNative.SetKeyParameter(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Security.Cryptography.CapiNative+KeyParameter,System.Int32):System.Void", Justification = "ShawnFa:Safe use of these mehtods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods._AxlPublicKeyBlobToPublicKeyToken(System.Security.Cryptography.CapiNative+CRYPTOAPI_BLOB&,Microsoft.Win32.SafeHandles.SafeAxlBufferHandle&):System.Int32", Justification = "ShawnFa:UnsafeNativeMethods class")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptAcquireContext(Microsoft.Win32.SafeHandles.SafeCspHandle&,System.String,System.String,System.Security.Cryptography.CapiNative+ProviderType,System.Security.Cryptography.CapiNative+CryptAcquireContextFlags):System.Boolean", Justification = "ShawnFa:Reviewed usage.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptCreateHash(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Security.Cryptography.CapiNative+AlgorithmId,Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Int32,Microsoft.Win32.SafeHandles.SafeCapiHashHandle&):System.Boolean", Justification = "ShawnFa:Reviewed usage.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptDuplicateKey(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.IntPtr,System.Int32,Microsoft.Win32.SafeHandles.SafeCapiKeyHandle&):System.Boolean", Justification = "ShawnFa:Reviewed usage.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptExportKey(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Int32,System.Int32,System.Byte[],System.Int32&):System.Boolean", Justification = "ShawnFa:Reviewed usage.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptGenKey(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Security.Cryptography.CapiNative+AlgorithmId,System.Security.Cryptography.CapiNative+KeyFlags,Microsoft.Win32.SafeHandles.SafeCapiKeyHandle&):System.Boolean", Justification = "ShawnFa:Reviewed usage.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptGenRandom(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Int32,System.Byte[]):System.Boolean", Justification = "ShawnFa:Reviewed usage.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptGetHashParam(Microsoft.Win32.SafeHandles.SafeCapiHashHandle,System.Security.Cryptography.CapiNative+HashParameter,System.Byte[],System.Int32&,System.Int32):System.Boolean", Justification = "ShawnFa:Reviewed usage.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptGetProvParam(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Security.Cryptography.CapiNative+ProviderParameter,System.IntPtr,System.Int32&,System.Security.Cryptography.CapiNative+ProviderParameterFlags):System.Boolean", Justification = "ShawnFa:Reviewed usage.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptHashData(Microsoft.Win32.SafeHandles.SafeCapiHashHandle,System.Byte[],System.Int32,System.Int32):System.Boolean", Justification = "ShawnFa:Reviewed usage.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptImportKey(Microsoft.Win32.SafeHandles.SafeCspHandle,System.Byte[],System.Int32,Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Security.Cryptography.CapiNative+KeyFlags,Microsoft.Win32.SafeHandles.SafeCapiKeyHandle&):System.Boolean", Justification = "ShawnFa:Reviewed usage.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.CapiNative+UnsafeNativeMethods.CryptSetKeyParam(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Security.Cryptography.CapiNative+KeyParameter,System.Byte[],System.Int32):System.Boolean", Justification = "ShawnFa:Reviewed usage.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiSymmetricAlgorithm..ctor(System.Int32,System.Int32,Microsoft.Win32.SafeHandles.SafeCspHandle,Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Byte[],System.Security.Cryptography.CipherMode,System.Security.Cryptography.PaddingMode,System.Security.Cryptography.EncryptionMode)", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CapiSymmetricAlgorithm.SetupKey(Microsoft.Win32.SafeHandles.SafeCapiKeyHandle,System.Byte[],System.Security.Cryptography.CipherMode,System.Int32):Microsoft.Win32.SafeHandles.SafeCapiKeyHandle", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP256", MessageId = "Diffie", Justification = "ShawnFa:Diffie is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP256", MessageId = "Hellman", Justification = "ShawnFa:Hellman is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP384", MessageId = "Diffie", Justification = "ShawnFa:Diffie is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP384", MessageId = "Hellman", Justification = "ShawnFa:Hellman is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP521", MessageId = "Diffie", Justification = "ShawnFa:Diffie is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDiffieHellmanP521", MessageId = "Hellman", Justification = "ShawnFa:Hellman is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDsaP256", MessageId = "Dsa", Justification = "ShawnFa:DSA is the algorithm name")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDsaP384", MessageId = "Dsa", Justification = "ShawnFa:DSA is the algorithm name")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithm.ECDsaP521", MessageId = "Dsa", Justification = "ShawnFa:DSA is the algorithm name")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.DiffieHellman", MessageId = "Diffie", Justification = "ShawnFa:Diffie is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.DiffieHellman", MessageId = "Hellman", Justification = "ShawnFa:Hellman is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.Dsa", MessageId = "Dsa", Justification = "ShawnFa:DSA is the algorithm name")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.ECDiffieHellman", MessageId = "Diffie", Justification = "ShawnFa:Diffie is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.ECDiffieHellman", MessageId = "Hellman", Justification = "ShawnFa:Hellman is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.ECDsa", MessageId = "Dsa", Justification = "ShawnFa:DSA is the algorithm name")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngAlgorithmGroup.Rsa", MessageId = "Rsa", Justification = "ShawnFa:RSA is the algorithm name")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngExportPolicies", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKey", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CngKey..ctor(Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle,Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle)", Justification = "ShawnFa:Safe use of these methods")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Scope = "Member", Target = "System.Security.Cryptography.CngKey.BuildKeyContainerPermission(System.Security.Permissions.KeyContainerPermissionFlags):System.Security.Permissions.KeyContainerPermission", Justification = "ShawnFa:Internal method, safe for use")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CngKey.Create(System.Security.Cryptography.CngAlgorithm,System.String,System.Security.Cryptography.CngKeyCreationParameters):System.Security.Cryptography.CngKey", Justification = "ShawnFa:Safe use of these methods")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CngKey.Dispose():System.Void", Justification = "ShawnFa:Cleanup method, safe to call.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.CngKey.Exists(System.String,System.Security.Cryptography.CngProvider,System.Security.Cryptography.CngKeyOpenOptions):System.Boolean", Justification = "ShawnFa:Safe use of this method.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyBlobFormat", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyBlobFormat.EccPrivateBlob", MessageId = "Ecc", Justification = "ShawnFa:Ecc is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyBlobFormat.EccPublicBlob", MessageId = "Ecc", Justification = "ShawnFa:Ecc is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyCreationOptions", MessageId = "Cng", Justification = "ShawnFa:Cng is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyCreationParameters", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyHandleOpenOptions", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyOpenOptions", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "Type", Target = "System.Security.Cryptography.CngKeyOpenOptions", Justification = "ShawnFa:For usability purposes we're mapping User to value 0")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngKeyUsages", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2217:DoNotMarkEnumsWithFlags", Scope = "Type", Target = "System.Security.Cryptography.CngKeyUsages", Justification = "ShawnFa:Flag values are defined for interop with CNG")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngProperty", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngPropertyCollection", Justification = "Cng:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngPropertyOptions", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2217:DoNotMarkEnumsWithFlags", Scope = "Type", Target = "System.Security.Cryptography.CngPropertyOptions", Justification = "[....]:Flag values are for interop with CNG")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngProvider", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngProvider.MicrosoftSmartCardKeyStorageProvider", MessageId = "CardKey", Justification = "[....]:We mean 'card key', not cardkey")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngProvider.MicrosoftSmartCardKeyStorageProvider", MessageId = "SmartCard", Justification = "[....]:CNG refers to these as 'smart card's not 'smartcard's")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngUIPolicy", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngUIProtectionLevels", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellman", MessageId = "Diffie", Justification = "[....]:Diffie is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellman", MessageId = "Hellman", Justification = "[....]:Hellman is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng", MessageId = "Diffie", Justification = "[....]:Diffie is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng", MessageId = "Hellman", Justification = "[....]:Hellman is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.DeriveKeyMaterial(System.Security.Cryptography.CngKey):System.Byte[]", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.HmacKey", Justification = "[....]:This is a mutable array")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.HmacKey", MessageId = "Hmac", Justification = "[....]:HMAC is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.Label", Justification = "[....]:This is a mutable array")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.SecretAppend", Justification = "[....]:This is a mutable array")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.SecretPrepend", Justification = "[....]:This is a mutable array")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.Seed", Justification = "[....]:This is a mutable array")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.UseSecretAgreementAsHmacKey", MessageId = "Hmac", Justification = "[....]:HMAC is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng..ctor(System.Security.Cryptography.CngKey)", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCngPublicKey", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCngPublicKey", MessageId = "Diffie", Justification = "[....]:Diffie is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCngPublicKey", MessageId = "Hellman", Justification = "[....]:Hellman is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCngPublicKey..ctor(System.Security.Cryptography.CngKey)", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction", MessageId = "Diffie", Justification = "[....]:Diffie is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction", MessageId = "Hellman", Justification = "[....]:Hellman is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction.Hmac", MessageId = "Hmac", Justification = "[....]:HMAC is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanPublicKey", MessageId = "Diffie", Justification = "[....]:Diffie is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanPublicKey", MessageId = "Hellman", Justification = "[....]:Hellman is the correct spelling")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDsa", MessageId = "Dsa", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDsaCng", MessageId = "Cng", Justification = "[....]:CNG is an approved acronym")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDsaCng", MessageId = "Dsa", Justification = "[....]:DSA is the algorithm name")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.Security.Cryptography.ECDsaCng..ctor(System.Security.Cryptography.CngKey)", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.Security.Cryptography.ECDsaCng.VerifyHash(System.Byte[],System.Byte[]):System.Boolean", Justification = "[....]:We do not expose the handle directly and verification is not a protected operation")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDsaPaddingMode", MessageId = "Dsa", Justification = "[....]:DSA is the algorithm name")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1027:MarkEnumsWithFlags", Scope = "Type", Target = "System.Security.Cryptography.ECDsaPaddingMode", Justification = "[....]:These are not flags, but values from the bcrypt implementation")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.MD5Cng", MessageId = "Cng", Justification = "[....]:Cng is an approved acronym for Crypto Next Generation")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.NCryptSupported.get_NCryptSupported():System.Boolean", Justification = "[....]:Safe use of these methods.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.DeriveKeyMaterial(Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle,System.String,System.String,System.Byte[],System.Byte[],System.Byte[],System.Security.Cryptography.NCryptNative+SecretAgreementFlags):System.Byte[]", Justification = "[....]:Safe use of these methods")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.GetPropertyAsString(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.Security.Cryptography.CngPropertyOptions):System.String", Justification = "[....]:Safe use of these methods")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.GetPropertyAsStruct(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.Security.Cryptography.CngPropertyOptions):T", Justification = "[....]:Safe use of this method")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.SetProperty(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.Security.SecureString,System.Security.Cryptography.CngPropertyOptions):System.Void", Justification = "[....]:Safe use of these methods")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptDeriveKey(Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle,System.String,System.Security.Cryptography.NCryptNative+NCryptBufferDesc&,System.Byte[],System.Int32,System.Int32&,System.Security.Cryptography.NCryptNative+SecretAgreementFlags):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptGetProperty(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.Byte[],System.Int32,System.Int32&,System.Security.Cryptography.CngPropertyOptions):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptGetProperty(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.IntPtr&,System.Int32,System.Int32&,System.Security.Cryptography.CngPropertyOptions):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptImportKey(Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle,System.IntPtr,System.String,System.IntPtr,Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle&,System.Byte[],System.Int32,System.Int32):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptOpenKey(Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle,Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle&,System.String,System.Int32,System.Security.Cryptography.CngKeyOpenOptions):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptOpenStorageProvider(Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle&,System.String,System.Int32):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptSecretAgreement(Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle,Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle,Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle&,System.Int32):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptSetProperty(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.IntPtr,System.Int32,System.Security.Cryptography.CngPropertyOptions):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptSetProperty(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.Byte[],System.Int32,System.Security.Cryptography.CngPropertyOptions):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptVerifySignature(Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle,System.IntPtr,System.Byte[],System.Int32,System.Byte[],System.Int32,System.Int32):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "[....]:Reviewed")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.SHA1Cng", MessageId = "Cng", Justification = "[....]:Cng is an approved acronym for Crypto Next Generation")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.SHA384Cng", MessageId = "Cng", Justification = "[....]:Cng is an approved acronym for Crypto Next Generation")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.SHA256Cng", MessageId = "Cng", Justification = "[....]:Cng is an approved acronym for Crypto Next Generation")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.SHA512Cng", MessageId = "Cng", Justification = "[....]:Cng is an approved acronym for Crypto Next Generation")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Security.Cryptography.StrongNameSignatureInformation.HashAlgorithm.get_HashAlgorithm():System.String", Justification = "[....]:Conceptually the hash algorithm is a property of the object, not the class.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Security.Cryptography.X509Certificates", Justification = "[....]:System.Security.Cryptography.X509Certificates is also defined in other assemblies")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Security.Cryptography.X509Certificates.AuthenticodeSignatureInformation..ctor(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_SIGNER_INFO,System.Security.Cryptography.X509Certificates.X509Chain,System.Security.Cryptography.X509Certificates.TimestampInformation)", Justification = "[....]:Code clarity - we want to make it explicit that we choose to have a null time stamp in this case")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.X509Certificates.X509Native+UnsafeNativeMethods._AxlGetIssuerPublicKeyHash(System.IntPtr,Microsoft.Win32.SafeHandles.SafeAxlBufferHandle&):System.Int32", Justification = "[....]:UnsafeNativeMethods class")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "Member", Target = "System.Security.Cryptography.X509Certificates.X509Native+UnsafeNativeMethods._AxlGetIssuerPublicKeyHash(System.IntPtr,Microsoft.Win32.SafeHandles.SafeAxlBufferHandle&):System.Int32", Justification = "[....]:FxCop bug - this entry point does exist")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.X509Certificates.X509Native+UnsafeNativeMethods.CertVerifyAuthenticodeLicense(System.Security.Cryptography.CapiNative+CRYPTOAPI_BLOB&,System.Security.Cryptography.X509Certificates.X509Native+AxlVerificationFlags,System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_SIGNER_INFO&,System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_TIMESTAMPER_INFO&):System.Int32", Justification = "[....]:UnsafeNativeMethods class")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.X509Certificates.X509Native+UnsafeNativeMethods.CertFreeAuthenticodeSignerInfo(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_SIGNER_INFO&):System.Int32", Justification = "[....]:UnsafeNativeMethods class")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.X509Certificates.X509Native+UnsafeNativeMethods.CertFreeAuthenticodeTimestamperInfo(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_TIMESTAMPER_INFO&):System.Int32", Justification = "[....]:UnsafeNativeMethods class")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.BuildSignatureChain(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_SIGNER_INFO,System.Xml.XmlElement,System.Security.Cryptography.X509Certificates.X509RevocationFlag,System.Security.Cryptography.X509Certificates.X509RevocationMode):System.Security.Cryptography.X509Certificates.X509Chain", Justification = "[....]:Signature chain access is protected with a StorePermission demand")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.BuildSignatureChain(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_SIGNER_INFO,System.Xml.XmlElement,System.Security.Cryptography.X509Certificates.X509RevocationFlag,System.Security.Cryptography.X509Certificates.X509RevocationMode):System.Security.Cryptography.X509Certificates.X509Chain", Justification = "[....]:StorePermission is demanded on access to the X509Chain")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.CalculateSignerPublicKeyToken(System.Security.Cryptography.AsymmetricAlgorithm):System.Byte[]", MessageId = "System.Runtime.InteropServices.SafeHandle.DangerousGetHandle", Justification = "[....]:DangerousGetHandle is called within a CER and wrapped by a AddRef/Release")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.CalculateSignerPublicKeyToken(System.Security.Cryptography.AsymmetricAlgorithm):System.Byte[]", Justification = "[....]:Safe use of these methods, not exposed to user code")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.GetTimestampInformation(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_TIMESTAMPER_INFO,System.Xml.XmlElement):System.Security.Cryptography.X509Certificates.TimestampInformation", Justification = "[....]:LinkDemand APIs are not under the control of the callers")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.VerifyAuthenticodePublisher(System.Security.Cryptography.X509Certificates.X509Certificate2):System.Security.Cryptography.SignatureVerificationResult", MessageId = "System.Runtime.InteropServices.SafeHandle.DangerousGetHandle", Justification = "[....]:DangerousGetHandle is called within a CER and wrapped by a AddRef/Release")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.VerifyAuthenticodePublisher(System.Security.Cryptography.X509Certificates.X509Certificate2):System.Security.Cryptography.SignatureVerificationResult", Justification = "[....]:Safe use of these methods, not exposed to user code")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.VerifyAuthenticodeSignature(System.Xml.XmlElement,System.Security.Cryptography.X509Certificates.X509RevocationFlag,System.Security.Cryptography.X509Certificates.X509RevocationMode):System.Security.Cryptography.X509Certificates.AuthenticodeSignatureInformation", Justification = "[....]:Safe use of these methods, not exposed to user code")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngPropertyOptions", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2217:DoNotMarkEnumsWithFlags", Scope = "Type", Target = "System.Security.Cryptography.CngPropertyOptions", Justification = "ShawnFa:Flag values are for interop with CNG")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngProvider", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngProvider.MicrosoftSmartCardKeyStorageProvider", MessageId = "CardKey", Justification = "ShawnFa:We mean 'card key', not cardkey")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngProvider.MicrosoftSmartCardKeyStorageProvider", MessageId = "SmartCard", Justification = "ShawnFa:CNG refers to these as 'smart card's not 'smartcard's")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngUIPolicy", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.CngUIProtectionLevels", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellman", MessageId = "Diffie", Justification = "ShawnFa:Diffie is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellman", MessageId = "Hellman", Justification = "ShawnFa:Hellman is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng", MessageId = "Diffie", Justification = "ShawnFa:Diffie is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng", MessageId = "Hellman", Justification = "ShawnFa:Hellman is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.DeriveKeyMaterial(System.Security.Cryptography.CngKey):System.Byte[]", Justification = "ShawnFa:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.HmacKey", Justification = "ShawnFa:This is a mutable array")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.HmacKey", MessageId = "Hmac", Justification = "ShawnFa:HMAC is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.Label", Justification = "ShawnFa:This is a mutable array")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.SecretAppend", Justification = "ShawnFa:This is a mutable array")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.SecretPrepend", Justification = "ShawnFa:This is a mutable array")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.Seed", Justification = "ShawnFa:This is a mutable array")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng.UseSecretAgreementAsHmacKey", MessageId = "Hmac", Justification = "ShawnFa:HMAC is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCng..ctor(System.Security.Cryptography.CngKey)", Justification = "ShawnFa:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCngPublicKey", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCngPublicKey", MessageId = "Diffie", Justification = "ShawnFa:Diffie is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCngPublicKey", MessageId = "Hellman", Justification = "ShawnFa:Hellman is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanCngPublicKey..ctor(System.Security.Cryptography.CngKey)", Justification = "ShawnFa:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction", MessageId = "Diffie", Justification = "ShawnFa:Diffie is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction", MessageId = "Hellman", Justification = "ShawnFa:Hellman is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanKeyDerivationFunction.Hmac", MessageId = "Hmac", Justification = "ShawnFa:HMAC is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanPublicKey", MessageId = "Diffie", Justification = "ShawnFa:Diffie is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDiffieHellmanPublicKey", MessageId = "Hellman", Justification = "ShawnFa:Hellman is the correct spelling")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDsa", MessageId = "Dsa", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDsaCng", MessageId = "Cng", Justification = "ShawnFa:CNG is an approved acronym")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDsaCng", MessageId = "Dsa", Justification = "ShawnFa:DSA is the algorithm name")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.Security.Cryptography.ECDsaCng..ctor(System.Security.Cryptography.CngKey)", Justification = "ShawnFa:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.Security.Cryptography.ECDsaCng.VerifyHash(System.Byte[],System.Byte[]):System.Boolean", Justification = "ShawnFa:We do not expose the handle directly and verification is not a protected operation")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.ECDsaPaddingMode", MessageId = "Dsa", Justification = "ShawnFa:DSA is the algorithm name")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1027:MarkEnumsWithFlags", Scope = "Type", Target = "System.Security.Cryptography.ECDsaPaddingMode", Justification = "ShawnFa:These are not flags, but values from the bcrypt implementation")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.MD5Cng", MessageId = "Cng", Justification = "ShawnFa:Cng is an approved acronym for Crypto Next Generation")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.NCryptSupported.get_NCryptSupported():System.Boolean", Justification = "ShawnFa:Safe use of these methods.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.DeriveKeyMaterial(Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle,System.String,System.String,System.Byte[],System.Byte[],System.Byte[],System.Security.Cryptography.NCryptNative+SecretAgreementFlags):System.Byte[]", Justification = "ShawnFa:Safe use of these methods")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.GetPropertyAsString(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.Security.Cryptography.CngPropertyOptions):System.String", Justification = "ShawnFa:Safe use of these methods")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.GetPropertyAsStruct(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.Security.Cryptography.CngPropertyOptions):T", Justification = "ShawnFa:Safe use of this method")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative.SetProperty(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.Security.SecureString,System.Security.Cryptography.CngPropertyOptions):System.Void", Justification = "ShawnFa:Safe use of these methods")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptDeriveKey(Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle,System.String,System.Security.Cryptography.NCryptNative+NCryptBufferDesc&,System.Byte[],System.Int32,System.Int32&,System.Security.Cryptography.NCryptNative+SecretAgreementFlags):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "ShawnFa:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptGetProperty(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.Byte[],System.Int32,System.Int32&,System.Security.Cryptography.CngPropertyOptions):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "ShawnFa:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptGetProperty(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.IntPtr&,System.Int32,System.Int32&,System.Security.Cryptography.CngPropertyOptions):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "ShawnFa:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptImportKey(Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle,System.IntPtr,System.String,System.IntPtr,Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle&,System.Byte[],System.Int32,System.Int32):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "ShawnFa:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptOpenKey(Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle,Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle&,System.String,System.Int32,System.Security.Cryptography.CngKeyOpenOptions):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "ShawnFa:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptOpenStorageProvider(Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle&,System.String,System.Int32):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "ShawnFa:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptSecretAgreement(Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle,Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle,Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle&,System.Int32):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "ShawnFa:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptSetProperty(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.IntPtr,System.Int32,System.Security.Cryptography.CngPropertyOptions):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "ShawnFa:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptSetProperty(Microsoft.Win32.SafeHandles.SafeNCryptHandle,System.String,System.Byte[],System.Int32,System.Security.Cryptography.CngPropertyOptions):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "ShawnFa:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.NCryptNative+UnsafeNativeMethods.NCryptVerifySignature(Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle,System.IntPtr,System.Byte[],System.Int32,System.Byte[],System.Int32,System.Int32):System.Security.Cryptography.NCryptNative+ErrorCode", Justification = "ShawnFa:Reviewed")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.SHA1Cng", MessageId = "Cng", Justification = "ShawnFa:Cng is an approved acronym for Crypto Next Generation")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.SHA384Cng", MessageId = "Cng", Justification = "ShawnFa:Cng is an approved acronym for Crypto Next Generation")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.SHA256Cng", MessageId = "Cng", Justification = "ShawnFa:Cng is an approved acronym for Crypto Next Generation")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Security.Cryptography.SHA512Cng", MessageId = "Cng", Justification = "ShawnFa:Cng is an approved acronym for Crypto Next Generation")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Security.Cryptography.StrongNameSignatureInformation.HashAlgorithm.get_HashAlgorithm():System.String", Justification = "ShawnFa:Conceptually the hash algorithm is a property of the object, not the class.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Security.Cryptography.X509Certificates", Justification = "ShawnFa:System.Security.Cryptography.X509Certificates is also defined in other assemblies")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Security.Cryptography.X509Certificates.AuthenticodeSignatureInformation..ctor(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_SIGNER_INFO,System.Security.Cryptography.X509Certificates.X509Chain,System.Security.Cryptography.X509Certificates.TimestampInformation)", Justification = "ShawnFa:Code clarity - we want to make it explicit that we choose to have a null time stamp in this case")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.X509Certificates.X509Native+UnsafeNativeMethods._AxlGetIssuerPublicKeyHash(System.IntPtr,Microsoft.Win32.SafeHandles.SafeAxlBufferHandle&):System.Int32", Justification = "ShawnFa:UnsafeNativeMethods class")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "Member", Target = "System.Security.Cryptography.X509Certificates.X509Native+UnsafeNativeMethods._AxlGetIssuerPublicKeyHash(System.IntPtr,Microsoft.Win32.SafeHandles.SafeAxlBufferHandle&):System.Int32", Justification = "ShawnFa:FxCop bug - this entry point does exist")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.X509Certificates.X509Native+UnsafeNativeMethods.CertVerifyAuthenticodeLicense(System.Security.Cryptography.CapiNative+CRYPTOAPI_BLOB&,System.Security.Cryptography.X509Certificates.X509Native+AxlVerificationFlags,System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_SIGNER_INFO&,System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_TIMESTAMPER_INFO&):System.Int32", Justification = "ShawnFa:UnsafeNativeMethods class")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.X509Certificates.X509Native+UnsafeNativeMethods.CertFreeAuthenticodeSignerInfo(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_SIGNER_INFO&):System.Int32", Justification = "ShawnFa:UnsafeNativeMethods class")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "Member", Target = "System.Security.Cryptography.X509Certificates.X509Native+UnsafeNativeMethods.CertFreeAuthenticodeTimestamperInfo(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_TIMESTAMPER_INFO&):System.Int32", Justification = "ShawnFa:UnsafeNativeMethods class")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.BuildSignatureChain(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_SIGNER_INFO,System.Xml.XmlElement,System.Security.Cryptography.X509Certificates.X509RevocationFlag,System.Security.Cryptography.X509Certificates.X509RevocationMode):System.Security.Cryptography.X509Certificates.X509Chain", Justification = "ShawnFa:Signature chain access is protected with a StorePermission demand")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.BuildSignatureChain(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_SIGNER_INFO,System.Xml.XmlElement,System.Security.Cryptography.X509Certificates.X509RevocationFlag,System.Security.Cryptography.X509Certificates.X509RevocationMode):System.Security.Cryptography.X509Certificates.X509Chain", Justification = "ShawnFa:StorePermission is demanded on access to the X509Chain")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.CalculateSignerPublicKeyToken(System.Security.Cryptography.AsymmetricAlgorithm):System.Byte[]", MessageId = "System.Runtime.InteropServices.SafeHandle.DangerousGetHandle", Justification = "ShawnFa:DangerousGetHandle is called within a CER and wrapped by a AddRef/Release")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.CalculateSignerPublicKeyToken(System.Security.Cryptography.AsymmetricAlgorithm):System.Byte[]", Justification = "ShawnFa:Safe use of these methods, not exposed to user code")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.GetTimestampInformation(System.Security.Cryptography.X509Certificates.X509Native+AXL_AUTHENTICODE_TIMESTAMPER_INFO,System.Xml.XmlElement):System.Security.Cryptography.X509Certificates.TimestampInformation", Justification = "ShawnFa:LinkDemand APIs are not under the control of the callers")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.VerifyAuthenticodePublisher(System.Security.Cryptography.X509Certificates.X509Certificate2):System.Security.Cryptography.SignatureVerificationResult", MessageId = "System.Runtime.InteropServices.SafeHandle.DangerousGetHandle", Justification = "ShawnFa:DangerousGetHandle is called within a CER and wrapped by a AddRef/Release")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.VerifyAuthenticodePublisher(System.Security.Cryptography.X509Certificates.X509Certificate2):System.Security.Cryptography.SignatureVerificationResult", Justification = "ShawnFa:Safe use of these methods, not exposed to user code")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Security.Cryptography.Xml.ManifestSignedXml.VerifyAuthenticodeSignature(System.Xml.XmlElement,System.Security.Cryptography.X509Certificates.X509RevocationFlag,System.Security.Cryptography.X509Certificates.X509RevocationMode):System.Security.Cryptography.X509Certificates.AuthenticodeSignatureInformation", Justification = "ShawnFa:Safe use of these methods, not exposed to user code")]
diff --git a/mcs/class/referencesource/System.Core/System.Core.dll.Triaged.lst.cs b/mcs/class/referencesource/System.Core/System.Core.dll.Triaged.lst.cs
index 7569c7423e6..ad3ebb3a671 100644
--- a/mcs/class/referencesource/System.Core/System.Core.dll.Triaged.lst.cs
+++ b/mcs/class/referencesource/System.Core/System.Core.dll.Triaged.lst.cs
@@ -1,53 +1,53 @@
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA2210:AssembliesShouldHaveValidStrongNames")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.SR.Resources.get_Resources():System.Resources.ResourceManager", Justification = "[....]:The assembly uses the ResourceManager. Fixing this error is more trouble than it is worth.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.SR.GetObject(System.String):System.Object", Justification = "[....]:The assembly uses the ResourceManager. Fixing this error is more trouble than it is worth.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.TimeZoneInfo.TryGetLocalizedNameByMuiNativeResource(System.String):System.String", Justification = "[....]:Asserting permissions reviewed in threat model. see DevDiv Bugs number 24274")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.TimeZoneInfo.GetSystemTimeZones():System.Collections.ObjectModel.ReadOnlyCollection`1<System.TimeZoneInfo>", Justification = "[....]:Asserting permissions reviewed in threat model. see DevDiv Bugs number 24274")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Scope = "Member", Target = "System.TimeZoneInfo.TryGetLocalizedNameByMuiNativeResource(System.String):System.String", Justification = "[....]:Asserting permissions reviewed in threat model. see DevDiv Bugs number 24274")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.TimeZoneInfo.TryGetTimeZoneByRegistryKey(System.String,System.TimeZoneInfo&,System.Exception&):System.TimeZoneInfo+TimeZoneInfoResult", Justification = "[....]:Asserting permissions reviewed in threat model. see DevDiv Bugs number 24274")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.TimeZoneInfo.CheckDaylightSavingTimeDisabled():System.Boolean", Justification = "[....]:Asserting permissions reviewed in threat model. see DevDiv Bugs number 24274")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.TimeZoneInfo.FindIdFromTimeZoneInformation(Microsoft.Win32.NativeMethods+TimeZoneInformation,System.Boolean&):System.String", Justification = "[....]:Asserting permissions reviewed in threat model. see DevDiv Bugs number 24274")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.TimeZoneInfo.TryCompareTimeZoneInformationToRegistry(Microsoft.Win32.NativeMethods+TimeZoneInformation,System.String,System.Boolean&):System.Boolean", Justification = "[....]:Asserting permissions reviewed in threat model. see DevDiv Bugs number 24274")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Management.Instrumentation.ManagementReferenceAttribute..ctor()", Justification = "[....]:FI cl 2523628 @ 2007/04/18 ")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Management", Justification = "[....]:FI cl 2523628 @ 2007/04/18")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNumericConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "[....]:FI 20521")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:FI 20521")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Boolean,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "[....]:FI 20521")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeBinary(System.Linq.Expressions.ExpressionType,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Boolean,System.Reflection.MethodInfo,System.Linq.Expressions.LambdaExpression):System.Linq.Expressions.BinaryExpression", Justification = "[....]:FI 20521")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableToReferenceConversion(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "[....]:FI 20521")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", MessageId = "ask", Justification = "[....]:FI 20521")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNumericConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "[....]:FI 20521")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Diagnostics", Justification = "[....]:This is a old namespace and is an extension of system.dll. We will most certainly have more types here going forward")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1404:CallGetLastErrorImmediatelyAfterPInvoke", Scope = "Member", Target = "System.IO.LogStream._Init(System.String,System.Int32,System.IO.FileShare,Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES,System.Security.Permissions.FileIOPermissionAccess,System.IO.FileMode,System.Int32,System.Boolean):System.Void", Justification = "[....]:This rule is noisy, we already check it inside handle.IsInvalid case immediately after the P/Invoke to create file")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.Init():System.Void", Justification = "[....]:This is intentional, such that we don't escape exception from tracing calls. App should never crash for benign tracing failures!")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener+TraceWriter.Write(System.String):System.Void", Justification = "[....]:This is intentional, such that we don't escape exception from tracing calls. App should never crash for benign tracing failures!")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.EnsureWriter():System.Boolean", Justification = "[....]:This is intentional, such that we don't escape exception from tracing calls. App should never crash for benign tracing failures!")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.IO.LogStream.EnforceRetentionPolicy(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Int64):System.Void", Justification = "[....]:This is intentional, such that we don't escape exception from tracing calls. App should never crash for benign tracing failures!")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.BuildHeader(System.Text.StringBuilder,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Diagnostics.TraceEventCache,System.String,System.Boolean,System.Diagnostics.TraceOptions):System.Void", Justification = "[....]:We are just handing out ActivityId which shouldn't require extra permission. ")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.LogStream.GetSecAttrs(System.IO.FileShare):Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES", Justification = "[....]:This is well contained")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "Member", Target = "System.IO.LogStream.EnforceRetentionPolicy(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Int64):System.Void", Justification = "[....]:This is fine here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.Init():System.Void", Justification = "[....]:This is fine here")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.BuildHeader(System.Text.StringBuilder,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Diagnostics.TraceEventCache,System.String,System.Boolean,System.Diagnostics.TraceOptions):System.Void", MessageId = "System.Diagnostics.EventSchemaTraceListener._InternalBuildRaw(System.Text.StringBuilder,System.String)", Justification = "[....]:The event schema XML tags can't be localized ")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.TraceData(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Object[]):System.Void", MessageId = "System.Diagnostics.EventSchemaTraceListener._InternalBuildRaw(System.Text.StringBuilder,System.String)", Justification = "[....]:The event schema XML tags can't be localized")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.TraceData(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Object):System.Void", MessageId = "System.Diagnostics.EventSchemaTraceListener._InternalBuildRaw(System.Text.StringBuilder,System.String)", Justification = "[....]:The event schema XML tags can't be localized")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.BuildMessage(System.Text.StringBuilder,System.String):System.Void", MessageId = "System.Diagnostics.EventSchemaTraceListener._InternalBuildRaw(System.Text.StringBuilder,System.String)", Justification = "[....]:The event schema XML tags can't be localized")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.BuildFooter(System.Text.StringBuilder,System.Diagnostics.TraceEventType,System.Diagnostics.TraceEventCache,System.Boolean,System.Diagnostics.TraceOptions):System.Void", MessageId = "System.Diagnostics.EventSchemaTraceListener._InternalBuildRaw(System.Text.StringBuilder,System.String)", Justification = "[....]:The event schema XML tags can't be localized")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.BuildEscaped(System.Text.StringBuilder,System.String):System.Void", MessageId = "System.Diagnostics.EventSchemaTraceListener._InternalBuildRaw(System.Text.StringBuilder,System.String)", Justification = "[....]:The event schema XML tags can't be localized")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2201:DoNotRaiseReservedExceptionTypes", Scope = "Member", Target = "System.IO.LogStream.WriteFileNative(System.Byte[],System.Int32,System.Int32,System.Threading.NativeOverlapped*,System.Int32&):System.Int32", Justification = "[....]:This is intentional and indicative of ---- in our code")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.UnescapedXmlDiagnosticData.UnescapedXml", MessageId = "Unescaped", Justification = "[....]:This is fine and widely referred so")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.UnescapedXmlDiagnosticData", MessageId = "Unescaped", Justification = "[....]:This is fine and widely referred so")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.BuildEscaped(System.Text.StringBuilder,System.String):System.Void", MessageId = "apos", Justification = "[....]:This is an industry standard literal")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.BuildEscaped(System.Text.StringBuilder,System.String):System.Void", MessageId = "quot", Justification = "[....]:This is an industry standard literal")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.IO.BufferedStream2.FlushRead():System.Void", Justification = "[....]:This functionality is no-op at present, pending stream re-factoring work")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.BuildHeader(System.Text.StringBuilder,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Diagnostics.TraceEventCache,System.String,System.Boolean,System.Diagnostics.TraceOptions):System.Void", MessageId = "source", Justification = "[....]:This is provided for consistency")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.CreateFile(System.String,System.Int32,System.IO.FileShare,Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES,System.IO.FileMode,System.Int32,System.IntPtr):Microsoft.Win32.SafeHandles.SafeFileHandle", Justification = "[....]:<reason for exclusion>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.Writer.set_Writer(System.IO.TextWriter):System.Void", Justification = "[....]:This is for hiding base class method, bounded by contract")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.Writer.set_Writer(System.IO.TextWriter):System.Void", MessageId = "value", Justification = "[....]:This is for hiding base class method, bounded by contract")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1802:UseLiteralsWhereAppropriate", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.NULL", Justification = "[....]:IntPtr' cannot be declared as const")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "Namespace", Target = "System.AddIn.Pipeline", Justification = "[....]:Approval was granted")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "Namespace", Target = "System.AddIn.Hosting", Justification = "[....]:Approval was granted")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "Namespace", Target = "System.AddIn", Justification = "[....]:Approval was granted")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Security", Justification = "[....]:System.Security is also defined in other assemblies")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.SR.Resources.get_Resources():System.Resources.ResourceManager", Justification = "jfree:The assembly uses the ResourceManager. Fixing this error is more trouble than it is worth.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "Member", Target = "System.SR.GetObject(System.String):System.Object", Justification = "jfree:The assembly uses the ResourceManager. Fixing this error is more trouble than it is worth.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.TimeZoneInfo.TryGetLocalizedNameByMuiNativeResource(System.String):System.String", Justification = "jfree:Asserting permissions reviewed in threat model. see DevDiv Bugs number 24274")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.TimeZoneInfo.GetSystemTimeZones():System.Collections.ObjectModel.ReadOnlyCollection`1<System.TimeZoneInfo>", Justification = "jfree:Asserting permissions reviewed in threat model. see DevDiv Bugs number 24274")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Scope = "Member", Target = "System.TimeZoneInfo.TryGetLocalizedNameByMuiNativeResource(System.String):System.String", Justification = "jfree:Asserting permissions reviewed in threat model. see DevDiv Bugs number 24274")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.TimeZoneInfo.TryGetTimeZoneByRegistryKey(System.String,System.TimeZoneInfo&,System.Exception&):System.TimeZoneInfo+TimeZoneInfoResult", Justification = "jfree:Asserting permissions reviewed in threat model. see DevDiv Bugs number 24274")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.TimeZoneInfo.CheckDaylightSavingTimeDisabled():System.Boolean", Justification = "jfree:Asserting permissions reviewed in threat model. see DevDiv Bugs number 24274")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.TimeZoneInfo.FindIdFromTimeZoneInformation(Microsoft.Win32.NativeMethods+TimeZoneInformation,System.Boolean&):System.String", Justification = "jfree:Asserting permissions reviewed in threat model. see DevDiv Bugs number 24274")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "Member", Target = "System.TimeZoneInfo.TryCompareTimeZoneInformationToRegistry(Microsoft.Win32.NativeMethods+TimeZoneInformation,System.String,System.Boolean&):System.Boolean", Justification = "jfree:Asserting permissions reviewed in threat model. see DevDiv Bugs number 24274")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "Member", Target = "System.Management.Instrumentation.ManagementReferenceAttribute..ctor()", Justification = "clrgnt:FI cl 2523628 @ 2007/04/18 ")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Management", Justification = "clrgnt:FI cl 2523628 @ 2007/04/18")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNumericConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "clrgnt:FI 20521")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "clrgnt:FI 20521")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateLiftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Type,System.Boolean,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", Justification = "clrgnt:FI 20521")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Linq.Expressions.Expression.MakeBinary(System.Linq.Expressions.ExpressionType,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Boolean,System.Reflection.MethodInfo,System.Linq.Expressions.LambdaExpression):System.Linq.Expressions.BinaryExpression", Justification = "clrgnt:FI 20521")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNullableToReferenceConversion(System.Reflection.Emit.ILGenerator,System.Type):System.Void", Justification = "clrgnt:FI 20521")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateUnliftedBinaryOp(System.Reflection.Emit.ILGenerator,System.Linq.Expressions.ExpressionType,System.Type,System.Type,System.Linq.Expressions.ExpressionCompiler+StackType):System.Linq.Expressions.ExpressionCompiler+StackType", MessageId = "ask", Justification = "clrgnt:FI 20521")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Linq.Expressions.ExpressionCompiler.GenerateNumericConversion(System.Reflection.Emit.ILGenerator,System.Type,System.Type,System.Boolean):System.Void", Justification = "clrgnt:FI 20521")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Diagnostics", Justification = "rkrish:This is a old namespace and is an extension of system.dll. We will most certainly have more types here going forward")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Interoperability", "CA1404:CallGetLastErrorImmediatelyAfterPInvoke", Scope = "Member", Target = "System.IO.LogStream._Init(System.String,System.Int32,System.IO.FileShare,Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES,System.Security.Permissions.FileIOPermissionAccess,System.IO.FileMode,System.Int32,System.Boolean):System.Void", Justification = "rkrish:This rule is noisy, we already check it inside handle.IsInvalid case immediately after the P/Invoke to create file")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.Init():System.Void", Justification = "rkrish:This is intentional, such that we don't escape exception from tracing calls. App should never crash for benign tracing failures!")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener+TraceWriter.Write(System.String):System.Void", Justification = "rkrish:This is intentional, such that we don't escape exception from tracing calls. App should never crash for benign tracing failures!")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.EnsureWriter():System.Boolean", Justification = "rkrish:This is intentional, such that we don't escape exception from tracing calls. App should never crash for benign tracing failures!")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "Member", Target = "System.IO.LogStream.EnforceRetentionPolicy(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Int64):System.Void", Justification = "rkrish:This is intentional, such that we don't escape exception from tracing calls. App should never crash for benign tracing failures!")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.BuildHeader(System.Text.StringBuilder,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Diagnostics.TraceEventCache,System.String,System.Boolean,System.Diagnostics.TraceOptions):System.Void", Justification = "rkrish:We are just handing out ActivityId which shouldn't require extra permission. ")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.IO.LogStream.GetSecAttrs(System.IO.FileShare):Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES", Justification = "rkrish:This is well contained")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "Member", Target = "System.IO.LogStream.EnforceRetentionPolicy(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Int64):System.Void", Justification = "rkrish:This is fine here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.Init():System.Void", Justification = "rkrish:This is fine here")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.BuildHeader(System.Text.StringBuilder,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Diagnostics.TraceEventCache,System.String,System.Boolean,System.Diagnostics.TraceOptions):System.Void", MessageId = "System.Diagnostics.EventSchemaTraceListener._InternalBuildRaw(System.Text.StringBuilder,System.String)", Justification = "rkrish:The event schema XML tags can't be localized ")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.TraceData(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Object[]):System.Void", MessageId = "System.Diagnostics.EventSchemaTraceListener._InternalBuildRaw(System.Text.StringBuilder,System.String)", Justification = "rkrish:The event schema XML tags can't be localized")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.TraceData(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Object):System.Void", MessageId = "System.Diagnostics.EventSchemaTraceListener._InternalBuildRaw(System.Text.StringBuilder,System.String)", Justification = "rkrish:The event schema XML tags can't be localized")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.BuildMessage(System.Text.StringBuilder,System.String):System.Void", MessageId = "System.Diagnostics.EventSchemaTraceListener._InternalBuildRaw(System.Text.StringBuilder,System.String)", Justification = "rkrish:The event schema XML tags can't be localized")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.BuildFooter(System.Text.StringBuilder,System.Diagnostics.TraceEventType,System.Diagnostics.TraceEventCache,System.Boolean,System.Diagnostics.TraceOptions):System.Void", MessageId = "System.Diagnostics.EventSchemaTraceListener._InternalBuildRaw(System.Text.StringBuilder,System.String)", Justification = "rkrish:The event schema XML tags can't be localized")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.BuildEscaped(System.Text.StringBuilder,System.String):System.Void", MessageId = "System.Diagnostics.EventSchemaTraceListener._InternalBuildRaw(System.Text.StringBuilder,System.String)", Justification = "rkrish:The event schema XML tags can't be localized")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2201:DoNotRaiseReservedExceptionTypes", Scope = "Member", Target = "System.IO.LogStream.WriteFileNative(System.Byte[],System.Int32,System.Int32,System.Threading.NativeOverlapped*,System.Int32&):System.Int32", Justification = "rkrish:This is intentional and indicative of race in our code")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.UnescapedXmlDiagnosticData.UnescapedXml", MessageId = "Unescaped", Justification = "rkrish:This is fine and widely referred so")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.UnescapedXmlDiagnosticData", MessageId = "Unescaped", Justification = "rkrish:This is fine and widely referred so")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.BuildEscaped(System.Text.StringBuilder,System.String):System.Void", MessageId = "apos", Justification = "rkrish:This is an industry standard literal")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.BuildEscaped(System.Text.StringBuilder,System.String):System.Void", MessageId = "quot", Justification = "rkrish:This is an industry standard literal")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.IO.BufferedStream2.FlushRead():System.Void", Justification = "rkrish:This functionality is no-op at present, pending stream re-factoring work")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.BuildHeader(System.Text.StringBuilder,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Diagnostics.TraceEventCache,System.String,System.Boolean,System.Diagnostics.TraceOptions):System.Void", MessageId = "source", Justification = "rkrish:This is provided for consistency")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.CreateFile(System.String,System.Int32,System.IO.FileShare,Microsoft.Win32.UnsafeNativeMethods+SECURITY_ATTRIBUTES,System.IO.FileMode,System.Int32,System.IntPtr):Microsoft.Win32.SafeHandles.SafeFileHandle", Justification = "rkrish:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.Writer.set_Writer(System.IO.TextWriter):System.Void", Justification = "rkrish:This is for hiding base class method, bounded by contract")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Diagnostics.EventSchemaTraceListener.Writer.set_Writer(System.IO.TextWriter):System.Void", MessageId = "value", Justification = "rkrish:This is for hiding base class method, bounded by contract")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1802:UseLiteralsWhereAppropriate", Scope = "Member", Target = "Microsoft.Win32.UnsafeNativeMethods.NULL", Justification = "rkrish:IntPtr' cannot be declared as const")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "Namespace", Target = "System.AddIn.Pipeline", Justification = "petes:Approval was granted")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "Namespace", Target = "System.AddIn.Hosting", Justification = "petes:Approval was granted")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "Namespace", Target = "System.AddIn", Justification = "petes:Approval was granted")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Security", Justification = "ShawnFa:System.Security is also defined in other assemblies")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "Namespace", Target = "System.Diagnostics.Eventing", Justification = "josesua:more classes will come into this name space")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Diagnostics.Eventing.EventProvider.GetActivityId():System.Guid", Justification = "josesua:handing out ActivityId which shouldn't require extra permission.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1045:DoNotPassTypesByReference", Scope = "Member", Target = "System.Diagnostics.Eventing.EventProvider.SetActivityId(System.Guid&):System.Void", MessageId = "0#", Justification = "josesua:need to for performance")]
@@ -109,52 +109,52 @@
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Diagnostics.PerformanceData.PerfProviderCollection.RemoveProvider(System.Guid):System.Void", Justification = "jenlc:Force PerfStopProvider() being called.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "Member", Target = "System.Diagnostics.PerformanceData.CounterSetInstanceCounterDataSet.Dispose(System.Boolean):System.Void", Justification = "jenlc:Explicitly free allocated heap memory.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "Member", Target = "System.Diagnostics.PerformanceData.CounterSetInstanceCounterDataSet.Dispose(System.Boolean):System.Void", MessageId = "disposing", Justification = "jenlc:Dispose() pattern.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper.EvtSetChannelConfigProperty(System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtChannelConfigPropertyId,System.Object):System.Void", Justification = "[....]:contains large switch statement for conversion, cannot reduce anymore.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper.ConvertToObject(Microsoft.Win32.UnsafeNativeMethods+EvtVariant):System.Object", Justification = "[....]:contains large switch statement for conversion, cannot reduce anymore.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper.EvtRenderBufferWithContextSystem(System.Diagnostics.Eventing.Reader.EventLogHandle,System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtRenderFlags,System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties,System.Int32):System.Void", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper.EvtRenderBufferWithContextSystem(System.Diagnostics.Eventing.Reader.EventLogHandle,System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtRenderFlags,System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties,System.Int32):System.Void", Justification = "[....]:contains large switch statement for conversion, cannot reduce anymore.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper.EvtSetChannelConfigProperty(System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtChannelConfigPropertyId,System.Object):System.Void", Justification = "[....]:cast occurs only once per case of switch statement.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "Type", Target = "System.Diagnostics.Eventing.Reader.PathType", Justification = "[....]:Need to match this enum up against a native API enum.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.ProviderMetadata.Opcodes", MessageId = "Opcodes", Justification = "[....]:OpCode is an existing name in eventlog world and would be more confusing to use different name.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogSession.GetProviderNames():System.Collections.Generic.IEnumerable`1<System.String>", Justification = "[....]:The method performs a time-consuming operation. ")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogSession.GetLogNames():System.Collections.Generic.IEnumerable`1<System.String>", Justification = "[....]:The method performs a time-consuming operation. ")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EvtVariant.StringVal", Justification = "[....]:reviewed usage - in one instance unmanaged memory is owned/referenced by this member, but is appropriately freed in this case. It is not appropriate for this member to be SafeHandle for this one case.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogConfiguration.ProviderKeywords.get_ProviderKeywords():System.Nullable`1<System.Int64>", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogConfiguration.ProviderLatency.get_ProviderLatency():System.Nullable`1<System.Int32>", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogConfiguration.ProviderBufferSize.get_ProviderBufferSize():System.Nullable`1<System.Int32>", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogConfiguration.ProviderMinimumNumberOfBuffers.get_ProviderMinimumNumberOfBuffers():System.Nullable`1<System.Int32>", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogConfiguration.ProviderMaximumNumberOfBuffers.get_ProviderMaximumNumberOfBuffers():System.Nullable`1<System.Int32>", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogInformation..ctor(System.Diagnostics.Eventing.Reader.EventLogSession,System.String,System.Diagnostics.Eventing.Reader.PathType)", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogConfiguration.ProviderLevel.get_ProviderLevel():System.Nullable`1<System.Int32>", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.StandardEventKeywords.Sqm", MessageId = "Sqm", Justification = "[....]:This is an acronym.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.StandardEventKeywords.WdiContext", MessageId = "Wdi", Justification = "[....]:This is an acronym.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.StandardEventKeywords.WdiDiagnostic", MessageId = "Wdi", Justification = "[....]:This is an acronym.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader", MessageId = "Eventing", Justification = "[....]:'Eventing' is already used in an approved namespace : System.Diagnostics.Eventing")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "Namespace", Target = "System.Diagnostics.Eventing.Reader", Justification = "[....]:Namespace approved by BCL team.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties.Keywords", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties.ProcessId", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties..ctor()", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties.Id", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties.Task", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties.ThreadId", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties.Qualifiers", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties.RecordId", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogRecord.Opcode.get_Opcode():System.Nullable`1<System.Int16>", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogRecord.ProcessId.get_ProcessId():System.Nullable`1<System.Int32>", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogRecord.RecordId.get_RecordId():System.Nullable`1<System.Int64>", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogRecord.Task.get_Task():System.Nullable`1<System.Int32>", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogRecord.ThreadId.get_ThreadId():System.Nullable`1<System.Int32>", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogRecord.Id.get_Id():System.Int32", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogRecord.Keywords.get_Keywords():System.Nullable`1<System.Int64>", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogRecord.Qualifiers.get_Qualifiers():System.Nullable`1<System.Int32>", Justification = "[....]:use of nullable generics approved by BCL team in spec review.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Contracts.Contract.Exists(System.Int32,System.Int32,System.Predicate`1<System.Int32>):System.Boolean", Justification = "[....]:Delegates do not need our PZM hack. Confirmed with Jan Kotas, 10/2006")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Contracts.Contract.ForAll(System.Int32,System.Int32,System.Predicate`1<System.Int32>):System.Boolean", Justification = "[....]:Delegates do not need our PZM hack. Confirmed with Jan Kotas, 10/2006")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "Member", Target = "System.Diagnostics.Contracts.Contract.AssertOnReturn(System.Boolean):System.Void", MessageId = "System.String.Concat(System.String,System.String)", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "Member", Target = "System.Diagnostics.Contracts.Contract.AssertOnException(System.Boolean):System.Void", MessageId = "System.String.Concat(System.String,System.String)", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "Member", Target = "System.Diagnostics.Contracts.Contract.Ensures(System.Boolean):System.Void", MessageId = "System.String.Concat(System.String,System.String)", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "Member", Target = "System.Diagnostics.Contracts.Contract.Invariant(System.Boolean):System.Void", MessageId = "System.String.Concat(System.String,System.String)", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "Member", Target = "System.Diagnostics.Contracts.Contract.ThrowsEnsures(System.Boolean):System.Void", MessageId = "System.String.Concat(System.String,System.String)", Justification = "[....]:<reason for baseline>")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Threading.ReaderWriterLockSlim.TryEnterWriteLock(System.Int32):System.Boolean", Justification = "[....]:<reason for exclusion>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper.EvtSetChannelConfigProperty(System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtChannelConfigPropertyId,System.Object):System.Void", Justification = "pkenny:contains large switch statement for conversion, cannot reduce anymore.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper.ConvertToObject(Microsoft.Win32.UnsafeNativeMethods+EvtVariant):System.Object", Justification = "pkenny:contains large switch statement for conversion, cannot reduce anymore.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper.EvtRenderBufferWithContextSystem(System.Diagnostics.Eventing.Reader.EventLogHandle,System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtRenderFlags,System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties,System.Int32):System.Void", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper.EvtRenderBufferWithContextSystem(System.Diagnostics.Eventing.Reader.EventLogHandle,System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtRenderFlags,System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties,System.Int32):System.Void", Justification = "pkenny:contains large switch statement for conversion, cannot reduce anymore.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper.EvtSetChannelConfigProperty(System.Diagnostics.Eventing.Reader.EventLogHandle,Microsoft.Win32.UnsafeNativeMethods+EvtChannelConfigPropertyId,System.Object):System.Void", Justification = "pkenny:cast occurs only once per case of switch statement.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "Type", Target = "System.Diagnostics.Eventing.Reader.PathType", Justification = "pkenny:Need to match this enum up against a native API enum.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.ProviderMetadata.Opcodes", MessageId = "Opcodes", Justification = "pkenny:OpCode is an existing name in eventlog world and would be more confusing to use different name.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogSession.GetProviderNames():System.Collections.Generic.IEnumerable`1<System.String>", Justification = "pkenny:The method performs a time-consuming operation. ")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogSession.GetLogNames():System.Collections.Generic.IEnumerable`1<System.String>", Justification = "pkenny:The method performs a time-consuming operation. ")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EvtVariant.StringVal", Justification = "pkenny:reviewed usage - in one instance unmanaged memory is owned/referenced by this member, but is appropriately freed in this case. It is not appropriate for this member to be SafeHandle for this one case.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogConfiguration.ProviderKeywords.get_ProviderKeywords():System.Nullable`1<System.Int64>", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogConfiguration.ProviderLatency.get_ProviderLatency():System.Nullable`1<System.Int32>", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogConfiguration.ProviderBufferSize.get_ProviderBufferSize():System.Nullable`1<System.Int32>", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogConfiguration.ProviderMinimumNumberOfBuffers.get_ProviderMinimumNumberOfBuffers():System.Nullable`1<System.Int32>", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogConfiguration.ProviderMaximumNumberOfBuffers.get_ProviderMaximumNumberOfBuffers():System.Nullable`1<System.Int32>", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogInformation..ctor(System.Diagnostics.Eventing.Reader.EventLogSession,System.String,System.Diagnostics.Eventing.Reader.PathType)", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogConfiguration.ProviderLevel.get_ProviderLevel():System.Nullable`1<System.Int32>", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.StandardEventKeywords.Sqm", MessageId = "Sqm", Justification = "pkenny:This is an acronym.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.StandardEventKeywords.WdiContext", MessageId = "Wdi", Justification = "pkenny:This is an acronym.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.StandardEventKeywords.WdiDiagnostic", MessageId = "Wdi", Justification = "pkenny:This is an acronym.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader", MessageId = "Eventing", Justification = "pkenny:'Eventing' is already used in an approved namespace : System.Diagnostics.Eventing")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "Namespace", Target = "System.Diagnostics.Eventing.Reader", Justification = "pkenny:Namespace approved by BCL team.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties.Keywords", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties.ProcessId", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties..ctor()", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties.Id", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties.Task", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties.ThreadId", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties.Qualifiers", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.NativeWrapper+SystemProperties.RecordId", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogRecord.Opcode.get_Opcode():System.Nullable`1<System.Int16>", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogRecord.ProcessId.get_ProcessId():System.Nullable`1<System.Int32>", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogRecord.RecordId.get_RecordId():System.Nullable`1<System.Int64>", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogRecord.Task.get_Task():System.Nullable`1<System.Int32>", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogRecord.ThreadId.get_ThreadId():System.Nullable`1<System.Int32>", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogRecord.Id.get_Id():System.Int32", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogRecord.Keywords.get_Keywords():System.Nullable`1<System.Int64>", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Eventing.Reader.EventLogRecord.Qualifiers.get_Qualifiers():System.Nullable`1<System.Int32>", Justification = "pkenny:use of nullable generics approved by BCL team in spec review.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Contracts.Contract.Exists(System.Int32,System.Int32,System.Predicate`1<System.Int32>):System.Boolean", Justification = "briangru:Delegates do not need our PZM hack. Confirmed with Jan Kotas, 10/2006")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Scope = "Member", Target = "System.Diagnostics.Contracts.Contract.ForAll(System.Int32,System.Int32,System.Predicate`1<System.Int32>):System.Boolean", Justification = "briangru:Delegates do not need our PZM hack. Confirmed with Jan Kotas, 10/2006")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "Member", Target = "System.Diagnostics.Contracts.Contract.AssertOnReturn(System.Boolean):System.Void", MessageId = "System.String.Concat(System.String,System.String)", Justification = "briangru:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "Member", Target = "System.Diagnostics.Contracts.Contract.AssertOnException(System.Boolean):System.Void", MessageId = "System.String.Concat(System.String,System.String)", Justification = "briangru:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "Member", Target = "System.Diagnostics.Contracts.Contract.Ensures(System.Boolean):System.Void", MessageId = "System.String.Concat(System.String,System.String)", Justification = "briangru:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "Member", Target = "System.Diagnostics.Contracts.Contract.Invariant(System.Boolean):System.Void", MessageId = "System.String.Concat(System.String,System.String)", Justification = "briangru:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "Member", Target = "System.Diagnostics.Contracts.Contract.ThrowsEnsures(System.Boolean):System.Void", MessageId = "System.String.Concat(System.String,System.String)", Justification = "briangru:<reason for baseline>")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "Member", Target = "System.Threading.ReaderWriterLockSlim.TryEnterWriteLock(System.Int32):System.Boolean", Justification = "sidharth:<reason for exclusion>")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Linq.OrderedParallelQuery`1", Justification="The name OrderedParallelQuery is more acceptable than the FXCop suggestion.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1720:IdentifiersShouldNotContainTypeNames", MessageId="long", Scope="member", Target="System.Linq.ParallelEnumerable.#LongCount`1(System.Linq.ParallelQuery`1<!!0>)", Justification="This is for System.Linq.Enumerable.LongCount")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming","CA1720:IdentifiersShouldNotContainTypeNames", MessageId="long", Scope="member", Target="System.Linq.ParallelEnumerable.#LongCount`1(System.Linq.ParallelQuery`1<!!0>,System.Func`2<!!0,System.Boolean>)", Justification="This is for System.Linq.Enumerable.LongCount")]
diff --git a/mcs/class/referencesource/System.Core/System/Collections/Generic/HashSet.cs b/mcs/class/referencesource/System.Core/System/Collections/Generic/HashSet.cs
index 889b638df36..95d4834c071 100644
--- a/mcs/class/referencesource/System.Core/System/Collections/Generic/HashSet.cs
+++ b/mcs/class/referencesource/System.Core/System/Collections/Generic/HashSet.cs
@@ -56,11 +56,11 @@ namespace System.Collections.Generic {
[DebuggerDisplay("Count = {Count}")]
[SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Justification="By design")]
#if SILVERLIGHT
- public class HashSet<T> : ICollection<T>, ISet<T>
+ public class HashSet<T> : ICollection<T>, ISet<T>, IReadOnlyCollection<T>
#else
[Serializable()]
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
- public class HashSet<T> : ICollection<T>, ISerializable, IDeserializationCallback, ISet<T>
+ public class HashSet<T> : ICollection<T>, ISerializable, IDeserializationCallback, ISet<T>, IReadOnlyCollection<T>
#endif
{
@@ -303,7 +303,7 @@ namespace System.Collections.Generic {
// need to serialize version to avoid problems with serializing while enumerating
info.AddValue(VersionName, m_version);
-#if FEATURE_RANDOMIZED_STRING_HASHING
+#if FEATURE_RANDOMIZED_STRING_HASHING && !FEATURE_NETCORE
info.AddValue(ComparerName, HashHelpers.GetEqualityComparerForSerialization(m_comparer), typeof(IEqualityComparer<T>));
#else
info.AddValue(ComparerName, m_comparer, typeof(IEqualityComparer<T>));
@@ -962,14 +962,14 @@ namespace System.Collections.Generic {
int hashCode = InternalGetHashCode(value);
int bucket = hashCode % m_buckets.Length;
-#if FEATURE_RANDOMIZED_STRING_HASHING
+#if FEATURE_RANDOMIZED_STRING_HASHING && !FEATURE_NETCORE
int collisionCount = 0;
#endif
for (int i = m_buckets[hashCode % m_buckets.Length] - 1; i >= 0; i = m_slots[i].next) {
if (m_slots[i].hashCode == hashCode && m_comparer.Equals(m_slots[i].value, value)) {
return false;
}
-#if FEATURE_RANDOMIZED_STRING_HASHING
+#if FEATURE_RANDOMIZED_STRING_HASHING && !FEATURE_NETCORE
collisionCount++;
#endif
}
@@ -995,7 +995,7 @@ namespace System.Collections.Generic {
m_count++;
m_version++;
-#if FEATURE_RANDOMIZED_STRING_HASHING
+#if FEATURE_RANDOMIZED_STRING_HASHING && !FEATURE_NETCORE
if(collisionCount > HashHelpers.HashCollisionThreshold && HashHelpers.IsWellKnownEqualityComparer(m_comparer)) {
m_comparer = (IEqualityComparer<T>) HashHelpers.GetRandomizedEqualityComparer(m_comparer);
SetCapacity(m_buckets.Length, true);
diff --git a/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/EventDescriptor.cs b/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/EventDescriptor.cs
index 767fdd4cd85..cfe9bd24a40 100644
--- a/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/EventDescriptor.cs
+++ b/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/EventDescriptor.cs
@@ -28,7 +28,7 @@ namespace System.Diagnostics.Eventing
[FieldOffset(8)]
private long m_keywords;
- [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "opcode", Justification = "[....]: Shipped public in 3.5, breaking change to fix now.")]
+ [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "opcode", Justification = "Microsoft: Shipped public in 3.5, breaking change to fix now.")]
public EventDescriptor(
int id,
byte version,
@@ -98,7 +98,7 @@ namespace System.Diagnostics.Eventing
}
}
- [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "Opcode", Justification = "[....]: Shipped public in 3.5, breaking change to fix now.")]
+ [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "Opcode", Justification = "Microsoft: Shipped public in 3.5, breaking change to fix now.")]
public byte Opcode
{
get
diff --git a/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/EventProvider.cs b/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/EventProvider.cs
index fe72df70702..4ec838987c6 100644
--- a/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/EventProvider.cs
+++ b/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/EventProvider.cs
@@ -753,7 +753,7 @@ namespace System.Diagnostics.Eventing{
{
// If relatedActivityId is Guid.Empty, this is not a real transfer: just call EventWrite().
// For pre-Win7 platforms we cannot set the activityId from CorrelationManager
- // because we cannot set relatedActivityId to null (Win7 bug 116784)
+ // because we cannot set relatedActivityId to null (Win7
status = UnsafeNativeMethods.EventWrite (m_regHandle,
ref eventDescriptor,
(uint)argCount,
diff --git a/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventLogSession.cs b/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventLogSession.cs
index 6515e3d87aa..408bce798c0 100644
--- a/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventLogSession.cs
+++ b/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventLogSession.cs
@@ -52,7 +52,7 @@ namespace System.Diagnostics.Eventing.Reader {
internal EventLogHandle renderContextHandleSystem = EventLogHandle.Zero;
internal EventLogHandle renderContextHandleUser = EventLogHandle.Zero;
- //the dummy [....] object for the two contextes.
+ //the dummy sync object for the two contextes.
private object syncObject = null;
private string server;
diff --git a/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventMetadata.cs b/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventMetadata.cs
index 4aa1910d960..ce3f4c8d049 100644
--- a/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventMetadata.cs
+++ b/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventMetadata.cs
@@ -86,7 +86,7 @@ namespace System.Diagnostics.Eventing.Reader {
}
}
- [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "Opcode", Justification = "[....]: Shipped public in 3.5, breaking change to fix now.")]
+ [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "Opcode", Justification = "Microsoft: Shipped public in 3.5, breaking change to fix now.")]
public EventOpcode Opcode {
get {
return new EventOpcode(this.opcode, this.pmReference);
diff --git a/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventOpcode.cs b/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventOpcode.cs
index c597a47c226..f930037c34e 100644
--- a/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventOpcode.cs
+++ b/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventOpcode.cs
@@ -20,7 +20,7 @@ using System.Diagnostics.CodeAnalysis;
namespace System.Diagnostics.Eventing.Reader {
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
- [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "Opcode", Justification = "[....]: Shipped public in 3.5, breaking change to fix now.")]
+ [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "Opcode", Justification = "Microsoft: Shipped public in 3.5, breaking change to fix now.")]
public sealed class EventOpcode {
private int value;
private string name;
diff --git a/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventRecord.cs b/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventRecord.cs
index e50e1f0e493..c81eb96bfa0 100644
--- a/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventRecord.cs
+++ b/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/EventRecord.cs
@@ -30,7 +30,7 @@ namespace System.Diagnostics.Eventing.Reader {
public abstract byte? Level { get; }
public abstract int? Task { get; }
- [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "Opcode", Justification = "[....]: Shipped public in 3.5, breaking change to fix now.")]
+ [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "Opcode", Justification = "Microsoft: Shipped public in 3.5, breaking change to fix now.")]
public abstract short? Opcode { get; }
public abstract long? Keywords { get; }
@@ -55,7 +55,7 @@ namespace System.Diagnostics.Eventing.Reader {
public abstract string LevelDisplayName { get; }
- [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "Opcode", Justification = "[....]: Shipped public in 3.5, breaking change to fix now.")]
+ [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "Opcode", Justification = "Microsoft: Shipped public in 3.5, breaking change to fix now.")]
public abstract string OpcodeDisplayName { get; }
public abstract string TaskDisplayName { get; }
public abstract IEnumerable<string> KeywordsDisplayNames { get; }
diff --git a/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/ProviderMetadata.cs b/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/ProviderMetadata.cs
index fc82c705836..b1cf7fc07cb 100644
--- a/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/ProviderMetadata.cs
+++ b/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/ProviderMetadata.cs
@@ -440,7 +440,7 @@ namespace System.Diagnostics.Eventing.Reader {
}
}
- [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "Opcodes", Justification = "[....]: Shipped public in 3.5, breaking change to fix now.")]
+ [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "Opcodes", Justification = "Microsoft: Shipped public in 3.5, breaking change to fix now.")]
public IList<EventOpcode> Opcodes {
get {
List<EventOpcode> eo;
diff --git a/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/Winmeta.cs b/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/Winmeta.cs
index 883eea188ee..e8d96dcb3b4 100644
--- a/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/Winmeta.cs
+++ b/mcs/class/referencesource/System.Core/System/Diagnostics/Eventing/Reader/Winmeta.cs
@@ -57,7 +57,7 @@ namespace System.Diagnostics.Eventing.Reader {
/// <summary>
/// EventOpcode
/// </summary>
- [SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Opcode", Justification="[....]: Shipped public in 3.5, breaking change to fix now.")]
+ [SuppressMessage("Microsoft.Naming","CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId="Opcode", Justification="matell: Shipped public in 3.5, breaking change to fix now.")]
public enum StandardEventOpcode {
/// <summary>
/// An informational event
@@ -152,4 +152,4 @@ namespace System.Diagnostics.Eventing.Reader {
/// </summary>
EventLogClassic = 0x80000000000000
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Core/System/FuncAndAction.cs b/mcs/class/referencesource/System.Core/System/FuncAndAction.cs
index ab43cd2d683..eaeca8fc9c9 100644
--- a/mcs/class/referencesource/System.Core/System/FuncAndAction.cs
+++ b/mcs/class/referencesource/System.Core/System/FuncAndAction.cs
@@ -17,4 +17,4 @@
// Action and Func types exist in mscorlib (up to 8 generic argument paremeters)
// and in System.Core.dll (See Microsoft\Scripting\Utils\[Action.cs | Function.cs])
-// for 9-16 generic argument parameter versions.
+// for 9-16 generic argument parameter versions. \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Core/System/IO/BufferedStream2.cs b/mcs/class/referencesource/System.Core/System/IO/BufferedStream2.cs
index d958460110f..ba1e49453bd 100644
--- a/mcs/class/referencesource/System.Core/System/IO/BufferedStream2.cs
+++ b/mcs/class/referencesource/System.Core/System/IO/BufferedStream2.cs
@@ -265,7 +265,7 @@ internal abstract class BufferedStream2 : Stream
// (either synchronously or asynchronously) before the first one
// returns. This would involve some sort of complex buffer locking
// that we probably don't want to get into, at least not in V1.
- // If we did a [....] read to fill the buffer, we could avoid the
+ // If we did a sync read to fill the buffer, we could avoid the
// problem, and any async read less than 64K gets turned into a
// synchronous read by NT anyways... --
@@ -508,7 +508,7 @@ internal abstract class BufferedStream2 : Stream
// Reading is done by blocks from the file, but someone could read
// 1 byte from the buffer then write. At that point, the OS's file
- // pointer is out of [....] with the stream's position. All write
+ // pointer is out of sync with the stream's position. All write
// functions should call this function to preserve the position in the file.
[MethodImplAttribute(MethodImplOptions.Synchronized)]
protected void FlushRead() {
diff --git a/mcs/class/referencesource/System.Core/System/IO/Enums.cs b/mcs/class/referencesource/System.Core/System/IO/Enums.cs
index c53835134c8..bed84594e7a 100644
--- a/mcs/class/referencesource/System.Core/System/IO/Enums.cs
+++ b/mcs/class/referencesource/System.Core/System/IO/Enums.cs
@@ -18,7 +18,9 @@ using System.Text;
namespace System.IO {
+#if !FEATURE_CORESYSTEM
[Serializable]
+#endif
public enum HandleInheritability {
None = 0,
Inheritable = 1,
diff --git a/mcs/class/referencesource/System.Core/System/IO/LogStream.cs b/mcs/class/referencesource/System.Core/System/IO/LogStream.cs
index 69179635a8e..37b0623d37d 100644
--- a/mcs/class/referencesource/System.Core/System/IO/LogStream.cs
+++ b/mcs/class/referencesource/System.Core/System/IO/LogStream.cs
@@ -278,7 +278,7 @@ internal class LogStream : BufferedStream2
}
if (r == 0) {
- // We should never silently ---- an error here without some
+ // We should never silently swallow an error here without some
// extra work. We must make sure that BeginWriteCore won't return an
// IAsyncResult that will cause EndWrite to block, since the OS won't
// call AsyncFSCallback for us.
diff --git a/mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedFile.cs b/mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedFile.cs
index e1e2d1d2d7e..274d98ad107 100644
--- a/mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedFile.cs
+++ b/mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedFile.cs
@@ -181,6 +181,12 @@ namespace System.IO.MemoryMappedFiles {
return new MemoryMappedFile(handle, fileStream, false);
}
+ public static MemoryMappedFile CreateFromFile(FileStream fileStream, String mapName, Int64 capacity,
+ MemoryMappedFileAccess access,
+ HandleInheritability inheritability, bool leaveOpen) {
+ return CreateFromFile(fileStream, mapName, capacity, access, null, inheritability, leaveOpen);
+ }
+
[System.Security.SecurityCritical]
[SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public static MemoryMappedFile CreateFromFile(FileStream fileStream, String mapName, Int64 capacity,
@@ -250,6 +256,12 @@ namespace System.IO.MemoryMappedFiles {
HandleInheritability.None);
}
+ public static MemoryMappedFile CreateNew(String mapName, Int64 capacity, MemoryMappedFileAccess access,
+ MemoryMappedFileOptions options,
+ HandleInheritability inheritability) {
+ return CreateNew(mapName, capacity, access, options, null, inheritability);
+ }
+
[System.Security.SecurityCritical]
[SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public static MemoryMappedFile CreateNew(String mapName, Int64 capacity, MemoryMappedFileAccess access,
@@ -305,6 +317,12 @@ namespace System.IO.MemoryMappedFiles {
return CreateOrOpen(mapName, capacity, access, MemoryMappedFileOptions.None, null, HandleInheritability.None);
}
+ public static MemoryMappedFile CreateOrOpen(String mapName, Int64 capacity,
+ MemoryMappedFileAccess access, MemoryMappedFileOptions options,
+ HandleInheritability inheritability) {
+ return CreateOrOpen(mapName, capacity, access, options, null, inheritability);
+ }
+
[System.Security.SecurityCritical]
[SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public static MemoryMappedFile CreateOrOpen(String mapName, Int64 capacity,
diff --git a/mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedView.cs b/mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedView.cs
index 19bfac4949c..a88b941d0c7 100644
--- a/mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedView.cs
+++ b/mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedView.cs
@@ -102,7 +102,7 @@ namespace System.IO.MemoryMappedFiles {
// if request is >= than total virtual, then MapViewOfFile will fail with meaningless error message
// "the parameter is incorrect"; this provides better error message in advance
UnsafeNativeMethods.MEMORYSTATUSEX memStatus = new UnsafeNativeMethods.MEMORYSTATUSEX();
- bool result = UnsafeNativeMethods.GlobalMemoryStatusEx(memStatus);
+ bool result = UnsafeNativeMethods.GlobalMemoryStatusEx(ref memStatus);
ulong totalVirtual = memStatus.ullTotalVirtual;
if (nativeSize >= totalVirtual) {
throw new IOException(SR.GetString(SR.IO_NotEnoughMemory));
@@ -125,14 +125,32 @@ namespace System.IO.MemoryMappedFiles {
ulong viewSize = (ulong)viewInfo.RegionSize;
- // allocate the pages if we were using the MemoryMappedFileOptions.DelayAllocatePages option
- if ((viewInfo.State & UnsafeNativeMethods.MEM_RESERVE) != 0) {
- IntPtr tempHandle = UnsafeNativeMethods.VirtualAlloc(viewHandle, (UIntPtr)viewSize, UnsafeNativeMethods.MEM_COMMIT,
+ // Allocate the pages if we were using the MemoryMappedFileOptions.DelayAllocatePages option
+ // OR check if the allocated view size is smaller than the expected native size
+ // If multiple overlapping views are created over the file mapping object, the pages in a given region
+ // could have different attributes(MEM_RESERVE OR MEM_COMMIT) as MapViewOfFile preserves coherence between
+ // views created on a mapping object backed by same file.
+ // In which case, the viewSize will be smaller than nativeSize required and viewState could be MEM_COMMIT
+ // but more pages may need to be committed in the region.
+ // This is because, VirtualQuery function(that internally invokes VirtualQueryEx function) returns the attributes
+ // and size of the region of pages with matching attributes starting from base address.
+ // VirtualQueryEx: http://msdn.microsoft.com/en-us/library/windows/desktop/aa366907(v=vs.85).aspx
+ if (((viewInfo.State & UnsafeNativeMethods.MEM_RESERVE) != 0) || (viewSize < nativeSize)) {
+ ulong allocSize = (nativeSize == 0) ? viewSize : nativeSize;
+ IntPtr tempHandle = UnsafeNativeMethods.VirtualAlloc(viewHandle, (UIntPtr)allocSize, UnsafeNativeMethods.MEM_COMMIT,
MemoryMappedFile.GetPageAccess(access));
int lastError = Marshal.GetLastWin32Error();
- if (viewHandle.IsInvalid) {
- __Error.WinIOError(lastError, String.Empty);
- }
+ // The following is commented out for backward compatibility.
+ // Previously releases failed to check for this error so introducing this check
+ // could cause new/different exceptions in existing code paths.
+ // if (tempHandle == IntPtr.Zero) {
+ // __Error.WinIOError(lastError, String.Empty);
+ // }
+
+ // again query the view for its new size
+ viewInfo = new UnsafeNativeMethods.MEMORY_BASIC_INFORMATION();
+ UnsafeNativeMethods.VirtualQuery(viewHandle, ref viewInfo, (IntPtr)Marshal.SizeOf(viewInfo));
+ viewSize = (ulong)viewInfo.RegionSize;
}
// if the user specified DefaultSize as the size, we need to get the actual size
@@ -149,7 +167,7 @@ namespace System.IO.MemoryMappedFiles {
}
- // Flushes the changes such that they are in [....] with the FileStream bits (ones obtained
+ // Flushes the changes such that they are in sync with the FileStream bits (ones obtained
// with the win32 ReadFile and WriteFile functions). Need to call FileStream's Flush to
// flush to the disk.
// NOTE: This will flush all bytes before and after the view up until an offset that is a multiple
diff --git a/mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedViewAccessor.cs b/mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedViewAccessor.cs
index 3df123c5509..c79b81dfe1a 100644
--- a/mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedViewAccessor.cs
+++ b/mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedViewAccessor.cs
@@ -76,7 +76,7 @@ namespace System.IO.MemoryMappedFiles {
}
}
- // Flushes the changes such that they are in [....] with the FileStream bits (ones obtained
+ // Flushes the changes such that they are in sync with the FileStream bits (ones obtained
// with the win32 ReadFile and WriteFile functions). Need to call FileStream's Flush to
// flush to the disk.
// NOTE: This will flush all bytes before and after the view up until an offset that is a
diff --git a/mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedViewStream.cs b/mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedViewStream.cs
index 283048b069c..c531a45d5ca 100644
--- a/mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedViewStream.cs
+++ b/mcs/class/referencesource/System.Core/System/IO/MemoryMappedFiles/MemoryMappedViewStream.cs
@@ -78,7 +78,7 @@ namespace System.IO.MemoryMappedFiles {
}
}
- // Flushes the changes such that they are in [....] with the FileStream bits (ones obtained
+ // Flushes the changes such that they are in sync with the FileStream bits (ones obtained
// with the win32 ReadFile and WriteFile functions). Need to call FileStream's Flush to
// flush to the disk.
// NOTE: This will flush all bytes before and after the view up until an offset that is a
diff --git a/mcs/class/referencesource/System.Core/System/IO/Pipes/IOCancellationHelper.cs b/mcs/class/referencesource/System.Core/System/IO/Pipes/IOCancellationHelper.cs
new file mode 100644
index 00000000000..3c6d42bdc27
--- /dev/null
+++ b/mcs/class/referencesource/System.Core/System/IO/Pipes/IOCancellationHelper.cs
@@ -0,0 +1,99 @@
+//------------------------------------------------------------------------------
+// <copyright company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+//------------------------------------------------------------------------------
+using System.Diagnostics;
+using System.Diagnostics.Contracts;
+using System.Runtime.InteropServices;
+using System.Security;
+using System.Threading;
+using UnsafeNativeMethods = Microsoft.Win32.UnsafeNativeMethods;
+
+namespace System.IO.Pipes {
+ internal unsafe class IOCancellationHelper {
+ private CancellationToken _cancellationToken;
+ private CancellationTokenRegistration _cancellationRegistration;
+ [SecurityCritical]
+ private SafeHandle _handle;
+ [SecurityCritical]
+ private NativeOverlapped* _overlapped;
+
+ public IOCancellationHelper(CancellationToken cancellationToken) {
+ this._cancellationToken = cancellationToken;
+ }
+
+ /// <summary>
+ /// Marking that from this moment on
+ /// user can cancel operation using cancellationToken
+ /// </summary>
+ [SecurityCritical]
+ public void AllowCancellation(SafeHandle handle, NativeOverlapped* overlapped) {
+ Contract.Assert(handle != null, "Handle cannot be null");
+ Contract.Assert(!handle.IsInvalid, "Handle cannot be invalid");
+ Contract.Assert(overlapped != null, "Overlapped cannot be null");
+ Contract.Assert(this._handle == null && this._overlapped == null, "Cancellation is already allowed.");
+
+ if (!_cancellationToken.CanBeCanceled) {
+ return;
+ }
+
+ this._handle = handle;
+ this._overlapped = overlapped;
+ if (this._cancellationToken.IsCancellationRequested) {
+ this.Cancel();
+ }
+ else {
+ this._cancellationRegistration = this._cancellationToken.Register(Cancel);
+ }
+ }
+
+ /// <summary>
+ /// Marking that operation is completed and
+ /// from this moment cancellation is no longer possible.
+ /// This MUST happen before Overlapped is freed and Handle is disposed.
+ /// </summary>
+ [SecurityCritical]
+ public void SetOperationCompleted() {
+ if (this._overlapped != null) {
+ this._cancellationRegistration.Dispose();
+ this._handle = null;
+ this._overlapped = null;
+ }
+ }
+
+ public void ThrowIOOperationAborted() {
+ this._cancellationToken.ThrowIfCancellationRequested();
+
+ // If we didn't throw that means that this is unexpected abortion
+ __Error.OperationAborted();
+ }
+
+ /// <summary>
+ /// Cancellation is not guaranteed to succeed.
+ /// We ignore all errors here because operation could
+ /// succeed just before it was called or someone already
+ /// cancelled this operation without using token which should
+ /// be manually detected - when operation finishes we should
+ /// compare error code to ERROR_OPERATION_ABORTED and if cancellation
+ /// token was not used to cancel we will throw.
+ /// </summary>
+ [SecurityCritical]
+ private void Cancel() {
+ // Storing to locals to avoid data ----s
+ SafeHandle handle = this._handle;
+ NativeOverlapped* overlapped = this._overlapped;
+ if (handle != null && !handle.IsInvalid && overlapped != null) {
+ if (!UnsafeNativeMethods.CancelIoEx(handle, overlapped))
+ {
+ // This case should not have any consequences although
+ // it will be easier to debug if there exists any special case
+ // we are not aware of.
+ int errorCode = Marshal.GetLastWin32Error();
+ Debug.WriteLine("CancelIoEx finished with error code {0}.", errorCode);
+ }
+ SetOperationCompleted();
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Core/System/IO/Pipes/Pipe.cs b/mcs/class/referencesource/System.Core/System/IO/Pipes/Pipe.cs
index 7e7df0033eb..7880ffd20f6 100644
--- a/mcs/class/referencesource/System.Core/System/IO/Pipes/Pipe.cs
+++ b/mcs/class/referencesource/System.Core/System/IO/Pipes/Pipe.cs
@@ -28,6 +28,7 @@ using System.Security.Permissions;
using System.Security.Principal;
using System.Text;
using System.Threading;
+using System.Threading.Tasks;
using Microsoft.Win32;
using Microsoft.Win32.SafeHandles;
@@ -623,6 +624,24 @@ namespace System.IO.Pipes {
}
}
+ public Task WaitForConnectionAsync(CancellationToken cancellationToken) {
+ if (cancellationToken.IsCancellationRequested) {
+ return Task.FromCancellation(cancellationToken);
+ }
+
+ if (!IsAsync) {
+ return Task.Factory.StartNew(WaitForConnection, cancellationToken);
+ }
+
+ // Avoiding allocation if the task cannot be cancelled
+ IOCancellationHelper cancellationHelper = cancellationToken.CanBeCanceled ? new IOCancellationHelper(cancellationToken) : null;
+ return Task.Factory.FromAsync(BeginWaitForConnection, EndWaitForConnection, cancellationHelper);
+ }
+
+ public Task WaitForConnectionAsync() {
+ return WaitForConnectionAsync(CancellationToken.None);
+ }
+
// Async version of WaitForConnection. See the comments above for more info.
[System.Security.SecurityCritical]
[HostProtection(ExternalThreading = true)]
@@ -640,6 +659,8 @@ namespace System.IO.Pipes {
asyncResult._userCallback = callback;
asyncResult._userStateObject = state;
+ IOCancellationHelper cancellationHelper = state as IOCancellationHelper;
+
// Create wait handle and store in async result
ManualResetEvent waitHandle = new ManualResetEvent(false);
asyncResult._waitHandle = waitHandle;
@@ -655,8 +676,12 @@ namespace System.IO.Pipes {
if (!UnsafeNativeMethods.ConnectNamedPipe(InternalHandle, intOverlapped)) {
int errorCode = Marshal.GetLastWin32Error();
- if (errorCode == UnsafeNativeMethods.ERROR_IO_PENDING)
+ if (errorCode == UnsafeNativeMethods.ERROR_IO_PENDING) {
+ if (cancellationHelper != null) {
+ cancellationHelper.AllowCancellation(InternalHandle, intOverlapped);
+ }
return asyncResult;
+ }
// WaitForConnectionCallback will not be called becasue we completed synchronously.
// Either the pipe is already connected, or there was an error. Unpin and free the overlapped again.
@@ -676,6 +701,9 @@ namespace System.IO.Pipes {
__Error.WinIOError(errorCode, String.Empty);
}
// will set state to Connected when EndWait is called
+ if (cancellationHelper != null) {
+ cancellationHelper.AllowCancellation(InternalHandle, intOverlapped);
+ }
return asyncResult;
}
@@ -704,6 +732,11 @@ namespace System.IO.Pipes {
__Error.EndWaitForConnectionCalledTwice();
}
+ IOCancellationHelper cancellationHelper = afsar.AsyncState as IOCancellationHelper;
+ if (cancellationHelper != null) {
+ cancellationHelper.SetOperationCompleted();
+ }
+
// Obtain the WaitHandle, but don't use public property in case we
// delay initialize the manual reset event in the future.
WaitHandle wh = afsar._waitHandle;
@@ -728,6 +761,11 @@ namespace System.IO.Pipes {
// Now check for any error during the read.
if (afsar._errorCode != 0) {
+ if (afsar._errorCode == UnsafeNativeMethods.ERROR_OPERATION_ABORTED) {
+ if (cancellationHelper != null) {
+ cancellationHelper.ThrowIOOperationAborted();
+ }
+ }
__Error.WinIOError(afsar._errorCode, String.Empty);
}
@@ -939,6 +977,9 @@ namespace System.IO.Pipes {
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
public sealed class NamedPipeClientStream : PipeStream {
+ // Maximum interval in miliseconds between which cancellation is checked.
+ // Used by ConnectInternal. 50ms is fairly responsive time but really long time for processor.
+ private const int CancellationCheckIntervalInMilliseconds = 50;
private string m_normalizedPipePath;
private TokenImpersonationLevel m_impersonationLevel;
private PipeOptions m_pipeOptions;
@@ -1193,6 +1234,127 @@ namespace System.IO.Pipes {
throw new TimeoutException();
}
+ public Task ConnectAsync() {
+ // We cannot avoid creating lambda here by using Connect method
+ // unless we don't care about start time to be measured before the thread is started
+ return ConnectAsync(Timeout.Infinite, CancellationToken.None);
+ }
+
+ public Task ConnectAsync(int timeout) {
+ return ConnectAsync(timeout, CancellationToken.None);
+ }
+
+ public Task ConnectAsync(CancellationToken cancellationToken) {
+ return ConnectAsync(Timeout.Infinite, cancellationToken);
+ }
+
+ public Task ConnectAsync(int timeout, CancellationToken cancellationToken) {
+ CheckConnectOperationsClient();
+
+ if (timeout < 0 && timeout != Timeout.Infinite) {
+ throw new ArgumentOutOfRangeException("timeout", SR.GetString(SR.ArgumentOutOfRange_InvalidTimeout));
+ }
+
+ if (cancellationToken.IsCancellationRequested) {
+ return Task.FromCancellation(cancellationToken);
+ }
+
+ // We need to measure time here, not in the lambda
+ int startTime = Environment.TickCount;
+ return Task.Factory.StartNew(() => ConnectInternal(timeout, cancellationToken, startTime), cancellationToken);
+ }
+
+ // Waits for a pipe instance to become available. This method may return before WaitForConnection is called
+ // on the server end, but WaitForConnection will not return until we have returned. Any data writen to the
+ // pipe by us after we have connected but before the server has called WaitForConnection will be available
+ // to the server after it calls WaitForConnection.
+ [System.Security.SecuritySafeCritical]
+ private void ConnectInternal(int timeout, CancellationToken cancellationToken, int startTime) {
+ UnsafeNativeMethods.SECURITY_ATTRIBUTES secAttrs = PipeStream.GetSecAttrs(m_inheritability);
+
+ int _pipeFlags = (int)m_pipeOptions;
+ if (m_impersonationLevel != TokenImpersonationLevel.None) {
+ _pipeFlags |= UnsafeNativeMethods.SECURITY_SQOS_PRESENT;
+ _pipeFlags |= (((int)m_impersonationLevel - 1) << 16);
+ }
+
+ // This is the main connection loop. It will loop until the timeout expires. Most of the
+ // time, we will be waiting in the WaitNamedPipe win32 blocking function; however, there are
+ // cases when we will need to loop: 1) The server is not created (WaitNamedPipe returns
+ // straight away in such cases), and 2) when another client connects to our server in between
+ // our WaitNamedPipe and CreateFile calls.
+ int elapsed = 0;
+ do {
+ // We want any other exception and and success to have priority over cancellation.
+ cancellationToken.ThrowIfCancellationRequested();
+
+ // Wait for pipe to become free (this will block unless the pipe does not exist).
+ int timeLeft = timeout - elapsed;
+ int waitTime;
+ if (cancellationToken.CanBeCanceled) {
+ waitTime = Math.Min(CancellationCheckIntervalInMilliseconds, timeLeft);
+ }
+ else {
+ waitTime = timeLeft;
+ }
+
+ if (!UnsafeNativeMethods.WaitNamedPipe(m_normalizedPipePath, waitTime)) {
+ int errorCode = Marshal.GetLastWin32Error();
+
+ // Server is not yet created so let's keep looping.
+ if (errorCode == UnsafeNativeMethods.ERROR_FILE_NOT_FOUND) {
+ continue;
+ }
+
+ // The timeout has expired.
+ if (errorCode == UnsafeNativeMethods.ERROR_SUCCESS) {
+ if (cancellationToken.CanBeCanceled) {
+ // It may not be real timeout and only checking for cancellation
+ // let the while condition check it and decide
+ continue;
+ }
+ else {
+ break;
+ }
+ }
+
+ __Error.WinIOError(errorCode, String.Empty);
+ }
+
+ // Pipe server should be free. Let's try to connect to it.
+ SafePipeHandle handle = UnsafeNativeMethods.CreateNamedPipeClient(m_normalizedPipePath,
+ m_access, // read and write access
+ 0, // sharing: none
+ secAttrs, // security attributes
+ FileMode.Open, // open existing
+ _pipeFlags, // impersonation flags
+ UnsafeNativeMethods.NULL); // template file: null
+
+ if (handle.IsInvalid) {
+ int errorCode = Marshal.GetLastWin32Error();
+
+ // Handle the possible race condition of someone else connecting to the server
+ // between our calls to WaitNamedPipe & CreateFile.
+ if (errorCode == UnsafeNativeMethods.ERROR_PIPE_BUSY) {
+ continue;
+ }
+
+ __Error.WinIOError(errorCode, String.Empty);
+ }
+
+ // Success!
+ InitializeHandle(handle, false, (m_pipeOptions & PipeOptions.Asynchronous) != 0);
+ State = PipeState.Connected;
+
+ return;
+ }
+ while (timeout == Timeout.Infinite || (elapsed = unchecked(Environment.TickCount - startTime)) < timeout);
+ // BUGBUG: SerialPort does not use unchecked arithmetic when calculating elapsed times. This is needed
+ // because Environment.TickCount can overflow (though only every 49.7 days).
+
+ throw new TimeoutException();
+ }
+
public int NumberOfServerInstances {
[System.Security.SecurityCritical]
[SuppressMessage("Microsoft.Security","CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Justification="Security model of pipes: demand at creation but no subsequent demands")]
diff --git a/mcs/class/referencesource/System.Core/System/IO/Pipes/PipeStream.cs b/mcs/class/referencesource/System.Core/System/IO/Pipes/PipeStream.cs
index d3b913c00ac..02018024c39 100644
--- a/mcs/class/referencesource/System.Core/System/IO/Pipes/PipeStream.cs
+++ b/mcs/class/referencesource/System.Core/System/IO/Pipes/PipeStream.cs
@@ -256,7 +256,7 @@ namespace System.IO.Pipes {
CheckReadOperations();
if (!m_isAsync) {
- // special case when this is called for [....] broken pipes because otherwise Stream's
+ // special case when this is called for sync broken pipes because otherwise Stream's
// Begin/EndRead hang. Reads return 0 bytes in this case so we can call the user's
// callback immediately
if (m_state == PipeState.Broken) {
@@ -645,7 +645,7 @@ namespace System.IO.Pipes {
}
if (r == 0) {
- // We should never silently ---- an error here without some
+ // We should never silently swallow an error here without some
// extra work. We must make sure that BeginReadCore won't return an
// IAsyncResult that will cause EndRead to block, since the OS won't
// call AsyncPSCallback for us.
@@ -695,7 +695,7 @@ namespace System.IO.Pipes {
}
if (r == 0) {
- // We should never silently ---- an error here without some
+ // We should never silently swallow an error here without some
// extra work. We must make sure that BeginWriteCore won't return an
// IAsyncResult that will cause EndWrite to block, since the OS won't
// call AsyncPSCallback for us.
diff --git a/mcs/class/referencesource/System.Core/System/IO/__Error.cs b/mcs/class/referencesource/System.Core/System/IO/__Error.cs
index 02960e8466f..596a0e973d1 100644
--- a/mcs/class/referencesource/System.Core/System/IO/__Error.cs
+++ b/mcs/class/referencesource/System.Core/System/IO/__Error.cs
@@ -217,5 +217,8 @@ namespace System.IO {
throw new NotSupportedException(SR.GetString(SR.NotSupported_UnwritableStream));
}
+ internal static void OperationAborted() {
+ throw new IOException(SR.GetString(SR.IO_OperationAborted));
+ }
}
}
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Enumerable.cs b/mcs/class/referencesource/System.Core/System/Linq/Enumerable.cs
index d718d487e99..66e864ef023 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Enumerable.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Enumerable.cs
@@ -2016,16 +2016,14 @@ namespace System.Linq
}
}
+
+ //
+ // We have added some optimization in SZArrayHelper class to cache the enumerator of zero length arrays so
+ // the enumerator will be created once per type.
+ //
internal class EmptyEnumerable<TElement>
{
- static volatile TElement[] instance;
-
- public static IEnumerable<TElement> Instance {
- get {
- if (instance == null) instance = new TElement[0];
- return instance;
- }
- }
+ public static readonly TElement[] Instance = new TElement[0];
}
internal class IdentityFunction<TElement>
@@ -2130,7 +2128,7 @@ namespace System.Linq
internal int InternalGetHashCode(TKey key)
{
- //[....] DevDivBugs 171937. work around comparer implementations that throw when passed null
+ //Microsoft DevDivBugs 171937. work around comparer implementations that throw when passed null
return (key == null) ? 0 : comparer.GetHashCode(key) & 0x7FFFFFFF;
}
@@ -2348,7 +2346,7 @@ namespace System.Linq
internal int InternalGetHashCode(TElement value)
{
- //[....] DevDivBugs 171937. work around comparer implementations that throw when passed null
+ //Microsoft DevDivBugs 171937. work around comparer implementations that throw when passed null
return (value == null) ? 0 : comparer.GetHashCode(value) & 0x7FFFFFFF;
}
diff --git a/mcs/class/referencesource/System.Core/System/Linq/IQueryable.cs b/mcs/class/referencesource/System.Core/System/Linq/IQueryable.cs
index 6b059022376..fa32bb39d76 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/IQueryable.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/IQueryable.cs
@@ -40,6 +40,34 @@ namespace System.Linq {
public static class Queryable {
+#region Helper methods to obtain MethodInfo in a safe way
+
+ private static MethodInfo GetMethodInfo<T1, T2>(Func<T1, T2> f, T1 unused1) {
+ return f.Method;
+ }
+
+ private static MethodInfo GetMethodInfo<T1, T2, T3>(Func<T1, T2, T3> f, T1 unused1, T2 unused2) {
+ return f.Method;
+ }
+
+ private static MethodInfo GetMethodInfo<T1, T2, T3, T4>(Func<T1, T2, T3, T4> f, T1 unused1, T2 unused2, T3 unused3) {
+ return f.Method;
+ }
+
+ private static MethodInfo GetMethodInfo<T1, T2, T3, T4, T5>(Func<T1, T2, T3, T4, T5> f, T1 unused1, T2 unused2, T3 unused3, T4 unused4) {
+ return f.Method;
+ }
+
+ private static MethodInfo GetMethodInfo<T1, T2, T3, T4, T5, T6>(Func<T1, T2, T3, T4, T5, T6> f, T1 unused1, T2 unused2, T3 unused3, T4 unused4, T5 unused5) {
+ return f.Method;
+ }
+
+ private static MethodInfo GetMethodInfo<T1, T2, T3, T4, T5, T6, T7>(Func<T1, T2, T3, T4, T5, T6, T7> f, T1 unused1, T2 unused2, T3 unused3, T4 unused4, T5 unused5, T6 unused6) {
+ return f.Method;
+ }
+
+#endregion
+
public static IQueryable<TElement> AsQueryable<TElement>(this IEnumerable<TElement> source) {
if (source == null)
throw Error.ArgumentNull("source");
@@ -67,7 +95,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Where, source, predicate),
new Expression[] { source.Expression, Expression.Quote(predicate) }
));
}
@@ -79,8 +107,8 @@ namespace System.Linq {
throw Error.ArgumentNull("predicate");
return source.Provider.CreateQuery<TSource>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Where, source, predicate),
new Expression[] { source.Expression, Expression.Quote(predicate) }
));
}
@@ -91,7 +119,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TResult>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TResult)),
+ GetMethodInfo(Queryable.OfType<TResult>, source),
new Expression[] { source.Expression }
));
}
@@ -101,8 +129,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source");
return source.Provider.CreateQuery<TResult>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TResult)),
+ null,
+ GetMethodInfo(Queryable.Cast<TResult>, source),
new Expression[] { source.Expression }
));
}
@@ -115,7 +143,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TResult>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TResult)),
+ GetMethodInfo(Queryable.Select, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -128,7 +156,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TResult>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TResult)),
+ GetMethodInfo(Queryable.Select, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -141,7 +169,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TResult>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TResult)),
+ GetMethodInfo(Queryable.SelectMany, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -154,7 +182,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TResult>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TResult)),
+ GetMethodInfo(Queryable.SelectMany, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -169,7 +197,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TResult>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TCollection), typeof(TResult)),
+ GetMethodInfo(Queryable.SelectMany, source, collectionSelector, resultSelector),
new Expression[] { source.Expression, Expression.Quote(collectionSelector), Expression.Quote(resultSelector) }
));
}
@@ -184,7 +212,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TResult>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TCollection), typeof(TResult)),
+ GetMethodInfo(Queryable.SelectMany, source, collectionSelector, resultSelector),
new Expression[] { source.Expression, Expression.Quote(collectionSelector), Expression.Quote(resultSelector) }
));
}
@@ -209,7 +237,7 @@ namespace System.Linq {
return outer.Provider.CreateQuery<TResult>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TOuter), typeof(TInner), typeof(TKey), typeof(TResult)),
+ GetMethodInfo(Queryable.Join, outer, inner, outerKeySelector, innerKeySelector, resultSelector),
new Expression[] {
outer.Expression,
GetSourceExpression(inner),
@@ -234,7 +262,7 @@ namespace System.Linq {
return outer.Provider.CreateQuery<TResult>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TOuter), typeof(TInner), typeof(TKey), typeof(TResult)),
+ GetMethodInfo(Queryable.Join, outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer),
new Expression[] {
outer.Expression,
GetSourceExpression(inner),
@@ -260,7 +288,7 @@ namespace System.Linq {
return outer.Provider.CreateQuery<TResult>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TOuter), typeof(TInner), typeof(TKey), typeof(TResult)),
+ GetMethodInfo(Queryable.GroupJoin, outer, inner, outerKeySelector, innerKeySelector, resultSelector),
new Expression[] {
outer.Expression,
GetSourceExpression(inner),
@@ -284,7 +312,7 @@ namespace System.Linq {
return outer.Provider.CreateQuery<TResult>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TOuter), typeof(TInner), typeof(TKey), typeof(TResult)),
+ GetMethodInfo(Queryable.GroupJoin, outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer),
new Expression[] {
outer.Expression,
GetSourceExpression(inner),
@@ -304,7 +332,7 @@ namespace System.Linq {
return (IOrderedQueryable<TSource>) source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TKey)),
+ GetMethodInfo(Queryable.OrderBy, source, keySelector),
new Expression[] { source.Expression, Expression.Quote(keySelector) }
));
}
@@ -317,7 +345,7 @@ namespace System.Linq {
return (IOrderedQueryable<TSource>) source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TKey)),
+ GetMethodInfo(Queryable.OrderBy, source, keySelector, comparer),
new Expression[] { source.Expression, Expression.Quote(keySelector), Expression.Constant(comparer, typeof(IComparer<TKey>)) }
));
}
@@ -327,10 +355,10 @@ namespace System.Linq {
throw Error.ArgumentNull("source");
if (keySelector == null)
throw Error.ArgumentNull("keySelector");
- return (IOrderedQueryable<TSource>) source.Provider.CreateQuery<TSource>(
+ return (IOrderedQueryable<TSource>)source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TKey)),
+ GetMethodInfo(Queryable.OrderByDescending, source, keySelector),
new Expression[] { source.Expression, Expression.Quote(keySelector) }
));
}
@@ -343,7 +371,7 @@ namespace System.Linq {
return (IOrderedQueryable<TSource>) source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TKey)),
+ GetMethodInfo(Queryable.OrderByDescending, source, keySelector, comparer),
new Expression[] { source.Expression, Expression.Quote(keySelector), Expression.Constant(comparer, typeof(IComparer<TKey>)) }
));
}
@@ -356,7 +384,7 @@ namespace System.Linq {
return (IOrderedQueryable<TSource>) source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TKey)),
+ GetMethodInfo(Queryable.ThenBy, source, keySelector),
new Expression[] { source.Expression, Expression.Quote(keySelector) }
));
}
@@ -369,7 +397,7 @@ namespace System.Linq {
return (IOrderedQueryable<TSource>) source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TKey)),
+ GetMethodInfo(Queryable.ThenBy, source, keySelector, comparer),
new Expression[] { source.Expression, Expression.Quote(keySelector), Expression.Constant(comparer, typeof(IComparer<TKey>)) }
));
}
@@ -382,7 +410,7 @@ namespace System.Linq {
return (IOrderedQueryable<TSource>) source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TKey)),
+ GetMethodInfo(Queryable.ThenByDescending, source, keySelector),
new Expression[] { source.Expression, Expression.Quote(keySelector) }
));
}
@@ -395,7 +423,7 @@ namespace System.Linq {
return (IOrderedQueryable<TSource>) source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TKey)),
+ GetMethodInfo(Queryable.ThenByDescending, source, keySelector, comparer),
new Expression[] { source.Expression, Expression.Quote(keySelector), Expression.Constant(comparer, typeof(IComparer<TKey>)) }
));
}
@@ -406,7 +434,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Take, source, count),
new Expression[] { source.Expression, Expression.Constant(count) }
));
}
@@ -419,7 +447,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.TakeWhile, source, predicate),
new Expression[] { source.Expression, Expression.Quote(predicate) }
));
}
@@ -432,7 +460,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.TakeWhile, source, predicate),
new Expression[] { source.Expression, Expression.Quote(predicate) }
));
}
@@ -443,7 +471,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Skip, source, count),
new Expression[] { source.Expression, Expression.Constant(count) }
));
}
@@ -456,7 +484,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.SkipWhile, source, predicate),
new Expression[] { source.Expression, Expression.Quote(predicate) }
));
}
@@ -469,7 +497,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.SkipWhile, source, predicate),
new Expression[] { source.Expression, Expression.Quote(predicate) }
));
}
@@ -482,7 +510,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<IGrouping<TKey,TSource>>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TKey)),
+ GetMethodInfo(Queryable.GroupBy, source, keySelector),
new Expression[] { source.Expression, Expression.Quote(keySelector) }
));
}
@@ -497,7 +525,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<IGrouping<TKey,TElement>>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TKey), typeof(TElement)),
+ GetMethodInfo(Queryable.GroupBy, source, keySelector, elementSelector),
new Expression[] { source.Expression, Expression.Quote(keySelector), Expression.Quote(elementSelector) }
));
}
@@ -510,7 +538,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<IGrouping<TKey,TSource>>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TKey)),
+ GetMethodInfo(Queryable.GroupBy, source, keySelector, comparer),
new Expression[] { source.Expression, Expression.Quote(keySelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)) }
));
}
@@ -525,7 +553,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<IGrouping<TKey,TElement>>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TKey), typeof(TElement)),
+ GetMethodInfo(Queryable.GroupBy, source, keySelector, elementSelector, comparer),
new Expression[] { source.Expression, Expression.Quote(keySelector), Expression.Quote(elementSelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)) }
));
}
@@ -543,7 +571,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TResult>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TKey), typeof(TElement), typeof(TResult)),
+ GetMethodInfo(Queryable.GroupBy, source, keySelector, elementSelector, resultSelector),
new Expression[] { source.Expression, Expression.Quote(keySelector), Expression.Quote(elementSelector), Expression.Quote(resultSelector) }
));
}
@@ -559,7 +587,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TResult>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TKey), typeof(TResult)),
+ GetMethodInfo(Queryable.GroupBy, source, keySelector, resultSelector),
new Expression[] { source.Expression, Expression.Quote(keySelector), Expression.Quote(resultSelector) }
));
}
@@ -575,7 +603,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TResult>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TKey), typeof(TResult)),
+ GetMethodInfo(Queryable.GroupBy, source, keySelector, resultSelector, comparer),
new Expression[] { source.Expression, Expression.Quote(keySelector), Expression.Quote(resultSelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)) }
));
}
@@ -593,7 +621,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TResult>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TKey), typeof(TElement), typeof(TResult)),
+ GetMethodInfo(Queryable.GroupBy, source, keySelector, elementSelector, resultSelector, comparer),
new Expression[] { source.Expression, Expression.Quote(keySelector), Expression.Quote(elementSelector), Expression.Quote(resultSelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)) }
));
}
@@ -604,7 +632,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Distinct, source),
new Expression[] { source.Expression }
));
}
@@ -615,7 +643,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Distinct, source, comparer),
new Expression[] { source.Expression, Expression.Constant(comparer, typeof(IEqualityComparer<TSource>)) }
));
}
@@ -627,8 +655,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source2");
return source1.Provider.CreateQuery<TSource>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Concat, source1, source2),
new Expression[] { source1.Expression, GetSourceExpression(source2) }
));
}
@@ -643,7 +671,7 @@ namespace System.Linq {
return source1.Provider.CreateQuery<TResult>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TFirst), typeof(TSecond), typeof(TResult)),
+ GetMethodInfo(Queryable.Zip, source1, source2, resultSelector),
new Expression[] { source1.Expression, GetSourceExpression(source2), Expression.Quote(resultSelector) }
));
}
@@ -655,8 +683,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source2");
return source1.Provider.CreateQuery<TSource>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Union, source1, source2),
new Expression[] { source1.Expression, GetSourceExpression(source2) }
));
}
@@ -669,7 +697,7 @@ namespace System.Linq {
return source1.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Union, source1, source2, comparer),
new Expression[] {
source1.Expression,
GetSourceExpression(source2),
@@ -686,7 +714,7 @@ namespace System.Linq {
return source1.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Intersect, source1, source2),
new Expression[] { source1.Expression, GetSourceExpression(source2) }
));
}
@@ -699,7 +727,7 @@ namespace System.Linq {
return source1.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Intersect, source1, source2, comparer),
new Expression[] {
source1.Expression,
GetSourceExpression(source2),
@@ -716,7 +744,7 @@ namespace System.Linq {
return source1.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Except, source1, source2),
new Expression[] { source1.Expression, GetSourceExpression(source2) }
));
}
@@ -729,7 +757,7 @@ namespace System.Linq {
return source1.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Except, source1, source2, comparer),
new Expression[] {
source1.Expression,
GetSourceExpression(source2),
@@ -743,8 +771,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source");
return source.Provider.Execute<TSource>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.First, source),
new Expression[] { source.Expression }
));
}
@@ -756,8 +784,8 @@ namespace System.Linq {
throw Error.ArgumentNull("predicate");
return source.Provider.Execute<TSource>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.First, source, predicate),
new Expression[] { source.Expression, Expression.Quote(predicate) }
));
}
@@ -768,7 +796,7 @@ namespace System.Linq {
return source.Provider.Execute<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.FirstOrDefault, source),
new Expression[] { source.Expression }
));
}
@@ -780,8 +808,8 @@ namespace System.Linq {
throw Error.ArgumentNull("predicate");
return source.Provider.Execute<TSource>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.FirstOrDefault, source, predicate),
new Expression[] { source.Expression, Expression.Quote(predicate) }
));
}
@@ -791,8 +819,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source");
return source.Provider.Execute<TSource>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Last, source),
new Expression[] { source.Expression }
));
}
@@ -804,8 +832,8 @@ namespace System.Linq {
throw Error.ArgumentNull("predicate");
return source.Provider.Execute<TSource>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Last, source, predicate),
new Expression[] { source.Expression, Expression.Quote(predicate) }
));
}
@@ -816,7 +844,7 @@ namespace System.Linq {
return source.Provider.Execute<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.LastOrDefault, source),
new Expression[] { source.Expression }
));
}
@@ -828,8 +856,8 @@ namespace System.Linq {
throw Error.ArgumentNull("predicate");
return source.Provider.Execute<TSource>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.LastOrDefault, source, predicate),
new Expression[] { source.Expression, Expression.Quote(predicate) }
));
}
@@ -840,7 +868,7 @@ namespace System.Linq {
return source.Provider.Execute<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Single, source),
new Expression[] { source.Expression }
));
}
@@ -852,8 +880,8 @@ namespace System.Linq {
throw Error.ArgumentNull("predicate");
return source.Provider.Execute<TSource>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Single, source, predicate),
new Expression[] { source.Expression, Expression.Quote(predicate) }
));
}
@@ -864,7 +892,7 @@ namespace System.Linq {
return source.Provider.Execute<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.SingleOrDefault, source),
new Expression[] { source.Expression }
));
}
@@ -876,8 +904,8 @@ namespace System.Linq {
throw Error.ArgumentNull("predicate");
return source.Provider.Execute<TSource>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.SingleOrDefault, source, predicate),
new Expression[] { source.Expression, Expression.Quote(predicate) }
));
}
@@ -889,8 +917,8 @@ namespace System.Linq {
throw Error.ArgumentOutOfRange("index");
return source.Provider.Execute<TSource>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.ElementAt, source, index),
new Expression[] { source.Expression, Expression.Constant(index) }
));
}
@@ -900,8 +928,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source");
return source.Provider.Execute<TSource>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.ElementAtOrDefault, source, index),
new Expression[] { source.Expression, Expression.Constant(index) }
));
}
@@ -912,7 +940,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.DefaultIfEmpty, source),
new Expression[] { source.Expression }
));
}
@@ -922,8 +950,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source");
return source.Provider.CreateQuery<TSource>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.DefaultIfEmpty, source, defaultValue),
new Expression[] { source.Expression, Expression.Constant(defaultValue, typeof(TSource)) }
));
}
@@ -933,8 +961,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source");
return source.Provider.Execute<bool>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Contains, source, item),
new Expression[] { source.Expression, Expression.Constant(item, typeof(TSource)) }
));
}
@@ -945,7 +973,7 @@ namespace System.Linq {
return source.Provider.Execute<bool>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Contains, source, item, comparer),
new Expression[] { source.Expression, Expression.Constant(item, typeof(TSource)), Expression.Constant(comparer, typeof(IEqualityComparer<TSource>)) }
));
}
@@ -956,7 +984,7 @@ namespace System.Linq {
return source.Provider.CreateQuery<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Reverse, source),
new Expression[] { source.Expression }
));
}
@@ -969,7 +997,7 @@ namespace System.Linq {
return source1.Provider.Execute<bool>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.SequenceEqual, source1, source2),
new Expression[] { source1.Expression, GetSourceExpression(source2) }
));
}
@@ -982,7 +1010,7 @@ namespace System.Linq {
return source1.Provider.Execute<bool>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.SequenceEqual, source1, source2, comparer),
new Expression[] {
source1.Expression,
GetSourceExpression(source2),
@@ -997,7 +1025,7 @@ namespace System.Linq {
return source.Provider.Execute<bool>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Any, source),
new Expression[] { source.Expression }
));
}
@@ -1009,8 +1037,8 @@ namespace System.Linq {
throw Error.ArgumentNull("predicate");
return source.Provider.Execute<bool>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Any, source, predicate),
new Expression[] { source.Expression, Expression.Quote(predicate) }
));
}
@@ -1022,8 +1050,8 @@ namespace System.Linq {
throw Error.ArgumentNull("predicate");
return source.Provider.Execute<bool>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.All, source, predicate),
new Expression[] { source.Expression, Expression.Quote(predicate) }
));
}
@@ -1034,7 +1062,7 @@ namespace System.Linq {
return source.Provider.Execute<int>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Count, source),
new Expression[] { source.Expression }
));
}
@@ -1047,7 +1075,7 @@ namespace System.Linq {
return source.Provider.Execute<int>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Count, source, predicate),
new Expression[] { source.Expression, Expression.Quote(predicate) }
));
}
@@ -1058,7 +1086,7 @@ namespace System.Linq {
return source.Provider.Execute<long>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.LongCount, source),
new Expression[] { source.Expression }
));
}
@@ -1071,7 +1099,7 @@ namespace System.Linq {
return source.Provider.Execute<long>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.LongCount, source, predicate),
new Expression[] { source.Expression, Expression.Quote(predicate) }
));
}
@@ -1082,7 +1110,7 @@ namespace System.Linq {
return source.Provider.Execute<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Min, source),
new Expression[] { source.Expression }
));
}
@@ -1094,8 +1122,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<TResult>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TResult)),
+ null,
+ GetMethodInfo(Queryable.Min, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1106,7 +1134,7 @@ namespace System.Linq {
return source.Provider.Execute<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Max, source),
new Expression[] { source.Expression }
));
}
@@ -1118,8 +1146,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<TResult>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TResult)),
+ null,
+ GetMethodInfo(Queryable.Max, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1130,7 +1158,7 @@ namespace System.Linq {
return source.Provider.Execute<int>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ GetMethodInfo(Queryable.Sum, source),
new Expression[] { source.Expression }
));
}
@@ -1140,8 +1168,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source");
return source.Provider.Execute<int?>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ null,
+ GetMethodInfo(Queryable.Sum, source),
new Expression[] { source.Expression }
));
}
@@ -1151,8 +1179,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source");
return source.Provider.Execute<long>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ null,
+ GetMethodInfo(Queryable.Sum, source),
new Expression[] { source.Expression }
));
}
@@ -1162,8 +1190,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source");
return source.Provider.Execute<long?>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ null,
+ GetMethodInfo(Queryable.Sum, source),
new Expression[] { source.Expression }
));
}
@@ -1173,8 +1201,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source");
return source.Provider.Execute<float>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ null,
+ GetMethodInfo(Queryable.Sum, source),
new Expression[] { source.Expression }
));
}
@@ -1184,8 +1212,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source");
return source.Provider.Execute<float?>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ null,
+ GetMethodInfo(Queryable.Sum, source),
new Expression[] { source.Expression }
));
}
@@ -1195,8 +1223,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source");
return source.Provider.Execute<double>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ null,
+ GetMethodInfo(Queryable.Sum, source),
new Expression[] { source.Expression }
));
}
@@ -1206,8 +1234,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source");
return source.Provider.Execute<double?>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ null,
+ GetMethodInfo(Queryable.Sum, source),
new Expression[] { source.Expression }
));
}
@@ -1217,8 +1245,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source");
return source.Provider.Execute<decimal>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ null,
+ GetMethodInfo(Queryable.Sum, source),
new Expression[] { source.Expression }
));
}
@@ -1228,8 +1256,8 @@ namespace System.Linq {
throw Error.ArgumentNull("source");
return source.Provider.Execute<decimal?>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ null,
+ GetMethodInfo(Queryable.Sum, source),
new Expression[] { source.Expression }
));
}
@@ -1241,8 +1269,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<int>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Sum, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1254,8 +1282,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<int?>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Sum, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1267,8 +1295,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<long>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Sum, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1280,8 +1308,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<long?>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Sum, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1293,8 +1321,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<float>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Sum, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1306,8 +1334,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<float?>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Sum, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1319,8 +1347,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<double>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Sum, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1332,8 +1360,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<double?>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Sum, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1345,8 +1373,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<decimal>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Sum, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1358,8 +1386,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<decimal?>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Sum, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1370,7 +1398,7 @@ namespace System.Linq {
return source.Provider.Execute<double>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ GetMethodInfo(Queryable.Average, source),
new Expression[] { source.Expression }
));
}
@@ -1381,7 +1409,7 @@ namespace System.Linq {
return source.Provider.Execute<double?>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ GetMethodInfo(Queryable.Average, source),
new Expression[] { source.Expression }
));
}
@@ -1392,7 +1420,7 @@ namespace System.Linq {
return source.Provider.Execute<double>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ GetMethodInfo(Queryable.Average, source),
new Expression[] { source.Expression }
));
}
@@ -1403,7 +1431,7 @@ namespace System.Linq {
return source.Provider.Execute<double?>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ GetMethodInfo(Queryable.Average, source),
new Expression[] { source.Expression }
));
}
@@ -1415,7 +1443,7 @@ namespace System.Linq {
return source.Provider.Execute<float>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ GetMethodInfo(Queryable.Average, source),
new Expression[] { source.Expression }
));
}
@@ -1427,7 +1455,7 @@ namespace System.Linq {
return source.Provider.Execute<float?>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ GetMethodInfo(Queryable.Average, source),
new Expression[] { source.Expression }
));
}
@@ -1438,7 +1466,7 @@ namespace System.Linq {
return source.Provider.Execute<double>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ GetMethodInfo(Queryable.Average, source),
new Expression[] { source.Expression }
));
}
@@ -1449,7 +1477,7 @@ namespace System.Linq {
return source.Provider.Execute<double?>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ GetMethodInfo(Queryable.Average, source),
new Expression[] { source.Expression }
));
}
@@ -1460,7 +1488,7 @@ namespace System.Linq {
return source.Provider.Execute<decimal>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ GetMethodInfo(Queryable.Average, source),
new Expression[] { source.Expression }
));
}
@@ -1471,7 +1499,7 @@ namespace System.Linq {
return source.Provider.Execute<decimal?>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()),
+ GetMethodInfo(Queryable.Average, source),
new Expression[] { source.Expression }
));
}
@@ -1483,8 +1511,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<double>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Average, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1496,8 +1524,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<double?>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Average, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1511,7 +1539,7 @@ namespace System.Linq {
return source.Provider.Execute<float>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Average, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1525,7 +1553,7 @@ namespace System.Linq {
return source.Provider.Execute<float?>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Average, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1537,8 +1565,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<double>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Average, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1550,8 +1578,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<double?>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Average, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1563,8 +1591,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<double>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Average, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1576,8 +1604,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<double?>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Average, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1589,8 +1617,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<decimal>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Average, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1602,8 +1630,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<decimal?>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ null,
+ GetMethodInfo(Queryable.Average, source, selector),
new Expression[] { source.Expression, Expression.Quote(selector) }
));
}
@@ -1616,7 +1644,7 @@ namespace System.Linq {
return source.Provider.Execute<TSource>(
Expression.Call(
null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource)),
+ GetMethodInfo(Queryable.Aggregate, source, func),
new Expression[] { source.Expression, Expression.Quote(func) }
));
}
@@ -1628,8 +1656,8 @@ namespace System.Linq {
throw Error.ArgumentNull("func");
return source.Provider.Execute<TAccumulate>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TAccumulate)),
+ null,
+ GetMethodInfo(Queryable.Aggregate, source, seed, func),
new Expression[] { source.Expression, Expression.Constant(seed), Expression.Quote(func) }
));
}
@@ -1643,8 +1671,8 @@ namespace System.Linq {
throw Error.ArgumentNull("selector");
return source.Provider.Execute<TResult>(
Expression.Call(
- null,
- ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod(typeof(TSource), typeof(TAccumulate), typeof(TResult)),
+ null,
+ GetMethodInfo(Queryable.Aggregate, source, seed, func, selector),
new Expression[] { source.Expression, Expression.Constant(seed), Expression.Quote(func), Expression.Quote(selector) }
));
}
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Channels/AsynchronousChannel.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Channels/AsynchronousChannel.cs
index d249e8749f3..0024bf3c90c 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Channels/AsynchronousChannel.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Channels/AsynchronousChannel.cs
@@ -7,7 +7,7 @@
//
// AsynchronousOneToOneChannel.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Channels/SynchronousChannel.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Channels/SynchronousChannel.cs
index ac27781a039..79cdc7a9b01 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Channels/SynchronousChannel.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Channels/SynchronousChannel.cs
@@ -7,7 +7,7 @@
//
// SynchronousChannel.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/AggregationMinMaxHelpers.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/AggregationMinMaxHelpers.cs
index af69de8aa37..3d560db8ca9 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/AggregationMinMaxHelpers.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/AggregationMinMaxHelpers.cs
@@ -7,7 +7,7 @@
//
// AggregationMinMaxHelpers.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/EmptyEnumerable.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/EmptyEnumerable.cs
index 56c3c621c83..0d3335d7d3e 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/EmptyEnumerable.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/EmptyEnumerable.cs
@@ -7,7 +7,7 @@
//
// EmptyEnumerable.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/EnumerableWrapperWeakToStrong.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/EnumerableWrapperWeakToStrong.cs
index 95dbb1e0e65..6d7ec46c713 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/EnumerableWrapperWeakToStrong.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/EnumerableWrapperWeakToStrong.cs
@@ -7,7 +7,7 @@
//
// EnumerableWrapperWeakToStrong.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/IParallelPartitionable.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/IParallelPartitionable.cs
index 1aa7a436532..abf57edfe9a 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/IParallelPartitionable.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/IParallelPartitionable.cs
@@ -7,7 +7,7 @@
//
// IParallelPartitionable.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>igoro</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
@@ -23,4 +23,4 @@ namespace System.Linq.Parallel
{
QueryOperatorEnumerator<T, int>[] GetPartitions(int partitionCount);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/OrderedParallelQuery.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/OrderedParallelQuery.cs
index 07e4c2a1f5a..70167618e2d 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/OrderedParallelQuery.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/OrderedParallelQuery.cs
@@ -7,7 +7,7 @@
//
// OrderedParallelQuery.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/ParallelEnumerableWrapper.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/ParallelEnumerableWrapper.cs
index 8c5fb1912a8..31d072f3b07 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/ParallelEnumerableWrapper.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/ParallelEnumerableWrapper.cs
@@ -7,7 +7,7 @@
//
// ParallelEnumerableWrapper.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/ParallelQuery.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/ParallelQuery.cs
index 9503c3043f0..b9a9477a706 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/ParallelQuery.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/ParallelQuery.cs
@@ -7,7 +7,7 @@
//
// ParallelQuery.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// ParallelQuery is an abstract class that represents a PLINQ query.
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/QueryAggregationOptions.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/QueryAggregationOptions.cs
index 2a73072bdf8..7775a87ab4f 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/QueryAggregationOptions.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/QueryAggregationOptions.cs
@@ -7,7 +7,7 @@
//
// QueryAggregationOptions.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>igoro</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
@@ -27,4 +27,4 @@ namespace System.Linq.Parallel
Commutative = 2,
AssociativeCommutative = (Associative | Commutative) // For convenience.
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/RangeEnumerable.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/RangeEnumerable.cs
index 1bb58a81f1f..8c580844613 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/RangeEnumerable.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/RangeEnumerable.cs
@@ -7,7 +7,7 @@
//
// RangeEnumerable.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/RepeatEnumerable.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/RepeatEnumerable.cs
index 1998eabb085..6951c939b73 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/RepeatEnumerable.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Enumerables/RepeatEnumerable.cs
@@ -7,7 +7,7 @@
//
// RepeatEnumerable.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/ArrayMergeHelper.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/ArrayMergeHelper.cs
index 97559c5fd41..feebc57bf3f 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/ArrayMergeHelper.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/ArrayMergeHelper.cs
@@ -7,7 +7,7 @@
//
// ArrayMergeHelper.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/AsynchronousChannelMergeEnumerator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/AsynchronousChannelMergeEnumerator.cs
index 599f13ae481..b76d1e42705 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/AsynchronousChannelMergeEnumerator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/AsynchronousChannelMergeEnumerator.cs
@@ -7,7 +7,7 @@
//
// AsynchronousChannelMergeEnumerator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/DefaultMergeHelper.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/DefaultMergeHelper.cs
index d1115094aa8..b288fffec16 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/DefaultMergeHelper.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/DefaultMergeHelper.cs
@@ -7,7 +7,7 @@
//
// DefaultMergeHelper.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
@@ -32,7 +32,7 @@ namespace System.Linq.Parallel
private QueryTaskGroupState m_taskGroupState; // State shared among tasks.
private PartitionedStream<TInputOutput, TIgnoreKey> m_partitions; // Source partitions.
private AsynchronousChannel<TInputOutput>[] m_asyncChannels; // Destination channels (async).
- private SynchronousChannel<TInputOutput>[] m_syncChannels; // Destination channels ([....]).
+ private SynchronousChannel<TInputOutput>[] m_syncChannels; // Destination channels (sync).
private IEnumerator<TInputOutput> m_channelEnumerator; // Output enumerator.
private TaskScheduler m_taskScheduler; // The task manager to execute the query.
private bool m_ignoreOutput; // Whether we're enumerating "for effect".
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/IMergeHelper.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/IMergeHelper.cs
index 862b053f9f9..fc9b5642417 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/IMergeHelper.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/IMergeHelper.cs
@@ -7,7 +7,7 @@
//
// ImergeHelper.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>igoro</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
@@ -32,4 +32,4 @@ namespace System.Linq.Parallel
// Returns the merged output as an array.
TInputOutput[] GetResultsAsArray();
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/MergeEnumerator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/MergeEnumerator.cs
index 8fac0d62c9e..da0298ce180 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/MergeEnumerator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/MergeEnumerator.cs
@@ -7,7 +7,7 @@
//
// MergeEnumerator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/MergeExecutor.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/MergeExecutor.cs
index f3136f12e33..2e0d8d90167 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/MergeExecutor.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/MergeExecutor.cs
@@ -7,7 +7,7 @@
//
// MergeExecutor.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/OrderPreservingMergeHelper.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/OrderPreservingMergeHelper.cs
index d456534525d..b7015a48d73 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/OrderPreservingMergeHelper.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/OrderPreservingMergeHelper.cs
@@ -7,7 +7,7 @@
//
// OrderPreservingMergeHelper.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/OrderPreservingPipeliningMergeHelper.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/OrderPreservingPipeliningMergeHelper.cs
index f9fc2bc4907..5da2671db26 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/OrderPreservingPipeliningMergeHelper.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/OrderPreservingPipeliningMergeHelper.cs
@@ -7,7 +7,7 @@
//
// OrderPreservingPipeliningMergeHelper.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/SynchronousChannelMergeEnumerator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/SynchronousChannelMergeEnumerator.cs
index ba302d41696..0bdc6ea7c4c 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/SynchronousChannelMergeEnumerator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Merging/SynchronousChannelMergeEnumerator.cs
@@ -7,7 +7,7 @@
//
// SynchronousChannelMergeEnumerator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/HashRepartitionEnumerator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/HashRepartitionEnumerator.cs
index 5f8cd482ee8..001eb1b3153 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/HashRepartitionEnumerator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/HashRepartitionEnumerator.cs
@@ -7,7 +7,7 @@
//
// HashRepartitionEnumerator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/HashRepartitionStream.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/HashRepartitionStream.cs
index 96aaf2d4cee..949e4f41974 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/HashRepartitionStream.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/HashRepartitionStream.cs
@@ -7,7 +7,7 @@
//
// HashPartitionedStream.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/IPartitionedStreamRecipient.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/IPartitionedStreamRecipient.cs
index 748d853a731..d2f6a35cd47 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/IPartitionedStreamRecipient.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/IPartitionedStreamRecipient.cs
@@ -7,7 +7,7 @@
//
// IPartitionedStreamRecipient.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>igoro</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
@@ -22,4 +22,4 @@ namespace System.Linq.Parallel
{
void Receive<TKey>(PartitionedStream<TElement, TKey> partitionedStream);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/OrderedHashRepartitionEnumerator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/OrderedHashRepartitionEnumerator.cs
index 39ca3fb0320..35865feb936 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/OrderedHashRepartitionEnumerator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/OrderedHashRepartitionEnumerator.cs
@@ -7,7 +7,7 @@
//
// OrderedHashRepartitionEnumerator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/OrderedHashRepartitionStream.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/OrderedHashRepartitionStream.cs
index f12862e8fe8..dfd79fd6891 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/OrderedHashRepartitionStream.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/OrderedHashRepartitionStream.cs
@@ -7,7 +7,7 @@
//
// OrderedHashRepartitionStream.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/PartitionedDataSource.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/PartitionedDataSource.cs
index e9f639c79d2..2f661a9e36f 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/PartitionedDataSource.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/PartitionedDataSource.cs
@@ -7,7 +7,7 @@
//
// PartitionedDataSource.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/PartitionedStream.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/PartitionedStream.cs
index dd6c687fea9..fc7477fe3b3 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/PartitionedStream.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/PartitionedStream.cs
@@ -7,7 +7,7 @@
//
// PartitionedStream.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/UnorderedHashRepartitionStream.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/UnorderedHashRepartitionStream.cs
index b8d1e6be923..7edc4d07da8 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/UnorderedHashRepartitionStream.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Partitioning/UnorderedHashRepartitionStream.cs
@@ -7,7 +7,7 @@
//
// UnorderedHashRepartitionStream.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/AssociativeAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/AssociativeAggregationOperator.cs
index 6df8e3e6c08..add046683ad 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/AssociativeAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/AssociativeAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// AssociativeAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/ExceptQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/ExceptQueryOperator.cs
index d84be6b56c2..c8a8d2206ab 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/ExceptQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/ExceptQueryOperator.cs
@@ -7,7 +7,7 @@
//
// ExceptQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/GroupJoinQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/GroupJoinQueryOperator.cs
index a56fe2f6710..60b6befd6a5 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/GroupJoinQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/GroupJoinQueryOperator.cs
@@ -7,7 +7,7 @@
//
// GroupJoinQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/HashJoinQueryOperatorEnumerator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/HashJoinQueryOperatorEnumerator.cs
index 88196b52650..e09d4d92b33 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/HashJoinQueryOperatorEnumerator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/HashJoinQueryOperatorEnumerator.cs
@@ -7,7 +7,7 @@
//
// HashJoinQueryOperatorEnumerator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/IntersectQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/IntersectQueryOperator.cs
index 86979515448..3ce35c451c4 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/IntersectQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/IntersectQueryOperator.cs
@@ -7,7 +7,7 @@
//
// IntersectQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/JoinQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/JoinQueryOperator.cs
index a80990550f2..9dbd672ec47 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/JoinQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/JoinQueryOperator.cs
@@ -7,7 +7,7 @@
//
// JoinQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/UnionQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/UnionQueryOperator.cs
index c2d07020d58..8251ef54946 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/UnionQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/UnionQueryOperator.cs
@@ -7,7 +7,7 @@
//
// UnionQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/ZipQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/ZipQueryOperator.cs
index 3b2d74cfdcb..3465f80d43d 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/ZipQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Binary/ZipQueryOperator.cs
@@ -7,7 +7,7 @@
//
// ZipQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/BinaryQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/BinaryQueryOperator.cs
index f159f1c2575..3beed03e1ec 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/BinaryQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/BinaryQueryOperator.cs
@@ -7,7 +7,7 @@
//
// BinaryQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/CountAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/CountAggregationOperator.cs
index 84ae158c3c8..95b660b22f5 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/CountAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/CountAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// CountAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DecimalAverageAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DecimalAverageAggregationOperator.cs
index f7e86aaa2fe..d321018d7c0 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DecimalAverageAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DecimalAverageAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// DecimalAverageAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DecimalMinMaxAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DecimalMinMaxAggregationOperator.cs
index 55e2f78e885..eaa22795ffd 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DecimalMinMaxAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DecimalMinMaxAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// DecimalMinMaxAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DecimalSumAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DecimalSumAggregationOperator.cs
index 17d0658b9cd..30560fecc3a 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DecimalSumAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DecimalSumAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// DecimalSumAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DoubleAverageAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DoubleAverageAggregationOperator.cs
index 5d6aa8e41a8..dba1e102131 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DoubleAverageAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DoubleAverageAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// DoubleAverageAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DoubleMinMaxAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DoubleMinMaxAggregationOperator.cs
index 85c2e84cc23..a7cd5df6580 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DoubleMinMaxAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DoubleMinMaxAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// DoubleMinMaxAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DoubleSumAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DoubleSumAggregationOperator.cs
index c464be0957f..b2477cfd7d0 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DoubleSumAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/DoubleSumAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// DoubleSumAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/FloatAverageAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/FloatAverageAggregationOperator.cs
index 8d310b488b4..d2d294f1f0b 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/FloatAverageAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/FloatAverageAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// FloatAverageAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/FloatMinMaxAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/FloatMinMaxAggregationOperator.cs
index 1cc5d0d25b9..10be7b55eff 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/FloatMinMaxAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/FloatMinMaxAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// FloatMinMaxAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/FloatSumAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/FloatSumAggregationOperator.cs
index 03949d7aa0e..ecf0656a9d2 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/FloatSumAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/FloatSumAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// FloatSumAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/InlinedAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/InlinedAggregationOperator.cs
index 31ba533d8cc..865ccaac7bd 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/InlinedAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/InlinedAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// InlinedAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/InlinedAggregationOperatorEnumerator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/InlinedAggregationOperatorEnumerator.cs
index 416844cfbec..b53d200df55 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/InlinedAggregationOperatorEnumerator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/InlinedAggregationOperatorEnumerator.cs
@@ -7,7 +7,7 @@
//
// InlinedAggregationOperatorEnumerator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/IntAverageAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/IntAverageAggregationOperator.cs
index 9733071e8c3..88a779aeb6c 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/IntAverageAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/IntAverageAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// IntAverageAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/IntMinMaxAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/IntMinMaxAggregationOperator.cs
index 5bd686ab5d1..469a9034603 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/IntMinMaxAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/IntMinMaxAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// IntMinMaxAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/IntSumAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/IntSumAggregationOperator.cs
index f57f4ec529c..28b5048b0c3 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/IntSumAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/IntSumAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// IntSumAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongAverageAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongAverageAggregationOperator.cs
index 61478be33bc..3de0feed309 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongAverageAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongAverageAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// LongAverageAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongCountAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongCountAggregationOperator.cs
index 4332cee8375..1c1ecc3a3ad 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongCountAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongCountAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// CountAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongMinMaxAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongMinMaxAggregationOperator.cs
index 0c7bdfbd861..bb45b5b837d 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongMinMaxAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongMinMaxAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// LongMinMaxAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongSumAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongSumAggregationOperator.cs
index df856cc34bf..bc29d47ba62 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongSumAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/LongSumAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// LongSumAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDecimalAverageAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDecimalAverageAggregationOperator.cs
index 246aa40dcd3..cdaf0301e96 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDecimalAverageAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDecimalAverageAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// NullableDecimalAverageAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDecimalMinMaxAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDecimalMinMaxAggregationOperator.cs
index 8d78b129de1..abbacb4e2fc 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDecimalMinMaxAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDecimalMinMaxAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// NullableDecimalMinMaxAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDecimalSumAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDecimalSumAggregationOperator.cs
index 2602c9eb2eb..5c32e0cc871 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDecimalSumAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDecimalSumAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// NullableDecimalSumAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDoubleAverageAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDoubleAverageAggregationOperator.cs
index 69b52aaa373..44eb13ad651 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDoubleAverageAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDoubleAverageAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// NullableDoubleAverageAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDoubleMinMaxAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDoubleMinMaxAggregationOperator.cs
index 7b44277649e..a2a7fcb3e4a 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDoubleMinMaxAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDoubleMinMaxAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// NullableDoubleMinMaxAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDoubleSumAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDoubleSumAggregationOperator.cs
index 9f92f75d1ea..f1ced299faa 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDoubleSumAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableDoubleSumAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// NullableDoubleSumAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableFloatAverageAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableFloatAverageAggregationOperator.cs
index 2b7c0d4524a..b33baf58aa3 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableFloatAverageAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableFloatAverageAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// NullableFloatAverageAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableFloatMinMaxAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableFloatMinMaxAggregationOperator.cs
index b1b8064e067..8180ef53427 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableFloatMinMaxAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableFloatMinMaxAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// NullableFloatMinMaxAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableFloatSumAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableFloatSumAggregationOperator.cs
index d2ea8a423d3..d4aa289c0f7 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableFloatSumAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableFloatSumAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// NullableFloatSumAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableIntAverageAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableIntAverageAggregationOperator.cs
index 4604a595f5b..ea9bcd10da3 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableIntAverageAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableIntAverageAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// NullableIntAverageAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableIntMinMaxAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableIntMinMaxAggregationOperator.cs
index 5c57d26b0b0..6ff77bd7ed9 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableIntMinMaxAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableIntMinMaxAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// NullableIntMinMaxAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableIntSumAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableIntSumAggregationOperator.cs
index c00fdb01d69..14389d8fc1b 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableIntSumAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableIntSumAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// NullableIntSumAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableLongAverageAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableLongAverageAggregationOperator.cs
index ddf75c89fee..bacb98750b6 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableLongAverageAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableLongAverageAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// NullableLongAverageAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableLongMinMaxAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableLongMinMaxAggregationOperator.cs
index 7d4e369d90c..824bb98a49e 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableLongMinMaxAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableLongMinMaxAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// NullableLongMinMaxAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableLongSumAggregationOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableLongSumAggregationOperator.cs
index 97e53a64eaa..313e7c18255 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableLongSumAggregationOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Inlined/NullableLongSumAggregationOperator.cs
@@ -7,7 +7,7 @@
//
// NullableLongSumAggregationOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/ListQueryResults.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/ListQueryResults.cs
index 55069c3b3cf..e55d313c01d 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/ListQueryResults.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/ListQueryResults.cs
@@ -7,7 +7,7 @@
//
// ListQueryResults.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Options/OrderingQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Options/OrderingQueryOperator.cs
index 33baf3f8056..27f7bf886b4 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Options/OrderingQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Options/OrderingQueryOperator.cs
@@ -7,7 +7,7 @@
//
// OrderingQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Options/QueryExecutionOption.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Options/QueryExecutionOption.cs
index 1bef24bedac..8ddc796458a 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Options/QueryExecutionOption.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Options/QueryExecutionOption.cs
@@ -7,7 +7,7 @@
//
// QueryExecutionOption.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/OrdinalIndexState.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/OrdinalIndexState.cs
index 62660a567c0..c928a13d31c 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/OrdinalIndexState.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/OrdinalIndexState.cs
@@ -7,7 +7,7 @@
//
// OrdinalIndexState.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>igoro</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
@@ -23,4 +23,4 @@ namespace System.Linq.Parallel
Increasing = 2, // Indices of elements are increasing. Within each partition, elements are in the correct order.
Shuffled = 3, // Indices are of arbitrary type. Elements appear in an arbitrary order in each partition.
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/PartitionedStreamMerger.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/PartitionedStreamMerger.cs
index 282c6cd90c2..77682f6954e 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/PartitionedStreamMerger.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/PartitionedStreamMerger.cs
@@ -7,7 +7,7 @@
//
// PartitionedStreamMerger.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/PartitionerQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/PartitionerQueryOperator.cs
index c239cb7e4f4..62ed43dba2c 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/PartitionerQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/PartitionerQueryOperator.cs
@@ -7,7 +7,7 @@
//
// PartitionerQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryOpeningEnumerator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryOpeningEnumerator.cs
index 570b9e4ab05..c268cf512f8 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryOpeningEnumerator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryOpeningEnumerator.cs
@@ -7,7 +7,7 @@
//
// QueryOpeningEnumerator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
@@ -110,7 +110,7 @@ namespace System.Linq.Parallel
{
// To keep the MoveNext method body small, the code that executes first time only is in a separate method.
// It appears that if the method becomes too large, we observe a performance regression. This may have
- // to do with method inlining. See bug 706485.
+ // to do with method inlining. See
OpenQuery();
}
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryOperator.cs
index c83015bb314..60d656c1e02 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryOperator.cs
@@ -7,7 +7,7 @@
//
// QueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryOperatorEnumerator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryOperatorEnumerator.cs
index db776f87878..6f78b8177a5 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryOperatorEnumerator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryOperatorEnumerator.cs
@@ -7,7 +7,7 @@
//
// QueryOperatorEnumerator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryResults.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryResults.cs
index cee66591f77..d062a698ec3 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryResults.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QueryResults.cs
@@ -7,7 +7,7 @@
//
// QueryResults.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QuerySettings.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QuerySettings.cs
index 08f410f9821..8782d8fd0e0 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QuerySettings.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/QuerySettings.cs
@@ -7,7 +7,7 @@
//
// QuerySettings.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
@@ -149,8 +149,8 @@ namespace System.Linq.Parallel
//Initialize a new QuerySettings structure and copy in the current settings.
//Note: this has the very important effect of newing a fresh CancellationSettings,
// and _not_ copying in the current internalCancellationSource or topLevelDisposedFlag which should not be
- // propogated to internal query executions. (This affects SelectMany execution and specifically fixes bug:535510)
- // The fresh toplevel parameters are used instead.
+ // propogated to internal query executions. (This affects SelectMany execution and specifically fixes
+
QuerySettings settings = new QuerySettings(TaskScheduler, DegreeOfParallelism, CancellationState.ExternalCancellationToken, ExecutionMode, MergeOptions);
Contract.Assert(topLevelCancellationTokenSource != null, "There should always be a top-level cancellation signal specified.");
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/ScanQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/ScanQueryOperator.cs
index e70b13e18a9..1310302c208 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/ScanQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/ScanQueryOperator.cs
@@ -7,7 +7,7 @@
//
// ScanQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/AnyAllSearchOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/AnyAllSearchOperator.cs
index fd4b201e7c5..2dc5b284f3c 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/AnyAllSearchOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/AnyAllSearchOperator.cs
@@ -7,7 +7,7 @@
//
// AnyAllSearchOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ConcatQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ConcatQueryOperator.cs
index d55436affb5..4f07a9f2ebc 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ConcatQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ConcatQueryOperator.cs
@@ -7,7 +7,7 @@
//
// ConcatQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ContainsSearchOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ContainsSearchOperator.cs
index 78de1005198..b417480520b 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ContainsSearchOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ContainsSearchOperator.cs
@@ -7,7 +7,7 @@
//
// ContainsSearchOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/DefaultIfEmptyQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/DefaultIfEmptyQueryOperator.cs
index 9a03469950e..6611cc28063 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/DefaultIfEmptyQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/DefaultIfEmptyQueryOperator.cs
@@ -7,7 +7,7 @@
//
// DefaultIfEmptyQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/DistinctQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/DistinctQueryOperator.cs
index 4de47cea4e9..fc5ecd5f7eb 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/DistinctQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/DistinctQueryOperator.cs
@@ -7,7 +7,7 @@
//
// DistinctQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ElementAtQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ElementAtQueryOperator.cs
index 0560b753f52..70660e9fc8f 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ElementAtQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ElementAtQueryOperator.cs
@@ -7,7 +7,7 @@
//
// ElementAtQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/FirstQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/FirstQueryOperator.cs
index 38c143c5f13..8181237ca9f 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/FirstQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/FirstQueryOperator.cs
@@ -7,7 +7,7 @@
//
// FirstQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ForAllOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ForAllOperator.cs
index 86761040257..825d755f494 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ForAllOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ForAllOperator.cs
@@ -7,7 +7,7 @@
//
// ForAllQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/GroupByQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/GroupByQueryOperator.cs
index ed3b2f44066..ab4d272540d 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/GroupByQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/GroupByQueryOperator.cs
@@ -7,7 +7,7 @@
//
// GroupByQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/IndexedSelectQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/IndexedSelectQueryOperator.cs
index f1d0e5ef3e5..1a304e4598b 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/IndexedSelectQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/IndexedSelectQueryOperator.cs
@@ -7,7 +7,7 @@
//
// IndexedSelectQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/IndexedWhereQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/IndexedWhereQueryOperator.cs
index a4d65f3cfb6..fddb9926020 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/IndexedWhereQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/IndexedWhereQueryOperator.cs
@@ -7,7 +7,7 @@
//
// IndexedWhereQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/LastQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/LastQueryOperator.cs
index 8b354de110a..f4a74d0c71a 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/LastQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/LastQueryOperator.cs
@@ -7,7 +7,7 @@
//
// LastQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ReverseQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ReverseQueryOperator.cs
index d66add1195f..9f4a4eece69 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ReverseQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/ReverseQueryOperator.cs
@@ -7,7 +7,7 @@
//
// ReverseQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SelectManyQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SelectManyQueryOperator.cs
index 741bb24cd86..8a4c0f3e7d1 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SelectManyQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SelectManyQueryOperator.cs
@@ -7,7 +7,7 @@
//
// SelectManyQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SelectQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SelectQueryOperator.cs
index 2301c1d0646..7eaa46765f1 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SelectQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SelectQueryOperator.cs
@@ -7,7 +7,7 @@
//
// SelectQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SingleQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SingleQueryOperator.cs
index d5539ceaf8d..c2cb9d451fa 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SingleQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SingleQueryOperator.cs
@@ -7,7 +7,7 @@
//
// SingleQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SortQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SortQueryOperator.cs
index b73b8bd0829..af64f227ae7 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SortQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/SortQueryOperator.cs
@@ -7,7 +7,7 @@
//
// SortQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/TakeOrSkipQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/TakeOrSkipQueryOperator.cs
index c0c708a7c38..67a70ce8f18 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/TakeOrSkipQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/TakeOrSkipQueryOperator.cs
@@ -7,7 +7,7 @@
//
// TakeOrSkipQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/TakeOrSkipWhileQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/TakeOrSkipWhileQueryOperator.cs
index a04bf2bfb9c..64f089adc01 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/TakeOrSkipWhileQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/TakeOrSkipWhileQueryOperator.cs
@@ -7,7 +7,7 @@
//
// TakeOrSkipWhileQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/WhereQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/WhereQueryOperator.cs
index 3ec343a9f0f..d447915d871 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/WhereQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/Unary/WhereQueryOperator.cs
@@ -7,7 +7,7 @@
//
// WhereQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/UnaryQueryOperator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/UnaryQueryOperator.cs
index b66aa49f721..0baa5ad628d 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/UnaryQueryOperator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/QueryOperators/UnaryQueryOperator.cs
@@ -7,7 +7,7 @@
//
// UnaryQueryOperator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/CancellationState.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/CancellationState.cs
index c084abb4b73..e84bced8117 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/CancellationState.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/CancellationState.cs
@@ -7,7 +7,7 @@
//
// CancellationState.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A bag of cancellation-related items that are passed around as a group.
//
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/OrderPreservingPipeliningSpoolingTask.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/OrderPreservingPipeliningSpoolingTask.cs
index f1e99baedb4..a402e317e92 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/OrderPreservingPipeliningSpoolingTask.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/OrderPreservingPipeliningSpoolingTask.cs
@@ -7,7 +7,7 @@
//
// OrderPreservingPipeliningSpoolingTask.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/OrderPreservingSpoolingTask.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/OrderPreservingSpoolingTask.cs
index 478533db208..20c75157119 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/OrderPreservingSpoolingTask.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/OrderPreservingSpoolingTask.cs
@@ -7,7 +7,7 @@
//
// OrderPreservingSpoolingTask.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/QueryLifecycle.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/QueryLifecycle.cs
index 92ead1bfb7f..3f0e70731b5 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/QueryLifecycle.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/QueryLifecycle.cs
@@ -7,7 +7,7 @@
//
// QueryLifecycle.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A convenient place to put things associated with entire queries and their lifecycle events.
//
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/QueryTask.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/QueryTask.cs
index 97dc14d53cc..7ca188a354f 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/QueryTask.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/QueryTask.cs
@@ -7,7 +7,7 @@
//
// QueryTask.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
@@ -88,7 +88,7 @@ namespace System.Linq.Parallel
}
//-----------------------------------------------------------------------------------
- // Common function called regardless of [....] or async execution. Just wraps some
+ // Common function called regardless of sync or async execution. Just wraps some
// amount of tracing around the call to the real work API.
//
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/QueryTaskGroupState.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/QueryTaskGroupState.cs
index f3666afb068..9dbc359a725 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/QueryTaskGroupState.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/QueryTaskGroupState.cs
@@ -7,7 +7,7 @@
//
// QueryTaskGroupState.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
@@ -98,9 +98,9 @@ namespace System.Linq.Parallel
// There are four cases:
// Case #1: Wait produced an exception that is not OCE(ct), or an AggregateException which is not full of OCE(ct) ==> We rethrow.
// Case #2: External cancellation has been requested ==> we'll manually throw OCE(externalToken).
- // Case #3a: We are servicing a call to Dispose() (and possibly also external cancellation has been requested).. simply return. See bug 695173
- // Case #3b: The enumerator has already been disposed (and possibly also external cancellation was requested). Throw an ODE.
- // Case #4: No exceptions or explicit call to Dispose() by this caller ==> we just return.
+ // Case #3a: We are servicing a call to Dispose() (and possibly also external cancellation has been requested).. simply return. See
+
+
// See also "InlinedAggregationOperator" which duplicates some of this logic for the aggregators.
// See also "QueryOpeningEnumerator" which duplicates some of this logic.
@@ -153,7 +153,7 @@ namespace System.Linq.Parallel
// 2. tokenCancellationRequested is backed by a volatile field, hence the reads below
// won't get reordered about the read of token.IsCancellationRequested.
- // If the query has already been disposed, we don't want to throw an OCE (this is a fix for bug 695173.)
+ // If the query has already been disposed, we don't want to throw an OCE (this is a fix for
if (!m_cancellationState.TopLevelDisposedFlag.Value)
{
CancellationState.ThrowWithStandardMessageIfCanceled(m_cancellationState.ExternalCancellationToken); // Case #2
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/Scheduling.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/Scheduling.cs
index f43d3fdd52f..306b5411b33 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/Scheduling.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/Scheduling.cs
@@ -7,7 +7,7 @@
//
// Scheduling.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Infrastructure for setting up concurrent work, marshaling exceptions, determining
// the recommended degree-of-parallelism, and so forth.
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/SpoolingTask.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/SpoolingTask.cs
index ab614a04733..a8016015088 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/SpoolingTask.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/SpoolingTask.cs
@@ -7,7 +7,7 @@
//
// SpoolingTask.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/SpoolingTaskBase.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/SpoolingTaskBase.cs
index fdbe37adf1e..26d878fe0bc 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/SpoolingTaskBase.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Scheduling/SpoolingTaskBase.cs
@@ -7,7 +7,7 @@
//
// SpoolingTaskBase.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/CancellableEnumerable.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/CancellableEnumerable.cs
index fc3855ea7be..8eb45c4ba21 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/CancellableEnumerable.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/CancellableEnumerable.cs
@@ -7,7 +7,7 @@
//
// CancellableEnumerable.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ExceptionAggregator.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ExceptionAggregator.cs
index 7423b7edab9..1a9b354fea2 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ExceptionAggregator.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ExceptionAggregator.cs
@@ -7,7 +7,7 @@
//
// ExceptionAggregator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ExchangeUtilities.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ExchangeUtilities.cs
index 7df87b5a4cf..c52cec2fabf 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ExchangeUtilities.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ExchangeUtilities.cs
@@ -7,7 +7,7 @@
//
// ExchangeUtilities.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/FixedMaxHeap.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/FixedMaxHeap.cs
index 74f4f6fb636..43547483f5b 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/FixedMaxHeap.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/FixedMaxHeap.cs
@@ -7,7 +7,7 @@
//
// FixedMaxHeap.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/GrowingArray.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/GrowingArray.cs
index 7e431a8d215..ccb3d1f97a2 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/GrowingArray.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/GrowingArray.cs
@@ -7,7 +7,7 @@
//
// GrowingArray.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/HashLookup.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/HashLookup.cs
index 5cbd0bb5e60..8251e6c6bea 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/HashLookup.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/HashLookup.cs
@@ -7,7 +7,7 @@
//
// HashLookup.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ListChunk.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ListChunk.cs
index 2b0b099c6d9..8ae36104498 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ListChunk.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ListChunk.cs
@@ -7,7 +7,7 @@
//
// ListChunk.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Lookup.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Lookup.cs
index e3b1561f616..4b7a65c5cff 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Lookup.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Lookup.cs
@@ -7,7 +7,7 @@
//
// Lookup.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/PLINQETWProvider.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/PLINQETWProvider.cs
index 294a86d542b..bbfec3cd6e7 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/PLINQETWProvider.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/PLINQETWProvider.cs
@@ -7,7 +7,7 @@
//
// PlinqEtwProvider.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// EventSource for PLINQ.
//
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Pair.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Pair.cs
index 57ed99389bd..0c8ed3672e0 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Pair.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Pair.cs
@@ -7,7 +7,7 @@
//
// Pair.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/PairComparer.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/PairComparer.cs
index 99cf8fd1d65..ea0cc96ad13 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/PairComparer.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/PairComparer.cs
@@ -7,7 +7,7 @@
//
// PairComparer.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ReverseComparer.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ReverseComparer.cs
index b9ad3cced19..e8e81bd325a 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ReverseComparer.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/ReverseComparer.cs
@@ -7,7 +7,7 @@
//
// ReverseComparer.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Shared.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Shared.cs
index ebe1953110b..28da58a616d 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Shared.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Shared.cs
@@ -7,7 +7,7 @@
//
// Shared.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Sorting.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Sorting.cs
index fb355997295..dba1de364e8 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Sorting.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Sorting.cs
@@ -7,7 +7,7 @@
//
// Sorting.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Support for sorting.
//
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/TraceHelpers.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/TraceHelpers.cs
index 5c1ad9f452d..00202eb30bc 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/TraceHelpers.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/TraceHelpers.cs
@@ -7,7 +7,7 @@
//
// TraceHelpers.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Common routines used to trace information about execution, the state of things, etc.
//
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Util.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Util.cs
index b877250e9b4..7ccdf8f5e4a 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Util.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Util.cs
@@ -7,7 +7,7 @@
//
// Util.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
@@ -33,12 +33,12 @@ namespace System.Linq.Parallel
}
//-----------------------------------------------------------------------------------
- // This is a temporary workaround for a VSWhidbey bug 601998 in the X64 JIT compiler.
- // Unlike the X86 JIT, null checks on value types aren't optimized away in Whidbey.
- // That means using the GenericComparer<K> infrastructure results in boxing value
- // types. This kills performance all over the place. This bug has been fixed in
- // Orcas (2.0 SP1), so once we're on the SP1 runtime, this can be removed.
- //
+ // This is a temporary workaround for a VSWhidbey
+
+
+
+
+
internal static Comparer<TKey> GetDefaultComparer<TKey>()
{
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Wrapper.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Wrapper.cs
index c96085b02b3..4878dedf2b7 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Wrapper.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/Wrapper.cs
@@ -7,7 +7,7 @@
//
// Wrapper.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/WrapperEqualityComparer.cs b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/WrapperEqualityComparer.cs
index c2cb403cec4..38fa75ba4bc 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/WrapperEqualityComparer.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/Parallel/Utils/WrapperEqualityComparer.cs
@@ -7,7 +7,7 @@
//
// WrapperEqualityComparer.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/ParallelEnumerable.cs b/mcs/class/referencesource/System.Core/System/Linq/ParallelEnumerable.cs
index 89dd8d7697b..daa567abe08 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/ParallelEnumerable.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/ParallelEnumerable.cs
@@ -7,7 +7,7 @@
//
// ParallelEnumerable.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// The standard IEnumerable-based LINQ-to-Objects query provider. This class basically
// mirrors the System.Linq.Enumerable class, but (1) takes as input a special "parallel
diff --git a/mcs/class/referencesource/System.Core/System/Linq/ParallelExecutionMode.cs b/mcs/class/referencesource/System.Core/System/Linq/ParallelExecutionMode.cs
index 1447b87013d..fe09a4a7e99 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/ParallelExecutionMode.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/ParallelExecutionMode.cs
@@ -7,7 +7,7 @@
//
// ParallelQueryExecutionMode.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>igoro</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/mcs/class/referencesource/System.Core/System/Linq/ParallelMergeOptions.cs b/mcs/class/referencesource/System.Core/System/Linq/ParallelMergeOptions.cs
index ea6b174f759..5eeb15854c0 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/ParallelMergeOptions.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/ParallelMergeOptions.cs
@@ -7,7 +7,7 @@
//
// ParallelMergeOptions.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>igoro</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
@@ -60,4 +60,4 @@ namespace System.Linq
/// </summary>
FullyBuffered = 3
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Core/System/Linq/SequenceQuery.cs b/mcs/class/referencesource/System.Core/System/Linq/SequenceQuery.cs
index c26925aae8d..ebcd614d332 100644
--- a/mcs/class/referencesource/System.Core/System/Linq/SequenceQuery.cs
+++ b/mcs/class/referencesource/System.Core/System/Linq/SequenceQuery.cs
@@ -96,7 +96,7 @@ namespace System.Linq {
// critical (which was the original annotation when porting to silverlight) would violate
// fxcop security rules if the interface isn't also critical. However, transparent code
// can't access this anyway for Mix since we're not exposing AsQueryable().
- // [....]: the above assertion no longer holds. Now making AsQueryable() public again
+ // Microsoft: the above assertion no longer holds. Now making AsQueryable() public again
// the security fallout of which will need to be re-examined.
object IQueryProvider.Execute(Expression expression){
if (expression == null)
diff --git a/mcs/class/referencesource/System.Core/System/Runtime/InteropServices/ComAwareEventInfo.cs b/mcs/class/referencesource/System.Core/System/Runtime/InteropServices/ComAwareEventInfo.cs
index 6b61bbdd4d4..86ac682095c 100644
--- a/mcs/class/referencesource/System.Core/System/Runtime/InteropServices/ComAwareEventInfo.cs
+++ b/mcs/class/referencesource/System.Core/System/Runtime/InteropServices/ComAwareEventInfo.cs
@@ -18,6 +18,9 @@ namespace System.Runtime.InteropServices {
#endregion
#region protected overrides
+#if FEATURE_NETCORE
+ [System.Security.SecuritySafeCritical]
+#endif//FEATURE_NETCORE
public override void AddEventHandler(object target, Delegate handler) {
if (Marshal.IsComObject(target)) {
// retrieve sourceIid and dispid
@@ -25,9 +28,11 @@ namespace System.Runtime.InteropServices {
int dispid;
GetDataForComInvocation(_innerEventInfo, out sourceIid, out dispid);
+#if FEATURE_CAS_POLICY
// now validate the caller can call into native and redirect to ComEventHelpers.Combine
SecurityPermission perm = new SecurityPermission(SecurityPermissionFlag.UnmanagedCode);
perm.Demand();
+#endif//FEATURE_CAS_POLICY
System.Runtime.InteropServices.ComEventsHelper.Combine(target, sourceIid, dispid, handler);
} else {
// we are dealing with a managed object - just add the delegate through reflection
@@ -35,6 +40,9 @@ namespace System.Runtime.InteropServices {
}
}
+#if FEATURE_NETCORE
+ [System.Security.SecuritySafeCritical]
+#endif//FEATURE_NETCORE
public override void RemoveEventHandler(object target, Delegate handler) {
if (Marshal.IsComObject(target)) {
// retrieve sourceIid and dispid
@@ -42,9 +50,11 @@ namespace System.Runtime.InteropServices {
int dispid;
GetDataForComInvocation(_innerEventInfo, out sourceIid, out dispid);
+#if FEATURE_CAS_POLICY
// now validate the caller can call into native and redirect to ComEventHelpers.Combine
SecurityPermission perm = new SecurityPermission(SecurityPermissionFlag.UnmanagedCode);
perm.Demand();
+#endif//FEATURE_CAS_POLICY
System.Runtime.InteropServices.ComEventsHelper.Remove(target, sourceIid, dispid, handler);
} else {
// we are dealing with a managed object - just add the delegate through relection
diff --git a/mcs/class/referencesource/System.Core/System/Security/Cryptography/Aes.cs b/mcs/class/referencesource/System.Core/System/Security/Cryptography/Aes.cs
index 981e08887cf..913e423fd39 100644
--- a/mcs/class/referencesource/System.Core/System/Security/Cryptography/Aes.cs
+++ b/mcs/class/referencesource/System.Core/System/Security/Cryptography/Aes.cs
@@ -5,4 +5,4 @@
// ==--==
// moved to mscorlib.dll
-[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Security.Cryptography.Aes))]
+[assembly:System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Security.Cryptography.Aes))] \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Core/System/Security/Cryptography/AesCryptoServiceProvider.cs b/mcs/class/referencesource/System.Core/System/Security/Cryptography/AesCryptoServiceProvider.cs
index 284990875ac..bea786468a9 100644
--- a/mcs/class/referencesource/System.Core/System/Security/Cryptography/AesCryptoServiceProvider.cs
+++ b/mcs/class/referencesource/System.Core/System/Security/Cryptography/AesCryptoServiceProvider.cs
@@ -6,6 +6,9 @@
using System;
using System.Collections.Generic;
+#if FEATURE_CORESYSTEM
+using System.Core;
+#endif
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;
@@ -67,7 +70,7 @@ namespace System.Security.Cryptography {
/// Value of the symmetric key used for encryption / decryption
/// </summary>
public override byte[] Key {
- [System.Security.SecurityCritical]
+ [System.Security.SecuritySafeCritical]
[SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Justification = "Reviewed")]
get {
Contract.Ensures(m_key != null && !m_key.IsInvalid && !m_key.IsClosed);
@@ -84,7 +87,7 @@ namespace System.Security.Cryptography {
return keyValue;
}
- [System.Security.SecurityCritical]
+ [System.Security.SecuritySafeCritical]
[SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Justification = "Reviewed")]
set {
Contract.Ensures(m_key != null && !m_key.IsInvalid && !m_key.IsClosed);
@@ -120,7 +123,7 @@ namespace System.Security.Cryptography {
public override int KeySize {
get { return base.KeySize; }
- [System.Security.SecurityCritical]
+ [System.Security.SecuritySafeCritical]
[SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Justification = "Reviewed")]
set {
base.KeySize = value;
@@ -136,7 +139,7 @@ namespace System.Security.Cryptography {
/// Create an object to perform AES decryption with the current key and IV
/// </summary>
/// <returns></returns>
- [System.Security.SecurityCritical]
+ [System.Security.SecuritySafeCritical]
[SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Justification = "Reviewed")]
public override ICryptoTransform CreateDecryptor() {
Contract.Ensures(Contract.Result<ICryptoTransform>() != null);
@@ -151,7 +154,7 @@ namespace System.Security.Cryptography {
/// <summary>
/// Create an object to perform AES decryption with the given key and IV
/// </summary>
- [System.Security.SecurityCritical]
+ [System.Security.SecuritySafeCritical]
public override ICryptoTransform CreateDecryptor(byte[] key, byte[] iv) {
Contract.Ensures(Contract.Result<ICryptoTransform>() != null);
@@ -197,7 +200,7 @@ namespace System.Security.Cryptography {
/// <summary>
/// Create an object to do AES encryption with the current key and IV
/// </summary>
- [System.Security.SecurityCritical]
+ [System.Security.SecuritySafeCritical]
[SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Justification = "Reviewed")]
public override ICryptoTransform CreateEncryptor() {
Contract.Ensures(Contract.Result<ICryptoTransform>() != null);
@@ -217,7 +220,7 @@ namespace System.Security.Cryptography {
/// <summary>
/// Create an object to do AES encryption with the given key and IV
/// </summary>
- [System.Security.SecurityCritical]
+ [System.Security.SecuritySafeCritical]
public override ICryptoTransform CreateEncryptor(byte[] key, byte[] iv) {
Contract.Ensures(Contract.Result<ICryptoTransform>() != null);
@@ -263,7 +266,7 @@ namespace System.Security.Cryptography {
/// <summary>
/// Release any CAPI handles we're holding onto
/// </summary>
- [System.Security.SecurityCritical]
+ [System.Security.SecuritySafeCritical]
protected override void Dispose(bool disposing) {
Contract.Ensures(!disposing || m_key == null || m_key.IsClosed);
Contract.Ensures(!disposing || m_cspHandle == null || m_cspHandle.IsClosed);
@@ -360,7 +363,7 @@ namespace System.Security.Cryptography {
/// <summary>
/// Generate a new random key
/// </summary>
- [System.Security.SecurityCritical]
+ [System.Security.SecuritySafeCritical]
[SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Justification = "Reviewed")]
public override void GenerateKey() {
Contract.Ensures(m_key != null && !m_key.IsInvalid & !m_key.IsClosed);
@@ -393,7 +396,7 @@ namespace System.Security.Cryptography {
/// <summary>
/// Generate a random initialization vector
/// </summary>
- [System.Security.SecurityCritical]
+ [System.Security.SecuritySafeCritical]
[SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Justification = "Reviewed")]
public override void GenerateIV() {
Contract.Ensures(IVValue != null && IVValue.Length == BlockSizeValue / 8);
diff --git a/mcs/class/referencesource/System.Core/System/Security/Cryptography/BCryptNative.cs b/mcs/class/referencesource/System.Core/System/Security/Cryptography/BCryptNative.cs
index 7272e139ab3..b4cc86876f3 100644
--- a/mcs/class/referencesource/System.Core/System/Security/Cryptography/BCryptNative.cs
+++ b/mcs/class/referencesource/System.Core/System/Security/Cryptography/BCryptNative.cs
@@ -15,6 +15,28 @@ using Microsoft.Win32;
using Microsoft.Win32.SafeHandles;
namespace System.Security.Cryptography {
+
+ internal enum AsymmetricPaddingMode {
+ /// <summary>
+ /// No padding
+ /// </summary>
+ None = 1, // BCRYPT_PAD_NONE
+
+ /// <summary>
+ /// PKCS #1 padding
+ /// </summary>
+ Pkcs1 = 2, // BCRYPT_PAD_PKCS1
+
+ /// <summary>
+ /// Optimal Asymmetric Encryption Padding
+ /// </summary>
+ Oaep = 4, // BCRYPT_PAD_OAEP
+
+ /// <summary>
+ /// Probabilistic Signature Scheme padding
+ /// </summary>
+ Pss = 8 // BCRYPT_PAD_PSS
+ }
/// <summary>
/// Native interop with CNG's BCrypt layer. Native definitions can be found in bcrypt.h
/// </summary>
@@ -34,6 +56,29 @@ namespace System.Security.Cryptography {
public const string Sha256 = "SHA256"; // BCRYPT_SHA256_ALGORITHM
public const string Sha384 = "SHA384"; // BCRYPT_SHA384_ALGORITHM
public const string Sha512 = "SHA512"; // BCRYPT_SHA512_ALGORITHM
+ internal const string Rsa = "RSA"; // BCRYPT_RSA_ALGORITHM
+ }
+
+ /// <summary>
+ /// Well known key blob tyes
+ /// </summary>
+ internal static class KeyBlobType {
+ //During Win8 Windows introduced BCRYPT_PUBLIC_KEY_BLOB L"PUBLICBLOB"
+ //and #define BCRYPT_PRIVATE_KEY_BLOB L"PRIVATEBLOB". We should use the
+ //same on ProjectN and ProjectK
+ internal const string RsaFullPrivateBlob = "RSAFULLPRIVATEBLOB"; // BCRYPT_RSAFULLPRIVATE_BLOB
+ internal const string RsaPrivateBlob = "RSAPRIVATEBLOB"; // BCRYPT_RSAPRIVATE_BLOB
+ internal const string RsaPublicBlob = "RSAPUBLICBLOB"; // BCRYPT_PUBLIC_KEY_BLOB
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct BCRYPT_RSAKEY_BLOB {
+ internal KeyBlobMagicNumber Magic;
+ internal int BitLength;
+ internal int cbPublicExp;
+ internal int cbModulus;
+ internal int cbPrime1;
+ internal int cbPrime2;
}
/// <summary>
@@ -61,7 +106,35 @@ namespace System.Security.Cryptography {
ECDHPublicP521 = 0x354B4345, // BCRYPT_ECDH_PUBLIC_P521_MAGIC
ECDsaPublicP256 = 0x31534345, // BCRYPT_ECDSA_PUBLIC_P256_MAGIC
ECDsaPublicP384 = 0x33534345, // BCRYPT_ECDSA_PUBLIC_P384_MAGIC
- ECDsaPublicP521 = 0x35534345 // BCRYPT_ECDSA_PUBLIC_P521_MAGIC
+ ECDsaPublicP521 = 0x35534345, // BCRYPT_ECDSA_PUBLIC_P521_MAGIC
+ RsaPublic = 0x31415352, // BCRYPT_RSAPUBLIC_MAGIC
+ RsaPrivate = 0x32415352, // BCRYPT_RSAPRIVATE_MAGIC
+ RsaFullPrivateMagic = 0x33415352, //BCRYPT_RSAFULLPRIVATE_MAGIC
+ KeyDataBlob = 0x4d42444b // BCRYPT_KEY_DATA_BLOB_MAGIC
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct BCRYPT_OAEP_PADDING_INFO {
+ [MarshalAs(UnmanagedType.LPWStr)]
+ internal string pszAlgId;
+
+ internal IntPtr pbLabel;
+
+ internal int cbLabel;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct BCRYPT_PKCS1_PADDING_INFO {
+ [MarshalAs(UnmanagedType.LPWStr)]
+ internal string pszAlgId;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct BCRYPT_PSS_PADDING_INFO {
+ [MarshalAs(UnmanagedType.LPWStr)]
+ internal string pszAlgId;
+
+ internal int cbSalt;
}
/// <summary>
diff --git a/mcs/class/referencesource/System.Core/System/Security/Cryptography/CapiNative.cs b/mcs/class/referencesource/System.Core/System/Security/Cryptography/CapiNative.cs
index eaf838ec1ee..b9f7080affc 100644
--- a/mcs/class/referencesource/System.Core/System/Security/Cryptography/CapiNative.cs
+++ b/mcs/class/referencesource/System.Core/System/Security/Cryptography/CapiNative.cs
@@ -5,14 +5,19 @@
// ==--==
using System;
+#if FEATURE_CORESYSTEM
+using System.Core;
+#endif
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
+using System.Diagnostics.Contracts;
using System.Globalization;
using System.Runtime.CompilerServices;
using System.Runtime.ConstrainedExecution;
using System.Runtime.InteropServices;
+using System.Runtime.Versioning;
using System.Security;
-using System.Diagnostics.Contracts;
+using System.Text;
using Microsoft.Win32.SafeHandles;
namespace System.Security.Cryptography {
@@ -171,15 +176,62 @@ namespace System.Security.Cryptography {
public fixed byte szName[20];
}
+ internal const uint ALG_CLASS_SIGNATURE = (1 << 13);
+ internal const uint ALG_TYPE_RSA = (2 << 9);
+ internal const uint ALG_SID_RSA_ANY = 0;
+ internal const uint ALG_SID_DSS_ANY = 0;
+ internal const uint ALG_TYPE_DSS = (1 << 9);
+ internal const uint ALG_CLASS_KEY_EXCHANGE = (5 << 13);
+
+ internal const uint CALG_RSA_SIGN = (ALG_CLASS_SIGNATURE | ALG_TYPE_RSA | ALG_SID_RSA_ANY);
+ internal const uint CALG_DSS_SIGN = (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_DSS_ANY);
+ internal const uint CALG_RSA_KEYX = (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_RSA | ALG_SID_RSA_ANY);
+ internal const uint CNG_RSA_PUBLIC_KEY_BLOB = 72;
+
+ internal const uint X509_ASN_ENCODING = 0x00000001;
+ internal const uint PKCS_7_ASN_ENCODING = 0x00010000;
+
+ internal const uint CRYPT_OID_INFO_OID_KEY = 1;
+
+ internal const uint LMEM_FIXED = 0x0000;
+ internal const uint LMEM_ZEROINIT = 0x0040;
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
+ internal struct CRYPT_OID_INFO {
+ internal CRYPT_OID_INFO(int size) {
+ cbSize = (uint)size;
+ pszOID = null;
+ pwszName = null;
+ dwGroupId = 0;
+ Algid = 0;
+ ExtraInfo = new CRYPTOAPI_BLOB();
+ }
+ internal uint cbSize;
+ [MarshalAs(UnmanagedType.LPStr)]
+ internal string pszOID;
+ internal string pwszName;
+ internal uint dwGroupId;
+ internal uint Algid;
+ internal CRYPTOAPI_BLOB ExtraInfo;
+ }
+
+
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#else
#pragma warning disable 618 // Have not migrated to v4 transparency yet
[SecurityCritical(SecurityCriticalScope.Everything)]
#pragma warning restore 618
+#endif
[SuppressUnmanagedCodeSecurity]
internal static class UnsafeNativeMethods {
/// <summary>
/// Calculate the public key token for a given public key
/// </summary>
[DllImport("clr")]
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
public static extern int _AxlPublicKeyBlobToPublicKeyToken(ref CRYPTOAPI_BLOB pCspPublicKeyBlob,
[Out] out SafeAxlBufferHandle ppwszPublicKeyToken);
@@ -189,6 +241,9 @@ namespace System.Security.Cryptography {
/// </summary>
[DllImport("advapi32", SetLastError = true, CharSet = CharSet.Unicode)]
[return: MarshalAs(UnmanagedType.Bool)]
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
public static extern bool CryptAcquireContext([Out] out SafeCspHandle phProv,
string pszContainer,
string pszProvider,
@@ -200,6 +255,9 @@ namespace System.Security.Cryptography {
/// </summary>
[DllImport("advapi32", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
public static extern bool CryptCreateHash(SafeCspHandle hProv,
AlgorithmId Algid,
SafeCapiKeyHandle hKey,
@@ -211,6 +269,9 @@ namespace System.Security.Cryptography {
/// </summary>
[DllImport("advapi32", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
public static extern bool CryptDecrypt(SafeCapiKeyHandle hKey,
SafeCapiHashHandle hHash,
[MarshalAs(UnmanagedType.Bool)] bool Final,
@@ -222,9 +283,14 @@ namespace System.Security.Cryptography {
/// Duplicate a key handle
/// </summary>
[DllImport("advapi32")]
+#if !FEATURE_CORESYSTEM
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
[SuppressUnmanagedCodeSecurity]
[return: MarshalAs(UnmanagedType.Bool)]
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
public static extern bool CryptDuplicateKey(SafeCapiKeyHandle hKey,
IntPtr pdwReserved,
int dwFlags,
@@ -235,6 +301,9 @@ namespace System.Security.Cryptography {
/// </summary>
[DllImport("advapi32", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
public static extern bool CryptEncrypt(SafeCapiKeyHandle hKey,
SafeCapiHashHandle hHash,
[MarshalAs(UnmanagedType.Bool)] bool Final,
@@ -248,6 +317,9 @@ namespace System.Security.Cryptography {
/// </summary>
[DllImport("advapi32", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
public static extern bool CryptExportKey(SafeCapiKeyHandle hKey,
SafeCapiKeyHandle hExpKey,
int dwBlobType, // (int)KeyBlobType
@@ -259,6 +331,9 @@ namespace System.Security.Cryptography {
/// </summary>
[DllImport("advapi32", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
public static extern bool CryptGenKey(SafeCspHandle hProv,
AlgorithmId Algid,
KeyFlags dwFlags,
@@ -269,6 +344,9 @@ namespace System.Security.Cryptography {
/// </summary>
[DllImport("advapi32", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
public static extern bool CryptGenRandom(SafeCspHandle hProv,
int dwLen,
[Out, MarshalAs(UnmanagedType.LPArray)] byte[] pbBuffer);
@@ -278,6 +356,9 @@ namespace System.Security.Cryptography {
/// </summary>
[DllImport("advapi32", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
public static extern bool CryptGetHashParam(SafeCapiHashHandle hHash,
HashParameter dwParam,
[Out, MarshalAs(UnmanagedType.LPArray)] byte[] pbData,
@@ -289,6 +370,9 @@ namespace System.Security.Cryptography {
/// </summary>
[DllImport("advapi32", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
public static extern bool CryptGetProvParam(SafeCspHandle hProv,
ProviderParameter dwParam,
IntPtr pbData,
@@ -300,6 +384,9 @@ namespace System.Security.Cryptography {
/// </summary>
[DllImport("advapi32", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
public static extern bool CryptHashData(SafeCapiHashHandle hHash,
[MarshalAs(UnmanagedType.LPArray)] byte[] pbData,
int dwDataLen,
@@ -310,6 +397,9 @@ namespace System.Security.Cryptography {
/// </summary>
[DllImport("advapi32", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
public static extern bool CryptImportKey(SafeCspHandle hProv,
[MarshalAs(UnmanagedType.LPArray)] byte[] pbData,
int dwDataLen,
@@ -322,10 +412,76 @@ namespace System.Security.Cryptography {
/// </summary>
[DllImport("advapi32", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
public static extern bool CryptSetKeyParam(SafeCapiKeyHandle hKey,
KeyParameter dwParam,
[MarshalAs(UnmanagedType.LPArray)] byte[] pbData,
int dwFlags);
+
+ //Added for X509Certificate extension support
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
+ [DllImport("CRYPT32.dll", CharSet = CharSet.Auto, SetLastError = true)]
+ [ResourceExposure(ResourceScope.None)]
+ internal extern static
+ IntPtr CryptFindOIDInfo(
+ [In] uint dwKeyType,
+ [In] IntPtr pvKey,
+ [In] OidGroup dwGroupId);
+
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
+ [DllImport("CRYPT32.dll", CharSet = CharSet.Auto, SetLastError = true)]
+ [ResourceExposure(ResourceScope.None)]
+ internal extern static
+ IntPtr CryptFindOIDInfo(
+ [In] uint dwKeyType,
+ [In] SafeLocalAllocHandle pvKey,
+ [In] OidGroup dwGroupId);
+
+
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
+ [DllImport("Crypt32.dll", CharSet = CharSet.Auto, SetLastError = true)]
+ [ResourceExposure(ResourceScope.None)]
+ internal static extern
+ bool CryptDecodeObject(
+ [In] uint dwCertEncodingType,
+ [In] IntPtr lpszStructType,
+ [In] IntPtr pbEncoded,
+ [In] uint cbEncoded,
+ [In] uint dwFlags,
+ [In, Out] SafeLocalAllocHandle pvStructInfo,
+ [In, Out] IntPtr pcbStructInfo);
+
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
+ [DllImport("Crypt32.dll", CharSet = CharSet.Auto, SetLastError = true)]
+ [ResourceExposure(ResourceScope.None)]
+ internal static extern
+ bool CryptDecodeObject(
+ [In] uint dwCertEncodingType,
+ [In] IntPtr lpszStructType,
+ [In] byte[] pbEncoded,
+ [In] uint cbEncoded,
+ [In] uint dwFlags,
+ [In, Out] SafeLocalAllocHandle pvStructInfo,
+ [In, Out] IntPtr pcbStructInfo);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
+ [DllImport("KERNEL32.dll", CharSet = CharSet.Auto, SetLastError = true)]
+ [ResourceExposure(ResourceScope.None)]
+ internal static extern
+ SafeLocalAllocHandle LocalAlloc(
+ [In] uint uFlags,
+ [In] IntPtr sizetdwBytes);
}
//
@@ -627,5 +783,239 @@ namespace System.Security.Cryptography {
throw new CryptographicException(Marshal.GetLastWin32Error());
}
}
+
+ //Wrapper methods for certificate extensions
+
+ /// <summary>
+ /// Local alloc wrapper.
+ /// </summary>
+ /// <param name="uFlags"></param>
+ /// <param name="sizetdwBytes"></param>
+ /// <returns></returns>
+ [SecuritySafeCritical]
+ internal static SafeLocalAllocHandle LocalAlloc(uint uFlags, IntPtr sizetdwBytes) {
+ SafeLocalAllocHandle safeLocalAllocHandle = UnsafeNativeMethods.LocalAlloc(uFlags, sizetdwBytes);
+ if (safeLocalAllocHandle == null || safeLocalAllocHandle.IsInvalid) {
+ throw new OutOfMemoryException();
+ }
+ return safeLocalAllocHandle;
+ }
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="pszStructType"></param>
+ /// <param name="pbEncoded"></param>
+ /// <param name="cbEncoded"></param>
+ /// <param name="decodedValue"></param>
+ /// <param name="cbDecodedValue"></param>
+ /// <returns></returns>
+ [SecuritySafeCritical]
+ internal static unsafe bool DecodeObject(IntPtr pszStructType,
+ IntPtr pbEncoded,
+ uint cbEncoded,
+ out SafeLocalAllocHandle decodedValue,
+ out uint cbDecodedValue)
+ {
+ // Initialize out parameters
+ decodedValue = SafeLocalAllocHandle.InvalidHandle;
+ cbDecodedValue = 0;
+
+ // Decode
+ uint cbDecoded = 0;
+ SafeLocalAllocHandle ptr = SafeLocalAllocHandle.InvalidHandle;
+ if (!UnsafeNativeMethods.CryptDecodeObject(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
+ pszStructType,
+ pbEncoded,
+ cbEncoded,
+ 0,
+ ptr,
+ new IntPtr(&cbDecoded))) {
+ return false;
+ }
+ ptr = LocalAlloc(LMEM_FIXED, new IntPtr(cbDecoded));
+
+ if (!UnsafeNativeMethods.CryptDecodeObject(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
+ pszStructType,
+ pbEncoded,
+ cbEncoded,
+ 0,
+ ptr,
+ new IntPtr(&cbDecoded))) {
+ return false;
+ }
+ // Return decoded values
+ decodedValue = ptr;
+ cbDecodedValue = cbDecoded;
+
+ return true;
+ }
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="pszStructType"></param>
+ /// <param name="pbEncoded"></param>
+ /// <param name="decodedValue"></param>
+ /// <param name="cbDecodedValue"></param>
+ /// <returns></returns>
+ [SecuritySafeCritical]
+ internal static unsafe bool DecodeObject(IntPtr pszStructType,
+ byte[] pbEncoded,
+ out SafeLocalAllocHandle decodedValue,
+ out uint cbDecodedValue)
+ {
+ // Initialize out parameters
+ decodedValue = SafeLocalAllocHandle.InvalidHandle;
+ cbDecodedValue = 0;
+
+ // Decode
+ uint cbDecoded = 0;
+ SafeLocalAllocHandle pbDecoded = SafeLocalAllocHandle.InvalidHandle;
+
+ if (!UnsafeNativeMethods.CryptDecodeObject(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
+ pszStructType,
+ pbEncoded,
+ (uint)pbEncoded.Length,
+ 0,
+ pbDecoded,
+ new IntPtr(&cbDecoded))) {
+ return false;
+ }
+ pbDecoded = LocalAlloc(LMEM_FIXED, new IntPtr(cbDecoded));
+ if (!UnsafeNativeMethods.CryptDecodeObject(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
+ pszStructType,
+ pbEncoded,
+ (uint)pbEncoded.Length,
+ 0,
+ pbDecoded,
+ new IntPtr(&cbDecoded))) {
+ return false;
+ }
+ // Return decoded values
+ decodedValue = pbDecoded;
+ cbDecodedValue = cbDecoded;
+
+ return true;
+ }
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="dwKeyType"></param>
+ /// <param name="pvKey"></param>
+ /// <param name="dwGroupId"></param>
+ /// <returns></returns>
+ [SecuritySafeCritical]
+ internal static CRYPT_OID_INFO CryptFindOIDInfo(
+ [In] uint dwKeyType,
+ [In] IntPtr pvKey,
+ [In] OidGroup dwGroupId) {
+
+ if (pvKey == IntPtr.Zero) {
+ throw new ArgumentNullException("pvKey");
+ }
+ CRYPT_OID_INFO pOIDInfo = new CRYPT_OID_INFO(Marshal.SizeOf(typeof(CRYPT_OID_INFO)));
+ IntPtr pv = UnsafeNativeMethods.CryptFindOIDInfo(dwKeyType,
+ pvKey,
+ dwGroupId);
+
+ if (pv != IntPtr.Zero) {
+ pOIDInfo = (CRYPT_OID_INFO)Marshal.PtrToStructure(pv, typeof(CRYPT_OID_INFO));
+ }
+ return pOIDInfo;
+ }
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="dwKeyType"></param>
+ /// <param name="pvKey"></param>
+ /// <param name="dwGroupId"></param>
+ /// <returns></returns>
+ [SecuritySafeCritical]
+ internal static CRYPT_OID_INFO CryptFindOIDInfo(
+ [In] uint dwKeyType,
+ [In] SafeLocalAllocHandle pvKey,
+ [In] OidGroup dwGroupId) {
+
+ if (pvKey == null) {
+ throw new ArgumentNullException("pvKey");
+ }
+ if (pvKey.IsInvalid) {
+ throw new CryptographicException("SR.GetString(SR.Cryptography_InvalidHandle)", "pvKey");
+ }
+ CRYPT_OID_INFO pOIDInfo = new CRYPT_OID_INFO(Marshal.SizeOf(typeof(CRYPT_OID_INFO)));
+ IntPtr pv = UnsafeNativeMethods.CryptFindOIDInfo(dwKeyType,
+ pvKey,
+ dwGroupId);
+
+ if (pv != IntPtr.Zero) {
+ pOIDInfo = (CRYPT_OID_INFO)Marshal.PtrToStructure(pv, typeof(CRYPT_OID_INFO));
+ }
+ return pOIDInfo;
+ }
+ }
+
+ /// <summary>
+ /// Safe local handle class
+ /// </summary>
+ internal sealed class SafeLocalAllocHandle : SafeHandleZeroOrMinusOneIsInvalid {
+ [SecuritySafeCritical]
+ private SafeLocalAllocHandle()
+ : base(true) {
+ }
+
+ [DllImport("kernel32.dll")]
+ private static extern IntPtr LocalFree(IntPtr hMem);
+
+ [SecuritySafeCritical]
+ internal T Read<T>(int offset) where T : struct {
+ bool addedRef = false;
+ RuntimeHelpers.PrepareConstrainedRegions();
+ try {
+ DangerousAddRef(ref addedRef);
+ unsafe {
+ IntPtr pBase = new IntPtr((byte*)handle.ToPointer() + offset);
+ return (T)Marshal.PtrToStructure(pBase, typeof(T));
+ }
+ }
+ finally {
+ if (addedRef) {
+ DangerousRelease();
+ }
+ }
+ }
+
+ [SecuritySafeCritical]
+ protected override bool ReleaseHandle() {
+ return LocalFree(handle) == IntPtr.Zero;
+ }
+
+ [SecuritySafeCritical]
+ internal SafeLocalAllocHandle(IntPtr handle)
+ : base(true) {
+ SetHandle(handle);
+ }
+
+ internal static SafeLocalAllocHandle InvalidHandle {
+ [SecuritySafeCritical]
+ get { return new SafeLocalAllocHandle(IntPtr.Zero); }
+ }
+ }
+
+ /// <summary>
+ ///
+ /// </summary>
+ internal class X509Utils {
+
+ [SecuritySafeCritical]
+ internal static SafeLocalAllocHandle StringToAnsiPtr(string s) {
+ byte[] arr = new byte[s.Length + 1];
+ Encoding.ASCII.GetBytes(s, 0, s.Length, arr, 0);
+ SafeLocalAllocHandle pb = CapiNative.LocalAlloc(CapiNative.LMEM_FIXED, new IntPtr(arr.Length));
+ Marshal.Copy(arr, 0, pb.DangerousGetHandle(), arr.Length);
+ return pb;
+ }
}
}
diff --git a/mcs/class/referencesource/System.Core/System/Security/Cryptography/CapiSymmetricAlgorithm.cs b/mcs/class/referencesource/System.Core/System/Security/Cryptography/CapiSymmetricAlgorithm.cs
index 7f153167019..490e61651f2 100644
--- a/mcs/class/referencesource/System.Core/System/Security/Cryptography/CapiSymmetricAlgorithm.cs
+++ b/mcs/class/referencesource/System.Core/System/Security/Cryptography/CapiSymmetricAlgorithm.cs
@@ -5,6 +5,9 @@
// ==--==
using System;
+#if FEATURE_CORESYSTEM
+using System.Core;
+#endif
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;
diff --git a/mcs/class/referencesource/System.Core/System/Security/Cryptography/CngAlgorithm.cs b/mcs/class/referencesource/System.Core/System/Security/Cryptography/CngAlgorithm.cs
index 45c8bcd3493..bb161cb53f2 100644
--- a/mcs/class/referencesource/System.Core/System/Security/Cryptography/CngAlgorithm.cs
+++ b/mcs/class/referencesource/System.Core/System/Security/Cryptography/CngAlgorithm.cs
@@ -28,7 +28,8 @@ namespace System.Security.Cryptography {
private static volatile CngAlgorithm s_sha256;
private static volatile CngAlgorithm s_sha384;
private static volatile CngAlgorithm s_sha512;
-
+ private static volatile CngAlgorithm s_rsa;
+
private string m_algorithm;
public CngAlgorithm(string algorithm) {
@@ -99,6 +100,16 @@ namespace System.Security.Cryptography {
// Well known algorithms
//
+ public static CngAlgorithm Rsa {
+ get {
+ Contract.Ensures(Contract.Result<CngAlgorithm>() != null);
+ if (s_rsa == null) {
+ s_rsa = new CngAlgorithm(BCryptNative.AlgorithmName.Rsa);
+ }
+ return s_rsa;
+ }
+ }
+
public static CngAlgorithm ECDiffieHellmanP256 {
get {
Contract.Ensures(Contract.Result<CngAlgorithm>() != null);
diff --git a/mcs/class/referencesource/System.Core/System/Security/Cryptography/CngKey.cs b/mcs/class/referencesource/System.Core/System/Security/Cryptography/CngKey.cs
index 5c850ed0b8c..13ea41c2fb2 100644
--- a/mcs/class/referencesource/System.Core/System/Security/Cryptography/CngKey.cs
+++ b/mcs/class/referencesource/System.Core/System/Security/Cryptography/CngKey.cs
@@ -126,10 +126,19 @@ namespace System.Security.Cryptography {
Contract.Assert(m_keyHandle != null);
bool foundProperty;
- byte[] ephemeralProperty = NCryptNative.GetProperty(m_keyHandle,
- NCryptNative.KeyPropertyName.ClrIsEphemeral,
- CngPropertyOptions.CustomProperty,
- out foundProperty);
+ byte[] ephemeralProperty = null;
+ try {
+ ephemeralProperty = NCryptNative.GetProperty(m_keyHandle,
+ NCryptNative.KeyPropertyName.ClrIsEphemeral,
+ CngPropertyOptions.CustomProperty,
+ out foundProperty);
+ }
+ catch (CryptographicException) {
+ // Third party Key providers, and Windows PCP KSP won't recognize this property;
+ // and Win32 layer does not enforce error return contract.
+ // Therefore, they can return whatever error code they think appropriate.
+ return false;
+ }
return foundProperty &&
ephemeralProperty != null &&
diff --git a/mcs/class/referencesource/System.Core/System/Security/Cryptography/ECKeyXmlFormat.cs b/mcs/class/referencesource/System.Core/System/Security/Cryptography/ECKeyXmlFormat.cs
index ce1c1740597..d8cfcb4b52f 100644
--- a/mcs/class/referencesource/System.Core/System/Security/Cryptography/ECKeyXmlFormat.cs
+++ b/mcs/class/referencesource/System.Core/System/Security/Cryptography/ECKeyXmlFormat.cs
@@ -16,4 +16,4 @@ namespace System.Security.Cryptography {
/// </summary>
Rfc4050
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Core/System/Security/Cryptography/NCryptNative.cs b/mcs/class/referencesource/System.Core/System/Security/Cryptography/NCryptNative.cs
index 47586cf5ecb..162e0bb883e 100644
--- a/mcs/class/referencesource/System.Core/System/Security/Cryptography/NCryptNative.cs
+++ b/mcs/class/referencesource/System.Core/System/Security/Cryptography/NCryptNative.cs
@@ -129,7 +129,8 @@ namespace System.Security.Cryptography {
BadSignature = unchecked((int)0x80090006), // NTE_BAD_SIGNATURE
NotFound = unchecked((int)0x80090011), // NTE_NOT_FOUND
KeyDoesNotExist = unchecked((int)0x80090016), // NTE_BAD_KEYSET
- BufferTooSmall = unchecked((int)0x80090028) // NTE_BUFFER_TOO_SMALL
+ BufferTooSmall = unchecked((int)0x80090028), // NTE_BUFFER_TOO_SMALL
+ NoMoreItems = unchecked((int)0x8009002a) // NTE_NO_MORE_ITEMS
}
/// <summary>
@@ -380,8 +381,137 @@ namespace System.Security.Cryptography {
[MarshalAs(UnmanagedType.LPArray)] byte[] pbSignature,
int cbSignature,
int dwFlags);
+
+ [DllImport("ncrypt.dll")]
+ internal static extern ErrorCode NCryptSignHash(SafeNCryptKeyHandle hKey,
+ [In] ref BCryptNative.BCRYPT_PKCS1_PADDING_INFO pPaddingInfo,
+ [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbHashValue,
+ int cbHashValue,
+ [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pbSignature,
+ int cbSignature,
+ [Out] out int pcbResult,
+ AsymmetricPaddingMode dwFlags);
+
+ [DllImport("ncrypt.dll")]
+ internal static extern ErrorCode NCryptSignHash(SafeNCryptKeyHandle hKey,
+ [In] ref BCryptNative.BCRYPT_PSS_PADDING_INFO pPaddingInfo,
+ [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbHashValue,
+ int cbHashValue,
+ [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pbSignature,
+ int cbSignature,
+ [Out] out int pcbResult,
+ AsymmetricPaddingMode dwFlags);
+ [DllImport("ncrypt.dll")]
+ internal static extern ErrorCode NCryptVerifySignature(SafeNCryptKeyHandle hKey,
+ [In] ref BCryptNative.BCRYPT_PKCS1_PADDING_INFO pPaddingInfo,
+ [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbHashValue,
+ int cbHashValue,
+ [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbSignature,
+ int cbSignature,
+ AsymmetricPaddingMode dwFlags);
+
+ [DllImport("ncrypt.dll")]
+ internal static extern ErrorCode NCryptVerifySignature(SafeNCryptKeyHandle hKey,
+ [In] ref BCryptNative.BCRYPT_PSS_PADDING_INFO pPaddingInfo,
+ [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbHashValue,
+ int cbHashValue,
+ [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbSignature,
+ int cbSignature,
+ AsymmetricPaddingMode dwFlags);
+
+ [DllImport("ncrypt.dll")]
+ internal static extern ErrorCode NCryptDecrypt(SafeNCryptKeyHandle hKey,
+ [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbInput,
+ int cbInput,
+ [In] ref BCryptNative.BCRYPT_OAEP_PADDING_INFO pvPadding,
+ [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pbOutput,
+ int cbOutput,
+ [Out] out int pcbResult,
+ AsymmetricPaddingMode dwFlags);
+
+ [DllImport("ncrypt.dll")]
+ internal static extern ErrorCode NCryptDecrypt(SafeNCryptKeyHandle hKey,
+ [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbInput,
+ int cbInput,
+ [In] ref BCryptNative.BCRYPT_PKCS1_PADDING_INFO pvPadding,
+ [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pbOutput,
+ int cbOutput,
+ [Out] out int pcbResult,
+ AsymmetricPaddingMode dwFlags);
+
+ [DllImport("ncrypt.dll")]
+ internal static extern ErrorCode NCryptEncrypt(SafeNCryptKeyHandle hKey,
+ [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbInput,
+ int cbInput,
+ [In] ref BCryptNative.BCRYPT_OAEP_PADDING_INFO pvPadding,
+ [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pbOutput,
+ int cbOutput,
+ [Out] out int pcbResult,
+ AsymmetricPaddingMode dwFlags);
+
+ [DllImport("ncrypt.dll")]
+ internal static extern ErrorCode NCryptEncrypt(SafeNCryptKeyHandle hKey,
+ [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbInput,
+ int cbInput,
+ [In] ref BCryptNative.BCRYPT_PKCS1_PADDING_INFO pvPadding,
+ [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pbOutput,
+ int cbOutput,
+ [Out] out int pcbResult,
+ AsymmetricPaddingMode dwFlags);
}
+
+ /// <summary>
+ /// Adapter to wrap specific NCryptDecrypt P/Invokes with specific padding info
+ /// </summary>
+ [SecuritySafeCritical]
+ private delegate ErrorCode NCryptDecryptor<T>(SafeNCryptKeyHandle hKey,
+ byte[] pbInput,
+ int cbInput,
+ ref T pvPadding,
+ byte[] pbOutput,
+ int cbOutput,
+ out int pcbResult,
+ AsymmetricPaddingMode dwFlags);
+
+ /// <summary>
+ /// Adapter to wrap specific NCryptEncrypt P/Invokes with specific padding info
+ /// </summary>
+ [SecuritySafeCritical]
+ private delegate ErrorCode NCryptEncryptor<T>(SafeNCryptKeyHandle hKey,
+ byte[] pbInput,
+ int cbInput,
+ ref T pvPadding,
+ byte[] pbOutput,
+ int cbOutput,
+ out int pcbResult,
+ AsymmetricPaddingMode dwFlags);
+
+ /// <summary>
+ /// Adapter to wrap specific NCryptSignHash P/Invokes with a specific padding info
+ /// </summary>
+ [SecuritySafeCritical]
+ private delegate ErrorCode NCryptHashSigner<T>(SafeNCryptKeyHandle hKey,
+ ref T pvPaddingInfo,
+ byte[] pbHashValue,
+ int cbHashValue,
+ byte[] pbSignature,
+ int cbSignature,
+ out int pcbResult,
+ AsymmetricPaddingMode dwFlags);
+
+ /// <summary>
+ /// Adapter to wrap specific NCryptVerifySignature P/Invokes with a specific padding info
+ /// </summary>
+ [SecuritySafeCritical]
+ private delegate ErrorCode NCryptSignatureVerifier<T>(SafeNCryptKeyHandle hKey,
+ ref T pvPaddingInfo,
+ byte[] pbHashValue,
+ int cbHashValue,
+ byte[] pbSignature,
+ int cbSignature,
+ AsymmetricPaddingMode dwFlags) where T : struct;
+
//
// Utility and wrapper functions
//
@@ -389,6 +519,335 @@ namespace System.Security.Cryptography {
private static volatile bool s_haveNcryptSupported;
private static volatile bool s_ncryptSupported;
+
+ /// <summary>
+ /// Generic decryption method, wrapped by decryption calls for specific padding modes
+ /// </summary>
+ [SecuritySafeCritical]
+ private static byte[] DecryptData<T>(SafeNCryptKeyHandle key,
+ byte[] data,
+ ref T paddingInfo,
+ AsymmetricPaddingMode paddingMode,
+ NCryptDecryptor<T> decryptor) where T : struct {
+ Debug.Assert(key != null, "key != null");
+ Debug.Assert(!key.IsClosed && !key.IsInvalid, "!key.IsClosed && !key.IsInvalid");
+ Debug.Assert(data != null, "data != null");
+ Debug.Assert(decryptor != null, "decryptor != null");
+
+ // Figure out how big of a buffer is needed to store the decrypted data
+ int decryptedSize = 0;
+ ErrorCode error = decryptor(key,
+ data,
+ data.Length,
+ ref paddingInfo,
+ null,
+ 0,
+ out decryptedSize,
+ paddingMode);
+ if (error != ErrorCode.Success && error != ErrorCode.BufferTooSmall) {
+ throw new CryptographicException((int)error);
+ }
+
+ // Do the decryption
+ byte[] decrypted = new byte[decryptedSize];
+ error = decryptor(key,
+ data,
+ data.Length,
+ ref paddingInfo,
+ decrypted,
+ decrypted.Length,
+ out decryptedSize,
+ paddingMode);
+ if (error != ErrorCode.Success) {
+ throw new CryptographicException((int)error);
+ }
+ return decrypted;
+ }
+
+ /// <summary>
+ /// Decrypt data using PKCS1 padding
+ /// </summary>
+ [SecuritySafeCritical]
+ internal static byte[] DecryptDataPkcs1(SafeNCryptKeyHandle key, byte[] data) {
+ BCryptNative.BCRYPT_PKCS1_PADDING_INFO pkcs1Info = new BCryptNative.BCRYPT_PKCS1_PADDING_INFO();
+
+ return DecryptData(key,
+ data,
+ ref pkcs1Info,
+ AsymmetricPaddingMode.Pkcs1,
+ UnsafeNativeMethods.NCryptDecrypt);
+ }
+
+ /// <summary>
+ /// Decrypt data using OAEP padding
+ /// </summary>
+ [SecuritySafeCritical]
+ internal static byte[] DecryptDataOaep(SafeNCryptKeyHandle key,
+ byte[] data,
+ string hashAlgorithm) {
+ Debug.Assert(!String.IsNullOrEmpty(hashAlgorithm), "!String.IsNullOrEmpty(hashAlgorithm)");
+
+ BCryptNative.BCRYPT_OAEP_PADDING_INFO oaepInfo = new BCryptNative.BCRYPT_OAEP_PADDING_INFO();
+ oaepInfo.pszAlgId = hashAlgorithm;
+
+ return DecryptData(key,
+ data,
+ ref oaepInfo,
+ AsymmetricPaddingMode.Oaep,
+ UnsafeNativeMethods.NCryptDecrypt);
+ }
+
+ /// <summary>
+ /// Generic encryption method, wrapped by decryption calls for specific padding modes
+ /// </summary>
+ [SecuritySafeCritical]
+ private static byte[] EncryptData<T>(SafeNCryptKeyHandle key,
+ byte[] data,
+ ref T paddingInfo,
+ AsymmetricPaddingMode paddingMode,
+ NCryptEncryptor<T> encryptor) where T : struct {
+ Debug.Assert(key != null, "key != null");
+ Debug.Assert(!key.IsClosed && !key.IsInvalid, "!key.IsClosed && !key.IsInvalid");
+ Debug.Assert(data != null, "data != null");
+ Debug.Assert(encryptor != null, "encryptor != null");
+
+ // Figure out how big of a buffer is to encrypt the data
+ int encryptedSize = 0;
+ ErrorCode error = encryptor(key,
+ data,
+ data.Length,
+ ref paddingInfo,
+ null,
+ 0,
+ out encryptedSize,
+ paddingMode);
+ if (error != ErrorCode.Success && error != ErrorCode.BufferTooSmall) {
+ throw new CryptographicException((int)error);
+ }
+
+ // Do the encryption
+ byte[] encrypted = new byte[encryptedSize];
+ error = encryptor(key,
+ data,
+ data.Length,
+ ref paddingInfo,
+ encrypted,
+ encrypted.Length,
+ out encryptedSize,
+ paddingMode);
+ if (error != ErrorCode.Success) {
+ throw new CryptographicException((int)error);
+ }
+
+ return encrypted;
+ }
+
+ /// <summary>
+ /// Encrypt data using OAEP padding
+ /// </summary>
+ [SecuritySafeCritical]
+ internal static byte[] EncryptDataOaep(SafeNCryptKeyHandle key,
+ byte[] data,
+ string hashAlgorithm) {
+ Debug.Assert(!String.IsNullOrEmpty(hashAlgorithm), "!String.IsNullOrEmpty(hashAlgorithm)");
+
+ BCryptNative.BCRYPT_OAEP_PADDING_INFO oaepInfo = new BCryptNative.BCRYPT_OAEP_PADDING_INFO();
+ oaepInfo.pszAlgId = hashAlgorithm;
+
+ return EncryptData(key,
+ data,
+ ref oaepInfo,
+ AsymmetricPaddingMode.Oaep,
+ UnsafeNativeMethods.NCryptEncrypt);
+ }
+
+ /// <summary>
+ /// Encrypt data using PKCS1 padding
+ /// </summary>
+ [SecuritySafeCritical]
+ internal static byte[] EncryptDataPkcs1(SafeNCryptKeyHandle key, byte[] data) {
+ BCryptNative.BCRYPT_PKCS1_PADDING_INFO pkcs1Info = new BCryptNative.BCRYPT_PKCS1_PADDING_INFO();
+
+ return EncryptData(key,
+ data,
+ ref pkcs1Info,
+ AsymmetricPaddingMode.Pkcs1,
+ UnsafeNativeMethods.NCryptEncrypt);
+ }
+
+ /// <summary>
+ /// Generic signature method, wrapped by signature calls for specific padding modes
+ /// </summary>
+ [SecuritySafeCritical]
+ private static byte[] SignHash<T>(SafeNCryptKeyHandle key,
+ byte[] hash,
+ ref T paddingInfo,
+ AsymmetricPaddingMode paddingMode,
+ NCryptHashSigner<T> signer) where T : struct {
+ Debug.Assert(key != null, "key != null");
+ Debug.Assert(!key.IsInvalid && !key.IsClosed, "!key.IsInvalid && !key.IsClosed");
+ Debug.Assert(hash != null, "hash != null");
+ Debug.Assert(signer != null, "signer != null");
+
+ // Figure out how big the signature is
+ int signatureSize = 0;
+ ErrorCode error = signer(key,
+ ref paddingInfo,
+ hash,
+ hash.Length,
+ null,
+ 0,
+ out signatureSize,
+ paddingMode);
+ if (error != ErrorCode.Success && error != ErrorCode.BufferTooSmall) {
+ throw new CryptographicException((int)error);
+ }
+
+ // Sign the hash
+ byte[] signature = new byte[signatureSize];
+ error = signer(key,
+ ref paddingInfo,
+ hash,
+ hash.Length,
+ signature,
+ signature.Length,
+ out signatureSize,
+ paddingMode);
+ if (error != ErrorCode.Success) {
+ throw new CryptographicException((int)error);
+ }
+ return signature;
+ }
+
+ /// <summary>
+ /// Sign a hash, using PKCS1 padding
+ /// </summary>
+ [SecuritySafeCritical]
+ internal static byte[] SignHashPkcs1(SafeNCryptKeyHandle key,
+ byte[] hash,
+ string hashAlgorithm) {
+ Debug.Assert(key != null, "key != null");
+ Debug.Assert(!key.IsClosed && !key.IsInvalid, "!key.IsClosed && !key.IsInvalid");
+ Debug.Assert(hash != null, "hash != null");
+ Debug.Assert(!String.IsNullOrEmpty(hashAlgorithm), "!String.IsNullOrEmpty(hashAlgorithm)");
+
+ BCryptNative.BCRYPT_PKCS1_PADDING_INFO pkcs1Info = new BCryptNative.BCRYPT_PKCS1_PADDING_INFO();
+ pkcs1Info.pszAlgId = hashAlgorithm;
+
+ return SignHash(key,
+ hash,
+ ref pkcs1Info,
+ AsymmetricPaddingMode.Pkcs1,
+ UnsafeNativeMethods.NCryptSignHash);
+ }
+
+ /// <summary>
+ /// Sign a hash, using PSS padding
+ /// </summary>
+ [SecuritySafeCritical]
+ internal static byte[] SignHashPss(SafeNCryptKeyHandle key,
+ byte[] hash,
+ string hashAlgorithm,
+ int saltBytes) {
+ Debug.Assert(key != null, "key != null");
+ Debug.Assert(!key.IsClosed && !key.IsInvalid, "!key.IsClosed && !key.IsInvalid");
+ Debug.Assert(hash != null, "hash != null");
+ Debug.Assert(!String.IsNullOrEmpty(hashAlgorithm), "!String.IsNullOrEmpty(hashAlgorithm)");
+ Debug.Assert(saltBytes >= 0, "saltBytes >= 0");
+
+ BCryptNative.BCRYPT_PSS_PADDING_INFO pssInfo = new BCryptNative.BCRYPT_PSS_PADDING_INFO();
+ pssInfo.pszAlgId = hashAlgorithm;
+ pssInfo.cbSalt = saltBytes;
+
+ return SignHash(key,
+ hash,
+ ref pssInfo,
+ AsymmetricPaddingMode.Pss,
+ UnsafeNativeMethods.NCryptSignHash);
+ }
+
+ /// <summary>
+ /// Generic signature verification method, wrapped by verification calls for specific padding modes
+ /// </summary>
+ [SecuritySafeCritical]
+ private static bool VerifySignature<T>(SafeNCryptKeyHandle key,
+ byte[] hash,
+ byte[] signature,
+ ref T paddingInfo,
+ AsymmetricPaddingMode paddingMode,
+ NCryptSignatureVerifier<T> verifier) where T : struct {
+ Debug.Assert(key != null, "key != null");
+ Debug.Assert(!key.IsClosed && !key.IsInvalid, "!key.IsClosed && !key.IsInvalid");
+ Debug.Assert(hash != null, "hash != null");
+ Debug.Assert(signature != null, "signature != null");
+ Debug.Assert(verifier != null, "verifier != null");
+
+ ErrorCode error = verifier(key,
+ ref paddingInfo,
+ hash,
+ hash.Length,
+ signature,
+ signature.Length,
+ paddingMode);
+ if (error != ErrorCode.Success && error != ErrorCode.BadSignature) {
+ throw new CryptographicException((int)error);
+ }
+
+ return error == ErrorCode.Success;
+ }
+
+ /// <summary>
+ /// Verify the signature of a hash using PKCS #1 padding
+ /// </summary>
+ [SecuritySafeCritical]
+ internal static bool VerifySignaturePkcs1(SafeNCryptKeyHandle key,
+ byte[] hash,
+ string hashAlgorithm,
+ byte[] signature) {
+ Debug.Assert(key != null, "key != null");
+ Debug.Assert(!key.IsClosed && !key.IsInvalid, "!key.IsClosed && !key.IsInvalid");
+ Debug.Assert(hash != null, "hash != null");
+ Debug.Assert(!String.IsNullOrEmpty(hashAlgorithm), "!String.IsNullOrEmpty(hashAlgorithm)");
+ Debug.Assert(signature != null, "signature != null");
+
+ BCryptNative.BCRYPT_PKCS1_PADDING_INFO pkcs1Info = new BCryptNative.BCRYPT_PKCS1_PADDING_INFO();
+ pkcs1Info.pszAlgId = hashAlgorithm;
+
+ return VerifySignature(key,
+ hash,
+ signature,
+ ref pkcs1Info,
+ AsymmetricPaddingMode.Pkcs1,
+ UnsafeNativeMethods.NCryptVerifySignature);
+ }
+
+ /// <summary>
+ /// Verify the signature of a hash using PSS padding
+ /// </summary>
+ [SecuritySafeCritical]
+ internal static bool VerifySignaturePss(SafeNCryptKeyHandle key,
+ byte[] hash,
+ string hashAlgorithm,
+ int saltBytes,
+ byte[] signature) {
+ Debug.Assert(key != null, "key != null");
+ Debug.Assert(!key.IsClosed && !key.IsInvalid, "!key.IsClosed && !key.IsInvalid");
+ Debug.Assert(hash != null, "hash != null");
+ Debug.Assert(!String.IsNullOrEmpty(hashAlgorithm), "!String.IsNullOrEmpty(hashAlgorithm)");
+ Debug.Assert(signature != null, "signature != null");
+
+ BCryptNative.BCRYPT_PSS_PADDING_INFO pssInfo = new BCryptNative.BCRYPT_PSS_PADDING_INFO();
+ pssInfo.pszAlgId = hashAlgorithm;
+ pssInfo.cbSalt = saltBytes;
+
+ return VerifySignature(key,
+ hash,
+ signature,
+ ref pssInfo,
+ AsymmetricPaddingMode.Pss,
+ UnsafeNativeMethods.NCryptVerifySignature);
+ }
+
/// <summary>
/// Determine if NCrypt is supported on the current machine
/// </summary>
@@ -484,9 +943,7 @@ namespace System.Security.Cryptography {
if (error != ErrorCode.Success) {
throw new CryptographicException((int)error);
}
-
- // Key handles are no longer valid after deleting
- key.Dispose();
+ key.SetHandleAsInvalid();
}
/// <summary>
diff --git a/mcs/class/referencesource/System.Core/System/Security/Cryptography/RsaCng.cs b/mcs/class/referencesource/System.Core/System/Security/Cryptography/RsaCng.cs
new file mode 100644
index 00000000000..3085b90e249
--- /dev/null
+++ b/mcs/class/referencesource/System.Core/System/Security/Cryptography/RsaCng.cs
@@ -0,0 +1,508 @@
+using System;
+using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
+using System.IO;
+using System.Runtime.InteropServices;
+using System.Security.Permissions;
+using Microsoft.Win32.SafeHandles;
+
+namespace System.Security.Cryptography
+{
+ public sealed class RSACng : RSA
+ {
+ // See https://msdn.microsoft.com/en-us/library/windows/desktop/bb931354(v=vs.85).aspx
+ private static KeySizes[] s_legalKeySizes = new KeySizes[] { new KeySizes(512, 16384, 64) };
+
+ // CngKeyBlob formats for RSA key blobs
+ private static CngKeyBlobFormat s_rsaFullPrivateBlob = new CngKeyBlobFormat(BCryptNative.KeyBlobType.RsaFullPrivateBlob);
+ private static CngKeyBlobFormat s_rsaPrivateBlob = new CngKeyBlobFormat(BCryptNative.KeyBlobType.RsaPrivateBlob);
+ private static CngKeyBlobFormat s_rsaPublicBlob = new CngKeyBlobFormat(BCryptNative.KeyBlobType.RsaPublicBlob);
+
+ // Key handle
+ private CngKey _key;
+
+ /// <summary>
+ /// Create an RSACng algorithm with a random 2048 bit key pair.
+ /// </summary>
+ public RSACng() : this(2048) { }
+
+ /// <summary>
+ /// Creates a new RSACng object that will use a randomly generated key of the specified size.
+ /// Valid key sizes range from 384 to 16384 bits, in increments of 8. It's suggested that a
+ /// minimum size of 2048 bits be used for all keys.
+ /// </summary>
+ /// <param name="keySize">Size of the key to generate, in bits.</param>
+ /// <exception cref="CryptographicException">if <paramref name="keySize" /> is not valid</exception>
+ public RSACng(int keySize)
+ {
+ LegalKeySizesValue = s_legalKeySizes;
+ KeySize = keySize;
+ }
+
+ /// <summary>
+ /// Creates a new RSACng object that will use the specified key. The key's
+ /// <see cref="CngKey.AlgorithmGroup" /> must be Rsa.
+ /// CngKey.Open creates a copy of the key. Even if someone disposes the key passed
+ /// copy of this key object in RSA stays alive.
+ /// </summary>
+ /// <param name="key">Key to use for RSA operations</param>
+ /// <exception cref="ArgumentException">if <paramref name="key" /> is not an RSA key</exception>
+ /// <exception cref="ArgumentNullException">if <paramref name="key" /> is null.</exception>
+ [SecuritySafeCritical]
+ public RSACng(CngKey key)
+ {
+ if (key == null)
+ {
+ throw new ArgumentNullException("key");
+ }
+ if (key.AlgorithmGroup != CngAlgorithmGroup.Rsa)
+ {
+ throw new ArgumentException(SR.GetString(SR.Cryptography_ArgRSAaRequiresRSAKey), "key");
+ }
+ LegalKeySizesValue = s_legalKeySizes;
+ Key = CngKey.Open(key.Handle, key.IsEphemeral ? CngKeyHandleOpenOptions.EphemeralKey : CngKeyHandleOpenOptions.None);
+ }
+
+ /// <summary>
+ /// Gets the key that will be used by the RSA object for any cryptographic operation that it uses.
+ /// This key object will be disposed if the key is reset, for instance by changing the KeySize
+ /// property, using ImportParamers to create a new key, or by Disposing of the parent RSA object.
+ /// Therefore, you should make sure that the key object is no longer used in these scenarios. This
+ /// object will not be the same object as the CngKey passed to the RSACng constructor if that
+ /// constructor was used, however it will point at the same CNG key.
+ /// </summary>
+ /// <permission cref="SecurityPermission">
+ /// SecurityPermission/UnmanagedCode is required to read this property.
+ /// </permission>
+ public CngKey Key
+ {
+ [SecuritySafeCritical]
+ get
+ {
+ // If our key size was changed from the key we're using, we need to generate a new key
+ if (_key != null && _key.KeySize != KeySize)
+ {
+ _key.Dispose();
+ _key = null;
+ }
+
+ // If we don't have a key yet, we need to generate a random one now
+ if (_key == null)
+ {
+ CngKeyCreationParameters creationParameters = new CngKeyCreationParameters();
+ CngProperty keySizeProperty = new CngProperty(NCryptNative.KeyPropertyName.Length,
+ BitConverter.GetBytes(KeySize),
+ CngPropertyOptions.None);
+ creationParameters.Parameters.Add(keySizeProperty);
+ _key = CngKey.Create(CngAlgorithm.Rsa, null, creationParameters);
+ }
+
+ return _key;
+ }
+
+ private set
+ {
+ Debug.Assert(value != null, "value != null");
+ if (value.AlgorithmGroup != CngAlgorithmGroup.Rsa)
+ {
+ throw new ArgumentException(SR.GetString(SR.Cryptography_ArgRSAaRequiresRSAKey), "value");
+ }
+ // If we already have a key, clear it out
+ if (_key != null)
+ {
+ _key.Dispose();
+ }
+
+ _key = value;
+ KeySize = _key.KeySize;
+ }
+ }
+
+ /// <summary>
+ /// Helper property to get the NCrypt key handle
+ /// </summary>
+ private SafeNCryptKeyHandle KeyHandle
+ {
+ [SecuritySafeCritical]
+ get { return Key.Handle; }
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && _key != null)
+ {
+ _key.Dispose();
+ }
+ }
+
+ protected override byte[] HashData(byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm)
+ {
+ // we're sealed and the base should have checked this already
+ Debug.Assert(data != null);
+ Debug.Assert(offset >= 0 && offset <= data.Length);
+ Debug.Assert(count >= 0 && count <= data.Length);
+ Debug.Assert(!String.IsNullOrEmpty(hashAlgorithm.Name));
+
+ using (BCryptHashAlgorithm hasher = new BCryptHashAlgorithm(new CngAlgorithm(hashAlgorithm.Name), BCryptNative.ProviderName.MicrosoftPrimitiveProvider))
+ {
+ hasher.HashCore(data, offset, count);
+ return hasher.HashFinal();
+ }
+ }
+
+ protected override byte[] HashData(Stream data, HashAlgorithmName hashAlgorithm)
+ {
+ // We're sealed and the base should have checked these alread.
+ Debug.Assert(data != null);
+ Debug.Assert(!String.IsNullOrEmpty(hashAlgorithm.Name));
+
+ using (BCryptHashAlgorithm hasher = new BCryptHashAlgorithm(new CngAlgorithm(hashAlgorithm.Name), BCryptNative.ProviderName.MicrosoftPrimitiveProvider))
+ {
+ hasher.HashStream(data);
+ return hasher.HashFinal();
+ }
+ }
+
+
+ /// <summary>
+ /// This function checks the magic value in the key blob header
+ /// </summary>
+ /// <param name="includePrivateParameters">Private blob if true else public key blob</param>
+ private void CheckMagicValueOfKey(int magic, bool includePrivateParameters)
+ {
+ if (false == includePrivateParameters)
+ {
+ if (magic != (int)BCryptNative.KeyBlobMagicNumber.RsaPublic)
+ {
+ //Check for Private key magic as public key can be derived from private key blob
+ if (magic != (int)BCryptNative.KeyBlobMagicNumber.RsaPrivate && magic != (int)BCryptNative.KeyBlobMagicNumber.RsaFullPrivateMagic)
+ {
+ throw new CryptographicException(SR.GetString(SR.Cryptography_NotValidPublicOrPrivateKey));
+ }
+ }
+ }
+ //If includePrivateParameters is true then certainly check for the private key magic
+ else
+ {
+ if (magic != (int)BCryptNative.KeyBlobMagicNumber.RsaPrivate && magic != (int)BCryptNative.KeyBlobMagicNumber.RsaFullPrivateMagic)
+ {
+ throw new CryptographicException(SR.GetString(SR.Cryptography_NotValidPrivateKey));
+ }
+ }
+ }
+
+ //
+ // Key import and export
+ //
+
+ /// <summary>
+ /// Exports the key used by the RSA object into an RSAParameters object.
+ /// </summary>
+ [SecuritySafeCritical]
+ public override RSAParameters ExportParameters(bool includePrivateParameters)
+ {
+ byte[] rsaBlob = Key.Export(includePrivateParameters ? s_rsaFullPrivateBlob : s_rsaPublicBlob);
+ RSAParameters rsaParams = new RSAParameters();
+
+ //
+ // We now have a buffer laid out as follows:
+ // BCRYPT_RSAKEY_BLOB header
+ // byte[cbPublicExp] publicExponent - Exponent
+ // byte[cbModulus] modulus - Modulus
+ // -- Private only --
+ // byte[cbPrime1] prime1 - P
+ // byte[cbPrime2] prime2 - Q
+ // byte[cbPrime1] exponent1 - DP
+ // byte[cbPrime2] exponent2 - DQ
+ // byte[cbPrime1] coefficient - InverseQ
+ // byte[cbModulus] privateExponent - D
+ //
+ byte[] tempMagic = new byte[4];
+ tempMagic[0] = rsaBlob[0]; tempMagic[1] = rsaBlob[1]; tempMagic[2] = rsaBlob[2]; tempMagic[3] = rsaBlob[3];
+ int magic = BitConverter.ToInt32(tempMagic, 0);
+ //Check the magic value in key blob header. If blob does not have required magic
+ // then it trhows Cryptographic exception
+ CheckMagicValueOfKey(magic, includePrivateParameters);
+
+ unsafe
+ {
+ fixed (byte* pRsaBlob = rsaBlob)
+ {
+ BCryptNative.BCRYPT_RSAKEY_BLOB* pBcryptBlob = (BCryptNative.BCRYPT_RSAKEY_BLOB*)pRsaBlob;
+
+ int offset = Marshal.SizeOf(typeof(BCryptNative.BCRYPT_RSAKEY_BLOB));
+
+ // Read out the exponent
+ rsaParams.Exponent = new byte[pBcryptBlob->cbPublicExp];
+ Buffer.BlockCopy(rsaBlob, offset, rsaParams.Exponent, 0, rsaParams.Exponent.Length);
+ offset += pBcryptBlob->cbPublicExp;
+
+ // Read out the modulus
+ rsaParams.Modulus = new byte[pBcryptBlob->cbModulus];
+ Buffer.BlockCopy(rsaBlob, offset, rsaParams.Modulus, 0, rsaParams.Modulus.Length);
+ offset += pBcryptBlob->cbModulus;
+
+ if (includePrivateParameters)
+ {
+ // Read out P
+ rsaParams.P = new byte[pBcryptBlob->cbPrime1];
+ Buffer.BlockCopy(rsaBlob, offset, rsaParams.P, 0, rsaParams.P.Length);
+ offset += pBcryptBlob->cbPrime1;
+
+ // Read out Q
+ rsaParams.Q = new byte[pBcryptBlob->cbPrime2];
+ Buffer.BlockCopy(rsaBlob, offset, rsaParams.Q, 0, rsaParams.Q.Length);
+ offset += pBcryptBlob->cbPrime2;
+
+ // Read out DP
+ rsaParams.DP = new byte[pBcryptBlob->cbPrime1];
+ Buffer.BlockCopy(rsaBlob, offset, rsaParams.DP, 0, rsaParams.DP.Length);
+ offset += pBcryptBlob->cbPrime1;
+
+ // Read out DQ
+ rsaParams.DQ = new byte[pBcryptBlob->cbPrime2];
+ Buffer.BlockCopy(rsaBlob, offset, rsaParams.DQ, 0, rsaParams.DQ.Length);
+ offset += pBcryptBlob->cbPrime2;
+
+ // Read out InverseQ
+ rsaParams.InverseQ = new byte[pBcryptBlob->cbPrime1];
+ Buffer.BlockCopy(rsaBlob, offset, rsaParams.InverseQ, 0, rsaParams.InverseQ.Length);
+ offset += pBcryptBlob->cbPrime1;
+
+ // Read out D
+ rsaParams.D = new byte[pBcryptBlob->cbModulus];
+ Buffer.BlockCopy(rsaBlob, offset, rsaParams.D, 0, rsaParams.D.Length);
+ offset += pBcryptBlob->cbModulus;
+ }
+ }
+ }
+
+ return rsaParams;
+ }
+
+ /// <summary>
+ /// <para>
+ /// ImportParameters will replace the existing key that RSACng is working with by creating a
+ /// new CngKey for the parameters structure. If the parameters structure contains only an
+ /// exponent and modulus, then only a public key will be imported. If the parameters also
+ /// contain P and Q values, then a full key pair will be imported.
+ /// </para>
+ /// </summary>
+ /// <exception cref="ArgumentException">
+ /// if <paramref name="parameters" /> contains neither an exponent nor a modulus.
+ /// </exception>
+ /// <exception cref="CryptographicException">
+ /// if <paramref name="parameters" /> is not a valid RSA key or if <paramref name="parameters"
+ /// /> is a full key pair and the default KSP is used.
+ /// </exception>
+ [SecuritySafeCritical]
+ public override void ImportParameters(RSAParameters parameters)
+ {
+ if (parameters.Exponent == null || parameters.Modulus == null)
+ {
+ throw new ArgumentException(SR.GetString(SR.Cryptography_InvalidRsaParameters));
+ }
+ bool publicOnly = parameters.P == null || parameters.Q == null;
+
+ //
+ // We need to build a key blob structured as follows:
+ // BCRYPT_RSAKEY_BLOB header
+ // byte[cbPublicExp] publicExponent - Exponent
+ // byte[cbModulus] modulus - Modulus
+ // -- Private only --
+ // byte[cbPrime1] prime1 - P
+ // byte[cbPrime2] prime2 - Q
+ //
+
+ int blobSize = Marshal.SizeOf(typeof(BCryptNative.BCRYPT_RSAKEY_BLOB)) +
+ parameters.Exponent.Length +
+ parameters.Modulus.Length;
+ if (!publicOnly)
+ {
+ blobSize += parameters.P.Length +
+ parameters.Q.Length;
+ }
+
+ byte[] rsaBlob = new byte[blobSize];
+ unsafe
+ {
+ fixed (byte* pRsaBlob = rsaBlob)
+ {
+ // Build the header
+ BCryptNative.BCRYPT_RSAKEY_BLOB* pBcryptBlob = (BCryptNative.BCRYPT_RSAKEY_BLOB*)pRsaBlob;
+ pBcryptBlob->Magic = publicOnly ? BCryptNative.KeyBlobMagicNumber.RsaPublic :
+ BCryptNative.KeyBlobMagicNumber.RsaPrivate;
+
+ pBcryptBlob->BitLength = parameters.Modulus.Length * 8;
+
+ pBcryptBlob->cbPublicExp = parameters.Exponent.Length;
+ pBcryptBlob->cbModulus = parameters.Modulus.Length;
+
+ if (!publicOnly)
+ {
+ pBcryptBlob->cbPrime1 = parameters.P.Length;
+ pBcryptBlob->cbPrime2 = parameters.Q.Length;
+ }
+
+ int offset = Marshal.SizeOf(typeof(BCryptNative.BCRYPT_RSAKEY_BLOB));
+
+ // Copy the exponent
+ Buffer.BlockCopy(parameters.Exponent, 0, rsaBlob, offset, parameters.Exponent.Length);
+ offset += parameters.Exponent.Length;
+
+ // Copy the modulus
+ Buffer.BlockCopy(parameters.Modulus, 0, rsaBlob, offset, parameters.Modulus.Length);
+ offset += parameters.Modulus.Length;
+
+ if (!publicOnly)
+ {
+ // Copy P
+ Buffer.BlockCopy(parameters.P, 0, rsaBlob, offset, parameters.P.Length);
+ offset += parameters.P.Length;
+
+ // Copy Q
+ Buffer.BlockCopy(parameters.Q, 0, rsaBlob, offset, parameters.Q.Length);
+ offset += parameters.Q.Length;
+ }
+ }
+ }
+ Key = CngKey.Import(rsaBlob, publicOnly ? s_rsaPublicBlob : s_rsaPrivateBlob);
+ }
+
+ //
+ // Encryption and decryption
+ //
+ [SecuritySafeCritical]
+ public override byte[] Decrypt(byte[] data, RSAEncryptionPadding padding)
+ {
+ if (data == null)
+ {
+ throw new ArgumentNullException("data");
+ }
+
+ if (padding == null)
+ {
+ throw new ArgumentNullException("padding");
+ }
+
+ SafeNCryptKeyHandle keyHandle = Key.Handle;
+
+ if (padding == RSAEncryptionPadding.Pkcs1)
+ {
+ return NCryptNative.DecryptDataPkcs1(keyHandle, data);
+ }
+ else if (padding.Mode == RSAEncryptionPaddingMode.Oaep)
+ {
+ return NCryptNative.DecryptDataOaep(keyHandle, data, padding.OaepHashAlgorithm.Name);
+ }
+ else
+ {
+ // no other padding possibilities at present, but we might version independently from more being added.
+ throw new CryptographicException(SR.GetString(SR.Cryptography_UnsupportedPaddingMode));
+ }
+ }
+
+ [SecuritySafeCritical]
+ public override byte[] Encrypt(byte[] data, RSAEncryptionPadding padding)
+ {
+ if (data == null)
+ {
+ throw new ArgumentNullException("data");
+ }
+ if (padding == null)
+ {
+ throw new ArgumentNullException("padding");
+ }
+
+ if (padding == RSAEncryptionPadding.Pkcs1)
+ {
+ return NCryptNative.EncryptDataPkcs1(KeyHandle, data);
+ }
+ else if (padding.Mode == RSAEncryptionPaddingMode.Oaep)
+ {
+ return NCryptNative.EncryptDataOaep(KeyHandle, data, padding.OaepHashAlgorithm.Name);
+ }
+ else
+ {
+ // no other padding possibilities at present, but we might version independently from more being added.
+ throw new CryptographicException(SR.GetString(SR.Cryptography_UnsupportedPaddingMode));
+ };
+ }
+
+
+ //
+ // Signature APIs
+ //
+
+ [SecuritySafeCritical]
+ public override byte[] SignHash(byte[] hash, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
+ {
+ if (hash == null)
+ {
+ throw new ArgumentNullException("hash");
+ }
+ if (String.IsNullOrEmpty(hashAlgorithm.Name))
+ {
+ throw new ArgumentException(SR.GetString(SR.Cryptography_HashAlgorithmNameNullOrEmpty), "hashAlgorithm");
+ }
+ if (padding == null)
+ {
+ throw new ArgumentNullException("padding");
+ }
+
+ // Keep a local copy of the key.
+ CngKey key = Key;
+ SafeNCryptKeyHandle keyHandle = key.Handle;
+
+ if (padding == RSASignaturePadding.Pkcs1)
+ {
+ return NCryptNative.SignHashPkcs1(keyHandle, hash, hashAlgorithm.Name);
+ }
+ else if (padding == RSASignaturePadding.Pss)
+ {
+ return NCryptNative.SignHashPss(keyHandle, hash, hashAlgorithm.Name, hash.Length);
+ }
+ else
+ {
+ // no other padding possibilities at present, but we might version independently from more being added.
+ throw new CryptographicException(SR.GetString(SR.Cryptography_UnsupportedPaddingMode));
+
+ }
+ }
+
+ [SecuritySafeCritical]
+ public override bool VerifyHash(byte[] hash, byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
+ {
+ if (hash == null)
+ {
+ throw new ArgumentNullException("hash");
+ }
+ if (signature == null)
+ {
+ throw new ArgumentNullException("signature");
+ }
+ if (String.IsNullOrEmpty(hashAlgorithm.Name))
+ {
+ throw new ArgumentException(SR.GetString(SR.Cryptography_HashAlgorithmNameNullOrEmpty), "hashAlgorithm");
+ }
+ if (padding == null)
+ {
+ throw new ArgumentNullException("padding");
+ }
+
+ if (padding == RSASignaturePadding.Pkcs1)
+ {
+ return NCryptNative.VerifySignaturePkcs1(KeyHandle, hash, hashAlgorithm.Name, signature);
+ }
+ else if (padding == RSASignaturePadding.Pss)
+ {
+ return NCryptNative.VerifySignaturePss(KeyHandle, hash, hashAlgorithm.Name, hash.Length, signature);
+ }
+ else
+ {
+ // no other padding possibilities at present, but we might version independently from more being added.
+ throw new CryptographicException(SR.GetString(SR.Cryptography_UnsupportedPaddingMode));
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Core/System/Security/Cryptography/SignatureVerificationResult.cs b/mcs/class/referencesource/System.Core/System/Security/Cryptography/SignatureVerificationResult.cs
index e9314e90862..82482e92375 100644
--- a/mcs/class/referencesource/System.Core/System/Security/Cryptography/SignatureVerificationResult.cs
+++ b/mcs/class/referencesource/System.Core/System/Security/Cryptography/SignatureVerificationResult.cs
@@ -31,7 +31,7 @@ namespace System.Security.Cryptography {
InvalidTimePeriodNesting = unchecked((int)0x800b0102), // CERT_E_VALIDITYPERIODNESTING
InvalidCertificateRole = unchecked((int)0x800b0103), // CERT_E_ROLE
PathLengthConstraintViolated = unchecked((int)0x800b0104), // CERT_E_PATHLENCONST
- UnknownCriticalExtension = unchecked((int)0x800b0105), // CERT_E_
+ UnknownCriticalExtension = unchecked((int)0x800b0105), // CERT_E_CRITICAL
CertificateUsageNotAllowed = unchecked((int)0x800b0106), // CERT_E_PURPOSE
IssuerChainingError = unchecked((int)0x800b0107), // CERT_E_ISSUERCHAINING
CertificateMalformed = unchecked((int)0x800b0108), // CERT_E_MALFORMED
@@ -47,4 +47,4 @@ namespace System.Security.Cryptography {
InvalidCertificatePolicy = unchecked((int)0x800b0113), // CERT_E_INVALID_POLICY
InvalidCertificateName = unchecked((int)0x800b0114) // CERT_E_INVALID_NAME
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Core/System/Security/Cryptography/X509Certificates/RSACertificateExtensions.cs b/mcs/class/referencesource/System.Core/System/Security/Cryptography/X509Certificates/RSACertificateExtensions.cs
new file mode 100644
index 00000000000..c6379b50e1c
--- /dev/null
+++ b/mcs/class/referencesource/System.Core/System/Security/Cryptography/X509Certificates/RSACertificateExtensions.cs
@@ -0,0 +1,123 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+
+using System.Runtime.InteropServices;
+using Microsoft.Win32.SafeHandles;
+
+namespace System.Security.Cryptography.X509Certificates
+{
+ /// <summary>
+ /// Provides extension methods for retrieving <see cref="RSA" /> implementations for the
+ /// public and private keys of a <see cref="X509Certificate2" />.
+ /// </summary>
+ public static class RSACertificateExtensions
+ {
+ /// <summary>
+ /// Gets the <see cref="RSA" /> public key from the certificate or null if the certificate does not have an RSA public key.
+ /// </summary>
+ [SecuritySafeCritical]
+ public static RSA GetRSAPublicKey(this X509Certificate2 certificate)
+ {
+ if (certificate == null)
+ {
+ throw new ArgumentNullException("certificate");
+ }
+
+ if (!IsRSA(certificate))
+ {
+ return null;
+ }
+
+ PublicKey publicKey = certificate.PublicKey;
+ AsnEncodedData asn = publicKey.EncodedKeyValue;
+ IntPtr structType = new IntPtr(CapiNative.CNG_RSA_PUBLIC_KEY_BLOB);
+
+ SafeLocalAllocHandle cngBlobHandle;
+ uint cngBlobLength;
+ bool result = CapiNative.DecodeObject(structType, asn.RawData, out cngBlobHandle, out cngBlobLength);
+
+ if (!result)
+ {
+ throw new CryptographicException(Marshal.GetLastWin32Error());
+ }
+
+ byte[] cngBlob = new byte[cngBlobLength];
+ using (cngBlobHandle)
+ {
+ Marshal.Copy(cngBlobHandle.DangerousGetHandle(), cngBlob, 0, cngBlob.Length);
+ }
+
+ CngKey key = CngKey.Import(cngBlob, CngKeyBlobFormat.GenericPublicBlob);
+ return new RSACng(key);
+ }
+
+ /// <summary>
+ /// Gets the <see cref="RSA" /> private key from the certificate or null if the certificate does not have an RSA private key.
+ /// </summary>
+ [SecuritySafeCritical]
+ public static RSA GetRSAPrivateKey(this X509Certificate2 certificate)
+ {
+ if (certificate == null)
+ {
+ throw new ArgumentNullException("certificate");
+ }
+
+ if (!certificate.HasPrivateKey || !IsRSA(certificate))
+ {
+ return null;
+ }
+
+ using (SafeCertContextHandle certificateContext = GetCertificateContext(certificate))
+ using (SafeNCryptKeyHandle privateKeyHandle = X509Native.TryAcquireCngPrivateKey(certificateContext))
+ {
+ if (privateKeyHandle == null)
+ {
+ // fall back to CAPI if we cannot acquire the key using CNG.
+ return (RSA)certificate.PrivateKey;
+ }
+
+ CngKey key = CngKey.Open(privateKeyHandle, CngKeyHandleOpenOptions.None);
+ return new RSACng(key);
+ }
+ }
+
+ private static bool IsRSA(X509Certificate2 certificate)
+ {
+ uint algorithmId = OidToAlgorithmId(certificate.PublicKey.Oid);
+
+ switch (algorithmId)
+ {
+ case CapiNative.CALG_RSA_SIGN:
+ case CapiNative.CALG_RSA_KEYX:
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ private static uint OidToAlgorithmId(Oid oid)
+ {
+ using (SafeLocalAllocHandle oidHandle = X509Utils.StringToAnsiPtr(oid.Value))
+ {
+ CapiNative.CRYPT_OID_INFO oidInfo = CapiNative.CryptFindOIDInfo(CapiNative.CRYPT_OID_INFO_OID_KEY, oidHandle, 0);
+ return oidInfo.Algid;
+ }
+ }
+
+ // Gets a SafeHandle for the X509 certificate. The caller
+ // owns the returned handle and should dispose of it. It
+ // can be used independently of the lifetime of the original
+ // X509Certificate.
+ [SecuritySafeCritical]
+ private static SafeCertContextHandle GetCertificateContext(X509Certificate certificate)
+ {
+ SafeCertContextHandle certificateContext = X509Native.DuplicateCertContext(certificate.Handle);
+
+ // Make sure to keep the X509Certificate object alive until after its certificate context is
+ // duplicated, otherwise it could end up being closed out from underneath us before we get a
+ // chance to duplicate the handle.
+ GC.KeepAlive(certificate);
+
+ return certificateContext;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Core/System/Security/Cryptography/X509Certificates/X509Native.cs b/mcs/class/referencesource/System.Core/System/Security/Cryptography/X509Certificates/X509Native.cs
index 3ff5fb4662f..13af6e370f8 100644
--- a/mcs/class/referencesource/System.Core/System/Security/Cryptography/X509Certificates/X509Native.cs
+++ b/mcs/class/referencesource/System.Core/System/Security/Cryptography/X509Certificates/X509Native.cs
@@ -5,18 +5,149 @@
// ==--==
using System;
+using System.Runtime.CompilerServices;
using System.Runtime.ConstrainedExecution;
using System.Runtime.InteropServices;
+using System.Runtime.Versioning;
using Microsoft.Win32.SafeHandles;
+using System.Diagnostics;
using FILETIME = System.Runtime.InteropServices.ComTypes.FILETIME;
namespace System.Security.Cryptography.X509Certificates {
+
+ internal static partial class X509Native {
+
+ /// <summary>
+ /// Determine if a certificate has a specific property
+ /// </summary>
+ [SecuritySafeCritical]
+ internal static bool HasCertificateProperty(SafeCertContextHandle certificateContext,
+ CertificateProperty property) {
+ Debug.Assert(certificateContext != null, "certificateContext != null");
+ Debug.Assert(!certificateContext.IsClosed && !certificateContext.IsInvalid,
+ "!certificateContext.IsClosed && !certificateContext.IsInvalid");
+
+ byte[] buffer = null;
+ int bufferSize = 0;
+ bool gotProperty = UnsafeNativeMethods.CertGetCertificateContextProperty(certificateContext,
+ property,
+ buffer,
+ ref bufferSize);
+ return gotProperty ||
+ (ErrorCode)Marshal.GetLastWin32Error() == ErrorCode.MoreData;
+ }
+
+ /// <summary>
+ /// Get the NCrypt handle to the private key of a certificate
+ /// or null if the private key cannot be acquired by NCrypt.
+ /// </summary>
+ [SecuritySafeCritical]
+ internal static SafeNCryptKeyHandle TryAcquireCngPrivateKey(SafeCertContextHandle certificateContext) {
+ Debug.Assert(certificateContext != null, "certificateContext != null");
+ Debug.Assert(!certificateContext.IsClosed && !certificateContext.IsInvalid,
+ "!certificateContext.IsClosed && !certificateContext.IsInvalid");
+
+ bool freeKey = true;
+ SafeNCryptKeyHandle privateKey = null;
+ RuntimeHelpers.PrepareConstrainedRegions();
+ try {
+ int keySpec = 0;
+ if (!UnsafeNativeMethods.CryptAcquireCertificatePrivateKey(certificateContext,
+ AcquireCertificateKeyOptions.AcquireOnlyNCryptKeys,
+ IntPtr.Zero,
+ out privateKey,
+ out keySpec,
+ out freeKey)) {
+ return null;
+ }
+
+ return privateKey;
+ }
+ finally {
+ // If we're not supposed to release they key handle, then we need to bump the reference count
+ // on the safe handle to correspond to the reference that Windows is holding on to. This will
+ // prevent the CLR from freeing the object handle.
+ //
+ // This is certainly not the ideal way to solve this problem - it would be better for
+ // SafeNCryptKeyHandle to maintain an internal bool field that we could toggle here and
+ // have that suppress the release when the CLR calls the ReleaseHandle override. However, that
+ // field does not currently exist, so we'll use this hack instead.
+ if (privateKey != null && !freeKey) {
+ bool addedRef = false;
+ privateKey.DangerousAddRef(ref addedRef);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Get an arbitrary property of a certificate
+ /// </summary>
+ [SecuritySafeCritical]
+ internal static byte[] GetCertificateProperty(SafeCertContextHandle certificateContext,
+ CertificateProperty property) {
+ Debug.Assert(certificateContext != null, "certificateContext != null");
+ Debug.Assert(!certificateContext.IsClosed && !certificateContext.IsInvalid,
+ "!certificateContext.IsClosed && !certificateContext.IsInvalid");
+
+ byte[] buffer = null;
+ int bufferSize = 0;
+ if (!UnsafeNativeMethods.CertGetCertificateContextProperty(certificateContext,
+ property,
+ buffer,
+ ref bufferSize)) {
+ ErrorCode errorCode = (ErrorCode)Marshal.GetLastWin32Error();
+ if (errorCode != ErrorCode.MoreData) {
+ throw new CryptographicException((int)errorCode);
+ }
+ }
+
+ buffer = new byte[bufferSize];
+ if (!UnsafeNativeMethods.CertGetCertificateContextProperty(certificateContext,
+ property,
+ buffer,
+ ref bufferSize)) {
+ throw new CryptographicException(Marshal.GetLastWin32Error());
+ }
+
+ return buffer;
+ }
+
+ /// <summary>
+ /// Get a property of a certificate formatted as a structure
+ /// </summary>
+ [SecurityCritical]
+ internal static T GetCertificateProperty<T>(SafeCertContextHandle certificateContext,
+ CertificateProperty property) where T : struct {
+ Debug.Assert(certificateContext != null, "certificateContext != null");
+ Debug.Assert(!certificateContext.IsClosed && !certificateContext.IsInvalid,
+ "!certificateContext.IsClosed && !certificateContext.IsInvalid");
+
+ byte[] rawProperty = GetCertificateProperty(certificateContext, property);
+ Debug.Assert(rawProperty.Length >= Marshal.SizeOf(typeof(T)), "Property did not return expected structure");
+
+ unsafe {
+ fixed (byte* pRawProperty = &rawProperty[0]) {
+ return (T)Marshal.PtrToStructure(new IntPtr(pRawProperty), typeof(T));
+ }
+ }
+ }
+
+ /// <summary>
+ /// Duplicate the certificate context into a safe handle
+ /// </summary>
+ [SecuritySafeCritical]
+ internal static SafeCertContextHandle DuplicateCertContext(IntPtr context) {
+ Debug.Assert(context != IntPtr.Zero);
+
+ return UnsafeNativeMethods.CertDuplicateCertificateContext(context);
+ }
+ }
/// <summary>
/// Native interop layer for X509 certificate and Authenticode functions. Native definitions can be
/// found in wincrypt.h or msaxlapi.h
/// </summary>
- internal static class X509Native {
+ internal static partial class X509Native {
/// <summary>
/// Flags for CertVerifyAuthenticodeLicense
/// </summary>
@@ -31,6 +162,49 @@ namespace System.Security.Cryptography.X509Certificates {
TrustMicrosoftRootOnly = 0x00000020 // AXL_TRUST_MICROSOFT_ROOT_ONLY
}
+ /// <summary>
+ /// Flags for the CryptAcquireCertificatePrivateKey API
+ /// </summary>
+ internal enum AcquireCertificateKeyOptions {
+ None = 0x00000000,
+ AcquireOnlyNCryptKeys = 0x00040000, // CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG
+ }
+
+ /// <summary>
+ /// Well known certificate property IDs
+ /// </summary>
+ internal enum CertificateProperty {
+ KeyProviderInfo = 2, // CERT_KEY_PROV_INFO_PROP_ID
+ KeyContext = 5, // CERT_KEY_CONTEXT_PROP_ID
+ }
+
+ /// <summary>
+ /// Error codes returned from X509 APIs
+ /// </summary>
+ internal enum ErrorCode {
+ Success = 0x00000000, // ERROR_SUCCESS
+ MoreData = 0x000000ea, // ERROR_MORE_DATA
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct CRYPT_KEY_PROV_INFO {
+ [MarshalAs(UnmanagedType.LPWStr)]
+ internal string pwszContainerName;
+
+ [MarshalAs(UnmanagedType.LPWStr)]
+ internal string pwszProvName;
+
+ internal int dwProvType;
+
+ internal int dwFlags;
+
+ internal int cProvParam;
+
+ internal IntPtr rgProvParam; // PCRYPT_KEY_PROV_PARAM
+
+ internal int dwKeySpec;
+ }
+
[StructLayout(LayoutKind.Sequential)]
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
public struct AXL_AUTHENTICODE_SIGNER_INFO {
@@ -96,6 +270,60 @@ namespace System.Security.Cryptography.X509Certificates {
AxlVerificationFlags dwFlags,
[In, Out] ref AXL_AUTHENTICODE_SIGNER_INFO pSignerInfo,
[In, Out] ref AXL_AUTHENTICODE_TIMESTAMPER_INFO pTimestamperInfo);
+
+ [DllImport("crypt32.dll", SetLastError = true)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal static extern bool CertGetCertificateContextProperty(SafeCertContextHandle pCertContext,
+ CertificateProperty dwPropId,
+ [Out, MarshalAs(UnmanagedType.LPArray)] byte[] pvData,
+ [In, Out] ref int pcbData);
+ [DllImport("crypt32.dll")]
+ internal static extern SafeCertContextHandle CertDuplicateCertificateContext(IntPtr certContext); // CERT_CONTEXT *
+
+ [DllImport("crypt32.dll", SetLastError = true)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal static extern bool CryptAcquireCertificatePrivateKey(SafeCertContextHandle pCert,
+ AcquireCertificateKeyOptions dwFlags,
+ IntPtr pvReserved, // void *
+ [Out] out SafeNCryptKeyHandle phCryptProvOrNCryptKey,
+ [Out] out int dwKeySpec,
+ [Out, MarshalAs(UnmanagedType.Bool)] out bool pfCallerFreeProvOrNCryptKey);
+ }
+ }
+
+ internal sealed class SafeCertContextHandle : SafeHandleZeroOrMinusOneIsInvalid
+ {
+ [SecuritySafeCritical]
+ private SafeCertContextHandle() : base(true) { }
+
+ // 0 is an Invalid Handle
+ [SecuritySafeCritical]
+ internal SafeCertContextHandle(IntPtr handle)
+ : base(true)
+ {
+ SetHandle(handle);
+ }
+
+ internal static SafeCertContextHandle InvalidHandle
+ {
+ [SecuritySafeCritical]
+ get { return new SafeCertContextHandle(IntPtr.Zero); }
+ }
+
+ [DllImport("Crypt32.dll", SetLastError = true),
+ ResourceExposure(ResourceScope.None)]
+ //#if !FEATURE_CORESYSTEM
+ // [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+ //#endif
+ private static extern bool CertFreeCertificateContext(IntPtr pCertContext);
+
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
+ [SecuritySafeCritical]
+ override protected bool ReleaseHandle()
+ {
+ return CertFreeCertificateContext(handle);
}
}
}
diff --git a/mcs/class/referencesource/System.Core/System/Security/ManifestKinds.cs b/mcs/class/referencesource/System.Core/System/Security/ManifestKinds.cs
index 704367afa46..6dbd4ef65ea 100644
--- a/mcs/class/referencesource/System.Core/System/Security/ManifestKinds.cs
+++ b/mcs/class/referencesource/System.Core/System/Security/ManifestKinds.cs
@@ -14,4 +14,4 @@ namespace System.Security {
Application = 0x00000002,
ApplicationAndDeployment = Deployment | Application
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Core/System/threading/ReaderWriterLockSlim/LockRecursionException.cs b/mcs/class/referencesource/System.Core/System/threading/ReaderWriterLockSlim/LockRecursionException.cs
index fdca26ddea8..2e845069614 100644
--- a/mcs/class/referencesource/System.Core/System/threading/ReaderWriterLockSlim/LockRecursionException.cs
+++ b/mcs/class/referencesource/System.Core/System/threading/ReaderWriterLockSlim/LockRecursionException.cs
@@ -13,7 +13,7 @@
// acquire a lock, because the particular lock kind doesn't
// support it in its current state.
//
-// <OWNER>[....]</OWNER>
+// <OWNER>emadali</OWNER>
//
============================================================*/
diff --git a/mcs/class/referencesource/System.Core/System/threading/Tasks/TaskExtensions.cs b/mcs/class/referencesource/System.Core/System/threading/Tasks/TaskExtensions.cs
index 2853b837a17..11c673bf587 100644
--- a/mcs/class/referencesource/System.Core/System/threading/Tasks/TaskExtensions.cs
+++ b/mcs/class/referencesource/System.Core/System/threading/Tasks/TaskExtensions.cs
@@ -7,7 +7,7 @@
//
// TaskExtensions.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Extensions to Task/Task<TResult> classes
//
diff --git a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataRowComparer.cs b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataRowComparer.cs
index 83d84faa2d6..20ee67a6372 100644
--- a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataRowComparer.cs
+++ b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataRowComparer.cs
@@ -2,7 +2,7 @@
// <copyright file="DataRowComparer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">spather</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataRowExtensions.cs b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataRowExtensions.cs
index 172aaa05574..c1321fd25fa 100644
--- a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataRowExtensions.cs
+++ b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataRowExtensions.cs
@@ -2,7 +2,7 @@
// <copyright file="DataRowExtenstions.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">spather</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataSetUtil.cs b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataSetUtil.cs
index 16c100fd31a..cbb567e0b0d 100644
--- a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataSetUtil.cs
+++ b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataSetUtil.cs
@@ -2,8 +2,8 @@
// <copyright file="DataSetUtil.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataTableExtensions.cs b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataTableExtensions.cs
index f9d681be626..9c02c11dfdc 100644
--- a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataTableExtensions.cs
+++ b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/DataTableExtensions.cs
@@ -2,8 +2,8 @@
// <copyright file="DataTableExtenstions.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/EnumerableRowCollection.cs b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/EnumerableRowCollection.cs
index 6ef1b93e86b..2aa098fd133 100644
--- a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/EnumerableRowCollection.cs
+++ b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/EnumerableRowCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="GenericEnumRowCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/EnumerableRowCollectionExtensions.cs b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/EnumerableRowCollectionExtensions.cs
index d4b54919cda..cc1ff7a8032 100644
--- a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/EnumerableRowCollectionExtensions.cs
+++ b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/EnumerableRowCollectionExtensions.cs
@@ -2,8 +2,8 @@
// <copyright file="EnumRowCollectionExtensions.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/LinqDataView.cs b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/LinqDataView.cs
index 5b563588867..13f891636e0 100644
--- a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/LinqDataView.cs
+++ b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/LinqDataView.cs
@@ -2,8 +2,8 @@
// <copyright file="LinqDataView.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/OrderedEnumerableRowCollection.cs b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/OrderedEnumerableRowCollection.cs
index 3deed3f8bf7..a09a082e895 100644
--- a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/OrderedEnumerableRowCollection.cs
+++ b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/OrderedEnumerableRowCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="OrderedEnumerableRowCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/ShippingAssemblyAttribute.cs b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/ShippingAssemblyAttribute.cs
index ec4cc147e09..1fd9bbc73b5 100644
--- a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/ShippingAssemblyAttribute.cs
+++ b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/ShippingAssemblyAttribute.cs
@@ -2,8 +2,8 @@
// <copyright file="ShippingAssemblyAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">stevesta</owner>
//------------------------------------------------------------------------------
-[assembly: System.Security.SecurityCritical]
+[assembly: System.Security.SecurityCritical] \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/SortExpressionBuilder.cs b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/SortExpressionBuilder.cs
index da6192b17a9..e7f2aca7a3f 100644
--- a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/SortExpressionBuilder.cs
+++ b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/SortExpressionBuilder.cs
@@ -2,8 +2,8 @@
// <copyright file="EnumerableDataTable.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/TypedTableBase.cs b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/TypedTableBase.cs
index 2d8289f8955..4a4a0ee70a8 100644
--- a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/TypedTableBase.cs
+++ b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/TypedTableBase.cs
@@ -2,7 +2,7 @@
// <copyright file="TypedTableBase.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">spather</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/TypedTableBaseExtensions.cs b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/TypedTableBaseExtensions.cs
index 4b9b7e51e4e..5d6b9e6d9e3 100644
--- a/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/TypedTableBaseExtensions.cs
+++ b/mcs/class/referencesource/System.Data.DataSetExtensions/System/Data/TypedTableBaseExtensions.cs
@@ -2,8 +2,8 @@
// <copyright file="EnumRowCollectionExtensions.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/BuildProviderUtils.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/BuildProviderUtils.cs
index 3111c8566d0..338e6d617b8 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/BuildProviderUtils.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/BuildProviderUtils.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/EntityDesignerBuildProvider.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/EntityDesignerBuildProvider.cs
index 09e66a21b8b..1a4745d4882 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/EntityDesignerBuildProvider.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/EntityDesignerBuildProvider.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/EntityModelBuildProvider.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/EntityModelBuildProvider.cs
index 8223ed93996..3abf99539a0 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/EntityModelBuildProvider.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/EntityModelBuildProvider.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/MappingModelBuildProvider.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/MappingModelBuildProvider.cs
index 2c51a286690..018bbedf895 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/MappingModelBuildProvider.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/MappingModelBuildProvider.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/StorageModelBuildProvider.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/StorageModelBuildProvider.cs
index f79a5ba3ae2..0cc45631095 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/StorageModelBuildProvider.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/AspNet/StorageModelBuildProvider.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/EDesignUtil.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/EDesignUtil.cs
index ce09de026ac..4a3cf74b90d 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/EDesignUtil.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/EDesignUtil.cs
@@ -2,8 +2,8 @@
// <copyright file="EDesignUtil.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
namespace System.Data.Entity.Design.Common {
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/MetadataItemSerializer.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/MetadataItemSerializer.cs
index f285bbca538..7fb8a1be677 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/MetadataItemSerializer.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/MetadataItemSerializer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Data.Common;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/MetadataUtil.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/MetadataUtil.cs
index 2039e6a1dd5..9f11c4c7872 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/MetadataUtil.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/MetadataUtil.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/OneToOneMappingSerializer.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/OneToOneMappingSerializer.cs
index fac123e4322..d99f440cbd2 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/OneToOneMappingSerializer.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/OneToOneMappingSerializer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Data.Common;
@@ -100,21 +100,21 @@ namespace System.Data.Entity.Design.Common
// this seems counter intuitive at first, but makes sense when you think all the way through it
//
// CascadeDelete Behavior (we can assume the runtime will always delete cascade
- // to the link table from the outside tables (it actually doesn't, but that is a bug))
- // Store Effective
- // A -> AToB <- B None
- // A <- AToB <- B <-
- // A -> AToB -> B ->
- // A <- AToB -> B None
- // A <- AToB B <-
- // A AToB -> B ->
- // A -> AToB B None
- // A AToB <- B None
- //
- // Other CascadeDelete rules
- // 1. Can't have a delete from a Many multiplicity end
- // 2. Can't have a delete on both ends
- //
+ // to the link table from the outside tables (it actually doesn't, but that is a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
associationSetEnd = GetAssociationSetEnd(definingSet, true);
AssociationSetEnd multiplicityAssociationSetEnd = GetAssociationSetEnd(multiplicitySet, false);
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/UniqueIdentifierService.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/UniqueIdentifierService.cs
index 2ceeb737cba..eeb5403117c 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/UniqueIdentifierService.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/Common/UniqueIdentifierService.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/DesignXmlConstants.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/DesignXmlConstants.cs
index 764c6c7ae38..a1c5af0dd91 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/DesignXmlConstants.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/DesignXmlConstants.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner srimand
//---------------------------------------------------------------------
namespace System.Data.Entity.Design
{
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityCodeGenerator.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityCodeGenerator.cs
index 2f8d3a152f2..db62698c5f3 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityCodeGenerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityCodeGenerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
//#define ENABLE_TEMPLATE_DEBUGGING
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityDesignerUtils.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityDesignerUtils.cs
index 3d8b9c43828..e0d234d5330 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityDesignerUtils.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityDesignerUtils.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.IO;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityFrameworkVersions.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityFrameworkVersions.cs
index 587e68dbcc8..6fd70791f70 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityFrameworkVersions.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityFrameworkVersions.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityModelSchemaGenerator.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityModelSchemaGenerator.cs
index 537a769ccc7..827b1a25632 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityModelSchemaGenerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityModelSchemaGenerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaFilterEffect.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaFilterEffect.cs
index 6924a3bd137..aafbb7b7de2 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaFilterEffect.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaFilterEffect.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner srimand
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaFilterEntry.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaFilterEntry.cs
index ed03f56754a..b086b3fbc0b 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaFilterEntry.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaFilterEntry.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaFilterObjectTypes.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaFilterObjectTypes.cs
index 8996c2f66ae..23b5a3e275e 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaFilterObjectTypes.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaFilterObjectTypes.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner srimand
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator.cs
index 57f59c4422b..4b1c9d0469d 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator/EntityStoreSchemaGenerator.DbObjectKey.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator/EntityStoreSchemaGenerator.DbObjectKey.cs
index e059181a345..78d87ade517 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator/EntityStoreSchemaGenerator.DbObjectKey.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator/EntityStoreSchemaGenerator.DbObjectKey.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Diagnostics;
namespace System.Data.Entity.Design
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator/EntityStoreSchemaGenerator.EntityCreationStatus.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator/EntityStoreSchemaGenerator.EntityCreationStatus.cs
index 241da8db9bd..3a6e78ae7c9 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator/EntityStoreSchemaGenerator.EntityCreationStatus.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator/EntityStoreSchemaGenerator.EntityCreationStatus.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner srimand
//---------------------------------------------------------------------
namespace System.Data.Entity.Design
{
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator/EntityStoreSchemaGenerator.LoadMethodSessionState.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator/EntityStoreSchemaGenerator.LoadMethodSessionState.cs
index 6a360dbcb7d..2b1460a25fa 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator/EntityStoreSchemaGenerator.LoadMethodSessionState.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityStoreSchemaGenerator/EntityStoreSchemaGenerator.LoadMethodSessionState.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Entity.Design.Common;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityViewGeneration/EntityViewGenerationConstants.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityViewGeneration/EntityViewGenerationConstants.cs
index 69f9e7f3dfe..fbb3711e95d 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityViewGeneration/EntityViewGenerationConstants.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityViewGeneration/EntityViewGenerationConstants.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityViewGeneration/EntityViewGenerator.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityViewGeneration/EntityViewGenerator.cs
index 8102ba33858..c1f7c6c722d 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityViewGeneration/EntityViewGenerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/EntityViewGeneration/EntityViewGenerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
@@ -345,7 +345,7 @@ namespace System.Data.Entity.Design
foreach (var storageEntityContainerMapping in mappingCollection.GetItems<StorageEntityContainerMapping>())
{
- //Throw warning when containerMapping contains query view for bug 547285.
+ //Throw warning when containerMapping contains query view for
if (HasQueryView(storageEntityContainerMapping))
{
schemaErrors.Add(new EdmSchemaError(
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/MetadataExtensionMethods.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/MetadataExtensionMethods.cs
index 05fadc535b2..3c0325be07a 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/MetadataExtensionMethods.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/MetadataExtensionMethods.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Entity.Design
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/MetadataItemCollectionFactory.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/MetadataItemCollectionFactory.cs
index 4f496c57f39..a0bd90d32cc 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/MetadataItemCollectionFactory.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/MetadataItemCollectionFactory.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Entity.Design
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/BidirectionalDictionary.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/BidirectionalDictionary.cs
index 1085686e0fb..f40b624560d 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/BidirectionalDictionary.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/BidirectionalDictionary.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/EnglishPluralizationService.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/EnglishPluralizationService.cs
index a0885995af5..2ca6171af2a 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/EnglishPluralizationService.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/EnglishPluralizationService.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/EntityDesignPluralizationHandler.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/EntityDesignPluralizationHandler.cs
index ccd70127bbe..547983643f4 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/EntityDesignPluralizationHandler.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/EntityDesignPluralizationHandler.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/ICustomPluralizationMapping.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/ICustomPluralizationMapping.cs
index 86dfd0b760e..9ec306433a4 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/ICustomPluralizationMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/ICustomPluralizationMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner leil
+// @backupOwner jeffreed
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/PluralizationServiceUtil.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/PluralizationServiceUtil.cs
index 5002205ed4b..59a95d917e1 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/PluralizationServiceUtil.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService/PluralizationServiceUtil.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/EntityStoreSchemaGeneratorDatabaseSchemaLoader.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/EntityStoreSchemaGeneratorDatabaseSchemaLoader.cs
index 49d484d13c3..697013be797 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/EntityStoreSchemaGeneratorDatabaseSchemaLoader.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/EntityStoreSchemaGeneratorDatabaseSchemaLoader.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Globalization;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/FunctionDetailsReader.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/FunctionDetailsReader.cs
index 95a9c2eb1fc..6b0c5c767b7 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/FunctionDetailsReader.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/FunctionDetailsReader.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/ModelBuilderErrorCodes.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/ModelBuilderErrorCodes.cs
index c7b87a7ad56..6ab9511a706 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/ModelBuilderErrorCodes.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/ModelBuilderErrorCodes.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner srimand
//---------------------------------------------------------------------
namespace System.Data.Entity.Design.SsdlGenerator
{
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/RelationshipDetailsCollection.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/RelationshipDetailsCollection.cs
index 8f13e94ac13..9b8f93b6f7d 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/RelationshipDetailsCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/RelationshipDetailsCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/RelationshipDetailsRow.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/RelationshipDetailsRow.cs
index 4d202670c6b..892fa572d8c 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/RelationshipDetailsRow.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/RelationshipDetailsRow.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/TableDetailsCollection.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/TableDetailsCollection.cs
index 5eca9413a1d..b79aee2c9a7 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/TableDetailsCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/TableDetailsCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/TableDetailsRow.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/TableDetailsRow.cs
index cd3ca3660de..ad95e0103f8 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/TableDetailsRow.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/Entity/Design/SSDLGenerator/TableDetailsRow.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/EdmToObjectNamespaceMap.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/EdmToObjectNamespaceMap.cs
index c45935e9a87..2a5277fad16 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/EdmToObjectNamespaceMap.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/EdmToObjectNamespaceMap.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/AssociationTypeEmitter.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/AssociationTypeEmitter.cs
index ae05595adf1..5b87e6fdcbe 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/AssociationTypeEmitter.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/AssociationTypeEmitter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/AttributeEmitter.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/AttributeEmitter.cs
index 45124ca359b..f52b61f1834 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/AttributeEmitter.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/AttributeEmitter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.CodeDom;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/ClientApiGenerator.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/ClientApiGenerator.cs
index d4ec4cf42fd..2c4663dfab4 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/ClientApiGenerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/ClientApiGenerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/CommentEmitter.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/CommentEmitter.cs
index d898e70127b..d2942485f81 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/CommentEmitter.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/CommentEmitter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/ComplexTypeEmitter.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/ComplexTypeEmitter.cs
index 7f369223020..3785fefafc7 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/ComplexTypeEmitter.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/ComplexTypeEmitter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/Emitter.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/Emitter.cs
index aad4ff051ff..28f5daf8534 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/Emitter.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/Emitter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/EntityContainerEmitter.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/EntityContainerEmitter.cs
index 2aebd4d83ab..928d13c2e41 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/EntityContainerEmitter.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/EntityContainerEmitter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/EntityTypeEmitter.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/EntityTypeEmitter.cs
index f4cf839d8e4..d842bb38f6e 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/EntityTypeEmitter.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/EntityTypeEmitter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/FixUp.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/FixUp.cs
index 2058e54f8a8..c6fd702e21f 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/FixUp.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/FixUp.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/FixUpCollection.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/FixUpCollection.cs
index 86a73f3ae56..d32878775ee 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/FixUpCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/FixUpCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/FixUpType.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/FixUpType.cs
index fa0c50efba3..a4168c9a12c 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/FixUpType.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/FixUpType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner srimand
//---------------------------------------------------------------------
namespace System.Data.EntityModel.Emitters
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/MetadataItemEmitter.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/MetadataItemEmitter.cs
index aaf1e80cef2..bbb721431b0 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/MetadataItemEmitter.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/MetadataItemEmitter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------using System;
using System.Collections.Generic;
using System.Text;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/NamespaceEmitter.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/NamespaceEmitter.cs
index e200f5d2aad..171726227af 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/NamespaceEmitter.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/NamespaceEmitter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/NavigationPropertyEmitter.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/NavigationPropertyEmitter.cs
index 121868eb65c..ef0104ca7a2 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/NavigationPropertyEmitter.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/NavigationPropertyEmitter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/PrivateMemberPrefixId.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/PrivateMemberPrefixId.cs
index 35573d1ae2c..fdbaab8de41 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/PrivateMemberPrefixId.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/PrivateMemberPrefixId.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner srimand
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/PropertyEmitter.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/PropertyEmitter.cs
index bbcb468e272..78c8d78e59e 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/PropertyEmitter.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/PropertyEmitter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.CodeDom;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/PropertyEmitterBase.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/PropertyEmitterBase.cs
index aab6dc7315a..04a9326d5df 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/PropertyEmitterBase.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/PropertyEmitterBase.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/SchemaTypeEmitter.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/SchemaTypeEmitter.cs
index e74471f3f29..348ddae3b90 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/SchemaTypeEmitter.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/SchemaTypeEmitter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/StructuredTypeEmitter.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/StructuredTypeEmitter.cs
index 2689c5b99fe..3af30235c2e 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/StructuredTypeEmitter.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/StructuredTypeEmitter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/TypeReference.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/TypeReference.cs
index 9381d82cfc3..9336dbf7bf3 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/TypeReference.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/TypeReference.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/Utils.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/Utils.cs
index a85445adb77..e35e67cbb96 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/Utils.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/Emitters/Utils.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/EntityClassGenerator.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/EntityClassGenerator.cs
index cd27ddb9729..6f530f56b99 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/EntityClassGenerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/EntityClassGenerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/LanguageOption.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/LanguageOption.cs
index 94714f3da20..914b7f86f1e 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/LanguageOption.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/LanguageOption.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner srimand
//---------------------------------------------------------------------
namespace System.Data.Entity.Design
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/LazyTextWriterCreator.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/LazyTextWriterCreator.cs
index 70e90b89bc1..a6f6f05895a 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/LazyTextWriterCreator.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/LazyTextWriterCreator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/PropertyGeneratedEventArgs.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/PropertyGeneratedEventArgs.cs
index d80bd5d6433..5bbb41588c9 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/PropertyGeneratedEventArgs.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/PropertyGeneratedEventArgs.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Data;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/TerminalErrorException.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/TerminalErrorException.cs
index a01ee3c2621..e6070187bc4 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/TerminalErrorException.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/TerminalErrorException.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner srimand
//---------------------------------------------------------------------
using System;
using System.Data;
diff --git a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/TypeGeneratedEventArgs.cs b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/TypeGeneratedEventArgs.cs
index d4133aadc47..63e42956a97 100644
--- a/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/TypeGeneratedEventArgs.cs
+++ b/mcs/class/referencesource/System.Data.Entity.Design/System/Data/EntityModel/TypeGeneratedEventArgs.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Data;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/AbstractExpressions.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/AbstractExpressions.cs
index 32f66a9344b..7b5d7192be6 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/AbstractExpressions.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/AbstractExpressions.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Aggregates.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Aggregates.cs
index 4be1672ebc4..13a5cb17c20 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Aggregates.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Aggregates.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/BasicCommandTreeVisitor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/BasicCommandTreeVisitor.cs
index 065b1f15dbb..b2c449026d7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/BasicCommandTreeVisitor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/BasicCommandTreeVisitor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/BasicExpressionVisitor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/BasicExpressionVisitor.cs
index 62816a81522..524792543b8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/BasicExpressionVisitor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/BasicExpressionVisitor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.CommandTrees
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbCommandTree.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbCommandTree.cs
index ffbe27823cd..86b6ed9527c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbCommandTree.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbCommandTree.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.CommandTrees
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbDeleteCommandTree.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbDeleteCommandTree.cs
index bd2a0cd47b8..22ccf2dafb2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbDeleteCommandTree.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbDeleteCommandTree.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....], [....]
-// @backupOwner [....]
+// @owner Microsoft, Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbExpressionVisitor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbExpressionVisitor.cs
index 819515f3c8e..3fe00156b2e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbExpressionVisitor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbExpressionVisitor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbExpressionVisitor_TResultType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbExpressionVisitor_TResultType.cs
index add22219762..0fde73b97b9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbExpressionVisitor_TResultType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbExpressionVisitor_TResultType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbFunctionCommandTree.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbFunctionCommandTree.cs
index cb0d6513de0..219ab1ae728 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbFunctionCommandTree.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbFunctionCommandTree.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbInsertCommandTree.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbInsertCommandTree.cs
index 4d3d41e5c13..10dbfbaf87b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbInsertCommandTree.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbInsertCommandTree.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....], [....]
-// @backupOwner [....]
+// @owner Microsoft, Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbLambda.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbLambda.cs
index db7105b543a..0a15743828f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbLambda.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbLambda.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbModificationClause.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbModificationClause.cs
index c9ea82ce3e5..71eecb4b2e3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbModificationClause.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbModificationClause.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbModificationCommandTree.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbModificationCommandTree.cs
index 67f0bc2ea91..b129bb2efe0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbModificationCommandTree.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbModificationCommandTree.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....], [....]
-// @backupOwner [....]
+// @owner Microsoft, Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbQueryCommandTree.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbQueryCommandTree.cs
index 0816cae1336..56039e69fa0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbQueryCommandTree.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbQueryCommandTree.cs
@@ -4,8 +4,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbSetClause.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbSetClause.cs
index 4b97556f1cb..82794eccdcf 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbSetClause.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbSetClause.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbUpdateCommandTree.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbUpdateCommandTree.cs
index 65e72e88ded..4e486f0be9c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbUpdateCommandTree.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DbUpdateCommandTree.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....], [....]
-// @backupOwner [....]
+// @owner Microsoft, Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DefaultExpressionVisitor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DefaultExpressionVisitor.cs
index 3eaea9451a6..520d5dcd062 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DefaultExpressionVisitor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/DefaultExpressionVisitor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.CommandTrees
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBindings.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBindings.cs
index 6b24b054e97..7c39a76a79e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBindings.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBindings.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/DbExpressionBuilder.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/DbExpressionBuilder.cs
index 018822d2543..6db0404e3d4 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/DbExpressionBuilder.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/DbExpressionBuilder.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.CommandTrees.ExpressionBuilder
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/EdmFunctions.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/EdmFunctions.cs
index 564193b7f14..026dac11951 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/EdmFunctions.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/EdmFunctions.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.CommandTrees.ExpressionBuilder
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Internal/ArgumentValidation.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Internal/ArgumentValidation.cs
index c0e80490b00..02c45b47103 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Internal/ArgumentValidation.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Internal/ArgumentValidation.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.CommandTrees.ExpressionBuilder.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Internal/EnumerableValidator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Internal/EnumerableValidator.cs
index 77c9bbb4289..9010a31ed64 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Internal/EnumerableValidator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Internal/EnumerableValidator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.CommandTrees.ExpressionBuilder.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Row.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Row.cs
index 6b2e6f37290..17f4e26153e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Row.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Row.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Spatial/SpatialEdmFunctions.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Spatial/SpatialEdmFunctions.cs
index 10c2e874893..70a627702be 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Spatial/SpatialEdmFunctions.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ExpressionBuilder/Spatial/SpatialEdmFunctions.cs
@@ -5,7 +5,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.CommandTrees.ExpressionBuilder.Spatial
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/DbExpressionRules.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/DbExpressionRules.cs
index 92fb84d99b0..5227cd0671a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/DbExpressionRules.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/DbExpressionRules.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.CommandTrees;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionCopier.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionCopier.cs
index 72b70059826..764d80a4dd0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionCopier.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionCopier.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.CommandTrees.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionDumper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionDumper.cs
index 020ea578ff5..3f57a0ac574 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionDumper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionDumper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionKeyGen.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionKeyGen.cs
index d769ea83514..3e9e050e2f4 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionKeyGen.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionKeyGen.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
// @backupOwner venkatja
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionList.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionList.cs
index b7c12c7df8d..15d0c154a33 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionList.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionList.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionPrinter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionPrinter.cs
index 17c708d70a7..11f70731f26 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionPrinter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ExpressionPrinter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.CommandTrees.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ParameterRetriever.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ParameterRetriever.cs
index 89396b7b631..29005dc5285 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ParameterRetriever.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ParameterRetriever.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/PatternMatchRules.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/PatternMatchRules.cs
index 33f8a8a7fec..66e3a0286e2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/PatternMatchRules.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/PatternMatchRules.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.CommandTrees;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/Validator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/Validator.cs
index 75ddb262618..182e5859205 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/Validator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/Validator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.CommandTrees.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ViewSimplifier.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ViewSimplifier.cs
index 485339fce69..3a65b24a550 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ViewSimplifier.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/ViewSimplifier.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....], [....]
-// @backupOwner [....]
+// @owner Microsoft, Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.CommandTrees;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/XmlExpressionDumper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/XmlExpressionDumper.cs
index e5ed294bc08..c50dad6b3cc 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/XmlExpressionDumper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/Internal/XmlExpressionDumper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/OperatorExpressions.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/OperatorExpressions.cs
index d3bfc50dcfb..45e38490419 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/OperatorExpressions.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/OperatorExpressions.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/RelationalExpressions.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/RelationalExpressions.cs
index 05f52debacd..a6e626c2f74 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/RelationalExpressions.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/RelationalExpressions.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ValueExpressions.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ValueExpressions.cs
index 7d9bef3d974..7546835ecf8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ValueExpressions.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/CommandTrees/ValueExpressions.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.CommandTrees
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DataRecord.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DataRecord.cs
index 22945e86e3b..b2d286185fc 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DataRecord.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DataRecord.cs
@@ -2,8 +2,8 @@
// <copyright file="DataRecord.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Objects
@@ -426,7 +426,7 @@ namespace System.Data.Objects
}
#region ICustomTypeDescriptor implementation
- //[[....]] Reference: http://msdn.microsoft.com/msdnmag/issues/05/04/NETMatters/
+ //[Microsoft] Reference: http://msdn.microsoft.com/msdnmag/issues/05/04/NETMatters/
//Holds all of the PropertyDescriptors for the PrimitiveType objects in _values
private PropertyDescriptorCollection _propertyDescriptors = null;
private FilterCache _filterCache;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DataRecordInfo.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DataRecordInfo.cs
index b5fcf313e14..9e892e98d2c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DataRecordInfo.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DataRecordInfo.cs
@@ -2,8 +2,8 @@
// <copyright file="DataRecordInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbCommandDefinition.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbCommandDefinition.cs
index af5490530a0..ed4b28e278f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbCommandDefinition.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbCommandDefinition.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbProviderManifest.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbProviderManifest.cs
index 4258cb147ac..b043bb4024c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbProviderManifest.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbProviderManifest.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbProviderServices.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbProviderServices.cs
index 6647b41a615..e12c1c8cdcd 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbProviderServices.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbProviderServices.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Data.SqlClient;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbXmlEnabledProviderManifest.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbXmlEnabledProviderManifest.cs
index b06d9eb2f2f..456a6d5cefa 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbXmlEnabledProviderManifest.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/DbXmlEnabledProviderManifest.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntityRecordInfo.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntityRecordInfo.cs
index fac34b50bbf..d98de0bc844 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntityRecordInfo.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntityRecordInfo.cs
@@ -2,8 +2,8 @@
// <copyright file="EntityRecordInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/AliasedExpr.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/AliasedExpr.cs
index df9f6e839e8..102e5da5381 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/AliasedExpr.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/AliasedExpr.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/AstNode.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/AstNode.cs
index e9d15458b5a..f0532e26f9d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/AstNode.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/AstNode.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/BuiltInExpr.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/BuiltInExpr.cs
index fde232bf339..66f3ca72ce6 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/BuiltInExpr.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/BuiltInExpr.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/CaseExpr.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/CaseExpr.cs
index e1cae1bea62..b04a7662407 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/CaseExpr.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/CaseExpr.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/Command.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/Command.cs
index 905d1de7c58..a984def3d33 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/Command.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/Command.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/ConstructorExpr.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/ConstructorExpr.cs
index e347d8e49de..8f4e103e7f7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/ConstructorExpr.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/ConstructorExpr.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/CreateRefExpr.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/CreateRefExpr.cs
index 0757273be82..365783ede12 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/CreateRefExpr.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/CreateRefExpr.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/DotExpr.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/DotExpr.cs
index cdd820cf252..1d5b129ea4e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/DotExpr.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/DotExpr.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/FunctionDefinition.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/FunctionDefinition.cs
index 3331eacd646..c42aebb7699 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/FunctionDefinition.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/FunctionDefinition.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/GroupAggregateExpr.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/GroupAggregateExpr.cs
index 2806c7f4322..2288453136e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/GroupAggregateExpr.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/GroupAggregateExpr.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/GroupPartitionExpr.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/GroupPartitionExpr.cs
index 128f9605e57..892604a9638 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/GroupPartitionExpr.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/GroupPartitionExpr.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/Identifier.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/Identifier.cs
index 027fecca652..bf7ea32b8dc 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/Identifier.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/Identifier.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/Literal.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/Literal.cs
index 5616b92626a..b29f3a6ea6c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/Literal.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/Literal.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/MethodExpr.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/MethodExpr.cs
index dd49950d785..b95887f0a82 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/MethodExpr.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/MethodExpr.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/NamespaceImport.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/NamespaceImport.cs
index bfc5b74067f..d6ad4143209 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/NamespaceImport.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/NamespaceImport.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/NavigationExpr.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/NavigationExpr.cs
index e57134ce2be..b9ece452630 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/NavigationExpr.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/NavigationExpr.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/ParenExpr.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/ParenExpr.cs
index f7e6751028c..724fe2fef2b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/ParenExpr.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/ParenExpr.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/QueryExpr.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/QueryExpr.cs
index 2929b1ac288..ab258763caa 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/QueryExpr.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/QueryExpr.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/QueryParameter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/QueryParameter.cs
index 42000a87285..0913e91f95d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/QueryParameter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/QueryParameter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/QueryStatement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/QueryStatement.cs
index d417b7cd2be..4567c4fdebc 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/QueryStatement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/QueryStatement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/RefExpr.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/RefExpr.cs
index ecb09bd2b9d..9a3478111da 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/RefExpr.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/RefExpr.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/TypeDefinition.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/TypeDefinition.cs
index bb6f19e8185..c7bf3a98bbd 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/TypeDefinition.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/AST/TypeDefinition.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql.AST
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlErrorHelper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlErrorHelper.cs
index 681bf9fe753..0e53206e9c0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlErrorHelper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlErrorHelper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlLexer.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlLexer.cs
index ddb98d334b2..8d8c09279c1 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlLexer.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlLexer.cs
@@ -15,8 +15,8 @@ namespace System.Data.Common.EntitySql
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//----------------------------------------------------------------------------*/
using System;
using System.Globalization;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlLexerHelpers.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlLexerHelpers.cs
index 23dcbc379d3..47780762363 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlLexerHelpers.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlLexerHelpers.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlParser.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlParser.cs
index 1049adebd58..d6ba939fb4b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlParser.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlParser.cs
@@ -27,8 +27,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------------*/
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlParserHelpers.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlParserHelpers.cs
index 901fbd4ec14..9dcc68e1834 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlParserHelpers.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlParserHelpers.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlQuery.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlQuery.cs
index e6891500876..8c8fbe0d752 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlQuery.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/CqlQuery.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/EntitySqlParser.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/EntitySqlParser.cs
index 17b62f5bb6b..a6f018832cc 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/EntitySqlParser.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/EntitySqlParser.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/FunctionOverloadResolver.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/FunctionOverloadResolver.cs
index fe00e0c485c..0207198e650 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/FunctionOverloadResolver.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/FunctionOverloadResolver.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/ParseResult.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/ParseResult.cs
index fdbf4be14a1..77fa73c4548 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/ParseResult.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/ParseResult.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/ParserOptions.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/ParserOptions.cs
index cdfc03cda08..bf61750a919 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/ParserOptions.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/ParserOptions.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/SemanticAnalyzer.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/SemanticAnalyzer.cs
index 43bd38b5fb1..51130912b75 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/SemanticAnalyzer.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/SemanticAnalyzer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/SemanticResolver.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/SemanticResolver.cs
index ddc2fe1ede2..9009be6405f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/SemanticResolver.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/SemanticResolver.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/StaticContext.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/StaticContext.cs
index 810e2dde4a4..1000b4d4dff 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/StaticContext.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/StaticContext.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/TypeResolver.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/TypeResolver.cs
index 53052c6f947..99d2fcb2f2d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/TypeResolver.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntitySql/TypeResolver.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.EntitySql
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntityUtil.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntityUtil.cs
index 273ba8bf547..63d51ab7ecb 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntityUtil.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/EntityUtil.cs
@@ -2,7 +2,7 @@
// <copyright file="EntityUtil.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -2071,8 +2071,8 @@ namespace System.Data {
/// <summary>
/// This method uses the .net Fx target framework moniker (introduced in .net 4.0 Multitargeting feature)
/// to provide a 'quirks' mode that serves as a compatibility flag for features that can be considered
- /// breaking changes from 4.0 to 4.5 which is a in-place upgrade to 4.0. For details see DevDiv2 bug#488375.
- /// </summary>
+ /// breaking changes from 4.0 to 4.5 which is a in-place upgrade to 4.0. For details see DevDiv2
+
static bool? useFx40CompatMode;
static public bool UseFx40CompatMode
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/FieldMetadata.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/FieldMetadata.cs
index 5ed39f1716c..f9c967c809f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/FieldMetadata.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/FieldMetadata.cs
@@ -2,8 +2,8 @@
// <copyright file="FieldMetadata.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/FieldNameLookup.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/FieldNameLookup.cs
index e65c7390d7e..8d7177d5dde 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/FieldNameLookup.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/FieldNameLookup.cs
@@ -2,8 +2,8 @@
// <copyright file="FieldNameLookup.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/DbTypeMap.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/DbTypeMap.cs
index 65ab8650c8c..7a85d27b4f7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/DbTypeMap.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/DbTypeMap.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Text;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/ColumnMapKeyBuilder.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/ColumnMapKeyBuilder.cs
index 19041a0c3c1..af3717ef8aa 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/ColumnMapKeyBuilder.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/ColumnMapKeyBuilder.cs
@@ -2,8 +2,8 @@
// <copyright file="ColumnMapKeyBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/CompensatingCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/CompensatingCollection.cs
index 8526686cd3b..3b48e5f40e1 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/CompensatingCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/CompensatingCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="CompensatingCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common.Internal.Materialization
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Coordinator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Coordinator.cs
index 23be3839d6e..93a4e6c9006 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Coordinator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Coordinator.cs
@@ -2,8 +2,8 @@
// <copyright file="Coordinator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/CoordinatorFactory.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/CoordinatorFactory.cs
index 0ec0331c82c..b6807fa204b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/CoordinatorFactory.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/CoordinatorFactory.cs
@@ -2,8 +2,8 @@
// <copyright file="CoordinatorFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/CoordinatorScratchpad.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/CoordinatorScratchpad.cs
index d2f81f02f8f..96323de312c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/CoordinatorScratchpad.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/CoordinatorScratchpad.cs
@@ -2,8 +2,8 @@
// <copyright file="CoordinatorScratchpad.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/RecordState.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/RecordState.cs
index 096fd66153b..b2c725f9872 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/RecordState.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/RecordState.cs
@@ -2,7 +2,7 @@
// <copyright file="RecordState.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/RecordStateFactory.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/RecordStateFactory.cs
index 69904d04f81..0df64e38043 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/RecordStateFactory.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/RecordStateFactory.cs
@@ -2,7 +2,7 @@
// <copyright file="recordstatefactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/RecordStateScratchpad.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/RecordStateScratchpad.cs
index 7a5f65e0d44..796548170c0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/RecordStateScratchpad.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/RecordStateScratchpad.cs
@@ -2,7 +2,7 @@
// <copyright file="RecordStateScratchpad.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Shaper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Shaper.cs
index 659e0e1c4d5..db09b27ac82 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Shaper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Shaper.cs
@@ -2,8 +2,8 @@
// <copyright file="Shaper.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common.Internal.Materialization
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/ShaperFactory.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/ShaperFactory.cs
index 0a4c89a46ce..3fd39f9d2b4 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/ShaperFactory.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/ShaperFactory.cs
@@ -2,8 +2,8 @@
// <copyright file="ShaperFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Data.Common.QueryCache;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Translator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Translator.cs
index 065d41fc195..ae93d8088a9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Translator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Translator.cs
@@ -2,8 +2,8 @@
// <copyright file="Translator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common.Internal.Materialization
@@ -2199,7 +2199,7 @@ namespace System.Data.Common.Internal.Materialization
}
else if (typeof(Object) == type)
{
- // We assume that Object means we want DBNull rather than null. I believe this is a bug.
+ // We assume that Object means we want DBNull rather than null. I believe this is a
result = DbDataReader_GetValue;
}
else
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Util.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Util.cs
index fd7cac415ba..a968ae5ff25 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Util.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/Materialization/Util.cs
@@ -2,7 +2,7 @@
// <copyright file="Util.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Data.Metadata.Edm;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/MultipartIdentifier.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/MultipartIdentifier.cs
index 53cef9b2883..b4f9fb47850 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/MultipartIdentifier.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Internal/MultipartIdentifier.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/CompiledQueryCacheEntry.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/CompiledQueryCacheEntry.cs
index 64adc859ece..d127840310e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/CompiledQueryCacheEntry.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/CompiledQueryCacheEntry.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
namespace System.Data.Common.QueryCache
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/CompiledQueryCacheKey.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/CompiledQueryCacheKey.cs
index 2654fe187be..bd601d72ae1 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/CompiledQueryCacheKey.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/CompiledQueryCacheKey.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
namespace System.Data.Common.QueryCache
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/EntityClientCacheKey.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/EntityClientCacheKey.cs
index e1558153425..f779d4bc6c5 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/EntityClientCacheKey.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/EntityClientCacheKey.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
namespace System.Data.Common.QueryCache
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/EntitySqlQueryCacheKey.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/EntitySqlQueryCacheKey.cs
index e522b27cb61..c768adabf19 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/EntitySqlQueryCacheKey.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/EntitySqlQueryCacheKey.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
namespace System.Data.Common.QueryCache
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/LinqQueryCacheKey.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/LinqQueryCacheKey.cs
index 48e751b3acc..eda5cfd72ae 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/LinqQueryCacheKey.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/LinqQueryCacheKey.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
// @backupOwner venkatja
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/QueryCacheEntry.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/QueryCacheEntry.cs
index 095192735be..b24ea21c6f8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/QueryCacheEntry.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/QueryCacheEntry.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
namespace System.Data.Common.QueryCache
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/QueryCacheKey.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/QueryCacheKey.cs
index 4619758aede..28884ac06de 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/QueryCacheKey.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/QueryCacheKey.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
namespace System.Data.Common.QueryCache
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/QueryCacheManager.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/QueryCacheManager.cs
index 1b0ccd787d2..7bbc1a39204 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/QueryCacheManager.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/QueryCacheManager.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
namespace System.Data.Common.QueryCache
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/ShaperFactoryQueryCacheKey.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/ShaperFactoryQueryCacheKey.cs
index 4b47edc6e0a..dd3826daef8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/ShaperFactoryQueryCacheKey.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/QueryCache/ShaperFactoryQueryCacheKey.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/ShippingAssemblyAttributes.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/ShippingAssemblyAttributes.cs
index ea84eb1372b..b48c254be64 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/ShippingAssemblyAttributes.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/ShippingAssemblyAttributes.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupowner [....]
+// @owner srimand
+// @backupowner adoshi
//---------------------------------------------------------------------
// comment this line out to see dead code:
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/AliasGenerator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/AliasGenerator.cs
index 670f5e62d27..5417635a7e7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/AliasGenerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/AliasGenerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/BoolExpr.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/BoolExpr.cs
index c06db3a12ae..4ddc93a1577 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/BoolExpr.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/BoolExpr.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Clause.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Clause.cs
index 510cf51b493..f06cf05f8a3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Clause.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Clause.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/ConversionContext.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/ConversionContext.cs
index ba6cb2b8359..944a59a9a6e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/ConversionContext.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/ConversionContext.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Converter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Converter.cs
index c5bf383114b..893ab5a697f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Converter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Converter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/DomainConstraint.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/DomainConstraint.cs
index aa8d12e3cf8..0b69ae68647 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/DomainConstraint.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/DomainConstraint.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/IdentifierService.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/IdentifierService.cs
index 36d5bd11865..bfe37791df3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/IdentifierService.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/IdentifierService.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/KnowledgeBase.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/KnowledgeBase.cs
index cb9d5569cd0..1fc9e9fd918 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/KnowledgeBase.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/KnowledgeBase.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Literal.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Literal.cs
index 372a0cfa3ad..90f18519cfa 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Literal.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Literal.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/NegationPusher.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/NegationPusher.cs
index 4a86fee78f8..0123003f256 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/NegationPusher.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/NegationPusher.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Sentence.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Sentence.cs
index 2b6716c3e68..92c7f9bee54 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Sentence.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Sentence.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Simplifier.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Simplifier.cs
index 2bad66e2616..b591a6645e2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Simplifier.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Simplifier.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Solver.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Solver.cs
index d9769c5f3d4..8d0f77d7292 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Solver.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Solver.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
@@ -315,7 +315,7 @@ namespace System.Data.Common.Utils.Boolean
{
if (x.IsSink())
{
- // [....] nodes '1' and '0' each have one static instance; use reference
+ // sync nodes '1' and '0' each have one static instance; use reference
return x.Equals(y);
}
@@ -338,7 +338,7 @@ namespace System.Data.Common.Utils.Boolean
public int GetHashCode(Vertex vertex)
{
- // [....] nodes '1' and '0' each have one static instance; use reference
+ // sync nodes '1' and '0' each have one static instance; use reference
if (vertex.IsSink())
{
return vertex.GetHashCode();
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Vertex.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Vertex.cs
index 6806a73b293..38b8b5f8756 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Vertex.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Vertex.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Visitor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Visitor.cs
index d4f25a816e4..b02fa5d12a2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Visitor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Boolean/Visitor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/ByValueEqualityComparer.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/ByValueEqualityComparer.cs
index 4cd2051c074..0be82c0865f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/ByValueEqualityComparer.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/ByValueEqualityComparer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/CommandHelper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/CommandHelper.cs
index 39952ce672e..1163bf8f891 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/CommandHelper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/CommandHelper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common.Utils
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/DisposableCollectionWrapper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/DisposableCollectionWrapper.cs
index 2096b088732..73f8b6299b3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/DisposableCollectionWrapper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/DisposableCollectionWrapper.cs
@@ -2,8 +2,8 @@
// <copyright file="DisposableCollectionWrapper.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
using System.Linq;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Helpers.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Helpers.cs
index 98a32e33eb7..232648f3e22 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Helpers.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Helpers.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/InternalBase.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/InternalBase.cs
index 44fe649dcb8..a35fdc2da4c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/InternalBase.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/InternalBase.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/KeyToListMap.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/KeyToListMap.cs
index aaa2b0df35d..12a2a1333f3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/KeyToListMap.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/KeyToListMap.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Memoizer.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Memoizer.cs
index f9f9d1d34d6..84395cf4cd7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Memoizer.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Memoizer.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....], [....]
+// @owner Microsoft, Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/MetadataHelper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/MetadataHelper.cs
index 1ab0fb9122e..6015d34a16a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/MetadataHelper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/MetadataHelper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/ModifiableIteratorCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/ModifiableIteratorCollection.cs
index 06db634abe4..17f7d6b5619 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/ModifiableIteratorCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/ModifiableIteratorCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Pair.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Pair.cs
index 78e1362f76e..4e671634668 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Pair.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Pair.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Set.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Set.cs
index 4b9b0fac334..4eead566ce4 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Set.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Set.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Singleton.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Singleton.cs
index cb7a53fc97c..9d5282ada31 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Singleton.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/Singleton.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/StringUtil.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/StringUtil.cs
index bdd52eaa5dc..79e347e3843 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/StringUtil.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/StringUtil.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/ThreadSafeList.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/ThreadSafeList.cs
index e867acd6f4c..1a26a4a102b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/ThreadSafeList.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/ThreadSafeList.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/TrailingSpaceComparer.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/TrailingSpaceComparer.cs
index 87929e26b72..261894900c9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/TrailingSpaceComparer.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/TrailingSpaceComparer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/TreePrinter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/TreePrinter.cs
index fd2ab6566ee..dd2a101c588 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/TreePrinter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Common/Utils/TreePrinter.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/DbConnectionOptions.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/DbConnectionOptions.cs
index 1a2aaea185e..4e0339f8842 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/DbConnectionOptions.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/DbConnectionOptions.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityClient
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/DbParameterCollectionHelper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/DbParameterCollectionHelper.cs
index 4a9dc1f4858..a23005d3f2b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/DbParameterCollectionHelper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/DbParameterCollectionHelper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityClient
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/DbParameterHelper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/DbParameterHelper.cs
index c56ef6076c6..6d34f8a1a4b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/DbParameterHelper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/DbParameterHelper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityAdapter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityAdapter.cs
index 5a175d33d38..3881760b311 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityAdapter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityAdapter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityClient
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityCommand.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityCommand.cs
index 84e2df32c93..ea6a1d39172 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityCommand.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityCommand.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityClient
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityCommandDefinition.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityCommandDefinition.cs
index 0f00c170eee..c0f9ea4308e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityCommandDefinition.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityCommandDefinition.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
namespace System.Data.EntityClient {
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityConnection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityConnection.cs
index 38de95d81a8..7ef5b69b4b7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityConnection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityConnection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
@@ -790,14 +790,14 @@ namespace System.Data.EntityClient
protected override void Dispose(bool disposing)
{
// It is possible for the EntityConnection to be finalized even if the object was not actually
- // created due to a "won't fix" bug in the x86 JITer--see Dev10 bug 892884.
- // Even without this bug, a stack overflow trying to allocate space to run the constructor can
- // result in effectively the same situation. This means we can end up finalizing objects that
- // have not even been fully initialized. In order for this to work we have to be very careful
- // what we do in Dispose and we need to stick rigidly to the "only dispose unmanaged resources
- // if disposing is false" rule. We don't actually have any unmanaged resources--these are
- // handled by the base class or other managed classes that we have references to. These classes
- // will dispose of their unmanaged resources on finalize, so we shouldn't try to do it here.
+ // created due to a "won't fix"
+
+
+
+
+
+
+
if (disposing)
{
ClearTransactions();
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityConnectionStringBuilder.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityConnectionStringBuilder.cs
index 22ba703d396..f6061e4879d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityConnectionStringBuilder.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityConnectionStringBuilder.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityClient
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityDataReader.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityDataReader.cs
index f79b0546cf7..14b88c927f2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityDataReader.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityDataReader.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityClient
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityParameter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityParameter.cs
index 17c7aa10513..33fd948217e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityParameter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityParameter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityClient
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityParameterCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityParameterCollection.cs
index 8303a917246..72b8c1bc9f2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityParameterCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityParameterCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityProviderFactory.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityProviderFactory.cs
index f633d9b29d9..5687ab06d48 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityProviderFactory.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityProviderFactory.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityProviderServices.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityProviderServices.cs
index aa7b9d3a396..579cf6ba8bf 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityProviderServices.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityProviderServices.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
namespace System.Data.EntityClient {
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityTransaction.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityTransaction.cs
index 69c5466918e..ffaeda4db37 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityTransaction.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/EntityTransaction.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Text;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/NameValuePair.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/NameValuePair.cs
index 19ec74327d7..3d548d1059b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/NameValuePair.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityClient/NameValuePair.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
namespace System.Data.EntityClient
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityCommandCompilationException.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityCommandCompilationException.cs
index 6f88b770024..0975cf1d46b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityCommandCompilationException.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityCommandCompilationException.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityCommandExecutionException.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityCommandExecutionException.cs
index b464bf4d1d8..db9a7c62e02 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityCommandExecutionException.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityCommandExecutionException.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityException.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityException.cs
index 4060610bb93..84fd61e5c54 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityException.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityException.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityKey.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityKey.cs
index 249249a77c8..84c60eb7e87 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityKey.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityKey.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Action.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Action.cs
index 230ece95755..5c7f8f4215e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Action.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Action.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner anpete
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/BooleanFacetDescriptionElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/BooleanFacetDescriptionElement.cs
index 99ee5aa7289..f48665f8b5a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/BooleanFacetDescriptionElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/BooleanFacetDescriptionElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ByteFacetDescriptionElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ByteFacetDescriptionElement.cs
index 8beec13112b..f9a3f58dc7b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ByteFacetDescriptionElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ByteFacetDescriptionElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/CollectionKind.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/CollectionKind.cs
index 3030d0ee31f..6270d903741 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/CollectionKind.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/CollectionKind.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner anpete
//---------------------------------------------------------------------
using System;
@@ -32,4 +32,4 @@ namespace System.Data.Metadata.Edm
/// </summary>
List,
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/CollectionTypeElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/CollectionTypeElement.cs
index 987631ed9e9..e59c739447d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/CollectionTypeElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/CollectionTypeElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ConcurrencyMode.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ConcurrencyMode.cs
index 7b105d980f2..86037f15956 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ConcurrencyMode.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ConcurrencyMode.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner anpete
//---------------------------------------------------------------------
using System;
@@ -28,4 +28,4 @@ namespace System.Data.Metadata.Edm
/// </summary>
Fixed,
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Documentation.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Documentation.cs
index 855c7b9ab32..6edbe3939c2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Documentation.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Documentation.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainer.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainer.cs
index 89d93ac8f85..1fd96226030 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainer.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerAssociationSet.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerAssociationSet.cs
index d3bf53f969f..1123c77d653 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerAssociationSet.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerAssociationSet.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerAssociationSetEnd.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerAssociationSetEnd.cs
index 9c1aa9ee3c8..94a82e4a503 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerAssociationSetEnd.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerAssociationSetEnd.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerEntitySet.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerEntitySet.cs
index 84f1077ffea..058927b46f9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerEntitySet.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerEntitySet.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerEntitySetDefiningQuery.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerEntitySetDefiningQuery.cs
index e28c9e24530..a8e156eb9d4 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerEntitySetDefiningQuery.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerEntitySetDefiningQuery.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerRelationshipSet.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerRelationshipSet.cs
index 1a97aa2eb36..ffd2c2f21c4 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerRelationshipSet.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerRelationshipSet.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
@@ -131,21 +131,21 @@ namespace System.Data.EntityModel.SchemaObjectModel
// Enabling Association between subtypes in case of Referential Constraints, since
// CSD is blocked on this. We need to make a long term call about whether we should
- // really allow this. Bug #520216
- //foreach (ReferentialConstraint constraint in Relationship.Constraints)
- //{
- // IRelationshipEnd dependentEnd = constraint.DependentRole.End;
- // EntityContainerRelationshipSetEnd setEnd = GetEnd(dependentEnd.Name);
- // Debug.Assert(setEnd != null);
- // //Make sure that the EntityType of the dependant role in a referential constraint
- // //covers the whole EntitySet( i.e. not a subtype of the EntitySet's type).
- // if (!setEnd.EntitySet.EntityType.IsOfType(constraint.DependentRole.End.Type))
- // {
- // AddError(ErrorCode.InvalidDependentRoleType, EdmSchemaErrorSeverity.Error,
- // System.Data.Entity.Strings.InvalidDependentRoleType(dependentEnd.Type.FQName, dependentEnd.Name,
- // dependentEnd.Parent.FQName, setEnd.EntitySet.Name, setEnd.ParentElement.Name));
- // }
- //}
+ // really allow this.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
// Validate Number of ends is correct
// What we know:
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerRelationshipSetEnd.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerRelationshipSetEnd.cs
index 1d1ece88367..05d03efff65 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerRelationshipSetEnd.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityContainerRelationshipSetEnd.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityKeyElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityKeyElement.cs
index 07445c95132..2126b2a9cc7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityKeyElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/EntityKeyElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ErrorCode.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ErrorCode.cs
index 55ae02646c7..fce08453375 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ErrorCode.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ErrorCode.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner anpete
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FacetDescriptionElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FacetDescriptionElement.cs
index 49f2b7a865f..eb40d3dc23c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FacetDescriptionElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FacetDescriptionElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FacetEnabledSchemaElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FacetEnabledSchemaElement.cs
index fc032324166..bb05b4a3e0b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FacetEnabledSchemaElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FacetEnabledSchemaElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FilteredSchemaElementLookUpTable.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FilteredSchemaElementLookUpTable.cs
index 1f831a311b6..3e5c9917d77 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FilteredSchemaElementLookUpTable.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FilteredSchemaElementLookUpTable.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Function.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Function.cs
index 30a10dceeb1..a037456cdcb 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Function.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Function.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FunctionCommandText.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FunctionCommandText.cs
index 2ce12d5387d..de1322b8ec1 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FunctionCommandText.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FunctionCommandText.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FunctionImportElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FunctionImportElement.cs
index 9839bdd1fc1..a1847012ca8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FunctionImportElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/FunctionImportElement.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/IRelationship.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/IRelationship.cs
index db2095deb07..e14bc8e22d5 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/IRelationship.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/IRelationship.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner anpete
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/IRelationshipEnd.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/IRelationshipEnd.cs
index bc056a1976e..0180760cc88 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/IRelationshipEnd.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/IRelationshipEnd.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner anpete
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ISchemaElementLookUpTable.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ISchemaElementLookUpTable.cs
index e389d862e31..e1e51583732 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ISchemaElementLookUpTable.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ISchemaElementLookUpTable.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner anpete
//---------------------------------------------------------------------
using System;
@@ -50,4 +50,4 @@ namespace System.Data.EntityModel.SchemaObjectModel
T LookUpEquivalentKey(string key);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/IntegerFacetDescriptionElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/IntegerFacetDescriptionElement.cs
index 8e5edae4bc9..1e2c8644b09 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/IntegerFacetDescriptionElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/IntegerFacetDescriptionElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ItemType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ItemType.cs
index 3a5149eef52..47d691af50e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ItemType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ItemType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/KeyProperty.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/KeyProperty.cs
index bc0940010fb..7f79e877484 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/KeyProperty.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/KeyProperty.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ModelFunction.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ModelFunction.cs
index a44097e954b..1b62350a0c2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ModelFunction.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ModelFunction.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ModelFunctionTypeElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ModelFunctionTypeElement.cs
index 97449e9f05a..89348cb9374 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ModelFunctionTypeElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ModelFunctionTypeElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/NavigationProperty.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/NavigationProperty.cs
index 3909de58609..796497f2851 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/NavigationProperty.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/NavigationProperty.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/OnOperation.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/OnOperation.cs
index 53f19784b37..b1dbc31b21c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/OnOperation.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/OnOperation.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Operation.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Operation.cs
index b9ad73bb638..9e557b97d39 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Operation.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Operation.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner anpete
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Parameter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Parameter.cs
index 87bb5caf5f7..b290e9a7402 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Parameter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Parameter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/PrimitiveSchema.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/PrimitiveSchema.cs
index 6a7c4c12102..bda27b31eba 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/PrimitiveSchema.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/PrimitiveSchema.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Property.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Property.cs
index 20550a805f4..54e40080652 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Property.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Property.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferenceSchema.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferenceSchema.cs
index d55c26c74d8..5965358fd4f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferenceSchema.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferenceSchema.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferenceTypeElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferenceTypeElement.cs
index 38d5da73bf7..40e555cfcdf 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferenceTypeElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferenceTypeElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferentialConstraint.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferentialConstraint.cs
index 64ac3051caa..66d00ca22a4 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferentialConstraint.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferentialConstraint.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferentialConstraintRoleElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferentialConstraintRoleElement.cs
index d3634f435d6..f6ed7efc20a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferentialConstraintRoleElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReferentialConstraintRoleElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Relationship.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Relationship.cs
index b8c9f47ad89..5091d573a39 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Relationship.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Relationship.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RelationshipEnd.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RelationshipEnd.cs
index fb1f5f1cf97..e1806d8a657 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RelationshipEnd.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RelationshipEnd.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RelationshipEndCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RelationshipEndCollection.cs
index e9ec6b5660e..15314c5f434 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RelationshipEndCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RelationshipEndCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReturnType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReturnType.cs
index 0a04f994fff..fd81011ad40 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReturnType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReturnType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReturnValue.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReturnValue.cs
index 7ac9a584e35..07c82622a4b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReturnValue.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ReturnValue.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RowTypeElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RowTypeElement.cs
index 99783ac47fb..b7742c27699 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RowTypeElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RowTypeElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RowTypePropertyElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RowTypePropertyElement.cs
index e17b0b9f0e6..cdbd4108a22 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RowTypePropertyElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/RowTypePropertyElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ScalarType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ScalarType.cs
index 7e2f1be5383..16d543e005b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ScalarType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ScalarType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Schema.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Schema.cs
index a0388683aac..d0a9e7794e7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Schema.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Schema.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
@@ -540,13 +540,13 @@ namespace System.Data.EntityModel.SchemaObjectModel
}
}
- // ISSUE: jthunter-03/14/05 - The [....] "schemas" don't follow the ".Store" assembly
+ // ISSUE: jthunter-03/14/05 - The Sync "schemas" don't follow the ".Store" assembly
// naming convention but need to have the right StoreNamespace reported.
//
private static readonly string[] ClientNamespaceOfSchemasMissingStoreSuffix =
{
- "System.Storage.[....].Utility",
- "System.Storage.[....].Services"
+ "System.Storage.Sync.Utility",
+ "System.Storage.Sync.Services"
};
/// <summary>
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaComplexType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaComplexType.cs
index 1c4aa5f7a37..2a768a1cb4e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaComplexType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaComplexType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaDataModelOption.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaDataModelOption.cs
index c11dab17e80..16065ee9e32 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaDataModelOption.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaDataModelOption.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner anpete
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaElement.cs
index eed8906e8fd..79be13fdd4f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaElementLookUpTable.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaElementLookUpTable.cs
index 044bb35f30b..25bb4f749ba 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaElementLookUpTable.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaElementLookUpTable.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaElementLookUpTableEnumerator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaElementLookUpTableEnumerator.cs
index 428a071ab5b..fdcacf10dda 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaElementLookUpTableEnumerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaElementLookUpTableEnumerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaEnumMember.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaEnumMember.cs
index 6e680d0b7ed..ad6c82d1e56 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaEnumMember.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaEnumMember.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Metadata.Edm;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaEnumType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaEnumType.cs
index 9c3b3153bf4..073088e111f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaEnumType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaEnumType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaLookupTable.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaLookupTable.cs
index 3b550b8e67c..e6ea1117a1c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaLookupTable.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaLookupTable.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaManager.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaManager.cs
index fbb7a3ae91f..1afb48b5dc6 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaManager.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaManager.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaType.cs
index 5e830ffb92f..f20a2965197 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SchemaType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SridFacetDescriptionElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SridFacetDescriptionElement.cs
index 23f186522b9..09196b79ed8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SridFacetDescriptionElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/SridFacetDescriptionElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/StoreGeneratedPattern.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/StoreGeneratedPattern.cs
index 9638cf4f8ab..76b9584ec6a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/StoreGeneratedPattern.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/StoreGeneratedPattern.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner anpete
//---------------------------------------------------------------------
using System;
@@ -31,4 +31,4 @@ namespace System.Data.Metadata.Edm
/// </summary>
Computed = 2,
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/StructuredProperty.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/StructuredProperty.cs
index fb95425bf7a..20c9da2701c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/StructuredProperty.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/StructuredProperty.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/StructuredType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/StructuredType.cs
index c95e93da89e..887d8266891 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/StructuredType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/StructuredType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TextElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TextElement.cs
index 87637e60599..914cb26e5a6 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TextElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TextElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeElement.cs
index 36d8b5c773b..d0f548aef8b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeModifier.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeModifier.cs
index 65ff5b4b6cb..451cef49c82 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeModifier.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeModifier.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner anpete
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeRefElement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeRefElement.cs
index 12e7e50dd5a..29ca6faa028 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeRefElement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeRefElement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeUsageBuilder.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeUsageBuilder.cs
index 6db83bb2cfd..62786cbaa9d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeUsageBuilder.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/TypeUsageBuilder.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Utils.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Utils.cs
index 61003c00172..dd342543448 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Utils.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/Utils.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.EntityModel.SchemaObjectModel
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ValidationHelper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ValidationHelper.cs
index 1095504e147..a9ea0c73140 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ValidationHelper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/ValidationHelper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/XmlSchemaResource.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/XmlSchemaResource.cs
index eb3f3763f0c..151fed0e617 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/XmlSchemaResource.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityModel/SchemaObjectModel/XmlSchemaResource.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Diagnostics;
using System.Data.Mapping;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntitySqlException.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntitySqlException.cs
index d9a0c3b2469..006f095191c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntitySqlException.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntitySqlException.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityState.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityState.cs
index efd8e087055..19de7695e94 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/EntityState.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/EntityState.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner fzamore
+// @backupOwner dsimmons
//---------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/IEntityAdapter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/IEntityAdapter.cs
index a70a65c82d4..5986e7f3c31 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/IEntityAdapter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/IEntityAdapter.cs
@@ -2,7 +2,7 @@
// <copyright file="IEntityAdapter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">bfung</owner>
// <owner current="true" primary="false">spather</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/IEntityStateEntry.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/IEntityStateEntry.cs
index eb8fc00c236..3c5f65b98d1 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/IEntityStateEntry.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/IEntityStateEntry.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner dsimmons
+// @backupOwner amirhmy
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/IEntityStateManager.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/IEntityStateManager.cs
index 84a827fc4be..b042a5e9a7a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/IEntityStateManager.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/IEntityStateManager.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner dsimmons
+// @backupOwner amirhmy
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/IExtendedDataRecord.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/IExtendedDataRecord.cs
index 4740870683a..448c8e1a6d3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/IExtendedDataRecord.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/IExtendedDataRecord.cs
@@ -2,8 +2,8 @@
// <copyright file="IExtendedDataRecord.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">sheetgu</owner>
+// <owner current="true" primary="false">simoncav</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -32,4 +32,4 @@ namespace System.Data {
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "i")]
DbDataReader GetDataReader(int i);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/InternalMappingException.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/InternalMappingException.cs
index 0626e41a033..22f12f72ea9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/InternalMappingException.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/InternalMappingException.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/InvalidCommandTreeException.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/InvalidCommandTreeException.cs
index 42e6cf01a1c..c078834631a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/InvalidCommandTreeException.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/InvalidCommandTreeException.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/BaseMetadataMappingVisitor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/BaseMetadataMappingVisitor.cs
index 44b985c6c3c..52c82e3c702 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/BaseMetadataMappingVisitor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/BaseMetadataMappingVisitor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/DefaultObjectMappingItemCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/DefaultObjectMappingItemCollection.cs
index cc0286ea664..e57eacff796 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/DefaultObjectMappingItemCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/DefaultObjectMappingItemCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping {
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/EntityViewContainer.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/EntityViewContainer.cs
index 080a4486d7d..5d4e87e276e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/EntityViewContainer.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/EntityViewContainer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/EntityViewGenerationAttribute.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/EntityViewGenerationAttribute.cs
index d6caaa76c35..5e6c8a3f8de 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/EntityViewGenerationAttribute.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/EntityViewGenerationAttribute.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMapping.ReturnTypeRenameMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMapping.ReturnTypeRenameMapping.cs
index 1b9cf0e5d67..18bffc41dc0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMapping.ReturnTypeRenameMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMapping.ReturnTypeRenameMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMapping.cs
index 610975820e8..6c3a297b64a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMapping.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
// @backupOwner willa
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMappingComposable.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMappingComposable.cs
index f0507d2946f..7e278377ff9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMappingComposable.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMappingComposable.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
// @backupOwner willa
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMappingNonComposable.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMappingNonComposable.cs
index 88677a82ae6..a2c85076ab9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMappingNonComposable.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/FunctionImportMappingNonComposable.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
// @backupOwner willa
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Mapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Mapping.cs
index 17f4c59dce0..b6d419b7b52 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Mapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Mapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Metadata.Edm;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/MappingItemCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/MappingItemCollection.cs
index c03c1cd57f2..aa74a7c7e7b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/MappingItemCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/MappingItemCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/MetadataMappingHasherVisitor.HashSourceBuilder.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/MetadataMappingHasherVisitor.HashSourceBuilder.cs
index d6f03a94a15..6a9f710c2ae 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/MetadataMappingHasherVisitor.HashSourceBuilder.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/MetadataMappingHasherVisitor.HashSourceBuilder.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/MetadataMappingHasherVisitor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/MetadataMappingHasherVisitor.cs
index 864c5b5084d..bd42445d12b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/MetadataMappingHasherVisitor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/MetadataMappingHasherVisitor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectAssociationEndMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectAssociationEndMapping.cs
index 1500adf78f3..694846f4987 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectAssociationEndMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectAssociationEndMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectComplexPropertyMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectComplexPropertyMapping.cs
index fd72adf2af8..a2f034b38de 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectComplexPropertyMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectComplexPropertyMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectMemberMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectMemberMapping.cs
index c6e1ac21542..02bb198649e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectMemberMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectMemberMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectMslConstructs.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectMslConstructs.cs
index a7452f5c72d..683d97f94b5 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectMslConstructs.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectMslConstructs.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner leil
+// @backupOwner anpete
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectNavigationPropertyMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectNavigationPropertyMapping.cs
index f77723f4c9c..09b9789d7de 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectNavigationPropertyMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectNavigationPropertyMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectPropertyMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectPropertyMapping.cs
index c0a9472f995..61ff5df9971 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectPropertyMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectPropertyMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectTypeMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectTypeMapping.cs
index ebe68f678d3..c0f7e7e40e7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectTypeMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ObjectTypeMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping {
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageAssociationSetMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageAssociationSetMapping.cs
index 577d30411bf..f2a4f7f28c7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageAssociationSetMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageAssociationSetMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageAssociationTypeMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageAssociationTypeMapping.cs
index 391865cf6ac..8ef29bd37f3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageAssociationTypeMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageAssociationTypeMapping.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....], [....]
+// @owner Microsoft, Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageComplexPropertyMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageComplexPropertyMapping.cs
index bcc504de838..afa203d1820 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageComplexPropertyMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageComplexPropertyMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageComplexTypeMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageComplexTypeMapping.cs
index a8fe6a6109d..cefcdbf047a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageComplexTypeMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageComplexTypeMapping.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....], [....]
+// @owner Microsoft, Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageConditionPropertyMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageConditionPropertyMapping.cs
index d0ee0d38d05..5bdf08056e5 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageConditionPropertyMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageConditionPropertyMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEndPropertyMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEndPropertyMapping.cs
index a9481990ec9..b9e1f19bca0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEndPropertyMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEndPropertyMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEntityContainerMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEntityContainerMapping.cs
index 65b8286e3c6..79082acd442 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEntityContainerMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEntityContainerMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEntitySetMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEntitySetMapping.cs
index 59d2e3812c3..c96d6f796f9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEntitySetMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEntitySetMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEntityTypeMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEntityTypeMapping.cs
index 41575121e4e..6ed006dca51 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEntityTypeMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageEntityTypeMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingErrorCode.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingErrorCode.cs
index e4cdc26392d..2dead04e0a9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingErrorCode.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingErrorCode.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner leil
+// @backupOwner anpete
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingFragment.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingFragment.cs
index faa501be935..6c5a11d38b9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingFragment.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingFragment.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingItemCollection.ViewDictionary.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingItemCollection.ViewDictionary.cs
index c7a1eb015d3..dcdbffffe33 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingItemCollection.ViewDictionary.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingItemCollection.ViewDictionary.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingItemCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingItemCollection.cs
index 3bb5addcabe..5dc0385243b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingItemCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingItemCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Concurrent;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingItemLoader.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingItemLoader.cs
index e065c9ab993..2c808ecf2f7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingItemLoader.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMappingItemLoader.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageModificationFunctionMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageModificationFunctionMapping.cs
index 50e659c6bfa..32eb36cb785 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageModificationFunctionMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageModificationFunctionMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMslConstructs.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMslConstructs.cs
index 0c0b16806d5..3ada1ef7f12 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMslConstructs.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageMslConstructs.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner leil
+// @backupOwner anpete
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StoragePropertyMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StoragePropertyMapping.cs
index 455de50204d..b428ed32e4e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StoragePropertyMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StoragePropertyMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageScalarPropertyMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageScalarPropertyMapping.cs
index 84ed3c3e316..16b34ed9a5b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageScalarPropertyMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageScalarPropertyMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageSetMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageSetMapping.cs
index d281639e816..4da03bddad0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageSetMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageSetMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageTypeMapping.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageTypeMapping.cs
index 8d379b49851..b5f07a835d5 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageTypeMapping.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/StorageTypeMapping.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/AssociationSetMetadata.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/AssociationSetMetadata.cs
index a3936e775ad..5037b183ad4 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/AssociationSetMetadata.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/AssociationSetMetadata.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Metadata.Edm;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ChangeNode.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ChangeNode.cs
index 0008c3ea0d6..1eabff48fc8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ChangeNode.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ChangeNode.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Metadata.Edm;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/CompositeKey.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/CompositeKey.cs
index bb2195d49e9..b44dafdadae 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/CompositeKey.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/CompositeKey.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.Utils;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/DynamicUpdateCommand.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/DynamicUpdateCommand.cs
index 0318d986854..3e46e43dd30 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/DynamicUpdateCommand.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/DynamicUpdateCommand.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ExtractedStateEntry.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ExtractedStateEntry.cs
index 82a4dd8e5b1..aeac41b95be 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ExtractedStateEntry.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ExtractedStateEntry.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ExtractorMetadata.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ExtractorMetadata.cs
index 5f4cc16d35d..9f7c9321943 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ExtractorMetadata.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ExtractorMetadata.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.Update.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/FunctionMappingTranslator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/FunctionMappingTranslator.cs
index 5b4e5b7ad3d..bb15c28fb9a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/FunctionMappingTranslator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/FunctionMappingTranslator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.Update.Internal
@@ -110,7 +110,7 @@ namespace System.Data.Mapping.Update.Internal
if (stateEntries.All(e => e.State == EntityState.Unchanged))
{
// we shouldn't update the entity if it is unchanged, only update when referenced association is changed.
- // if not, then this will trigger a fake update for principal end as describe in bug 894569.
+ // if not, then this will trigger a fake update for principal end as describe in
command = null;
}
else
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/FunctionUpdateCommand.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/FunctionUpdateCommand.cs
index 8f5b8ae908a..a735b2cba46 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/FunctionUpdateCommand.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/FunctionUpdateCommand.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.Update.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Graph.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Graph.cs
index 72db96c3fdd..984fdc72751 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Graph.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Graph.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.Utils;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/KeyManager.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/KeyManager.cs
index 3027ad55fb0..c742f977e9f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/KeyManager.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/KeyManager.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.Evaluator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.Evaluator.cs
index eb4d369acfb..0e43c6cadaa 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.Evaluator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.Evaluator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.Update.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.ExtentPlaceholderCreator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.ExtentPlaceholderCreator.cs
index 578920ab53f..a45bf47ee0a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.ExtentPlaceholderCreator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.ExtentPlaceholderCreator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.Update.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.JoinPropagator.JoinPredicateVisitor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.JoinPropagator.JoinPredicateVisitor.cs
index 48daf01bcb7..c8845f55599 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.JoinPropagator.JoinPredicateVisitor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.JoinPropagator.JoinPredicateVisitor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.CommandTrees;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.JoinPropagator.SubstitutingCloneVisitor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.JoinPropagator.SubstitutingCloneVisitor.cs
index cc924cef2a8..f4fa3a2a072 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.JoinPropagator.SubstitutingCloneVisitor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.JoinPropagator.SubstitutingCloneVisitor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.JoinPropagator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.JoinPropagator.cs
index e8af9fc114a..30ad18fab4b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.JoinPropagator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.JoinPropagator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.cs
index 799d01892fc..56ad4f94302 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/Propagator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.Update.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/PropagatorFlags.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/PropagatorFlags.cs
index 1716ee42bdd..733b1160441 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/PropagatorFlags.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/PropagatorFlags.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner cmeek
+// @backupOwner pratikp
//---------------------------------------------------------------------
namespace System.Data.Mapping.Update.Internal
@@ -44,4 +44,4 @@ namespace System.Data.Mapping.Update.Internal
/// </summary>
ForeignKey = 32,
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/PropagatorResult.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/PropagatorResult.cs
index 44b50357633..4cf4b525290 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/PropagatorResult.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/PropagatorResult.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Metadata.Edm;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/RecordConverter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/RecordConverter.cs
index 81ff164b67e..e6dfbe7aefb 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/RecordConverter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/RecordConverter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.Update.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/RelationshipConstraintValidator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/RelationshipConstraintValidator.cs
index e1e72226d4a..aa5e72d1dde 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/RelationshipConstraintValidator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/RelationshipConstraintValidator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.Update.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/SourceInterpreter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/SourceInterpreter.cs
index 9718ca9fef0..245956fb066 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/SourceInterpreter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/SourceInterpreter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/TableChangeProcessor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/TableChangeProcessor.cs
index 4567d472cb5..3acae097f5c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/TableChangeProcessor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/TableChangeProcessor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.Update.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UndirectedGraph.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UndirectedGraph.cs
index 055dcffd42b..0d0e4713385 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UndirectedGraph.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UndirectedGraph.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.Utils;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateCommand.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateCommand.cs
index 2aa865a3b22..4de147195c1 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateCommand.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateCommand.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Metadata.Edm;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateCommandOrderer.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateCommandOrderer.cs
index 00104653455..79ed22c377a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateCommandOrderer.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateCommandOrderer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.Update.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateCompiler.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateCompiler.cs
index 97eb4d5b00d..925fd2017d8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateCompiler.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateCompiler.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
// For the purposes of the update compiler, the member name fully describes the member
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateExpressionVisitor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateExpressionVisitor.cs
index f5643a33bf3..9260ac82643 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateExpressionVisitor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateExpressionVisitor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.Update.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateTranslator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateTranslator.cs
index ca37def4e4d..73d15d4f5b8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateTranslator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/UpdateTranslator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ViewLoader.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ViewLoader.cs
index 98564d69de3..487d6c24da4 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ViewLoader.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/Update/Internal/ViewLoader.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.CommandTrees;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/BasicViewGenerator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/BasicViewGenerator.cs
index 180d906b6c0..e623485215b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/BasicViewGenerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/BasicViewGenerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.ViewGeneration
@@ -131,7 +131,7 @@ namespace System.Data.Mapping.ViewGeneration
foreach (LeafCellTreeNode childNode in rootNode.Children)
{
// A cell may contain P, P.PA -- we return P
- // CHANGE_[....]_FEATURE_COMPOSITION Need to fix for composition!!
+ // CHANGE_Microsoft_FEATURE_COMPOSITION Need to fix for composition!!
EntitySetBase extent = childNode.LeftCellWrapper.RightCellQuery.Extent; // relation or extent to group by
Debug.Assert(extent != null, "Each cell must have a right extent");
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CellCreator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CellCreator.cs
index c046b6313be..e58f58fd666 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CellCreator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CellCreator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.Utils;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CellPartitioner.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CellPartitioner.cs
index 5d0c913eeb7..e4e322dc8fa 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CellPartitioner.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CellPartitioner.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CellTreeSimplifier.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CellTreeSimplifier.cs
index 38b12707c68..a842a88a7bf 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CellTreeSimplifier.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CellTreeSimplifier.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.Utils;
@@ -277,7 +277,7 @@ namespace System.Data.Mapping.ViewGeneration
}
// effects: Given a list of node, produces a new list in which all
// leaf nodes of the same extent are adjacent to each other. Non-leaf
- // nodes are also adjacent to each other. CHANGE_[....]_IMPROVE: Merge with GroupByRightExtent
+ // nodes are also adjacent to each other. CHANGE_Microsoft_IMPROVE: Merge with GroupByRightExtent
private static List<CellTreeNode> GroupLeafChildrenByExtent(List<CellTreeNode> nodes)
{
// Keep track of leaf cells for each extent
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ConfigViewGenerator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ConfigViewGenerator.cs
index 47c59a98a64..f771247ae0e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ConfigViewGenerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ConfigViewGenerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.Utils;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/AliasedSlot.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/AliasedSlot.cs
index 6bb05a2b699..499b17c2622 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/AliasedSlot.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/AliasedSlot.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Linq;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/BooleanProjectedSlot.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/BooleanProjectedSlot.cs
index 79a030bafca..113e28387d8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/BooleanProjectedSlot.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/BooleanProjectedSlot.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Mapping.ViewGeneration.Structures;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CaseCqlBlock.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CaseCqlBlock.cs
index 950e3e963b5..e8ba88d0a35 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CaseCqlBlock.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CaseCqlBlock.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Mapping.ViewGeneration.Structures;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CqlBlock.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CqlBlock.cs
index 98164a94b99..7c4eba699f1 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CqlBlock.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CqlBlock.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Linq;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CqlIdentifiers.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CqlIdentifiers.cs
index 9c7734fb805..c4db94301f8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CqlIdentifiers.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CqlIdentifiers.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CqlWriter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CqlWriter.cs
index 81fc0288469..429ed1b1fca 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CqlWriter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/CqlWriter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Text.RegularExpressions;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/ExtentCqlBlock.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/ExtentCqlBlock.cs
index f85ee235972..c4a67914078 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/ExtentCqlBlock.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/ExtentCqlBlock.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Text;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/JoinCqlBlock.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/JoinCqlBlock.cs
index 45c0a5f078f..408f2a90b15 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/JoinCqlBlock.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/JoinCqlBlock.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.CommandTrees;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/SlotInfo.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/SlotInfo.cs
index eb2afc5c045..3d33ff07f6b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/SlotInfo.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/SlotInfo.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.CommandTrees;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/UnionCqlBlock.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/UnionCqlBlock.cs
index 2c7b8c23f0c..95dffb4d6d2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/UnionCqlBlock.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGeneration/UnionCqlBlock.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGenerator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGenerator.cs
index 00988416f9e..37005f747e9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGenerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/CqlGenerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/DiscriminatorMap.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/DiscriminatorMap.cs
index 0c7848e3f5c..5abadcbd1ca 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/DiscriminatorMap.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/DiscriminatorMap.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.CommandTrees;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/GeneratedView.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/GeneratedView.cs
index 3c2c331ced4..bec352a06e0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/GeneratedView.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/GeneratedView.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.ViewGeneration
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/FragmentQuery.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/FragmentQuery.cs
index 934e2018a15..6c94e503845 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/FragmentQuery.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/FragmentQuery.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/FragmentQueryKB.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/FragmentQueryKB.cs
index cffda30fdaf..ae6ec412009 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/FragmentQueryKB.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/FragmentQueryKB.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/FragmentQueryProcessor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/FragmentQueryProcessor.cs
index 01754ba8ca3..f13c6dc4798 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/FragmentQueryProcessor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/FragmentQueryProcessor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/QueryRewriter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/QueryRewriter.cs
index d209d9f8086..60fc38179a9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/QueryRewriter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/QueryRewriter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.ViewGeneration.QueryRewriting
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingPass.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingPass.cs
index 860db188a7b..ae9abeb5c8f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingPass.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingPass.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingProcessor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingProcessor.cs
index df892676b9c..41c4e1dd90b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingProcessor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingProcessor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingSimplifier.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingSimplifier.cs
index 55d91edbd42..4a28e458c96 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingSimplifier.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingSimplifier.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingValidator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingValidator.cs
index 4f1d21f57c7..588dfe0f4d2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingValidator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RewritingValidator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.ViewGeneration.Validation
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RoleBoolean.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RoleBoolean.cs
index 8a1ae2c20ed..2f944c42fd3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RoleBoolean.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/RoleBoolean.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.ViewGeneration.Structures
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/Tile.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/Tile.cs
index 8d490f590c4..c949b568161 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/Tile.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/QueryRewriting/Tile.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/BoolExpression.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/BoolExpression.cs
index c44639280ba..3fd29a627d6 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/BoolExpression.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/BoolExpression.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
@@ -366,7 +366,7 @@ namespace System.Data.Mapping.ViewGeneration.Structures
// effects: Given a list of bools, returns a list of boolean expressions where each
// boolean in bools has been ANDed with conjunct
- // CHANGE_[....]_IMPROVE: replace with lambda pattern
+ // CHANGE_Microsoft_IMPROVE: replace with lambda pattern
internal static List<BoolExpression> AddConjunctionToBools(List<BoolExpression> bools,
BoolExpression conjunct)
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/BoolExpressionVisitors.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/BoolExpressionVisitors.cs
index fc4c1968033..ade70afbb46 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/BoolExpressionVisitors.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/BoolExpressionVisitors.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/BoolLiteral.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/BoolLiteral.cs
index babeaa62fd9..64fdf537271 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/BoolLiteral.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/BoolLiteral.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.CommandTrees;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CaseStatement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CaseStatement.cs
index 1c12511787b..6e6e4d40d28 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CaseStatement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CaseStatement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.CommandTrees;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CaseStatementProjectedSlot.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CaseStatementProjectedSlot.cs
index ee74e3a1b5a..8cdc34aed52 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CaseStatementProjectedSlot.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CaseStatementProjectedSlot.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Mapping.ViewGeneration.CqlGeneration;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/Cell.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/Cell.cs
index 8fa4646bffc..d7bc3432204 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/Cell.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/Cell.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.Utils;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellIdBoolean.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellIdBoolean.cs
index 251f86b8e6c..97740718c4b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellIdBoolean.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellIdBoolean.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.ViewGeneration.Structures
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellLabel.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellLabel.cs
index 4cc45bfd87a..bf02ac8aaaa 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellLabel.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellLabel.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellQuery.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellQuery.cs
index 43f8b68149a..3ed84c6123b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellQuery.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellQuery.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellTreeNode.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellTreeNode.cs
index 6bce7b75eec..ecb925ac2aa 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellTreeNode.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellTreeNode.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.ViewGeneration.Structures
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellTreeNodeVisitors.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellTreeNodeVisitors.cs
index 2c78985a09d..351a941659e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellTreeNodeVisitors.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellTreeNodeVisitors.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellTreeOpType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellTreeOpType.cs
index a59be2ad954..d30ab4d6b3e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellTreeOpType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/CellTreeOpType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner srimand
+// @backupOwner cmeek
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/Constant.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/Constant.cs
index a77b8a4ab8a..c90fbb6688a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/Constant.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/Constant.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.ViewGeneration.Structures
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ConstantProjectedSlot.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ConstantProjectedSlot.cs
index 93a14b96481..4c9c27cbdd5 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ConstantProjectedSlot.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ConstantProjectedSlot.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Mapping.ViewGeneration.CqlGeneration;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/Domain.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/Domain.cs
index 244c548fcda..57b4f8fab6d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/Domain.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/Domain.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
@@ -177,7 +177,7 @@ namespace System.Data.Mapping.ViewGeneration.Structures
// effect: returns the default value for the member
// if the member is nullable and has no default, changes default value to CellConstant.NULL and returns true
// if the mebmer is not nullable and has no default, returns false
- // CHANGE_[....]_FEATURE_DEFAULT_VALUES: return the right default once metadata supports it
+ // CHANGE_Microsoft_FEATURE_DEFAULT_VALUES: return the right default once metadata supports it
internal static bool TryGetDefaultValueForMemberPath(MemberPath memberPath, out Constant defaultConstant)
{
object defaultValue = memberPath.DefaultValue;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ErrorLog.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ErrorLog.cs
index 6b312d1eee2..ba65fe75cdb 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ErrorLog.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ErrorLog.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.ViewGeneration.Structures
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/LeafCellTreeNode.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/LeafCellTreeNode.cs
index bf49103be6a..5b37f45fcd3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/LeafCellTreeNode.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/LeafCellTreeNode.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/LeftCellWrapper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/LeftCellWrapper.cs
index 66778f77413..a67833981cb 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/LeftCellWrapper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/LeftCellWrapper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberDomainMap.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberDomainMap.cs
index 83dbe8c0051..47e31c66e03 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberDomainMap.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberDomainMap.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.ViewGeneration.Structures
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberMaps.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberMaps.cs
index 3fed309b1e0..5ecce1d3129 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberMaps.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberMaps.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberPath.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberPath.cs
index ad0dff46855..ba48a1389b0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberPath.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberPath.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberProjectedSlot.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberProjectedSlot.cs
index a58b3771257..b17ce971f8a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberProjectedSlot.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberProjectedSlot.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberProjectionIndex.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberProjectionIndex.cs
index b508995fe82..d36c26c239b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberProjectionIndex.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberProjectionIndex.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberRestriction.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberRestriction.cs
index 797e1e67553..fc63a292611 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberRestriction.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/MemberRestriction.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/NegatedConstant.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/NegatedConstant.cs
index fa8f05cfa42..9c671fe6b49 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/NegatedConstant.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/NegatedConstant.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.ViewGeneration.Structures
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/OpCellTreeNode.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/OpCellTreeNode.cs
index 362e9ff8444..231b1563cb2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/OpCellTreeNode.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/OpCellTreeNode.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ProjectedSlot.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ProjectedSlot.cs
index 5fda4c615d8..48e2157c280 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ProjectedSlot.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ProjectedSlot.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.ViewGeneration.Structures
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/QualifiedCellIdBoolean.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/QualifiedCellIdBoolean.cs
index b9800cf93c2..8ad476f8713 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/QualifiedCellIdBoolean.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/QualifiedCellIdBoolean.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.CommandTrees;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ScalarConstant.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ScalarConstant.cs
index a7219d6e2e8..dca95d8251a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ScalarConstant.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ScalarConstant.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Text;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ScalarRestriction.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ScalarRestriction.cs
index 722aa09c792..59fa8a68f43 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ScalarRestriction.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/ScalarRestriction.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/TypeConstant.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/TypeConstant.cs
index 6dd961fd257..703f8109623 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/TypeConstant.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/TypeConstant.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Text;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/TypeRestriction.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/TypeRestriction.cs
index c4cb20d7394..a17ef9ea303 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/TypeRestriction.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/TypeRestriction.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.CommandTrees;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/WithStatement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/WithStatement.cs
index d609a2fe78b..2d262cf77be 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/WithStatement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Structures/WithStatement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.CommandTrees;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Utils/ExceptionHelpers.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Utils/ExceptionHelpers.cs
index 8166c317f57..fffdf5ad153 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Utils/ExceptionHelpers.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Utils/ExceptionHelpers.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Text;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Utils/ExternalCalls.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Utils/ExternalCalls.cs
index befe9b356bc..5fb40d8716e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Utils/ExternalCalls.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Utils/ExternalCalls.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Utils/ViewGenErrorCode.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Utils/ViewGenErrorCode.cs
index 894108d4c76..556a1f40ce8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Utils/ViewGenErrorCode.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Utils/ViewGenErrorCode.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner srimand
+// @backupOwner cmeek
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/BasicCellRelation.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/BasicCellRelation.cs
index 36603532697..fbd9c76e843 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/BasicCellRelation.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/BasicCellRelation.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.Bharani1729
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
@@ -88,7 +88,7 @@ namespace System.Data.Mapping.ViewGeneration.Validation
{
AssociationSet relationshipSet = m_cellQuery.Extent as AssociationSet;
// Gather all members of all keys
- // CHANGE_[....]_FEATURE_KEYS: assume that an Entity has exactly one key. Otherwise we
+ // CHANGE_Microsoft_FEATURE_KEYS: assume that an Entity has exactly one key. Otherwise we
// have to take a cross-product of all keys
// Keep track of all the key members for the association in a set
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/BasicKeyConstraint.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/BasicKeyConstraint.cs
index b52c62ee46c..299fe131dae 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/BasicKeyConstraint.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/BasicKeyConstraint.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/CellRelation.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/CellRelation.cs
index 1824b2900aa..ac9c66cb674 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/CellRelation.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/CellRelation.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ConstraintBase.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ConstraintBase.cs
index df7e0e97e4a..b4b27eb6779 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ConstraintBase.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ConstraintBase.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner srimand
+// @backupOwner cmeek
//---------------------------------------------------------------------
using System.Data.Common.Utils;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ErrorPatternMatcher.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ErrorPatternMatcher.cs
index 918b7ff0db8..b57ab576fc8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ErrorPatternMatcher.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ErrorPatternMatcher.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ExtentKey.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ExtentKey.cs
index eceb6063eff..a89bf827153 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ExtentKey.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ExtentKey.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
@@ -49,7 +49,7 @@ namespace System.Data.Mapping.ViewGeneration.Structures
// -- prefix is prepended to the entity's key fields to get the full memberpath
internal static List<ExtentKey> GetKeysForEntityType(MemberPath prefix, EntityType entityType)
{
- // CHANGE_[....]_MULTIPLE_KEYS: currently there is a single key only. Need to support
+ // CHANGE_Microsoft_MULTIPLE_KEYS: currently there is a single key only. Need to support
// keys inside complex types + unique keys
ExtentKey key = GetPrimaryKeyForEntityType(prefix, entityType);
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ForeignConstraint.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ForeignConstraint.cs
index b4cbd320229..28c9c71a945 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ForeignConstraint.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ForeignConstraint.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/KeyConstraint.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/KeyConstraint.cs
index 7de84425340..e9de9dcdb0b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/KeyConstraint.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/KeyConstraint.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.Utils;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/SchemaConstraints.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/SchemaConstraints.cs
index a3eb207a5c3..8e43ff8f0d3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/SchemaConstraints.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/SchemaConstraints.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ViewCellRelation.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ViewCellRelation.cs
index be91192de83..dc4799b9aee 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ViewCellRelation.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ViewCellRelation.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
@@ -62,7 +62,7 @@ namespace System.Data.Mapping.ViewGeneration.Validation
// null if it does not find the slot in the left or right side of the viewrelation
internal ViewCellSlot LookupViewSlot(MemberProjectedSlot slot)
{
- // CHANGE_[....]_IMPROVE: We could have a dictionary to speed this up
+ // CHANGE_Microsoft_IMPROVE: We could have a dictionary to speed this up
foreach (ViewCellSlot viewSlot in m_slots)
{
// If the left or right slots are equal, return the viewSlot
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ViewCellSlot.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ViewCellSlot.cs
index 9b9fe692111..fea993596f7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ViewCellSlot.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ViewCellSlot.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.ViewGeneration.Validation
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ViewKeyConstraint.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ViewKeyConstraint.cs
index 704c122b1b9..a8898c241a3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ViewKeyConstraint.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validation/ViewKeyConstraint.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.ViewGeneration.Validation
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validator.cs
index a8b380e66cb..497a193d435 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/Validator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewGenResults.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewGenResults.cs
index 1061c52a563..a0348faf796 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewGenResults.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewGenResults.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.Utils;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewGenerator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewGenerator.cs
index 8c5618e7a68..96d9d83e985 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewGenerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewGenerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.CommandTrees;
@@ -492,7 +492,7 @@ namespace System.Data.Mapping.ViewGeneration
{
// Partition cells by extent -- extent is the top node in
- // the tree. Even for compositions for now? CHANGE_[....]_FEATURE_COMPOSITION
+ // the tree. Even for compositions for now? CHANGE_Microsoft_FEATURE_COMPOSITION
KeyToListMap<EntitySetBase, Cell> extentCellMap =
new KeyToListMap<EntitySetBase, Cell>(EqualityComparer<EntitySetBase>.Default);
foreach (Cell cell in cells)
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewgenContext.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewgenContext.cs
index 50bb0142b12..b23ecf6a9ef 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewgenContext.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewgenContext.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping.ViewGeneration
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewgenGatekeeper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewgenGatekeeper.cs
index f7a1d411304..20bf0b8be66 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewgenGatekeeper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewGeneration/ViewgenGatekeeper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewValidator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewValidator.cs
index 2ab3c302c64..cce9f4315c5 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewValidator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Mapping/ViewValidator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Mapping
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/MappingException.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/MappingException.cs
index 4c8e9d1c52f..0cd23d838ab 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/MappingException.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/MappingException.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/AspProxy.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/AspProxy.cs
index cf39195f055..440497527a6 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/AspProxy.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/AspProxy.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/CacheForPrimitiveTypes.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/CacheForPrimitiveTypes.cs
index 100159b7cc1..cc3c04e0ccf 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/CacheForPrimitiveTypes.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/CacheForPrimitiveTypes.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ClrPerspective.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ClrPerspective.cs
index 708896590ab..96cb27bb729 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ClrPerspective.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ClrPerspective.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Converter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Converter.cs
index eb4e61ec3a1..40d2b765ea6 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Converter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Converter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/CustomAssemblyResolver.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/CustomAssemblyResolver.cs
index 2ed13e505f8..608bdd56cf8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/CustomAssemblyResolver.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/CustomAssemblyResolver.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/DataSpace.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/DataSpace.cs
index a409eb1b11b..3ecbcd20a1c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/DataSpace.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/DataSpace.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner leil
+// @backupOwner anpete
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/DefaultAssemblyResolver.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/DefaultAssemblyResolver.cs
index a5abcab9c54..134045feeaa 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/DefaultAssemblyResolver.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/DefaultAssemblyResolver.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Reflection;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationEndMember.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationEndMember.cs
index 48490fa5ea5..33511243f75 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationEndMember.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationEndMember.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationSet.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationSet.cs
index e0d165556ca..64df1f868d9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationSet.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationSet.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationSetEnd.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationSetEnd.cs
index 3fe246c32f3..b6c5cbd435f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationSetEnd.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationSetEnd.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationType.cs
index bc728310577..f12462b1cfc 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AssociationType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AttributeKind.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AttributeKind.cs
index 984882086e8..bae1992de7c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AttributeKind.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/AttributeKind.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner leil
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/BuiltInKind.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/BuiltInKind.cs
index 0292051243d..baeb9a544f8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/BuiltInKind.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/BuiltInKind.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner leil
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/CollectionType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/CollectionType.cs
index 27f49ab651e..debab768619 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/CollectionType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/CollectionType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ComplexType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ComplexType.cs
index b3aa9751cd0..ad0fe21a19d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ComplexType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ComplexType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common;
using System.Threading;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Documentation.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Documentation.cs
index 38f6d3d350c..c036a9c0e7c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Documentation.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Documentation.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmConstants.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmConstants.cs
index 45ce070b209..b85a830d454 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmConstants.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmConstants.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmFunction.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmFunction.cs
index a9c0b1672d0..29632cdfbfe 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmFunction.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmFunction.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmMember.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmMember.cs
index 2a5f5c8d8ea..e04b0142996 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmMember.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmMember.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmProperty.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmProperty.cs
index 0d42381f47b..b1529dde633 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmProperty.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmProperty.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmType.cs
index 39a25ab7478..c324b5475cf 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EdmType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common;
using System.Globalization;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntityContainer.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntityContainer.cs
index e04b365e3f8..a51c2f59ceb 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntityContainer.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntityContainer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntitySet.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntitySet.cs
index d22fccf9b12..500c7b26949 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntitySet.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntitySet.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntitySetBase.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntitySetBase.cs
index 0679dfe8aa3..8b09606a6fe 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntitySetBase.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntitySetBase.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntitySetBaseCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntitySetBaseCollection.cs
index 72ba6079dd3..e0a884a8455 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntitySetBaseCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntitySetBaseCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntityType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntityType.cs
index 65f780409a5..60d95712d4f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntityType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntityType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntityTypeBase.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntityTypeBase.cs
index d3776b976ee..2cf2e39ec5e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntityTypeBase.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EntityTypeBase.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
{
@@ -64,8 +64,8 @@ namespace System.Data.Metadata.Edm
/// <summary>
/// Returns the list of the member names that form the key for this entity type
- /// Perf Bug #529294: To cache the list of member names that form the key for the entity type
- /// </summary>
+ /// Perf
+
internal string[] KeyMemberNames
{
get
@@ -80,7 +80,7 @@ namespace System.Data.Metadata.Edm
}
_keyMemberNames = keyNames;
}
- Debug.Assert(_keyMemberNames.Length == this.KeyMembers.Count, "This list is out of [....] with the key members count. This property was called before all the keymembers were added");
+ Debug.Assert(_keyMemberNames.Length == this.KeyMembers.Count, "This list is out of sync with the key members count. This property was called before all the keymembers were added");
return _keyMemberNames;
}
}
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EnumMember.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EnumMember.cs
index da510a866b1..ef089ea63df 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EnumMember.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EnumMember.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EnumType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EnumType.cs
index 29488511a7d..1c4df323c56 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EnumType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/EnumType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Facet.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Facet.cs
index 5e985eb5ac0..af7f7551704 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Facet.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Facet.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FacetDescription.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FacetDescription.cs
index 3bb0c373d3d..4a8670c2768 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FacetDescription.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FacetDescription.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FacetValueContainer.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FacetValueContainer.cs
index ef7173e62f1..d87d9a59303 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FacetValueContainer.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FacetValueContainer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FacetValues.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FacetValues.cs
index 93cba7cd887..25cf2a8c4ce 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FacetValues.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FacetValues.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FilteredReadOnlyMetadataCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FilteredReadOnlyMetadataCollection.cs
index 6595c460229..53325caf1c3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FilteredReadOnlyMetadataCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FilteredReadOnlyMetadataCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
@@ -27,7 +27,7 @@ namespace System.Data.Metadata.Edm
int IndexOf(T item);
}
-#pragma warning disable 1711 // compiler bug: reports TDerived and TBase as type parameters for non-existing IsReadOnly property
+#pragma warning disable 1711 // compiler
/// <summary>
/// Class to filter stuff out from a metadata collection
/// </summary>
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FunctionParameter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FunctionParameter.cs
index 005a5db5697..326e416c81e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FunctionParameter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/FunctionParameter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/GlobalItem.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/GlobalItem.cs
index 1e1e1517d0c..4b768e48171 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/GlobalItem.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/GlobalItem.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ItemCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ItemCollection.cs
index d04aa073116..de0b94047e1 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ItemCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ItemCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/LightweightCodeGenerator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/LightweightCodeGenerator.cs
index fc0e9e2a595..cc60a7a0f0a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/LightweightCodeGenerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/LightweightCodeGenerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MemberCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MemberCollection.cs
index c2f9cbd869a..155f6555977 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MemberCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MemberCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataCollection.cs
index 36535c8a099..e62dd919b71 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
@@ -28,7 +28,7 @@ namespace System.Data.Metadata.Edm
// The way the collection supports both case sensitive and insensitive search is that it maintains two lists: one list
// for keep tracking of the order (the ordered list) and another list sorted case sensitively (the sorted list) by the
// identity of the item. When a look up on ordinal is requested, the ordered list is used. When a look up on the name
- // is requested, the sorted list is used. The two list must be kept in [....] for all update operations. For case
+ // is requested, the sorted list is used. The two list must be kept in sync for all update operations. For case
// sensitive name lookup, the sorted list is searched. For case insensitive name lookup, a binary search is used on the
// sorted list to find the match.
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataItem.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataItem.cs
index a99c0292b85..04e93f76499 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataItem.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataItem.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataItem_Static.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataItem_Static.cs
index 126c4b7a946..e8da22d701c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataItem_Static.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataItem_Static.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Data.Common;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataProperty.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataProperty.cs
index b8ac93d079a..0fe365f08d7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataProperty.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataProperty.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataPropertyAttribute.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataPropertyAttribute.cs
index 471301f36f7..3e0684456cb 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataPropertyAttribute.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataPropertyAttribute.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataPropertyCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataPropertyCollection.cs
index 6ae1221508b..b8119608c96 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataPropertyCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataPropertyCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataPropertyvalue.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataPropertyvalue.cs
index 26897499b44..8fdb0eca6f5 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataPropertyvalue.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/MetadataPropertyvalue.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/NavigationProperty.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/NavigationProperty.cs
index 721725925b8..e8525f7cca0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/NavigationProperty.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/NavigationProperty.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Data.Common;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/NavigationPropertyAccessor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/NavigationPropertyAccessor.cs
index 52a8949ac7b..d9e8da11dad 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/NavigationPropertyAccessor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/NavigationPropertyAccessor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/OperationAction.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/OperationAction.cs
index daa7993814b..5e30d382027 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/OperationAction.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/OperationAction.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner leil
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ParameterMode.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ParameterMode.cs
index 22be0531bdd..17801dea5aa 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ParameterMode.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ParameterMode.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner leil
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
@@ -31,4 +31,4 @@ namespace System.Data.Metadata.Edm
/// </summary>
ReturnValue
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/PrimitiveType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/PrimitiveType.cs
index 5e644eb5637..89ccf2a65bb 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/PrimitiveType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/PrimitiveType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Data.Common;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/PrimitiveTypeKind.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/PrimitiveTypeKind.cs
index 0b264d9c929..2767594333e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/PrimitiveTypeKind.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/PrimitiveTypeKind.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner leil
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/ClrProviderManifest.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/ClrProviderManifest.cs
index 82627c4857b..126408018f4 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/ClrProviderManifest.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/ClrProviderManifest.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/EdmProviderManifest.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/EdmProviderManifest.cs
index cb2f50ddb49..372fabbcadc 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/EdmProviderManifest.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/EdmProviderManifest.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/EdmProviderManifestFunctionBuilder.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/EdmProviderManifestFunctionBuilder.cs
index fbbf97d8c33..69d4bf334f7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/EdmProviderManifestFunctionBuilder.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/EdmProviderManifestFunctionBuilder.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/EdmProviderManifestSpatialFunctions.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/EdmProviderManifestSpatialFunctions.cs
index 19fc7d19693..b34b1578674 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/EdmProviderManifestSpatialFunctions.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/Provider/EdmProviderManifestSpatialFunctions.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//--------------------------------------------------------------------------
// This file is automatically generated and should not be changed directly.
//
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ReadOnlyMetadataCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ReadOnlyMetadataCollection.cs
index 3f60afa5930..1d57ceb9d28 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ReadOnlyMetadataCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ReadOnlyMetadataCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections;
@@ -199,10 +199,10 @@ namespace System.Data.Metadata.Edm
}
/// <summary>
- /// Workaround for bug
- /// </summary>
- /// <param name="value"></param>
- /// <returns></returns>
+ /// Workaround for
+
+
+
public new virtual int IndexOf(T value)
{
return base.IndexOf(value);
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RefType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RefType.cs
index d33335f4ea1..8c8184cbb8e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RefType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RefType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ReferentialConstraint.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ReferentialConstraint.cs
index 71295ba55d0..051d7bfea91 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ReferentialConstraint.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/ReferentialConstraint.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipEndMember.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipEndMember.cs
index 4a635d82d00..81225a715aa 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipEndMember.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipEndMember.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipMultiplicity.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipMultiplicity.cs
index 271f02bc46d..88e5ec18c8c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipMultiplicity.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipMultiplicity.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner leil
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipSet.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipSet.cs
index f4714eccfd9..39ba5e07a9c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipSet.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipSet.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipType.cs
index 46c0107a694..1e3b042741d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RelationshipType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RowType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RowType.cs
index 0b954067dfe..3285477da06 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RowType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/RowType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/SafeLink.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/SafeLink.cs
index 22e4126b516..563a8b5d1c3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/SafeLink.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/SafeLink.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/SafeLinkCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/SafeLinkCollection.cs
index 39a0c85d911..43b3fa00f50 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/SafeLinkCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/SafeLinkCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/SimpleType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/SimpleType.cs
index 554cbcdc72e..82c07fbd460 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/SimpleType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/SimpleType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/StructuralType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/StructuralType.cs
index 66fe1c7e222..dea24673fb9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/StructuralType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/StructuralType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/TypeUsage.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/TypeUsage.cs
index 29308e0a41e..308c2bc680f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/TypeUsage.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/TypeUsage.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/util.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/util.cs
index b54adc330fe..3ea3b7036a0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/util.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Edm/util.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmError.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmError.cs
index 883a09574b6..e2915eed001 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmError.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmError.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmItemCollection.OcAssemblyCache.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmItemCollection.OcAssemblyCache.cs
index b6cf2394825..19f0082a323 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmItemCollection.OcAssemblyCache.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmItemCollection.OcAssemblyCache.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Reflection;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmItemCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmItemCollection.cs
index 570ad901c22..ca1d2be4049 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmItemCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmItemCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmItemError.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmItemError.cs
index feee36878f6..c18d3a5cab4 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmItemError.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmItemError.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmSchemaError.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmSchemaError.cs
index 7769c09386f..e6a143183d7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmSchemaError.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmSchemaError.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmSchemaErrorSeverity.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmSchemaErrorSeverity.cs
index 207a99fb915..a3e97ffcecb 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmSchemaErrorSeverity.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmSchemaErrorSeverity.cs
@@ -3,14 +3,14 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner leil
+// @backupOwner anpete
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
{
// if you edit this file be sure you change GeneratorErrorSeverity
- // also, they must stay in [....]
+ // also, they must stay in sync
/// <summary>
///
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmValidator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmValidator.cs
index 45822d9d4fe..9aca70f7026 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmValidator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/EdmValidator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Helper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Helper.cs
index 392270ccdfe..ac6358abfd6 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Helper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Helper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MappingMetadataHelper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MappingMetadataHelper.cs
index 80fefe07773..38916861f8d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MappingMetadataHelper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MappingMetadataHelper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactAssemblyResolver.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactAssemblyResolver.cs
index 98a3c386f57..6ef2b2a1fa5 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactAssemblyResolver.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactAssemblyResolver.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner leil
+// @backupOwner anpete
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoader.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoader.cs
index d393a6b4d57..215b129f8b7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoader.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoader.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderComposite.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderComposite.cs
index 0338f5466c8..3f1a54b1f42 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderComposite.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderComposite.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderCompositeFile.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderCompositeFile.cs
index f81c3bffddd..77769e7606f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderCompositeFile.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderCompositeFile.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderCompositeResource.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderCompositeResource.cs
index 959e6617f94..344a60e79a2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderCompositeResource.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderCompositeResource.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderFile.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderFile.cs
index 3fd746c44ae..ca04d7a87a4 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderFile.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderFile.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderResource.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderResource.cs
index 7b6927c6403..419e2f1f078 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderResource.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderResource.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderXmlReaderWrapper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderXmlReaderWrapper.cs
index 8624eb4bf3f..e83fa0c9aea 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderXmlReaderWrapper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataArtifactLoaderXmlReaderWrapper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataCache.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataCache.cs
index d9701d51016..340a26d7fc0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataCache.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataCache.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataWorkspace.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataWorkspace.cs
index 0652558289b..831428feee1 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataWorkspace.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/MetadataWorkspace.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ModelPerspective.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ModelPerspective.cs
index 855de302a69..90cc7b12fbf 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ModelPerspective.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ModelPerspective.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectHelper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectHelper.cs
index 6d966224dfa..abde1abf26a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectHelper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectHelper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Mapping;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectItemCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectItemCollection.cs
index ccbb10a4351..2c79eb40dff 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectItemCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectItemCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/AssemblyCache.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/AssemblyCache.cs
index 02d09f98b3f..1c8a8b9fe2e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/AssemblyCache.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/AssemblyCache.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/AssemblyCacheEntry.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/AssemblyCacheEntry.cs
index fdaab763c81..b5c6ec4f62f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/AssemblyCacheEntry.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/AssemblyCacheEntry.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ImmutableAssemblyCacheEntry.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ImmutableAssemblyCacheEntry.cs
index e6804614e98..f21a4759737 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ImmutableAssemblyCacheEntry.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ImmutableAssemblyCacheEntry.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/KnownAssembliesSet.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/KnownAssembliesSet.cs
index 608f707ef5d..116233108c4 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/KnownAssembliesSet.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/KnownAssembliesSet.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/KnownAssemblyEntry.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/KnownAssemblyEntry.cs
index 2a59d2d691f..ca0b6bd3763 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/KnownAssemblyEntry.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/KnownAssemblyEntry.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/LoadMessageLogger.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/LoadMessageLogger.cs
index 91104516465..e4501a21494 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/LoadMessageLogger.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/LoadMessageLogger.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/LockedAssemblyCache.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/LockedAssemblyCache.cs
index 43ef352dbf7..a81ccee2cee 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/LockedAssemblyCache.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/LockedAssemblyCache.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/MetadataAssemblyHelper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/MetadataAssemblyHelper.cs
index 7229c3b838d..ebaad4ec189 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/MetadataAssemblyHelper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/MetadataAssemblyHelper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Reflection;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/MutableAssemblyCacheEntry.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/MutableAssemblyCacheEntry.cs
index e17dcb2205f..f44d9d1d13f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/MutableAssemblyCacheEntry.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/MutableAssemblyCacheEntry.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemAssemblyLoader.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemAssemblyLoader.cs
index a394eecea5a..bbadb7cc55a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemAssemblyLoader.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemAssemblyLoader.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemAttributeAssemblyLoader.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemAttributeAssemblyLoader.cs
index 610f1f067a7..c54f6bbd703 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemAttributeAssemblyLoader.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemAttributeAssemblyLoader.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemCachedAssemblyLoader.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemCachedAssemblyLoader.cs
index d1db7caebf5..9cf8fae6e23 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemCachedAssemblyLoader.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemCachedAssemblyLoader.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemConventionAssemblyLoader.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemConventionAssemblyLoader.cs
index d6f3c2dda73..a336bab049f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemConventionAssemblyLoader.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemConventionAssemblyLoader.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemLoadingSessionData.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemLoadingSessionData.cs
index bfb63d99f7b..f033bc47697 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemLoadingSessionData.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemLoadingSessionData.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Reflection;
using System.Linq;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemNoOpAssemblyLoader.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemNoOpAssemblyLoader.cs
index 87c4d7d3e88..45a60e927b3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemNoOpAssemblyLoader.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ObjectLayer/ObjectItemNoOpAssemblyLoader.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Reflection;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ParameterTypeSemantics.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ParameterTypeSemantics.cs
index f76b7d2408a..4c66d34744c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ParameterTypeSemantics.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/ParameterTypeSemantics.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner leil
+// @backupOwner anpete
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
@@ -30,4 +30,4 @@ namespace System.Data.Metadata.Edm
/// </summary>
ExactMatchOnly = 2
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Perspective.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Perspective.cs
index b3834ecef35..c8f6ff31241 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Perspective.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/Perspective.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Diagnostics;
using System.Linq;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/StoreItemCollection.Loader.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/StoreItemCollection.Loader.cs
index ede35e32192..0583ffef5d1 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/StoreItemCollection.Loader.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/StoreItemCollection.Loader.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/StoreItemCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/StoreItemCollection.cs
index 8d3db3692bf..585dfca18ec 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/StoreItemCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/StoreItemCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/TargetPerspective.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/TargetPerspective.cs
index 372a6d86707..4f52bfdd8df 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/TargetPerspective.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/TargetPerspective.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/TypeHelpers.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/TypeHelpers.cs
index a3f8e6394f6..a08529d31d2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/TypeHelpers.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/TypeHelpers.cs
@@ -3,8 +3,8 @@
// Copyright(c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Common
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/TypeSemantics.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/TypeSemantics.cs
index 5142269bafd..0c0df556007 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/TypeSemantics.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/TypeSemantics.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/XmlConstants.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/XmlConstants.cs
index 7276c7c07ac..e9399896f3c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/XmlConstants.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Metadata/XmlConstants.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner leil
+// @backupOwner anpete
//---------------------------------------------------------------------
namespace System.Data.Metadata.Edm
@@ -191,4 +191,4 @@ namespace System.Data.Metadata.Edm
#endregion // CDM Schema Xml NodeNames
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/MetadataException.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/MetadataException.cs
index 67eafde4e53..bd0cfb075da 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/MetadataException.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/MetadataException.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/ObjectNotFoundException.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/ObjectNotFoundException.cs
index d0496ab15c0..9247b2e59f0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/ObjectNotFoundException.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/ObjectNotFoundException.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....], nkline
+// @owner Microsoft, nkline
//---------------------------------------------------------------------
namespace System.Data
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/AdditionalEntityFunctions.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/AdditionalEntityFunctions.cs
index 2ca2abe88df..36c949997b7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/AdditionalEntityFunctions.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/AdditionalEntityFunctions.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/CompiledQuery.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/CompiledQuery.cs
index 96f6bb6be5c..c3f31fb4bce 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/CompiledQuery.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/CompiledQuery.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupowner [....]
+// @owner Microsoft
+// @backupowner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/ComplexObject.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/ComplexObject.cs
index c63108a6311..fd606f81862 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/ComplexObject.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/ComplexObject.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmComplexPropertyAttribute.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmComplexPropertyAttribute.cs
index 61a7498be43..857cc043263 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmComplexPropertyAttribute.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmComplexPropertyAttribute.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.DataClasses
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmComplexTypeAttribute.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmComplexTypeAttribute.cs
index 6f4d556f028..05f2fcc7183 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmComplexTypeAttribute.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmComplexTypeAttribute.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.DataClasses
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmEntityTypeAttribute.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmEntityTypeAttribute.cs
index 495c0fdeea6..79b9c4bc363 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmEntityTypeAttribute.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmEntityTypeAttribute.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmEnumTypeAttribute.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmEnumTypeAttribute.cs
index 01e1acce12f..208b57f3c93 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmEnumTypeAttribute.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmEnumTypeAttribute.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.DataClasses
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmFunctionAttribute.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmFunctionAttribute.cs
index af990b078a7..59029670ee6 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmFunctionAttribute.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmFunctionAttribute.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.DataClasses
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmPropertyAttribute.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmPropertyAttribute.cs
index 0897a9d25f0..e9d2886280c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmPropertyAttribute.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmPropertyAttribute.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.DataClasses
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmRelationshipNavigationPropertyAttribute.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmRelationshipNavigationPropertyAttribute.cs
index e94eeb442a5..3ce5465541b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmRelationshipNavigationPropertyAttribute.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmRelationshipNavigationPropertyAttribute.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmRelationshipRoleAttribute.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmRelationshipRoleAttribute.cs
index fb36665f8a8..45694e6225f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmRelationshipRoleAttribute.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmRelationshipRoleAttribute.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Metadata.Edm; //for RelationshipMultiplicity
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmScalarPropertyAttribute.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmScalarPropertyAttribute.cs
index 13d23f82d18..ddf8d939879 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmScalarPropertyAttribute.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmScalarPropertyAttribute.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.DataClasses
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmSchemaAttribute.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmSchemaAttribute.cs
index eec9c4c9a52..e52f3355498 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmSchemaAttribute.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmSchemaAttribute.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmTypeAttribute.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmTypeAttribute.cs
index 097fd72cbde..cdac8049791 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmTypeAttribute.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EdmTypeAttribute.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.DataClasses
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityCollection.cs
index 0f1f0cc6044..4b1da9fd42b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.DataClasses
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityObject.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityObject.cs
index 08e8dd69a86..028698fe9db 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityObject.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityObject.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityReference.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityReference.cs
index 5a7b1c84e6f..48acf77e563 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityReference.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityReference.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.DataClasses
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityReference_TResultType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityReference_TResultType.cs
index c18e9638f80..29b355682d0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityReference_TResultType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/EntityReference_TResultType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.DataClasses
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityChangeTracker.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityChangeTracker.cs
index dd6854bfe9a..08cf53debbc 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityChangeTracker.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityChangeTracker.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner sparra
+// @backupOwner barryfr
//---------------------------------------------------------------------
using System.Data.Objects;
using System.Reflection;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityWithChangeTracker.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityWithChangeTracker.cs
index b46038ab7cf..daee10b57b8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityWithChangeTracker.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityWithChangeTracker.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner barryfr
+// @backupOwner sparra
//---------------------------------------------------------------------
using System.Data.Objects;
using System.Reflection;
@@ -22,4 +22,4 @@ namespace System.Data.Objects.DataClasses
/// <param name="changeTracker">Reference to the change tracker that is managing this entity</param>
void SetChangeTracker(IEntityChangeTracker changeTracker);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityWithKey.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityWithKey.cs
index ff6c95bc3a6..a0851617cbf 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityWithKey.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityWithKey.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner barryfr
+// @backupOwner sparra
//---------------------------------------------------------------------
using System.Data.Objects;
using System.Reflection;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityWithRelationships.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityWithRelationships.cs
index 58ec9e3a3a6..7ff9f7d0adf 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityWithRelationships.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IEntityWithRelationships.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner sparra
+// @backupOwner barryfr
//---------------------------------------------------------------------
using System.Data.Objects;
using System.Reflection;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IRelatedEnd.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IRelatedEnd.cs
index 04570e2da2e..46d8a1e7d35 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IRelatedEnd.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IRelatedEnd.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner mirszy
+// @backupOwner sparra
//---------------------------------------------------------------------
using System.Data;
using System.Data.Common;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IRelationshipFixer.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IRelationshipFixer.cs
index c6a84094ca3..3c0d1e11d01 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IRelationshipFixer.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/IRelationshipFixer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner mirszy
+// @backupOwner sparra
//---------------------------------------------------------------------
namespace System.Data.Objects.DataClasses
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelatedEnd.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelatedEnd.cs
index e89a660d4bc..073c79de299 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelatedEnd.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelatedEnd.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.DataClasses
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipFixer.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipFixer.cs
index 4621064d8c9..40b72aed27d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipFixer.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipFixer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Metadata.Edm;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipKind.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipKind.cs
index 82ec31d7a8a..a9425d817d9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipKind.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipKind.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffreed
+// @backupOwner pratikp
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipManager.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipManager.cs
index 32c09239795..854e9008772 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipManager.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipManager.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.DataClasses
{
@@ -1429,8 +1429,8 @@ namespace System.Data.Objects.DataClasses
// Find properties which are Dependent/Principal ends of some referential constraint
// Returned lists are never null.
- // NOTE This method will be removed when bug 505935 is solved
- // Returns true if any FK relationships were skipped so that they can be checked again after fixup
+ // NOTE This method will be removed when
+
internal bool FindNamesOfReferentialConstraintProperties(out List<string> propertiesToRetrieve, out bool propertiesToPropagateExist, bool skipFK)
{
IEntityWrapper wrappedOwner = WrappedOwner;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipNavigation.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipNavigation.cs
index 66dcba0ec64..82295b74317 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipNavigation.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/RelationshipNavigation.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/StructuralObject.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/StructuralObject.cs
index 900af0333f1..acda94e3dc9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/StructuralObject.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataClasses/StructuralObject.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataRecordObjectView.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataRecordObjectView.cs
index 5869bf86b55..f00b88296fd 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataRecordObjectView.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/DataRecordObjectView.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections;
@@ -63,8 +63,8 @@ namespace System.Data.Objects
/// <remarks>
/// The algorithm here is lifted from System.Windows.Forms.ListBindingHelper,
/// from the GetTypedIndexer method.
- /// The Entity Framework could not take a dependency on [....],
- /// so we lifted the appropriate parts from the [....] code here.
+ /// The Entity Framework could not take a dependency on Microsoft,
+ /// so we lifted the appropriate parts from the Microsoft code here.
/// Not the best, but much better than guessing as to what algorithm is proper for data binding.
/// </remarks>
private static PropertyInfo GetTypedIndexer(Type type)
@@ -106,8 +106,8 @@ namespace System.Data.Objects
/// <remarks>
/// The algorithm here is lifted from System.Windows.Forms.ListBindingHelper,
/// from the GetListItemType(object) method.
- /// The Entity Framework could not take a dependency on [....],
- /// so we lifted the appropriate parts from the [....] code here.
+ /// The Entity Framework could not take a dependency on Microsoft,
+ /// so we lifted the appropriate parts from the Microsoft code here.
/// Not the best, but much better than guessing as to what algorithm is proper for data binding.
/// </remarks>
private static Type GetListItemType(Type type)
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/BindingContext.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/BindingContext.cs
index eeb849f9b40..5a3cb738b77 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/BindingContext.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/BindingContext.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
using CqtExpression = System.Data.Common.CommandTrees.DbExpression;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/CompiledELinqQueryState.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/CompiledELinqQueryState.cs
index 0b7aa97d39b..d072e7c3b08 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/CompiledELinqQueryState.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/CompiledELinqQueryState.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.ELinq
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ELinqQueryState.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ELinqQueryState.cs
index 6a68bcb8bb7..ec98b5bb6f2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ELinqQueryState.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ELinqQueryState.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.ELinq
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ExpressionConverter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ExpressionConverter.cs
index 95c65e884cc..5d0fdd7b734 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ExpressionConverter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ExpressionConverter.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.ELinq
@@ -1069,8 +1069,8 @@ namespace System.Data.Objects.ELinq
/// </summary>
private static void VerifyTypeSupportedForComparison(Type clrType, TypeUsage edmType, Stack<EdmMember> memberPath)
{
- // NOTE: due to bug in null handling for complex types, complex types are currently not supported
- // for comparisons (see SQL BU 543956)
+ // NOTE: due to
+
switch (edmType.EdmType.BuiltInTypeKind)
{
case BuiltInTypeKind.PrimitiveType:
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ExpressionVisitorHelpers.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ExpressionVisitorHelpers.cs
index 3f0060f417c..90853b14302 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ExpressionVisitorHelpers.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ExpressionVisitorHelpers.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
namespace System.Linq.Expressions.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/Funcletizer.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/Funcletizer.cs
index 7b45f33dd05..ab12b11cca7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/Funcletizer.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/Funcletizer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.ELinq
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/InitializerFacet.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/InitializerFacet.cs
index b6e7adc53dd..207b739739f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/InitializerFacet.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/InitializerFacet.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.ELinq
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/LinqExpressionNormalizer.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/LinqExpressionNormalizer.cs
index 1a2e9d353d6..e6042b498d4 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/LinqExpressionNormalizer.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/LinqExpressionNormalizer.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....], [....]
+// @owner Microsoft, Microsoft
//---------------------------------------------------------------------
using System.Linq.Expressions;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/MethodCallTranslator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/MethodCallTranslator.cs
index 247357fb46a..b0f2bbade55 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/MethodCallTranslator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/MethodCallTranslator.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....], [....]
+// @owner Microsoft, Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.ELinq
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ObjectQueryProvider.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ObjectQueryProvider.cs
index fafc18ce088..9999435a982 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ObjectQueryProvider.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ObjectQueryProvider.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.ELinq
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/OrderByLifter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/OrderByLifter.cs
index e32e423a285..cf0ccb54b5f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/OrderByLifter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/OrderByLifter.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.ELinq
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ReflectionUtil.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ReflectionUtil.cs
index 86559d6b40f..95a9af21f4c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ReflectionUtil.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/ReflectionUtil.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
using System.Reflection;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/SpatialMethodCallTranslator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/SpatialMethodCallTranslator.cs
index 2eb958f024b..cfcc26232ae 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/SpatialMethodCallTranslator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/SpatialMethodCallTranslator.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//--------------------------------------------------------------------------
// This file is automatically generated and should not be changed directly.
//
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/SpatialPropertyTranslator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/SpatialPropertyTranslator.cs
index c16cee7d523..84dc51270c9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/SpatialPropertyTranslator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/SpatialPropertyTranslator.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//--------------------------------------------------------------------------
// This file is automatically generated and should not be changed directly.
//
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/Translator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/Translator.cs
index 53ae3be397b..5a4f283f1fb 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/Translator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/Translator.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....], [....]
+// @owner Microsoft, Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.ELinq
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/TypeSystem.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/TypeSystem.cs
index 1d0e4a7f1a5..f7fbc08f6eb 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/TypeSystem.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ELinq/TypeSystem.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.ELinq
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/EntityEntry.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/EntityEntry.cs
index efeddc67439..def33f204b9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/EntityEntry.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/EntityEntry.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects
{
@@ -3748,7 +3748,7 @@ namespace System.Data.Objects
{
// Added prinipal end. Fixup FKs on all dependents.
// This is necessary because of the case where a PK in an added entity is changed after it and its dependnents
- // are added to the context--see bug 628752.
+ // are added to the context--see
bool fkOverlapsPk = false; // Set to true if we find out that the FK overlaps the dependent PK
bool dependentPropsChecked = false; // Set to true once we have checked whether or not the FK overlaps the PK
EntityKey principalKey = WrappedEntity.EntityKey;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/EntityFunctions.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/EntityFunctions.cs
index 879f3af5c95..51a6eea6aab 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/EntityFunctions.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/EntityFunctions.cs
@@ -10,8 +10,8 @@
// Changes to this file will be lost if the code is regenerated.
// </auto-generated>
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/FieldDescriptor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/FieldDescriptor.cs
index fd5ef4e00e6..f2bb8cf6f3c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/FieldDescriptor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/FieldDescriptor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/IObjectSet.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/IObjectSet.cs
index 381c66c882d..999c0eb8663 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/IObjectSet.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/IObjectSet.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jeffders
+// @backupOwner avickers
//---------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/IObjectView.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/IObjectView.cs
index 3930b7725ba..daba556e0f3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/IObjectView.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/IObjectView.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner amirhmy
+// @backupOwner dsimmons
//---------------------------------------------------------------------
using System;
using System.ComponentModel;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/IObjectViewData.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/IObjectViewData.cs
index 9cc99a26136..055e0f92a92 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/IObjectViewData.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/IObjectViewData.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner jhutson
+// @backupOwner jeffders
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/BaseEntityWrapper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/BaseEntityWrapper.cs
index 7c4e91ac333..8278f03a91e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/BaseEntityWrapper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/BaseEntityWrapper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections;
using System.Data.Objects.DataClasses;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ComplexTypeMaterializer.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ComplexTypeMaterializer.cs
index 44f963f3afe..d4916b2c5e3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ComplexTypeMaterializer.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ComplexTypeMaterializer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Metadata.Edm;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityProxyFactory.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityProxyFactory.cs
index 0de1b08a45e..385cb5b231e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityProxyFactory.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityProxyFactory.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityProxyTypeInfo.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityProxyTypeInfo.cs
index a301deb0389..67b9ce1f7b3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityProxyTypeInfo.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityProxyTypeInfo.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntitySqlQueryBuilder.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntitySqlQueryBuilder.cs
index eb994d42543..f757170e47d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntitySqlQueryBuilder.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntitySqlQueryBuilder.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntitySqlQueryState.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntitySqlQueryState.cs
index 63b4ca4e6c9..40d6b1f6215 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntitySqlQueryState.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntitySqlQueryState.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityWrapper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityWrapper.cs
index 8f06e08b9a1..95f18d39a28 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityWrapper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityWrapper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections;
using System.Data.Objects.DataClasses;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityWrapperFactory.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityWrapperFactory.cs
index bfbb201b702..a337615dea5 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityWrapperFactory.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/EntityWrapperFactory.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Objects.DataClasses;
using System.Data.Metadata.Edm;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/IEntityWrapper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/IEntityWrapper.cs
index 40eee8529be..4ebf495429e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/IEntityWrapper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/IEntityWrapper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner avickers
+// @backupOwner jeffders
//---------------------------------------------------------------------
using System.Collections;
using System.Data.Objects.DataClasses;
@@ -67,7 +67,7 @@ namespace System.Data.Objects.Internal
ObjectContext Context { get; set; }
/// <summary>
- /// The merge option ----oicated with the wrapped entity.
+ /// The merge option assoicated with the wrapped entity.
/// </summary>
MergeOption MergeOption { get; }
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/LazyLoadBehavior.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/LazyLoadBehavior.cs
index 06276f9342e..6806c05cd53 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/LazyLoadBehavior.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/LazyLoadBehavior.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/LightweightEntityWrapper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/LightweightEntityWrapper.cs
index 76cae2fa8b8..874b4c0d0f3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/LightweightEntityWrapper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/LightweightEntityWrapper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections;
using System.Data.Objects.DataClasses;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/NullEntityWrapper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/NullEntityWrapper.cs
index 0273238b70c..9590660d0a3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/NullEntityWrapper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/NullEntityWrapper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.Internal
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectFullSpanRewriter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectFullSpanRewriter.cs
index d8a4c861e68..2d54ed02ce6 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectFullSpanRewriter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectFullSpanRewriter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupowner [....]
+// @owner Microsoft
+// @backupowner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectQueryExecutionPlan.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectQueryExecutionPlan.cs
index 78f35d03389..43ca9793677 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectQueryExecutionPlan.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectQueryExecutionPlan.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectQueryState.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectQueryState.cs
index 06d5d0841de..8c958ea14f8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectQueryState.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectQueryState.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectSpanRewriter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectSpanRewriter.cs
index 3dcb85b7c0b..2469adc8bb7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectSpanRewriter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/ObjectSpanRewriter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupowner [....]
+// @owner Microsoft
+// @backupowner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/TransactionManager.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/TransactionManager.cs
index 240963625a3..92352278e91 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/TransactionManager.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Internal/TransactionManager.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
//
// Internal class used to manage ObjectStateManager's transactions for
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/MergeOption.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/MergeOption.cs
index d522f2a7566..9b709e33130 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/MergeOption.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/MergeOption.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner markash
+// @backupOwner dsimmons
//------------------------------------------------------------------------------
namespace System.Data.Objects {
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectContext.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectContext.cs
index df6204519f7..49b58de7cd1 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectContext.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectContext.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects
@@ -3034,7 +3034,7 @@ namespace System.Data.Objects
/// <param name="query">The query specified in the server's native query language.</param>
/// <param name="parameters">The parameter values to use for the query.</param>
/// <returns>An IEnumerable sequence of objects.</returns>
- [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "[....]: Generic parameters are required for strong-typing of the return type.")]
+ [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "Microsoft: Generic parameters are required for strong-typing of the return type.")]
public ObjectResult<TElement> ExecuteStoreQuery<TElement>(string commandText, params object[] parameters)
{
return ExecuteStoreQueryInternal<TElement>(commandText, null /*entitySetName*/, MergeOption.AppendOnly, parameters);
@@ -3049,7 +3049,7 @@ namespace System.Data.Objects
/// <param name="entitySetName">The entity set in which results should be tracked. Null indicates there is no entity set.</param>
/// <param name="mergeOption">Merge option to use for entity results.</param>
/// <returns>The translated sequence of objects</returns>
- [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "[....]: Generic parameters are required for strong-typing of the return type.")]
+ [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "Microsoft: Generic parameters are required for strong-typing of the return type.")]
public ObjectResult<TEntity> ExecuteStoreQuery<TEntity>(string commandText, string entitySetName, MergeOption mergeOption, params object[] parameters)
{
EntityUtil.CheckStringArgument(entitySetName, "entitySetName");
@@ -3106,7 +3106,7 @@ namespace System.Data.Objects
/// <param name="reader">The DbDataReader to translate</param>
/// <param name="mergeOption">Merge option to use for entity results.</param>
/// <returns>The translated sequence of objects</returns>
- [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "[....]: Generic parameters are required for strong-typing of the return type.")]
+ [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "Microsoft: Generic parameters are required for strong-typing of the return type.")]
public ObjectResult<TElement> Translate<TElement>(DbDataReader reader)
{
// SQLBUDT 447285: Ensure the assembly containing the entity's CLR type
@@ -3130,7 +3130,7 @@ namespace System.Data.Objects
/// <param name="entitySetName">The entity set in which results should be tracked. Null indicates there is no entity set.</param>
/// <param name="mergeOption">Merge option to use for entity results.</param>
/// <returns>The translated sequence of objects</returns>
- [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "[....]: Generic parameters are required for strong-typing of the return type.")]
+ [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "Microsoft: Generic parameters are required for strong-typing of the return type.")]
public ObjectResult<TEntity> Translate<TEntity>(DbDataReader reader, string entitySetName, MergeOption mergeOption)
{
EntityUtil.CheckStringArgument(entitySetName, "entitySetName");
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectMaterializedEventArgs.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectMaterializedEventArgs.cs
index 4b269fba20d..26bd5a01271 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectMaterializedEventArgs.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectMaterializedEventArgs.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectParameter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectParameter.cs
index 2939ae7b9c5..4390811bc92 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectParameter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectParameter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupowner [....]
+// @owner Microsoft
+// @backupowner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectParameterCollection.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectParameterCollection.cs
index bd314d2e182..7efb20d55eb 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectParameterCollection.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectParameterCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupowner [....]
+// @owner Microsoft
+// @backupowner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectQuery.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectQuery.cs
index bd28684250e..b8041ee41a4 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectQuery.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectQuery.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupowner [....]
+// @owner Microsoft
+// @backupowner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectQuery_EntitySqlExtensions.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectQuery_EntitySqlExtensions.cs
index 36d85f3ee3e..10c751301fb 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectQuery_EntitySqlExtensions.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectQuery_EntitySqlExtensions.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupowner [....]
+// @owner Microsoft
+// @backupowner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectQuery_TResultType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectQuery_TResultType.cs
index bb459b66117..e5acd60fe9d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectQuery_TResultType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectQuery_TResultType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupowner [....]
+// @owner Microsoft
+// @backupowner Microsoft
//---------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectResult.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectResult.cs
index 4b3bcb8682f..0c11979211b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectResult.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectResult.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupowner [....]
+// @owner Microsoft
+// @backupowner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectResult_TResultType.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectResult_TResultType.cs
index 4b764e2361e..89643315a00 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectResult_TResultType.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectResult_TResultType.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupowner [....]
+// @owner Microsoft
+// @backupowner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectSet.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectSet.cs
index 94ffdbcabbf..3d5c4a02cfd 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectSet.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectSet.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
// ObjectSet<TEntity> is a wrapper around ObjectQuery<TEntity> and CUD
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntry.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntry.cs
index 388559d75c1..5d069e2ba1a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntry.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntry.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Data.Common;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryBaseUpdatableDataRecord.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryBaseUpdatableDataRecord.cs
index 72e6a8ce1bf..3006ec9202b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryBaseUpdatableDataRecord.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryBaseUpdatableDataRecord.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.ComponentModel;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryDbDataRecord.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryDbDataRecord.cs
index cda0af00f54..5b763db4a06 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryDbDataRecord.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryDbDataRecord.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryDbUpdatableDataRecord.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryDbUpdatableDataRecord.cs
index 08a0551c5dd..768828d897b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryDbUpdatableDataRecord.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryDbUpdatableDataRecord.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.ComponentModel;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryOriginalDbUpdatableDataRecord.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryOriginalDbUpdatableDataRecord.cs
index 56c4c0f8abc..e16a62b70f7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryOriginalDbUpdatableDataRecord.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateEntryOriginalDbUpdatableDataRecord.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.ComponentModel;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateManager.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateManager.cs
index 9657c208b61..84289151819 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateManager.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateManager.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects
@@ -2131,7 +2131,7 @@ namespace System.Data.Objects
_inRelationshipFixup = false;
}
- // Keeping the entity and entry keys in [....].
+ // Keeping the entity and entry keys in sync.
entry.EntityKey = value;
//Internally, entry.EntityKey asserts that entry._entityKey and entityWithKey.EntityKey are equal.
@@ -3553,7 +3553,7 @@ namespace System.Data.Objects
reference.IsForeignKey &&
reference.IsDependentEndOfReferentialConstraint(checkIdentifying: false))
{
- // Ensure that the cached FK value on the reference is in [....] because it is possible that we
+ // Ensure that the cached FK value on the reference is in sync because it is possible that we
// didn't take any actions above that would cause this to be set.
reference.SetCachedForeignKey(ForeignKeyFactory.CreateKeyFromForeignKeyValues(entry, reference), entry);
}
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateManagerMetadata.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateManagerMetadata.cs
index 2f078289be0..81e861695a4 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateManagerMetadata.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectStateManagerMetadata.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectView.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectView.cs
index acd5c3aa2f0..0adbd0b501d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectView.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectView.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewEntityCollectionData.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewEntityCollectionData.cs
index de89b3a48ad..0f91fb37dd5 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewEntityCollectionData.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewEntityCollectionData.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewFactory.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewFactory.cs
index 9c803f7bd00..94bed62f1d2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewFactory.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewFactory.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewListener.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewListener.cs
index 326ca561b7b..f26e293c8f2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewListener.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewListener.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewQueryResultData.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewQueryResultData.cs
index 1f1eb295822..dd79ce4348c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewQueryResultData.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ObjectViewQueryResultData.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ProxyDataContractResolver.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ProxyDataContractResolver.cs
index 251a18ed5db..4435cbc8293 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ProxyDataContractResolver.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/ProxyDataContractResolver.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/RefreshMode.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/RefreshMode.cs
index 4adc0826008..a677e0dffd2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/RefreshMode.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/RefreshMode.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner markash
+// @backupOwner dsimmons
//------------------------------------------------------------------------------
namespace System.Data.Objects
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/RelationshipEntry.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/RelationshipEntry.cs
index d3a7e941801..de19216f66b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/RelationshipEntry.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/RelationshipEntry.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/RelationshipWrapper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/RelationshipWrapper.cs
index e3f4a297ffa..2aa42ba86b8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/RelationshipWrapper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/RelationshipWrapper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SaveOptions.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SaveOptions.cs
index b79e86b6c25..b53fe1dfbf3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SaveOptions.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SaveOptions.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner mirszy
+// @backupOwner jeffders
//------------------------------------------------------------------------------
namespace System.Data.Objects
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Span.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Span.cs
index c74e95d9534..28482f31eac 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Span.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/Span.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Objects
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SpanIndex.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SpanIndex.cs
index 921eed60239..151f06a2207 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SpanIndex.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SpanIndex.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupowner [....]
+// @owner Microsoft
+// @backupowner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SqlClient/SqlFunctions.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SqlClient/SqlFunctions.cs
index d5745f56802..0d9a53bd26d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SqlClient/SqlFunctions.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SqlClient/SqlFunctions.cs
@@ -10,8 +10,8 @@
// Changes to this file will be lost if the code is regenerated.
// </auto-generated>
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SqlClient/SqlSpatialFunctions.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SqlClient/SqlSpatialFunctions.cs
index 3dd9e3aade4..1c1dd30bbc7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SqlClient/SqlSpatialFunctions.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Objects/SqlClient/SqlSpatialFunctions.cs
@@ -10,8 +10,8 @@
// Changes to this file will be lost if the code is regenerated.
// </auto-generated>
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/OptimisticConcurrencyException.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/OptimisticConcurrencyException.cs
index 6a38eb00ca4..9a911e5d22f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/OptimisticConcurrencyException.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/OptimisticConcurrencyException.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
namespace System.Data
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/PropertyConstraintException.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/PropertyConstraintException.cs
index 034e96170dc..ff231df5ab0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/PropertyConstraintException.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/PropertyConstraintException.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/ProviderIncompatibleException.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/ProviderIncompatibleException.cs
index f15b3a5ed1a..8b3a5dad12a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/ProviderIncompatibleException.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/ProviderIncompatibleException.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/AncillaryOps.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/AncillaryOps.cs
index e2f4c3ad4fe..624c6db1709 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/AncillaryOps.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/AncillaryOps.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/BasicValidator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/BasicValidator.cs
index 5d55c8dcee3..dad56e9dde6 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/BasicValidator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/BasicValidator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner simoncav
+// @backupOwner katicad
//---------------------------------------------------------------------
using System;
@@ -283,7 +283,7 @@ namespace System.Data.Query.InternalTrees
public override void Visit(SoftCastOp op, Node n)
{
VisitScalarOpDefault(op, n);
- // [....] 9/21/06 - temporarily removing check here
+ // Aconrad 9/21/06 - temporarily removing check here
// because the assert wrongly fails in some cases where the types are promotable,
// but the facets are not. Put this back when that issue is solved.
// Assert(TypeSemantics.IsEquivalentOrPromotableTo(n.Child0.Op.Type, op.Type), "Illegal SoftCastOp: Cannot promote input type {0} to target type {1}", n.Child0.Op.Type.Identity, op.Type.Identity);
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMap.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMap.cs
index 5616d7744d4..541441845ea 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMap.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMap.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMapCopier.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMapCopier.cs
index edc63cc517d..723aeae7fb6 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMapCopier.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMapCopier.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMapFactory.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMapFactory.cs
index 7ba71b13236..b000d40e872 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMapFactory.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMapFactory.cs
@@ -2,8 +2,8 @@
// <copyright file="ColumnMapFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMapVisitor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMapVisitor.cs
index 5f717d4cd5e..1c95e226b35 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMapVisitor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ColumnMapVisitor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Query.InternalTrees
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Command.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Command.cs
index 7f16a5a68b8..0dabf7fa15f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Command.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Command.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Dump.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Dump.cs
index a7fecfd71ad..8933a9946b9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Dump.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Dump.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ExplicitDiscriminatorMap.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ExplicitDiscriminatorMap.cs
index 9376a4d3e2a..594d9d4e639 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ExplicitDiscriminatorMap.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ExplicitDiscriminatorMap.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Metadata.Edm;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Metadata.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Metadata.cs
index acb8bc50b0e..5ee20c008a7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Metadata.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Metadata.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/NodeCounter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/NodeCounter.cs
index 77690a6ad45..5261c4858a8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/NodeCounter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/NodeCounter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/NodeInfo.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/NodeInfo.cs
index c169ff2f18b..d4bcc4cb962 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/NodeInfo.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/NodeInfo.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
@@ -52,8 +52,8 @@ namespace System.Data.Query.InternalTrees
internal void InitFrom(IEnumerable<Var> varSet, bool ignoreParameters)
{
m_keys.InitFrom(varSet, ignoreParameters);
- // Bug 434541: An empty set of keys is not the same as "no" keys.
- // Caveat Emptor
+ //
+
m_noKeys = false;
}
internal void InitFrom(KeyVec left, KeyVec right)
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Nodes.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Nodes.cs
index 639678818a5..d8c3bcc4a1e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Nodes.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Nodes.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/OpCopier.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/OpCopier.cs
index d083bf8e4ce..864ae4f80f5 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/OpCopier.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/OpCopier.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
// Interesting cases: Unnest
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Ops.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Ops.cs
index 5f2ef19de41..ffa517fde81 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Ops.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Ops.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Query.InternalTrees
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/PhysicalOps.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/PhysicalOps.cs
index 4a6c5529579..932a39e142b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/PhysicalOps.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/PhysicalOps.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RelOps.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RelOps.cs
index 2f69f2fe693..4e513fd7cb2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RelOps.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RelOps.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RelPropertyHelper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RelPropertyHelper.cs
index 75ff8542388..de5fb678ff0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RelPropertyHelper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RelPropertyHelper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Rule.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Rule.cs
index b75f77f8b35..b766b729d32 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Rule.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Rule.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RulePatternOps.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RulePatternOps.cs
index add95f18902..ec10161a885 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RulePatternOps.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RulePatternOps.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RuleProcessor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RuleProcessor.cs
index 98e34449614..2d43a1cb77b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RuleProcessor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/RuleProcessor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ScalarOps.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ScalarOps.cs
index f02af32dc52..c9c554ad622 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ScalarOps.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/ScalarOps.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Vars.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Vars.cs
index b9f865f5e79..de6ed142500 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Vars.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Vars.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Visitors.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Visitors.cs
index 6dc5c0f5f8f..73d0a5de3eb 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Visitors.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/InternalTrees/Visitors.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Query.InternalTrees
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/AggregatePushdown.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/AggregatePushdown.cs
index 9bf364d3b25..db69808fa2a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/AggregatePushdown.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/AggregatePushdown.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/CTreeGenerator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/CTreeGenerator.cs
index 62aa38cecdc..98e9d1d3b67 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/CTreeGenerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/CTreeGenerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
//using System.Diagnostics; // Please use PlanCompiler.Assert instead of Debug.Assert in this class...
@@ -1047,7 +1047,7 @@ namespace System.Data.Query.PlanCompiler
/// <returns></returns>
public override DbExpression Visit(SoftCastOp op, Node n)
{
- // [....] 9/21/06 - temporarily removing check here
+ // Microsoft 9/21/06 - temporarily removing check here
// because the assert wrongly fails in some cases where the types are promotable,
// but the facets are not. Put this back when that issue is solved.
//
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/CodeGen.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/CodeGen.cs
index 6d762ddeffe..2d8ad0d3272 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/CodeGen.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/CodeGen.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ColumnMapProcessor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ColumnMapProcessor.cs
index e325373041b..d2d6aa35c8b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ColumnMapProcessor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ColumnMapProcessor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ColumnMapTranslator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ColumnMapTranslator.cs
index a6b1ad7614e..793729bde9f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ColumnMapTranslator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ColumnMapTranslator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/CommandPlan.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/CommandPlan.cs
index 3cbfa654fa9..afafe618836 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/CommandPlan.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/CommandPlan.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ConstraintManager.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ConstraintManager.cs
index 70c0f09db55..483fd2d0050 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ConstraintManager.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ConstraintManager.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ITreeGenerator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ITreeGenerator.cs
index a3244777792..6998a556822 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ITreeGenerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ITreeGenerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
//using System.Diagnostics; // Please use PlanCompiler.Assert instead of Debug.Assert in this class...
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/JoinElimination.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/JoinElimination.cs
index f157f9cf3f3..82daa4395ed 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/JoinElimination.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/JoinElimination.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/JoinGraph.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/JoinGraph.cs
index 170d81de80a..476eb9b61dd 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/JoinGraph.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/JoinGraph.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
@@ -1126,8 +1126,8 @@ namespace System.Data.Query.PlanCompiler
/// queries faster when at least one OUTER JOIN statement is still present in the SQL query. If we
/// convert all OUTER JOIN statements into INNER JOINS then these optimizations don't kick in. In
/// order to maintain compatibility to .NET 4.0 we had to create a special case for SQL CE.
- /// See DevDiv bug #462067 for more details. Also see bug DevDev2 bug#488375 for the UseFx40CompatMode check.
- /// </summary>
+ /// See DevDiv
+
private void TryTurnLeftOuterJoinsIntoInnerJoins()
{
foreach (AugmentedJoinNode augmentedJoinNode in m_vertexes.OfType<AugmentedJoinNode>().Where(j => j.Node.Op.OpType == OpType.LeftOuterJoin && j.JoinEdges.Count > 0))
@@ -1503,9 +1503,9 @@ namespace System.Data.Query.PlanCompiler
for (int i = 0; i < tableVars.Count; i++)
{
//
- // Bug 446708: Make sure that the "replacement" column is
- // referenced, if the the current column is referenced
- //
+ //
+
+
if (tableNode.Table.ReferencedColumns.IsSet(tableVars[i]))
{
m_varMap[tableVars[i]] = replacementVars[i];
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/KeyPullup.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/KeyPullup.cs
index 976c8adc17f..7a39349c20b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/KeyPullup.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/KeyPullup.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/NestPullup.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/NestPullup.cs
index 41b2629eb7f..a39594765aa 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/NestPullup.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/NestPullup.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
@@ -2161,15 +2161,15 @@ namespace System.Data.Query.PlanCompiler
KeyVec drivingNodeKeys = Command.PullupKeys(drivingNode);
if (drivingNodeKeys.NoKeys)
{
- // [....]: In this case we used to wrap drivingNode into a projection that would also project Edm.NewGuid() thus giving us a synthetic key.
- // This solution did not work however due to a bug in SQL Server that allowed pulling non-deterministic functions above joins and applies, thus
- // producing incorrect results. SQL Server bug was filed in "sqlbuvsts01\Sql Server" database as #725272.
- // The only known path how we can get a keyless drivingNode is if
- // - drivingNode is over a TVF call
- // - TVF is declared as Collection(Row) is SSDL (the only form of TVF definitions at the moment)
- // - TVF is not mapped to entities
- // Note that if TVF is mapped to entities via function import mapping, and the user query is actually the call of the
- // function import, we infer keys for the TVF from the c-space entity keys and their mappings.
+ // Microsoft: In this case we used to wrap drivingNode into a projection that would also project Edm.NewGuid() thus giving us a synthetic key.
+ // This solution did not work however due to a
+
+
+
+
+
+
+
throw EntityUtil.KeysRequiredForNesting();
}
@@ -2494,9 +2494,9 @@ namespace System.Data.Query.PlanCompiler
{
newDrivingNode = OpCopier.Copy(Command, drivingNode, drivingNodeVars, out newDrivingNodeVars);
//
- // Bug 450245: If we copied the driver node, then references to driver node vars
- // from the collection subquery must be patched up
- //
+ //
+
+
VarRemapper varRemapper = new VarRemapper(this.Command);
for (int j = 0; j < drivingNodeVars.Count; j++)
{
@@ -2505,7 +2505,7 @@ namespace System.Data.Query.PlanCompiler
// Remap all references in the current subquery
varRemapper.RemapSubtree(nestNode.Children[i]);
- // Bug 479183: Remap the flattened element vars
+ //
newFlattenedElementVars = varRemapper.RemapVarList(nestOp.CollectionInfo[i - 1].FlattenedElementVars);
// Create a cross apply for all but the first collection
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/NominalTypeEliminator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/NominalTypeEliminator.cs
index 5cdb77d5493..869ad2309c8 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/NominalTypeEliminator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/NominalTypeEliminator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections;
@@ -1936,9 +1936,9 @@ namespace System.Data.Query.PlanCompiler
// If the CaseOp returns a simple type, then we don't need to do
// anything special.
//
- // Bug 480780: We must perform further processing, if the result
- // type is not a scalar
- //
+ //
+
+
// If the CaseOp returns a collection, then we need to create a
// new CaseOp of the new and improved collection type. Similarly
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/Normalizer.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/Normalizer.cs
index f41d761c763..f780e6b3ca9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/Normalizer.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/Normalizer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PlanCompiler.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PlanCompiler.cs
index 32bdecec29a..f58f7ff5467 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PlanCompiler.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PlanCompiler.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PlanCompilerUtil.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PlanCompilerUtil.cs
index 4a92d1bbd4e..7a3f91e6440 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PlanCompilerUtil.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PlanCompilerUtil.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PreProcessor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PreProcessor.cs
index b3a359ed137..be7bc6eef22 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PreProcessor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PreProcessor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
//using System.Diagnostics; // Please use PlanCompiler.Assert instead of Debug.Assert in this class...
@@ -1283,8 +1283,8 @@ namespace System.Data.Query.PlanCompiler
// and if the parent is already visited that rel op parent would be part of the subtree resulting from the parent.
// If the parent is not visited it would be a rel op parent higher in the tree (also valid), and leaves less room
// for join elimination.
- // The original out-of-order visitation was put in place to work around a bug that has been fixed.
- //
+ // The original out-of-order visitation was put in place to work around a
+
bool visitChildLater = IsNavigationPropertyOverVarRef(n.Child0);
if (!visitChildLater)
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/Predicate.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/Predicate.cs
index f977e3a03e2..39bbeb37ee6 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/Predicate.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/Predicate.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ProjectionPruner.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ProjectionPruner.cs
index 9c91918b7a3..412494ef050 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ProjectionPruner.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ProjectionPruner.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PropertyPushdownHelper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PropertyPushdownHelper.cs
index 32bcd16df9e..3fe9a9cdb52 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PropertyPushdownHelper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PropertyPushdownHelper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
@@ -393,7 +393,7 @@ namespace System.Data.Query.PlanCompiler
ScalarOp childOp = n.Child0.Op as ScalarOp;
PlanCompiler.Assert(childOp != null, "input to GetEntityRefOp is not a ScalarOp?");
- // bug 428542 - the child is of the entity type; not this op
+ //
md.EntityType entityType = TypeHelpers.GetEdmType<md.EntityType>(childOp.Type);
PropertyRefList desiredProperties = GetIdentityProperties(entityType);
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PropertyRef.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PropertyRef.cs
index f23a813a395..103296c7384 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PropertyRef.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/PropertyRef.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ProviderCommandInfoUtils.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ProviderCommandInfoUtils.cs
index 4d81cb04525..1e1978f87fb 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ProviderCommandInfoUtils.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/ProviderCommandInfoUtils.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/StructuredTypeInfo.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/StructuredTypeInfo.cs
index 149274a41c7..c7b074c9c02 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/StructuredTypeInfo.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/StructuredTypeInfo.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
@@ -113,11 +113,11 @@ namespace System.Data.Query.PlanCompiler
private StructuredTypeInfo(HashSet<string> typesNeedingNullSentinel)
{
- // Bug 428351: Make the type->typeInfo dictionary use ref equality for
- // types. The problem is that records (and other transient types) can
- // compare equal, even if they are not reference-equal, and this causes
- // us trouble down the road when we try to compare properties.
- // Type unification is a good thing, but it needs to happen earlier somewhere
+ //
+
+
+
+
m_typeInfoMap = new Dictionary<md.TypeUsage, TypeInfo>(TypeUsageEqualityComparer.Instance);
m_typeInfoMapPopulated = false;
m_typesNeedingNullSentinel = typesNeedingNullSentinel;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/SubqueryTrackingVisitor.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/SubqueryTrackingVisitor.cs
index 6ec1d822c10..437a0cc3ed9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/SubqueryTrackingVisitor.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/SubqueryTrackingVisitor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/TransformationRules.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/TransformationRules.cs
index 99ace7694c4..15dcb8587ae 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/TransformationRules.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/TransformationRules.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
@@ -4206,24 +4206,24 @@ namespace System.Data.Query.PlanCompiler
/// the group by operation uses all the columns of X as the key.
/// Additionally, the top-level physical projection must only expose one variable. If it exposes
/// more than one (more than just the aggregate itself), then this rule must not apply.
- /// This is a fix for devdiv bug 851732. Since now we're supporting NewRecordOp nodes as
- /// part of the GroupBy aggregate variable computations, we are also respecting the fact that
- /// group by (e => e) means that we're grouping by all columns of entity e. This was not a
- /// problem when the NewRecordOp node was not being processed since this caused the GroupBy
- /// statement to be simplified to a form with no keys and no output columns. The generated SQL
- /// is correct, but it is different from what it used to be and may be incompatible if the
- /// entity contains fields with datatypes that do not support being grouped by, such as blobs
- /// and images.
- /// This rule simplifies the tree so that we remain compatible with the way we were generating
- /// queries that contain group by (e => e).
- /// What this does is enabling the tree to take a shape that further optimization can convert
- /// into an expression that groups by the key of the table and calls the aggregate function
- /// as expected.
- /// </summary>
- /// <param name="context"> Rule processing context </param>
- /// <param name="n"> Current ProjectOp node </param>
- /// <param name="newNode"> modified subtree </param>
- /// <returns> Transformation status </returns>
+ /// This is a fix for devdiv
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
private static bool ProcessGroupByOpOnAllInputColumnsWithAggregateOperation(RuleProcessingContext context, Node n, out Node newNode)
{
newNode = n;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/TypeInfo.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/TypeInfo.cs
index b7621060205..d87b08c64e0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/TypeInfo.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/TypeInfo.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/TypeUtils.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/TypeUtils.cs
index c0bc872b570..daf8c53a8a5 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/TypeUtils.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/TypeUtils.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/Validator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/Validator.cs
index 9318b05eb02..4df0d97fcbf 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/Validator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/Validator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner katicad
+// @backupOwner simoncav
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/VarInfo.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/VarInfo.cs
index a3c7575f3b6..b207bd75bb0 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/VarInfo.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/VarInfo.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/VarRefManager.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/VarRefManager.cs
index cea3d2d8690..a996bbc08a7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/VarRefManager.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/VarRefManager.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/VarRemapper.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/VarRemapper.cs
index e700c541620..df62621b53b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/VarRemapper.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/PlanCompiler/VarRemapper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/ResultAssembly/BridgeDataReader.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/ResultAssembly/BridgeDataReader.cs
index 0e2c6696e9e..1fb083d0501 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/ResultAssembly/BridgeDataReader.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/ResultAssembly/BridgeDataReader.cs
@@ -2,8 +2,8 @@
// <copyright file="BridgeDataReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Query.ResultAssembly {
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/ResultAssembly/BridgeDataRecord.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/ResultAssembly/BridgeDataRecord.cs
index 2e8af6ba690..997a264799f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Query/ResultAssembly/BridgeDataRecord.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Query/ResultAssembly/BridgeDataRecord.cs
@@ -2,8 +2,8 @@
// <copyright file="BridgeDataRecord.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.Query.ResultAssembly {
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeography.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeography.cs
index 43a680f7b72..37ed063d3e3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeography.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeography.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Data.Common.Internal;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeographyWellKnownValue.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeographyWellKnownValue.cs
index 575afd3e354..38cab49fe4f 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeographyWellKnownValue.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeographyWellKnownValue.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Runtime.Serialization;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeometry.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeometry.cs
index 53b79d8ac9c..8dd32169848 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeometry.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeometry.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Data.Common.Internal;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeometryWellKnownValue.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeometryWellKnownValue.cs
index ec64ff97912..411faca568a 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeometryWellKnownValue.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbGeometryWellKnownValue.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Runtime.Serialization;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbSpatialDataReader.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbSpatialDataReader.cs
index ef541dfe978..5b41b42460e 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbSpatialDataReader.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbSpatialDataReader.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner srimand
//---------------------------------------------------------------------
namespace System.Data.Spatial
@@ -29,4 +29,4 @@ namespace System.Data.Spatial
/// <returns>The instance of DbGeometry at the specified column value</returns>
public abstract DbGeometry GetGeometry(int ordinal);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbSpatialServices.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbSpatialServices.cs
index e248ee0ca3e..2650b3e44c7 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbSpatialServices.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DbSpatialServices.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Data.Common.Utils;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DefaultSpatialServices.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DefaultSpatialServices.cs
index 0552d5a0a06..70768b84164 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DefaultSpatialServices.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/DefaultSpatialServices.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Data.Common.Internal;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/ExtensionMethods.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/ExtensionMethods.cs
index 010b131af8d..47f88556662 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/ExtensionMethods.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/ExtensionMethods.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Data.Spatial.Internal;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/Internal/SpatialExceptions.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/Internal/SpatialExceptions.cs
index bd77441379f..2a9a718bbf1 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/Internal/SpatialExceptions.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/Internal/SpatialExceptions.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
namespace System.Data.Spatial.Internal
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/SpatialHelpers.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/SpatialHelpers.cs
index df940de7589..af25ebd1aef 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/SpatialHelpers.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/Spatial/SpatialHelpers.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Diagnostics;
using System.Data.Metadata.Edm;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/IDbSpatialValue.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/IDbSpatialValue.cs
index 9334ccfa3ca..ab7dd297ca6 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/IDbSpatialValue.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/IDbSpatialValue.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Data.Spatial;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/DmlSqlGenerator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/DmlSqlGenerator.cs
index b17cc173428..204292f95b3 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/DmlSqlGenerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/DmlSqlGenerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.SqlClient.SqlGen
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/ISqlFragment.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/ISqlFragment.cs
index 5d79af84cd9..226d33c0c22 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/ISqlFragment.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/ISqlFragment.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner katicad
+// @backupOwner sheetgu
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/JoinSymbol.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/JoinSymbol.cs
index 1d60e429917..75d80785795 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/JoinSymbol.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/JoinSymbol.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/OptionalColumn.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/OptionalColumn.cs
index b2c88e582ab..9670a2365ea 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/OptionalColumn.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/OptionalColumn.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/Sql8ConformanceChecker.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/Sql8ConformanceChecker.cs
index 9b6d3bc90d0..ce48bf2d0a9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/Sql8ConformanceChecker.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/Sql8ConformanceChecker.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.SqlClient.SqlGen
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/Sql8ExpressionRewriter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/Sql8ExpressionRewriter.cs
index 1fa8b4ca66f..f5493efc861 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/Sql8ExpressionRewriter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/Sql8ExpressionRewriter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlBuilder.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlBuilder.cs
index c680a0dc14c..f4ffc565d7d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlBuilder.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlBuilder.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlFunctionCallHandler.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlFunctionCallHandler.cs
index f749d5cf2da..c4a0316f634 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlFunctionCallHandler.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlFunctionCallHandler.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.SqlClient.SqlGen
@@ -1608,7 +1608,7 @@ namespace System.Data.SqlClient.SqlGen
// consistently return NULL as the result.
// However, if instead we use the optimized LIKE translation when the search param is a DbNullExpression,
// only SQL Server 2005 yields a True instead of a DbNull as compared to SQL Server 2008 and 2000. This is
- // bug 32315 in LIKE in SQL Server 2005.
+ //
result.Append("CHARINDEX( ");
result.Append(args[1].Accept(sqlgen));
result.Append(", ");
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlGenerator.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlGenerator.cs
index b09cca65743..ad5f46fd0fa 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlGenerator.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlGenerator.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.SqlClient.SqlGen
@@ -2495,7 +2495,7 @@ namespace System.Data.SqlClient.SqlGen
//Create the resulting statement
//See CreateNewSelectStatement, it is very similar
- //Future Enhancement ([....]): Refactor to avoid duplication with CreateNewSelectStatement if we
+ //Future Enhancement (Microsoft): Refactor to avoid duplication with CreateNewSelectStatement if we
// don't switch to using ExtensionExpression here
SqlSelectStatement result = new SqlSelectStatement();
result.From.Append("( ");
@@ -3694,7 +3694,7 @@ namespace System.Data.SqlClient.SqlGen
{
orderByClause.Append(separator);
orderByClause.Append(sortClause.Expression.Accept(this));
- // Bug 431021: COLLATE clause must precede ASC/DESC
+ //
Debug.Assert(sortClause.Collation != null);
if (!String.IsNullOrEmpty(sortClause.Collation))
{
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlSelectClauseBuilder.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlSelectClauseBuilder.cs
index 8c3b203bda9..83d2b247986 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlSelectClauseBuilder.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlSelectClauseBuilder.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlSelectStatement.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlSelectStatement.cs
index d44940d8d7f..3893137a57b 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlSelectStatement.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlSelectStatement.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlWriter.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlWriter.cs
index f8e4e2f0649..43973838759 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlWriter.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SqlWriter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/Symbol.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/Symbol.cs
index f5e8f20b300..5257812e00d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/Symbol.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/Symbol.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SymbolPair.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SymbolPair.cs
index 5624db4cb12..b1684aa77e2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SymbolPair.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SymbolPair.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SymbolTable.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SymbolTable.cs
index b47c8e69f0b..3cf8d038db9 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SymbolTable.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SymbolTable.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SymbolUsageManager.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SymbolUsageManager.cs
index d0572b75eda..7f9152076a6 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SymbolUsageManager.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/SymbolUsageManager.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/TopClause.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/TopClause.cs
index 5bd2c195a01..e09e2252f9c 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/TopClause.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlGen/TopClause.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlProviderManifest.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlProviderManifest.cs
index 3a0a4d3d06b..2553a4a330d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlProviderManifest.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlProviderManifest.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlProviderServices.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlProviderServices.cs
index aa28e6af8ca..a917faa6c45 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlProviderServices.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlProviderServices.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlProviderUtilities.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlProviderUtilities.cs
index 283abf3e60a..425b97d10a2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlProviderUtilities.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlProviderUtilities.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlSpatialDataReader.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlSpatialDataReader.cs
index 607dd1e2486..ef7b9c6a12d 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlSpatialDataReader.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlSpatialDataReader.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Data.Common.Utils;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlSpatialServices.Generated.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlSpatialServices.Generated.cs
index 4007c814665..6d749c83ac2 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlSpatialServices.Generated.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlSpatialServices.Generated.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//--------------------------------------------------------------------------
// This file is automatically generated and should not be changed directly.
//
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlSpatialServices.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlSpatialServices.cs
index cd5a2dec06b..d9e78705069 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlSpatialServices.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlSpatialServices.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlTypesAssembly.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlTypesAssembly.cs
index ee3eff1e56b..c9213bb2555 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlTypesAssembly.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlTypesAssembly.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner willa
-// @backupOwner [....]
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlVersion.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlVersion.cs
index 360a2599070..e9fc500e2f6 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlVersion.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/SqlClient/SqlVersion.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data.SqlClient
diff --git a/mcs/class/referencesource/System.Data.Entity/System/Data/UpdateException.cs b/mcs/class/referencesource/System.Data.Entity/System/Data/UpdateException.cs
index 7a1698868fb..739893c6754 100644
--- a/mcs/class/referencesource/System.Data.Entity/System/Data/UpdateException.cs
+++ b/mcs/class/referencesource/System.Data.Entity/System/Data/UpdateException.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Data
diff --git a/mcs/class/referencesource/System.Data.Entity/Util/AppSettings.cs b/mcs/class/referencesource/System.Data.Entity/Util/AppSettings.cs
index 9877ddace71..2617ed2dfc2 100644
--- a/mcs/class/referencesource/System.Data.Entity/Util/AppSettings.cs
+++ b/mcs/class/referencesource/System.Data.Entity/Util/AppSettings.cs
@@ -4,7 +4,7 @@
// </copyright>
//
// @owner daobando
-// @backupOwner [....]
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Specialized;
diff --git a/mcs/class/referencesource/System.Data.Linq/ChangeConflicts.cs b/mcs/class/referencesource/System.Data.Linq/ChangeConflicts.cs
index 81533527201..5ce354335c7 100644
--- a/mcs/class/referencesource/System.Data.Linq/ChangeConflicts.cs
+++ b/mcs/class/referencesource/System.Data.Linq/ChangeConflicts.cs
@@ -279,7 +279,7 @@ namespace System.Data.Linq {
private void ResolveDelete() {
Debug.Assert(this.IsDeleted);
// If the user is attempting to update an entity that no longer exists
- // in the database, we first need to [....] the delete into the local cache.
+ // in the database, we first need to sync the delete into the local cache.
if (!trackedObject.IsDeleted) {
trackedObject.ConvertToDeleted();
}
@@ -287,7 +287,7 @@ namespace System.Data.Linq {
// As the object have been deleted, it needs to leave the cache
this.Session.Context.Services.RemoveCachedObjectLike(trackedObject.Type, trackedObject.Original);
- // Now that our cache is in [....], we accept the changes
+ // Now that our cache is in sync, we accept the changes
this.trackedObject.AcceptChanges();
this.isResolved = true;
}
diff --git a/mcs/class/referencesource/System.Data.Linq/ChangeDirector.cs b/mcs/class/referencesource/System.Data.Linq/ChangeDirector.cs
index 96fc7db3bb7..74f9bf15133 100644
--- a/mcs/class/referencesource/System.Data.Linq/ChangeDirector.cs
+++ b/mcs/class/referencesource/System.Data.Linq/ChangeDirector.cs
@@ -45,14 +45,14 @@ namespace System.Data.Linq {
private enum AutoSyncBehavior { ApplyNewAutoSync, RollbackSavedValues }
DataContext context;
- [SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Justification="[....]: FxCop bug Dev10:423110 -- List<KeyValuePair<object, object>> is not supposed to be flagged as a violation.")]
+ [SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Justification="Microsoft: FxCop bug Dev10:423110 -- List<KeyValuePair<object, object>> is not supposed to be flagged as a violation.")]
List<KeyValuePair<TrackedObject, object[]>> syncRollbackItems;
internal StandardChangeDirector(DataContext context) {
this.context = context;
}
- [SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Justification="[....]: FxCop bug Dev10:423110 -- List<KeyValuePair<object, object>> is not supposed to be flagged as a violation.")]
+ [SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Justification="Microsoft: FxCop bug Dev10:423110 -- List<KeyValuePair<object, object>> is not supposed to be flagged as a violation.")]
private List<KeyValuePair<TrackedObject, object[]>> SyncRollbackItems {
get {
if (syncRollbackItems == null) {
@@ -89,7 +89,7 @@ namespace System.Data.Linq {
IEnumerable<object> facts = (IEnumerable<object>)this.context.Provider.Execute(cmd).ReturnValue;
object[] syncResults = (object[])facts.FirstOrDefault();
if (syncResults != null) {
- // [....] any auto gen or computed members
+ // sync any auto gen or computed members
AutoSyncMembers(syncResults, item, UpdateType.Insert, AutoSyncBehavior.ApplyNewAutoSync);
return 1;
}
@@ -142,7 +142,7 @@ namespace System.Data.Linq {
IEnumerable<object> facts = (IEnumerable<object>)this.context.Provider.Execute(cmd).ReturnValue;
object[] syncResults = (object[])facts.FirstOrDefault();
if (syncResults != null) {
- // [....] any auto gen or computed members
+ // sync any auto gen or computed members
AutoSyncMembers(syncResults, item, UpdateType.Update, AutoSyncBehavior.ApplyNewAutoSync);
return 1;
}
@@ -204,7 +204,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Justification="[....]: FxCop bug Dev10:423110 -- List<KeyValuePair<object, object>> is not supposed to be flagged as a violation.")]
+ [SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Justification="Microsoft: FxCop bug Dev10:423110 -- List<KeyValuePair<object, object>> is not supposed to be flagged as a violation.")]
internal override void RollbackAutoSync() {
// Rolls back any AutoSync values that may have been set already
// Those values are no longer valid since the transaction will be rolled back on the server
@@ -222,7 +222,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Justification="[....]: FxCop bug Dev10:423110 -- List<KeyValuePair<object, object>> is not supposed to be flagged as a violation.")]
+ [SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Justification="Microsoft: FxCop bug Dev10:423110 -- List<KeyValuePair<object, object>> is not supposed to be flagged as a violation.")]
internal override void ClearAutoSyncRollback() {
this.syncRollbackItems = null;
}
@@ -260,7 +260,7 @@ namespace System.Data.Linq {
private static List<MetaDataMember> GetAutoSyncMembers(MetaType metaType, UpdateType updateType) {
List<MetaDataMember> membersToSync = new List<MetaDataMember>();
foreach (MetaDataMember metaMember in metaType.PersistentDataMembers.OrderBy(m => m.Ordinal)) {
- // add all auto generated members for the specified update type to the auto-[....] list
+ // add all auto generated members for the specified update type to the auto-sync list
if ((updateType == UpdateType.Insert && metaMember.AutoSync == AutoSync.OnInsert) ||
(updateType == UpdateType.Update && metaMember.AutoSync == AutoSync.OnUpdate) ||
metaMember.AutoSync == AutoSync.Always) {
@@ -272,14 +272,14 @@ namespace System.Data.Linq {
/// <summary>
/// Synchronize the specified item by copying in data from the specified results.
- /// Used to [....] members after successful insert or update, but also used to rollback to previous values if a failure
+ /// Used to sync members after successful insert or update, but also used to rollback to previous values if a failure
/// occurs on other entities in the same SubmitChanges batch.
/// </summary>
/// <param name="autoSyncBehavior">
- /// If AutoSyncBehavior.ApplyNewAutoSync, the current value of the property is saved before the [....] occurs. This is used for normal synchronization after a successful update/insert.
- /// Otherwise, the current value is not saved. This is used for rollback operations when something in the SubmitChanges batch failed, rendering the previously-[....]'d values invalid.
+ /// If AutoSyncBehavior.ApplyNewAutoSync, the current value of the property is saved before the sync occurs. This is used for normal synchronization after a successful update/insert.
+ /// Otherwise, the current value is not saved. This is used for rollback operations when something in the SubmitChanges batch failed, rendering the previously-sync'd values invalid.
/// </param>
- [SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Justification="[....]: FxCop bug Dev10:423110 -- List<KeyValuePair<object, object>> is not supposed to be flagged as a violation.")]
+ [SuppressMessage("Microsoft.MSInternal", "CA908:AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies", Justification="Microsoft: FxCop bug Dev10:423110 -- List<KeyValuePair<object, object>> is not supposed to be flagged as a violation.")]
private void AutoSyncMembers(object[] syncResults, TrackedObject item, UpdateType updateType, AutoSyncBehavior autoSyncBehavior) {
System.Diagnostics.Debug.Assert(item != null);
System.Diagnostics.Debug.Assert(item.IsNew || item.IsPossiblyModified, "AutoSyncMembers should only be called for new and modified objects.");
diff --git a/mcs/class/referencesource/System.Data.Linq/ChangeProcessor.cs b/mcs/class/referencesource/System.Data.Linq/ChangeProcessor.cs
index 4eaa79b5a06..0affa3cb60a 100644
--- a/mcs/class/referencesource/System.Data.Linq/ChangeProcessor.cs
+++ b/mcs/class/referencesource/System.Data.Linq/ChangeProcessor.cs
@@ -115,9 +115,9 @@ namespace System.Data.Linq {
// if we have accumulated any failed updates, throw the exception now
if (conflicts.Count > 0) {
- // First we need to rollback any value that have already been auto-[....]'d, since the values are no longer valid on the server
+ // First we need to rollback any value that have already been auto-sync'd, since the values are no longer valid on the server
changeDirector.RollbackAutoSync();
- // Also rollback any dependent items that were [....]'d, since their parent values may have been rolled back
+ // Also rollback any dependent items that were sync'd, since their parent values may have been rolled back
foreach (TrackedObject syncDependentItem in syncDependentItems) {
Debug.Assert(syncDependentItem.IsNew || syncDependentItem.IsPossiblyModified, "SynchDependent data should only be rolled back for new and modified objects.");
syncDependentItem.SynchDependentData();
diff --git a/mcs/class/referencesource/System.Data.Linq/ChangeTracker.cs b/mcs/class/referencesource/System.Data.Linq/ChangeTracker.cs
index 76d80426bb1..4e850afa9b4 100644
--- a/mcs/class/referencesource/System.Data.Linq/ChangeTracker.cs
+++ b/mcs/class/referencesource/System.Data.Linq/ChangeTracker.cs
@@ -560,7 +560,7 @@ namespace System.Data.Linq {
}
}
- // Return value indicates whether or not any data was actually [....]'d
+ // Return value indicates whether or not any data was actually sync'd
internal override bool SynchDependentData() {
bool valueWasSet = false;
diff --git a/mcs/class/referencesource/System.Data.Linq/CompiledQuery.cs b/mcs/class/referencesource/System.Data.Linq/CompiledQuery.cs
index 275883b0227..ee789b785f3 100644
--- a/mcs/class/referencesource/System.Data.Linq/CompiledQuery.cs
+++ b/mcs/class/referencesource/System.Data.Linq/CompiledQuery.cs
@@ -31,7 +31,7 @@ namespace System.Data.Linq {
get { return this.query; }
}
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
public static Func<TArg0, TResult> Compile<TArg0, TResult>(Expression<Func<TArg0, TResult>> query) where TArg0 : DataContext {
if (query == null) {
Error.ArgumentNull("query");
@@ -44,7 +44,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
public static Func<TArg0, TArg1, TResult> Compile<TArg0, TArg1, TResult>(Expression<Func<TArg0, TArg1, TResult>> query) where TArg0 : DataContext {
if (query == null) {
Error.ArgumentNull("query");
@@ -57,7 +57,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
public static Func<TArg0, TArg1, TArg2, TResult> Compile<TArg0, TArg1, TArg2, TResult>(Expression<Func<TArg0, TArg1, TArg2, TResult>> query) where TArg0 : DataContext {
if (query == null) {
Error.ArgumentNull("query");
@@ -70,7 +70,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
public static Func<TArg0, TArg1, TArg2, TArg3, TResult> Compile<TArg0, TArg1, TArg2, TArg3, TResult>(Expression<Func<TArg0, TArg1, TArg2, TArg3, TResult>> query) where TArg0 : DataContext {
if (query == null) {
Error.ArgumentNull("query");
@@ -83,7 +83,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
public static Func<TArg0, TArg1, TArg2, TArg3, TArg4, TResult> Compile<TArg0, TArg1, TArg2, TArg3, TArg4, TResult>(Expression<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TResult>> query) where TArg0 : DataContext {
if (query == null) {
Error.ArgumentNull("query");
@@ -96,7 +96,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
public static Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TResult> Compile<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TResult>(Expression<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TResult>> query) where TArg0 : DataContext {
if (query == null) {
Error.ArgumentNull("query");
@@ -109,7 +109,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
public static Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TResult> Compile<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TResult>(Expression<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TResult>> query) where TArg0 : DataContext {
if (query == null) {
Error.ArgumentNull("query");
@@ -122,7 +122,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
public static Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TResult> Compile<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TResult>(Expression<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TResult>> query) where TArg0 : DataContext {
if (query == null) {
Error.ArgumentNull("query");
@@ -135,7 +135,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
public static Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TResult> Compile<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TResult>(Expression<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TResult>> query) where TArg0 : DataContext {
if (query == null) {
Error.ArgumentNull("query");
@@ -148,7 +148,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
public static Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TResult> Compile<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TResult>(Expression<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TResult>> query) where TArg0 : DataContext {
if (query == null) {
Error.ArgumentNull("query");
@@ -161,7 +161,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
public static Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TResult> Compile<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TResult>(Expression<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TResult>> query) where TArg0 : DataContext {
if (query == null) {
Error.ArgumentNull("query");
@@ -174,7 +174,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
public static Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TResult> Compile<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TResult>(Expression<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TResult>> query) where TArg0 : DataContext {
if (query == null) {
Error.ArgumentNull("query");
@@ -187,7 +187,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
public static Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TResult> Compile<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TResult>(Expression<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TResult>> query) where TArg0 : DataContext {
if (query == null) {
Error.ArgumentNull("query");
@@ -200,7 +200,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
public static Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TResult> Compile<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TResult>(Expression<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TResult>> query) where TArg0 : DataContext {
if (query == null) {
Error.ArgumentNull("query");
@@ -213,7 +213,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
public static Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TResult> Compile<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TResult>(Expression<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TResult>> query) where TArg0 : DataContext {
if (query == null) {
Error.ArgumentNull("query");
@@ -226,7 +226,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
public static Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TResult> Compile<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TResult>(Expression<Func<TArg0, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TResult>> query) where TArg0 : DataContext {
if (query == null) {
Error.ArgumentNull("query");
diff --git a/mcs/class/referencesource/System.Data.Linq/DataContext.cs b/mcs/class/referencesource/System.Data.Linq/DataContext.cs
index 5d7fb47e71f..822c6ea1bef 100644
--- a/mcs/class/referencesource/System.Data.Linq/DataContext.cs
+++ b/mcs/class/referencesource/System.Data.Linq/DataContext.cs
@@ -352,7 +352,7 @@ namespace System.Data.Linq {
/// <typeparam name="TEntity">The type of the entity objects. In case of a persistent hierarchy
/// the entity specified must be the base type of the hierarchy.</typeparam>
/// <returns></returns>
- [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "[....]: Generic parameters are required for strong-typing of the return type.")]
+ [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "Microsoft: Generic parameters are required for strong-typing of the return type.")]
public Table<TEntity> GetTable<TEntity>() where TEntity : class {
CheckDispose();
MetaTable metaTable = this.services.Model.GetTable(typeof(TEntity));
@@ -483,7 +483,7 @@ namespace System.Data.Linq {
/// You can override this method to implement common conflict resolution behaviors.
/// </summary>
/// <param name="failureMode">Determines how SubmitChanges handles conflicts.</param>
- [SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Justification = "[....]: In the middle of attempting to rollback a transaction, outer transaction is thrown.")]
+ [SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Justification = "Microsoft: In the middle of attempting to rollback a transaction, outer transaction is thrown.")]
public virtual void SubmitChanges(ConflictMode failureMode) {
CheckDispose();
CheckNotInSubmitChanges();
@@ -718,7 +718,7 @@ namespace System.Data.Linq {
/// <param name="query">The query specified in the server's native query language.</param>
/// <param name="parameters">The parameter values to use for the query.</param>
/// <returns>An IEnumerable sequence of objects.</returns>
- [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "[....]: Generic parameters are required for strong-typing of the return type.")]
+ [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "Microsoft: Generic parameters are required for strong-typing of the return type.")]
public IEnumerable<TResult> ExecuteQuery<TResult>(string query, params object[] parameters) {
CheckDispose();
if (query == null) {
@@ -786,7 +786,7 @@ namespace System.Data.Linq {
/// <param name="methodInfo">The reflection MethodInfo for the method to invoke.</param>
/// <param name="parameters">The parameters for the method call.</param>
/// <returns>The returned query object</returns>
- [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "[....]: Generic parameters are required for strong-typing of the return type.")]
+ [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "Microsoft: Generic parameters are required for strong-typing of the return type.")]
internal protected IQueryable<TResult> CreateMethodCallQuery<TResult>(object instance, MethodInfo methodInfo, params object[] parameters) {
CheckDispose();
if (instance == null) {
@@ -884,7 +884,7 @@ namespace System.Data.Linq {
/// <typeparam name="TResult">The element type of the resulting sequence</typeparam>
/// <param name="reader">The DbDataReader to translate</param>
/// <returns>The translated sequence of objects</returns>
- [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "[....]: Generic parameters are required for strong-typing of the return type.")]
+ [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "Microsoft: Generic parameters are required for strong-typing of the return type.")]
public IEnumerable<TResult> Translate<TResult>(DbDataReader reader) {
CheckDispose();
return (IEnumerable<TResult>)this.Translate(typeof(TResult), reader);
@@ -999,7 +999,7 @@ namespace System.Data.Linq {
/// ITable is the common interface for DataContext tables. It can be used as the source
/// of a dynamic/runtime-generated query.
/// </summary>
- [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification="[....]: Meant to represent a database table which is delayed loaded and doesn't provide collection semantics.")]
+ [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification="Microsoft: Meant to represent a database table which is delayed loaded and doesn't provide collection semantics.")]
public interface ITable : IQueryable {
/// <summary>
/// The DataContext containing this Table.
@@ -1102,7 +1102,7 @@ namespace System.Data.Linq {
/// persisted in the database. Use it as a source of queries and to add/insert and remove/delete entities.
/// </summary>
/// <typeparam name="TEntity"></typeparam>
- [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification="[....]: Meant to represent a database table which is delayed loaded and doesn't provide collection semantics.")]
+ [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification="Microsoft: Meant to represent a database table which is delayed loaded and doesn't provide collection semantics.")]
public sealed class Table<TEntity> : IQueryable<TEntity>, IQueryProvider, IEnumerable<TEntity>, IQueryable, IEnumerable, ITable, IListSource, ITable<TEntity>
where TEntity : class {
DataContext context;
@@ -1156,7 +1156,7 @@ namespace System.Data.Linq {
return (IQueryable)Activator.CreateInstance(dqType, new object[] { this.context, expression });
}
- [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "[....]: Generic parameters are required for strong-typing of the return type.")]
+ [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "Microsoft: Generic parameters are required for strong-typing of the return type.")]
IQueryable<TResult> IQueryProvider.CreateQuery<TResult>(Expression expression) {
if (expression == null) {
throw Error.ArgumentNull("expression");
@@ -1171,7 +1171,7 @@ namespace System.Data.Linq {
return this.context.Provider.Execute(expression).ReturnValue;
}
- [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "[....]: Generic parameters are required for strong-typing of the return type.")]
+ [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "Microsoft: Generic parameters are required for strong-typing of the return type.")]
TResult IQueryProvider.Execute<TResult>(Expression expression) {
return (TResult)this.context.Provider.Execute(expression).ReturnValue;
}
@@ -1680,7 +1680,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Performance", "CA1815:OverrideEqualsAndOperatorEqualsOnValueTypes", Justification = "[....]: Types are never compared to each other. When comparisons happen it is against the entities that are represented by these constructs.")]
+ [SuppressMessage("Microsoft.Performance", "CA1815:OverrideEqualsAndOperatorEqualsOnValueTypes", Justification = "Microsoft: Types are never compared to each other. When comparisons happen it is against the entities that are represented by these constructs.")]
public struct ModifiedMemberInfo {
MemberInfo member;
object current;
diff --git a/mcs/class/referencesource/System.Data.Linq/DataShape.cs b/mcs/class/referencesource/System.Data.Linq/DataShape.cs
index e46bb6ee15c..940b746fa2d 100644
--- a/mcs/class/referencesource/System.Data.Linq/DataShape.cs
+++ b/mcs/class/referencesource/System.Data.Linq/DataShape.cs
@@ -17,8 +17,8 @@ namespace System.Data.Linq {
/// <summary>
/// Describe a property that is automatically loaded when the containing instance is loaded
/// </summary>
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
- [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Justification = "[....]: Need to provide static typing.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Justification = "Microsoft: Need to provide static typing.")]
public void LoadWith<T>(Expression<Func<T, object>> expression) {
if (expression == null) {
throw Error.ArgumentNull("expression");
@@ -41,8 +41,8 @@ namespace System.Data.Linq {
/// <summary>
/// Place a subquery on the given association.
/// </summary>
- [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "[....]: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
- [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Justification = "[....]: Need to provide static typing.")]
+ [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "Microsoft: Generic types are an important part of Linq APIs and they could not exist without nested generic support.")]
+ [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Justification = "Microsoft: Need to provide static typing.")]
public void AssociateWith<T>(Expression<Func<T, object>> expression) {
if (expression == null) {
throw Error.ArgumentNull("expression");
@@ -234,7 +234,7 @@ namespace System.Data.Linq {
}
edges = newEdges;
}
- throw new InvalidOperationException("Bug in ValidateTypeGraphAcyclic"); // Getting here means a bug.
+ throw new InvalidOperationException("Bug in ValidateTypeGraphAcyclic"); // Getting here means a
}
private static Type GetIncludeTarget(MemberInfo mi) {
diff --git a/mcs/class/referencesource/System.Data.Linq/DbConvert.cs b/mcs/class/referencesource/System.Data.Linq/DbConvert.cs
index 03af1adc404..7d21b20de9b 100644
--- a/mcs/class/referencesource/System.Data.Linq/DbConvert.cs
+++ b/mcs/class/referencesource/System.Data.Linq/DbConvert.cs
@@ -15,12 +15,12 @@ namespace System.Data.Linq {
public static class DBConvert {
private static Type[] StringArg = new Type[] { typeof(string) };
- [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "[....]: Generic parameters are required for strong-typing of the return type.")]
+ [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "Microsoft: Generic parameters are required for strong-typing of the return type.")]
public static T ChangeType<T>(object value) {
return (T)ChangeType(value, typeof(T));
}
- [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification = "[....]: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
+ [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification = "Microsoft: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
[SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification = "These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")]
public static object ChangeType(object value, Type type) {
if (value == null)
diff --git a/mcs/class/referencesource/System.Data.Linq/FunctionResults.cs b/mcs/class/referencesource/System.Data.Linq/FunctionResults.cs
index 2a8050fb295..3deee1bf5c3 100644
--- a/mcs/class/referencesource/System.Data.Linq/FunctionResults.cs
+++ b/mcs/class/referencesource/System.Data.Linq/FunctionResults.cs
@@ -35,7 +35,7 @@ namespace System.Data.Linq {
/// <summary>
/// An interface for representing the result of a mapped function with a single return sequence.
/// </summary>
- [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification="[....]: Meant to represent a database table which is delayed loaded and doesn't provide collection semantics.")]
+ [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification="tadam: Meant to represent a database table which is delayed loaded and doesn't provide collection semantics.")]
public interface ISingleResult<T> : IEnumerable<T>, IFunctionResult, IDisposable { }
/// <summary>
@@ -47,7 +47,7 @@ namespace System.Data.Linq {
/// </summary>
/// <typeparam name="TElement"></typeparam>
/// <returns></returns>
- [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "[....]: Generic parameters are required for strong-typing of the return type.")]
+ [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "tadam: Generic parameters are required for strong-typing of the return type.")]
IEnumerable<TElement> GetResult<TElement>();
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.Linq/IdentityManager.cs b/mcs/class/referencesource/System.Data.Linq/IdentityManager.cs
index 414c1934337..dbc4eae8f3d 100644
--- a/mcs/class/referencesource/System.Data.Linq/IdentityManager.cs
+++ b/mcs/class/referencesource/System.Data.Linq/IdentityManager.cs
@@ -97,8 +97,8 @@ namespace System.Data.Linq {
#region Nested type definitions
// These types are internal rather than private to work around
- // CLR bug #117419 related to type visibility under partial trust
- // in nested class scenarios.
+ // CLR
+
internal abstract class KeyManager {
internal abstract Type KeyType { get; }
diff --git a/mcs/class/referencesource/System.Data.Linq/Mapping/MetaModel.cs b/mcs/class/referencesource/System.Data.Linq/Mapping/MetaModel.cs
index d07e222bafd..68b69b3defc 100644
--- a/mcs/class/referencesource/System.Data.Linq/Mapping/MetaModel.cs
+++ b/mcs/class/referencesource/System.Data.Linq/Mapping/MetaModel.cs
@@ -501,7 +501,7 @@ namespace System.Data.Linq.Mapping {
/// </summary>
/// <param name="instance">The instance to set the value into.</param>
/// <param name="value">The value to set.</param>
- [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification="[....]: Needs to handle classes and structs.")]
+ [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification="Microsoft: Needs to handle classes and structs.")]
[SuppressMessage("Microsoft.Design", "CA1045:DoNotPassTypesByReference", Justification="Unknown reason.")]
public abstract void SetBoxedValue(ref object instance, object value);
/// <summary>
diff --git a/mcs/class/referencesource/System.Data.Linq/Provider/IProvider.cs b/mcs/class/referencesource/System.Data.Linq/Provider/IProvider.cs
index 56eccaa93be..98438415b0c 100644
--- a/mcs/class/referencesource/System.Data.Linq/Provider/IProvider.cs
+++ b/mcs/class/referencesource/System.Data.Linq/Provider/IProvider.cs
@@ -140,8 +140,8 @@ namespace System.Data.Linq.Provider {
/// <param name="item"></param>
/// <param name="resultSelector"></param>
/// <returns></returns>
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "item", Justification = "[....]: The method is being used to represent a method signature")]
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "resultSelector", Justification = "[....]: The method is being used to represent a method signature")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "item", Justification = "Microsoft: The method is being used to represent a method signature")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "resultSelector", Justification = "Microsoft: The method is being used to represent a method signature")]
public static TResult Insert<TEntity, TResult>(TEntity item, Func<TEntity, TResult> resultSelector) {
throw new NotImplementedException();
}
@@ -152,7 +152,7 @@ namespace System.Data.Linq.Provider {
/// <typeparam name="TEntity"></typeparam>
/// <param name="item"></param>
/// <returns></returns>
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "item", Justification = "[....]: The method is being used to represent a method signature")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "item", Justification = "Microsoft: The method is being used to represent a method signature")]
public static int Insert<TEntity>(TEntity item) {
throw new NotImplementedException();
}
@@ -166,9 +166,9 @@ namespace System.Data.Linq.Provider {
/// <param name="check"></param>
/// <param name="resultSelector"></param>
/// <returns></returns>
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "item", Justification = "[....]: The method is being used to represent a method signature")]
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "check", Justification = "[....]: The method is being used to represent a method signature")]
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "resultSelector", Justification = "[....]: The method is being used to represent a method signature")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "item", Justification = "Microsoft: The method is being used to represent a method signature")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "check", Justification = "Microsoft: The method is being used to represent a method signature")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "resultSelector", Justification = "Microsoft: The method is being used to represent a method signature")]
public static TResult Update<TEntity, TResult>(TEntity item, Func<TEntity, bool> check, Func<TEntity, TResult> resultSelector) {
throw new NotImplementedException();
}
@@ -181,8 +181,8 @@ namespace System.Data.Linq.Provider {
/// <param name="item"></param>
/// <param name="resultSelector"></param>
/// <returns></returns>
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "item", Justification = "[....]: The method is being used to represent a method signature")]
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "resultSelector", Justification = "[....]: The method is being used to represent a method signature")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "item", Justification = "Microsoft: The method is being used to represent a method signature")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "resultSelector", Justification = "Microsoft: The method is being used to represent a method signature")]
public static TResult Update<TEntity, TResult>(TEntity item, Func<TEntity, TResult> resultSelector) {
throw new NotImplementedException();
}
@@ -194,8 +194,8 @@ namespace System.Data.Linq.Provider {
/// <param name="item"></param>
/// <param name="check"></param>
/// <returns></returns>
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "item", Justification = "[....]: The method is being used to represent a method signature")]
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "check", Justification = "[....]: The method is being used to represent a method signature")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "item", Justification = "Microsoft: The method is being used to represent a method signature")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "check", Justification = "Microsoft: The method is being used to represent a method signature")]
public static int Update<TEntity>(TEntity item, Func<TEntity, bool> check) {
throw new NotImplementedException();
}
@@ -206,7 +206,7 @@ namespace System.Data.Linq.Provider {
/// <typeparam name="TEntity"></typeparam>
/// <param name="item"></param>
/// <returns></returns>
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "item", Justification = "[....]: The method is being used to represent a method signature")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "item", Justification = "Microsoft: The method is being used to represent a method signature")]
public static int Update<TEntity>(TEntity item) {
throw new NotImplementedException();
}
@@ -218,8 +218,8 @@ namespace System.Data.Linq.Provider {
/// <param name="item"></param>
/// <param name="check"></param>
/// <returns></returns>
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "item", Justification = "[....]: The method is being used to represent a method signature")]
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "check", Justification = "[....]: The method is being used to represent a method signature")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "item", Justification = "Microsoft: The method is being used to represent a method signature")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "check", Justification = "Microsoft: The method is being used to represent a method signature")]
public static int Delete<TEntity>(TEntity item, Func<TEntity, bool> check) {
throw new NotImplementedException();
}
@@ -230,7 +230,7 @@ namespace System.Data.Linq.Provider {
/// <typeparam name="TEntity"></typeparam>
/// <param name="item"></param>
/// <returns></returns>
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "item", Justification = "[....]: The method is being used to represent a method signature")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "item", Justification = "Microsoft: The method is being used to represent a method signature")]
public static int Delete<TEntity>(TEntity item) {
throw new NotImplementedException();
}
diff --git a/mcs/class/referencesource/System.Data.Linq/SqlClient/Common/SqlVisitor.cs b/mcs/class/referencesource/System.Data.Linq/SqlClient/Common/SqlVisitor.cs
index 9f35835e429..87d874585ce 100644
--- a/mcs/class/referencesource/System.Data.Linq/SqlClient/Common/SqlVisitor.cs
+++ b/mcs/class/referencesource/System.Data.Linq/SqlClient/Common/SqlVisitor.cs
@@ -9,7 +9,7 @@ namespace System.Data.Linq.SqlClient {
int nDepth;
// Visit a SqlNode
- [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification="[....]: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
+ [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification="Microsoft: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
[SuppressMessage("Microsoft.Maintainability", "CA1506:AvoidExcessiveClassCoupling", Justification = "These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")]
[SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification = "These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")]
internal virtual SqlNode Visit(SqlNode node) {
diff --git a/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/Funcletizer.cs b/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/Funcletizer.cs
index 57d09b761ad..50ccc2c6d09 100644
--- a/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/Funcletizer.cs
+++ b/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/Funcletizer.cs
@@ -142,7 +142,7 @@ namespace System.Data.Linq.SqlClient {
}
[SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification = "These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")]
- [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification = "[....]: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
+ [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification = "Microsoft: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
internal virtual Expression Visit(Expression exp) {
if (exp == null)
return exp;
diff --git a/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/QueryConverter.cs b/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/QueryConverter.cs
index 55ae51ee957..a9135481d56 100644
--- a/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/QueryConverter.cs
+++ b/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/QueryConverter.cs
@@ -143,7 +143,7 @@ namespace System.Data.Linq.SqlClient {
return result;
}
- [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification = "[....]: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
+ [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification = "Microsoft: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
[SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification = "These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")]
private SqlNode VisitInner(Expression node) {
if (node == null) return null;
diff --git a/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlBinder.cs b/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlBinder.cs
index 26645270af2..6d5c6e6156b 100644
--- a/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlBinder.cs
+++ b/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlBinder.cs
@@ -1266,7 +1266,7 @@ namespace System.Data.Linq.SqlClient {
throw Error.UnexpectedNode(node.NodeType);
}
- [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification = "[....]: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
+ [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification = "Microsoft: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
[SuppressMessage("Microsoft.Maintainability", "CA1506:AvoidExcessiveClassCoupling", Justification = "These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")]
[SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification = "These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")]
internal SqlExpression ConvertToFetchedExpression(SqlNode node) {
diff --git a/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlComparer.cs b/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlComparer.cs
index 06a76c701a1..d70c0becbe9 100644
--- a/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlComparer.cs
+++ b/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlComparer.cs
@@ -13,7 +13,7 @@ namespace System.Data.Linq.SqlClient {
internal SqlComparer() {
}
- [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification = "[....]: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
+ [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification = "Microsoft: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
[SuppressMessage("Microsoft.Maintainability", "CA1506:AvoidExcessiveClassCoupling", Justification = "These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")]
[SuppressMessage("Microsoft.Maintainability", "CA1505:AvoidUnmaintainableCode", Justification = "These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")]
[SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification = "These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")]
diff --git a/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlDeflator.cs b/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlDeflator.cs
index b290c007cd7..ed4f0e66eca 100644
--- a/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlDeflator.cs
+++ b/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlDeflator.cs
@@ -236,7 +236,7 @@ namespace System.Data.Linq.SqlClient {
return select;
}
- [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification="[....]: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
+ [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification="Microsoft: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
private void CheckJoinCondition(SqlExpression expr) {
switch (expr.NodeType) {
case SqlNodeType.And: {
diff --git a/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlFlattener.cs b/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlFlattener.cs
index 9b7d7de01af..9717a97a0cc 100644
--- a/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlFlattener.cs
+++ b/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlFlattener.cs
@@ -20,7 +20,7 @@ namespace System.Data.Linq.SqlClient {
}
class Visitor : SqlVisitor {
- [SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "[....]: part of our standard visitor pattern")]
+ [SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "Microsoft: part of our standard visitor pattern")]
SqlFactory sql;
SqlColumnizer columnizer;
bool isTopLevel;
diff --git a/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlMethodCallConverter.cs b/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlMethodCallConverter.cs
index ddbca5a93db..79be6fe37eb 100644
--- a/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlMethodCallConverter.cs
+++ b/mcs/class/referencesource/System.Data.Linq/SqlClient/Query/SqlMethodCallConverter.cs
@@ -939,7 +939,7 @@ namespace System.Data.Linq.SqlClient {
//Recognized pattern has set return value so return
if (returnValue != null) {
- // Assert here to verify that actual translation stays in [....] with
+ // Assert here to verify that actual translation stays in sync with
// method support logic
Debug.Assert(GetMethodSupport(mc) == MethodSupport.Method);
return returnValue;
@@ -973,7 +973,7 @@ namespace System.Data.Linq.SqlClient {
returnValue = TranslateDateTimeOffsetInstanceMethod(mc);
}
if (returnValue != null) {
- // Assert here to verify that actual translation stays in [....] with
+ // Assert here to verify that actual translation stays in sync with
// method support logic
Debug.Assert(GetMethodSupport(mc) == MethodSupport.Method);
return returnValue;
@@ -2159,7 +2159,7 @@ namespace System.Data.Linq.SqlClient {
throw GetMethodSupportException(mc);
}
- [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification = "[....]: These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")]
+ [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification = "Microsoft: These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")]
internal override SqlNode VisitMember(SqlMember m) {
SqlExpression exp = this.VisitExpression(m.Expression);
MemberInfo member = m.Member;
diff --git a/mcs/class/referencesource/System.Data.Linq/SqlClient/Reader/ObjectReader.cs b/mcs/class/referencesource/System.Data.Linq/SqlClient/Reader/ObjectReader.cs
index 2b2b6fd3062..af65ca3c364 100644
--- a/mcs/class/referencesource/System.Data.Linq/SqlClient/Reader/ObjectReader.cs
+++ b/mcs/class/referencesource/System.Data.Linq/SqlClient/Reader/ObjectReader.cs
@@ -42,4 +42,4 @@ namespace System.Data.Linq.SqlClient {
internal interface ICompiledSubQuery {
IExecuteResult Execute(IProvider provider, object[] parentArgs, object[] userArgs);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.Linq/SqlClient/Reader/ObjectReaderCompiler.cs b/mcs/class/referencesource/System.Data.Linq/SqlClient/Reader/ObjectReaderCompiler.cs
index 44139f927c2..70507c24596 100644
--- a/mcs/class/referencesource/System.Data.Linq/SqlClient/Reader/ObjectReaderCompiler.cs
+++ b/mcs/class/referencesource/System.Data.Linq/SqlClient/Reader/ObjectReaderCompiler.cs
@@ -35,18 +35,18 @@ namespace System.Data.Linq.SqlClient {
[SuppressMessage("Microsoft.Design", "CA1012:AbstractTypesShouldNotHaveConstructors", Justification = "Unknown reason.")]
public abstract class ObjectMaterializer<TDataReader> where TDataReader : DbDataReader {
// These are public fields rather than properties for access speed
- [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "[....]: This is a public type that is not intended for public use.")]
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Microsoft: This is a public type that is not intended for public use.")]
public int[] Ordinals;
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Globals", Justification = "Spelling is correct.")]
- [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "[....]: This is a public type that is not intended for public use.")]
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Microsoft: This is a public type that is not intended for public use.")]
public object[] Globals;
- [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "[....]: This is a public type that is not intended for public use.")]
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Microsoft: This is a public type that is not intended for public use.")]
public object[] Locals;
- [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "[....]: This is a public type that is not intended for public use.")]
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Microsoft: This is a public type that is not intended for public use.")]
public object[] Arguments;
- [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "[....]: This is a public type that is not intended for public use.")]
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Microsoft: This is a public type that is not intended for public use.")]
public TDataReader DataReader;
- [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "[....]: This is a public type that is not intended for public use.")]
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Microsoft: This is a public type that is not intended for public use.")]
public DbDataReader BufferReader;
public ObjectMaterializer() {
@@ -57,16 +57,16 @@ namespace System.Data.Linq.SqlClient {
public abstract void SendEntityMaterialized(int globalMetaType, object instance);
public abstract IEnumerable ExecuteSubQuery(int iSubQuery, object[] args);
- [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "[....]: Generic parameters are required for strong-typing of the return type.")]
+ [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "Microsoft: Generic parameters are required for strong-typing of the return type.")]
public abstract IEnumerable<T> GetLinkSource<T>(int globalLink, int localFactory, object[] keyValues);
- [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "[....]: Generic parameters are required for strong-typing of the return type.")]
+ [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "Microsoft: Generic parameters are required for strong-typing of the return type.")]
public abstract IEnumerable<T> GetNestedLinkSource<T>(int globalLink, int localFactory, object instance);
public abstract bool Read();
public abstract bool CanDeferLoad { get; }
[SuppressMessage("Microsoft.Design", "CA1000:DoNotDeclareStaticMembersOnGenericTypes", Justification = "xiaoruda: The method has to be static because it's used in our generated code and there is no instance of the type.")]
- [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "[....]: Generic parameters are required for strong-typing of the return type.")]
+ [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "Microsoft: Generic parameters are required for strong-typing of the return type.")]
public static IEnumerable<TOutput> Convert<TOutput>(IEnumerable source) {
foreach (object value in source) {
yield return DBConvert.ChangeType<TOutput>(value);
@@ -717,7 +717,7 @@ namespace System.Data.Linq.SqlClient {
return this.Generate(node, null);
}
- [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification = "[....]: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
+ [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification = "Microsoft: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
[SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification = "These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")]
private Type Generate(SqlNode node, LocalBuilder locInstance) {
#if DEBUG
@@ -2212,7 +2212,7 @@ namespace System.Data.Linq.SqlClient {
}
}
- [SuppressMessage("Microsoft.Performance", "CA1804:RemoveUnusedLocals", Justification = "[....]: The variable tc for which the rule fires is used in both a Debug.Assert and in a switch statement")]
+ [SuppressMessage("Microsoft.Performance", "CA1804:RemoveUnusedLocals", Justification = "Microsoft: The variable tc for which the rule fires is used in both a Debug.Assert and in a switch statement")]
private void GenerateArrayAssign(Type type) {
// This method was copied out of the expression compiler codebase.
// Since DLINQ doesn't currently consume array indexers most of this
@@ -2263,7 +2263,7 @@ namespace System.Data.Linq.SqlClient {
}
}
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "address", Justification = "[....]: See comments in source. Usage commented out to improve code coverage test")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "address", Justification = "Microsoft: See comments in source. Usage commented out to improve code coverage test")]
private Type GenerateArrayAccess(Type type, bool address) {
// This method was copied out of the expression compiler codebase.
// Since DLINQ doesn't currently consume array indexers most of this
@@ -2517,7 +2517,7 @@ namespace System.Data.Linq.SqlClient {
get { return this.BufferReader != null; }
}
- [SuppressMessage("Microsoft.Globalization", "CA1306:SetLocaleForDataTypes", Justification = "[....]: Used only as a buffer and never used for string comparison.")]
+ [SuppressMessage("Microsoft.Globalization", "CA1306:SetLocaleForDataTypes", Justification = "Microsoft: Used only as a buffer and never used for string comparison.")]
internal void Buffer() {
if (this.BufferReader == null && (this.hasCurrentRow || !this.hasRead)) {
if (this.session.IsBuffered) {
@@ -2801,7 +2801,7 @@ namespace System.Data.Linq.SqlClient {
get { return this.buffer != null; }
}
- [SuppressMessage("Microsoft.Globalization", "CA1306:SetLocaleForDataTypes", Justification = "[....]: Used only as a buffer and never used for string comparison.")]
+ [SuppressMessage("Microsoft.Globalization", "CA1306:SetLocaleForDataTypes", Justification = "Microsoft: Used only as a buffer and never used for string comparison.")]
public void Buffer() {
if (this.buffer == null) {
if (this.currentReader != null && !this.currentReader.IsBuffered) {
diff --git a/mcs/class/referencesource/System.Data.Linq/SqlClient/SqlMethods.cs b/mcs/class/referencesource/System.Data.Linq/SqlClient/SqlMethods.cs
index e11bca1e8a5..da3696d31d1 100644
--- a/mcs/class/referencesource/System.Data.Linq/SqlClient/SqlMethods.cs
+++ b/mcs/class/referencesource/System.Data.Linq/SqlClient/SqlMethods.cs
@@ -562,8 +562,8 @@ namespace System.Data.Linq.SqlClient {
/// <param name="match_expression">The string that is to be matched.</param>
/// <param name="pattern">The pattern which may involve wildcards %,_,[,],^.</param>
/// <returns>true if there is a match.</returns>
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "pattern", Justification = "[....]: Method is a placeholder for a server-side method.")]
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "matchExpression", Justification = "[....]: Method is a placeholder for a server-side method.")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "pattern", Justification = "Microsoft: Method is a placeholder for a server-side method.")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "matchExpression", Justification = "Microsoft: Method is a placeholder for a server-side method.")]
public static bool Like(string matchExpression, string pattern) {
throw Error.SqlMethodOnlyForSql(MethodInfo.GetCurrentMethod());
}
@@ -576,9 +576,9 @@ namespace System.Data.Linq.SqlClient {
/// <param name="pattern">The pattern which may involve wildcards %,_,[,],^.</param>
/// <param name="escape_character">The escape character to use in front of %,_,[,],^ if they are not used as wildcards.</param>
/// <returns>true if there is a match.</returns>
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "pattern", Justification = "[....]: Method is a placeholder for a server-side method.")]
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "matchExpression", Justification = "[....]: Method is a placeholder for a server-side method.")]
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "escapeCharacter", Justification = "[....]: Method is a placeholder for a server-side method.")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "pattern", Justification = "Microsoft: Method is a placeholder for a server-side method.")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "matchExpression", Justification = "Microsoft: Method is a placeholder for a server-side method.")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "escapeCharacter", Justification = "Microsoft: Method is a placeholder for a server-side method.")]
public static bool Like(string matchExpression, string pattern, char escapeCharacter) {
throw Error.SqlMethodOnlyForSql(MethodInfo.GetCurrentMethod());
}
@@ -591,7 +591,7 @@ namespace System.Data.Linq.SqlClient {
/// </summary>
/// <param name="value">The string to take the length of.</param>
/// <returns>length of the string</returns>
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "value", Justification = "[....]: Method is a placeholder for a server-side method.")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "value", Justification = "Microsoft: Method is a placeholder for a server-side method.")]
internal static int RawLength(string value) {
throw Error.SqlMethodOnlyForSql(MethodInfo.GetCurrentMethod());
}
@@ -602,7 +602,7 @@ namespace System.Data.Linq.SqlClient {
/// </summary>
/// <param name="value">The byte array to take the length of.</param>
/// <returns>length of the array</returns>
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "value", Justification = "[....]: Method is a placeholder for a server-side method.")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "value", Justification = "Microsoft: Method is a placeholder for a server-side method.")]
internal static int RawLength(byte[] value) {
throw Error.SqlMethodOnlyForSql(MethodInfo.GetCurrentMethod());
}
@@ -613,7 +613,7 @@ namespace System.Data.Linq.SqlClient {
/// </summary>
/// <param name="value">The Binary value to take the length of.</param>
/// <returns>length of the Binary</returns>
- [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "value", Justification = "[....]: Method is a placeholder for a server-side method.")]
+ [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "value", Justification = "Microsoft: Method is a placeholder for a server-side method.")]
internal static int RawLength(Binary value) {
throw Error.SqlMethodOnlyForSql(MethodInfo.GetCurrentMethod());
}
diff --git a/mcs/class/referencesource/System.Data.Linq/SqlClient/SqlProvider.cs b/mcs/class/referencesource/System.Data.Linq/SqlClient/SqlProvider.cs
index f3dce0d1cfc..437759cb900 100644
--- a/mcs/class/referencesource/System.Data.Linq/SqlClient/SqlProvider.cs
+++ b/mcs/class/referencesource/System.Data.Linq/SqlClient/SqlProvider.cs
@@ -738,7 +738,7 @@ namespace System.Data.Linq.SqlClient {
}
}
- [SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Justification="[....]: Code needs to return false regarless of exception.")]
+ [SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Justification="Microsoft: Code needs to return false regarless of exception.")]
[ResourceExposure(ResourceScope.None)] // Exposure is via other methods that set dbName.
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] // File.Exists method call.
bool IProvider.DatabaseExists() {
@@ -1779,7 +1779,7 @@ namespace System.Data.Linq.SqlClient {
IObjectReaderSession session;
int iReturnParameter = -1;
object value;
- [SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "[....]: used in an assert in ReturnValue.set")]
+ [SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "Microsoft: used in an assert in ReturnValue.set")]
bool useReturnValue;
bool isDisposed;
diff --git a/mcs/class/referencesource/System.Data.Linq/SqlClient/SqlTypeSystemProvider.cs b/mcs/class/referencesource/System.Data.Linq/SqlClient/SqlTypeSystemProvider.cs
index 06bb4d3af7c..f71e8659778 100644
--- a/mcs/class/referencesource/System.Data.Linq/SqlClient/SqlTypeSystemProvider.cs
+++ b/mcs/class/referencesource/System.Data.Linq/SqlClient/SqlTypeSystemProvider.cs
@@ -1316,7 +1316,7 @@ namespace System.Data.Linq.SqlClient {
}
}
- [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification = "[....]: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
+ [SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Justification = "Microsoft: Cast is dependent on node type and casts do not happen unecessarily in a single code path.")]
internal override ProviderType GetBestType(ProviderType typeA, ProviderType typeB) {
// first determine the type precedence
SqlType bestType = (SqlType)(typeA.ComparePrecedenceTo(typeB) > 0 ? typeA : typeB);
diff --git a/mcs/class/referencesource/System.Data.Linq/Types.cs b/mcs/class/referencesource/System.Data.Linq/Types.cs
index c6d89a01061..d132e20d55e 100644
--- a/mcs/class/referencesource/System.Data.Linq/Types.cs
+++ b/mcs/class/referencesource/System.Data.Linq/Types.cs
@@ -17,7 +17,7 @@ namespace System.Data.Linq {
internal static readonly IEnumerable<T> Assigned = (IEnumerable<T>)new T[] { };
}
- [SuppressMessage("Microsoft.Performance", "CA1815:OverrideEqualsAndOperatorEqualsOnValueTypes", Justification = "[....]: Types are never compared to each other. When comparisons happen it is against the entities that are represented by these constructs.")]
+ [SuppressMessage("Microsoft.Performance", "CA1815:OverrideEqualsAndOperatorEqualsOnValueTypes", Justification = "Microsoft: Types are never compared to each other. When comparisons happen it is against the entities that are represented by these constructs.")]
public struct Link<T> {
T underlyingValue;
IEnumerable<T> source;
@@ -80,7 +80,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Performance", "CA1815:OverrideEqualsAndOperatorEqualsOnValueTypes", Justification="[....]: Types are never compared to each other. When comparisons happen it is against the entities that are represented by these constructs.")]
+ [SuppressMessage("Microsoft.Performance", "CA1815:OverrideEqualsAndOperatorEqualsOnValueTypes", Justification="Microsoft: Types are never compared to each other. When comparisons happen it is against the entities that are represented by these constructs.")]
public struct EntityRef<TEntity>
where TEntity : class {
IEnumerable<TEntity> source;
@@ -146,7 +146,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification="[....]: Naming chosen to represent a different concept from a collection because it is delayed loaded.")]
+ [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification="Microsoft: Naming chosen to represent a different concept from a collection because it is delayed loaded.")]
public sealed class EntitySet<TEntity> : IList, IList<TEntity>, IListSource
where TEntity : class {
IEnumerable<TEntity> source;
@@ -213,7 +213,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "0#", Justification = "[....]: Naming the parameter entity makes it more discoverable because it is clear what type of data should be added to this collection.")]
+ [SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "0#", Justification = "Microsoft: Naming the parameter entity makes it more discoverable because it is clear what type of data should be added to this collection.")]
public void Add(TEntity entity) {
if (entity == null) {
throw Error.ArgumentNull("entity");
@@ -279,7 +279,7 @@ namespace System.Data.Linq {
OnListChanged(ListChangedType.Reset, 0);
}
- [SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "0#", Justification = "[....]: Naming the parameter entity makes it more discoverable because it is clear what type of data should be added to this collection.")]
+ [SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "0#", Justification = "Microsoft: Naming the parameter entity makes it more discoverable because it is clear what type of data should be added to this collection.")]
public bool Contains(TEntity entity) {
return IndexOf(entity) >= 0;
}
@@ -311,13 +311,13 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "0#", Justification = "[....]: Naming the parameter entity makes it more discoverable because it is clear what type of data should be added to this collection.")]
+ [SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "0#", Justification = "Microsoft: Naming the parameter entity makes it more discoverable because it is clear what type of data should be added to this collection.")]
public int IndexOf(TEntity entity) {
Load();
return entities.IndexOf(entity);
}
- [SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "1#", Justification = "[....]: Naming the parameter entity makes it more discoverable because it is clear what type of data should be added to this collection.")]
+ [SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "1#", Justification = "Microsoft: Naming the parameter entity makes it more discoverable because it is clear what type of data should be added to this collection.")]
public void Insert(int index, TEntity entity) {
Load();
if (index < 0 || index > Count)
@@ -406,7 +406,7 @@ namespace System.Data.Linq {
isModified = true;
}
- [SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "0#", Justification = "[....]: Naming the parameter entity makes it more discoverable because it is clear what type of data should be added to this collection.")]
+ [SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "0#", Justification = "Microsoft: Naming the parameter entity makes it more discoverable because it is clear what type of data should be added to this collection.")]
public bool Remove(TEntity entity) {
if (entity == null || entity == onRemoveEntity) return false;
CheckModify();
@@ -758,7 +758,7 @@ namespace System.Data.Linq {
}
}
- [SuppressMessage("Microsoft.Naming", "CA1724:TypeNamesShouldNotMatchNamespaces", Justification = "[....]: The name clearly describes function and the namespace is under a DLinq namespace which will make the distinction clear.")]
+ [SuppressMessage("Microsoft.Naming", "CA1724:TypeNamesShouldNotMatchNamespaces", Justification = "Microsoft: The name clearly describes function and the namespace is under a DLinq namespace which will make the distinction clear.")]
[DataContract]
[Serializable]
public sealed class Binary : IEquatable<Binary> {
diff --git a/mcs/class/referencesource/System.Data.Linq/misc/SecurityUtils.cs b/mcs/class/referencesource/System.Data.Linq/misc/SecurityUtils.cs
index 76e02fafbaf..159dedbb6c6 100644
--- a/mcs/class/referencesource/System.Data.Linq/misc/SecurityUtils.cs
+++ b/mcs/class/referencesource/System.Data.Linq/misc/SecurityUtils.cs
@@ -8,11 +8,11 @@
*/
-#if WINFORMS_NAMESPACE
+#if Microsoft_NAMESPACE
namespace System.Windows.Forms
#elif DRAWING_NAMESPACE
namespace System.Drawing
-#elif WINFORMS_PUBLIC_GRAPHICS_LIBRARY
+#elif Microsoft_PUBLIC_GRAPHICS_LIBRARY
namespace System.Internal
#elif SYSTEM_NAMESPACE
namespace System
@@ -127,7 +127,7 @@ namespace System.Windows.Forms
return Activator.CreateInstance(type, flags, null, args, null);
}
-#if (!WINFORMS_NAMESPACE)
+#if (!Microsoft_NAMESPACE)
/// <devdoc>
/// This helper method provides safe access to Activator.CreateInstance.
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Assembly.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Assembly.cs
index 86ae68722ff..2cf2fa90c7e 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Assembly.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Assembly.cs
@@ -2,7 +2,7 @@
// <copyright file="Assembly.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">sdub</owner>
//------------------------------------------------------------------------------
using System.Runtime.CompilerServices;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/ISourceLineInfo.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/ISourceLineInfo.cs
index c82cb37aa2b..7a282ff5e48 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/ISourceLineInfo.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/ISourceLineInfo.cs
@@ -2,7 +2,7 @@
// <copyright file="ISourceLineInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">sdub</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/GenerateHelper.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/GenerateHelper.cs
index 6490ddfb9d5..39335876220 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/GenerateHelper.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/GenerateHelper.cs
@@ -2,7 +2,7 @@
// <copyright file="GenerateHelper.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Globalization;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/IteratorDescriptor.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/IteratorDescriptor.cs
index c99ee63ec1a..3f284be5aa5 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/IteratorDescriptor.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/IteratorDescriptor.cs
@@ -2,7 +2,7 @@
// <copyright file="IteratorDescriptor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/OptimizerPatterns.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/OptimizerPatterns.cs
index 85589508b48..064edcd7546 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/OptimizerPatterns.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/OptimizerPatterns.cs
@@ -2,7 +2,7 @@
// <copyright file="OptimizerPatterns.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/StaticDataManager.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/StaticDataManager.cs
index 366f26d8d41..c04cebf1e9c 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/StaticDataManager.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/StaticDataManager.cs
@@ -2,8 +2,8 @@
// <copyright file="StaticDataManager.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/TailCallAnalyzer.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/TailCallAnalyzer.cs
index 343293ebbea..86ab9c3a27a 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/TailCallAnalyzer.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/TailCallAnalyzer.cs
@@ -2,7 +2,7 @@
// <copyright file="TailCallAnalyzer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILAnnotation.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILAnnotation.cs
index d029da0d72d..5c339d4f0ed 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILAnnotation.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILAnnotation.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlILAnnotation.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILConstructAnalyzer.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILConstructAnalyzer.cs
index c2c530141d0..26daac8b9ab 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILConstructAnalyzer.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILConstructAnalyzer.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlILConstructAnalyzer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILModule.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILModule.cs
index 2df1e23e2ee..e47912e447c 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILModule.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILModule.cs
@@ -2,8 +2,8 @@
// <copyright file="XmlILModule.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILOptimization.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILOptimization.cs
index 2a3c839178a..2acef83867e 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILOptimization.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILOptimization.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlILOptimization.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">akimball</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.IlGen {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILOptimizerVisitor.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILOptimizerVisitor.cs
index e1c869221fa..21d44654cb2 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILOptimizerVisitor.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlILOptimizerVisitor.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlILOptimizerVisitor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlIlTrace.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlIlTrace.cs
index c728a2d9553..9a3142f6147 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlIlTrace.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlIlTrace.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlILTrace.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">akimball</owner>
//------------------------------------------------------------------------------
using System;
using System.IO;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlIlTypeHelper.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlIlTypeHelper.cs
index 90b2c09d0b6..3bb04f749cf 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlIlTypeHelper.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlIlTypeHelper.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlIlTypeHelper.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlIlVisitor.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlIlVisitor.cs
index 786be8983fc..f33d6a9c58c 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlIlVisitor.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/IlGen/XmlIlVisitor.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlIlVisitor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/ListBase.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/ListBase.cs
index dbabda6f904..9e9364891bb 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/ListBase.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/ListBase.cs
@@ -2,7 +2,7 @@
// <copyright file="ListBase.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Pair.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Pair.cs
index 4cc21c06adb..46a8ad5e5aa 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Pair.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Pair.cs
@@ -2,7 +2,7 @@
// <copyright file="Pair.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilBinary.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilBinary.cs
index 1121c090b9d..c1982324c23 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilBinary.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilBinary.cs
@@ -2,7 +2,7 @@
// <copyright file="QilBinary.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilChoice.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilChoice.cs
index b9645a0c167..25139afcd5f 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilChoice.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilChoice.cs
@@ -2,7 +2,7 @@
// <copyright file="QilLoop.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilCloneVisitor.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilCloneVisitor.cs
index 12da6caa44b..540ef9b57fa 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilCloneVisitor.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilCloneVisitor.cs
@@ -2,7 +2,7 @@
// <copyright file="QilCloneVisitor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilDataSource.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilDataSource.cs
index 49f29d1d4b6..ae4964e2c4a 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilDataSource.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilDataSource.cs
@@ -2,7 +2,7 @@
// <copyright file="QilDataSource.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilExpression.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilExpression.cs
index f2050d46d5e..08aacbff040 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilExpression.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilExpression.cs
@@ -2,7 +2,7 @@
// <copyright file="QilExpression.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilFactory.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilFactory.cs
index 743ae9829e1..8d941c65971 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilFactory.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilFactory.cs
@@ -2,7 +2,7 @@
// <copyright file="QilFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilFunction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilFunction.cs
index c08b149dc3f..6cbfabcc8ef 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilFunction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilFunction.cs
@@ -2,7 +2,7 @@
// <copyright file="QilFunction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilInvoke.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilInvoke.cs
index a99d6b5ed13..4d8970b40c5 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilInvoke.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilInvoke.cs
@@ -2,7 +2,7 @@
// <copyright file="QilInvoke.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilInvokeEarlyBound.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilInvokeEarlyBound.cs
index 4acb8d3e594..4a880719157 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilInvokeEarlyBound.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilInvokeEarlyBound.cs
@@ -2,7 +2,7 @@
// <copyright file="QilInvokeEarlyBound.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilInvokeLateBound.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilInvokeLateBound.cs
index 57ffa618967..33b9dd55c47 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilInvokeLateBound.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilInvokeLateBound.cs
@@ -2,7 +2,7 @@
// <copyright file="QilInvokeLateBound.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilIterator.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilIterator.cs
index 04e1cdb890f..51eafb5339a 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilIterator.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilIterator.cs
@@ -2,7 +2,7 @@
// <copyright file="QilIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilList.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilList.cs
index 8ac1d26c989..63f8858680b 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilList.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilList.cs
@@ -2,7 +2,7 @@
// <copyright file="QilList.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilLiteral.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilLiteral.cs
index b20c678d8a3..ac2480a4a29 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilLiteral.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilLiteral.cs
@@ -2,7 +2,7 @@
// <copyright file="QilLiteral.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilLoop.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilLoop.cs
index 73702017f5e..aeb4e0274a9 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilLoop.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilLoop.cs
@@ -2,7 +2,7 @@
// <copyright file="QilLoop.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilName.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilName.cs
index 1558795a5ed..7387507ce8f 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilName.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilName.cs
@@ -2,7 +2,7 @@
// <copyright file="QilName.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilNode.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilNode.cs
index 40201b07105..6eefb53f22a 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilNode.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilNode.cs
@@ -2,7 +2,7 @@
// <copyright file="QilNode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilNodeType.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilNodeType.cs
index 14e8855e64e..6ba982665a4 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilNodeType.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilNodeType.cs
@@ -2,7 +2,7 @@
// <copyright file="QilNodeType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">akimball</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.Qil {
/// <summary>An enumeration of all the possible QilExpression node types.</summary>
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilParameter.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilParameter.cs
index 357800ea0cb..3fdcf6c0225 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilParameter.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilParameter.cs
@@ -2,7 +2,7 @@
// <copyright file="QilParameter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilPatternFactory.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilPatternFactory.cs
index 5798d4c337b..28cdbe3359d 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilPatternFactory.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilPatternFactory.cs
@@ -2,7 +2,7 @@
// <copyright file="QilPatternFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilPatternVisitor.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilPatternVisitor.cs
index 4b86398a2bc..bdd237a488d 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilPatternVisitor.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilPatternVisitor.cs
@@ -2,7 +2,7 @@
// <copyright file="QilPatternVisitor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilReference.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilReference.cs
index bf28cf11f9f..f06089201a6 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilReference.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilReference.cs
@@ -2,7 +2,7 @@
// <copyright file="QilReference.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilReplaceVisitor.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilReplaceVisitor.cs
index e335154607b..3c422a89197 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilReplaceVisitor.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilReplaceVisitor.cs
@@ -2,7 +2,7 @@
// <copyright file="QilReplaceVisitor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilScopedVisitor.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilScopedVisitor.cs
index a3bcfd59df9..556a6d33127 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilScopedVisitor.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilScopedVisitor.cs
@@ -2,7 +2,7 @@
// <copyright file="QilScopedVisitor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilSortKey.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilSortKey.cs
index a7d76b24256..c4b8b9211b9 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilSortKey.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilSortKey.cs
@@ -2,7 +2,7 @@
// <copyright file="QilSortKey.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilStrConcat.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilStrConcat.cs
index 011075c452d..17395597416 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilStrConcat.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilStrConcat.cs
@@ -2,7 +2,7 @@
// <copyright file="QilStrConcat.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilTargetType.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilTargetType.cs
index ae27ad547ca..de1bcc1e61a 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilTargetType.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilTargetType.cs
@@ -2,7 +2,7 @@
// <copyright file="QilTargetType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilTernary.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilTernary.cs
index 317891a507e..493f12eaf9f 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilTernary.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilTernary.cs
@@ -2,7 +2,7 @@
// <copyright file="QilTernary.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilTypeChecker.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilTypeChecker.cs
index 850c4c8d8ad..0d10556e9a9 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilTypeChecker.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilTypeChecker.cs
@@ -2,7 +2,7 @@
// <copyright file="QilTypeChecker.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilUnary.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilUnary.cs
index 4980715effa..4d1fbed67ae 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilUnary.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilUnary.cs
@@ -2,7 +2,7 @@
// <copyright file="QilUnary.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilValidationVisitor.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilValidationVisitor.cs
index 678bf547f28..9ebe9a2dca2 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilValidationVisitor.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilValidationVisitor.cs
@@ -2,7 +2,7 @@
// <copyright file="QilValidationVisitor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilVisitor.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilVisitor.cs
index ce86057f349..5e5b5543e02 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilVisitor.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilVisitor.cs
@@ -2,7 +2,7 @@
// <copyright file="QilVisitor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilXmlReader.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilXmlReader.cs
index 5a53a3e95f4..eebd0d843f5 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilXmlReader.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilXmlReader.cs
@@ -2,7 +2,7 @@
// <copyright file="QilXmlReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilXmlWriter.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilXmlWriter.cs
index 83253ea5a44..e53c663f9b6 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilXmlWriter.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/QilXmlWriter.cs
@@ -2,7 +2,7 @@
// <copyright file="QilXmlWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/SerializationHints.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/SerializationHints.cs
index 1483494fda1..2e5d1c23b70 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/SerializationHints.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/SerializationHints.cs
@@ -2,7 +2,7 @@
// <copyright file="SerializationHints.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">akimball</owner>
//------------------------------------------------------------------------------
using System;
@@ -12,4 +12,4 @@ namespace System.Xml.Xsl.Qil {
CData,
DisableOutputEscaping,
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/SubstitutionList.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/SubstitutionList.cs
index 223e5fbafc4..32868e6a185 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/SubstitutionList.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/SubstitutionList.cs
@@ -2,7 +2,7 @@
// <copyright file="SubstitutionList.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/WhitespaceRule.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/WhitespaceRule.cs
index ca7ed1811dd..914f12963d3 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/WhitespaceRule.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QIL/WhitespaceRule.cs
@@ -2,8 +2,8 @@
// <copyright file="WhitespaceRule.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QueryReaderSettings.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QueryReaderSettings.cs
index d8ed8752b98..26cd3fc5d16 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QueryReaderSettings.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/QueryReaderSettings.cs
@@ -2,7 +2,7 @@
// <copyright file="QueryReaderSettings.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/ContentIterators.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/ContentIterators.cs
index e13600336e4..02b7678ee77 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/ContentIterators.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/ContentIterators.cs
@@ -2,7 +2,7 @@
// <copyright file="ContentIterators.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/DecimalFormatter.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/DecimalFormatter.cs
index 0662261d144..43f6ee62986 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/DecimalFormatter.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/DecimalFormatter.cs
@@ -2,7 +2,7 @@
// <copyright file="DecimalFormatter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/DocumentOrderComparer.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/DocumentOrderComparer.cs
index 07abd470b52..0d074a55dff 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/DocumentOrderComparer.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/DocumentOrderComparer.cs
@@ -2,7 +2,7 @@
// <copyright file="DocumentOrderComparer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/DodSequenceMerge.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/DodSequenceMerge.cs
index 39928a7b450..89d23000546 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/DodSequenceMerge.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/DodSequenceMerge.cs
@@ -2,7 +2,7 @@
// <copyright file="DodSequenceMerge.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/EarlyBoundInfo.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/EarlyBoundInfo.cs
index e6e31f979fe..790cf997728 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/EarlyBoundInfo.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/EarlyBoundInfo.cs
@@ -2,8 +2,8 @@
// <copyright file="EarlyBoundInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/NumberFormatter.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/NumberFormatter.cs
index 2aef5b0dad1..500a168de43 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/NumberFormatter.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/NumberFormatter.cs
@@ -2,7 +2,7 @@
// <copyright file="NumberFormatter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/RtfNavigator.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/RtfNavigator.cs
index f31249e1657..42e3c1960c3 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/RtfNavigator.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/RtfNavigator.cs
@@ -2,7 +2,7 @@
// <copyright file="RtfNavigator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Threading;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/SetIterators.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/SetIterators.cs
index 62a4e859263..dbf8c20c85d 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/SetIterators.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/SetIterators.cs
@@ -2,7 +2,7 @@
// <copyright file="SetIterators.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/SiblingIterators.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/SiblingIterators.cs
index d48459e9edf..06c38ce39e5 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/SiblingIterators.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/SiblingIterators.cs
@@ -2,7 +2,7 @@
// <copyright file="SiblingIterators.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/StringConcat.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/StringConcat.cs
index 6b41ec7c66c..b20f293db23 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/StringConcat.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/StringConcat.cs
@@ -2,7 +2,7 @@
// <copyright file="StringConcat.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/TreeIterators.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/TreeIterators.cs
index a3cdf490311..05afae41b5d 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/TreeIterators.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/TreeIterators.cs
@@ -2,7 +2,7 @@
// <copyright file="TreeIterators.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.ComponentModel;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/WhitespaceRuleLookup.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/WhitespaceRuleLookup.cs
index 3aa9ab53505..5a7dea1a30a 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/WhitespaceRuleLookup.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/WhitespaceRuleLookup.cs
@@ -2,7 +2,7 @@
// <copyright file="WhitespaceRuleLookup.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/WhitespaceRuleReader.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/WhitespaceRuleReader.cs
index 4668e15222d..17207a41823 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/WhitespaceRuleReader.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/WhitespaceRuleReader.cs
@@ -2,7 +2,7 @@
// <copyright file="WhitespaceRuleReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.IO;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlAggregates.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlAggregates.cs
index 902ffdf86e3..7c4d0394b17 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlAggregates.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlAggregates.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlAggregates.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlAttributeCache.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlAttributeCache.cs
index 6f39cb3e4de..c35eb8fc2fa 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlAttributeCache.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlAttributeCache.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlAttributeCache.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.Runtime {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlCollation.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlCollation.cs
index 956c2a654bf..e06f6d90279 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlCollation.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlCollation.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlCollation.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlExtensionFunction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlExtensionFunction.cs
index d51ded1fa47..0425c8e83bb 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlExtensionFunction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlExtensionFunction.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlExtensionFunction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlILIndex.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlILIndex.cs
index f0390457323..679637e171f 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlILIndex.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlILIndex.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlILIndex.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlILStorageConverter.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlILStorageConverter.cs
index 222ec5c0506..ad7f029edc7 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlILStorageConverter.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlILStorageConverter.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlILStorageConverter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlIterators.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlIterators.cs
index 24e3a96a89c..d5f189c21d7 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlIterators.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlIterators.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlIterators.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlNavigatorFilter.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlNavigatorFilter.cs
index 6b8eb8264cb..2e91ddc8a3b 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlNavigatorFilter.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlNavigatorFilter.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNavigatorFilter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Xml;
using System.Xml.XPath;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlNavigatorStack.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlNavigatorStack.cs
index 214b75582de..ab5d5cdc8b4 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlNavigatorStack.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlNavigatorStack.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNavigatorStack.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryContext.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryContext.cs
index ca621b66b06..644bfa8c254 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryContext.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryContext.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlQueryContext.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryOutput.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryOutput.cs
index 6fd3ce9e508..275b9e2bc7c 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryOutput.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryOutput.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlQueryOutput.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
using System.ComponentModel;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryRuntime.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryRuntime.cs
index 782a2e12caa..15d5db990d9 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryRuntime.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryRuntime.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlQueryRuntime.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.IO;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQuerySequence.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQuerySequence.cs
index 2c01291b697..727040cd6b0 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQuerySequence.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQuerySequence.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlQuerySequence.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryStaticData.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryStaticData.cs
index b3bae005fa0..7ca2d40b9f9 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryStaticData.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlQueryStaticData.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlQueryStaticData.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlRawWriterWrapper.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlRawWriterWrapper.cs
index c8766cfd044..f08e0effed0 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlRawWriterWrapper.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlRawWriterWrapper.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlRawWriterWrapper.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.IO;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlSequenceWriter.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlSequenceWriter.cs
index f5538b75e47..1b974e927d7 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlSequenceWriter.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlSequenceWriter.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSequenceWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlSortKey.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlSortKey.cs
index 772ffd6b440..793d287c5aa 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlSortKey.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlSortKey.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSortKey.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlSortKeyAccumulator.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlSortKeyAccumulator.cs
index 3516c67242c..d1f241b3a8e 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlSortKeyAccumulator.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XmlSortKeyAccumulator.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSortKeyAccumulator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XslNumber.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XslNumber.cs
index 343dd36d75f..631232ac84a 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XslNumber.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XslNumber.cs
@@ -2,7 +2,7 @@
// <copyright file="XslNumber.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XsltConvert.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XsltConvert.cs
index 885ccaca9f7..93752e860db 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XsltConvert.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XsltConvert.cs
@@ -2,7 +2,7 @@
// <copyright file="XsltConvert.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XsltFunctions.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XsltFunctions.cs
index 473cef5a4d3..032279a4bce 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XsltFunctions.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XsltFunctions.cs
@@ -2,7 +2,7 @@
// <copyright file="XsltFunctions.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.IO;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XsltLibrary.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XsltLibrary.cs
index 6f9b8236b0e..0f148d6ee32 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XsltLibrary.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Runtime/XsltLibrary.cs
@@ -2,7 +2,7 @@
// <copyright file="XsltLibrary.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Specialized;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/SourceLineInfo.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/SourceLineInfo.cs
index 0e665909055..46f24679de5 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/SourceLineInfo.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/SourceLineInfo.cs
@@ -2,7 +2,7 @@
// <copyright file="SourceLineInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/IXPathEnvironment.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/IXPathEnvironment.cs
index e47f52b15a5..4e16b35f7cb 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/IXPathEnvironment.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/IXPathEnvironment.cs
@@ -2,7 +2,7 @@
// <copyright file="IXPathEnvironment.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">sdub</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
using System.Xml.Xsl.Qil;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/IXpathBuilder.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/IXpathBuilder.cs
index 4aa3d4f7ed4..2f7099bd220 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/IXpathBuilder.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/IXpathBuilder.cs
@@ -2,7 +2,7 @@
// <copyright file="IXPathBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">sdub</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathAxis.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathAxis.cs
index 01d3587ab3a..532bdaa1368 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathAxis.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathAxis.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathAxis.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">sdub</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XPath {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathBuilder.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathBuilder.cs
index b2ef65f8cc8..8f78d159c11 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathBuilder.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathBuilder.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
@@ -294,7 +294,7 @@ namespace System.Xml.Xsl.XPath {
// </xsl:template>
//</xsl:stylesheet>
- // ToDo: remove this code when IlGen bug will be fixed.
+ // ToDo: remove this code when IlGen
if (qilAxis.NodeType == QilNodeType.Filter) {
QilLoop filter = (QilLoop) qilAxis;
filter.Body = f.And(filter.Body,
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathCompileException.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathCompileException.cs
index 570a32cf4e5..81e25627a1e 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathCompileException.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathCompileException.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathCompileException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Runtime.Serialization;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathContext.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathContext.cs
index 480658bb6ef..1a9890c703d 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathContext.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathContext.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathContext.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">sdub</owner>
//------------------------------------------------------------------------------
#if DontUse
@@ -120,4 +120,4 @@ namespace System.Xml.Xsl.XPath {
}
}
}
-#endif
+#endif \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathOperator.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathOperator.cs
index 58998960d42..dee4c6c7beb 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathOperator.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathOperator.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathOperator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">sdub</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XPath {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathParser.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathParser.cs
index 5167754890a..7b6b554295d 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathParser.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathParser.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathParser.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathQilFactory.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathQilFactory.cs
index 6afc15b2f28..1bfc274411e 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathQilFactory.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathQilFactory.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathQilFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathScanner.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathScanner.cs
index 996dbaa4e10..11f966e07f3 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathScanner.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPath/XPathScanner.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathScanner.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <spec>http://www.w3.org/TR/xpath#exprlex</spec>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPathConvert.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPathConvert.cs
index 3da62858024..d6ffff1e9eb 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPathConvert.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XPathConvert.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathConvert.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
/**
@@ -2678,7 +2678,7 @@ namespace System.Xml.Xsl {
}
break;
default:
- // MSXML has a bug, we should not allow whitespace after a minus sign
+ // MSXML has a
if (IsWhitespace(ch) && sign > 0) {
pch = SkipWhitespace(pch);
goto LRestart;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlILCommand.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlILCommand.cs
index 684b75fea5b..f0117615d41 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlILCommand.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlILCommand.cs
@@ -2,8 +2,8 @@
// <copyright file="XmlILCommand.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="false">Microsoft</owner>
// <spec>http://webdata/xml/specs/querylowlevel.xml</spec>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlIlGenerator.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlIlGenerator.cs
index 4075e22a22c..5952f556bee 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlIlGenerator.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlIlGenerator.cs
@@ -2,8 +2,8 @@
// <copyright file="XmlIlGenerator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlNodeKindFlags.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlNodeKindFlags.cs
index 57029b028b9..a3877a1aaca 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlNodeKindFlags.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlNodeKindFlags.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNodeKindFlags.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">akimball</owner>
//------------------------------------------------------------------------------
using System;
namespace System.Xml.Xsl {
@@ -64,4 +64,4 @@ namespace System.Xml.Xsl {
/// </summary>
Any = 0x7F,
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQualifiedNameTest.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQualifiedNameTest.cs
index 394d5273ae6..d82d7ad7162 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQualifiedNameTest.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQualifiedNameTest.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlQualifiedNameTest.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQueryCardinality.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQueryCardinality.cs
index 7c655463061..c8131e706a1 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQueryCardinality.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQueryCardinality.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlQueryCardinality.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQueryType.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQueryType.cs
index 4e7c0eb7447..84692be81c7 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQueryType.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQueryType.cs
@@ -2,8 +2,8 @@
// <copyright file="XmlQueryType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQueryTypeFactory.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQueryTypeFactory.cs
index 14cd425cb06..2548bb2d53f 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQueryTypeFactory.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XmlQueryTypeFactory.cs
@@ -2,8 +2,8 @@
// <copyright file="XmlQueryTypeFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XslException.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XslException.cs
index e0016a461ab..d76797354b6 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XslException.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XslException.cs
@@ -2,7 +2,7 @@
// <copyright file="XslException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.CodeDom.Compiler;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Compiler.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Compiler.cs
index 624f7b9d05d..68fb7af2a60 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Compiler.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Compiler.cs
@@ -2,7 +2,7 @@
// <copyright file="Compiler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.CodeDom.Compiler;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/CompilerScopeManager.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/CompilerScopeManager.cs
index c8bd252ef5e..4704df6db04 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/CompilerScopeManager.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/CompilerScopeManager.cs
@@ -2,7 +2,7 @@
// <copyright file="CompilerScopeManager.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Focus.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Focus.cs
index d93962dbb7e..a110803de28 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Focus.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Focus.cs
@@ -2,7 +2,7 @@
// <copyright file="Focus.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/IErrorHelper.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/IErrorHelper.cs
index 8462a1abe6f..49cfac06e37 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/IErrorHelper.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/IErrorHelper.cs
@@ -2,7 +2,7 @@
// <copyright file="IErrorHelper.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">antonl</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/InvokeGenerator.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/InvokeGenerator.cs
index 0f82b468ebc..a323e01e8d8 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/InvokeGenerator.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/InvokeGenerator.cs
@@ -2,7 +2,7 @@
// <copyright file="InvokeGenerator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/KeyMatchBuilder.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/KeyMatchBuilder.cs
index 404e153aec1..4417d0be015 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/KeyMatchBuilder.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/KeyMatchBuilder.cs
@@ -2,7 +2,7 @@
// <copyright file="KeyMatchBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Keywords.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Keywords.cs
index 66d1532a191..0ab7f5dcd0c 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Keywords.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Keywords.cs
@@ -2,7 +2,7 @@
// <copyright file="Keywords.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Xml;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/MatcherBuilder.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/MatcherBuilder.cs
index 70f110b6f57..22715a24743 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/MatcherBuilder.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/MatcherBuilder.cs
@@ -2,7 +2,7 @@
// <copyright file="MatcherBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/OutputScopeManager.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/OutputScopeManager.cs
index 4bdfe9285a9..07506f55861 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/OutputScopeManager.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/OutputScopeManager.cs
@@ -2,7 +2,7 @@
// <copyright file="OutputScopeManager.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/QilGenerator.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/QilGenerator.cs
index d29bc0ca3bf..f73f9ab588b 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/QilGenerator.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/QilGenerator.cs
@@ -2,7 +2,7 @@
// <copyright file="QilGenerator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <spec>http://www.w3.org/TR/xslt.html</spec>
// <spec>http://www.w3.org/TR/xslt20/</spec>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/QilGeneratorEnv.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/QilGeneratorEnv.cs
index 7f0d17f22ed..2f606d8cfbb 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/QilGeneratorEnv.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/QilGeneratorEnv.cs
@@ -2,7 +2,7 @@
// <copyright file="QilGeneratorEnv.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/QilStrConcatenator.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/QilStrConcatenator.cs
index ba2c0dc228c..fe1f4dd3108 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/QilStrConcatenator.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/QilStrConcatenator.cs
@@ -2,7 +2,7 @@
// <copyright file="QilStrConcatenator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Diagnostics;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Scripts.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Scripts.cs
index 45359ba4bf3..e1f52082528 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Scripts.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Scripts.cs
@@ -2,7 +2,7 @@
// <copyright file="Scripts.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <spec>http://devdiv/Documents/Whidbey/CLR/CurrentSpecs/BCL/CodeDom%20Activation.doc</spec>
//------------------------------------------------------------------------------
@@ -305,7 +305,7 @@ namespace System.Xml.Xsl.Xslt {
// If GenerateInMemory == true, then CodeDom loads the compiled assembly using Assembly.Load(byte[])
// instead of Assembly.Load(AssemblyName). That means the assembly will be loaded in the anonymous
- // context (http://blogs.msdn.com/[....]/archive/2003/05/29/57143.aspx), and its dependencies can only
+ // context (http://blogs.msdn.com/Microsoft/archive/2003/05/29/57143.aspx), and its dependencies can only
// be loaded from the Load context or using AssemblyResolve event. However we want to use the LoadFrom
// context to preload all dependencies specified by <ms:assembly href="uri-reference"/>, so we turn off
// GenerateInMemory here.
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Stylesheet.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Stylesheet.cs
index d2b5a731c8d..96f094bd769 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Stylesheet.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/Stylesheet.cs
@@ -2,7 +2,7 @@
// <copyright file="Stylesheet.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XPathPatternBuilder.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XPathPatternBuilder.cs
index 8143836c495..efad6709d85 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XPathPatternBuilder.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XPathPatternBuilder.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathPatternBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XPathPatternParser.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XPathPatternParser.cs
index ad786e07fa4..4a88b7656cd 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XPathPatternParser.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XPathPatternParser.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathPatternParser.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslAst.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslAst.cs
index 758047ceff6..b1dc09df06e 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslAst.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslAst.cs
@@ -2,7 +2,7 @@
// <copyright file="XslAst.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Text;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslAstAnalyzer.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslAstAnalyzer.cs
index e94a5891aae..87f96419f90 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslAstAnalyzer.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslAstAnalyzer.cs
@@ -2,7 +2,7 @@
// <copyright file="XslAstAnalyzer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Globalization;
@@ -668,7 +668,7 @@ namespace System.Xml.Xsl.Xslt {
if (node.Select != null) {
if (node.Content.Count != 0) {
// In case of incorrect stylesheet, variable or parameter may have both a 'select' attribute and non-empty content
- // NOTE: This code must be in [....] with recovery logic in QilGenerator
+ // NOTE: This code must be in sync with recovery logic in QilGenerator
result = xpathAnalyzer.Analyze(node.Select) | VisitChildren(node) | XslFlags.AnyType;
typeDonor = null;
} else {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslFlags.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslFlags.cs
index e50eca0826b..a9ba535bbdc 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslFlags.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslFlags.cs
@@ -2,7 +2,7 @@
// <copyright file="XslFlags.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">sdub</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslVisitor.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslVisitor.cs
index 5311a8321ad..28c95f3a31d 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslVisitor.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XslVisitor.cs
@@ -2,7 +2,7 @@
// <copyright file="XslVisitor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.Xslt {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XsltInput.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XsltInput.cs
index 93128517418..b50961a4378 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XsltInput.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XsltInput.cs
@@ -2,7 +2,7 @@
// <copyright file="XsltInput.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
//#define XSLT2
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XsltLoader.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XsltLoader.cs
index 1bf0ee63a83..c2037e36f1d 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XsltLoader.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XsltLoader.cs
@@ -2,7 +2,7 @@
// <copyright file="XsltLoader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
//#define XSLT2
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XsltQilFactory.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XsltQilFactory.cs
index 4fcca15bf41..78e9e6db9e2 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XsltQilFactory.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/Xslt/XsltQilFactory.cs
@@ -2,7 +2,7 @@
// <copyright file="XsltQilFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Action.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Action.cs
index ead808b5fb2..31c38905c80 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Action.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Action.cs
@@ -2,7 +2,7 @@
// <copyright file="Action.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ActionFrame.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ActionFrame.cs
index e802f4f5f03..d76ef099667 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ActionFrame.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ActionFrame.cs
@@ -2,7 +2,7 @@
// <copyright file="ActionFrame.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
@@ -76,7 +76,6 @@ namespace System.Xml.Xsl.XsltOld {
return ++ this.counter;
}
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
internal void AllocateVariables(int count) {
if (0 < count) {
this.variables = new object [count];
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ApplyImportsAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ApplyImportsAction.cs
index fada5fa3053..db9430ed1a0 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ApplyImportsAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ApplyImportsAction.cs
@@ -2,7 +2,7 @@
// <copyright file="ApplyImportsAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ApplyTemplatesAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ApplyTemplatesAction.cs
index a81dd223fd6..0cecb4220cd 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ApplyTemplatesAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ApplyTemplatesAction.cs
@@ -2,7 +2,7 @@
// <copyright file="ApplyTemplatesAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/AttributeAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/AttributeAction.cs
index f85ccb33348..c26a03b4428 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/AttributeAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/AttributeAction.cs
@@ -2,7 +2,7 @@
// <copyright file="AttributeAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/AttributeSetAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/AttributeSetAction.cs
index c227f0287a8..ede0aef7509 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/AttributeSetAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/AttributeSetAction.cs
@@ -2,7 +2,7 @@
// <copyright file="AttributeSetAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Avt.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Avt.cs
index 6b2cdcac86f..282c31f4b24 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Avt.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Avt.cs
@@ -2,7 +2,7 @@
// <copyright file="Avt.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/AvtEvent.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/AvtEvent.cs
index f88243fafc1..687eaad3e6e 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/AvtEvent.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/AvtEvent.cs
@@ -2,7 +2,7 @@
// <copyright file="AvtEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/BeginEvent.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/BeginEvent.cs
index 2cf53f05f8e..95ca244b9a9 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/BeginEvent.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/BeginEvent.cs
@@ -2,7 +2,7 @@
// <copyright file="BeginEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/BuilderInfo.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/BuilderInfo.cs
index 20886ec8cbd..3f0644ff70d 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/BuilderInfo.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/BuilderInfo.cs
@@ -2,7 +2,7 @@
// <copyright file="BuilderInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CallTemplateAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CallTemplateAction.cs
index b21604d00c6..70354f28d14 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CallTemplateAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CallTemplateAction.cs
@@ -2,7 +2,7 @@
// <copyright file="CallTemplateAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ChooseAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ChooseAction.cs
index 0bc97075869..85cc21906ab 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ChooseAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ChooseAction.cs
@@ -2,7 +2,7 @@
// <copyright file="ChooseAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CommentAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CommentAction.cs
index 32dabbf8bc9..67c7503bf01 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CommentAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CommentAction.cs
@@ -2,7 +2,7 @@
// <copyright file="CommentAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CompiledAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CompiledAction.cs
index 51ae00815e3..c6476fe6054 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CompiledAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CompiledAction.cs
@@ -2,7 +2,7 @@
// <copyright file="CompiledAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Compiler.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Compiler.cs
index f13e16ea9a2..cb02a285e40 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Compiler.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Compiler.cs
@@ -2,7 +2,7 @@
// <copyright file="Compiler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ContainerAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ContainerAction.cs
index 35fb38f4b13..52af349a134 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ContainerAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ContainerAction.cs
@@ -2,7 +2,7 @@
// <copyright file="ContainerAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyAction.cs
index 12f1ed03fef..cb7d325be0e 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyAction.cs
@@ -2,7 +2,7 @@
// <copyright file="CopyAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyAttributesAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyAttributesAction.cs
index 47f8d3cd614..ed717e944f0 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyAttributesAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyAttributesAction.cs
@@ -2,7 +2,7 @@
// <copyright file="CopyAttributesAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyCodeAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyCodeAction.cs
index 073e16956f0..b46cf13ded3 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyCodeAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyCodeAction.cs
@@ -2,7 +2,7 @@
// <copyright file="CopyCodeAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyNamespacesAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyNamespacesAction.cs
index b3e3e34abfe..cebaadebf1c 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyNamespacesAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyNamespacesAction.cs
@@ -2,7 +2,7 @@
// <copyright file="CopyNamespacesAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyNodesetAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyNodesetAction.cs
index 3d9a487a570..4c7457f01b2 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyNodesetAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyNodesetAction.cs
@@ -2,7 +2,7 @@
// <copyright file="CopyNodeSetAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyOfAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyOfAction.cs
index 5207f98bda8..e316fd82df8 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyOfAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/CopyOfAction.cs
@@ -2,7 +2,7 @@
// <copyright file="CopyOfAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
@@ -48,8 +48,8 @@ namespace System.Xml.Xsl.XsltOld {
object result = query.Evaluate(frame.NodeSet);
if (result is XPathNodeIterator) {
- // we cash this query because otherwise current() works incorrectly. Bug#382166.
- // To be perfect we should use frame.NewNodeSet here
+ // we cash this query because otherwise current() works incorrectly.
+
processor.PushActionFrame(CopyNodeSetAction.GetAction(), new XPathArrayIterator(query));
frame.State = NodeSetCopied;
break;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/DbgCompiler.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/DbgCompiler.cs
index 8190e5578fc..c39c6d2b7fd 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/DbgCompiler.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/DbgCompiler.cs
@@ -2,7 +2,7 @@
// <copyright file="DbgCompiler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/DocumentScope.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/DocumentScope.cs
index 61089758161..8a47aa8262a 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/DocumentScope.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/DocumentScope.cs
@@ -2,7 +2,7 @@
// <copyright file="DocumentScope.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ElementAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ElementAction.cs
index 0df55f379b7..26ff1bc9f48 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ElementAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ElementAction.cs
@@ -2,7 +2,7 @@
// <copyright file="ElementAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/EndEvent.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/EndEvent.cs
index 266f2177a6b..70f1c8d33ad 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/EndEvent.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/EndEvent.cs
@@ -2,7 +2,7 @@
// <copyright file="EndEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Event.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Event.cs
index d97f6440d87..62b638fe044 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Event.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Event.cs
@@ -2,7 +2,7 @@
// <copyright file="Event.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ForeachAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ForeachAction.cs
index a932cab372f..bc12dbe72df 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ForeachAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ForeachAction.cs
@@ -2,7 +2,7 @@
// <copyright file="ForEachAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/HtmlProps.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/HtmlProps.cs
index 81eac3d356e..e60a2f88030 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/HtmlProps.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/HtmlProps.cs
@@ -2,7 +2,7 @@
// <copyright file="HtmlProps.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/IfAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/IfAction.cs
index c224c066157..71001f3a275 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/IfAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/IfAction.cs
@@ -2,7 +2,7 @@
// <copyright file="IfAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/InputScope.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/InputScope.cs
index 39236053db8..66b85807e71 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/InputScope.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/InputScope.cs
@@ -2,7 +2,7 @@
// <copyright file="InputScope.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/InputScopeManager.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/InputScopeManager.cs
index e5e90afbe54..2cbbdc32fa0 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/InputScopeManager.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/InputScopeManager.cs
@@ -2,7 +2,7 @@
// <copyright file="InputScopeManager.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
@@ -107,7 +107,6 @@ namespace System.Xml.Xsl.XsltOld {
return ResolveNonEmptyPrefix(prefix);
}
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
public string ResolveXPathNamespace(string prefix) {
Debug.Assert(prefix != null);
if (prefix.Length == 0) {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/MessageAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/MessageAction.cs
index e2807e7fba5..d8da70f8c54 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/MessageAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/MessageAction.cs
@@ -2,7 +2,7 @@
// <copyright file="MessageAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NamespaceDecl.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NamespaceDecl.cs
index 71dab6766c1..9329cbfef20 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NamespaceDecl.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NamespaceDecl.cs
@@ -2,7 +2,7 @@
// <copyright file="NamespaceDecl.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NamespaceEvent.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NamespaceEvent.cs
index 1420c525b73..eeeeb6faf26 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NamespaceEvent.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NamespaceEvent.cs
@@ -2,7 +2,7 @@
// <copyright file="NameSpaceEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NavigatorInput.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NavigatorInput.cs
index 563aaf5f2b0..ce6688e4d1d 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NavigatorInput.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NavigatorInput.cs
@@ -2,7 +2,7 @@
// <copyright file="NavigatorInput.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NavigatorOutput.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NavigatorOutput.cs
index d722905f142..f29c63dd60d 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NavigatorOutput.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NavigatorOutput.cs
@@ -2,7 +2,7 @@
// <copyright file="NavigatorOutput.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NewInstructionAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NewInstructionAction.cs
index 5f84c647b8f..53769e70676 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NewInstructionAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NewInstructionAction.cs
@@ -2,7 +2,7 @@
// <copyright file="newinstructionaction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NumberAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NumberAction.cs
index 553b74574bd..85038e93bad 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NumberAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/NumberAction.cs
@@ -2,7 +2,7 @@
// <copyright file="NumberAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
@@ -417,7 +417,7 @@ namespace System.Xml.Xsl.XsltOld {
}
}
- // [....]: perf.
+ // Microsoft: perf.
// for each call to xsl:number Format() will build new NumberingFormat object.
// in case of no AVTs we can build this object at compile time and reuse it on execution time.
// even partial step in this d---- will be usefull (when cFormats == 0)
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/OutKeywords.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/OutKeywords.cs
index dadea9c702d..266ce00384f 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/OutKeywords.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/OutKeywords.cs
@@ -2,7 +2,7 @@
// <copyright file="OutKeywords.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/OutputScope.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/OutputScope.cs
index 7de7e8bfb0c..e27e57e040a 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/OutputScope.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/OutputScope.cs
@@ -2,7 +2,7 @@
// <copyright file="OutputScope.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/OutputScopeManager.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/OutputScopeManager.cs
index a173ae05575..a5e15260349 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/OutputScopeManager.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/OutputScopeManager.cs
@@ -2,7 +2,7 @@
// <copyright file="OutputScopeManager.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
@@ -26,7 +26,6 @@ namespace System.Xml.Xsl.XsltOld {
}
internal OutputScope CurrentElementScope {
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
get {
Debug.Assert(this.elementScopesStack.Peek() != null); // We adding rootElementScope to garantee this
return (OutputScope) this.elementScopesStack.Peek();
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/PrefixQname.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/PrefixQname.cs
index 062f765e955..ed1beb49ea4 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/PrefixQname.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/PrefixQname.cs
@@ -2,7 +2,7 @@
// <copyright file="PrefixQName.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ProcessingInstructionAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ProcessingInstructionAction.cs
index 40a5ae886ba..4bcf3d01a10 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ProcessingInstructionAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ProcessingInstructionAction.cs
@@ -2,7 +2,7 @@
// <copyright file="ProcessingInstructionAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Processor.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Processor.cs
index 2981dc9b747..9a86ec723bd 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Processor.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Processor.cs
@@ -2,7 +2,7 @@
// <copyright file="Processor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
@@ -185,7 +185,6 @@ namespace System.Xml.Xsl.XsltOld {
this.sortArray.Add(sortinfo);
}
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
internal void InitSortArray() {
if (this.sortArray == null) {
this.sortArray = new ArrayList();
@@ -343,7 +342,6 @@ namespace System.Xml.Xsl.XsltOld {
this.PushActionFrame(this.rootAction, /*nodeSet:*/null);
}
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
public ReaderOutput StartReader() {
ReaderOutput output = new ReaderOutput(this);
this.builder = new RecordBuilder(output, this.nameTable);
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ReaderOutput.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ReaderOutput.cs
index 61403d43609..4829e224ddc 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ReaderOutput.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ReaderOutput.cs
@@ -2,7 +2,7 @@
// <copyright file="ReaderOutput.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
@@ -56,7 +56,6 @@ namespace System.Xml.Xsl.XsltOld {
// XmlReader abstract methods implementation
public override XmlNodeType NodeType {
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
get {
CheckCurrentInfo();
return this.currentInfo.NodeType;
@@ -84,7 +83,6 @@ namespace System.Xml.Xsl.XsltOld {
}
public override string LocalName {
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
get {
CheckCurrentInfo();
return this.currentInfo.LocalName;
@@ -92,7 +90,6 @@ namespace System.Xml.Xsl.XsltOld {
}
public override string NamespaceURI {
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
get {
CheckCurrentInfo();
return this.currentInfo.NamespaceURI;
@@ -100,7 +97,6 @@ namespace System.Xml.Xsl.XsltOld {
}
public override string Prefix {
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
get {
CheckCurrentInfo();
return this.currentInfo.Prefix;
@@ -114,7 +110,6 @@ namespace System.Xml.Xsl.XsltOld {
}
public override string Value {
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
get {
CheckCurrentInfo();
return this.currentInfo.Value;
@@ -122,7 +117,6 @@ namespace System.Xml.Xsl.XsltOld {
}
public override int Depth {
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
get {
CheckCurrentInfo();
return this.currentInfo.Depth;
@@ -136,7 +130,6 @@ namespace System.Xml.Xsl.XsltOld {
}
public override bool IsEmptyElement {
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
get {
CheckCurrentInfo();
return this.currentInfo.IsEmptyTag;
@@ -239,7 +232,6 @@ namespace System.Xml.Xsl.XsltOld {
SetAttribute(i);
}
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
public override bool MoveToFirstAttribute() {
if (this.attributeCount <= 0) {
Debug.Assert(this.attributeCount == 0);
@@ -503,7 +495,6 @@ namespace System.Xml.Xsl.XsltOld {
return Processor.OutputResult.Interrupt;
}
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
public void TheEnd() {
// nothing here, was taken care of by RecordBuilder
}
@@ -517,7 +508,6 @@ namespace System.Xml.Xsl.XsltOld {
this.currentInfo = this.mainNode;
}
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
private void SetAttribute(int attrib) {
Debug.Assert(0 <= attrib && attrib < this.attributeCount);
Debug.Assert(0 <= attrib && attrib < this.attributeList.Count);
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/RecordBuilder.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/RecordBuilder.cs
index 1ca00932541..ff1e8bb6845 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/RecordBuilder.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/RecordBuilder.cs
@@ -2,7 +2,7 @@
// <copyright file="RecordBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/RecordOutput.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/RecordOutput.cs
index a161afdd569..a17ede7d4a4 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/RecordOutput.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/RecordOutput.cs
@@ -2,7 +2,7 @@
// <copyright file="RecordOutput.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">sdub</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/RootAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/RootAction.cs
index f1fc2fcf3d7..72cc4990b29 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/RootAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/RootAction.cs
@@ -2,7 +2,7 @@
// <copyright file="RootAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/SequentialOutput.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/SequentialOutput.cs
index 1f376524722..11ada9cad93 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/SequentialOutput.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/SequentialOutput.cs
@@ -2,7 +2,7 @@
// <copyright file="SequentialOutput.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/SortAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/SortAction.cs
index 7eac8559c3d..deebec1923b 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/SortAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/SortAction.cs
@@ -2,7 +2,7 @@
// <copyright file="SortAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/StateMachine.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/StateMachine.cs
index bf0e413c9dc..a8c602bb256 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/StateMachine.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/StateMachine.cs
@@ -2,7 +2,7 @@
// <copyright file="StateMachine.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/StringOutput.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/StringOutput.cs
index 4a1f20f7806..b4c69f80ccc 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/StringOutput.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/StringOutput.cs
@@ -2,7 +2,7 @@
// <copyright file="StringOutput.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Stylesheet.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Stylesheet.cs
index 9cc9876d603..0bf9d41dfc8 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Stylesheet.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Stylesheet.cs
@@ -2,7 +2,7 @@
// <copyright file="Stylesheet.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TemplateAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TemplateAction.cs
index b4eedce6b4b..f728fec60e7 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TemplateAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TemplateAction.cs
@@ -2,7 +2,7 @@
// <copyright file="TemplateAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TemplateBaseAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TemplateBaseAction.cs
index bdd82f3b872..3ac17a2ddcf 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TemplateBaseAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TemplateBaseAction.cs
@@ -2,7 +2,7 @@
// <copyright file="TemplateBaseAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TemplateLookupAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TemplateLookupAction.cs
index d8168cbd654..063d58991c4 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TemplateLookupAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TemplateLookupAction.cs
@@ -2,7 +2,7 @@
// <copyright file="TemplateLookupAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Templatemanager.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Templatemanager.cs
index b54551b6c09..36811a5b483 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Templatemanager.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/Templatemanager.cs
@@ -2,7 +2,7 @@
// <copyright file="TemplateManager.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextAction.cs
index d7b20787056..f93e6025ef9 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextAction.cs
@@ -2,7 +2,7 @@
// <copyright file="TextAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextEvent.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextEvent.cs
index 7f57aaa9329..480f72fcb42 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextEvent.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextEvent.cs
@@ -2,7 +2,7 @@
// <copyright file="TextEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextOnlyOutput.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextOnlyOutput.cs
index cf608ab7232..e4a18741d46 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextOnlyOutput.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextOnlyOutput.cs
@@ -2,7 +2,7 @@
// <copyright file="TextOnlyOutput.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextOutput.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextOutput.cs
index ca039a1740e..2fa2cb546e6 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextOutput.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TextOutput.cs
@@ -2,7 +2,7 @@
// <copyright file="TextOutput.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TheQuery.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TheQuery.cs
index 206b6dbd5cc..08238b490b9 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TheQuery.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/TheQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="TheQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/UseAttributesetsAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/UseAttributesetsAction.cs
index fbc23881296..6d1838f9e40 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/UseAttributesetsAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/UseAttributesetsAction.cs
@@ -2,7 +2,7 @@
// <copyright file="UseAttributeSetsAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ValueOfAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ValueOfAction.cs
index d0fc7e3b70a..ac4d48f6954 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ValueOfAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/ValueOfAction.cs
@@ -2,7 +2,7 @@
// <copyright file="ValueOfAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/VariableAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/VariableAction.cs
index 95f60635325..e57a2599968 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/VariableAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/VariableAction.cs
@@ -2,7 +2,7 @@
// <copyright file="VariableAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/WithParamAction.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/WithParamAction.cs
index 175d2409f54..c02c45ea8dc 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/WithParamAction.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/WithParamAction.cs
@@ -2,7 +2,7 @@
// <copyright file="WithParamAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/WriterOutput.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/WriterOutput.cs
index 3778c9dc2e8..57a02cfa1e5 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/WriterOutput.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/WriterOutput.cs
@@ -2,7 +2,7 @@
// <copyright file="WriterOutput.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/XsltCompileContext.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/XsltCompileContext.cs
index b64c0bca608..6e7a9a33be2 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/XsltCompileContext.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/XsltCompileContext.cs
@@ -2,7 +2,7 @@
// <copyright file="XsltCompileContext.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
@@ -53,7 +53,6 @@ namespace System.Xml.Xsl.XsltOld {
get { return string.Empty; }
}
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
public override string LookupNamespace(string prefix) {
return this.manager.ResolveXPathNamespace(prefix);
}
@@ -468,7 +467,7 @@ namespace System.Xml.Xsl.XsltOld {
if (typeof(XPathNodeIterator).IsAssignableFrom(type)) {
return XPathResultType.NodeSet;
}
- // [....]: It be better to check that type is realy object and otherwise return XPathResultType.Error
+ // Microsoft: It be better to check that type is realy object and otherwise return XPathResultType.Error
return XPathResultType.Any;
case TypeCode.DateTime :
return XPathResultType.Error;
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/XsltDebugger.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/XsltDebugger.cs
index 167880fe921..75237b5744b 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/XsltDebugger.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/XsltDebugger.cs
@@ -2,7 +2,7 @@
// <copyright file="XsltDebugger.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">sdub</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld.Debugger {
diff --git a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/XsltOutput.cs b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/XsltOutput.cs
index 45197e4c25b..0df2f0ab5d1 100644
--- a/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/XsltOutput.cs
+++ b/mcs/class/referencesource/System.Data.SqlXml/System/Xml/Xsl/XsltOld/XsltOutput.cs
@@ -2,7 +2,7 @@
// <copyright file="XsltOutput.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl.XsltOld {
diff --git a/mcs/class/referencesource/System.Data/FxCopSuppressions/Baseline.cs b/mcs/class/referencesource/System.Data/FxCopSuppressions/Baseline.cs
index aa2e99bd464..7abc21d2ab6 100644
--- a/mcs/class/referencesource/System.Data/FxCopSuppressions/Baseline.cs
+++ b/mcs/class/referencesource/System.Data/FxCopSuppressions/Baseline.cs
@@ -3,9 +3,9 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <description></description>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">nissimn</owner>
+// <owner current="true" primary="false">alazela</owner>
+// <owner current="true" primary="false">sukanyas</owner>
//------------------------------------------------------------------------------
//
// This file has a list of FXCOP messages to suppress, converted from ddsuites\src\FxCop\Excludes\1.32Baselines\System.Data.dll.xml using FXCOP GUI.
diff --git a/mcs/class/referencesource/System.Data/FxCopSuppressions/EverettBreaking.cs b/mcs/class/referencesource/System.Data/FxCopSuppressions/EverettBreaking.cs
index 439cd5fd527..5d081565bf1 100644
--- a/mcs/class/referencesource/System.Data/FxCopSuppressions/EverettBreaking.cs
+++ b/mcs/class/referencesource/System.Data/FxCopSuppressions/EverettBreaking.cs
@@ -3,9 +3,9 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <description></description>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">nissimn</owner>
+// <owner current="true" primary="false">alazela</owner>
+// <owner current="true" primary="false">sukanyas</owner>
//------------------------------------------------------------------------------
//
// This file has a list of FXCOP messages to suppress, converted from ddsuites\src\FxCop\Excludes\EverettBreaking\System.Data.dll-breaking.xml using FXCOP GUI.
diff --git a/mcs/class/referencesource/System.Data/FxCopSuppressions/FxCop40Suppressions.cs b/mcs/class/referencesource/System.Data/FxCopSuppressions/FxCop40Suppressions.cs
index eba9ff765e5..47c2ab42a12 100644
--- a/mcs/class/referencesource/System.Data/FxCopSuppressions/FxCop40Suppressions.cs
+++ b/mcs/class/referencesource/System.Data/FxCopSuppressions/FxCop40Suppressions.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <description></description>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">nissimn</owner>
// <owner current="true" primary="false">adoprov</owner>
//------------------------------------------------------------------------------
//
diff --git a/mcs/class/referencesource/System.Data/FxCopSuppressions/Triaged.cs b/mcs/class/referencesource/System.Data/FxCopSuppressions/Triaged.cs
index 34029050de9..755ece1b4aa 100644
--- a/mcs/class/referencesource/System.Data/FxCopSuppressions/Triaged.cs
+++ b/mcs/class/referencesource/System.Data/FxCopSuppressions/Triaged.cs
@@ -3,9 +3,9 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <description></description>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">nissimn</owner>
+// <owner current="true" primary="false">alazela</owner>
+// <owner current="true" primary="false">sukanyas</owner>
//------------------------------------------------------------------------------
//
// This file has a list of FXCOP messages to suppress, converted from ddsuites\src\FxCop\Excludes\Triaged\System.Data.dll.xml using FXCOP GUI.
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ExtendedClrTypeCode.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ExtendedClrTypeCode.cs
index 450023f5de0..e17cb205f13 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ExtendedClrTypeCode.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ExtendedClrTypeCode.cs
@@ -2,8 +2,8 @@
// <copyright file="ExtendedClrTypeCode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">alazela</owner>
+// <owner current="true" primary="false">stevesta</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedGetters.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedGetters.cs
index 1530ccf91ec..1e8eb3c6368 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedGetters.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedGetters.cs
@@ -2,8 +2,8 @@
// <copyright file="ITypedGetters.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">alazela</owner>
+// <owner current="true" primary="false">stevesta</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedGettersV3.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedGettersV3.cs
index 9d4e0faac60..451b2874b22 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedGettersV3.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedGettersV3.cs
@@ -2,8 +2,8 @@
// <copyright file="ITypedGettersV3.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">alazela</owner>
+// <owner current="true" primary="false">stevesta</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedSetters.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedSetters.cs
index e3e7ff8c6d9..93862990429 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedSetters.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedSetters.cs
@@ -2,8 +2,8 @@
// <copyright file="ITypedSetters.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">alazela</owner>
+// <owner current="true" primary="false">stevesta</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedSettersV3.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedSettersV3.cs
index daf677bdf93..4c066964553 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedSettersV3.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ITypedSettersV3.cs
@@ -2,8 +2,8 @@
// <copyright file="ITypedSettersV3.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">alazela</owner>
+// <owner current="true" primary="false">stevesta</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/MemoryRecordBuffer.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/MemoryRecordBuffer.cs
index 1a7317d87fd..54c1f5b0433 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/MemoryRecordBuffer.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/MemoryRecordBuffer.cs
@@ -2,9 +2,9 @@
// <copyright file="MemoryRecordBuffer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/MetadataUtilsSmi.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/MetadataUtilsSmi.cs
index 2a267bd1220..776bc2cfcc7 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/MetadataUtilsSmi.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/MetadataUtilsSmi.cs
@@ -2,8 +2,8 @@
// <copyright file="MetaDataUtilsSmi.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiConnection.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiConnection.cs
index 593b27447a4..7907a61aa49 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiConnection.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiConnection.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiConnection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiContext.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiContext.cs
index 413e2a2cfd5..5c500135f66 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiContext.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiContext.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiContext.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiContextFactory.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiContextFactory.cs
index 7554c93938e..df636c29561 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiContextFactory.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiContextFactory.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiContextFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventSink.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventSink.cs
index c7d2556b17e..4c282253975 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventSink.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventSink.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiEventSink.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventSink_Default.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventSink_Default.cs
index 089ced09eb5..8a0dfdae53f 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventSink_Default.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventSink_Default.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiEventSink_Default.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventSink_DeferedProcessing.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventSink_DeferedProcessing.cs
index 624a6dfa116..80f1b99bbff 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventSink_DeferedProcessing.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventSink_DeferedProcessing.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiEventSink_DeferedProcessing.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventStream.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventStream.cs
index baaeda5c044..9daeb29c4f9 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventStream.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiEventStream.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiEventStream.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiExecuteType.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiExecuteType.cs
index 685e354b137..979f737a173 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiExecuteType.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiExecuteType.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiExecuteType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">alazela</owner>
+// <owner current="true" primary="false">stevesta</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiGettersStream.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiGettersStream.cs
index c904b107b97..f81df24681c 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiGettersStream.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiGettersStream.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiGettersStream.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiLink.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiLink.cs
index cae8aa8fef2..f6024415ba7 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiLink.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiLink.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiLink.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">alazela</owner>
+// <owner current="true" primary="false">billin</owner>
//------------------------------------------------------------------------------
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("SqlAccess, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8")] // SQLBU 437687
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiMetaData.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiMetaData.cs
index 380902e1437..49b2e68c10a 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiMetaData.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiMetaData.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiMetaData.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
@@ -983,6 +983,8 @@ namespace Microsoft.SqlServer.Server {
//
// MetaData class to send parameter definitions to server.
// Sealed because we don't need to derive from it yet.
+ // IMPORTANT DEVNOTE: This class is being used for parameter encryption functionality, to get the type_info TDS object from SqlParameter.
+ // Please consider impact to that when changing this class. Refer to the callers of SqlParameter.GetMetadataForTypeInfo().
internal sealed class SmiParameterMetaData : SmiExtendedMetaData {
private ParameterDirection _direction;
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiMetaDataProperty.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiMetaDataProperty.cs
index b4fc70fd114..1ea6845ef9c 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiMetaDataProperty.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiMetaDataProperty.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiMetaData.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiRecordBuffer.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiRecordBuffer.cs
index 8221833271a..3be8d997429 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiRecordBuffer.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiRecordBuffer.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiRecordBuffer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiRequestExecutor.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiRequestExecutor.cs
index 4bf089f2272..947907293cf 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiRequestExecutor.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiRequestExecutor.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiRequestExecutor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiSettersStream.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiSettersStream.cs
index c32aa7f2793..95428f6d851 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiSettersStream.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiSettersStream.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiSettersStream.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiStream.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiStream.cs
index f46c8ee737e..e10d0ffb550 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiStream.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiStream.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiStream.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">alazela</owner>
+// <owner current="true" primary="false">stevesta</owner>
//------------------------------------------------------------------------------
// Stream-like object that uses SmiEventSink for server-side errors.
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiTypedGetterSetter.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiTypedGetterSetter.cs
index ca6a630fde2..14a25627a83 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiTypedGetterSetter.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiTypedGetterSetter.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiTypedGetterSetter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiXetterAccessMap.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiXetterAccessMap.cs
index 075099219c9..d782ff587f8 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiXetterAccessMap.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiXetterAccessMap.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiXetterAccessMap.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiXetterTypeCode.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiXetterTypeCode.cs
index 86fb084223b..6f7d40eb7d4 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiXetterTypeCode.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SmiXetterTypeCode.cs
@@ -2,8 +2,8 @@
// <copyright file="SmiXetterTypeCode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">alazela</owner>
+// <owner current="true" primary="false">billin</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SqlDataRecord.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SqlDataRecord.cs
index 9bb16a1e57f..eba515f8e55 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SqlDataRecord.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SqlDataRecord.cs
@@ -2,10 +2,10 @@
// <copyright file="SmiMetaData.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SqlRecordBuffer.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SqlRecordBuffer.cs
index b719507e84b..2882b8fe9e5 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SqlRecordBuffer.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SqlRecordBuffer.cs
@@ -2,9 +2,9 @@
// <copyright file="SqlRecordBuffer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SqlTriggerContext.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SqlTriggerContext.cs
index 4ab4a259ee9..f89c1a83b21 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SqlTriggerContext.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/SqlTriggerContext.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlTriggerContext.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
// <owner current="true" primary="false">daltodov</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ValueUtilsSmi.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ValueUtilsSmi.cs
index 6d9b8cbe2f9..0e143e18663 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ValueUtilsSmi.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/ValueUtilsSmi.cs
@@ -2,8 +2,8 @@
// <copyright file="ValueUtilsSmi.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
@@ -1830,8 +1830,8 @@ namespace Microsoft.SqlServer.Server {
// In order for us to get here we would have to have an
// invalid instance of SqlDbType, or one would have to add
// new member to SqlDbType without adding a case in this
- // switch, hence the assert - it must be bug in our code
- // not invalid user parameters.
+ // switch, hence the assert - it must be
+
Debug.Assert( false, "unsupported DbType:" + metaData[i].SqlDbType.ToString() );
throw ADP.NotSupported();
@@ -2022,8 +2022,8 @@ namespace Microsoft.SqlServer.Server {
// In order for us to get here we would have to have an
// invalid instance of SqlDbType, or one would have to add
// new member to SqlDbType without adding a case in this
- // switch, hence the assert - it must be bug in our code
- // not invalid user parameters.
+ // switch, hence the assert - it must be
+
Debug.Assert(false, "unsupported DbType:" + metaData[i].SqlDbType.ToString());
throw ADP.NotSupported();
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/sqlcontext.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/sqlcontext.cs
index 0696bedbbeb..5634702a714 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/sqlcontext.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/sqlcontext.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlContext.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
// <owner current="true" primary="false">daltodov</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/sqlpipe.cs b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/sqlpipe.cs
index d1b39923ff6..a8abcbd16f6 100644
--- a/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/sqlpipe.cs
+++ b/mcs/class/referencesource/System.Data/Microsoft/SqlServer/Server/sqlpipe.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlPipe.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
// <owner current="true" primary="false">daltodov</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/AcceptRejectRule.cs b/mcs/class/referencesource/System.Data/System/Data/AcceptRejectRule.cs
index 195337d1f72..f7eb28b2116 100644
--- a/mcs/class/referencesource/System.Data/System/Data/AcceptRejectRule.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/AcceptRejectRule.cs
@@ -2,9 +2,9 @@
// <copyright file="AcceptRejectRule.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/AggregateType.cs b/mcs/class/referencesource/System.Data/System/Data/AggregateType.cs
index a40cdfe635f..c459f43092c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/AggregateType.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/AggregateType.cs
@@ -2,9 +2,9 @@
// <copyright file="AggregateType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/BaseCollection.cs b/mcs/class/referencesource/System.Data/System/Data/BaseCollection.cs
index af0bc90efa7..90a3c41bfda 100644
--- a/mcs/class/referencesource/System.Data/System/Data/BaseCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/BaseCollection.cs
@@ -2,9 +2,9 @@
// <copyright file="BaseCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/CatalogLocation.cs b/mcs/class/referencesource/System.Data/System/Data/CatalogLocation.cs
index de8e6142549..9cbc4efde9a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/CatalogLocation.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/CatalogLocation.cs
@@ -2,8 +2,8 @@
// <copyright file="CatalogLocation.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/CodeGen/StrongTypingException.cs b/mcs/class/referencesource/System.Data/System/Data/CodeGen/StrongTypingException.cs
index 62eb1dcc3f8..1141adebe12 100644
--- a/mcs/class/referencesource/System.Data/System/Data/CodeGen/StrongTypingException.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/CodeGen/StrongTypingException.cs
@@ -2,9 +2,9 @@
// <copyright file="StrongTypingException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/CodeGen/datacache.cs b/mcs/class/referencesource/System.Data/System/Data/CodeGen/datacache.cs
index 26f3d320a38..dc0705b2609 100644
--- a/mcs/class/referencesource/System.Data/System/Data/CodeGen/datacache.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/CodeGen/datacache.cs
@@ -2,9 +2,9 @@
// <copyright file="datacache.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -351,7 +351,7 @@ namespace System.Data {
}
dataTableClass.Members.Add(constructor);
- //\\ internal <TableName>DataTableClass(DataTable table) : base(table.TableName) { // [....] : Assuming incoming table always associated with DataSet
+ //\\ internal <TableName>DataTableClass(DataTable table) : base(table.TableName) { // Microsoft : Assuming incoming table always associated with DataSet
//\\ if (table.CaseSensitive != table.DataSet.CaseSensitive)
//\\ this.CaseSensitive = table.CaseSensitive;
//\\ if (table.Locale.ToString() != table.DataSet.Locale.ToString())
diff --git a/mcs/class/referencesource/System.Data/System/Data/ColumnTypeConverter.cs b/mcs/class/referencesource/System.Data/System/Data/ColumnTypeConverter.cs
index 69df720e184..c3fb2cbdf26 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ColumnTypeConverter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ColumnTypeConverter.cs
@@ -2,9 +2,9 @@
// <copyright file="ColumnTypeConverter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
/*
diff --git a/mcs/class/referencesource/System.Data/System/Data/CommandBehavior.cs b/mcs/class/referencesource/System.Data/System/Data/CommandBehavior.cs
index 5eb7accfa80..0546e321353 100644
--- a/mcs/class/referencesource/System.Data/System/Data/CommandBehavior.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/CommandBehavior.cs
@@ -2,8 +2,8 @@
// <copyright file="CommandBehavior.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -14,7 +14,7 @@ namespace System.Data {
SingleResult = 1, // with data, force single result, may affect database
SchemaOnly = 2, // column info, no data, no effect on database
KeyInfo = 4, // column info + primary key information (if available)
- //
+ // UNDONE: SingleRow = 8 | SingleResult,
SingleRow = 8, // data, hint single row and single result, may affect database - doesn't apply to child(chapter) results
SequentialAccess = 0x10,
CloseConnection = 0x20,
diff --git a/mcs/class/referencesource/System.Data/System/Data/CommandType.cs b/mcs/class/referencesource/System.Data/System/Data/CommandType.cs
index 2368a321d69..dbb30975201 100644
--- a/mcs/class/referencesource/System.Data/System/Data/CommandType.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/CommandType.cs
@@ -2,8 +2,8 @@
// <copyright file="CommandType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/ActivityCorrelator.cs b/mcs/class/referencesource/System.Data/System/Data/Common/ActivityCorrelator.cs
index 4fc17b4ebdd..e40cbc2c505 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/ActivityCorrelator.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/ActivityCorrelator.cs
@@ -2,7 +2,7 @@
// <copyright file="ActivityCorrelator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/AdapterSwitches.cs b/mcs/class/referencesource/System.Data/System/Data/Common/AdapterSwitches.cs
index 67842354caf..be5d8321b93 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/AdapterSwitches.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/AdapterSwitches.cs
@@ -2,8 +2,8 @@
// <copyright file="AdapterSwitches.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
#if DEBUG
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/AdapterUtil.cs b/mcs/class/referencesource/System.Data/System/Data/Common/AdapterUtil.cs
index f8880b5d09b..04cd1e4a72c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/AdapterUtil.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/AdapterUtil.cs
@@ -2,8 +2,8 @@
// <copyright file="AdapterUtil.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -78,7 +78,7 @@ namespace System.Data.Common {
}
// NOTE: Initializing a Task in SQL CLR requires the "UNSAFE" permission set (http://msdn.microsoft.com/en-us/library/ms172338.aspx)
- // Therefore we are lazily initializing these Tasks to avoid forcing customers to use the "UNSAFE" set when they are actually using no Async features (See Dev11 Bug #193253)
+ // Therefore we are lazily initializing these Tasks to avoid forcing customers to use the "UNSAFE" set when they are actually using no Async features (See Dev11
static private Task<bool> _trueTask = null;
static internal Task<bool> TrueTask {
get {
@@ -803,7 +803,7 @@ namespace System.Data.Common {
return ADP.InvalidOperation(Res.GetString(Res.ADP_InvalidMixedUsageOfSecureAndClearCredential));
}
- static internal ArgumentException InvalidMixedArgumentOfSecureAndClearCredential() {
+ static internal ArgumentException InvalidMixedArgumentOfSecureAndClearCredential() {
return ADP.Argument(Res.GetString(Res.ADP_InvalidMixedUsageOfSecureAndClearCredential));
}
@@ -820,11 +820,35 @@ namespace System.Data.Common {
return ADP.InvalidOperation(Res.GetString(Res.ADP_InvalidMixedUsageOfSecureCredentialAndContextConnection));
}
- static internal ArgumentException InvalidMixedArgumentOfSecureCredentialAndContextConnection()
+ static internal ArgumentException InvalidMixedArgumentOfSecureCredentialAndContextConnection()
{
return ADP.Argument(Res.GetString(Res.ADP_InvalidMixedUsageOfSecureCredentialAndContextConnection));
}
+ static internal InvalidOperationException InvalidMixedUsageOfAccessTokenAndContextConnection() {
+ return ADP.InvalidOperation(Res.GetString(Res.ADP_InvalidMixedUsageOfAccessTokenAndContextConnection));
+ }
+
+ static internal InvalidOperationException InvalidMixedUsageOfAccessTokenAndIntegratedSecurity() {
+ return ADP.InvalidOperation(Res.GetString(Res.ADP_InvalidMixedUsageOfAccessTokenAndIntegratedSecurity));
+ }
+
+ static internal InvalidOperationException InvalidMixedUsageOfAccessTokenAndUserIDPassword() {
+ return ADP.InvalidOperation(Res.GetString(Res.ADP_InvalidMixedUsageOfAccessTokenAndUserIDPassword));
+ }
+
+ static internal Exception InvalidMixedUsageOfAccessTokenAndCredential() {
+ return ADP.InvalidOperation(Res.GetString(Res.ADP_InvalidMixedUsageOfAccessTokenAndCredential));
+ }
+
+ static internal Exception InvalidMixedUsageOfAccessTokenAndAuthentication() {
+ return ADP.InvalidOperation(Res.GetString(Res.ADP_InvalidMixedUsageOfAccessTokenAndAuthentication));
+ }
+
+ static internal Exception InvalidMixedUsageOfCredentialAndAccessToken() {
+ return ADP.InvalidOperation(Res.GetString(Res.ADP_InvalidMixedUsageOfCredentialAndAccessToken));
+ }
+
//
// DbConnection
//
@@ -1568,6 +1592,10 @@ namespace System.Data.Common {
return ADP.Argument(Res.GetString(Res.ADP_ParameterValueOutOfRange, value.ToString()));
}
+ static internal ArgumentException ParameterValueOutOfRange(String value) {
+ return ADP.Argument(Res.GetString(Res.ADP_ParameterValueOutOfRange, value));
+ }
+
static internal ArgumentException VersionDoesNotSupportDataType(string typeName) {
return Argument(Res.GetString(Res.ADP_VersionDoesNotSupportDataType, typeName));
}
@@ -1761,6 +1789,7 @@ namespace System.Data.Common {
internal const string ChangeDatabase = "ChangeDatabase";
internal const string Cancel = "Cancel";
internal const string Clone = "Clone";
+ internal const string ColumnEncryptionSystemProviderNamePrefix = "MSSQL_";
internal const string CommitTransaction = "CommitTransaction";
internal const string CommandTimeout = "CommandTimeout";
internal const string ConnectionString = "ConnectionString";
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/BigIntegerStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/BigIntegerStorage.cs
index d3544903d86..e26e965964b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/BigIntegerStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/BigIntegerStorage.cs
@@ -2,8 +2,8 @@
// <copyright file="BigIntStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/BooleanStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/BooleanStorage.cs
index de174a86bbc..cc64c9506da 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/BooleanStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/BooleanStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="BooleanStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/ByteStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/ByteStorage.cs
index 12a9df123c7..d41d1576bc7 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/ByteStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/ByteStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="ByteStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/CharStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/CharStorage.cs
index b03c0df2c2b..f1baf809a6c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/CharStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/CharStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="CharStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DBCommand.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DBCommand.cs
index 3a2e01b2620..cc4399fe385 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DBCommand.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DBCommand.cs
@@ -2,8 +2,8 @@
// <copyright file="DbCommand.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DBCommandBuilder.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DBCommandBuilder.cs
index 9744b25b2cf..4205f95998a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DBCommandBuilder.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DBCommandBuilder.cs
@@ -2,8 +2,8 @@
// <copyright file="CommandBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DBConnection.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DBConnection.cs
index e9967e0c0b1..52f04500598 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DBConnection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DBConnection.cs
@@ -2,9 +2,9 @@
// <copyright file="DbConnection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DBConnectionString.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DBConnectionString.cs
index ed7b7b4c5d1..42e1b6bb1f1 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DBConnectionString.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DBConnectionString.cs
@@ -2,8 +2,8 @@
// <copyright file="DBConnectionString.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -251,7 +251,7 @@ namespace System.Data.Common {
//Debug.WriteLine("14/15/16 this AllowOnly and entry AllowOnly but no restrictions");
}
- // verify _hasPassword & _parsetable are in [....] between Everett/Whidbey
+ // verify _hasPassword & _parsetable are in sync between Everett/Whidbey
Debug.Assert(!_hasPassword || ContainsKey(KEY.Password) || ContainsKey(KEY.Pwd), "OnDeserialized password mismatch this");
Debug.Assert(null == entry || !entry._hasPassword || entry.ContainsKey(KEY.Password) || entry.ContainsKey(KEY.Pwd), "OnDeserialized password mismatch entry");
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DBDataPermission.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DBDataPermission.cs
index 46c2906efac..ed6140309e9 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DBDataPermission.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DBDataPermission.cs
@@ -2,8 +2,8 @@
// <copyright file="DBDataPermission.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DBDataPermissionAttribute.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DBDataPermissionAttribute.cs
index 0d22095d6b5..518e2c5215b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DBDataPermissionAttribute.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DBDataPermissionAttribute.cs
@@ -2,8 +2,8 @@
// <copyright file="DBDataPermissionAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DBParameter.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DBParameter.cs
index be9208922d4..4a0ba35742c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DBParameter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DBParameter.cs
@@ -2,8 +2,8 @@
// <copyright file="DbParameter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DBSchemaRow.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DBSchemaRow.cs
index 06cf3ac1477..25850cffe0c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DBSchemaRow.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DBSchemaRow.cs
@@ -2,8 +2,8 @@
// <copyright file="DBSchemaRow.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DBSchemaTable.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DBSchemaTable.cs
index 8a548a5fa94..c6c8917273a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DBSchemaTable.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DBSchemaTable.cs
@@ -2,8 +2,8 @@
// <copyright file="DBSchemaTable.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DataAdapter.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DataAdapter.cs
index 1dbda974752..e36220920bd 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DataAdapter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DataAdapter.cs
@@ -2,8 +2,8 @@
// <copyright file="DataAdapter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DataColumnMapping.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DataColumnMapping.cs
index acaf957c51a..f6a843e2cb2 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DataColumnMapping.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DataColumnMapping.cs
@@ -2,8 +2,8 @@
// <copyright file="DataColumnMapping.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DataColumnMappingCollection.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DataColumnMappingCollection.cs
index 6156160922b..b37e7560329 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DataColumnMappingCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DataColumnMappingCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="DataColumnMappingCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DataRecordInternal.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DataRecordInternal.cs
index 9c8a7d31ece..659db8d52fd 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DataRecordInternal.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DataRecordInternal.cs
@@ -2,8 +2,8 @@
// <copyright file="DataRecordInternal.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DataStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DataStorage.cs
index 69087c233be..cf66ff06e91 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DataStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DataStorage.cs
@@ -2,8 +2,8 @@
// <copyright file="DataStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DataTableMapping.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DataTableMapping.cs
index 96567755f36..bbb0276ca4a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DataTableMapping.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DataTableMapping.cs
@@ -2,8 +2,8 @@
// <copyright file="DataTableMapping.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DataTableMappingCollection.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DataTableMappingCollection.cs
index 9ef08940450..a235804a3ae 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DataTableMappingCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DataTableMappingCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="DataTableMappingCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DateTimeOffsetStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DateTimeOffsetStorage.cs
index b92e6fc6fa5..457dc17f2a1 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DateTimeOffsetStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DateTimeOffsetStorage.cs
@@ -2,8 +2,8 @@
// <copyright file="DateTimeOffsetStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DateTimeStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DateTimeStorage.cs
index cce489890e5..4ff7014c5b1 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DateTimeStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DateTimeStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="DateTimeStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionOptions.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionOptions.cs
index 9f63711fbb1..43b8e22a340 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionOptions.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionOptions.cs
@@ -2,8 +2,8 @@
// <copyright file="DBConnectionOptions.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -109,6 +109,7 @@ namespace System.Data.Common {
private readonly Hashtable _parsetable;
internal readonly NameValuePair KeyChain;
internal readonly bool HasPasswordKeyword;
+ internal readonly bool HasUserIdKeyword;
// differences between OleDb and Odbc
// ODBC:
@@ -144,12 +145,14 @@ namespace System.Data.Common {
if (0 < _usersConnectionString.Length) {
KeyChain = ParseInternal(_parsetable, _usersConnectionString, true, synonyms, UseOdbcRules);
HasPasswordKeyword = (_parsetable.ContainsKey(KEY.Password) || _parsetable.ContainsKey(SYNONYM.Pwd));
+ HasUserIdKeyword = (_parsetable.ContainsKey(KEY.User_ID) || _parsetable.ContainsKey(SYNONYM.UID));
}
}
protected DbConnectionOptions(DbConnectionOptions connectionOptions) { // Clone used by SqlConnectionString
_usersConnectionString = connectionOptions._usersConnectionString;
HasPasswordKeyword = connectionOptions.HasPasswordKeyword;
+ HasUserIdKeyword = connectionOptions.HasUserIdKeyword;
UseOdbcRules = connectionOptions.UseOdbcRules;
_parsetable = connectionOptions._parsetable;
KeyChain = connectionOptions.KeyChain;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionPoolKey.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionPoolKey.cs
index 9142ef6dd15..6ab3ddbb13b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionPoolKey.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionPoolKey.cs
@@ -2,8 +2,8 @@
// <copyright file="ConnectionPoolKey.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionStringBuilder.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionStringBuilder.cs
index f716a2679ca..5192551a19a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionStringBuilder.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionStringBuilder.cs
@@ -2,8 +2,8 @@
// <copyright file="DbConnectionStringBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -128,7 +128,7 @@ namespace System.Data.Common {
foreach(string keyword in Keys) {
object value;
if (ShouldSerialize(keyword) && TryGetValue(keyword, out value)) {
- string keyvalue = (null != value) ? Convert.ToString(value, CultureInfo.InvariantCulture) : (string)null;
+ string keyvalue = ConvertValueToString(value);
AppendKeyValuePair(builder, keyword, keyvalue, UseOdbcRules);
}
}
@@ -213,6 +213,10 @@ namespace System.Data.Common {
}
}
+ internal virtual string ConvertValueToString(object value) {
+ return (value == null) ? (string)null : Convert.ToString(value, CultureInfo.InvariantCulture);
+ }
+
void System.Collections.IDictionary.Add(object keyword, object value) {
Add(ObjectToString(keyword), value);
}
@@ -378,7 +382,7 @@ namespace System.Data.Common {
}
// all keywords in Keys list that do not have strongly typed property, ODBC case
- // ignore 'Workaround Oracle Bug 914652' via IsFixedSize
+ // ignore 'Workaround Oracle
if (!IsFixedSize) {
attributes = null;
foreach(string keyword in Keys) {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionStringCommon.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionStringCommon.cs
index 307e3f9aa1e..f943f272b3a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionStringCommon.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DbConnectionStringCommon.cs
@@ -2,8 +2,8 @@
// <copyright file="DbConnectionStringBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
@@ -236,17 +236,21 @@ namespace System.Data.Common {
}
}
- internal static class DbConnectionStringBuilderUtil {
+ internal static class DbConnectionStringBuilderUtil
+ {
- internal static bool ConvertToBoolean(object value) {
+ internal static bool ConvertToBoolean(object value)
+ {
Debug.Assert(null != value, "ConvertToBoolean(null)");
string svalue = (value as string);
- if (null != svalue) {
+ if (null != svalue)
+ {
if (StringComparer.OrdinalIgnoreCase.Equals(svalue, "true") || StringComparer.OrdinalIgnoreCase.Equals(svalue, "yes"))
return true;
else if (StringComparer.OrdinalIgnoreCase.Equals(svalue, "false") || StringComparer.OrdinalIgnoreCase.Equals(svalue, "no"))
return false;
- else {
+ else
+ {
string tmp = svalue.Trim(); // Remove leading & trailing white space.
if (StringComparer.OrdinalIgnoreCase.Equals(tmp, "true") || StringComparer.OrdinalIgnoreCase.Equals(tmp, "yes"))
return true;
@@ -255,23 +259,28 @@ namespace System.Data.Common {
}
return Boolean.Parse(svalue);
}
- try {
+ try
+ {
return ((IConvertible)value).ToBoolean(CultureInfo.InvariantCulture);
}
- catch(InvalidCastException e) {
+ catch (InvalidCastException e)
+ {
throw ADP.ConvertFailed(value.GetType(), typeof(Boolean), e);
}
}
- internal static bool ConvertToIntegratedSecurity(object value) {
+ internal static bool ConvertToIntegratedSecurity(object value)
+ {
Debug.Assert(null != value, "ConvertToIntegratedSecurity(null)");
string svalue = (value as string);
- if (null != svalue) {
+ if (null != svalue)
+ {
if (StringComparer.OrdinalIgnoreCase.Equals(svalue, "sspi") || StringComparer.OrdinalIgnoreCase.Equals(svalue, "true") || StringComparer.OrdinalIgnoreCase.Equals(svalue, "yes"))
return true;
else if (StringComparer.OrdinalIgnoreCase.Equals(svalue, "false") || StringComparer.OrdinalIgnoreCase.Equals(svalue, "no"))
return false;
- else {
+ else
+ {
string tmp = svalue.Trim(); // Remove leading & trailing white space.
if (StringComparer.OrdinalIgnoreCase.Equals(tmp, "sspi") || StringComparer.OrdinalIgnoreCase.Equals(tmp, "true") || StringComparer.OrdinalIgnoreCase.Equals(tmp, "yes"))
return true;
@@ -280,28 +289,36 @@ namespace System.Data.Common {
}
return Boolean.Parse(svalue);
}
- try {
+ try
+ {
return ((IConvertible)value).ToBoolean(CultureInfo.InvariantCulture);
}
- catch(InvalidCastException e) {
+ catch (InvalidCastException e)
+ {
throw ADP.ConvertFailed(value.GetType(), typeof(Boolean), e);
}
}
- internal static int ConvertToInt32(object value) {
- try {
+ internal static int ConvertToInt32(object value)
+ {
+ try
+ {
return ((IConvertible)value).ToInt32(CultureInfo.InvariantCulture);
}
- catch(InvalidCastException e) {
+ catch (InvalidCastException e)
+ {
throw ADP.ConvertFailed(value.GetType(), typeof(Int32), e);
}
}
- internal static string ConvertToString(object value) {
- try {
+ internal static string ConvertToString(object value)
+ {
+ try
+ {
return ((IConvertible)value).ToString(CultureInfo.InvariantCulture);
}
- catch(InvalidCastException e) {
+ catch (InvalidCastException e)
+ {
throw ADP.ConvertFailed(value.GetType(), typeof(String), e);
}
}
@@ -309,35 +326,43 @@ namespace System.Data.Common {
const string ApplicationIntentReadWriteString = "ReadWrite";
const string ApplicationIntentReadOnlyString = "ReadOnly";
- internal static bool TryConvertToApplicationIntent(string value, out ApplicationIntent result) {
+ internal static bool TryConvertToApplicationIntent(string value, out ApplicationIntent result)
+ {
Debug.Assert(Enum.GetNames(typeof(ApplicationIntent)).Length == 2, "ApplicationIntent enum has changed, update needed");
Debug.Assert(null != value, "TryConvertToApplicationIntent(null,...)");
- if (StringComparer.OrdinalIgnoreCase.Equals(value, ApplicationIntentReadOnlyString)) {
+ if (StringComparer.OrdinalIgnoreCase.Equals(value, ApplicationIntentReadOnlyString))
+ {
result = ApplicationIntent.ReadOnly;
return true;
}
- else if (StringComparer.OrdinalIgnoreCase.Equals(value, ApplicationIntentReadWriteString)) {
+ else if (StringComparer.OrdinalIgnoreCase.Equals(value, ApplicationIntentReadWriteString))
+ {
result = ApplicationIntent.ReadWrite;
return true;
}
- else {
+ else
+ {
result = DbConnectionStringDefaults.ApplicationIntent;
return false;
}
}
- internal static bool IsValidApplicationIntentValue(ApplicationIntent value) {
+ internal static bool IsValidApplicationIntentValue(ApplicationIntent value)
+ {
Debug.Assert(Enum.GetNames(typeof(ApplicationIntent)).Length == 2, "ApplicationIntent enum has changed, update needed");
return value == ApplicationIntent.ReadOnly || value == ApplicationIntent.ReadWrite;
}
- internal static string ApplicationIntentToString(ApplicationIntent value) {
+ internal static string ApplicationIntentToString(ApplicationIntent value)
+ {
Debug.Assert(IsValidApplicationIntentValue(value));
- if (value == ApplicationIntent.ReadOnly) {
+ if (value == ApplicationIntent.ReadOnly)
+ {
return ApplicationIntentReadOnlyString;
}
- else {
+ else
+ {
return ApplicationIntentReadWriteString;
}
}
@@ -352,60 +377,321 @@ namespace System.Data.Common {
/// in any case above, if the conerted value is out of valid range, the method raises ArgumentOutOfRangeException.
/// </summary>
/// <returns>applicaiton intent value in the valid range</returns>
- internal static ApplicationIntent ConvertToApplicationIntent(string keyword, object value) {
+ internal static ApplicationIntent ConvertToApplicationIntent(string keyword, object value)
+ {
Debug.Assert(null != value, "ConvertToApplicationIntent(null)");
string sValue = (value as string);
ApplicationIntent result;
- if (null != sValue) {
+ if (null != sValue)
+ {
// We could use Enum.TryParse<ApplicationIntent> here, but it accepts value combinations like
// "ReadOnly, ReadWrite" which are unwelcome here
// Also, Enum.TryParse is 100x slower than plain StringComparer.OrdinalIgnoreCase.Equals method.
- if (TryConvertToApplicationIntent(sValue, out result)) {
+ if (TryConvertToApplicationIntent(sValue, out result))
+ {
return result;
}
// try again after remove leading & trailing whitespaces.
sValue = sValue.Trim();
- if (TryConvertToApplicationIntent(sValue, out result)) {
+ if (TryConvertToApplicationIntent(sValue, out result))
+ {
return result;
}
// string values must be valid
throw ADP.InvalidConnectionOptionValue(keyword);
}
- else {
+ else
+ {
// the value is not string, try other options
ApplicationIntent eValue;
- if (value is ApplicationIntent) {
+ if (value is ApplicationIntent)
+ {
// quick path for the most common case
eValue = (ApplicationIntent)value;
}
- else if (value.GetType().IsEnum) {
+ else if (value.GetType().IsEnum)
+ {
// explicitly block scenarios in which user tries to use wrong enum types, like:
// builder["ApplicationIntent"] = EnvironmentVariableTarget.Process;
// workaround: explicitly cast non-ApplicationIntent enums to int
throw ADP.ConvertFailed(value.GetType(), typeof(ApplicationIntent), null);
}
+ else
+ {
+ try
+ {
+ // Enum.ToObject allows only integral and enum values (enums are blocked above), rasing ArgumentException for the rest
+ eValue = (ApplicationIntent)Enum.ToObject(typeof(ApplicationIntent), value);
+ }
+ catch (ArgumentException e)
+ {
+ // to be consistent with the messages we send in case of wrong type usage, replace
+ // the error with our exception, and keep the original one as inner one for troubleshooting
+ throw ADP.ConvertFailed(value.GetType(), typeof(ApplicationIntent), e);
+ }
+ }
+
+ // ensure value is in valid range
+ if (IsValidApplicationIntentValue(eValue))
+ {
+ return eValue;
+ }
+ else
+ {
+ throw ADP.InvalidEnumerationValue(typeof(ApplicationIntent), (int)eValue);
+ }
+ }
+ }
+
+ const string SqlPasswordString = "Sql Password";
+ const string ActiveDirectoryPasswordString = "Active Directory Password";
+ const string ActiveDirectoryIntegratedString = "Active Directory Integrated";
+
+ internal static bool TryConvertToAuthenticationType(string value, out SqlAuthenticationMethod result)
+ {
+ Debug.Assert(Enum.GetNames(typeof(SqlAuthenticationMethod)).Length == 4, "SqlAuthenticationMethod enum has changed, update needed");
+
+ bool isSuccess = false;
+
+ if (StringComparer.InvariantCultureIgnoreCase.Equals(value, SqlPasswordString))
+ {
+ result = SqlAuthenticationMethod.SqlPassword;
+ isSuccess = true;
+ }
+ else if (StringComparer.InvariantCultureIgnoreCase.Equals(value, ActiveDirectoryPasswordString))
+ {
+ result = SqlAuthenticationMethod.ActiveDirectoryPassword;
+ isSuccess = true;
+ }
+ else if (StringComparer.InvariantCultureIgnoreCase.Equals(value, ActiveDirectoryIntegratedString))
+ {
+ result = SqlAuthenticationMethod.ActiveDirectoryIntegrated;
+ isSuccess = true;
+ }
+ else
+ {
+ result = DbConnectionStringDefaults.Authentication;
+ }
+ return isSuccess;
+ }
+
+ /// <summary>
+ /// Column Encryption Setting.
+ /// </summary>
+ const string ColumnEncryptionSettingEnabledString = "Enabled";
+ const string ColumnEncryptionSettingDisabledString = "Disabled";
+
+ /// <summary>
+ /// Convert a string value to the corresponding SqlConnectionColumnEncryptionSetting.
+ /// </summary>
+ /// <param name="value"></param>
+ /// <param name="result"></param>
+ /// <returns></returns>
+ internal static bool TryConvertToColumnEncryptionSetting(string value, out SqlConnectionColumnEncryptionSetting result) {
+ bool isSuccess = false;
+
+ if (StringComparer.InvariantCultureIgnoreCase.Equals(value, ColumnEncryptionSettingEnabledString)) {
+ result = SqlConnectionColumnEncryptionSetting.Enabled;
+ isSuccess = true;
+ }
+ else if (StringComparer.InvariantCultureIgnoreCase.Equals(value, ColumnEncryptionSettingDisabledString)) {
+ result = SqlConnectionColumnEncryptionSetting.Disabled;
+ isSuccess = true;
+ }
+ else {
+ result = DbConnectionStringDefaults.ColumnEncryptionSetting;
+ }
+
+ return isSuccess;
+ }
+
+ /// <summary>
+ /// Is it a valid connection level column encryption setting ?
+ /// </summary>
+ /// <param name="value"></param>
+ /// <returns></returns>
+ internal static bool IsValidColumnEncryptionSetting(SqlConnectionColumnEncryptionSetting value) {
+ Debug.Assert(Enum.GetNames(typeof(SqlConnectionColumnEncryptionSetting)).Length == 2, "SqlConnectionColumnEncryptionSetting enum has changed, update needed");
+ return value == SqlConnectionColumnEncryptionSetting.Enabled || value == SqlConnectionColumnEncryptionSetting.Disabled;
+ }
+
+ /// <summary>
+ /// Convert connection level column encryption setting value to string.
+ /// </summary>
+ /// <param name="value"></param>
+ /// <returns></returns>
+ internal static string ColumnEncryptionSettingToString(SqlConnectionColumnEncryptionSetting value) {
+ Debug.Assert(IsValidColumnEncryptionSetting(value), "value is not a valid connection level column encryption setting.");
+
+ switch (value) {
+ case SqlConnectionColumnEncryptionSetting.Enabled:
+ return ColumnEncryptionSettingEnabledString;
+ case SqlConnectionColumnEncryptionSetting.Disabled:
+ return ColumnEncryptionSettingDisabledString;
+
+ default:
+ return null;
+ }
+ }
+
+ internal static bool IsValidAuthenticationTypeValue(SqlAuthenticationMethod value) {
+ Debug.Assert(Enum.GetNames(typeof(SqlAuthenticationMethod)).Length == 4, "SqlAuthenticationMethod enum has changed, update needed");
+ return value == SqlAuthenticationMethod.SqlPassword
+ || value == SqlAuthenticationMethod.ActiveDirectoryPassword
+ || value == SqlAuthenticationMethod.ActiveDirectoryIntegrated
+ || value == SqlAuthenticationMethod.NotSpecified;
+ }
+
+ internal static string AuthenticationTypeToString(SqlAuthenticationMethod value)
+ {
+ Debug.Assert(IsValidAuthenticationTypeValue(value));
+
+ switch (value)
+ {
+ case SqlAuthenticationMethod.SqlPassword:
+ return SqlPasswordString;
+ case SqlAuthenticationMethod.ActiveDirectoryPassword:
+ return ActiveDirectoryPasswordString;
+ case SqlAuthenticationMethod.ActiveDirectoryIntegrated:
+ return ActiveDirectoryIntegratedString;
+ default:
+ return null;
+ }
+ }
+
+ internal static SqlAuthenticationMethod ConvertToAuthenticationType(string keyword, object value)
+ {
+ if (null == value)
+ {
+ return DbConnectionStringDefaults.Authentication;
+ }
+
+ string sValue = (value as string);
+ SqlAuthenticationMethod result;
+ if (null != sValue)
+ {
+ if (TryConvertToAuthenticationType(sValue, out result))
+ {
+ return result;
+ }
+
+ // try again after remove leading & trailing whitespaces.
+ sValue = sValue.Trim();
+ if (TryConvertToAuthenticationType(sValue, out result))
+ {
+ return result;
+ }
+
+ // string values must be valid
+ throw ADP.InvalidConnectionOptionValue(keyword);
+ }
+ else
+ {
+ // the value is not string, try other options
+ SqlAuthenticationMethod eValue;
+
+ if (value is SqlAuthenticationMethod)
+ {
+ // quick path for the most common case
+ eValue = (SqlAuthenticationMethod)value;
+ }
+ else if (value.GetType().IsEnum)
+ {
+ // explicitly block scenarios in which user tries to use wrong enum types, like:
+ // builder["ApplicationIntent"] = EnvironmentVariableTarget.Process;
+ // workaround: explicitly cast non-ApplicationIntent enums to int
+ throw ADP.ConvertFailed(value.GetType(), typeof(SqlAuthenticationMethod), null);
+ }
+ else
+ {
+ try
+ {
+ // Enum.ToObject allows only integral and enum values (enums are blocked above), rasing ArgumentException for the rest
+ eValue = (SqlAuthenticationMethod)Enum.ToObject(typeof(SqlAuthenticationMethod), value);
+ }
+ catch (ArgumentException e)
+ {
+ // to be consistent with the messages we send in case of wrong type usage, replace
+ // the error with our exception, and keep the original one as inner one for troubleshooting
+ throw ADP.ConvertFailed(value.GetType(), typeof(SqlAuthenticationMethod), e);
+ }
+ }
+
+ // ensure value is in valid range
+ if (IsValidAuthenticationTypeValue(eValue))
+ {
+ return eValue;
+ }
+ else
+ {
+ throw ADP.InvalidEnumerationValue(typeof(SqlAuthenticationMethod), (int)eValue);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Convert the provided value to a SqlConnectionColumnEncryptionSetting.
+ /// </summary>
+ /// <param name="keyword"></param>
+ /// <param name="value"></param>
+ /// <returns></returns>
+ internal static SqlConnectionColumnEncryptionSetting ConvertToColumnEncryptionSetting(string keyword, object value) {
+ if (null == value) {
+ return DbConnectionStringDefaults.ColumnEncryptionSetting;
+ }
+
+ string sValue = (value as string);
+ SqlConnectionColumnEncryptionSetting result;
+ if (null != sValue) {
+ if (TryConvertToColumnEncryptionSetting(sValue, out result)) {
+ return result;
+ }
+
+ // try again after remove leading & trailing whitespaces.
+ sValue = sValue.Trim();
+ if (TryConvertToColumnEncryptionSetting(sValue, out result)) {
+ return result;
+ }
+
+ // string values must be valid
+ throw ADP.InvalidConnectionOptionValue(keyword);
+ }
+ else {
+ // the value is not string, try other options
+ SqlConnectionColumnEncryptionSetting eValue;
+
+ if (value is SqlConnectionColumnEncryptionSetting) {
+ // quick path for the most common case
+ eValue = (SqlConnectionColumnEncryptionSetting)value;
+ }
+ else if (value.GetType().IsEnum) {
+ // explicitly block scenarios in which user tries to use wrong enum types, like:
+ // builder["SqlConnectionColumnEncryptionSetting"] = EnvironmentVariableTarget.Process;
+ // workaround: explicitly cast non-SqlConnectionColumnEncryptionSetting enums to int
+ throw ADP.ConvertFailed(value.GetType(), typeof(SqlConnectionColumnEncryptionSetting), null);
+ }
else {
try {
// Enum.ToObject allows only integral and enum values (enums are blocked above), rasing ArgumentException for the rest
- eValue = (ApplicationIntent)Enum.ToObject(typeof(ApplicationIntent), value);
+ eValue = (SqlConnectionColumnEncryptionSetting)Enum.ToObject(typeof(SqlConnectionColumnEncryptionSetting), value);
}
catch (ArgumentException e) {
// to be consistent with the messages we send in case of wrong type usage, replace
// the error with our exception, and keep the original one as inner one for troubleshooting
- throw ADP.ConvertFailed(value.GetType(), typeof(ApplicationIntent), e);
+ throw ADP.ConvertFailed(value.GetType(), typeof(SqlConnectionColumnEncryptionSetting), e);
}
}
// ensure value is in valid range
- if (IsValidApplicationIntentValue(eValue)) {
+ if (IsValidColumnEncryptionSetting(eValue)) {
return eValue;
}
else {
- throw ADP.InvalidEnumerationValue(typeof(ApplicationIntent), (int)eValue);
+ throw ADP.InvalidEnumerationValue(typeof(SqlConnectionColumnEncryptionSetting), (int)eValue);
}
}
}
@@ -431,38 +717,40 @@ namespace System.Data.Common {
// SqlClient
internal const ApplicationIntent ApplicationIntent = System.Data.SqlClient.ApplicationIntent.ReadWrite;
- internal const string ApplicationName = ".Net SqlClient Data Provider";
- internal const bool AsynchronousProcessing = false;
- internal const string AttachDBFilename = "";
- internal const int ConnectTimeout = 15;
- internal const bool ConnectionReset = true;
- internal const bool ContextConnection = false;
- internal const string CurrentLanguage = "";
- internal const string DataSource = "";
- internal const bool Encrypt = false;
- internal const bool Enlist = true;
- internal const string FailoverPartner = "";
- internal const string InitialCatalog = "";
- internal const bool IntegratedSecurity = false;
- internal const int LoadBalanceTimeout = 0; // default of 0 means don't use
- internal const bool MultipleActiveResultSets = false;
- internal const bool MultiSubnetFailover = false;
- internal const int MaxPoolSize = 100;
- internal const int MinPoolSize = 0;
- internal const string NetworkLibrary = "";
- internal const int PacketSize = 8000;
- internal const string Password = "";
- internal const bool PersistSecurityInfo = false;
- internal const bool Pooling = true;
- internal const bool TrustServerCertificate = false;
- internal const string TypeSystemVersion = "Latest";
- internal const string UserID = "";
- internal const bool UserInstance = false;
- internal const bool Replication = false;
- internal const string WorkstationID = "";
- internal const string TransactionBinding = "Implicit Unbind";
- internal const int ConnectRetryCount = 1;
- internal const int ConnectRetryInterval = 10;
+ internal const string ApplicationName = ".Net SqlClient Data Provider";
+ internal const bool AsynchronousProcessing = false;
+ internal const string AttachDBFilename = "";
+ internal const int ConnectTimeout = 15;
+ internal const bool ConnectionReset = true;
+ internal const bool ContextConnection = false;
+ internal const string CurrentLanguage = "";
+ internal const string DataSource = "";
+ internal const bool Encrypt = false;
+ internal const bool Enlist = true;
+ internal const string FailoverPartner = "";
+ internal const string InitialCatalog = "";
+ internal const bool IntegratedSecurity = false;
+ internal const int LoadBalanceTimeout = 0; // default of 0 means don't use
+ internal const bool MultipleActiveResultSets = false;
+ internal const bool MultiSubnetFailover = false;
+ internal const int MaxPoolSize = 100;
+ internal const int MinPoolSize = 0;
+ internal const string NetworkLibrary = "";
+ internal const int PacketSize = 8000;
+ internal const string Password = "";
+ internal const bool PersistSecurityInfo = false;
+ internal const bool Pooling = true;
+ internal const bool TrustServerCertificate = false;
+ internal const string TypeSystemVersion = "Latest";
+ internal const string UserID = "";
+ internal const bool UserInstance = false;
+ internal const bool Replication = false;
+ internal const string WorkstationID = "";
+ internal const string TransactionBinding = "Implicit Unbind";
+ internal const int ConnectRetryCount = 1;
+ internal const int ConnectRetryInterval = 10;
+ internal static readonly SqlAuthenticationMethod Authentication = SqlAuthenticationMethod.NotSpecified;
+ internal static readonly SqlConnectionColumnEncryptionSetting ColumnEncryptionSetting = SqlConnectionColumnEncryptionSetting.Disabled;
}
internal static class DbConnectionOptionKeywords {
@@ -526,7 +814,9 @@ namespace System.Data.Common {
internal const string WorkstationID = "Workstation ID";
internal const string ConnectRetryCount = "ConnectRetryCount";
internal const string ConnectRetryInterval = "ConnectRetryInterval";
-
+ internal const string Authentication = "Authentication";
+ internal const string ColumnEncryptionSetting = "Column Encryption Setting";
+
// common keywords (OleDb, OracleClient, SqlClient)
internal const string DataSource = "Data Source";
internal const string IntegratedSecurity = "Integrated Security";
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DbDataAdapter.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DbDataAdapter.cs
index 2db82311110..0950ab8f2c3 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DbDataAdapter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DbDataAdapter.cs
@@ -2,8 +2,8 @@
// <copyright file="DbDataAdapter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DbDataReader.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DbDataReader.cs
index abee96850cb..c4c8318d0c4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DbDataReader.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DbDataReader.cs
@@ -2,8 +2,8 @@
// <copyright file="DbDataReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DbDataSourceEnumerator.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DbDataSourceEnumerator.cs
index 8b2f5d6e1a7..4071a35a8d9 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DbDataSourceEnumerator.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DbDataSourceEnumerator.cs
@@ -2,8 +2,8 @@
// <copyright file="DbDataSourceEnumerator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DbException.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DbException.cs
index f113037622f..0a912d55283 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DbException.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DbException.cs
@@ -2,8 +2,8 @@
// <copyright file="DbException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DbParameterCollection.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DbParameterCollection.cs
index b4e5bb234fb..2f400cca1a4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DbParameterCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DbParameterCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="DbParameterCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderConfigurationHandler.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderConfigurationHandler.cs
index 6411c47e8b1..92ec37fcd53 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderConfigurationHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderConfigurationHandler.cs
@@ -2,8 +2,8 @@
// <copyright file="DbProviderConfigurationHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderFactories.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderFactories.cs
index 7490e8ac3b8..9d3253620ef 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderFactories.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderFactories.cs
@@ -2,8 +2,8 @@
// <copyright file="DbProviderFactories.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderFactoriesConfigurationHandler.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderFactoriesConfigurationHandler.cs
index 505e734cef0..4ad569cd8d5 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderFactoriesConfigurationHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderFactoriesConfigurationHandler.cs
@@ -2,8 +2,8 @@
// <copyright file="DbProviderFactoriesConfigurationHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -17,9 +17,9 @@ namespace System.Data.Common {
using System.Xml;
// VSTFDevDiv # 624213: System.Data.Common.DbProviderFactories.GetFactoryClasses() still gets OracleClient provider in ClientSku environment.
- // NOTES: As part of this bug fix, the decision was taken to make it consistent and to remove all the framework
- // providers from the list in the machine.config file. The DbProviderFactories section of the machine.config will contain only
- // custom providers names and details.
+ // NOTES: As part of this
+
+
internal enum DbProvidersIndex : int
{
Odbc = 0,
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderFactory.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderFactory.cs
index 4235679cc6b..f0c8fd47880 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderFactory.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderFactory.cs
@@ -2,8 +2,8 @@
// <copyright file="DbProviderFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderSpecificTypePropertyAttribute.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderSpecificTypePropertyAttribute.cs
index a213939a24d..1f13d32d66a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderSpecificTypePropertyAttribute.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DbProviderSpecificTypePropertyAttribute.cs
@@ -2,8 +2,8 @@
// <copyright file="DBProviderSupportedClasses.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DbTransaction.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DbTransaction.cs
index 467e740f820..8a3ae904611 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DbTransaction.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DbTransaction.cs
@@ -2,8 +2,8 @@
// <copyright file="DbTransaction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DecimalStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DecimalStorage.cs
index b9f8f678493..b8aeda1b852 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DecimalStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DecimalStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="DecimalStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/DoubleStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/DoubleStorage.cs
index 15af90c023e..b11514c7dc8 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/DoubleStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/DoubleStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="DoubleStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/FieldNameLookup.cs b/mcs/class/referencesource/System.Data/System/Data/Common/FieldNameLookup.cs
index 41df2b1aa24..5ae72879599 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/FieldNameLookup.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/FieldNameLookup.cs
@@ -2,8 +2,8 @@
// <copyright file="FieldNameLookup.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/GreenMethods.cs b/mcs/class/referencesource/System.Data/System/Data/Common/GreenMethods.cs
index 8aff41ed34e..ced5a58d80a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/GreenMethods.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/GreenMethods.cs
@@ -2,8 +2,8 @@
// <copyright file="GreenMethods.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/Groupbybehavior.cs b/mcs/class/referencesource/System.Data/System/Data/Common/Groupbybehavior.cs
index 2b324cfb9c6..73e9a8145f6 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/Groupbybehavior.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/Groupbybehavior.cs
@@ -2,8 +2,8 @@
// <copyright file="Groupbybehavior.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">rickfe</owner>
+// <owner current="true" primary="false">stevesta</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/HandlerBase.cs b/mcs/class/referencesource/System.Data/System/Data/Common/HandlerBase.cs
index 99945fe78ce..3762aa48836 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/HandlerBase.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/HandlerBase.cs
@@ -2,8 +2,8 @@
// <copyright file="HandlerBase.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/Int16Storage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/Int16Storage.cs
index 8d1d0b2a075..0c62a2043fb 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/Int16Storage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/Int16Storage.cs
@@ -2,9 +2,9 @@
// <copyright file="Int16Storage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/Int32Storage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/Int32Storage.cs
index 870bd1093f9..1a59d7e12ae 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/Int32Storage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/Int32Storage.cs
@@ -2,9 +2,9 @@
// <copyright file="Int32Storage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/Int64Storage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/Int64Storage.cs
index f5006299217..26a81b6fa17 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/Int64Storage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/Int64Storage.cs
@@ -2,9 +2,9 @@
// <copyright file="Int64Storage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/MultipartIdentifier.cs b/mcs/class/referencesource/System.Data/System/Data/Common/MultipartIdentifier.cs
index 531dfa1dfa6..a2a0770434f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/MultipartIdentifier.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/MultipartIdentifier.cs
@@ -2,8 +2,8 @@
// <copyright file="CommandBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/NameValuePair.cs b/mcs/class/referencesource/System.Data/System/Data/Common/NameValuePair.cs
index bcf18890893..f0b7cdc17f4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/NameValuePair.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/NameValuePair.cs
@@ -2,8 +2,8 @@
// <copyright file="NameValuePair.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/NameValuePermission.cs b/mcs/class/referencesource/System.Data/System/Data/Common/NameValuePermission.cs
index 9f705d25688..f2088dba955 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/NameValuePermission.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/NameValuePermission.cs
@@ -2,8 +2,8 @@
// <copyright file="NameValuePermission.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/NativeMethods.cs b/mcs/class/referencesource/System.Data/System/Data/Common/NativeMethods.cs
index ebcf3fc72e4..b1321a4222c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/NativeMethods.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/NativeMethods.cs
@@ -2,9 +2,9 @@
// <copyright file="NativeMethods.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">blained</owner>
+// <owner current="true" primary="false">mithomas</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/ObjectStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/ObjectStorage.cs
index f4c90546b0a..eb3a09d9cc0 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/ObjectStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/ObjectStorage.cs
@@ -2,8 +2,8 @@
// <copyright file="ObjectStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/RowUpdatedEventArgs.cs b/mcs/class/referencesource/System.Data/System/Data/Common/RowUpdatedEventArgs.cs
index 04af7fa7e77..132952ed769 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/RowUpdatedEventArgs.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/RowUpdatedEventArgs.cs
@@ -2,8 +2,8 @@
// <copyright file="RowUpdatedEventArgs.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/RowUpdatingEventArgs.cs b/mcs/class/referencesource/System.Data/System/Data/Common/RowUpdatingEventArgs.cs
index 1f6c6918c18..50c8c049277 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/RowUpdatingEventArgs.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/RowUpdatingEventArgs.cs
@@ -2,8 +2,8 @@
// <copyright file="RowUpdatingEventArgs.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SByteStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SByteStorage.cs
index 0ef3d5edb07..66b54659780 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SByteStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SByteStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="SByteStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLConvert.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLConvert.cs
index 4c1b691fc06..19b823a39f8 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLConvert.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLConvert.cs
@@ -2,8 +2,8 @@
// <copyright file="SQLConvert.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLBinaryStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLBinaryStorage.cs
index 75243557089..578f222bd1e 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLBinaryStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLBinaryStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="SQLBinaryStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -90,7 +90,7 @@ namespace System.Data.Common {
override public object ConvertXmlToObject(string s) {
SqlBinary newValue = new SqlBinary();
- string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader, bug 98767
+ string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader,
StringReader strReader = new StringReader(tempStr);
IXmlSerializable tmp = newValue;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLByteStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLByteStorage.cs
index d8f70c87ad3..23c9b8c0109 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLByteStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLByteStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="SQLByteStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -188,7 +188,7 @@ namespace System.Data.Common {
override public object ConvertXmlToObject(string s) {
SqlByte newValue = new SqlByte();
- string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader, bug 98767
+ string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader,
StringReader strReader = new StringReader(tempStr);
IXmlSerializable tmp = newValue;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLBytesStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLBytesStorage.cs
index da7d794b73c..4cbce35faba 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLBytesStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLBytesStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="SQLBytesStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -89,7 +89,7 @@ namespace System.Data.Common {
override public object ConvertXmlToObject(string s) {
SqlBinary newValue = new SqlBinary();
- string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader, bug 98767
+ string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader,
StringReader strReader = new StringReader(tempStr);
IXmlSerializable tmp = newValue;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLCharsStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLCharsStorage.cs
index c8af7abb433..3bdfb3698dd 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLCharsStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLCharsStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="SQLCharsStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -91,7 +91,7 @@ namespace System.Data.Common {
override public object ConvertXmlToObject(string s) {
SqlString newValue = new SqlString();
- string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader, bug 98767
+ string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader,
StringReader strReader = new StringReader(tempStr);
IXmlSerializable tmp = newValue;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLDateTimeStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLDateTimeStorage.cs
index 60753ae432a..39a1fd72ee3 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLDateTimeStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLDateTimeStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="SQLDateTimeStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -121,7 +121,7 @@ namespace System.Data.Common {
override public object ConvertXmlToObject(string s) {
SqlDateTime newValue = new SqlDateTime();
- string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader, bug 98767
+ string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader,
StringReader strReader = new StringReader(tempStr);
IXmlSerializable tmp = newValue;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLDecimalStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLDecimalStorage.cs
index e6a92bf1bff..18ff107280d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLDecimalStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLDecimalStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="SQLDecimalStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -186,7 +186,7 @@ namespace System.Data.Common {
override public object ConvertXmlToObject(string s) {
SqlDecimal newValue = new SqlDecimal();
- string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader, bug 98767
+ string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader,
StringReader strReader = new StringReader(tempStr);
IXmlSerializable tmp = newValue;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLDoubleStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLDoubleStorage.cs
index 8833b829fdd..bf09c21e229 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLDoubleStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLDoubleStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="SQLDoubleStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -187,7 +187,7 @@ namespace System.Data.Common {
override public object ConvertXmlToObject(string s) {
SqlDouble newValue = new SqlDouble();
- string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader, bug 98767
+ string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader,
StringReader strReader = new StringReader(tempStr);
IXmlSerializable tmp = newValue;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLGuidStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLGuidStorage.cs
index 79c81806038..497364a79ce 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLGuidStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLGuidStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="SQLGuidStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -90,7 +90,7 @@ namespace System.Data.Common {
override public object ConvertXmlToObject(string s) {
SqlGuid newValue = new SqlGuid();
- string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader, bug 98767
+ string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader,
StringReader strReader = new StringReader(tempStr);
IXmlSerializable tmp = newValue;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLInt16Storage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLInt16Storage.cs
index aff67bae529..37fd532da60 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLInt16Storage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLInt16Storage.cs
@@ -2,9 +2,9 @@
// <copyright file="SQLInt16Storage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -187,7 +187,7 @@ namespace System.Data.Common {
override public object ConvertXmlToObject(string s) {
SqlInt16 newValue = new SqlInt16();
- string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader, bug 98767
+ string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader,
StringReader strReader = new StringReader(tempStr);
IXmlSerializable tmp = newValue;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLInt32Storage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLInt32Storage.cs
index 4a31af610c8..b8a2c0eb351 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLInt32Storage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLInt32Storage.cs
@@ -2,9 +2,9 @@
// <copyright file="SQLInt32Storage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -187,7 +187,7 @@ namespace System.Data.Common {
override public object ConvertXmlToObject(string s) {
SqlInt32 newValue = new SqlInt32();
- string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader, bug 98767
+ string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader,
StringReader strReader = new StringReader(tempStr);
IXmlSerializable tmp = newValue;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLInt64Storage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLInt64Storage.cs
index eb608d33842..5c1b344e0ac 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLInt64Storage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLInt64Storage.cs
@@ -2,9 +2,9 @@
// <copyright file="SQLInt64Storage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -188,7 +188,7 @@ namespace System.Data.Common {
override public object ConvertXmlToObject(string s) {
SqlInt64 newValue = new SqlInt64();
- string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader, bug 98767
+ string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader,
StringReader strReader = new StringReader(tempStr);
IXmlSerializable tmp = newValue;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLMoneyStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLMoneyStorage.cs
index fc4a344a326..e50b9d5a6e2 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLMoneyStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLMoneyStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="SQLMoneyStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -187,7 +187,7 @@ namespace System.Data.Common {
override public object ConvertXmlToObject(string s) {
SqlMoney newValue = new SqlMoney();
- string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader, bug 98767
+ string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader,
StringReader strReader = new StringReader(tempStr);
IXmlSerializable tmp = newValue;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLSingleStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLSingleStorage.cs
index d6c69725ea2..f946bd63217 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLSingleStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLSingleStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="SQLSingleStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -188,7 +188,7 @@ namespace System.Data.Common {
override public object ConvertXmlToObject(string s) {
SqlSingle newValue = new SqlSingle();
- string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader, bug 98767
+ string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader,
StringReader strReader = new StringReader(tempStr);
IXmlSerializable tmp = newValue;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLStringStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLStringStorage.cs
index 7201b55c57f..c822097f387 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLStringStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQLStringStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="SQLStringStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -144,7 +144,7 @@ namespace System.Data.Common {
override public object ConvertXmlToObject(string s) {
SqlString newValue = new SqlString();
- string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader, bug 98767
+ string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader,
StringReader strReader = new StringReader(tempStr);
IXmlSerializable tmp = newValue;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQlBooleanStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQlBooleanStorage.cs
index 53fd2a92aac..8c07aa8648c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQlBooleanStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SQlBooleanStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="SQLBooleanStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -119,7 +119,7 @@ namespace System.Data.Common {
override public object ConvertXmlToObject(string s) {
SqlBoolean newValue = new SqlBoolean();
- string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader, bug 98767
+ string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader,
StringReader strReader = new StringReader(tempStr);
IXmlSerializable tmp = newValue;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SqlUDTStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SqlUDTStorage.cs
index 1637442fe71..1817b74d4b6 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SqlUDTStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SqlUDTStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="SqlUDTStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -140,7 +140,7 @@ namespace System.Data.Common {
if (implementsIXmlSerializable) {
object Obj = System.Activator.CreateInstance (DataType, true);
- string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader, bug 98767
+ string tempStr =string.Concat("<col>", s, "</col>"); // this is done since you can give fragmet to reader,
StringReader strReader = new StringReader(tempStr);
using (XmlTextReader xmlTextReader = new XmlTextReader(strReader)) {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SqlXmlStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SqlXmlStorage.cs
index be6cc6e5208..8f3a03926ee 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SqlXmlStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SQLTypes/SqlXmlStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="SqlXmlStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SafeNativeMethods.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SafeNativeMethods.cs
index 5f8bf6d36ce..5e1c0ffc321 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SafeNativeMethods.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SafeNativeMethods.cs
@@ -2,9 +2,9 @@
// <copyright file="SafeNativeMethods.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SchemaTableColumn.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SchemaTableColumn.cs
index 69df0612c08..3995656fb8f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SchemaTableColumn.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SchemaTableColumn.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaTableColumn.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SchemaTableOptionalColumn.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SchemaTableOptionalColumn.cs
index 80a96191906..c4ab9bc5a16 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SchemaTableOptionalColumn.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SchemaTableOptionalColumn.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaTableOptionalColumn.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SingleStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SingleStorage.cs
index 1f1c8b4511b..2379ea7583a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SingleStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SingleStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="SingleStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SqlEventSource.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SqlEventSource.cs
new file mode 100644
index 00000000000..b67fa15fed2
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SqlEventSource.cs
@@ -0,0 +1,76 @@
+//------------------------------------------------------------------------------
+// <copyright file="SqlEventSource.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">mihailsm</owner>
+//------------------------------------------------------------------------------
+
+namespace System.Data
+{
+ using System;
+ using System.Diagnostics.Tracing;
+
+ [EventSource(Name = SqlEventSource.EventSourceName)]
+ internal sealed class SqlEventSource : EventSource
+ {
+ internal const string EventSourceName = "Microsoft-AdoNet-SystemData";
+
+ /// <summary>
+ /// Defines EventId for BeginExecute (Reader, Scalar, NonQuery, XmlReader).
+ /// </summary>
+ private const int BeginExecuteEventId = 1;
+
+ /// <summary>
+ /// Defines EventId for EndExecute (Reader, Scalar, NonQuery, XmlReader).
+ /// </summary>
+ private const int EndExecuteEventId = 2;
+
+ // Defines the singleton instance for the Resources ETW provider
+ internal static readonly SqlEventSource Log = new SqlEventSource();
+
+
+ /// <summary>
+ /// Keyword definitions. These represent logical groups of events that can be turned on and off independently
+ /// Often each task has a keyword, but where tasks are determined by subsystem, keywords are determined by
+ /// usefulness to end users to filter. Generally users don't mind extra events if they are not high volume
+ /// so grouping low volume events together in a single keywords is OK (users can post-filter by task if desired)
+ /// <remarks>The visibility of the enum has to be public, otherwise there will be an ArgumentException on calling related WriteEvent method.</remarks>
+ /// </summary>
+ public static class Keywords
+ {
+ public const EventKeywords SqlClient = (EventKeywords)0x0001; // This is bit 0
+ }
+
+ public static class Tasks // this name is important for EventSource
+ {
+ /// <summary>Task that tracks sql command execute.</summary>
+ public const EventTask ExecuteCommand = (EventTask)1;
+ }
+
+ private SqlEventSource()
+ {
+ }
+
+ // unfortunately these are not marked as Start/Stop opcodes. The reason is that we dont want them to participate in
+ // the EventSource activity IDs (because they currently don't use tasks and this simply confuses the logic) and
+ // because of versioning requirements we don't have ActivityOptions capability (because mscorlib and System.Data version
+ // at different rates) Sigh...
+ [Event(SqlEventSource.BeginExecuteEventId, Keywords = Keywords.SqlClient)]
+ public void BeginExecute(int objectId, string dataSource, string database, string commandText)
+ {
+ // we do not use unsafe code for better performance optization here because optimized helpers make the code unsafe where that would not be the case otherwise.
+ // This introduces the question of partial trust, which is complex in the SQL case (there are a lot of scenarios and SQL has special security support).
+ WriteEvent(SqlEventSource.BeginExecuteEventId, objectId, dataSource, database, commandText);
+ }
+
+ // unfortunately these are not marked as Start/Stop opcodes. The reason is that we dont want them to participate in
+ // the EventSource activity IDs (because they currently don't use tasks and this simply confuses the logic) and
+ // because of versioning requirements we don't have ActivityOptions capability (because mscorlib and System.Data version
+ // at different rates) Sigh...
+ [Event(SqlEventSource.EndExecuteEventId, Keywords = Keywords.SqlClient)]
+ public void EndExecute(int objectId, int compositeState, int sqlExceptionNumber)
+ {
+ WriteEvent(SqlEventSource.EndExecuteEventId, objectId, compositeState, sqlExceptionNumber);
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/StringStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/StringStorage.cs
index 7125e5d8561..2885f9b9ac7 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/StringStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/StringStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="StringStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/SupportedJoinOperators.cs b/mcs/class/referencesource/System.Data/System/Data/Common/SupportedJoinOperators.cs
index abb658da1aa..b6db9fdce1c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/SupportedJoinOperators.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/SupportedJoinOperators.cs
@@ -2,8 +2,8 @@
// <copyright file="supportedJoinOperators.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">rickfe</owner>
+// <owner current="true" primary="false">stevesta</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/System.Data_BID.cs b/mcs/class/referencesource/System.Data/System/Data/Common/System.Data_BID.cs
index c95844c82a8..88744558431 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/System.Data_BID.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/System.Data_BID.cs
@@ -2,8 +2,8 @@
// <copyright file="System.Data_BID.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//-----------------------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/TimeSpanStorage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/TimeSpanStorage.cs
index bf931fc4744..b46bf5fb2eb 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/TimeSpanStorage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/TimeSpanStorage.cs
@@ -2,9 +2,9 @@
// <copyright file="TimeSpanStorage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/UInt16Storage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/UInt16Storage.cs
index 5bafd626be9..3b44d9adac8 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/UInt16Storage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/UInt16Storage.cs
@@ -2,9 +2,9 @@
// <copyright file="UInt16Storage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/UInt32Storage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/UInt32Storage.cs
index d2701c49d7e..19d2d3f72f4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/UInt32Storage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/UInt32Storage.cs
@@ -2,9 +2,9 @@
// <copyright file="UInt32Storage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/UInt64Storage.cs b/mcs/class/referencesource/System.Data/System/Data/Common/UInt64Storage.cs
index 1242f279c0e..8b727fdde42 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/UInt64Storage.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/UInt64Storage.cs
@@ -2,9 +2,9 @@
// <copyright file="UInt64Storage.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/UnsafeNativeMethods.cs b/mcs/class/referencesource/System.Data/System/Data/Common/UnsafeNativeMethods.cs
index 0c368cfcabe..7fc1d8bc0a0 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/UnsafeNativeMethods.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/UnsafeNativeMethods.cs
@@ -2,9 +2,9 @@
// <copyright file="UnsafeNativeMethods.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/dbdatarecord.cs b/mcs/class/referencesource/System.Data/System/Data/Common/dbdatarecord.cs
index 7c140b1afd5..2f56981aa41 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/dbdatarecord.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/dbdatarecord.cs
@@ -2,8 +2,8 @@
// <copyright file="DbDataRecord.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/dbenumerator.cs b/mcs/class/referencesource/System.Data/System/Data/Common/dbenumerator.cs
index 22f6884b61b..5377586b7de 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/dbenumerator.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/dbenumerator.cs
@@ -2,8 +2,8 @@
// <copyright file="dbenumerator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
@@ -18,7 +18,7 @@ namespace System.Data.Common {
public class DbEnumerator : IEnumerator {
internal IDataReader _reader;
- internal IDataRecord _current;
+ internal DbDataRecord _current;
internal SchemaInfo[] _schemaInfo; // shared schema info among all the data records
internal PropertyDescriptorCollection _descriptors; // cached property descriptors
private FieldNameLookup _fieldNameLookup; // MDAC 69015
@@ -39,30 +39,21 @@ namespace System.Data.Common {
_reader = reader;
this.closeReader = closeReader;
}
+
+ public DbEnumerator(DbDataReader reader)
+ : this((IDataReader)reader) {
+ }
-
- public object Current {
- get {
- return _current;
- }
+ public DbEnumerator(DbDataReader reader, bool closeReader)
+ : this((IDataReader)reader, closeReader) {
}
- /*public IDataRecord Current {
+ public object Current {
get {
return _current;
}
- }*/
-
-/*
- virtual internal IDataRecord NewRecord(SchemaInfo[] si, object[] values, PropertyDescriptorCollection descriptors) {
- return new DbDataRecord(si, values, descriptors);
}
-
- virtual internal void GetValues(object[] values) {
- _reader.GetValues(values);
- }
-*/
-
+
public bool MoveNext() {
if (null == _schemaInfo) {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Common/identifiercase.cs b/mcs/class/referencesource/System.Data/System/Data/Common/identifiercase.cs
index bd314fff497..73c8fc1e47a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Common/identifiercase.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Common/identifiercase.cs
@@ -2,8 +2,8 @@
// <copyright file="identifiercase.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">rickfe</owner>
+// <owner current="true" primary="false">stevesta</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ConflictOptions.cs b/mcs/class/referencesource/System.Data/System/Data/ConflictOptions.cs
index 271c3835b29..bba1d2cab15 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ConflictOptions.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ConflictOptions.cs
@@ -2,8 +2,8 @@
// <copyright file="ConflictOptions.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ConnectionState.cs b/mcs/class/referencesource/System.Data/System/Data/ConnectionState.cs
index e09d35f9743..735a6edfead 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ConnectionState.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ConnectionState.cs
@@ -2,8 +2,8 @@
// <copyright file="ConnectionState.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Constraint.cs b/mcs/class/referencesource/System.Data/System/Data/Constraint.cs
index ff25eb8f650..0d9bd2e24e4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Constraint.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Constraint.cs
@@ -2,9 +2,9 @@
// <copyright file="Constraint.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ConstraintCollection.cs b/mcs/class/referencesource/System.Data/System/Data/ConstraintCollection.cs
index 357723bae1b..a387337887a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ConstraintCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ConstraintCollection.cs
@@ -2,9 +2,9 @@
// <copyright file="ConstraintCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ConstraintConverter.cs b/mcs/class/referencesource/System.Data/System/Data/ConstraintConverter.cs
index 176866fa5f7..1564f89dd0b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ConstraintConverter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ConstraintConverter.cs
@@ -2,9 +2,9 @@
// <copyright file="ConstraintConverter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ConstraintEnumerator.cs b/mcs/class/referencesource/System.Data/System/Data/ConstraintEnumerator.cs
index 72c20a47433..8e4c2b9913f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ConstraintEnumerator.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ConstraintEnumerator.cs
@@ -2,9 +2,9 @@
// <copyright file="ConstraintEnumerator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DBConcurrencyException.cs b/mcs/class/referencesource/System.Data/System/Data/DBConcurrencyException.cs
index a7724df44d8..5197faec730 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DBConcurrencyException.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DBConcurrencyException.cs
@@ -2,8 +2,8 @@
// <copyright file="DBConcurrencyException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataColumn.cs b/mcs/class/referencesource/System.Data/System/Data/DataColumn.cs
index cacc19d4e39..e6894dff02f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataColumn.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataColumn.cs
@@ -2,8 +2,8 @@
// <copyright file="DataColumn.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -1822,7 +1822,7 @@ namespace System.Data {
}
/// <summary>the auto stepped value with Int64 representation</summary>
- /// <remarks>use unchecked behavior for Dev10 Bug 568510</remarks>
+ /// <remarks>use unchecked behavior for Dev10
internal sealed class AutoIncrementInt64 : AutoIncrementValue {
/// <summary>the last returned auto incremented value</summary>
private System.Int64 current;
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataColumnChangeEvent.cs b/mcs/class/referencesource/System.Data/System/Data/DataColumnChangeEvent.cs
index 080d166c7ca..2c05d2f253b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataColumnChangeEvent.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataColumnChangeEvent.cs
@@ -2,9 +2,9 @@
// <copyright file="DataColumnChangeEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataColumnChangeEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/DataColumnChangeEventHandler.cs
index b3f2ebe5bb6..49eac5f6a9f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataColumnChangeEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataColumnChangeEventHandler.cs
@@ -2,9 +2,9 @@
// <copyright file="DataColumnChangeEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataColumnCollection.cs b/mcs/class/referencesource/System.Data/System/Data/DataColumnCollection.cs
index 4a8f8119c9d..d486143a9ab 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataColumnCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataColumnCollection.cs
@@ -2,9 +2,9 @@
// <copyright file="DataColumnCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataColumnPropertyDescriptor.cs b/mcs/class/referencesource/System.Data/System/Data/DataColumnPropertyDescriptor.cs
index 48d581f5730..e99ccf43b8d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataColumnPropertyDescriptor.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataColumnPropertyDescriptor.cs
@@ -2,9 +2,9 @@
// <copyright file="DataColumnPropertyDescriptor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataError.cs b/mcs/class/referencesource/System.Data/System/Data/DataError.cs
index ca3cae694e2..5cd3c802253 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataError.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataError.cs
@@ -2,9 +2,9 @@
// <copyright file="DataError.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataException.cs b/mcs/class/referencesource/System.Data/System/Data/DataException.cs
index f8de1c1bfff..50f42cbe732 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataException.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataException.cs
@@ -2,8 +2,8 @@
// <copyright file="DataException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -13,7 +13,7 @@ namespace System.Data {
using System.Globalization;
using System.Runtime.Serialization;
- // [....]: This functions are major point of localization.
+ // Microsoft: This functions are major point of localization.
// We need to have a rules to enforce consistency there.
// The dangerous point there are the string arguments of the exported (internal) methods.
// This string can be argument, table or constraint name but never text of exception itself.
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataKey.cs b/mcs/class/referencesource/System.Data/System/Data/DataKey.cs
index a5f4cb57a5f..6581279d490 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataKey.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataKey.cs
@@ -2,9 +2,9 @@
// <copyright file="DataKey.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataRelation.cs b/mcs/class/referencesource/System.Data/System/Data/DataRelation.cs
index 3838ca9adfb..e63034c1113 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataRelation.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataRelation.cs
@@ -2,9 +2,9 @@
// <copyright file="DataRelation.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
/*****************************************************************************************************
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataRelationCollection.cs b/mcs/class/referencesource/System.Data/System/Data/DataRelationCollection.cs
index baec5ee4493..44a1d6d2b2c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataRelationCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataRelationCollection.cs
@@ -2,9 +2,9 @@
// <copyright file="DataRelationCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -250,7 +250,7 @@ namespace System.Data {
OnCollectionChanging(RefreshEventArgs);
for (int i = count - 1; i >= 0; i--) {
inTransition = this[i];
- RemoveCore(inTransition); // [....] : No need to go for try catch here and this will surely not throw any exception
+ RemoveCore(inTransition); // Microsoft : No need to go for try catch here and this will surely not throw any exception
}
OnCollectionChanged(RefreshEventArgs);
inTransition = null;
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataRelationPropertyDescriptor.cs b/mcs/class/referencesource/System.Data/System/Data/DataRelationPropertyDescriptor.cs
index c80abf5a9f7..b3885050e49 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataRelationPropertyDescriptor.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataRelationPropertyDescriptor.cs
@@ -2,9 +2,9 @@
// <copyright file="DataRelationPropertyDescriptor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataRow.cs b/mcs/class/referencesource/System.Data/System/Data/DataRow.cs
index 557f5e44887..06f510b31f9 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataRow.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataRow.cs
@@ -2,8 +2,8 @@
// <copyright file="DataRow.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -1307,9 +1307,9 @@ namespace System.Data {
version = DataRowVersion.Current;
}
// There are various known issues detected by this assert for non-default versions,
- // for example DevDiv2 bug 73753
- // Since changes consitutute breaking change (either way customer will get another result),
- // we decided not to fix them in Dev 11
+ // for example DevDiv2
+
+
Debug.Assert(valueFromStorage.Equals(column.DataExpression.Evaluate(this, version)),
"Value from storage does lazily computed expression value");
}
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataRowAction.cs b/mcs/class/referencesource/System.Data/System/Data/DataRowAction.cs
index 5988cdf3540..516ce4fcb16 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataRowAction.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataRowAction.cs
@@ -2,9 +2,9 @@
// <copyright file="DataRowAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataRowChangeEvent.cs b/mcs/class/referencesource/System.Data/System/Data/DataRowChangeEvent.cs
index 444f9360264..01a56d236e1 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataRowChangeEvent.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataRowChangeEvent.cs
@@ -2,9 +2,9 @@
// <copyright file="DataRowChangeEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataRowChangeEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/DataRowChangeEventHandler.cs
index d08f4794189..2d416b1eb1b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataRowChangeEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataRowChangeEventHandler.cs
@@ -2,9 +2,9 @@
// <copyright file="DataRowChangeEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataRowCollection.cs b/mcs/class/referencesource/System.Data/System/Data/DataRowCollection.cs
index 81d040e4287..dbed8bf4008 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataRowCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataRowCollection.cs
@@ -2,9 +2,9 @@
// <copyright file="DataRowCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataRowCreatedEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/DataRowCreatedEventHandler.cs
index 9e478d7b8cc..41f14d0bec3 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataRowCreatedEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataRowCreatedEventHandler.cs
@@ -2,9 +2,9 @@
// <copyright file="DataRowCreatedEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataRowState.cs b/mcs/class/referencesource/System.Data/System/Data/DataRowState.cs
index 8f08c20ee7f..f52843825a8 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataRowState.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataRowState.cs
@@ -2,9 +2,9 @@
// <copyright file="DataRowState.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataRowVersion.cs b/mcs/class/referencesource/System.Data/System/Data/DataRowVersion.cs
index cba19a4328a..39f742372b6 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataRowVersion.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataRowVersion.cs
@@ -2,9 +2,9 @@
// <copyright file="DataRowVersion.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataRowView.cs b/mcs/class/referencesource/System.Data/System/Data/DataRowView.cs
index 64eb89f9ac3..0597645639a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataRowView.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataRowView.cs
@@ -2,8 +2,8 @@
// <copyright file="DataRowView.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataSerializationFormat.cs b/mcs/class/referencesource/System.Data/System/Data/DataSerializationFormat.cs
index 1f5331f748b..28ae6fa52fe 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataSerializationFormat.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataSerializationFormat.cs
@@ -2,8 +2,8 @@
// <copyright file="DataSerializationFormat.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataSet.cs b/mcs/class/referencesource/System.Data/System/Data/DataSet.cs
index cb0c072a659..4234c0604ba 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataSet.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataSet.cs
@@ -2,8 +2,8 @@
// <copyright file="DataSet.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -684,7 +684,7 @@ namespace System.Data {
continue;
if ((dt.NestedParentRelations.Length == 0) ||
(dt.NestedParentRelations.Length == 1 && dt.NestedParentRelations[0].ChildTable == dt)) {
- // dt.SelfNestedWithOneRelation) { // this is wrong bug it was previous behavior
+ // dt.SelfNestedWithOneRelation) { // this is wrong
if (Tables.Contains(dt.TableName, value, false, true))
throw ExceptionBuilder.DuplicateTableName2(dt.TableName, value);
dt.CheckCascadingNamespaceConflict(value);
@@ -1106,7 +1106,7 @@ namespace System.Data {
try {
DataSet ds = (DataSet)Activator.CreateInstance(this.GetType(), true);
- if (ds.Tables.Count > 0) // [....] : To clean up all the schema in strong typed dataset.
+ if (ds.Tables.Count > 0) // Microsoft : To clean up all the schema in strong typed dataset.
ds.Reset();
//copy some original dataset properties
@@ -3064,7 +3064,7 @@ namespace System.Data {
}
}
- // [....]: may be better to rewrite this as nonrecursive?
+ // Microsoft: may be better to rewrite this as nonrecursive?
internal DataTable FindTable(DataTable baseTable, PropertyDescriptor[] props, int propStart) {
if (props.Length < propStart + 1)
return baseTable;
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataSetDateTime.cs b/mcs/class/referencesource/System.Data/System/Data/DataSetDateTime.cs
index a33ea9821eb..ad4b0c20435 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataSetDateTime.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataSetDateTime.cs
@@ -2,8 +2,8 @@
// <copyright file="DataSetDateTime.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
//------------------------------------------------------------------------------
namespace System.Data {
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataSysAttribute.cs b/mcs/class/referencesource/System.Data/System/Data/DataSysAttribute.cs
index c0763fca757..6022e8f8bfb 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataSysAttribute.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataSysAttribute.cs
@@ -2,8 +2,8 @@
// <copyright file="DataSysAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
/*
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataTable.cs b/mcs/class/referencesource/System.Data/System/Data/DataTable.cs
index 637816ef0c3..19c99cad97e 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataTable.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataTable.cs
@@ -2,8 +2,8 @@
// <copyright file="DataTable.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -1893,7 +1893,7 @@ namespace System.Data {
}
}
}
- fInitInProgress = false; // [....] : 77890. It is must that we set off this flag after calling FinishInitxxx();
+ fInitInProgress = false; // Microsoft : 77890. It is must that we set off this flag after calling FinishInitxxx();
if (delayedSetPrimaryKey != null) {
PrimaryKey = delayedSetPrimaryKey;
delayedSetPrimaryKey = null;
@@ -2150,7 +2150,7 @@ namespace System.Data {
Bid.ScopeEnter(out hscp, "<ds.DataTable.Clone|INFO> %d#, cloneDS=%d\n", ObjectID, (cloneDS != null) ? cloneDS.ObjectID : 0);
try {
DataTable clone = CreateInstance();
- if (clone.Columns.Count > 0) // [....] : To clean up all the schema in strong typed dataset.
+ if (clone.Columns.Count > 0) // Microsoft : To clean up all the schema in strong typed dataset.
clone.Reset();
return CloneTo(clone, cloneDS, false);
}
@@ -2225,8 +2225,8 @@ namespace System.Data {
clone._caseSensitiveUserSet = _caseSensitiveUserSet;
clone.displayExpression = displayExpression;
- clone.typeName = typeName; //[....]
- clone.repeatableElement = repeatableElement; //[....]
+ clone.typeName = typeName; //Microsoft
+ clone.repeatableElement = repeatableElement; //Microsoft
clone.MinimumCapacity = MinimumCapacity;
clone.RemotingFormat = RemotingFormat;
// clone.SerializeHierarchy = SerializeHierarchy;
@@ -3548,7 +3548,7 @@ namespace System.Data {
bool equalValues = false;
if (DataStorage.IsTypeCustomType(dc.DataType) && newValue != dc[record]) {
- // if UDT storage, need to check if reference changed. See bug 385182
+ // if UDT storage, need to check if reference changed. See
equalValues = false;
}
else {
@@ -3924,12 +3924,12 @@ namespace System.Data {
}
}
- // Dev10 Bug 688779: DataRowView.PropertyChanged are not raised on RejectChanges
- // if the newRecord is changing, the propertychanged event should be allowed to triggered for ListChangedType.Changed or .Moved
- // unless the specific condition is known that no data has changed, like DataRow.SetModified()
+ // Dev10
+
+
if (!suppressEnsurePropertyChanged && !row.HasPropertyChanged && (row.newRecord != proposedRecord)
- && (-1 != proposedRecord) // explictly not fixing Dev10 Bug 692044: DataRowView.PropertyChanged are not raised on DataTable.Delete when mixing current and original records in RowStateFilter
- && (-1 != row.newRecord)) // explictly not fixing parts of Dev10 Bug 697909: when mixing current and original records in RowStateFilter
+ && (-1 != proposedRecord) // explictly not fixing Dev10
+ && (-1 != row.newRecord)) // explictly not fixing parts of Dev10
{
// DataRow will believe multiple edits occured and
// DataView.ListChanged event w/ ListChangedType.ItemChanged will raise DataRowView.PropertyChanged event and
@@ -3942,7 +3942,7 @@ namespace System.Data {
// Check whether we need to update indexes
if (LiveIndexes.Count != 0) {
- // Dev10 bug #463087: DataTable internal index is currupted: '5'
+ // Dev10
if ((-1 == currentRecord) && (-1 != proposedRecord) && (-1 != row.oldRecord) && (proposedRecord != row.oldRecord)) {
// the transition from DataRowState.Deleted -> DataRowState.Modified
// with same orginal record but new current record
@@ -3971,8 +3971,8 @@ namespace System.Data {
this.recordManager[proposedRecord] = row;
}
- // Dev10 Bug 461199 - reset the last changed column here, after all
- // DataViews have raised their DataRowView.PropertyChanged event
+ // Dev10
+
row.ResetLastChangedColumn();
// SQLBU 278737: Record manager corruption when reentrant write operations
@@ -4043,7 +4043,7 @@ namespace System.Data {
// Check whether we need to update indexes
if (LiveIndexes.Count != 0) {
- // Dev10 bug #463087: DataTable internal index is currupted: '5'
+ // Dev10
if ((-1 == originalRecord) && (-1 != proposedRecord) && (-1 != row.newRecord) && (proposedRecord != row.newRecord)) {
// the transition from DataRowState.Added -> DataRowState.Modified
// with same current record but new original record
@@ -4349,7 +4349,7 @@ namespace System.Data {
if (position == -1)
Columns.Add(key);
- else { // we do have a problem and Imy idea is it is bug. Ask Enzo while Code review. Why we do not set ordinal when we call AddAt?
+ else { // we do have a problem and Imy idea is it is
for(int i = Columns.Count -1; i >= position; i--) {
this.Columns[i].SetOrdinalInternal(i+1);
}
@@ -5526,8 +5526,8 @@ namespace System.Data {
throw ExceptionBuilder.DataTableInferenceNotSupported();
}
- // [....] xmlload.InferSchema(xdoc, null);
- // [....] xmlload.LoadData(xdoc);
+ // Microsoft xmlload.InferSchema(xdoc, null);
+ // Microsoft xmlload.LoadData(xdoc);
}
}
RestoreConstraint(originalEnforceConstraint);
@@ -5741,7 +5741,7 @@ namespace System.Data {
currentTable = ds.Tables[CurrentTableName, CurrentTableNamespace];
}
- if (currentTable == null) { // bug fix :99186
+ if (currentTable == null) { //
string qTableName = string.Empty;
if (!Common.ADP.IsEmpty(this.tableName)) {
qTableName = (this.Namespace.Length > 0)? (this.Namespace + ":" + this.tableName):this.tableName;
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataTableClearEvent.cs b/mcs/class/referencesource/System.Data/System/Data/DataTableClearEvent.cs
index a942a9336c3..30233029196 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataTableClearEvent.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataTableClearEvent.cs
@@ -2,8 +2,8 @@
// <copyright file="DataTableClearEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataTableClearEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/DataTableClearEventHandler.cs
index b8d81dfc1a9..73a5cc6b6ca 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataTableClearEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataTableClearEventHandler.cs
@@ -2,8 +2,8 @@
// <copyright file="DataTableClearEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataTableCollection.cs b/mcs/class/referencesource/System.Data/System/Data/DataTableCollection.cs
index abe20b7f930..a05d7d4570a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataTableCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataTableCollection.cs
@@ -2,9 +2,9 @@
// <copyright file="DataTableCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -398,7 +398,7 @@ namespace System.Data {
for (ChildForeignKeyConstraintEnumerator constraints = new ChildForeignKeyConstraintEnumerator(dataSet, table); constraints.GetNext();) {
ForeignKeyConstraint constraint = constraints.GetForeignKeyConstraint();
- if (constraint.Table == table && constraint.RelatedTable == table) // bug 97670
+ if (constraint.Table == table && constraint.RelatedTable == table) //
continue;
if (!fThrowException)
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataTableNewRowEvent.cs b/mcs/class/referencesource/System.Data/System/Data/DataTableNewRowEvent.cs
index bfd0fcd7ae3..db994c7c2b6 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataTableNewRowEvent.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataTableNewRowEvent.cs
@@ -2,8 +2,8 @@
// <copyright file="DataTableNewRowEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataTableNewRowEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/DataTableNewRowEventHandler.cs
index 7b4c1aa2c3d..0b9a396b5f7 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataTableNewRowEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataTableNewRowEventHandler.cs
@@ -2,8 +2,8 @@
// <copyright file="DataTableNewRowEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataTablePropertyDescriptor.cs b/mcs/class/referencesource/System.Data/System/Data/DataTablePropertyDescriptor.cs
index a5ffd176ba4..3d9f30c6397 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataTablePropertyDescriptor.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataTablePropertyDescriptor.cs
@@ -2,9 +2,9 @@
// <copyright file="DataTablePropertyDescriptor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataTableReader.cs b/mcs/class/referencesource/System.Data/System/Data/DataTableReader.cs
index 90d9af9f04f..475e6f72155 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataTableReader.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataTableReader.cs
@@ -2,9 +2,9 @@
// <copyright file="DataTableReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataTableReaderListener.cs b/mcs/class/referencesource/System.Data/System/Data/DataTableReaderListener.cs
index 66b1c720d51..545909a4fe0 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataTableReaderListener.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataTableReaderListener.cs
@@ -2,8 +2,8 @@
// <copyright file="DataTableReaderListener.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataTableTypeConverter.cs b/mcs/class/referencesource/System.Data/System/Data/DataTableTypeConverter.cs
index b5a9ed888ee..dc1425682eb 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataTableTypeConverter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataTableTypeConverter.cs
@@ -2,9 +2,9 @@
// <copyright file="DataTableTypeConverter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataView.cs b/mcs/class/referencesource/System.Data/System/Data/DataView.cs
index fb93c55a290..69c0ce2b662 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataView.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataView.cs
@@ -2,8 +2,8 @@
// <copyright file="DataView.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -166,7 +166,7 @@ namespace System.Data {
/// <summary>
/// Allow construction of DataView with <see cref="System.Predicate&lt;DataRow&gt;"/> and <see cref="System.Comparison&lt;DataRow&gt;"/>
/// </summary>
- /// <remarks>This is a copy of the other DataView ctor and needs to be kept in [....]</remarks>
+ /// <remarks>This is a copy of the other DataView ctor and needs to be kept in sync</remarks>
internal DataView(DataTable table, System.Predicate<DataRow> predicate, System.Comparison<DataRow> comparison, DataViewRowState RowState) {
GC.SuppressFinalize(this);
Bid.Trace("<ds.DataView.DataView|API> %d#, table=%d, RowState=%d{ds.DataViewRowState}\n",
@@ -1294,7 +1294,7 @@ namespace System.Data {
if (ListChangedType.Reset != e.ListChangedType) {
OnListChanged(e);
}
- if (addNewRow != null && index.RecordCount == 0) { // [....] : 83032 Clear the newly added row as the underlying index is reset.
+ if (addNewRow != null && index.RecordCount == 0) { // Microsoft : 83032 Clear the newly added row as the underlying index is reset.
FinishAddNew(false);
}
if (ListChangedType.Reset == e.ListChangedType) {
@@ -1511,7 +1511,7 @@ namespace System.Data {
dataViewManager.nViews++;
DataViewSetting dataViewSetting = dataViewManager.DataViewSettings[table];
try {
- // [....]: check that we will not do unnesasary operation here if dataViewSetting.Sort == this.Sort ...
+ // Microsoft: check that we will not do unnesasary operation here if dataViewSetting.Sort == this.Sort ...
applyDefaultSort = dataViewSetting.ApplyDefaultSort;
DataExpression newFilter = new DataExpression(table, dataViewSetting.RowFilter);
SetIndex(dataViewSetting.Sort, dataViewSetting.RowStateFilter, newFilter);
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataViewListener.cs b/mcs/class/referencesource/System.Data/System/Data/DataViewListener.cs
index 32fb4fbf6a0..0821be330dc 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataViewListener.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataViewListener.cs
@@ -2,8 +2,8 @@
// <copyright file="Select.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataViewManager.cs b/mcs/class/referencesource/System.Data/System/Data/DataViewManager.cs
index f597b87e80e..29d03280392 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataViewManager.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataViewManager.cs
@@ -2,9 +2,9 @@
// <copyright file="DataViewManager.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -300,7 +300,7 @@ namespace System.Data {
}
*/
- // [....]: GetListName and GetItemProperties almost the same in DataView and DataViewManager
+ // Microsoft: GetListName and GetItemProperties almost the same in DataView and DataViewManager
string System.ComponentModel.ITypedList.GetListName(PropertyDescriptor[] listAccessors) {
DataSet dataSet = DataSet;
if (dataSet == null)
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataViewManagerListItemTypeDescriptor.cs b/mcs/class/referencesource/System.Data/System/Data/DataViewManagerListItemTypeDescriptor.cs
index 60d96cc86b3..b9ed419b403 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataViewManagerListItemTypeDescriptor.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataViewManagerListItemTypeDescriptor.cs
@@ -2,9 +2,9 @@
// <copyright file="DataViewManagerListItemTypeDescriptor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataViewRowState.cs b/mcs/class/referencesource/System.Data/System/Data/DataViewRowState.cs
index b8734a14e90..41415d3c994 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataViewRowState.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataViewRowState.cs
@@ -2,9 +2,9 @@
// <copyright file="DataViewRowState.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataViewSetting.cs b/mcs/class/referencesource/System.Data/System/Data/DataViewSetting.cs
index d2d4b86f44c..1072ce26384 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataViewSetting.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataViewSetting.cs
@@ -2,9 +2,9 @@
// <copyright file="DataViewSetting.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DataViewSettingCollection.cs b/mcs/class/referencesource/System.Data/System/Data/DataViewSettingCollection.cs
index fc91e196bec..cbdfa92f2a7 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DataViewSettingCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DataViewSettingCollection.cs
@@ -2,9 +2,9 @@
// <copyright file="DataViewSettingCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/DefaultValueTypeConverter.cs b/mcs/class/referencesource/System.Data/System/Data/DefaultValueTypeConverter.cs
index 092a27b246d..977867402d5 100644
--- a/mcs/class/referencesource/System.Data/System/Data/DefaultValueTypeConverter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/DefaultValueTypeConverter.cs
@@ -2,9 +2,9 @@
// <copyright file="DefaultValueTypeConverter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
/*
diff --git a/mcs/class/referencesource/System.Data/System/Data/FillErrorEventArgs.cs b/mcs/class/referencesource/System.Data/System/Data/FillErrorEventArgs.cs
index ea0f9b7d945..83c581a835e 100644
--- a/mcs/class/referencesource/System.Data/System/Data/FillErrorEventArgs.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/FillErrorEventArgs.cs
@@ -2,8 +2,8 @@
// <copyright file="FillErrorEventArgs.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data { // MDAC 59437
diff --git a/mcs/class/referencesource/System.Data/System/Data/FillErrorEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/FillErrorEventHandler.cs
index 2765697f5bc..5a7e23d7142 100644
--- a/mcs/class/referencesource/System.Data/System/Data/FillErrorEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/FillErrorEventHandler.cs
@@ -2,8 +2,8 @@
// <copyright file="FillErrorEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data { // MDAC 59437
diff --git a/mcs/class/referencesource/System.Data/System/Data/Filter/AggregateNode.cs b/mcs/class/referencesource/System.Data/System/Data/Filter/AggregateNode.cs
index 0515908cc22..2fe5c813668 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Filter/AggregateNode.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Filter/AggregateNode.cs
@@ -2,8 +2,8 @@
// <copyright file="AggregateNode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Filter/BinaryNode.cs b/mcs/class/referencesource/System.Data/System/Data/Filter/BinaryNode.cs
index 1e2691c822f..808ad90076d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Filter/BinaryNode.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Filter/BinaryNode.cs
@@ -2,9 +2,9 @@
// <copyright file="BinaryNode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Filter/ConstNode.cs b/mcs/class/referencesource/System.Data/System/Data/Filter/ConstNode.cs
index 3d3215329f4..ae40e2269cf 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Filter/ConstNode.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Filter/ConstNode.cs
@@ -2,9 +2,9 @@
// <copyright file="ConstNode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Filter/DataExpression.cs b/mcs/class/referencesource/System.Data/System/Data/Filter/DataExpression.cs
index 2a13366e59e..a61417462df 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Filter/DataExpression.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Filter/DataExpression.cs
@@ -2,9 +2,9 @@
// <copyright file="DataExpression.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Filter/ExpressionNode.cs b/mcs/class/referencesource/System.Data/System/Data/Filter/ExpressionNode.cs
index bbd59d3c850..049e98aa8f2 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Filter/ExpressionNode.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Filter/ExpressionNode.cs
@@ -2,9 +2,9 @@
// <copyright file="ExpressionNode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Filter/ExpressionParser.cs b/mcs/class/referencesource/System.Data/System/Data/Filter/ExpressionParser.cs
index 0cbd98ec98a..c040e8e4f0c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Filter/ExpressionParser.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Filter/ExpressionParser.cs
@@ -2,9 +2,9 @@
// <copyright file="ExpressionParser.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Filter/FilterException.cs b/mcs/class/referencesource/System.Data/System/Data/Filter/FilterException.cs
index 643744062b5..11165c62e2f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Filter/FilterException.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Filter/FilterException.cs
@@ -2,9 +2,9 @@
// <copyright file="FilterException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Filter/FunctionNode.cs b/mcs/class/referencesource/System.Data/System/Data/Filter/FunctionNode.cs
index 97580e2d945..7d53c49343b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Filter/FunctionNode.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Filter/FunctionNode.cs
@@ -2,9 +2,9 @@
// <copyright file="FunctionNode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Filter/IFilter.cs b/mcs/class/referencesource/System.Data/System/Data/Filter/IFilter.cs
index c950470650e..11c52d2dd9a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Filter/IFilter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Filter/IFilter.cs
@@ -2,9 +2,9 @@
// <copyright file="IFilter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Filter/LookupNode.cs b/mcs/class/referencesource/System.Data/System/Data/Filter/LookupNode.cs
index 3b75a801cef..e709a44a3ae 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Filter/LookupNode.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Filter/LookupNode.cs
@@ -2,9 +2,9 @@
// <copyright file="LookupNode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -92,7 +92,7 @@ namespace System.Data {
if (parent == null)
return DBNull.Value;
- return parent[column, parent.HasVersion(version) ? version : DataRowVersion.Current]; // [....] : Bug 76154
+ return parent[column, parent.HasVersion(version) ? version : DataRowVersion.Current]; // Microsoft :
}
internal override object Eval(int[] recordNos) {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Filter/NameNode.cs b/mcs/class/referencesource/System.Data/System/Data/Filter/NameNode.cs
index 4ec71c0e7d9..efc3b139eb8 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Filter/NameNode.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Filter/NameNode.cs
@@ -2,9 +2,9 @@
// <copyright file="NameNode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Filter/Operators.cs b/mcs/class/referencesource/System.Data/System/Data/Filter/Operators.cs
index ef806e204ef..863a0c0f00d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Filter/Operators.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Filter/Operators.cs
@@ -2,9 +2,9 @@
// <copyright file="Operators.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Filter/UnaryNode.cs b/mcs/class/referencesource/System.Data/System/Data/Filter/UnaryNode.cs
index 21f4fec0c79..2bc95711750 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Filter/UnaryNode.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Filter/UnaryNode.cs
@@ -2,9 +2,9 @@
// <copyright file="UnaryNode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Filter/ZeroOpNode.cs b/mcs/class/referencesource/System.Data/System/Data/Filter/ZeroOpNode.cs
index e9c0ad4fad5..21e318aa494 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Filter/ZeroOpNode.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Filter/ZeroOpNode.cs
@@ -2,9 +2,9 @@
// <copyright file="ZeroOpNode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ForeignKeyConstraint.cs b/mcs/class/referencesource/System.Data/System/Data/ForeignKeyConstraint.cs
index 5afa2ecbd13..a343d699d5a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ForeignKeyConstraint.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ForeignKeyConstraint.cs
@@ -2,9 +2,9 @@
// <copyright file="ForeignKeyConstraint.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -343,7 +343,7 @@ namespace System.Data {
Index childIndex = childKey.GetSortIndex( row.RowState == DataRowState.Deleted ? DataViewRowState.OriginalRows : DataViewRowState.CurrentRows);
object[] key = row.GetKeyValues(parentKey, row.RowState == DataRowState.Modified ? DataRowVersion.Current : DataRowVersion.Default );
- // Bug : This is definitely not a proper fix. (Ref. MDAC Bug 73592)
+ //
if (IsKeyNull(key)) {
return;
}
diff --git a/mcs/class/referencesource/System.Data/System/Data/IColumnMapping.cs b/mcs/class/referencesource/System.Data/System/Data/IColumnMapping.cs
index a9e2ca996b2..af0a6acbe94 100644
--- a/mcs/class/referencesource/System.Data/System/Data/IColumnMapping.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/IColumnMapping.cs
@@ -2,8 +2,8 @@
// <copyright file="IColumnMapping.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/IColumnMappingCollection.cs b/mcs/class/referencesource/System.Data/System/Data/IColumnMappingCollection.cs
index faf7b5b9b47..cb15d8b22ee 100644
--- a/mcs/class/referencesource/System.Data/System/Data/IColumnMappingCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/IColumnMappingCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="IColumnMappingCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/IDataAdapter.cs b/mcs/class/referencesource/System.Data/System/Data/IDataAdapter.cs
index 68066295a5f..6007f39e015 100644
--- a/mcs/class/referencesource/System.Data/System/Data/IDataAdapter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/IDataAdapter.cs
@@ -2,8 +2,8 @@
// <copyright file="IDataAdapter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/IDataParameter.cs b/mcs/class/referencesource/System.Data/System/Data/IDataParameter.cs
index 1e5e04d8b67..66d21c4e50c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/IDataParameter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/IDataParameter.cs
@@ -2,8 +2,8 @@
// <copyright file="IDataParameter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/IDataParameterCollection.cs b/mcs/class/referencesource/System.Data/System/Data/IDataParameterCollection.cs
index ecb3bf5b74c..4afcbb00940 100644
--- a/mcs/class/referencesource/System.Data/System/Data/IDataParameterCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/IDataParameterCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="IDataParameterCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/IDataReader.cs b/mcs/class/referencesource/System.Data/System/Data/IDataReader.cs
index c34df297f5b..bd6f054724d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/IDataReader.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/IDataReader.cs
@@ -2,8 +2,8 @@
// <copyright file="IDataReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/IDataRecord.cs b/mcs/class/referencesource/System.Data/System/Data/IDataRecord.cs
index abdbe9797c1..b3ba7d4a482 100644
--- a/mcs/class/referencesource/System.Data/System/Data/IDataRecord.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/IDataRecord.cs
@@ -2,8 +2,8 @@
// <copyright file="IDataRecord.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/IDbCommand.cs b/mcs/class/referencesource/System.Data/System/Data/IDbCommand.cs
index 2a9ed41deb8..43c2dc38fde 100644
--- a/mcs/class/referencesource/System.Data/System/Data/IDbCommand.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/IDbCommand.cs
@@ -2,8 +2,8 @@
// <copyright file="IDbCommand.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data{
diff --git a/mcs/class/referencesource/System.Data/System/Data/IDbConnection.cs b/mcs/class/referencesource/System.Data/System/Data/IDbConnection.cs
index bf630c7426a..ad6da26e664 100644
--- a/mcs/class/referencesource/System.Data/System/Data/IDbConnection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/IDbConnection.cs
@@ -2,8 +2,8 @@
// <copyright file="IDbConnection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/IDbDataAdapter.cs b/mcs/class/referencesource/System.Data/System/Data/IDbDataAdapter.cs
index b78fdd4dfba..642232121a4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/IDbDataAdapter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/IDbDataAdapter.cs
@@ -2,8 +2,8 @@
// <copyright file="IDbDataAdapter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/IDbDataParameter.cs b/mcs/class/referencesource/System.Data/System/Data/IDbDataParameter.cs
index d69db17ffa5..09eeae7ca77 100644
--- a/mcs/class/referencesource/System.Data/System/Data/IDbDataParameter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/IDbDataParameter.cs
@@ -2,8 +2,8 @@
// <copyright file="IDbDataParameter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/IDbTransaction.cs b/mcs/class/referencesource/System.Data/System/Data/IDbTransaction.cs
index e31633da857..d67b6f7e3fd 100644
--- a/mcs/class/referencesource/System.Data/System/Data/IDbTransaction.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/IDbTransaction.cs
@@ -2,8 +2,8 @@
// <copyright file="IDbTransaction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data{
diff --git a/mcs/class/referencesource/System.Data/System/Data/ITableMapping.cs b/mcs/class/referencesource/System.Data/System/Data/ITableMapping.cs
index b8c42cf3d5c..b6063015e60 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ITableMapping.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ITableMapping.cs
@@ -2,8 +2,8 @@
// <copyright file="ITableMapping.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ITableMappingCollection.cs b/mcs/class/referencesource/System.Data/System/Data/ITableMappingCollection.cs
index 9455464ec50..42304689ec1 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ITableMappingCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ITableMappingCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="ITableMappingCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/IsolationLevel.cs b/mcs/class/referencesource/System.Data/System/Data/IsolationLevel.cs
index bea89d5c563..51f9a59e11a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/IsolationLevel.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/IsolationLevel.cs
@@ -2,8 +2,8 @@
// <copyright file="IsolationLevel.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/LoadOption.cs b/mcs/class/referencesource/System.Data/System/Data/LoadOption.cs
index 2b1b20ad02b..870b26ebbfa 100644
--- a/mcs/class/referencesource/System.Data/System/Data/LoadOption.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/LoadOption.cs
@@ -2,9 +2,9 @@
// <copyright file="LoadOption.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/MappingType.cs b/mcs/class/referencesource/System.Data/System/Data/MappingType.cs
index 489da4b2733..7a17a5cab9e 100644
--- a/mcs/class/referencesource/System.Data/System/Data/MappingType.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/MappingType.cs
@@ -2,9 +2,9 @@
// <copyright file="MappingType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/MergeFailedEvent.cs b/mcs/class/referencesource/System.Data/System/Data/MergeFailedEvent.cs
index 880119a6716..3de377905f8 100644
--- a/mcs/class/referencesource/System.Data/System/Data/MergeFailedEvent.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/MergeFailedEvent.cs
@@ -2,9 +2,9 @@
// <copyright file="MergeFailedEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/MergeFailedEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/MergeFailedEventHandler.cs
index 8c4407a4a69..3e080d73391 100644
--- a/mcs/class/referencesource/System.Data/System/Data/MergeFailedEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/MergeFailedEventHandler.cs
@@ -2,9 +2,9 @@
// <copyright file="MergeFailedEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Merger.cs b/mcs/class/referencesource/System.Data/System/Data/Merger.cs
index 091a03a2a0b..0d01c4987f5 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Merger.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Merger.cs
@@ -2,8 +2,8 @@
// <copyright file="Merger.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/MissingMappingAction.cs b/mcs/class/referencesource/System.Data/System/Data/MissingMappingAction.cs
index b0c1a5c3657..e31ab649d2a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/MissingMappingAction.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/MissingMappingAction.cs
@@ -2,8 +2,8 @@
// <copyright file="MissingMappingAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/MissingSchemaAction.cs b/mcs/class/referencesource/System.Data/System/Data/MissingSchemaAction.cs
index 2576568b174..99deb05a243 100644
--- a/mcs/class/referencesource/System.Data/System/Data/MissingSchemaAction.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/MissingSchemaAction.cs
@@ -2,9 +2,9 @@
// <copyright file="MissingSchemaAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/DbDataRecord.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/DbDataRecord.cs
index ac00f0d0e55..ea81451b667 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/DbDataRecord.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/DbDataRecord.cs
@@ -2,8 +2,8 @@
// <copyright file="DbDataRecord.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/Odbc32.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/Odbc32.cs
index 63a7a6e2965..4fddaba8713 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/Odbc32.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/Odbc32.cs
@@ -2,8 +2,8 @@
// <copyright file="Odbc32.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcCommand.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcCommand.cs
index a5b4cbdf0ef..2c1f531f26b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcCommand.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcCommand.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcCommand.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcCommandBuilder.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcCommandBuilder.cs
index 955c786fddf..e94f58756bb 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcCommandBuilder.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcCommandBuilder.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcCommandBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnection.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnection.cs
index bf56cc81f02..7a35ef87c83 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnection.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcConnection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionFactory.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionFactory.cs
index 956635682f0..e72fc109f19 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionFactory.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionFactory.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcConnectionFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Odbc
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionHandle.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionHandle.cs
index fc645f7e74e..fd0b3598c41 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionHandle.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionHandle.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcConnectionHandle.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionOpen.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionOpen.cs
index cbfb7691d3b..42c134450bc 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionOpen.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionOpen.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcConnectionOpen.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionPoolProviderInfo.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionPoolProviderInfo.cs
index b631eabdb24..a48d5d7415f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionPoolProviderInfo.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionPoolProviderInfo.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcConnectionPoolProviderInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Odbc
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionString.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionString.cs
index 8214495463e..f9d7a4654f2 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionString.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionString.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcConnectionString.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Odbc {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionStringbuilder.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionStringbuilder.cs
index 224cf99840f..13193c544a9 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionStringbuilder.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcConnectionStringbuilder.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcConnectionStringBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcDataAdapter.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcDataAdapter.cs
index c05c0b67f0e..b3bbbe12901 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcDataAdapter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcDataAdapter.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcDataAdapter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcDataReader.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcDataReader.cs
index 2428b5e4901..c2235395409 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcDataReader.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcDataReader.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcDataReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
@@ -545,12 +545,12 @@ namespace System.Data.Odbc
// item for GetInt32. This actually improves perf anyway, (even if the driver could
// support it), since we are not making a seperate interop call...
- // Bug SQLBUVSTS01:110664 - available cases:
- // 1. random access - always cache the value (as before the fix), to minimize regression risk
- // 2. sequential access, fixed-size value: continue caching the value as before, again to minimize regression risk
- // 3. sequential access, variable-length value: this scenario did not work properly before the fix. Fix
- // it now by calling GetData(length = 0).
- // 4. sequential access, cache value exists: just check the cache for DbNull (no validations done, again to minimize regressions)
+ //
+
+
+
+
+
if (!IsCommandBehavior(CommandBehavior.SequentialAccess))
return Convert.IsDBNull(GetValue(i)); // case 1, cache the value
@@ -1012,7 +1012,7 @@ namespace System.Data.Odbc
if (dataIndex >= cachedObjectLength)
{
// no more bytes to read
- // see also MDAC bug 73298
+ // see also MDAC
return 0;
}
@@ -1021,7 +1021,7 @@ namespace System.Data.Odbc
// silently reduce the length to avoid regression from EVERETT
lengthOfCopy = Math.Min(lengthOfCopy, buffer.Length - bufferIndex);
- if (lengthOfCopy <= 0) return 0; // MDAC Bug 73298
+ if (lengthOfCopy <= 0) return 0; // MDAC
if (isCharsBuffer)
((string)cachedObj).CopyTo((int)dataIndex, (char[])buffer, bufferIndex, lengthOfCopy);
@@ -1944,7 +1944,7 @@ namespace System.Data.Odbc
columns.Add(new DataColumn("BaseTableName", typeof(System.String)));
columns.Add(new DataColumn("BaseColumnName", typeof(System.String)));
- // MDAC Bug 79231
+ // MDAC
foreach (DataColumn column in columns) {
column.ReadOnly = true;
}
@@ -2197,8 +2197,8 @@ namespace System.Data.Odbc
// devnote: this test is already done by calling method ...
// if (IsClosed) return; // protect against dead connection
- // MDAC Bug 75928 - SQLStatisticsW damages the string passed in
- // To protect the tablename we need to pass in a copy of that string
+ // MDAC
+
String tablename1 = String.Copy(qualifiedTableName.GetTable(quoted));
// Select only unique indexes
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcEnvironment.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcEnvironment.cs
index 86685f8d238..e2f228c2140 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcEnvironment.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcEnvironment.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcEnvironment.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcEnvironmentHandle.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcEnvironmentHandle.cs
index a01fa82c98a..78d9cb709f4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcEnvironmentHandle.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcEnvironmentHandle.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcEnvironmentHandle.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcError.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcError.cs
index 08fbed4a12e..2a1c944113d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcError.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcError.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcError.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcErrorCollection.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcErrorCollection.cs
index 1358b94a3c8..00f464349ef 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcErrorCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcErrorCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcErrorCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Odbc {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcException.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcException.cs
index ef8ebabb000..3ec043ec508 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcException.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcException.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
@@ -66,7 +66,7 @@ namespace System.Data.Odbc {
base.GetObjectData(si, context);
}
- // mdac bug 62559 - if we don't have it return nothing (empty string)
+ // mdac
override public string Source {
get {
if (0 < Errors.Count) {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcFactory.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcFactory.cs
index 4637f0924e1..da89d9bac76 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcFactory.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcFactory.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcHandle.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcHandle.cs
index cf436200533..f4deea79fac 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcHandle.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcHandle.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcHandle.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcInfoMessageEvent.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcInfoMessageEvent.cs
index 18ea6b2f895..fed1a56fcbd 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcInfoMessageEvent.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcInfoMessageEvent.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcInfoMessageEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcParameter.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcParameter.cs
index 013a65cb2e8..081d5a80f6e 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcParameter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcParameter.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcParameter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
@@ -326,12 +326,12 @@ namespace System.Data.Odbc {
// the following code causes failure against SQL 6.5
// ERROR [HY104] [Microsoft][ODBC SQL Server Driver]Invalid precision value
//
- // the code causes failure if it is NOT there (remark added by [....])
+ // the code causes failure if it is NOT there (remark added by Microsoft)
// it causes failure with jet if it is there
//
// MDAC 76227: Code is required for japanese client/server tests.
- // If this causes regressions with Jet please doc here including bug#. ([....])
- //
+ // If this causes regressions with Jet please doc here including
+
if ((ODBC32.SQL_TYPE.CHAR == _bindtype._sql_type)
|| (ODBC32.SQL_TYPE.VARCHAR == _bindtype._sql_type)
|| (ODBC32.SQL_TYPE.LONGVARCHAR == _bindtype._sql_type)) {
@@ -707,8 +707,8 @@ namespace System.Data.Odbc {
if (ODBC32.SQL_C.NUMERIC == sql_c_type) {
// for input/output parameters we need to adjust the scale of the input value since the convert function in
- // sqlsrv32 takes this scale for the output parameter (possible bug in sqlsrv32?)
- //
+ // sqlsrv32 takes this scale for the output parameter (possible
+
if ((ODBC32.SQL_PARAM.INPUT_OUTPUT == sqldirection) && (value is Decimal)) {
if (scale < _internalScale) {
while (scale < _internalScale) {
@@ -720,8 +720,8 @@ namespace System.Data.Odbc {
SetInputValue(value, sql_c_type, cbValueSize, precision, 0, parameterBuffer);
// for output parameters we need to write precision and scale to the buffer since the convert function in
- // sqlsrv32 expects these values there (possible bug in sqlsrv32?)
- //
+ // sqlsrv32 expects these values there (possible
+
if (ODBC32.SQL_PARAM.INPUT != sqldirection) {
parameterBuffer.WriteInt16(_preparedValueOffset, (short)(((ushort)scale << 8) | (ushort)precision));
}
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcParameterCollection.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcParameterCollection.cs
index 8231d988df4..feb30a5f5dc 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcParameterCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcParameterCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcParameterCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Odbc {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcPermission.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcPermission.cs
index b173351f678..d1560e285a7 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcPermission.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcPermission.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcPermission.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Odbc {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcReferenceCollection.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcReferenceCollection.cs
index a6e6c14220d..16636e5d272 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcReferenceCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcReferenceCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcReferenceCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcRowUpdatingEvent.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcRowUpdatingEvent.cs
index 1f33d71aed7..7e36ad5e1b6 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcRowUpdatingEvent.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcRowUpdatingEvent.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcRowUpdatingEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcStatementHandle.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcStatementHandle.cs
index 04d1157b724..9000d8ea8aa 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcStatementHandle.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcStatementHandle.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcStatementHandle.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcTransaction.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcTransaction.cs
index 610dfdb7c96..25dbd717984 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcTransaction.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcTransaction.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcTransaction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcType.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcType.cs
index 0a4e2b2368a..a50795025c4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcType.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcType.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">mithomas</owner>
+// <owner current="true" primary="false">markash</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcUtils.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcUtils.cs
index 5c6f11ad154..b5d23b8aae4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcUtils.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/OdbcUtils.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcUtils.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/odbcmetadatacollectionnames.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/odbcmetadatacollectionnames.cs
index ab10d4aa0cf..a7cafce8aba 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/odbcmetadatacollectionnames.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/odbcmetadatacollectionnames.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcMetaDataCollectionNames.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Odbc {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/odbcmetadatacolumnnames.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/odbcmetadatacolumnnames.cs
index 513cf0f35b3..bbd591fb162 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/odbcmetadatacolumnnames.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/odbcmetadatacolumnnames.cs
@@ -2,8 +2,8 @@
// <copyright file="OdbcMetaDataColumnNames.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Odbc {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Odbc/odbcmetadatafactory.cs b/mcs/class/referencesource/System.Data/System/Data/Odbc/odbcmetadatafactory.cs
index 87281ad3bf7..7b48811f66a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Odbc/odbcmetadatafactory.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Odbc/odbcmetadatafactory.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//
//------------------------------------------------------------------------------
@@ -579,7 +579,7 @@ namespace System.Data.Odbc{
dataSourceInformation[DbMetaDataColumnNames.DataSourceProductVersionNormalized] = ServerVersionNormalized;
- // values that are the same for all ODBC drivers. See bug 105333
+ // values that are the same for all ODBC drivers. See
dataSourceInformation[DbMetaDataColumnNames.ParameterMarkerFormat] = "?";
dataSourceInformation[DbMetaDataColumnNames.ParameterMarkerPattern] = "\\?";
dataSourceInformation[DbMetaDataColumnNames.ParameterNameMaxLength] = 0;
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/ColumnBinding.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/ColumnBinding.cs
index 05a211e2cb3..89b83e35c76 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/ColumnBinding.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/ColumnBinding.cs
@@ -2,8 +2,8 @@
// <copyright file="ColumnBinding.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/DBBindings.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/DBBindings.cs
index 60350f4689f..4b802a209a0 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/DBBindings.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/DBBindings.cs
@@ -2,8 +2,8 @@
// <copyright file="DBBindings.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/DBPropSet.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/DBPropSet.cs
index 7157e6c7e35..f6128fcf3c6 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/DBPropSet.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/DBPropSet.cs
@@ -2,8 +2,8 @@
// <copyright file="DBPropSet.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OLEDB_Enum.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OLEDB_Enum.cs
index 40d7250e084..9eaa3c0e0bb 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OLEDB_Enum.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OLEDB_Enum.cs
@@ -2,8 +2,8 @@
// <copyright file="OLEDB_Enum.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OLEDB_Util.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OLEDB_Util.cs
index 66c7ead9d27..9a5c4818b94 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OLEDB_Util.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OLEDB_Util.cs
@@ -2,8 +2,8 @@
// <copyright file="OLEDB_Util.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbCommand.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbCommand.cs
index a835d94e7cc..34c26ef0f0f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbCommand.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbCommand.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbCommand.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbCommandBuilder.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbCommandBuilder.cs
index f7e15dd4f22..7e6b55777df 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbCommandBuilder.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbCommandBuilder.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbCommandBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnection.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnection.cs
index b721af209c8..251146a92fe 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnection.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbConnection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnectionFactory.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnectionFactory.cs
index 81a53960832..28815c8557c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnectionFactory.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnectionFactory.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbConnectionFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnectionInternal.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnectionInternal.cs
index 83b463ed43a..67e120b1400 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnectionInternal.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnectionInternal.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbConnectionInternal.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnectionPoolGroupProviderInfo.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnectionPoolGroupProviderInfo.cs
index 88200afbaac..6c48b25650d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnectionPoolGroupProviderInfo.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbConnectionPoolGroupProviderInfo.cs
@@ -2,7 +2,7 @@
// <copyright file="OleDbConnection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbDataAdapter.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbDataAdapter.cs
index c1301ded63c..f9e2e640cb4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbDataAdapter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbDataAdapter.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbDataAdapter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbDataReader.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbDataReader.cs
index 16a4393ed57..55fdaa58bd9 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbDataReader.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbDataReader.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbDataReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
@@ -1168,7 +1168,7 @@ namespace System.Data.OleDb {
static private void NextResultsInfinite() { // MDAC 72738
Bid.Trace("<oledb.OleDbDataReader.NextResultsInfinite|INFO> System.Data.OleDb.OleDbDataReader: 2000 IMultipleResult.GetResult(NULL, DBRESULTFLAG_DEFAULT, IID_NULL, NULL, NULL) iterations with 0 records affected. Stopping suspect infinite loop. To work-around try using ExecuteReader() and iterating through results with NextResult().\n");
- // [....]'s suggestion is that we debug assert so that users will learn of MSOLAP's misbehavior and not call ExecuteNonQuery
+ // Microsoft's suggestion is that we debug assert so that users will learn of MSOLAP's misbehavior and not call ExecuteNonQuery
Debug.Assert(false, "<oledb.OleDbDataReader.NextResultsInfinite|INFO> System.Data.OleDb.OleDbDataReader: 2000 IMultipleResult.GetResult(NULL, DBRESULTFLAG_DEFAULT, IID_NULL, NULL, NULL) iterations with 0 records affected. Stopping suspect infinite loop. To work-around try using ExecuteReader() and iterating through results with NextResult().\n");
}
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbEnumerator.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbEnumerator.cs
index 25b0e27658a..fdd83b9c030 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbEnumerator.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbEnumerator.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbEnumerator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbError.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbError.cs
index 7bd40b39101..c46ab4271d9 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbError.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbError.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbError.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbErrorCollection.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbErrorCollection.cs
index c2e0e14f924..a7410a8e317 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbErrorCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbErrorCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbErrorCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbException.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbException.cs
index b34faca19aa..1b310bb8b7b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbException.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbException.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbFactory.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbFactory.cs
index a8977023409..190c0019d3d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbFactory.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbFactory.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbHResult.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbHResult.cs
index 96f9a0de631..5b4afb959da 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbHResult.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbHResult.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbHResult.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
@@ -452,7 +452,7 @@ namespace System.Data.OleDb {
// Method is not supported by this provider.
DB_E_NOTSUPPORTED = unchecked((int)0x80040E53),
- // MessageId: DB_E_MAXPENDCHANGE----CEEDED
+ // MessageId: DB_E_MAXPENDCHANGESEXCEEDED
// MessageText:
// Number of rows with pending changes exceeded the limit.
DB_E_MAXPENDCHANGESEXCEEDED = unchecked((int)0x80040E54),
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbInfoMessageEvent.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbInfoMessageEvent.cs
index 1af769a72fe..87936250c71 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbInfoMessageEvent.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbInfoMessageEvent.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbInfoMessageEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbInfoMessageEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbInfoMessageEventHandler.cs
index cb5db36a0df..d43968b4c0a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbInfoMessageEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbInfoMessageEventHandler.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbInfoMessageEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbLiteral.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbLiteral.cs
index 8e38ea7171a..1030300cca6 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbLiteral.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbLiteral.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbLiteral.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbMetaDataFactory.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbMetaDataFactory.cs
index 99651fe5e91..7189c9f86b4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbMetaDataFactory.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbMetaDataFactory.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">Mugunm</owner>
//
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbParameter.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbParameter.cs
index 7454366930b..ad824e1a7dd 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbParameter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbParameter.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbParameter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbParameterCollection.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbParameterCollection.cs
index 2ab175f7cc2..40a2107151b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbParameterCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbParameterCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbParameterCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbPermission.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbPermission.cs
index d7ca1aa88c0..a1a313100c7 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbPermission.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbPermission.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbPermission.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbPropertySetGuid.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbPropertySetGuid.cs
index 75e6fae1311..4be4655a888 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbPropertySetGuid.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbPropertySetGuid.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbPropertySetGuid.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbPropertyStatus.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbPropertyStatus.cs
index fd808fa5169..e81df76a2e4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbPropertyStatus.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbPropertyStatus.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbPropertyStatus.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbReferenceCollection.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbReferenceCollection.cs
index 45f347b78fb..ad3750c9529 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbReferenceCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbReferenceCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbReferenceCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatedEvent.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatedEvent.cs
index d4c3ccf53cb..043e585d092 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatedEvent.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatedEvent.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbRowUpdatedEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatedEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatedEventHandler.cs
index 1c4f66c82a3..d5986eaacc7 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatedEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatedEventHandler.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbRowUpdatedEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatingEvent.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatingEvent.cs
index ea1d58df0f7..4b20a71e36c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatingEvent.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatingEvent.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbRowUpdatingEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatingEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatingEventHandler.cs
index bf166df653e..5e93e9ab004 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatingEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbRowUpdatingEventHandler.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbRowUpdatingEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbSchemaGuid.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbSchemaGuid.cs
index eb0b45c119a..69bac32ad93 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbSchemaGuid.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbSchemaGuid.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbSchemaGuid.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbStruct.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbStruct.cs
index 49f83271bbb..8683055b54d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbStruct.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbStruct.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbStruct.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbTransaction.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbTransaction.cs
index a5653b5a7d2..14881edbcff 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbTransaction.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbTransaction.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbTransaction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbType.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbType.cs
index a63f5618bff..3af70093453 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbType.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbType.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbWrapper.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbWrapper.cs
index c4a71c07154..433d6d4996d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbWrapper.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OleDbWrapper.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbWrapper.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/OledbConnectionStringbuilder.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/OledbConnectionStringbuilder.cs
index bb021752ed4..9b9eb17174b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/OledbConnectionStringbuilder.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/OledbConnectionStringbuilder.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbConnectionStringBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/PropertyAttributes.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/PropertyAttributes.cs
index c2f5cf7702b..5eccdd6185e 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/PropertyAttributes.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/PropertyAttributes.cs
@@ -2,8 +2,8 @@
// <copyright file="PropertyAttributes.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/PropertyIDSet.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/PropertyIDSet.cs
index 92d8e4bfbfd..048b30508b2 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/PropertyIDSet.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/PropertyIDSet.cs
@@ -2,8 +2,8 @@
// <copyright file="PropertyIDSet.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/PropertyInfoSet.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/PropertyInfoSet.cs
index fb15d85b3d5..8f0bbf8871b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/PropertyInfoSet.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/PropertyInfoSet.cs
@@ -2,8 +2,8 @@
// <copyright file="PropertyInfoSet.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/RowBinding.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/RowBinding.cs
index eb93e1ae389..71b80127ace 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/RowBinding.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/RowBinding.cs
@@ -2,8 +2,8 @@
// <copyright file="RowBinding.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/SafeHandles.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/SafeHandles.cs
index 39e1958f5a4..1351f3b11f6 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/SafeHandles.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/SafeHandles.cs
@@ -2,8 +2,8 @@
// <copyright file="SafeHandles.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/oledbconnectionstring.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/oledbconnectionstring.cs
index bb12e5de732..e1406cfc2a1 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/oledbconnectionstring.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/oledbconnectionstring.cs
@@ -2,8 +2,8 @@
// <copyright file="oledbconnectionstring.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/oledbmetadatacollectionnames.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/oledbmetadatacollectionnames.cs
index 629e25ab995..9c0600b28e9 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/oledbmetadatacollectionnames.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/oledbmetadatacollectionnames.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbMetaDataCollectionNames.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OleDb/oledbmetadatacolumnnames.cs b/mcs/class/referencesource/System.Data/System/Data/OleDb/oledbmetadatacolumnnames.cs
index 3e260632562..741e79769a4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OleDb/oledbmetadatacolumnnames.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OleDb/oledbmetadatacolumnnames.cs
@@ -2,8 +2,8 @@
// <copyright file="OleDbMetaDataColumnNames.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.OleDb {
diff --git a/mcs/class/referencesource/System.Data/System/Data/OperationAbortedException.cs b/mcs/class/referencesource/System.Data/System/Data/OperationAbortedException.cs
index 539b0e3c114..3eda086c703 100644
--- a/mcs/class/referencesource/System.Data/System/Data/OperationAbortedException.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/OperationAbortedException.cs
@@ -2,8 +2,8 @@
// <copyright file="OperationAbortedException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ParameterDirection.cs b/mcs/class/referencesource/System.Data/System/Data/ParameterDirection.cs
index 9928c84556f..447fc59a011 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ParameterDirection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ParameterDirection.cs
@@ -2,8 +2,8 @@
// <copyright file="ParameterDirection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/PrimaryKeyTypeConverter.cs b/mcs/class/referencesource/System.Data/System/Data/PrimaryKeyTypeConverter.cs
index 431f2ba83d8..b57494291b1 100644
--- a/mcs/class/referencesource/System.Data/System/Data/PrimaryKeyTypeConverter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/PrimaryKeyTypeConverter.cs
@@ -2,9 +2,9 @@
// <copyright file="PrimaryKeyTypeConverter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/PropertyCollection.cs b/mcs/class/referencesource/System.Data/System/Data/PropertyCollection.cs
index 0b014fd3adb..e0532236dfa 100644
--- a/mcs/class/referencesource/System.Data/System/Data/PropertyCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/PropertyCollection.cs
@@ -2,9 +2,9 @@
// <copyright file="PropertyCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DataReaderContainer.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DataReaderContainer.cs
index b6864fb8d66..181017f55e9 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DataReaderContainer.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DataReaderContainer.cs
@@ -2,7 +2,7 @@
// <copyright file="DataReaderContainer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbBuffer.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbBuffer.cs
index 82c4df38272..390d8cd51d4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbBuffer.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbBuffer.cs
@@ -2,7 +2,7 @@
// <copyright file="DbBuffer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionClosed.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionClosed.cs
index fee86a2e3fa..a47c0532b34 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionClosed.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionClosed.cs
@@ -2,8 +2,8 @@
// <copyright file="DbConnectionClosed.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionFactory.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionFactory.cs
index 6832381eb7c..835b18d97a6 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionFactory.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionFactory.cs
@@ -2,8 +2,8 @@
// <copyright file="DbConnectionFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionHelper.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionHelper.cs
index 8c09bbc4c08..8f3f01b8386 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionHelper.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionHelper.cs
@@ -2,7 +2,7 @@
// <copyright file="DbConnectionHelper.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace NAMESPACE {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionInternal.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionInternal.cs
index b55df0aecd2..41fb92bccc8 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionInternal.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionInternal.cs
@@ -2,8 +2,8 @@
// <copyright file="DbConnectionInternal.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase {
@@ -58,7 +58,7 @@ namespace System.Data.ProviderBase {
private SysTx.Transaction _enlistedTransactionOriginal;
#if DEBUG
- private int _activateCount; // debug only counter to verify activate/deactivates are in [....].
+ private int _activateCount; // debug only counter to verify activate/deactivates are in sync.
#endif //DEBUG
protected DbConnectionInternal() : this(ConnectionState.Open, true, false) { // V1.1.3300
@@ -259,15 +259,15 @@ namespace System.Data.ProviderBase {
//
// That means that:
//
- // _pooledCount > 1 connection is in the pool multiple times (this is a serious bug...)
- // _pooledCount == 1 connection is in the pool
- // _pooledCount == 0 connection is out of the pool
- // _pooledCount == -1 connection is not a pooled connection; we shouldn't be here for non-pooled connections.
- // _pooledCount < -1 connection out of the pool multiple times (not sure how this could happen...)
- //
- // Now, our job is to return TRUE when the connection is out
- // of the pool and it's owning object is no longer around to
- // return it.
+ // _pooledCount > 1 connection is in the pool multiple times (this is a serious
+
+
+
+
+
+
+
+
bool value = !IsTxRootWaitingForTxEnd && (_pooledCount < 1) && !_owningObject.IsAlive;
return value;
@@ -323,7 +323,7 @@ namespace System.Data.ProviderBase {
get;
}
- // this should be abstract but untill it is added to all the providers virtual will have to do [....]
+ // this should be abstract but untill it is added to all the providers virtual will have to do Microsoft
virtual public string ServerVersionNormalized {
get{
throw ADP.NotSupported();
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPool.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPool.cs
index a12b68eab34..cf435133ac2 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPool.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPool.cs
@@ -2,8 +2,8 @@
// <copyright file="DbConnectionPool.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase {
@@ -428,6 +428,11 @@ namespace System.Data.ProviderBase {
private readonly DbConnectionPoolGroupOptions _connectionPoolGroupOptions;
private DbConnectionPoolProviderInfo _connectionPoolProviderInfo;
+ /// <summary>
+ /// The private member which carries the set of authenticationcontexts for this pool (based on the user's identity).
+ /// </summary>
+ private readonly ConcurrentDictionary<DbConnectionPoolAuthenticationContextKey, DbConnectionPoolAuthenticationContext> _pooledDbAuthenticationContexts;
+
private State _state;
private readonly ConcurrentStack<DbConnectionInternal> _stackOld = new ConcurrentStack<DbConnectionInternal>();
@@ -489,6 +494,9 @@ namespace System.Data.ProviderBase {
_objectList = new List<DbConnectionInternal>(MaxPoolSize);
+ _pooledDbAuthenticationContexts = new ConcurrentDictionary<DbConnectionPoolAuthenticationContextKey, DbConnectionPoolAuthenticationContext>(concurrencyLevel: 4 * Environment.ProcessorCount /* default value in ConcurrentDictionary*/,
+ capacity: 2);
+
if(ADP.IsPlatformNT5) {
_transactedConnectionPool = new TransactedConnectionPool(this);
}
@@ -585,6 +593,17 @@ namespace System.Data.ProviderBase {
get { return _connectionPoolProviderInfo; }
}
+ /// <summary>
+ /// Return the pooled authentication contexts.
+ /// </summary>
+ internal ConcurrentDictionary<DbConnectionPoolAuthenticationContextKey, DbConnectionPoolAuthenticationContext> AuthenticationContexts
+ {
+ get
+ {
+ return _pooledDbAuthenticationContexts;
+ }
+ }
+
internal bool UseLoadBalancing {
get { return PoolGroupOptions.UseLoadBalancing; }
}
@@ -1144,7 +1163,7 @@ namespace System.Data.ProviderBase {
return true;
}
else if (retry == null) {
- // timed out on a [....] call
+ // timed out on a sync call
return true;
}
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolAuthenticationContext.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolAuthenticationContext.cs
new file mode 100644
index 00000000000..8c454671474
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolAuthenticationContext.cs
@@ -0,0 +1,108 @@
+//------------------------------------------------------------------------------
+// <copyright file="DbConnectionPoolAuthenticationContext.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">harsudan</owner>
+// <owner current="true" primary="false">yuronhe</owner>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Runtime.ConstrainedExecution;
+using System.Threading;
+
+namespace System.Data.ProviderBase
+{
+ /// <summary>
+ /// Represents the context of an authentication attempt when using the new active directory based authentication mechanisms.
+ /// All data members, except_isUpdateInProgressCounter, should be immutable.
+ /// </summary>
+ sealed internal class DbConnectionPoolAuthenticationContext
+ {
+ /// <summary>
+ /// The value expected in _isUpdateInProgress if a thread has taken a lock on this context,
+ /// to perform the update on the context.
+ /// </summary>
+ private const int STATUS_LOCKED = 1;
+
+ /// <summary>
+ /// The value expected in _isUpdateInProgress if no thread has taken a lock on this context.
+ /// </summary>
+ private const int STATUS_UNLOCKED = 0;
+
+ /// <summary>
+ /// Access Token, which is obtained from Active Directory Authentication Library for SQL Server, and needs to be sent to SQL Server
+ /// as part of TDS Token type Federated Authentication Token.
+ /// </summary>
+ private readonly byte[] _accessToken;
+
+ /// <summary>
+ /// Expiration time of the above access token.
+ /// </summary>
+ private readonly DateTime _expirationTime;
+
+ /// <summary>
+ /// A member which is used to achieve a lock to control refresh attempt on this context.
+ /// </summary>
+ private int _isUpdateInProgress;
+
+ /// <summary>
+ /// Constructor.
+ /// </summary>
+ /// <param name="accessToken">Access Token that will be used to connect to SQL Server. Carries identity information about a user.</param>
+ /// <param name="expirationTime">The expiration time in UTC for the above accessToken.</param>
+ internal DbConnectionPoolAuthenticationContext(byte[] accessToken, DateTime expirationTime) {
+
+ Debug.Assert(accessToken != null && accessToken.Length > 0);
+ Debug.Assert(expirationTime > DateTime.MinValue && expirationTime < DateTime.MaxValue);
+
+ _accessToken = accessToken;
+ _expirationTime = expirationTime;
+ _isUpdateInProgress = STATUS_UNLOCKED;
+ }
+
+ /// <summary>
+ /// Static Method.
+ /// Given two contexts, choose one to update in the cache. Chooses based on expiration time.
+ /// </summary>
+ /// <param name="context1">Context1</param>
+ /// <param name="context2">Context2</param>
+ internal static DbConnectionPoolAuthenticationContext ChooseAuthenticationContextToUpdate(DbConnectionPoolAuthenticationContext context1, DbConnectionPoolAuthenticationContext context2) {
+
+ Debug.Assert(context1 != null, "context1 should not be null.");
+ Debug.Assert(context2 != null, "context2 should not be null.");
+
+ return context1.ExpirationTime > context2.ExpirationTime ? context1 : context2;
+ }
+
+ internal byte[] AccessToken {
+ get {
+ return _accessToken;
+ }
+ }
+
+ internal DateTime ExpirationTime {
+ get {
+ return _expirationTime;
+ }
+ }
+
+ /// <summary>
+ /// Try locking the variable _isUpdateInProgressCounter and return if this thread got the lock to update.
+ /// Whichever thread got the chance to update this variable to 1 wins the lock.
+ /// </summary>
+ internal bool LockToUpdate() {
+ int oldValue = Interlocked.CompareExchange(ref _isUpdateInProgress, STATUS_LOCKED, STATUS_UNLOCKED);
+ return (oldValue == STATUS_UNLOCKED);
+ }
+
+ /// <summary>
+ /// Release the lock which was obtained through LockToUpdate.
+ /// </summary>
+ [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+ internal void ReleaseLockToUpdate() {
+ int oldValue = Interlocked.CompareExchange(ref _isUpdateInProgress, STATUS_UNLOCKED, STATUS_LOCKED);
+ Debug.Assert(oldValue == STATUS_LOCKED);
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolAuthenticationContextKey.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolAuthenticationContextKey.cs
new file mode 100644
index 00000000000..df54873105b
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolAuthenticationContextKey.cs
@@ -0,0 +1,106 @@
+//------------------------------------------------------------------------------
+// <copyright file="DbConnectionPoolAuthenticationContextKey.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">harsudan</owner>
+// <owner current="true" primary="false">yuronhe</owner>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+
+namespace System.Data.ProviderBase
+{
+ /// <summary>
+ /// Represents the key of dbConnectionPoolAuthenticationContext.
+ /// All data members should be immutable and so, hashCode is pre-computed.
+ /// </summary>
+ sealed internal class DbConnectionPoolAuthenticationContextKey
+ {
+ /// <summary>
+ /// Security Token Service Authority.
+ /// </summary>
+ private readonly string _stsAuthority;
+
+ /// <summary>
+ /// Service Principal Name.
+ /// </summary>
+ private readonly string _servicePrincipalName;
+
+ /// <summary>
+ /// Pre-Computed Hash Code.
+ /// </summary>
+ private readonly int _hashCode;
+
+ internal string StsAuthority {
+ get {
+ return _stsAuthority;
+ }
+ }
+
+ internal string ServicePrincipalName {
+ get {
+ return _servicePrincipalName;
+ }
+ }
+
+ /// <summary>
+ /// Constructor for the type.
+ /// </summary>
+ /// <param name="stsAuthority">Token Endpoint URL</param>
+ /// <param name="servicePrincipalName">SPN representing the SQL service in an active directory.</param>
+ internal DbConnectionPoolAuthenticationContextKey(string stsAuthority, string servicePrincipalName) {
+ Debug.Assert(!string.IsNullOrWhiteSpace(stsAuthority));
+ Debug.Assert(!string.IsNullOrWhiteSpace(servicePrincipalName));
+
+ _stsAuthority = stsAuthority;
+ _servicePrincipalName = servicePrincipalName;
+
+ // Pre-compute hash since data members are not going to change.
+ _hashCode = ComputeHashCode();
+ }
+
+ /// <summary>
+ /// Override the default Equals implementation.
+ /// </summary>
+ /// <param name="obj"></param>
+ /// <returns></returns>
+ public override bool Equals(object obj) {
+ if (obj == null) {
+ return false;
+ }
+
+ DbConnectionPoolAuthenticationContextKey otherKey = obj as DbConnectionPoolAuthenticationContextKey;
+ if (otherKey == null) {
+ return false;
+ }
+
+ return (String.Equals(StsAuthority, otherKey.StsAuthority, StringComparison.InvariantCultureIgnoreCase)
+ && String.Equals(ServicePrincipalName, otherKey.ServicePrincipalName, StringComparison.InvariantCultureIgnoreCase));
+ }
+
+ /// <summary>
+ /// Override the default GetHashCode implementation.
+ /// </summary>
+ /// <returns></returns>
+ public override int GetHashCode() {
+ return _hashCode;
+ }
+
+ /// <summary>
+ /// Compute the hash code for this object.
+ /// </summary>
+ /// <returns></returns>
+ private int ComputeHashCode() {
+ int hashCode = 33;
+
+ unchecked
+ {
+ hashCode = (hashCode * 17) + StsAuthority.GetHashCode();
+ hashCode = (hashCode * 17) + ServicePrincipalName.GetHashCode();
+ }
+
+ return hashCode;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolCounters.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolCounters.cs
index 03ab70dbe1c..e0484c2f89b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolCounters.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolCounters.cs
@@ -2,7 +2,7 @@
// <copyright file="DbConnectionPoolCounters.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolGroup.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolGroup.cs
index 91fb7aacb90..126ced9adea 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolGroup.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolGroup.cs
@@ -2,7 +2,7 @@
// <copyright file="DbConnectionPoolGroup.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolGroupProviderInfo.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolGroupProviderInfo.cs
index 32a8ebfb298..dfd1796b93e 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolGroupProviderInfo.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolGroupProviderInfo.cs
@@ -2,8 +2,8 @@
// <copyright file="DbConnectionPoolGroupProviderInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolIdentity.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolIdentity.cs
index 846ff67f2c2..b7876128be1 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolIdentity.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolIdentity.cs
@@ -2,7 +2,7 @@
// <copyright file="DbConnectionPoolIdentity.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolOptions.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolOptions.cs
index fa3f82e553a..33610b61804 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolOptions.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolOptions.cs
@@ -2,7 +2,7 @@
// <copyright file="DbConnectionPoolGroupOptions.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolProviderInfo.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolProviderInfo.cs
index 4442daefb15..401f442e768 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolProviderInfo.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbConnectionPoolProviderInfo.cs
@@ -2,7 +2,7 @@
// <copyright file="DbConnectionPoolProviderInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">stevesta</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbMetaDataCollectionNames.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbMetaDataCollectionNames.cs
index 2408d5f4a36..118800f7cf7 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbMetaDataCollectionNames.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbMetaDataCollectionNames.cs
@@ -2,8 +2,8 @@
// <copyright file="DbMetaDataCollectionNames.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbMetaDataColumnNames.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbMetaDataColumnNames.cs
index c8237455efd..6d12c91692d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbMetaDataColumnNames.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbMetaDataColumnNames.cs
@@ -2,8 +2,8 @@
// <copyright file="DbMetaDataColumnNames.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Common {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbMetaDataFactory.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbMetaDataFactory.cs
index 5267928dd0d..67025f4b56f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbMetaDataFactory.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbMetaDataFactory.cs
@@ -2,8 +2,8 @@
// <copyright file="dbmetadatafactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbParameterCollectionHelper.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbParameterCollectionHelper.cs
index 33266444b1b..d28d3414eff 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbParameterCollectionHelper.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbParameterCollectionHelper.cs
@@ -2,7 +2,7 @@
// <copyright file="DbParameterCollectionBase.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace NAMESPACE
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbParameterHelper.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbParameterHelper.cs
index 7efd67b6a33..b968d12dc69 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbParameterHelper.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbParameterHelper.cs
@@ -2,7 +2,7 @@
// <copyright file="DbParameterHelper.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace NAMESPACE {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbReferenceCollection.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbReferenceCollection.cs
index 8a1baeec7cf..1f55090b42a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbReferenceCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/DbReferenceCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="DbReferenceCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/SchemaMapping.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/SchemaMapping.cs
index 9c0e435130b..0118a9a644e 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/SchemaMapping.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/SchemaMapping.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaMapping.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase {
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/TimeoutTimer.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/TimeoutTimer.cs
index 8c89bab8e4b..24172d3bdae 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/TimeoutTimer.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/TimeoutTimer.cs
@@ -5,8 +5,8 @@
//
// Class used to manage timeouts in complex system operations.
//
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase
diff --git a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/WrappedIUnknown.cs b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/WrappedIUnknown.cs
index c1501a0d289..2fdb4797888 100644
--- a/mcs/class/referencesource/System.Data/System/Data/ProviderBase/WrappedIUnknown.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/ProviderBase/WrappedIUnknown.cs
@@ -2,8 +2,8 @@
// <copyright file="WrappedIUnknown.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.ProviderBase {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Range.cs b/mcs/class/referencesource/System.Data/System/Data/Range.cs
index 790bf3055f3..6c3ea0a9c21 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Range.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Range.cs
@@ -2,9 +2,9 @@
// <copyright file="Range.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/RbTree.cs b/mcs/class/referencesource/System.Data/System/Data/RbTree.cs
index 4048974b984..57ab5bfa1ee 100644
--- a/mcs/class/referencesource/System.Data/System/Data/RbTree.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/RbTree.cs
@@ -2,8 +2,8 @@
// <copyright file="Selection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
#if DEBUG
diff --git a/mcs/class/referencesource/System.Data/System/Data/RecordManager.cs b/mcs/class/referencesource/System.Data/System/Data/RecordManager.cs
index 106bfafe054..608f79c6f9d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/RecordManager.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/RecordManager.cs
@@ -2,8 +2,8 @@
// <copyright file="RecordManager.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/RecordsAffectedEventArgs.cs b/mcs/class/referencesource/System.Data/System/Data/RecordsAffectedEventArgs.cs
index 9f2c8aef1ab..82322d9618a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/RecordsAffectedEventArgs.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/RecordsAffectedEventArgs.cs
@@ -2,8 +2,8 @@
// <copyright file="StatementCompletedEventArgs.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/RecordsAffectedEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/RecordsAffectedEventHandler.cs
index 9b85c51f5e0..1c4dbd88ac8 100644
--- a/mcs/class/referencesource/System.Data/System/Data/RecordsAffectedEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/RecordsAffectedEventHandler.cs
@@ -2,8 +2,8 @@
// <copyright file="StatementCompletedEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/RelatedView.cs b/mcs/class/referencesource/System.Data/System/Data/RelatedView.cs
index 7493a8b56ae..e1aed175ae1 100644
--- a/mcs/class/referencesource/System.Data/System/Data/RelatedView.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/RelatedView.cs
@@ -2,8 +2,8 @@
// <copyright file="RelatedView.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/RelationshipConverter.cs b/mcs/class/referencesource/System.Data/System/Data/RelationshipConverter.cs
index dbddce219e3..2fec1c69e26 100644
--- a/mcs/class/referencesource/System.Data/System/Data/RelationshipConverter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/RelationshipConverter.cs
@@ -2,9 +2,9 @@
// <copyright file="RelationshipConverter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Rule.cs b/mcs/class/referencesource/System.Data/System/Data/Rule.cs
index 80354735c99..c864ccbd4fe 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Rule.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Rule.cs
@@ -3,9 +3,9 @@
// <copyright file="Rule.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/INullable.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/INullable.cs
index 2dd6ed41038..52e1d1f8e50 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/INullable.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/INullable.cs
@@ -2,8 +2,8 @@
// <copyright file="SQLUtility.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">blained</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlTypes {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLBinary.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLBinary.cs
index 114fd109a6e..e9df08a601d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLBinary.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLBinary.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLBoolean.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLBoolean.cs
index 300eb2914f0..21f2b3df4da 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLBoolean.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLBoolean.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLByte.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLByte.cs
index f72b2e84388..bf0be8953b1 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLByte.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLByte.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLBytes.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLBytes.cs
index 1c7dd76f46f..c8bf25e0af9 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLBytes.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLBytes.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
@@ -29,17 +29,17 @@
// 112296 AZA 07/06/02 Seal SqlAccess classes.
// 107151 AZA 04/18/02 Track byte array buffer as well as SqlBytes in
// sqlaccess.
-// 107216 JXF 04/17/02 Bug 514927
-// 106854 JXF 04/15/02 Fix http suites due to SqlChars
-// 106448 JXF 04/12/02 Bugs on sqlchars
-// 106242 JXF 04/09/02 Bugs on SqlBytes/SqlChars
-// 105715 JXF 04/05/02 Handle NULL properly in SqlBytes.SetLength
-// 91128 JXF 10/17/01 Make SqlBytes not unsafe
-//
-// 04/20/01 JunFang Created.
-//
-// @EndHeader@
-//**************************************************************************
+// 107216 JXF 04/17/02
+
+
+
+
+
+
+
+
+
+
namespace System.Data.SqlTypes {
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLChars.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLChars.cs
index 0bd0bd5d0f8..4fc5106f14c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLChars.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLChars.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
@@ -28,16 +28,16 @@
// 112296 AZA 07/06/02 Seal SqlAccess classes.
// 107151 AZA 04/18/02 Track byte array buffer as well as SqlBytes in
// sqlaccess.
-// 107216 JXF 04/17/02 Bug 514927
-// 106854 JXF 04/15/02 Fix http suites due to SqlChars
-// 106448 JXF 04/12/02 Bugs on sqlchars
-// 105715 JXF 04/05/02 Handle NULL properly in SqlBytes.SetLength
-// 91128 JXF 10/17/01 Make SqlBytes not unsafe
-//
-// 04/20/01 JunFang Created.
-//
-// @EndHeader@
-//**************************************************************************
+// 107216 JXF 04/17/02
+
+
+
+
+
+
+
+
+
namespace System.Data.SqlTypes {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLDateTime.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLDateTime.cs
index 6217081b98f..32695a2d2b3 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLDateTime.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLDateTime.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
@@ -198,9 +198,9 @@ namespace System.Data.SqlTypes {
// ISSUE: Is this code reachable? For this code to be reached there
// must be a value for dblVal such that:
// dblVal - (long)dblVal = 1.0
- // This seems odd, but there was a bug (51261) that resulted because
- // there was a negative value for dblVal such that dblVal + 1.0 = 1.0
- //
+ // This seems odd, but there was a
+
+
day ++;
time -= SQLTicksPerDay;
}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLDecimal.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLDecimal.cs
index a992e479ef8..29c4f869a8b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLDecimal.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLDecimal.cs
@@ -3,9 +3,9 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLDouble.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLDouble.cs
index 3aace9925ae..5e25a2fc0ce 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLDouble.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLDouble.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLFileStream.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLFileStream.cs
index 05bb96edc14..c9c4c29df33 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLFileStream.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLFileStream.cs
@@ -2,9 +2,9 @@
// <copyright file="SqlFileStream.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
@@ -550,8 +550,8 @@ namespace System.Data.SqlTypes
if (pathTooLong)
{
// SQLBUVSTS bugs 192677 and 203422: currently, FileIOPermission does not support path longer than MAX_PATH (260)
- // so we cannot demand permissions for long files. We are going to open bug for FileIOPermission to
- // support this.
+ // so we cannot demand permissions for long files. We are going to open
+
// In the meanwhile, we agreed to have try-catch block on the permission demand instead of checking the path length.
// This way, if/when the 260-chars limitation is fixed in FileIOPermission, we will not need to change our code
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLGuid.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLGuid.cs
index 46e62e8440b..5db792cd77c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLGuid.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLGuid.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLInt16.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLInt16.cs
index 276862274cf..c4eb46df412 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLInt16.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLInt16.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLInt32.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLInt32.cs
index 70667a2d6f7..01ace91dc5f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLInt32.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLInt32.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLInt64.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLInt64.cs
index 523433c9b8b..31b03d70469 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLInt64.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLInt64.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLMoney.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLMoney.cs
index e64f46118b1..37ad68576a7 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLMoney.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLMoney.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLResource.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLResource.cs
index 679bc8ff87a..3ce29437d2f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLResource.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLResource.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLSingle.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLSingle.cs
index 5e7aa686959..124a7fe13e6 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLSingle.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLSingle.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLString.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLString.cs
index 4bc110c4c53..be82ca4779d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLString.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLString.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLUtility.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLUtility.cs
index 5a8e648115d..253b85477f1 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLUtility.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SQLUtility.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SqlCharStream.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SqlCharStream.cs
index 3d77065fc84..e270bc00b86 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SqlCharStream.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SqlCharStream.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SqlTypesSchemaImporter.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SqlTypesSchemaImporter.cs
index 0d65de3b205..6b390b537ed 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SqlTypesSchemaImporter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SqlTypesSchemaImporter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">dondu</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SqlXml.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SqlXml.cs
index d05ed2c80a2..9509cd62514 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SqlXml.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/SqlXml.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlXmlReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//**************************************************************************
@@ -114,8 +114,8 @@ namespace System.Data.SqlTypes
try {
return sqlReaderDelegate(stream, settingsToUse, null);
}
- // Dev11 Bug #315513: Exception type breaking change from 4.0 RTM when calling GetChars on null xml
- // For particular callers, we need to wrap all exceptions inside a TargetInvocationException to simulate calling CreateSqlReader via MethodInfo.Invoke
+ // Dev11
+
catch (Exception ex) {
if ((!throwTargetInvocationExceptions) || (!ADP.IsCatchableExceptionType(ex))) {
throw;
@@ -244,9 +244,9 @@ namespace System.Data.SqlTypes
}
else
{
- // VSTFDevDiv Bug 197567 - [SqlXml Column Read from SQL Server 2005 Fails to XML Serialize (writes raw binary)]
- // Instead of the WriteRaw use the WriteNode. As Tds sends a binary stream - Create a XmlReader to convert
- // get the Xml string value from the binary and call WriteNode to pass that out to the XmlWriter.
+ // VSTFDevDiv
+
+
XmlReader reader = this.CreateReader();
if (reader.ReadState == ReadState.Initial)
reader.Read();
diff --git a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/UnsafeNativeMethods.cs b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/UnsafeNativeMethods.cs
index c1639481477..7c847edace3 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SQLTypes/UnsafeNativeMethods.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SQLTypes/UnsafeNativeMethods.cs
@@ -2,9 +2,9 @@
// <copyright file="SafeNativeMethods.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/SchemaSerializationMode.cs b/mcs/class/referencesource/System.Data/System/Data/SchemaSerializationMode.cs
index 75fe72fec32..21721b7882a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SchemaSerializationMode.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SchemaSerializationMode.cs
@@ -2,8 +2,8 @@
// <copyright file="SchemaSerializationMode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SchemaType.cs b/mcs/class/referencesource/System.Data/System/Data/SchemaType.cs
index 9626eb89108..c8885df644b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SchemaType.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SchemaType.cs
@@ -2,8 +2,8 @@
// <copyright file="SchemaType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Select.cs b/mcs/class/referencesource/System.Data/System/Data/Select.cs
index afac088726e..f9c8b70667f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Select.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Select.cs
@@ -2,9 +2,9 @@
// <copyright file="Select.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -52,7 +52,7 @@ namespace System.Data {
return ((op >= Operators.EqualTo && op <= Operators.LessOrEqual) || op == Operators.Is || op == Operators.IsNot);
}
- // [....] : Gathers all linear expressions in to this.linearExpression and all binary expressions in to their respective candidate columns expressions
+ // Microsoft : Gathers all linear expressions in to this.linearExpression and all binary expressions in to their respective candidate columns expressions
private void AnalyzeExpression(BinaryNode expr) {
if (this.linearExpression == this.expression)
return;
@@ -355,7 +355,7 @@ namespace System.Data {
matchedCandidates = 0;
if (this.linearExpression != this.expression) {
IndexField[] fields = index.IndexFields;
- while (matchedCandidates < j) { // [....] : j = index.IndexDesc.Length
+ while (matchedCandidates < j) { // Microsoft : j = index.IndexDesc.Length
ColumnInfo canColumn = candidateColumns[fields[matchedCandidates].Column.Ordinal];
if (canColumn == null || canColumn.expr == null)
break;
@@ -417,7 +417,7 @@ namespace System.Data {
}
}
}
-// Debug.Assert(this.linearExpression != null, "BuildLinearExpression : How come there is nothing to search linearly"); bug 97446
+// Debug.Assert(this.linearExpression != null, "BuildLinearExpression : How come there is nothing to search linearly");
}
public DataRow[] SelectRows() {
@@ -459,7 +459,7 @@ namespace System.Data {
return table.NewRowArray(0);
Range range;
- if (matchedCandidates == 0) { // [....] : Either dont have rowFilter or only linear search expression
+ if (matchedCandidates == 0) { // Microsoft : Either dont have rowFilter or only linear search expression
range = new Range(0, index.RecordCount-1);
Debug.Assert(!needSorting, "What are we doing here if no real reuse of this index ?");
this.linearExpression = this.expression;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Selection.cs b/mcs/class/referencesource/System.Data/System/Data/Selection.cs
index 6ef2dd1eaba..0250a6a1ef4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Selection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Selection.cs
@@ -2,8 +2,8 @@
// <copyright file="Selection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -855,7 +855,7 @@ namespace System.Data {
OnListChanged(ListChangedType.ItemAdded, newIndex, oldIndex);
}
else if (newIndex == -1) { // its deleted
- // Do not fix this. see bug Bug 271076 for explanation.
+ // Do not fix this. see
OnListChanged(ListChangedType.ItemDeleted, oldIndex);
}
else {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SimpleType.cs b/mcs/class/referencesource/System.Data/System/Data/SimpleType.cs
index 13ecfc5b7fe..e5840ccaed3 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SimpleType.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SimpleType.cs
@@ -2,9 +2,9 @@
// <copyright file="SimpleType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -38,7 +38,7 @@ namespace System.Data {
string maxInclusive = "";
string minExclusive = "";
string minInclusive = "";
- //REMOVED: encoding due to [....] 2001 XDS changes
+ //REMOVED: encoding due to Microsoft 2001 XDS changes
//
internal string enumeration = "";
@@ -267,7 +267,7 @@ namespace System.Data {
type.SetAttribute(Keywords.BASE, baseSimpleType.Name);
}
}
- else { // [....]
+ else { // Microsoft
type.SetAttribute(Keywords.BASE, baseSimpleType.Name);
}
}
@@ -290,48 +290,48 @@ namespace System.Data {
constraint.SetAttribute(Keywords.VALUE, maxLength.ToString(CultureInfo.InvariantCulture));
type.AppendChild(constraint);
}
-/* // removed due to MDAC bug 83892
- // will be reactivated in whidbey with the proper handling
- if (pattern != null && pattern.Length > 0) {
- constraint = dc.CreateElement(Keywords.XSD_PREFIX, Keywords.XSD_PATTERN, Keywords.XSDNS);
- constraint.SetAttribute(Keywords.VALUE, pattern);
- type.AppendChild(constraint);
- }
- if (minLength >= 0) {
- constraint = dc.CreateElement(Keywords.XSD_PREFIX, Keywords.XSD_MINLENGTH, Keywords.XSDNS);
- constraint.SetAttribute(Keywords.VALUE, minLength.ToString());
- type.AppendChild(constraint);
- }
- if (minInclusive != null && minInclusive.Length > 0) {
- constraint = dc.CreateElement(Keywords.XSD_PREFIX, Keywords.XSD_MININCLUSIVE, Keywords.XSDNS);
- constraint.SetAttribute(Keywords.VALUE, minInclusive);
- type.AppendChild(constraint);
- }
- if (minExclusive != null && minExclusive.Length > 0) {
- constraint =dc.CreateElement(Keywords.XSD_PREFIX, Keywords.XSD_MINEXCLUSIVE, Keywords.XSDNS);
- constraint.SetAttribute(Keywords.VALUE, minExclusive);
- type.AppendChild(constraint);
- }
- if (maxInclusive != null && maxInclusive.Length > 0) {
- constraint =dc.CreateElement(Keywords.XSD_PREFIX, Keywords.XSD_MAXINCLUSIVE, Keywords.XSDNS);
- constraint.SetAttribute(Keywords.VALUE, maxInclusive);
- type.AppendChild(constraint);
- }
- if (maxExclusive != null && maxExclusive.Length > 0) {
- constraint = dc.CreateElement(Keywords.XSD_PREFIX, Keywords.XSD_MAXEXCLUSIVE, Keywords.XSDNS);
- constraint.SetAttribute(Keywords.VALUE, maxExclusive);
- type.AppendChild(constraint);
- }
- if (enumeration.Length > 0) {
- string[] list = enumeration.TrimEnd(null).Split(null);
+/* // removed due to MDAC
- for (int i = 0; i < list.Length; i++) {
- constraint = dc.CreateElement(Keywords.XSD_PREFIX, Keywords.XSD_ENUMERATION, Keywords.XSDNS);
- constraint.SetAttribute(Keywords.VALUE, list[i]);
- type.AppendChild(constraint);
- }
- }
- */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+*/
typeNode.AppendChild(type);
return typeNode;
}
diff --git a/mcs/class/referencesource/System.Data/System/Data/Sql/IBinarySerialize.cs b/mcs/class/referencesource/System.Data/System/Data/Sql/IBinarySerialize.cs
index 5947203b4c1..61884484a86 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Sql/IBinarySerialize.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Sql/IBinarySerialize.cs
@@ -3,12 +3,12 @@
// Copyright (c) Microsoft Corporation. All Rights Reserved.
// Information Contained Herein is Proprietary and Confidential.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">alazela</owner>
+// <owner current="true" primary="true">blained</owner>
// <owner current="true" primary="true">daltudov</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">stevesta</owner>
// <owner current="true" primary="false">beysims</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">laled</owner>
// <owner current="true" primary="false">vadimt</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlDataSourceEnumerator.cs b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlDataSourceEnumerator.cs
index d603b38fdcb..c6b7d92765d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlDataSourceEnumerator.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlDataSourceEnumerator.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlDataSourceEnumerator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Sql {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlFacetAttribute.cs b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlFacetAttribute.cs
index 7b56e9852c1..0d3fc92f46b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlFacetAttribute.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlFacetAttribute.cs
@@ -3,12 +3,12 @@
// Copyright (c) Microsoft Corporation. All Rights Reserved.
// Information Contained Herein is Proprietary and Confidential.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="true">daltudov</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">beysims</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
// <owner current="true" primary="false">vadimt</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlFunctionAttribute.cs b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlFunctionAttribute.cs
index b1af7c80738..c11a8f4caf0 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlFunctionAttribute.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlFunctionAttribute.cs
@@ -3,12 +3,12 @@
// Copyright (c) Microsoft Corporation. All Rights Reserved.
// Information Contained Herein is Proprietary and Confidential.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="true">daltudov</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">beysims</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
// <owner current="true" primary="false">vadimt</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlGenericUtil.cs b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlGenericUtil.cs
index db01b7ad5dd..e5a3b390726 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlGenericUtil.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlGenericUtil.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlGenericUtil.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Sql {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlMetaData.cs b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlMetaData.cs
index d17f8b723ab..fc3b3a7dc0f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlMetaData.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlMetaData.cs
@@ -2,9 +2,9 @@
// <copyright file="SqlMetaData.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
@@ -1621,7 +1621,7 @@ namespace Microsoft.SqlServer.Server {
new SqlMetaData("nvarchar", SqlDbType.NVarChar,
x_lServerMaxUnicode, 0, 0, 0, x_eDefaultStringCompareOptions, false), // Placeholder for value 28
new SqlMetaData("udt", SqlDbType.Udt,
- 0, 0, 0, 0, SqlCompareOptions.None, false), // SqlDbType.Udt = 29 Bug Fix: 302698
+ 0, 0, 0, 0, SqlCompareOptions.None, false), // SqlDbType.Udt = 29
new SqlMetaData("table", SqlDbType.Structured,
0, 0, 0, 0, SqlCompareOptions.None, false), // SqlDbType.Structured
new SqlMetaData("date", SqlDbType.Date,
diff --git a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlMethodAttribute.cs b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlMethodAttribute.cs
index 66eee2f72e2..3203b1748c5 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlMethodAttribute.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlMethodAttribute.cs
@@ -3,13 +3,13 @@
// Copyright (c) Microsoft Corporation. All Rights Reserved.
// Information Contained Herein is Proprietary and Confidential.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="true">daltudov</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">beysims</owner>
// <owner current="true" primary="false">junfang</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
// <owner current="true" primary="false">vadimt</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlNotificationRequest.cs b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlNotificationRequest.cs
index 9b5149d529a..986d8f5d6d3 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlNotificationRequest.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlNotificationRequest.cs
@@ -2,9 +2,9 @@
// <copyright file="SqlNotificationRequest.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.Sql {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlProcedureAttribute.cs b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlProcedureAttribute.cs
index 8f28089cbec..c88caeaeaa7 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlProcedureAttribute.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlProcedureAttribute.cs
@@ -3,12 +3,12 @@
// Copyright (c) Microsoft Corporation. All Rights Reserved.
// Information Contained Herein is Proprietary and Confidential.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="true">daltudov</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">beysims</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
// <owner current="true" primary="false">vadimt</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlTriggerAttribute.cs b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlTriggerAttribute.cs
index dbb72b83d23..303687749f4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlTriggerAttribute.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlTriggerAttribute.cs
@@ -3,12 +3,12 @@
// Copyright (c) Microsoft Corporation. All Rights Reserved.
// Information Contained Herein is Proprietary and Confidential.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="true">daltudov</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">beysims</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
// <owner current="true" primary="false">vadimt</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlUserDefinedAggregateAttribute.cs b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlUserDefinedAggregateAttribute.cs
index 56ba4a976c2..f7c1307fd50 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlUserDefinedAggregateAttribute.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlUserDefinedAggregateAttribute.cs
@@ -3,15 +3,15 @@
// Copyright (c) Microsoft Corporation. All Rights Reserved.
// Information Contained Herein is Proprietary and Confidential.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="true">daltudov</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">beysims</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
// <owner current="true" primary="false">vadimt</owner>
// <owner current="false" primary="false">venkar</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlUserDefinedTypeAttribute.cs b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlUserDefinedTypeAttribute.cs
index 2684b82feff..8dddb2200cb 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Sql/SqlUserDefinedTypeAttribute.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Sql/SqlUserDefinedTypeAttribute.cs
@@ -3,15 +3,15 @@
// Copyright (c) Microsoft Corporation. All Rights Reserved.
// Information Contained Herein is Proprietary and Confidential.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="true">daltudov</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">beysims</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
// <owner current="true" primary="false">vadimt</owner>
// <owner current="false" primary="false">venkar</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Sql/TriggerAction.cs b/mcs/class/referencesource/System.Data/System/Data/Sql/TriggerAction.cs
index 0c72b6ea792..7b0ff803b41 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Sql/TriggerAction.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Sql/TriggerAction.cs
@@ -2,12 +2,12 @@
// <copyright file="TriggerAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">alazela</owner>
+// <owner current="true" primary="true">blained</owner>
// <owner current="true" primary="true">daltudov</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">stevesta</owner>
// <owner current="true" primary="false">beysims</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">laled</owner>
// <owner current="true" primary="false">vadimt</owner>
//------------------------------------------------------------------------------
@@ -111,7 +111,7 @@ namespace Microsoft.SqlServer.Server {
// 1000 - 1999 is reserved for SQLTrace.
x_eet_Trace_Start = 1000,
x_eet_Trace_End = 1999,
- // WHEN ADDING, PLEASE
+ // WHEN ADDING, PLEASE CHECK WITH FILE-OWNER FOR WHICH NUMBERS TO USE. THANKS!
};
public enum TriggerAction {
diff --git a/mcs/class/referencesource/System.Data/System/Data/Sql/invalidudtexception.cs b/mcs/class/referencesource/System.Data/System/Data/Sql/invalidudtexception.cs
index 56efbc86f0f..527832fdb4f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Sql/invalidudtexception.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Sql/invalidudtexception.cs
@@ -2,8 +2,8 @@
// <copyright file="InvalidUdtException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/Sql/sqlnorm.cs b/mcs/class/referencesource/System.Data/System/Data/Sql/sqlnorm.cs
index 2be7f1237ab..e27d86b3f36 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Sql/sqlnorm.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Sql/sqlnorm.cs
@@ -3,14 +3,14 @@
// Copyright (c) Microsoft Corporation. All Rights Reserved.
// Information Contained Herein is Proprietary and Confidential.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="true">daltudov</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">beysims</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
// <owner current="true" primary="false">vadimt</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="false" primary="false">Microsoft</owner>
// <owner current="false" primary="false">venkar</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/Sql/sqlser.cs b/mcs/class/referencesource/System.Data/System/Data/Sql/sqlser.cs
index 579818e6ea3..e4a1cada184 100644
--- a/mcs/class/referencesource/System.Data/System/Data/Sql/sqlser.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/Sql/sqlser.cs
@@ -3,15 +3,15 @@
// Copyright (c) Microsoft Corporation. All Rights Reserved.
// Information Contained Herein is Proprietary and Confidential.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="true">daltudov</owner>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">beysims</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
// <owner current="true" primary="false">vadimt</owner>
// <owner current="false" primary="false">venkar</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/OnChangedEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/OnChangedEventHandler.cs
index f79cecdf903..ffd6bf3395a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/OnChangedEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/OnChangedEventHandler.cs
@@ -2,8 +2,8 @@
// <copyright file="OnChangedEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">ramp</owner>
+// <owner current="true" primary="false">blained</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/ParameterPeekAheadValue.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/ParameterPeekAheadValue.cs
index 79b4b96778c..ea460cf9081 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/ParameterPeekAheadValue.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/ParameterPeekAheadValue.cs
@@ -2,8 +2,8 @@
// <copyright file="ParameterPeekAheadValue.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">alazela</owner>
+// <owner current="true" primary="false">billin</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/RowsCopiedEventArgs.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/RowsCopiedEventArgs.cs
index 0a93882a2d9..cc294b15712 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/RowsCopiedEventArgs.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/RowsCopiedEventArgs.cs
@@ -2,8 +2,8 @@
// <copyright file="RowsCopiedEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/RowsCopiedEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/RowsCopiedEventHandler.cs
index c239d77e61d..b6d5adc503c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/RowsCopiedEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/RowsCopiedEventHandler.cs
@@ -2,8 +2,8 @@
// <copyright file="RowsCopiedEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">mithomas</owner>
+// <owner current="true" primary="false">blained</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SortOrder.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SortOrder.cs
index 2eeef117441..6c19e1cac55 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SortOrder.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SortOrder.cs
@@ -2,9 +2,9 @@
// <copyright file="SqlMetaData.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">alazela</owner>
+// <owner current="true" primary="false">laled</owner>
+// <owner current="true" primary="false">billin</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAeadAes256CbcHmac256Algorithm.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAeadAes256CbcHmac256Algorithm.cs
new file mode 100644
index 00000000000..6c6a016c1dd
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAeadAes256CbcHmac256Algorithm.cs
@@ -0,0 +1,406 @@
+//------------------------------------------------------------------------------
+// <copyright file="SqlAeadAes256CbcHmac256Algorithm.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">balnee</owner>
+// <owner current="true" primary="false">krishnib</owner>
+//------------------------------------------------------------------------------
+namespace System.Data.SqlClient
+{
+ using System;
+ using System.Collections.Concurrent;
+ using System.Collections.Generic;
+ using System.Data.SqlClient;
+ using System.Diagnostics;
+ using System.IO;
+ using System.Runtime.CompilerServices;
+ using System.Security.Cryptography;
+
+ /// <summary>
+ /// This class implements authenticated encryption algorithm with associated data as described in
+ /// http://tools.ietf.org/html/draft-mcgrew-aead-aes-cbc-hmac-sha2-05. More specifically this implements
+ /// AEAD_AES_256_CBC_HMAC_SHA256 algorithm.
+ /// </summary>
+ internal class SqlAeadAes256CbcHmac256Algorithm : SqlClientEncryptionAlgorithm
+ {
+ /// <summary>
+ /// Algorithm Name
+ /// </summary>
+ internal const string AlgorithmName = @"AEAD_AES_256_CBC_HMAC_SHA256";
+
+ /// <summary>
+ /// Key size in bytes
+ /// </summary>
+ private const int _KeySizeInBytes = SqlAeadAes256CbcHmac256EncryptionKey.KeySize / 8;
+
+ /// <summary>
+ /// Block size in bytes. AES uses 16 byte blocks.
+ /// </summary>
+ private const int _BlockSizeInBytes = 16;
+
+ /// <summary>
+ /// Minimum Length of cipherText without authentication tag. This value is 1 (version byte) + 16 (IV) + 16 (minimum of 1 block of cipher Text)
+ /// </summary>
+ private const int _MinimumCipherTextLengthInBytesNoAuthenticationTag = sizeof(byte) + _BlockSizeInBytes + _BlockSizeInBytes;
+
+ /// <summary>
+ /// Minimum Length of cipherText. This value is 1 (version byte) + 32 (authentication tag) + 16 (IV) + 16 (minimum of 1 block of cipher Text)
+ /// </summary>
+ private const int _MinimumCipherTextLengthInBytesWithAuthenticationTag = _MinimumCipherTextLengthInBytesNoAuthenticationTag + _KeySizeInBytes;
+
+ /// <summary>
+ /// Cipher Mode. For this algorithm, we only use CBC mode.
+ /// </summary>
+ private const CipherMode _cipherMode = CipherMode.CBC;
+
+ /// <summary>
+ /// Padding mode. This algorithm uses PKCS7.
+ /// </summary>
+ private const PaddingMode _paddingMode = PaddingMode.PKCS7;
+
+ /// <summary>
+ /// Variable indicating whether this algorithm should work in Deterministic mode or Randomized mode.
+ /// For deterministic encryption, we derive an IV from the plaintext data.
+ /// For randomized encryption, we generate a cryptographically random IV.
+ /// </summary>
+ private readonly bool _isDeterministic;
+
+ /// <summary>
+ /// Algorithm Version.
+ /// </summary>
+ private readonly byte _algorithmVersion;
+
+ /// <summary>
+ /// Column Encryption Key. This has a root key and three derived keys.
+ /// </summary>
+ private readonly SqlAeadAes256CbcHmac256EncryptionKey _columnEncryptionKey;
+
+ /// <summary>
+ /// The pool of crypto providers to use for encrypt/decrypt operations.
+ /// </summary>
+ private readonly ConcurrentQueue<AesCryptoServiceProvider> _cryptoProviderPool;
+
+ /// <summary>
+ /// Byte array with algorithm version used for authentication tag computation.
+ /// </summary>
+ private static readonly byte[] _version = new byte[] {0x01};
+
+ /// <summary>
+ /// Byte array with algorithm version size used for authentication tag computation.
+ /// </summary>
+ private static readonly byte[] _versionSize = new byte[] {sizeof(byte)};
+
+ /// <summary>
+ /// Initializes a new instance of SqlAeadAes256CbcHmac256Algorithm algorithm with a given key and encryption type
+ /// </summary>
+ /// <param name="encryptionKey">
+ /// Root encryption key from which three other keys will be derived
+ /// </param>
+ /// <param name="encryptionType">Encryption Type, accepted values are Deterministic and Randomized.
+ /// For Deterministic encryption, a synthetic IV will be genenrated during encryption
+ /// For Randomized encryption, a random IV will be generated during encryption.
+ /// </param>
+ /// <param name="algorithmVersion">
+ /// Algorithm version
+ /// </param>
+ internal SqlAeadAes256CbcHmac256Algorithm(SqlAeadAes256CbcHmac256EncryptionKey encryptionKey, SqlClientEncryptionType encryptionType, byte algorithmVersion) {
+ _columnEncryptionKey = encryptionKey;
+ _algorithmVersion = algorithmVersion;
+ _version[0] = algorithmVersion;
+
+ Debug.Assert (null != encryptionKey, "Null encryption key detected in AeadAes256CbcHmac256 algorithm");
+ Debug.Assert (0x01 == algorithmVersion, "Unknown algorithm version passed to AeadAes256CbcHmac256");
+
+ // Validate encryption type for this algorithm
+ // This algorithm can only provide randomized or deterministic encryption types.
+ if (encryptionType == SqlClientEncryptionType.Deterministic) {
+ _isDeterministic = true;
+ }
+ else {
+ Debug.Assert (SqlClientEncryptionType.Randomized == encryptionType, "Invalid Encryption Type detected in SqlAeadAes256CbcHmac256Algorithm, this should've been caught in factory class");
+ }
+
+ _cryptoProviderPool = new ConcurrentQueue<AesCryptoServiceProvider>();
+ }
+
+ /// <summary>
+ /// Encryption Algorithm
+ /// cell_iv = HMAC_SHA-2-256(iv_key, cell_data) truncated to 128 bits
+ /// cell_ciphertext = AES-CBC-256(enc_key, cell_iv, cell_data) with PKCS7 padding.
+ /// cell_tag = HMAC_SHA-2-256(mac_key, versionbyte + cell_iv + cell_ciphertext + versionbyte_length)
+ /// cell_blob = versionbyte + cell_tag + cell_iv + cell_ciphertext
+ /// </summary>
+ /// <param name="plainText">Plaintext data to be encrypted</param>
+ /// <returns>Returns the ciphertext corresponding to the plaintext.</returns>
+ internal override byte[] EncryptData(byte[] plainText) {
+ return EncryptData(plainText, hasAuthenticationTag: true);
+ }
+
+ /// <summary>
+ /// Encryption Algorithm
+ /// cell_iv = HMAC_SHA-2-256(iv_key, cell_data) truncated to 128 bits
+ /// cell_ciphertext = AES-CBC-256(enc_key, cell_iv, cell_data) with PKCS7 padding.
+ /// (optional) cell_tag = HMAC_SHA-2-256(mac_key, versionbyte + cell_iv + cell_ciphertext + versionbyte_length)
+ /// cell_blob = versionbyte + [cell_tag] + cell_iv + cell_ciphertext
+ /// </summary>
+ /// <param name="plainText">Plaintext data to be encrypted</param>
+ /// <param name="hasAuthenticationTag">Does the algorithm require authentication tag.</param>
+ /// <returns>Returns the ciphertext corresponding to the plaintext.</returns>
+ protected byte[] EncryptData(byte[] plainText, bool hasAuthenticationTag) {
+ // Empty values get encrypted and decrypted properly for both Deterministic and Randomized encryptions.
+ Debug.Assert(plainText != null);
+
+ byte[] iv = new byte[_BlockSizeInBytes];
+
+ // Prepare IV
+ // Should be 1 single block (16 bytes)
+ if (_isDeterministic) {
+ SqlSecurityUtility.GetHMACWithSHA256(plainText, _columnEncryptionKey.IVKey, iv);
+ }
+ else {
+ SqlSecurityUtility.GenerateRandomBytes(iv);
+ }
+
+ int numBlocks = plainText.Length / _BlockSizeInBytes + 1;
+
+ // Final blob we return = version + HMAC + iv + cipherText
+ const int hmacStartIndex = 1;
+ int authenticationTagLen = hasAuthenticationTag ? _KeySizeInBytes : 0;
+ int ivStartIndex = hmacStartIndex + authenticationTagLen;
+ int cipherStartIndex = ivStartIndex + _BlockSizeInBytes; // this is where hmac starts.
+
+ // Output buffer size = size of VersionByte + Authentication Tag + IV + cipher Text blocks.
+ int outputBufSize = sizeof(byte) + authenticationTagLen + iv.Length + (numBlocks*_BlockSizeInBytes);
+ byte[] outBuffer = new byte[outputBufSize];
+
+ // Store the version and IV rightaway
+ outBuffer[0] = _algorithmVersion;
+ Buffer.BlockCopy(iv, 0, outBuffer, ivStartIndex, iv.Length);
+
+ AesCryptoServiceProvider aesAlg;
+
+ // Try to get a provider from the pool.
+ // If no provider is available, create a new one.
+ if (!_cryptoProviderPool.TryDequeue(out aesAlg)) {
+ aesAlg = new AesCryptoServiceProvider();
+
+ try {
+ // Set various algorithm properties
+ aesAlg.Key = _columnEncryptionKey.EncryptionKey;
+ aesAlg.Mode = _cipherMode;
+ aesAlg.Padding = _paddingMode;
+ }
+ catch (Exception) {
+ if (aesAlg != null) {
+ aesAlg.Dispose();
+ }
+
+ throw;
+ }
+ }
+
+ try {
+ // Always set the IV since it changes from cell to cell.
+ aesAlg.IV = iv;
+
+ // Compute CipherText and authentication tag in a single pass
+ using (ICryptoTransform encryptor = aesAlg.CreateEncryptor()) {
+ Debug.Assert(encryptor.CanTransformMultipleBlocks, "AES Encryptor can transform multiple blocks");
+ int count = 0;
+ int cipherIndex = cipherStartIndex; // this is where cipherText starts
+ if (numBlocks > 1) {
+ count = (numBlocks - 1) * _BlockSizeInBytes;
+ cipherIndex += encryptor.TransformBlock(plainText, 0, count, outBuffer, cipherIndex);
+ }
+
+ byte[] buffTmp = encryptor.TransformFinalBlock(plainText, count, plainText.Length - count); // done encrypting
+ Buffer.BlockCopy(buffTmp, 0, outBuffer, cipherIndex, buffTmp.Length);
+ cipherIndex += buffTmp.Length;
+ }
+
+ if (hasAuthenticationTag) {
+ using (HMACSHA256 hmac = new HMACSHA256(_columnEncryptionKey.MACKey)) {
+ Debug.Assert(hmac.CanTransformMultipleBlocks, "HMAC can't transform multiple blocks");
+ hmac.TransformBlock(_version, 0, _version.Length, _version, 0);
+ hmac.TransformBlock(iv, 0, iv.Length, iv, 0);
+
+ // Compute HMAC on final block
+ hmac.TransformBlock(outBuffer, cipherStartIndex, numBlocks * _BlockSizeInBytes, outBuffer, cipherStartIndex);
+ hmac.TransformFinalBlock(_versionSize, 0, _versionSize.Length);
+ byte[] hash = hmac.Hash;
+ Debug.Assert(hash.Length >= authenticationTagLen, "Unexpected hash size");
+ Buffer.BlockCopy(hash, 0, outBuffer, hmacStartIndex, authenticationTagLen);
+ }
+ }
+ }
+ finally {
+ // Return the provider to the pool.
+ _cryptoProviderPool.Enqueue(aesAlg);
+ }
+
+ return outBuffer;
+ }
+
+ /// <summary>
+ /// Decryption steps
+ /// 1. Validate version byte
+ /// 2. Validate Authentication tag
+ /// 3. Decrypt the message
+ /// </summary>
+ /// <param name="cipherText"></param>
+ /// <returns></returns>
+ internal override byte[] DecryptData(byte[] cipherText) {
+ return DecryptData(cipherText, hasAuthenticationTag: true);
+ }
+
+ /// <summary>
+ /// Decryption steps
+ /// 1. Validate version byte
+ /// 2. (optional) Validate Authentication tag
+ /// 3. Decrypt the message
+ /// </summary>
+ /// <param name="cipherText"></param>
+ /// <param name="hasAuthenticationTag"></param>
+ /// <returns></returns>
+ protected byte[] DecryptData(byte[] cipherText, bool hasAuthenticationTag) {
+ Debug.Assert(cipherText != null);
+
+ byte[] iv = new byte[_BlockSizeInBytes];
+
+ int minimumCipherTextLength = hasAuthenticationTag ? _MinimumCipherTextLengthInBytesWithAuthenticationTag : _MinimumCipherTextLengthInBytesNoAuthenticationTag;
+ if (cipherText.Length < minimumCipherTextLength) {
+ throw SQL.InvalidCipherTextSize(cipherText.Length, minimumCipherTextLength);
+ }
+
+ // Validate the version byte
+ int startIndex = 0;
+ if (cipherText[startIndex] != _algorithmVersion) {
+ // Cipher text was computed with a different algorithm version than this.
+ throw SQL.InvalidAlgorithmVersion(cipherText[startIndex], _algorithmVersion);
+ }
+
+ startIndex += 1;
+ int authenticationTagOffset = 0;
+
+ // Read authentication tag
+ if (hasAuthenticationTag) {
+ authenticationTagOffset = startIndex;
+ startIndex += _KeySizeInBytes; // authentication tag size is _KeySizeInBytes
+ }
+
+ // Read cell IV
+ Buffer.BlockCopy(cipherText, startIndex, iv, 0, iv.Length);
+ startIndex += iv.Length;
+
+ // Read encrypted text
+ int cipherTextOffset = startIndex;
+ int cipherTextCount = cipherText.Length - startIndex;
+
+ if (hasAuthenticationTag) {
+ // Compute authentication tag
+ byte[] authenticationTag = PrepareAuthenticationTag(iv, cipherText, cipherTextOffset, cipherTextCount);
+ if (!SqlSecurityUtility.CompareBytes(authenticationTag, cipherText, authenticationTagOffset, authenticationTag.Length)) {
+ // Potentially tampered data, throw an exception
+ throw SQL.InvalidAuthenticationTag();
+ }
+ }
+
+ // Decrypt the text and return
+ return DecryptData(iv, cipherText, cipherTextOffset, cipherTextCount);
+ }
+
+ /// <summary>
+ /// Decrypts plain text data using AES in CBC mode
+ /// </summary>
+ /// <param name="plainText"> cipher text data to be decrypted</param>
+ /// <param name="iv">IV to be used for decryption</param>
+ /// <returns>Returns decrypted plain text data</returns>
+ private byte[] DecryptData(byte[] iv, byte[] cipherText, int offset, int count) {
+ Debug.Assert((iv != null) && (cipherText != null));
+ Debug.Assert (offset > -1 && count > -1);
+ Debug.Assert ((count+offset) <= cipherText.Length);
+
+ byte[] plainText;
+ AesCryptoServiceProvider aesAlg;
+
+ // Try to get a provider from the pool.
+ // If no provider is available, create a new one.
+ if (!_cryptoProviderPool.TryDequeue(out aesAlg)) {
+ aesAlg = new AesCryptoServiceProvider();
+
+ try {
+ // Set various algorithm properties
+ aesAlg.Key = _columnEncryptionKey.EncryptionKey;
+ aesAlg.Mode = _cipherMode;
+ aesAlg.Padding = _paddingMode;
+ }
+ catch (Exception) {
+ if (aesAlg != null) {
+ aesAlg.Dispose();
+ }
+
+ throw;
+ }
+ }
+
+ try {
+ // Always set the IV since it changes from cell to cell.
+ aesAlg.IV = iv;
+
+ // Create the streams used for decryption.
+ using (MemoryStream msDecrypt = new MemoryStream()) {
+ // Create an encryptor to perform the stream transform.
+ using (ICryptoTransform decryptor = aesAlg.CreateDecryptor()) {
+ using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Write)) {
+ // Decrypt the secret message and get the plain text data
+ csDecrypt.Write(cipherText, offset, count);
+ csDecrypt.FlushFinalBlock();
+ plainText = msDecrypt.ToArray();
+ }
+ }
+ }
+ }
+ finally {
+ // Return the provider to the pool.
+ _cryptoProviderPool.Enqueue(aesAlg);
+ }
+
+ return plainText;
+ }
+
+ /// <summary>
+ /// Prepares an authentication tag.
+ /// Authentication Tag = HMAC_SHA-2-256(mac_key, versionbyte + cell_iv + cell_ciphertext + versionbyte_length)
+ /// </summary>
+ /// <param name="cipherText"></param>
+ /// <returns></returns>
+ private byte[] PrepareAuthenticationTag(byte[] iv, byte[] cipherText, int offset, int length) {
+ Debug.Assert(cipherText != null);
+
+ byte[] computedHash;
+ byte[] authenticationTag = new byte[_KeySizeInBytes];
+
+ // Raw Tag Length:
+ // 1 for the version byte
+ // 1 block for IV (16 bytes)
+ // cipherText.Length
+ // 1 byte for version byte length
+
+ using (HMACSHA256 hmac = new HMACSHA256(_columnEncryptionKey.MACKey)) {
+ int retVal = 0;
+ retVal = hmac.TransformBlock(_version, 0, _version.Length, _version, 0);
+ Debug.Assert(retVal == _version.Length);
+ retVal = hmac.TransformBlock(iv, 0, iv.Length, iv, 0);
+ Debug.Assert(retVal == iv.Length);
+ retVal = hmac.TransformBlock(cipherText, offset, length, cipherText, offset);
+ Debug.Assert(retVal == length);
+ hmac.TransformFinalBlock(_versionSize, 0, _versionSize.Length);
+ computedHash = hmac.Hash;
+ }
+
+ Debug.Assert (computedHash.Length >= authenticationTag.Length);
+ Buffer.BlockCopy (computedHash, 0, authenticationTag, 0, authenticationTag.Length);
+ return authenticationTag;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAeadAes256CbcHmac256EncryptionKey.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAeadAes256CbcHmac256EncryptionKey.cs
new file mode 100644
index 00000000000..acb2734e9be
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAeadAes256CbcHmac256EncryptionKey.cs
@@ -0,0 +1,128 @@
+//------------------------------------------------------------------------------
+// <copyright file="SqlAeadAes256CbcHmac256EncryptionKey.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">balnee</owner>
+// <owner current="true" primary="false">krishnib</owner>
+//------------------------------------------------------------------------------
+namespace System.Data.SqlClient
+{
+ using System;
+ using System.Data.SqlClient;
+ using System.Text;
+
+ /// <summary>
+ /// Encryption key class containing 4 keys. This class is used by SqlAeadAes256CbcHmac256Algorithm and SqlAes256CbcAlgorithm
+ /// 1) root key - Main key that is used to derive the keys used in the encryption algorithm
+ /// 2) encryption key - A derived key that is used to encrypt the plain text and generate cipher text
+ /// 3) mac_key - A derived key that is used to compute HMAC of the cipher text
+ /// 4) iv_key - A derived key that is used to generate a synthetic IV from plain text data.
+ /// </summary>
+ internal class SqlAeadAes256CbcHmac256EncryptionKey : SqlClientSymmetricKey
+ {
+ /// <summary>
+ /// Key size in bits
+ /// </summary>
+ internal const int KeySize = 256;
+
+ /// <summary>
+ /// Encryption Key Salt format. This is used to derive the encryption key from the root key.
+ /// </summary>
+ private const string _encryptionKeySaltFormat = @"Microsoft SQL Server cell encryption key with encryption algorithm:{0} and key length:{1}";
+
+ /// <summary>
+ /// MAC Key Salt format. This is used to derive the MAC key from the root key.
+ /// </summary>
+ private const string _macKeySaltFormat = @"Microsoft SQL Server cell MAC key with encryption algorithm:{0} and key length:{1}";
+
+ /// <summary>
+ /// IV Key Salt format. This is used to derive the IV key from the root key. This is only used for Deterministic encryption.
+ /// </summary>
+ private const string _ivKeySaltFormat = @"Microsoft SQL Server cell IV key with encryption algorithm:{0} and key length:{1}";
+
+ /// <summary>
+ /// Encryption Key
+ /// </summary>
+ private readonly SqlClientSymmetricKey _encryptionKey;
+
+ /// <summary>
+ /// MAC key
+ /// </summary>
+ private readonly SqlClientSymmetricKey _macKey;
+
+ /// <summary>
+ /// IV Key
+ /// </summary>
+ private readonly SqlClientSymmetricKey _ivKey;
+
+ /// <summary>
+ /// The name of the algorithm this key will be used with.
+ /// </summary>
+ private readonly string _algorithmName;
+
+ /// <summary>
+ /// Derives all the required keys from the given root key
+ /// </summary>
+ /// <param name="rootKey">Root key used to derive all the required derived keys</param>
+ internal SqlAeadAes256CbcHmac256EncryptionKey(byte[] rootKey, string algorithmName): base(rootKey)
+ {
+ _algorithmName = algorithmName;
+
+ int keySizeInBytes = KeySize / 8;
+
+ // Key validation
+ if (rootKey.Length != keySizeInBytes)
+ {
+ throw SQL.InvalidKeySize(_algorithmName,
+ rootKey.Length,
+ keySizeInBytes);
+ }
+
+ // Derive keys from the root key
+ //
+ // Derive encryption key
+ string encryptionKeySalt = string.Format(_encryptionKeySaltFormat,
+ _algorithmName,
+ KeySize);
+ byte[] buff1 = new byte[keySizeInBytes];
+ SqlSecurityUtility.GetHMACWithSHA256(Encoding.Unicode.GetBytes(encryptionKeySalt), RootKey, buff1);
+ _encryptionKey = new SqlClientSymmetricKey(buff1);
+
+ // Derive mac key
+ string macKeySalt = string.Format(_macKeySaltFormat, _algorithmName, KeySize);
+ byte[] buff2 = new byte[keySizeInBytes];
+ SqlSecurityUtility.GetHMACWithSHA256(Encoding.Unicode.GetBytes(macKeySalt),RootKey,buff2);
+ _macKey = new SqlClientSymmetricKey(buff2);
+
+ // Derive iv key
+ string ivKeySalt = string.Format(_ivKeySaltFormat, _algorithmName, KeySize);
+ byte[] buff3 = new byte[keySizeInBytes];
+ SqlSecurityUtility.GetHMACWithSHA256(Encoding.Unicode.GetBytes(ivKeySalt),RootKey,buff3);
+ _ivKey = new SqlClientSymmetricKey(buff3);
+ }
+
+ /// <summary>
+ /// Encryption key should be used for encryption and decryption
+ /// </summary>
+ internal byte[] EncryptionKey
+ {
+ get { return _encryptionKey.RootKey; }
+ }
+
+ /// <summary>
+ /// MAC key should be used to compute and validate HMAC
+ /// </summary>
+ internal byte[] MACKey
+ {
+ get { return _macKey.RootKey; }
+ }
+
+ /// <summary>
+ /// IV key should be used to compute synthetic IV from a given plain text
+ /// </summary>
+ internal byte[] IVKey
+ {
+ get { return _ivKey.RootKey; }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAeadAes256CbcHmac256Factory.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAeadAes256CbcHmac256Factory.cs
new file mode 100644
index 00000000000..dcbaa8ae34e
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAeadAes256CbcHmac256Factory.cs
@@ -0,0 +1,80 @@
+//------------------------------------------------------------------------------
+// <copyright file="SqlAeadAes256CbcHmac256Factory.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">balnee</owner>
+// <owner current="true" primary="false">krishnib</owner>
+//------------------------------------------------------------------------------
+namespace System.Data.SqlClient {
+ using System;
+ using System.Collections.Concurrent;
+ using System.Data.SqlClient;
+ using System.Diagnostics;
+ using System.Text;
+
+ /// <summary>
+ /// This is a factory class for AEAD_AES_256_CBC_HMAC_SHA256
+ /// </summary>
+ internal class SqlAeadAes256CbcHmac256Factory : SqlClientEncryptionAlgorithmFactory {
+ /// <summary>
+ /// Factory classes caches the SqlAeadAes256CbcHmac256EncryptionKey objects to avoid computation of the derived keys
+ /// </summary>
+ private readonly ConcurrentDictionary<string, SqlAeadAes256CbcHmac256Algorithm> _encryptionAlgorithms =
+ new ConcurrentDictionary<string, SqlAeadAes256CbcHmac256Algorithm>(concurrencyLevel: 4 * Environment.ProcessorCount /* default value in ConcurrentDictionary*/, capacity: 2);
+
+ /// <summary>
+ /// Creates an instance of AeadAes256CbcHmac256Algorithm class with a given key
+ /// </summary>
+ /// <param name="encryptionKey">Root key</param>
+ /// <param name="encryptionType">Encryption Type. Expected values are either Determinitic or Randomized.</param>
+ /// <param name="encryptionAlgorithm">Encryption Algorithm.</param>
+ /// <returns></returns>
+ internal override SqlClientEncryptionAlgorithm Create(SqlClientSymmetricKey encryptionKey, SqlClientEncryptionType encryptionType, string encryptionAlgorithm) {
+ // Callers should have validated the encryption algorithm and the encryption key
+ Debug.Assert(encryptionKey != null);
+ Debug.Assert(string.Equals(encryptionAlgorithm, SqlAeadAes256CbcHmac256Algorithm.AlgorithmName, StringComparison.OrdinalIgnoreCase) == true);
+
+ // Validate encryption type
+ if (!((encryptionType == SqlClientEncryptionType.Deterministic) || (encryptionType == SqlClientEncryptionType.Randomized))) {
+ throw SQL.InvalidEncryptionType(SqlAeadAes256CbcHmac256Algorithm.AlgorithmName,
+ encryptionType,
+ SqlClientEncryptionType.Deterministic,
+ SqlClientEncryptionType.Randomized);
+ }
+
+ // Get the cached encryption algorithm if one exists or create a new one, add it to cache and use it
+ //
+ // For now, we only have one version. In future, we may need to parse the algorithm names to derive the version byte.
+ const byte algorithmVersion = 0x1;
+
+ StringBuilder algorithmKeyBuilder = new StringBuilder(Convert.ToBase64String(encryptionKey.RootKey), SqlSecurityUtility.GetBase64LengthFromByteLength(encryptionKey.RootKey.Length) + 4/*separators, type and version*/);
+
+#if DEBUG
+ int capacity = algorithmKeyBuilder.Capacity;
+#endif //DEBUG
+
+ algorithmKeyBuilder.Append(":");
+ algorithmKeyBuilder.Append((int)encryptionType);
+ algorithmKeyBuilder.Append(":");
+ algorithmKeyBuilder.Append(algorithmVersion);
+
+ string algorithmKey = algorithmKeyBuilder.ToString();
+
+#if DEBUG
+ Debug.Assert(algorithmKey.Length <= capacity, "We needed to allocate a larger array");
+#endif //DEBUG
+
+ SqlAeadAes256CbcHmac256Algorithm aesAlgorithm;
+ if (!_encryptionAlgorithms.TryGetValue(algorithmKey, out aesAlgorithm)) {
+ SqlAeadAes256CbcHmac256EncryptionKey encryptedKey = new SqlAeadAes256CbcHmac256EncryptionKey(encryptionKey.RootKey, SqlAeadAes256CbcHmac256Algorithm.AlgorithmName);
+ aesAlgorithm = new SqlAeadAes256CbcHmac256Algorithm(encryptedKey, encryptionType, algorithmVersion);
+
+ // In case multiple threads reach here at the same time, the first one adds the value
+ // the second one will be a no-op, the allocated memory will be claimed by Garbage Collector.
+ _encryptionAlgorithms.TryAdd(algorithmKey, aesAlgorithm);
+ }
+
+ return aesAlgorithm;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAes256CbcAlgorithm.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAes256CbcAlgorithm.cs
new file mode 100644
index 00000000000..cd21c4df548
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAes256CbcAlgorithm.cs
@@ -0,0 +1,65 @@
+//------------------------------------------------------------------------------
+// <copyright file="SqlAes256CbcAlgorithm.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">balnee</owner>
+// <owner current="true" primary="false">krishnib</owner>
+//------------------------------------------------------------------------------
+namespace System.Data.SqlClient
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Data.SqlClient;
+ using System.Diagnostics;
+ using System.IO;
+ using System.Runtime.CompilerServices;
+ using System.Security.Cryptography;
+
+ /// <summary>
+ /// This class implements AES_256_CBC algorithm.
+ /// </summary>
+ internal class SqlAes256CbcAlgorithm : SqlAeadAes256CbcHmac256Algorithm
+ {
+ /// <summary>
+ /// Algorithm Name
+ /// </summary>
+ internal new const string AlgorithmName = @"AES_256_CBC";
+
+ /// <summary>
+ /// Initializes a new instance of SqlAes256CbcAlgorithm algorithm with a given key and encryption type
+ /// </summary>
+ /// <param name="encryptionKey">
+ /// Root encryption key from which three other keys will be derived
+ /// </param>
+ /// <param name="encryptionType">Encryption Type, accepted values are Deterministic and Randomized.
+ /// For Deterministic encryption, a synthetic IV will be genenrated during encryption
+ /// For Randomized encryption, a random IV will be generated during encryption.
+ /// </param>
+ /// <param name="algorithmVersion">
+ /// Algorithm version
+ /// </param>
+ internal SqlAes256CbcAlgorithm(SqlAeadAes256CbcHmac256EncryptionKey encryptionKey, SqlClientEncryptionType encryptionType, byte algorithmVersion)
+ :base(encryptionKey, encryptionType, algorithmVersion)
+ { }
+
+ /// <summary>
+ /// Encryption Algorithm
+ /// Simply call the base class, indicating we don't need an authentication tag.
+ /// </summary>
+ /// <param name="plainText">Plaintext data to be encrypted</param>
+ /// <returns>Returns the ciphertext corresponding to the plaintext.</returns>
+ internal override byte[] EncryptData(byte[] plainText) {
+ return EncryptData(plainText, hasAuthenticationTag: false);
+ }
+
+ /// <summary>
+ /// Decryption Algorithm
+ /// Simply call the base class, indicating we don't have an authentication tag.
+ /// </summary>
+ /// <param name="cipherText"></param>
+ /// <returns></returns>
+ internal override byte[] DecryptData(byte[] cipherText) {
+ return base.DecryptData(cipherText, hasAuthenticationTag: false);
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAes256CbcFactory.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAes256CbcFactory.cs
new file mode 100644
index 00000000000..09d7468728f
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlAes256CbcFactory.cs
@@ -0,0 +1,85 @@
+//------------------------------------------------------------------------------
+// <copyright file="SqlAeadAes256CbcHmac256Factory.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">balnee</owner>
+// <owner current="true" primary="false">krishnib</owner>
+//------------------------------------------------------------------------------
+namespace System.Data.SqlClient
+{
+ using System;
+ using System.Collections.Concurrent;
+ using System.Data.SqlClient;
+ using System.Diagnostics;
+ using System.Text;
+
+ /// <summary>
+ /// This is a factory class for AES_256_CBC.
+ /// </summary>
+ internal class SqlAes256CbcFactory : SqlAeadAes256CbcHmac256Factory
+ {
+ /// <summary>
+ /// Factory classes caches the SqlAeadAes256CbcHmac256EncryptionKey objects to avoid computation of the derived keys
+ /// </summary>
+ private readonly ConcurrentDictionary<string, SqlAes256CbcAlgorithm> _encryptionAlgorithms =
+ new ConcurrentDictionary<string, SqlAes256CbcAlgorithm>(concurrencyLevel: 4 * Environment.ProcessorCount /* default value in ConcurrentDictionary*/, capacity: 2);
+
+ /// <summary>
+ /// Creates an instance of SqlAes256CbcAlgorithm class with a given key
+ /// </summary>
+ /// <param name="encryptionKey">Root key</param>
+ /// <param name="encryptionType">Encryption Type. Expected values are either Determinitic or Randomized.</param>
+ /// <param name="encryptionAlgorithm">Encryption Algorithm.</param>
+ /// <returns></returns>
+ internal override SqlClientEncryptionAlgorithm Create(SqlClientSymmetricKey encryptionKey, SqlClientEncryptionType encryptionType, string encryptionAlgorithm)
+ {
+ // Callers should have validated the encryption algorithm and the encryption key
+ Debug.Assert(encryptionKey != null);
+ Debug.Assert(string.Equals(encryptionAlgorithm, SqlAes256CbcAlgorithm.AlgorithmName, StringComparison.OrdinalIgnoreCase) == true);
+
+ // Validate encryption type
+ if (!((encryptionType == SqlClientEncryptionType.Deterministic) || (encryptionType == SqlClientEncryptionType.Randomized)))
+ {
+ throw SQL.InvalidEncryptionType(SqlAes256CbcAlgorithm.AlgorithmName,
+ encryptionType,
+ SqlClientEncryptionType.Deterministic,
+ SqlClientEncryptionType.Randomized);
+ }
+
+ // Get the cached encryption algorithm if one exists or create a new one, add it to cache and use it
+ //
+ // For now, we only have one version. In future, we may need to parse the algorithm names to derive the version byte.
+ const byte algorithmVersion = 0x1;
+
+ StringBuilder algorithmKeyBuilder = new StringBuilder(Convert.ToBase64String(encryptionKey.RootKey), SqlSecurityUtility.GetBase64LengthFromByteLength(encryptionKey.RootKey.Length) + 4/*separators, type and version*/);
+
+#if DEBUG
+ int capacity = algorithmKeyBuilder.Capacity;
+#endif //DEBUG
+
+ algorithmKeyBuilder.Append(":");
+ algorithmKeyBuilder.Append((int)encryptionType);
+ algorithmKeyBuilder.Append(":");
+ algorithmKeyBuilder.Append(algorithmVersion);
+
+ string algorithmKey = algorithmKeyBuilder.ToString();
+
+#if DEBUG
+ Debug.Assert(algorithmKey.Length <= capacity, "We needed to allocate a larger array");
+#endif //DEBUG
+
+ SqlAes256CbcAlgorithm aesAlgorithm;
+ if (!_encryptionAlgorithms.TryGetValue(algorithmKey, out aesAlgorithm))
+ {
+ SqlAeadAes256CbcHmac256EncryptionKey encryptedKey = new SqlAeadAes256CbcHmac256EncryptionKey(encryptionKey.RootKey, SqlAes256CbcAlgorithm.AlgorithmName);
+ aesAlgorithm = new SqlAes256CbcAlgorithm(encryptedKey, encryptionType, algorithmVersion);
+
+ // In case multiple threads reach here at the same time, the first one adds the value
+ // the second one will be a no-op, the allocated memory will be claimed by Garbage Collector.
+ _encryptionAlgorithms.TryAdd(algorithmKey, aesAlgorithm);
+ }
+
+ return aesAlgorithm;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBuffer.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBuffer.cs
index aa838b29c5f..9c4084086bb 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBuffer.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBuffer.cs
@@ -2,9 +2,9 @@
// <copyright file="SqlDataReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
@@ -868,11 +868,11 @@ namespace System.Data.SqlClient {
_isNull = false;
}
- internal void SetToTime(byte[] bytes, int length, byte scale) {
+ internal void SetToTime(byte[] bytes, int length, byte scale, byte denormalizedScale) {
Debug.Assert(IsEmpty, "setting value a second time?");
_type = StorageType.Time;
- FillInTimeInfo(ref _value._timeInfo, bytes, length, scale);
+ FillInTimeInfo(ref _value._timeInfo, bytes, length, scale, denormalizedScale);
_isNull = false;
}
@@ -885,11 +885,11 @@ namespace System.Data.SqlClient {
_isNull = false;
}
- internal void SetToDateTime2(byte[] bytes, int length, byte scale) {
+ internal void SetToDateTime2(byte[] bytes, int length, byte scale, byte denormalizedScale) {
Debug.Assert(IsEmpty, "setting value a second time?");
_type = StorageType.DateTime2;
- FillInTimeInfo(ref _value._dateTime2Info.timeInfo, bytes, length - 3, scale); // remaining 3 bytes is for date
+ FillInTimeInfo(ref _value._dateTime2Info.timeInfo, bytes, length - 3, scale, denormalizedScale); // remaining 3 bytes is for date
_value._dateTime2Info.date = GetDateFromByteArray(bytes, length - 3); // 3 bytes for date
_isNull = false;
}
@@ -904,11 +904,11 @@ namespace System.Data.SqlClient {
_isNull = false;
}
- internal void SetToDateTimeOffset(byte[] bytes, int length, byte scale) {
+ internal void SetToDateTimeOffset(byte[] bytes, int length, byte scale, byte denormalizedScale) {
Debug.Assert(IsEmpty, "setting value a second time?");
_type = StorageType.DateTimeOffset;
- FillInTimeInfo(ref _value._dateTimeOffsetInfo.dateTime2Info.timeInfo, bytes, length - 5, scale); // remaining 5 bytes are for date and offset
+ FillInTimeInfo(ref _value._dateTimeOffsetInfo.dateTime2Info.timeInfo, bytes, length - 5, scale, denormalizedScale); // remaining 5 bytes are for date and offset
_value._dateTimeOffsetInfo.dateTime2Info.date = GetDateFromByteArray(bytes, length - 5); // 3 bytes for date
_value._dateTimeOffsetInfo.offset = (Int16)(bytes[length - 2] + (bytes[length - 1] << 8)); // 2 bytes for offset (Int16)
_isNull = false;
@@ -926,9 +926,10 @@ namespace System.Data.SqlClient {
_isNull = false;
}
- private static void FillInTimeInfo(ref TimeInfo timeInfo, byte[] timeBytes, int length, byte scale) {
+ private static void FillInTimeInfo(ref TimeInfo timeInfo, byte[] timeBytes, int length, byte scale, byte denormalizedScale) {
Debug.Assert(3 <= length && length <= 5, "invalid data length for timeInfo: " + length);
Debug.Assert(0 <= scale && scale <= 7, "invalid scale: " + scale);
+ Debug.Assert(0 <= denormalizedScale && denormalizedScale <= 7, "invalid denormalized scale: " + denormalizedScale);
Int64 tickUnits = (Int64)timeBytes[0] + ((Int64)timeBytes[1] << 8) + ((Int64)timeBytes[2] << 16);
if (length > 3) {
@@ -938,7 +939,11 @@ namespace System.Data.SqlClient {
tickUnits += ((Int64)timeBytes[4] << 32);
}
timeInfo.ticks = tickUnits * TdsEnums.TICKS_FROM_SCALE[scale];
- timeInfo.scale = scale;
+
+ // Once the deserialization has been completed using the value scale, we need to set the actual denormalized scale,
+ // coming from the data type, on the original result, so that it has the proper scale setting.
+ // This only applies for values that got serialized/deserialized for encryption. Otherwise, both scales should be equal.
+ timeInfo.scale = denormalizedScale;
}
private static Int32 GetDateFromByteArray(byte[] buf, int offset) {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopy.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopy.cs
index 91812a7b96c..cd3484f1391 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopy.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopy.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlBulkCopy.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
// todo list:
@@ -16,22 +16,34 @@ namespace System.Data.SqlClient {
using System;
using System.Collections;
using System.Collections.Generic;
+#if !PROJECTK
using System.ComponentModel;
+#endif // !PROJECTK
using System.Data;
using System.Data.Common;
+#if !PROJECTK
using System.Data.Sql;
+#endif //PROJECTK
using System.Data.SqlTypes;
using System.Diagnostics;
using System.Globalization;
using System.Runtime.CompilerServices;
+#if !PROJECTK
using System.Runtime.ConstrainedExecution;
+#endif // !PROJECTK
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+#if !PROJECTK
using System.Transactions;
+#endif //PROJECTK
using System.Xml;
+#if !PROJECTK
using MSS = Microsoft.SqlServer.Server;
+#else
+ using Res = System.SR;
+#endif //PROJECTK
// -------------------------------------------------------------------------------------------------
// this internal class helps us to associate the metadata (from the target)
@@ -161,12 +173,15 @@ namespace System.Data.SqlClient {
Owner,
TableName,
}
+#if !PROJECTK
private enum ValueSourceType {
Unspecified = 0,
IDataReader,
DataTable,
- RowArray
+ RowArray,
+ DbDataReader
}
+#endif //PROJECTK
// Enum for specifying SqlDataReader.Get method used
private enum ValueMethod : byte {
@@ -224,11 +239,17 @@ namespace System.Data.SqlClient {
private int _rowsUntilNotification;
private bool _insideRowsCopiedEvent;
+#if !PROJECTK
private object _rowSource;
+#endif //PROJECTK
private SqlDataReader _SqlDataReaderRowSource;
+#if !PROJECTK
private bool _rowSourceIsSqlDataReaderSmi;
+#endif //PROJECTK
private DbDataReader _DbDataReaderRowSource;
+#if !PROJECTK
private DataTable _dataTableSource;
+#endif //PROJECTK
private SqlBulkCopyColumnMappingCollection _columnMappings;
private SqlBulkCopyColumnMappingCollection _localColumnMappings;
@@ -237,11 +258,13 @@ namespace System.Data.SqlClient {
private SqlTransaction _internalTransaction;
private SqlTransaction _externalTransaction;
+#if !PROJECTK
private ValueSourceType _rowSourceType = ValueSourceType.Unspecified;
private DataRow _currentRow;
private int _currentRowLength;
private DataRowState _rowStateToSkip;
private IEnumerator _rowEnumerator;
+#endif //PROJECTK
private TdsParser _parser;
private TdsParserStateObject _stateObj;
@@ -249,8 +272,10 @@ namespace System.Data.SqlClient {
private SqlRowsCopiedEventHandler _rowsCopiedEventHandler;
+#if !PROJECTK
private static int _objectTypeCount; // Bid counter
internal readonly int _objectID = System.Threading.Interlocked.Increment(ref _objectTypeCount);
+#endif //PROJECTK
//newly added member variables for Async modification, m = member variable to bcp
private int _savedBatchSize = 0; //save the batchsize so that changes are not affected unexpectedly
@@ -381,11 +406,13 @@ namespace System.Data.SqlClient {
}
}
+#if !PROJECTK
internal int ObjectID {
get {
return _objectID;
}
}
+#endif //PROJECTK
public event SqlRowsCopiedEventHandler SqlRowsCopied {
add {
@@ -438,19 +465,27 @@ namespace System.Data.SqlClient {
TDSCommand = "select @@trancount; SET FMTONLY ON select * from " + this.DestinationTableName + " SET FMTONLY OFF ";
+#if !PROJECTK
if (_connection.IsShiloh) {
+#endif //PROJECTK
// If its a temp DB then try to connect
string TableCollationsStoredProc;
if (_connection.IsKatmaiOrNewer) {
TableCollationsStoredProc = "sp_tablecollations_100";
}
+#if !PROJECTK
else if (_connection.IsYukonOrNewer) {
+#else
+ else {
+#endif //PROJECTK
TableCollationsStoredProc = "sp_tablecollations_90";
}
+#if !PROJECTK
else {
TableCollationsStoredProc = "sp_tablecollations";
}
+#endif //PROJECTK
string TableName = parts[MultipartIdentifier.TableIndex];
bool isTempTable = TableName.Length > 0 && '#' == TableName[0];
@@ -489,21 +524,27 @@ namespace System.Data.SqlClient {
TableName
);
}
+#if !PROJECTK
}
+#endif //PROJECTK
return TDSCommand;
}
// Creates and then executes initial query to get information about the targettable
- // When __isAsyncBulkCopy == false (i.e. it is [....] copy): out result contains the resulset. Returns null.
+ // When __isAsyncBulkCopy == false (i.e. it is Sync copy): out result contains the resulset. Returns null.
// When __isAsyncBulkCopy == true (i.e. it is Async copy): This still uses the _parser.Run method synchronously and return Task<BulkCopySimpleResultSet>.
// We need to have a _parser.RunAsync to make it real async.
private Task<BulkCopySimpleResultSet> CreateAndExecuteInitialQueryAsync(out BulkCopySimpleResultSet result) {
string TDSCommand = CreateInitialQuery();
+#if !PROJECTK
Bid.Trace("<sc.SqlBulkCopy.CreateAndExecuteInitialQueryAsync|INFO> Initial Query: '%ls' \n", TDSCommand);
Bid.CorrelationTrace("<sc.SqlBulkCopy.CreateAndExecuteInitialQueryAsync|Info|Correlation> ObjectID%d#, ActivityID %ls\n", ObjectID);
Task executeTask = _parser.TdsExecuteSQLBatch(TDSCommand, this.BulkCopyTimeout, null, _stateObj, sync: !_isAsyncBulkCopy, callerHasConnectionLock: true);
+#else
+ Task executeTask = _parser.TdsExecuteSQLBatch(TDSCommand, this.BulkCopyTimeout, _stateObj, sync: !_isAsyncBulkCopy, callerHasConnectionLock: true);
+#endif // !PROJECTK
if (executeTask == null) {
result = new BulkCopySimpleResultSet();
@@ -533,7 +574,11 @@ namespace System.Data.SqlClient {
private string AnalyzeTargetAndCreateUpdateBulkCommand(BulkCopySimpleResultSet internalResults) {
StringBuilder updateBulkCommandText = new StringBuilder();
+#if !PROJECTK
if (_connection.IsShiloh && 0 == internalResults[CollationResultId].Count) {
+#else
+ if (0 == internalResults[CollationResultId].Count) {
+#endif //PROJECTK
throw SQL.BulkLoadNoCollation();
}
@@ -546,12 +591,16 @@ namespace System.Data.SqlClient {
bool isInTransaction;
+#if !PROJECTK
if(_parser.IsYukonOrNewer) {
+#endif //PROJECTK
isInTransaction = _connection.HasLocalTransaction;
+#if !PROJECTK
}
else {
isInTransaction = (bool)(0 < (SqlInt32)(internalResults[TranCountResultId][TranCountRowId][TranCountValueId]));
}
+#endif //PROJECTK
// Throw if there is a transaction but no flag is set
if(isInTransaction && null == _externalTransaction && null == _internalTransaction && (_connection.Parser != null && _connection.Parser.CurrentTransaction != null && _connection.Parser.CurrentTransaction.IsLocal)) {
throw SQL.BulkLoadExistingTransaction();
@@ -598,11 +647,19 @@ namespace System.Data.SqlClient {
AppendColumnNameAndTypeName(updateBulkCommandText, metadata.column, "sql_variant");
}
else if(metadata.type == SqlDbType.Udt) {
+#if !PROJECTK
// UDTs are sent as varbinary
AppendColumnNameAndTypeName(updateBulkCommandText, metadata.column, "varbinary");
+#else
+ throw ADP.DbTypeNotSupported(SqlDbType.Udt.ToString());
+#endif //PROJECTK
}
else {
+#if !PROJECTK
AppendColumnNameAndTypeName(updateBulkCommandText, metadata.column, typeof(SqlDbType).GetEnumName(metadata.type));
+#else
+ AppendColumnNameAndTypeName(updateBulkCommandText, metadata.column, metadata.type.ToString());
+#endif //PROJECTK
}
switch(metadata.metaType.NullableType) {
@@ -652,15 +709,35 @@ namespace System.Data.SqlClient {
}
}
+#if !PROJECTK
if(_connection.IsShiloh) {
+#endif //PROJECTK
// Shiloh or above!
// get collation for column i
Result rowset = internalResults[CollationResultId];
object rowvalue = rowset[i][CollationId];
- if(rowvalue != null) {
+
+ bool shouldSendCollation;
+ switch (metadata.type) {
+ case SqlDbType.Char:
+ case SqlDbType.NChar:
+ case SqlDbType.VarChar:
+ case SqlDbType.NVarChar:
+ case SqlDbType.Text:
+ case SqlDbType.NText:
+ shouldSendCollation = true;
+ break;
+
+ default:
+ shouldSendCollation = false;
+ break;
+ }
+
+ if (rowvalue != null && shouldSendCollation) {
Debug.Assert(rowvalue is SqlString);
SqlString collation_name = (SqlString)rowvalue;
+
if(!collation_name.IsNull) {
updateBulkCommandText.Append(" COLLATE " + collation_name.Value);
// VSTFDEVDIV 461426: compare collations only if the collation value was set on the metadata
@@ -675,7 +752,9 @@ namespace System.Data.SqlClient {
}
}
}
+#if !PROJECTK
}
+#endif //PROJECTK
break;
} // end if found
} // end of (inner) for loop
@@ -723,9 +802,13 @@ namespace System.Data.SqlClient {
// submitts the updatebulk command
//
private Task SubmitUpdateBulkCommand(string TDSCommand) {
+#if !PROJECTK
Bid.CorrelationTrace("<sc.SqlBulkCopy.SubmitUpdateBulkCommand|Info|Correlation> ObjectID%d#, ActivityID %ls\n", ObjectID);
Task executeTask = _parser.TdsExecuteSQLBatch(TDSCommand, this.BulkCopyTimeout, null, _stateObj, sync: !_isAsyncBulkCopy, callerHasConnectionLock: true);
+#else
+ Task executeTask = _parser.TdsExecuteSQLBatch(TDSCommand, this.BulkCopyTimeout, _stateObj, sync: !_isAsyncBulkCopy, callerHasConnectionLock: true);
+#endif // !PROJECTK
if (executeTask == null) {
RunParser();
@@ -810,8 +893,11 @@ namespace System.Data.SqlClient {
_SqlMetaData metadata = _sortedColumnMappings[destRowIndex]._metadata;
int sourceOrdinal = _sortedColumnMappings[destRowIndex]._sourceColumnOrdinal;
+#if !PROJECTK
switch(_rowSourceType) {
case ValueSourceType.IDataReader:
+ case ValueSourceType.DbDataReader:
+#endif //PROJECTK
// Handle data feeds (common for both DbDataReader and SqlDataReader)
if (_currentRowMetadata[destRowIndex].IsDataFeed) {
if (_DbDataReaderRowSource.IsDBNull(sourceOrdinal)) {
@@ -889,7 +975,11 @@ namespace System.Data.SqlClient {
else {
isDataFeed = false;
+#if !PROJECTK
IDataReader rowSourceAsIDataReader = (IDataReader)_rowSource;
+#else
+ var rowSourceAsIDataReader = _DbDataReaderRowSource;
+#endif //PROJECTK
// Back-compat with 4.0 and 4.5 - only use IsDbNull when streaming is enabled and only for non-SqlDataReader
if ((_enableStreaming) && (_SqlDataReaderRowSource == null) && (rowSourceAsIDataReader.IsDBNull(sourceOrdinal))) {
@@ -903,7 +993,8 @@ namespace System.Data.SqlClient {
return columnValue;
}
}
-
+
+#if !PROJECTK
case ValueSourceType.DataTable:
case ValueSourceType.RowArray: {
Debug.Assert(_currentRow != null, "uninitialized _currentRow");
@@ -966,17 +1057,21 @@ namespace System.Data.SqlClient {
throw ADP.NotSupported();
}
}
+#endif //PROJECTK
}
// unified method to read a row from the current rowsource
// When _isAsyncBulkCopy == true (i.e. async copy): returns Task<bool> when IDataReader is a DbDataReader, Null for others.
- // When _isAsyncBulkCopy == false (i.e. [....] copy): returns null. Uses ReadFromRowSource to get the boolean value.
+ // When _isAsyncBulkCopy == false (i.e. sync copy): returns null. Uses ReadFromRowSource to get the boolean value.
// "more" -- should be used by the caller only when the return value is null.
private Task ReadFromRowSourceAsync(CancellationToken cts) {
- DbDataReader dbRowSource = _rowSource as DbDataReader;
- if (_isAsyncBulkCopy && _rowSourceType == ValueSourceType.IDataReader && (_rowSource as DbDataReader) != null) {
+#if !PROJECTK
+ if (_isAsyncBulkCopy && (_DbDataReaderRowSource != null)) {
+#else
+ if (_isAsyncBulkCopy) {
+#endif //PROJECTK
//This will call ReadAsync for DbDataReader (for SqlDataReader it will be truely async read; for non-SqlDataReader it may block.)
- return ((DbDataReader)_rowSource).ReadAsync(cts).ContinueWith((t) => {
+ return _DbDataReaderRowSource.ReadAsync(cts).ContinueWith((t) => {
if (t.Status == TaskStatus.RanToCompletion) {
_hasMoreRowToCopy = t.Result;
}
@@ -986,7 +1081,11 @@ namespace System.Data.SqlClient {
else { //this will call Read for DataRows, DataTable and IDataReader (this includes all IDataReader except DbDataReader)
_hasMoreRowToCopy = false;
try {
+#if !PROJECTK
_hasMoreRowToCopy = ReadFromRowSource(); //Synchronous calls for DataRows and DataTable won't block. For IDataReader, it may block.
+#else
+ _hasMoreRowToCopy = _DbDataReaderRowSource.Read();
+#endif //PROJECTK
}
catch(Exception ex) {
if (_isAsyncBulkCopy) {
@@ -1002,8 +1101,10 @@ namespace System.Data.SqlClient {
}
}
+#if !PROJECTK
private bool ReadFromRowSource() {
switch(_rowSourceType) {
+ case ValueSourceType.DbDataReader:
case ValueSourceType.IDataReader:
return ((IDataReader)_rowSource).Read();
@@ -1031,6 +1132,7 @@ namespace System.Data.SqlClient {
throw ADP.NotSupported();
}
}
+#endif //PROJECTK
private SourceColumnMetadata GetColumnMetadata(int ordinal) {
int sourceOrdinal = _sortedColumnMappings[ordinal]._sourceColumnOrdinal;
@@ -1040,14 +1142,22 @@ namespace System.Data.SqlClient {
ValueMethod method;
bool isSqlType;
bool isDataFeed;
+#if !PROJECTK
if (((_SqlDataReaderRowSource != null) || (_dataTableSource != null)) && ((metadata.metaType.NullableType == TdsEnums.SQLDECIMALN) || (metadata.metaType.NullableType == TdsEnums.SQLNUMERICN))) {
+#else
+ if (((_SqlDataReaderRowSource != null)) && ((metadata.metaType.NullableType == TdsEnums.SQLDECIMALN) || (metadata.metaType.NullableType == TdsEnums.SQLNUMERICN))) {
+#endif //PROJECTK
isDataFeed = false;
Type t;
+#if !PROJECTK
switch(_rowSourceType) {
+ case ValueSourceType.DbDataReader:
case ValueSourceType.IDataReader:
+#endif //PROJECTK
t = _SqlDataReaderRowSource.GetFieldType(sourceOrdinal);
- break;
+#if !PROJECTK
+ break;
case ValueSourceType.DataTable:
case ValueSourceType.RowArray:
t = _dataTableSource.Columns[sourceOrdinal].DataType;
@@ -1057,6 +1167,7 @@ namespace System.Data.SqlClient {
Debug.Assert(false, string.Format("Unknown value source: {0}", _rowSourceType));
break;
}
+#endif //PROJECTK
if (typeof(SqlDecimal) == t || typeof(Decimal) == t) {
isSqlType = true;
@@ -1076,7 +1187,11 @@ namespace System.Data.SqlClient {
}
}
// Check for data streams
+#if !PROJECTK
else if ((_enableStreaming) && (metadata.length == MAX_LENGTH) && (!_rowSourceIsSqlDataReaderSmi)) {
+#else
+ else if ((_enableStreaming) && (metadata.length == MAX_LENGTH)) {
+#endif //PROJECTK
isSqlType = false;
if (_SqlDataReaderRowSource != null) {
@@ -1102,7 +1217,11 @@ namespace System.Data.SqlClient {
method = ValueMethod.GetValue;
}
}
+#if !PROJECTK
else if (_DbDataReaderRowSource != null) {
+#else
+ else {
+#endif //PROJECTK
if (metadata.type == SqlDbType.VarBinary) {
isDataFeed = true;
method = ValueMethod.DataFeedStream;
@@ -1116,10 +1235,12 @@ namespace System.Data.SqlClient {
method = ValueMethod.GetValue;
}
}
+#if !PROJECTK
else {
isDataFeed = false;
method = ValueMethod.GetValue;
}
+#endif //PROJECTK
}
else {
isSqlType = false;
@@ -1136,9 +1257,11 @@ namespace System.Data.SqlClient {
if(null == _connection) {
throw ADP.ConnectionRequired(method);
}
+#if !PROJECTK
if (_connection.IsContextConnection) {
throw SQL.NotAvailableOnContextConnection();
}
+#endif //PROJECTK
if(_ownConnection && _connection.State != ConnectionState.Open) {
_connection.Open();
@@ -1177,7 +1300,11 @@ namespace System.Data.SqlClient {
SqlInternalConnectionTds internalConnection = _connection.GetOpenTdsConnection();
internalConnection.ThreadHasParserLockForClose = true;
try {
+#if !PROJECTK
_parser.RunReliably(RunBehavior.UntilDone, null, null, bulkCopyHandler, _stateObj);
+#else
+ _parser.Run(RunBehavior.UntilDone, null, null, bulkCopyHandler, _stateObj);
+#endif //PROJECTK
}
finally {
internalConnection.ThreadHasParserLockForClose = false;
@@ -1285,6 +1412,22 @@ namespace System.Data.SqlClient {
MetaType type = metadata.metaType;
bool typeChanged = false;
+
+ // If the column is encrypted then we are going to transparently encrypt this column
+ // (based on connection string setting)- Use the metaType for the underlying
+ // value (unencrypted value) for conversion/casting purposes (below).
+ // Note - this flag is set if connection string options has TCE turned on
+ byte scale = metadata.scale;
+ byte precision = metadata.precision;
+ int length = metadata.length;
+ if (metadata.isEncrypted) {
+ Debug.Assert (_parser.ShouldEncryptValuesForBulkCopy());
+ type = metadata.baseTI.metaType;
+ scale = metadata.baseTI.scale;
+ precision = metadata.baseTI.precision;
+ length = metadata.baseTI.length;
+ }
+
try {
MetaType mt;
switch(type.NullableType) {
@@ -1294,15 +1437,15 @@ namespace System.Data.SqlClient {
value = SqlParameter.CoerceValue(value, mt, out coercedToDataFeed, out typeChanged, false);
// Convert Source Decimal Percision and Scale to Destination Percision and Scale
- // Fix Bug: 385971 sql decimal data could get corrupted on insert if the scale of
- // the source and destination weren't the same. The BCP protocal, specifies the
- // scale of the incoming data in the insert statement, we just tell the server we
- // are inserting the same scale back. This then created a bug inside the BCP opperation
- // if the scales didn't match. The fix is to do the same thing that SQL Paramater does,
- // and adjust the scale before writing. In Orcas is scale adjustment should be removed from
- // SqlParamater and SqlBulkCopy and Isoloated inside SqlParamater.CoerceValue, but becouse of
- // where we are in the cycle, the changes must be kept at minimum, so I'm just bringing the
- // code over to SqlBulkCopy.
+ // Fix
+
+
+
+
+
+
+
+
SqlDecimal sqlValue;
if ((isSqlType) && (!typeChanged)) {
@@ -1312,8 +1455,8 @@ namespace System.Data.SqlClient {
sqlValue = new SqlDecimal((Decimal)value);
}
- if (sqlValue.Scale != metadata.scale) {
- sqlValue = TdsParser.AdjustSqlDecimalScale(sqlValue, metadata.scale);
+ if (sqlValue.Scale != scale) {
+ sqlValue = TdsParser.AdjustSqlDecimalScale(sqlValue, scale);
}
// Perf: It is more effecient to write a SqlDecimal than a decimal since we need to break it into its 'bits' when writing
@@ -1321,7 +1464,7 @@ namespace System.Data.SqlClient {
isSqlType = true;
typeChanged = false; // Setting this to false as SqlParameter.CoerceValue will only set it to true when coverting to a CLR type
- if (sqlValue.Precision > metadata.precision) {
+ if (sqlValue.Precision > precision) {
throw SQL.BulkLoadCannotConvertValue(value.GetType(), mt, ADP.ParameterValueOutOfRange(sqlValue));
}
break;
@@ -1357,7 +1500,7 @@ namespace System.Data.SqlClient {
value = SqlParameter.CoerceValue(value, mt, out coercedToDataFeed, out typeChanged, false);
if (!coercedToDataFeed) { // We do not need to test for TextDataFeed as it is only assigned to (N)VARCHAR(MAX)
int len = ((isSqlType) && (!typeChanged)) ? ((SqlString)value).Value.Length : ((string)value).Length;
- if (len > metadata.length / 2) {
+ if (len > length / 2) {
throw SQL.BulkLoadStringTooLong();
}
}
@@ -1367,6 +1510,7 @@ namespace System.Data.SqlClient {
typeChanged = true;
break;
case TdsEnums.SQLUDT:
+#if !PROJECTK
// UDTs are sent as varbinary so we need to get the raw bytes
// unlike other types the parser does not like SQLUDT in form of SqlType
// so we cast to a CLR type.
@@ -1378,6 +1522,9 @@ namespace System.Data.SqlClient {
typeChanged = true;
}
break;
+#else // PROJECTK
+ throw ADP.DbTypeNotSupported("UDT");
+#endif // !PROJECTK
case TdsEnums.SQLXMLTYPE:
// Could be either string, SqlCachedBuffer, XmlReader or XmlDataFeed
Debug.Assert((value is XmlReader) || (value is SqlCachedBuffer) || (value is string) || (value is SqlString) || (value is XmlDataFeed), "Invalid value type of Xml datatype");
@@ -1390,7 +1537,7 @@ namespace System.Data.SqlClient {
default:
Debug.Assert(false, "Unknown TdsType!" + type.NullableType.ToString("x2", (IFormatProvider)null));
- throw SQL.BulkLoadCannotConvertValue(value.GetType(), metadata.metaType, null);
+ throw SQL.BulkLoadCannotConvertValue(value.GetType(), type, null);
}
if (typeChanged) {
@@ -1404,10 +1551,47 @@ namespace System.Data.SqlClient {
if(!ADP.IsCatchableExceptionType(e)) {
throw;
}
- throw SQL.BulkLoadCannotConvertValue(value.GetType(), metadata.metaType, e);
+ throw SQL.BulkLoadCannotConvertValue(value.GetType(), type, e);
}
}
+ public void WriteToServer(DbDataReader reader) {
+#if !PROJECTK
+ SqlConnection.ExecutePermission.Demand();
+#endif // !PROJECTK
+
+ if (reader == null) {
+ throw new ArgumentNullException("reader");
+ }
+
+ if (_isBulkCopyingInProgress) {
+ throw SQL.BulkLoadPendingOperation();
+ }
+
+ SqlStatistics statistics = Statistics;
+ try {
+ statistics = SqlStatistics.StartTimer(Statistics);
+#if !PROJECTK
+ _rowSource = reader;
+#endif //PROJECTK
+ _DbDataReaderRowSource = reader;
+ _SqlDataReaderRowSource = reader as SqlDataReader;
+#if !PROJECTK
+ if (_SqlDataReaderRowSource != null) {
+ _rowSourceIsSqlDataReaderSmi = _SqlDataReaderRowSource is SqlDataReaderSmi;
+ }
+ _dataTableSource = null;
+ _rowSourceType = ValueSourceType.DbDataReader;
+#endif //PROJECTK
+ _isAsyncBulkCopy = false;
+ WriteRowSourceToServerAsync(reader.FieldCount, CancellationToken.None); //It returns null since _isAsyncBulkCopy = false;
+ }
+ finally {
+ SqlStatistics.StopTimer(statistics);
+ }
+ }
+
+#if !PROJECTK
public void WriteToServer(IDataReader reader) {
SqlConnection.ExecutePermission.Demand();
@@ -1557,7 +1741,47 @@ namespace System.Data.SqlClient {
}
return resultTask;
}
+#endif //PROJECTK
+
+ public Task WriteToServerAsync(DbDataReader reader) {
+ return WriteToServerAsync(reader, CancellationToken.None);
+ }
+ public Task WriteToServerAsync(DbDataReader reader, CancellationToken cancellationToken) {
+ Task resultTask = null;
+#if !PROJECTK
+ SqlConnection.ExecutePermission.Demand();
+
+#endif // !PROJECTK
+ if (reader == null) {
+ throw new ArgumentNullException("reader");
+ }
+ if (_isBulkCopyingInProgress) {
+ throw SQL.BulkLoadPendingOperation();
+ }
+
+ SqlStatistics statistics = Statistics;
+ try {
+ statistics = SqlStatistics.StartTimer(Statistics);
+#if !PROJECTK
+ _rowSource = reader;
+#endif //PROJECTK
+ _SqlDataReaderRowSource = reader as SqlDataReader;
+ _DbDataReaderRowSource = reader;
+#if !PROJECTK
+ _dataTableSource = null;
+ _rowSourceType = ValueSourceType.DbDataReader;
+#endif //PROJECTK
+ _isAsyncBulkCopy = true;
+ resultTask = WriteRowSourceToServerAsync(reader.FieldCount, cancellationToken); //It returns Task since _isAsyncBulkCopy = true;
+ }
+ finally {
+ SqlStatistics.StopTimer(statistics);
+ }
+ return resultTask;
+ }
+
+#if !PROJECTK
public Task WriteToServerAsync(IDataReader reader) {
return WriteToServerAsync(reader, CancellationToken.None);
}
@@ -1628,10 +1852,15 @@ namespace System.Data.SqlClient {
}
return resultTask;
}
+#endif //PROJECTK
// Writes row source.
//
private Task WriteRowSourceToServerAsync(int columnCount, CancellationToken ctoken) {
+#if PROJECTK
+ // Only DbDataReaders are supported in ProjectK\CoreCLR
+ Debug.Assert(_DbDataReaderRowSource != null, "No DbDataReader was provided");
+#endif //PROJECTK
Task reconnectTask = _connection._currentReconnectionTask;
if (reconnectTask != null && !reconnectTask.IsCompleted) {
if (this._isAsyncBulkCopy) {
@@ -1662,19 +1891,23 @@ namespace System.Data.SqlClient {
_parserLock = internalConnection._parserLock;
_parserLock.Wait(canReleaseFromAnyThread: _isAsyncBulkCopy);
+#if !PROJECTK
TdsParser bestEffortCleanupTarget = null;
RuntimeHelpers.PrepareConstrainedRegions();
+#endif // !PROJECTK
try {
+#if !PROJECTK
#if DEBUG
TdsParser.ReliabilitySection tdsReliabilitySection = new TdsParser.ReliabilitySection();
RuntimeHelpers.PrepareConstrainedRegions();
try {
tdsReliabilitySection.Start();
-#else
+#else // !DEBUG
{
#endif //DEBUG
bestEffortCleanupTarget = SqlInternalConnection.GetBestEffortCleanupTarget(_connection);
+#endif // !PROJECTK
WriteRowSourceToServerCommon(columnCount); //this is common in both sync and async
Task resultTask = WriteToServerInternalAsync(ctoken); // resultTask is null for sync, but Task for async.
if (resultTask != null) {
@@ -1693,6 +1926,7 @@ namespace System.Data.SqlClient {
}, TaskScheduler.Default).Unwrap();
}
return null;
+#if !PROJECTK
}
#if DEBUG
@@ -1700,9 +1934,11 @@ namespace System.Data.SqlClient {
tdsReliabilitySection.Stop();
}
#endif //DEBUG
+#endif // !PROJECTK
}
+#if !PROJECTK
catch (System.OutOfMemoryException e) {
_connection.Abort(e);
throw;
@@ -1716,6 +1952,7 @@ namespace System.Data.SqlClient {
SqlInternalConnection.BestEffortCleanup(bestEffortCleanupTarget);
throw;
}
+#endif // !PROJECTK
finally {
_columnMappings.ReadOnly = false;
if (finishedSynchronously) {
@@ -1767,6 +2004,7 @@ namespace System.Data.SqlClient {
if (bulkCopyColumn._internalSourceColumnOrdinal == -1) {
string unquotedColumnName = UnquotedName(bulkCopyColumn.SourceColumn);
+#if !PROJECTK
switch (this._rowSourceType) {
case ValueSourceType.DataTable:
index = ((DataTable)_rowSource).Columns.IndexOf(unquotedColumnName);
@@ -1774,15 +2012,23 @@ namespace System.Data.SqlClient {
case ValueSourceType.RowArray:
index = ((DataRow[])_rowSource)[0].Table.Columns.IndexOf(unquotedColumnName);
break;
+ case ValueSourceType.DbDataReader:
case ValueSourceType.IDataReader:
+#endif //PROJECTK
try {
+#if !PROJECTK
index = ((IDataRecord)this._rowSource).GetOrdinal(unquotedColumnName);
+#else
+ index = _DbDataReaderRowSource.GetOrdinal(unquotedColumnName);
+#endif //PROJECTK
}
catch (IndexOutOfRangeException e) {
throw (SQL.BulkLoadNonMatchingColumnName(unquotedColumnName, e));
}
+#if !PROJECTK
break;
}
+#endif //PROJECTK
if (index == -1) {
throw (SQL.BulkLoadNonMatchingColumnName(unquotedColumnName));
}
@@ -1830,7 +2076,7 @@ namespace System.Data.SqlClient {
// Reads a cell and then writes it.
// Read may block at this moment since there is no getValueAsync or DownStream async at this moment.
// When _isAsyncBulkCopy == true: Write will return Task (when async method runs asynchronously) or Null (when async call actually ran synchronously) for performance.
- // When _isAsyncBulkCopy == false: Writes are purely [....]. This method reutrn null at the end.
+ // When _isAsyncBulkCopy == false: Writes are purely sync. This method reutrn null at the end.
//
private Task ReadWriteColumnValueAsync(int col) {
bool isSqlType;
@@ -1841,6 +2087,14 @@ namespace System.Data.SqlClient {
_SqlMetaData metadata = _sortedColumnMappings[col]._metadata;
if (!isDataFeed) {
value = ConvertValue(value, metadata, isNull, ref isSqlType, out isDataFeed);
+
+ // If column encryption is requested via connection string option, perform encryption here
+ if (!isNull && // if value is not NULL
+ metadata.isEncrypted) { // If we are transparently encrypting
+ Debug.Assert (_parser.ShouldEncryptValuesForBulkCopy());
+ value = _parser.EncryptColumnValue(value, metadata, metadata.column, _stateObj, isDataFeed, isSqlType);
+ isSqlType = false; // Its not a sql type anymore
+ }
}
//write part
@@ -1850,6 +2104,8 @@ namespace System.Data.SqlClient {
writeTask = _parser.WriteBulkCopyValue(value, metadata, _stateObj, isSqlType, isDataFeed, isNull); //returns Task/Null
}
else {
+ // Target type shouldn't be encrypted
+ Debug.Assert (!metadata.isEncrypted, "Can't encrypt SQL Variant type");
SqlBuffer.StorageType variantInternalType = SqlBuffer.StorageType.Empty;
if ((_SqlDataReaderRowSource != null) && (_connection.IsKatmaiOrNewer)) {
variantInternalType = _SqlDataReaderRowSource.GetVariantInternalStorageType(_sortedColumnMappings[col]._sourceColumnOrdinal);
@@ -1946,7 +2202,9 @@ namespace System.Data.SqlClient {
// it's also the user's chance to cause an exception ...
_stateObj.BcpLock = true;
abortOperation = FireRowsCopiedEvent(_rowsCopied);
+#if !PROJECTK
Bid.Trace("<sc.SqlBulkCopy.WriteToServerInternal|INFO> \n");
+#endif // !PROJECTK
// just in case some pathological person closes the target connection ...
if (ConnectionState.Open != _connection.State) {
@@ -2129,7 +2387,7 @@ namespace System.Data.SqlClient {
AsyncHelper.ContinueTask(commandTask, source, () => {
Task continuedTask = CopyBatchesAsyncContinued(internalResults, updateBulkCommandText, cts, source);
if (continuedTask == null) {
- // Continuation finished [....], recall into CopyBatchesAsync to continue
+ // Continuation finished sync, recall into CopyBatchesAsync to continue
CopyBatchesAsync(internalResults, updateBulkCommandText, cts, source);
}
}, _connection.GetOpenTdsConnection());
@@ -2163,6 +2421,12 @@ namespace System.Data.SqlClient {
Debug.Assert(source == null || !source.Task.IsCompleted, "Called into CopyBatchesAsync with a completed task!");
try {
WriteMetaData(internalResults);
+
+ // Load encryption keys now (if needed)
+ _parser.LoadColumnEncryptionKeys(
+ internalResults[MetaDataResultId].MetaData,
+ _connection.DataSource);
+
Task task = CopyRowsAsync(0, _savedBatchSize, cts); //this is copying 1 batch of rows and setting _hasMoreRowToCopy = true/false.
//post->after every batch
@@ -2174,7 +2438,7 @@ namespace System.Data.SqlClient {
AsyncHelper.ContinueTask(task, source, () => {
Task continuedTask = CopyBatchesAsyncContinuedOnSuccess(internalResults, updateBulkCommandText, cts, source);
if (continuedTask == null) {
- // Continuation finished [....], recall into CopyBatchesAsync to continue
+ // Continuation finished sync, recall into CopyBatchesAsync to continue
CopyBatchesAsync(internalResults, updateBulkCommandText, cts, source);
}
}, _connection.GetOpenTdsConnection(), _ => CopyBatchesAsyncContinuedOnError(cleanupParser: false), () => CopyBatchesAsyncContinuedOnError(cleanupParser: true));
@@ -2246,6 +2510,7 @@ namespace System.Data.SqlClient {
// Takes care of cleaning up the parser, stateObj and transaction when CopyBatchesAsync fails
private void CopyBatchesAsyncContinuedOnError(bool cleanupParser) {
SqlInternalConnectionTds internalConnection = _connection.GetOpenTdsConnection();
+#if !PROJECTK
RuntimeHelpers.PrepareConstrainedRegions();
try {
#if DEBUG
@@ -2254,6 +2519,7 @@ namespace System.Data.SqlClient {
try {
tdsReliabilitySection.Start();
#endif //DEBUG
+#endif // !PROJECTK
if ((cleanupParser) && (_parser != null) && (_stateObj != null)) {
_parser._asyncWrite = false;
Task task = _parser.WriteBulkCopyDone(_stateObj);
@@ -2264,6 +2530,7 @@ namespace System.Data.SqlClient {
if (_stateObj != null) {
CleanUpStateObjectOnError();
}
+#if !PROJECTK
#if DEBUG
}
finally {
@@ -2283,6 +2550,7 @@ namespace System.Data.SqlClient {
internalConnection.DoomThisConnection();
throw;
}
+#endif // !PROJECTK
AbortTransaction();
}
@@ -2313,7 +2581,7 @@ namespace System.Data.SqlClient {
// The continuation part of WriteToServerInternalRest. Executes when the initial query task is completed. (see, WriteToServerInternalRest).
// It carries on the source which is passed from the WriteToServerInternalRest and performs SetResult when the entire copy is done.
- // The carried on source may be null in case of [....] copy. So no need to SetResult at that time.
+ // The carried on source may be null in case of Sync copy. So no need to SetResult at that time.
// It launches the copy operation.
//
private void WriteToServerInternalRestContinuedAsync(BulkCopySimpleResultSet internalResults, CancellationToken cts, TaskCompletionSource<object> source) {
@@ -2410,7 +2678,7 @@ namespace System.Data.SqlClient {
// Rest of the WriteToServerInternalAsync method.
// It carries on the source from its caller WriteToServerInternal.
- // source is null in case of [....] bcp. But valid in case of Async bcp.
+ // source is null in case of Sync bcp. But valid in case of Async bcp.
// It calls the WriteToServerInternalRestContinuedAsync as a continuation of the initial query task.
//
private void WriteToServerInternalRestAsync(CancellationToken cts, TaskCompletionSource<object> source) {
@@ -2487,7 +2755,9 @@ namespace System.Data.SqlClient {
try {
_stateObj = _parser.GetSession(this);
_stateObj._bulkCopyOpperationInProgress = true;
+#if !PROJECTK
_stateObj.StartSession(ObjectID);
+#endif //PROJECTK
}
finally {
internalConnection.ThreadHasParserLockForClose = false;
@@ -2518,7 +2788,7 @@ namespace System.Data.SqlClient {
}
}
- // This returns Task for Async, Null for [....]
+ // This returns Task for Async, Null for Sync
//
private Task WriteToServerInternalAsync(CancellationToken ctoken) {
TaskCompletionSource<object> source = null;
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopyColumnMapping.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopyColumnMapping.cs
index d4166c2d911..16b85f3a23d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopyColumnMapping.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopyColumnMapping.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlBulkCopyColumnMapping.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
// Todo: rename the file
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs
index ac37a1d924c..d11c23c8c61 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopyColumnMappingCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlBulkCopyMappingCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
// todo: rename the file
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopyOptions.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopyOptions.cs
index 9c7d1ed1710..62baf0f812f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopyOptions.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlBulkCopyOptions.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlBulkCopyOptions.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">mithomas</owner>
+// <owner current="true" primary="false">blained</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCachedBuffer.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCachedBuffer.cs
index 5e5e2c22da5..ded56bee758 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCachedBuffer.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCachedBuffer.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlCachedBuffer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientEncryptionAlgorithm.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientEncryptionAlgorithm.cs
new file mode 100644
index 00000000000..d8cc2dde566
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientEncryptionAlgorithm.cs
@@ -0,0 +1,33 @@
+//------------------------------------------------------------------------------
+// <copyright file="SqlException.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">balnee</owner>
+// <owner current="true" primary="false">krishnib</owner>
+//------------------------------------------------------------------------------
+namespace System.Data.SqlClient
+{
+ using System;
+
+ /// <summary>
+ /// Abstract base class for all TCE encryption algorithms. It exposes two functions
+ /// 1. Encrypt - This function is used by SqlClient under the covers to transparently encrypt TCE enabled column data.
+ /// 2. Decrypt - This function is used by SqlClient under the covers to transparently decrypt TCE enabled column data.
+ /// </summary>
+ internal abstract class SqlClientEncryptionAlgorithm
+ {
+ /// <summary>
+ /// Encrypts the plainText with a column encryption key
+ /// </summary>
+ /// <param name="plainText">Plain text value to be encrypted</param>
+ /// <returns></returns>
+ internal abstract byte[] EncryptData(byte[] plainText);
+
+ /// <summary>
+ /// Decrypts the cipherText with a column encryption key
+ /// </summary>
+ /// <param name="cipherText">Ciphertext value to be decrypted</param>
+ /// <returns></returns>
+ internal abstract byte[] DecryptData(byte[] cipherText);
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientEncryptionAlgorithmFactory.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientEncryptionAlgorithmFactory.cs
new file mode 100644
index 00000000000..bdd0c783365
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientEncryptionAlgorithmFactory.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+// <copyright file="SqlException.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">balnee</owner>
+// <owner current="true" primary="false">krishnib</owner>
+//------------------------------------------------------------------------------
+namespace System.Data.SqlClient
+{
+ /// <summary>
+ /// Abstract base class for all TCE encryption algorithm factory classes. Factory classes create instances of an encryption algorithm
+ /// with a given key. At runtime when we determine a particular column is marked for TCE, based on the encryption algorithm we invoke
+ /// the corresponding factory class and retrieve an object to an encryption algorithm.
+ /// </summary>
+ internal abstract class SqlClientEncryptionAlgorithmFactory
+ {
+ /// <summary>
+ /// Creates an encrytion algorithm with a given key.
+ /// </summary>
+ /// <param name="rootKey">encryption key that should be passed to the encryption algorithm to be created</param>
+ /// <param name="encryptionType">Encryption Type, some algorithms will need this</param>
+ /// <param name="encryptionAlgorithm">Encryption algorithm name. Needed for extracting version bits</param>
+ /// <returns>Return a newly created SqlClientEncryptionAlgorithm instance</returns>
+ internal abstract SqlClientEncryptionAlgorithm Create(SqlClientSymmetricKey encryptionKey, SqlClientEncryptionType encryptionType, string encryptionAlgorithm);
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientEncryptionAlgorithmFactoryList.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientEncryptionAlgorithmFactoryList.cs
new file mode 100644
index 00000000000..e012c24a03c
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientEncryptionAlgorithmFactoryList.cs
@@ -0,0 +1,79 @@
+//------------------------------------------------------------------------------
+// <copyright file="SqlClientEncryptionAlgorithmFactoryList.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">krishnib</owner>
+// <owner current="true" primary="false">balnee</owner>
+//------------------------------------------------------------------------------
+
+namespace System.Data.SqlClient {
+ using System;
+ using System.Diagnostics;
+ using System.Collections.Concurrent;
+ using System.Text;
+
+ /// <summary>
+ /// <para> Implements a global directory of all the encryption algorithms registered with client.</para>
+ /// </summary>
+ sealed internal class SqlClientEncryptionAlgorithmFactoryList {
+ private readonly ConcurrentDictionary<string, SqlClientEncryptionAlgorithmFactory> _encryptionAlgoFactoryList;
+ private static readonly SqlClientEncryptionAlgorithmFactoryList _singletonInstance = new SqlClientEncryptionAlgorithmFactoryList();
+
+ private SqlClientEncryptionAlgorithmFactoryList () {
+ _encryptionAlgoFactoryList = new ConcurrentDictionary<string, SqlClientEncryptionAlgorithmFactory>(concurrencyLevel: 4 * Environment.ProcessorCount /* default value in ConcurrentDictionary*/, capacity: 2);
+
+ // Add wellknown algorithms
+ _encryptionAlgoFactoryList.TryAdd(SqlAeadAes256CbcHmac256Algorithm.AlgorithmName, new SqlAeadAes256CbcHmac256Factory());
+ _encryptionAlgoFactoryList.TryAdd(SqlAes256CbcAlgorithm.AlgorithmName, new SqlAes256CbcFactory());
+ }
+
+ internal static SqlClientEncryptionAlgorithmFactoryList GetInstance () {
+ return _singletonInstance;
+ }
+
+ /// <summary>
+ /// Get the registered list of algorithms as a comma seperated list with algorithm names
+ /// wrapped in single quotes.
+ /// <summary>
+ internal string GetRegisteredCipherAlgorithmNames () {
+ StringBuilder builder = new StringBuilder();
+ bool firstElem = true;
+ foreach (string key in _encryptionAlgoFactoryList.Keys) {
+ if (firstElem) {
+ builder.Append("'");
+ firstElem = false;
+ }
+ else {
+ builder.Append(", '");
+ }
+ builder.Append (key);
+ builder.Append ("'");
+ }
+
+ return builder.ToString();
+ }
+
+ /// <summary>
+ /// Gets the algorithm handle instance for a given algorithm and instantiates it using the provided key and the encryption type.
+ /// </summary>
+ /// <param name="key"></param>
+ /// <param name="type"></param>
+ /// <param name="algorithmName"></param>
+ /// <param name="encryptionAlgorithm"></param>
+ internal void GetAlgorithm(SqlClientSymmetricKey key, byte type, string algorithmName, out SqlClientEncryptionAlgorithm encryptionAlgorithm) {
+ encryptionAlgorithm = null;
+
+ SqlClientEncryptionAlgorithmFactory factory = null;
+ if (!_encryptionAlgoFactoryList.TryGetValue (algorithmName, out factory)) {
+ throw SQL.UnknownColumnEncryptionAlgorithm(algorithmName,
+ SqlClientEncryptionAlgorithmFactoryList.GetInstance().GetRegisteredCipherAlgorithmNames());
+ }
+
+ Debug.Assert (null != factory, "Null Algorithm Factory class detected");
+
+ // If the factory exists, following method will Create an algorithm object. If this fails,
+ // it will raise an exception.
+ encryptionAlgorithm = factory.Create(key, (SqlClientEncryptionType)type, algorithmName);
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientEncryptionType.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientEncryptionType.cs
new file mode 100644
index 00000000000..3ba5a31986a
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientEncryptionType.cs
@@ -0,0 +1,19 @@
+//------------------------------------------------------------------------------
+// <copyright file="SqlException.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">balnee</owner>
+// <owner current="true" primary="false">krishnib</owner>
+//------------------------------------------------------------------------------
+namespace System.Data.SqlClient
+{
+ /// <summary>
+ /// Encryption types supported in TCE
+ /// </summary>
+ internal enum SqlClientEncryptionType
+ {
+ PlainText = 0,
+ Deterministic,
+ Randomized
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientFactory.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientFactory.cs
index b42193a8046..4763dd80d45 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientFactory.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientFactory.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlClientFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientMetaDataCollectionNames.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientMetaDataCollectionNames.cs
index 46d0f0da589..01530e81bd4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientMetaDataCollectionNames.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientMetaDataCollectionNames.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlClientMetaDataCollectionNames.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient{
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientPermission.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientPermission.cs
index d668f116979..695b9adad72 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientPermission.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientPermission.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlClientPermission.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientSymmetricKey.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientSymmetricKey.cs
new file mode 100644
index 00000000000..112108ae14b
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientSymmetricKey.cs
@@ -0,0 +1,73 @@
+//------------------------------------------------------------------------------
+// <copyright file="SqlException.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">balnee</owner>
+// <owner current="true" primary="false">krishnib</owner>
+//------------------------------------------------------------------------------
+namespace System.Data.SqlClient
+{
+ using System;
+ using System.Data.SqlClient;
+ using System.Security.Cryptography;
+
+ /// <summary>
+ /// Base class containing raw key bytes for symmetric key algorithms. Some encryption algorithms can use the key directly while others derive sub keys from this.
+ /// If an algorithm needs to derive more keys, have a derived class from this and use it in the corresponding encryption algorithm.
+ /// </summary>
+ internal class SqlClientSymmetricKey
+ {
+ /// <summary>
+ /// DPAPI protected key
+ /// </summary>
+ protected readonly byte[] _rootKey;
+
+ /// <summary>
+ /// Constructor that initializes the root key.
+ /// </summary>
+ /// <param name="rootKey">root key</param>
+ internal SqlClientSymmetricKey(byte[] rootKey)
+ {
+ // Key validation
+ if (rootKey == null || rootKey.Length == 0) {
+ throw SQL.NullColumnEncryptionKeySysErr();
+ }
+
+ _rootKey = rootKey;
+ }
+
+ /// <summary>
+ /// Returns a copy of the plain text key
+ /// This is needed for actual encryption/decryption.
+ /// </summary>
+ internal virtual byte[] RootKey
+ {
+ get
+ {
+ return _rootKey;
+ }
+ }
+
+ /// <summary>
+ /// Computes SHA256 value of the plain text key bytes
+ /// </summary>
+ /// <returns>A string containing SHA256 hash of the root key</returns>
+ internal virtual string GetKeyHash()
+ {
+ return SqlSecurityUtility.GetSHA256Hash(RootKey);
+ }
+
+ /// <summary>
+ /// Gets the length of the root key
+ /// </summary>
+ /// <returns>
+ /// Returns the length of the root key
+ /// </returns>
+ internal virtual int Length()
+ {
+ // Note: DPAPI preserves the original byte length
+ // so for now, this is as same as returning the length of the raw key.
+ return _rootKey.Length;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientWrapperSmiStream.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientWrapperSmiStream.cs
index e4e984da90b..32ef810a406 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientWrapperSmiStream.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientWrapperSmiStream.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlClientWrapperSmiStream.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientWrapperSmiStreamChars.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientWrapperSmiStreamChars.cs
index f5ae0f3df6c..1818a2e0c1d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientWrapperSmiStreamChars.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlClientWrapperSmiStreamChars.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlClientWrapperSmiStream.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlColumnEncryptionCertificateStoreProvider.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlColumnEncryptionCertificateStoreProvider.cs
new file mode 100644
index 00000000000..44357a9b363
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlColumnEncryptionCertificateStoreProvider.cs
@@ -0,0 +1,555 @@
+//------------------------------------------------------------------------------
+// <copyright file="SqlException.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">balnee</owner>
+// <owner current="true" primary="false">krishnib</owner>
+//------------------------------------------------------------------------------
+namespace System.Data.SqlClient
+{
+ using System;
+ using System.Text;
+ using System.Data.Common;
+ using System.Diagnostics;
+ using System.Globalization;
+ using System.Security;
+ using System.Security.Cryptography;
+ using System.Security.Cryptography.X509Certificates;
+
+ /// <summary>
+ /// Certificate Key Store Provider class
+ /// </summary>
+ sealed public class SqlColumnEncryptionCertificateStoreProvider : SqlColumnEncryptionKeyStoreProvider
+ {
+ // Constants
+ //
+ // Assumption: Certificate Locations (LocalMachine & CurrentUser), Certificate Store name "My"
+ // Certificate provider name (CertificateStore) dont need to be localized.
+
+ /// <summary>
+ /// RSA_OAEP is the only algorithm supported for encrypting/decrypting column encryption keys.
+ /// </summary>
+ internal const string RSAEncryptionAlgorithmWithOAEP = @"RSA_OAEP";
+
+ /// <summary>
+ /// Name for the certificate key store provider.
+ /// </summary>
+ internal const string ProviderName = @"MSSQL_CERTIFICATE_STORE";
+
+ /// <summary>
+ /// LocalMachine certificate store location. Valid certificate locations are LocalMachine and CurrentUser.
+ /// </summary>
+ private const string _certLocationLocalMachine = @"LocalMachine";
+
+ /// <summary>
+ /// CurrentUser certificate store location. Valid certificate locations are LocalMachine and CurrentUser.
+ /// </summary>
+ private const string _certLocationCurrentUser = @"CurrentUser";
+
+ /// <summary>
+ /// Valid certificate store
+ /// </summary>
+ private const string _myCertificateStore = @"My";
+
+ /// <summary>
+ /// Certificate path format. This is a custom format.
+ /// </summary>
+ private const string _certificatePathFormat = @"[LocalMachine|CurrentUser]/My/[Thumbprint]";
+
+ /// <summary>
+ /// Hashig algoirthm used for signing
+ /// </summary>
+ private const string _hashingAlgorithm = @"SHA256";
+
+ /// <summary>
+ /// Algorithm version
+ /// </summary>
+ private readonly byte[] _version = new byte[] { 0x01 };
+
+ /// <summary>
+ /// This function uses a certificate specified by the key path
+ /// and decrypts an encrypted CEK with RSA encryption algorithm.
+ /// </summary>
+ /// <param name="masterKeyPath">Complete path of a certificate</param>
+ /// <param name="encryptionAlgorithm">Asymmetric Key Encryption Algorithm</param>
+ /// <param name="encryptedColumnEncryptionKey">Encrypted Column Encryption Key</param>
+ /// <returns>Plain text column encryption key</returns>
+ public override byte[] DecryptColumnEncryptionKey(string masterKeyPath, string encryptionAlgorithm, byte[] encryptedColumnEncryptionKey)
+ {
+ // Validate the input parameters
+ ValidateNonEmptyCertificatePath(masterKeyPath, isSystemOp: true);
+
+ if (null == encryptedColumnEncryptionKey)
+ {
+ throw SQL.NullEncryptedColumnEncryptionKey();
+ }
+ else if (0 == encryptedColumnEncryptionKey.Length)
+ {
+ throw SQL.EmptyEncryptedColumnEncryptionKey();
+ }
+
+ // Validate encryptionAlgorithm
+ ValidateEncryptionAlgorithm(encryptionAlgorithm, isSystemOp: true);
+
+ // Validate key path length
+ ValidateCertificatePathLength(masterKeyPath, isSystemOp: true);
+
+ // Parse the path and get the X509 cert
+ X509Certificate2 certificate = GetCertificateByPath(masterKeyPath, isSystemOp: true);
+ int keySizeInBytes = certificate.PublicKey.Key.KeySize / 8;
+
+ // Validate and decrypt the EncryptedColumnEncryptionKey
+ // Format is
+ // version + keyPathLength + ciphertextLength + keyPath + ciphertext + signature
+ //
+ // keyPath is present in the encrypted column encryption key for identifying the original source of the asymmetric key pair and
+ // we will not validate it against the data contained in the CMK metadata (masterKeyPath).
+
+ // Validate the version byte
+ if (encryptedColumnEncryptionKey[0] != _version[0])
+ {
+ throw SQL.InvalidAlgorithmVersionInEncryptedCEK(encryptedColumnEncryptionKey[0], _version[0]);
+ }
+
+ // Get key path length
+ int currentIndex = _version.Length;
+ Int16 keyPathLength = BitConverter.ToInt16(encryptedColumnEncryptionKey, currentIndex);
+ currentIndex += sizeof(Int16);
+
+ // Get ciphertext length
+ int cipherTextLength = BitConverter.ToInt16(encryptedColumnEncryptionKey, currentIndex);
+ currentIndex += sizeof(Int16);
+
+ // Skip KeyPath
+ // KeyPath exists only for troubleshooting purposes and doesnt need validation.
+ currentIndex += keyPathLength;
+
+ // validate the ciphertext length
+ if (cipherTextLength != keySizeInBytes)
+ {
+ throw SQL.InvalidCiphertextLengthInEncryptedCEK(cipherTextLength, keySizeInBytes, masterKeyPath);
+ }
+
+ // Validate the signature length
+ int signatureLength = encryptedColumnEncryptionKey.Length - currentIndex - cipherTextLength;
+ if (signatureLength != keySizeInBytes)
+ {
+ throw SQL.InvalidSignatureInEncryptedCEK(signatureLength, keySizeInBytes, masterKeyPath);
+ }
+
+ // Get ciphertext
+ byte[] cipherText = new byte[cipherTextLength];
+ Buffer.BlockCopy(encryptedColumnEncryptionKey, currentIndex, cipherText, 0, cipherTextLength);
+ currentIndex += cipherTextLength;
+
+ // Get signature
+ byte[] signature = new byte[signatureLength];
+ Buffer.BlockCopy(encryptedColumnEncryptionKey, currentIndex, signature, 0, signature.Length);
+
+ // Compute the hash to validate the signature
+ byte[] hash;
+ using (SHA256Cng sha256 = new SHA256Cng())
+ {
+ sha256.TransformFinalBlock(encryptedColumnEncryptionKey, 0, encryptedColumnEncryptionKey.Length - signature.Length);
+ hash = sha256.Hash;
+ }
+
+ Debug.Assert(hash != null, @"hash should not be null while decrypting encrypted column encryption key.");
+
+ // Validate the signature
+ if (!RSAVerifySignature(hash, signature, certificate))
+ {
+ throw SQL.InvalidCertificateSignature(masterKeyPath);
+ }
+
+ // Decrypt the CEK
+ return RSADecrypt(cipherText, certificate);
+ }
+
+ /// <summary>
+ /// This function uses a certificate specified by the key path
+ /// and encrypts CEK with RSA encryption algorithm.
+ /// </summary>
+ /// <param name="keyPath">Complete path of a certificate</param>
+ /// <param name="encryptionAlgorithm">Asymmetric Key Encryption Algorithm</param>
+ /// <param name="columnEncryptionKey">Plain text column encryption key</param>
+ /// <returns>Encrypted column encryption key</returns>
+ public override byte[] EncryptColumnEncryptionKey(string masterKeyPath, string encryptionAlgorithm, byte[] columnEncryptionKey)
+ {
+ // Validate the input parameters
+ ValidateNonEmptyCertificatePath(masterKeyPath, isSystemOp: false);
+ if (null == columnEncryptionKey)
+ {
+ throw SQL.NullColumnEncryptionKey();
+ }
+ else if (0 == columnEncryptionKey.Length)
+ {
+ throw SQL.EmptyColumnEncryptionKey();
+ }
+
+ // Validate encryptionAlgorithm
+ ValidateEncryptionAlgorithm(encryptionAlgorithm, isSystemOp: false);
+
+ // Validate masterKeyPath Length
+ ValidateCertificatePathLength(masterKeyPath, isSystemOp: false);
+
+ // Parse the certificate path and get the X509 cert
+ X509Certificate2 certificate = GetCertificateByPath(masterKeyPath, isSystemOp: false);
+ int keySizeInBytes = certificate.PublicKey.Key.KeySize / 8;
+
+ // Construct the encryptedColumnEncryptionKey
+ // Format is
+ // version + keyPathLength + ciphertextLength + ciphertext + keyPath + signature
+ //
+ // We currently only support one version
+ byte[] version = new byte[] { _version[0] };
+
+ // Get the Unicode encoded bytes of cultureinvariant lower case masterKeyPath
+ byte[] masterKeyPathBytes = Encoding.Unicode.GetBytes(masterKeyPath.ToLowerInvariant());
+ byte[] keyPathLength = BitConverter.GetBytes((Int16)masterKeyPathBytes.Length);
+
+ // Encrypt the plain text
+ byte[] cipherText = RSAEncrypt(columnEncryptionKey, certificate);
+ byte[] cipherTextLength = BitConverter.GetBytes((Int16)cipherText.Length);
+ Debug.Assert(cipherText.Length == keySizeInBytes, @"cipherText length does not match the RSA key size");
+
+ // Compute hash
+ // SHA-2-256(version + keyPathLength + ciphertextLength + keyPath + ciphertext)
+ byte[] hash;
+ using (SHA256Cng sha256 = new SHA256Cng())
+ {
+ sha256.TransformBlock(version, 0, version.Length, version, 0);
+ sha256.TransformBlock(keyPathLength, 0, keyPathLength.Length, keyPathLength, 0);
+ sha256.TransformBlock(cipherTextLength, 0, cipherTextLength.Length, cipherTextLength, 0);
+ sha256.TransformBlock(masterKeyPathBytes, 0, masterKeyPathBytes.Length, masterKeyPathBytes, 0);
+ sha256.TransformFinalBlock(cipherText, 0, cipherText.Length);
+ hash = sha256.Hash;
+ }
+
+ // Sign the hash
+ byte[] signedHash = RSASignHashedData(hash, certificate);
+ Debug.Assert(signedHash.Length == keySizeInBytes, @"signed hash length does not match the RSA key size");
+ Debug.Assert(RSAVerifySignature(hash, signedHash, certificate), @"Invalid signature of the encrypted column encryption key computed.");
+
+ // Construct the encrypted column encryption key
+ // EncryptedColumnEncryptionKey = version + keyPathLength + ciphertextLength + keyPath + ciphertext + signature
+ int encryptedColumnEncryptionKeyLength = version.Length + cipherTextLength.Length + keyPathLength.Length + cipherText.Length + masterKeyPathBytes.Length + signedHash.Length;
+ byte[] encryptedColumnEncryptionKey = new byte[encryptedColumnEncryptionKeyLength];
+
+ // Copy version byte
+ int currentIndex = 0;
+ Buffer.BlockCopy(version, 0, encryptedColumnEncryptionKey, currentIndex, version.Length);
+ currentIndex += version.Length;
+
+ // Copy key path length
+ Buffer.BlockCopy(keyPathLength, 0, encryptedColumnEncryptionKey, currentIndex, keyPathLength.Length);
+ currentIndex += keyPathLength.Length;
+
+ // Copy ciphertext length
+ Buffer.BlockCopy(cipherTextLength, 0, encryptedColumnEncryptionKey, currentIndex, cipherTextLength.Length);
+ currentIndex += cipherTextLength.Length;
+
+ // Copy key path
+ Buffer.BlockCopy(masterKeyPathBytes, 0, encryptedColumnEncryptionKey, currentIndex, masterKeyPathBytes.Length);
+ currentIndex += masterKeyPathBytes.Length;
+
+ // Copy ciphertext
+ Buffer.BlockCopy(cipherText, 0, encryptedColumnEncryptionKey, currentIndex, cipherText.Length);
+ currentIndex += cipherText.Length;
+
+ // copy the signature
+ Buffer.BlockCopy(signedHash, 0, encryptedColumnEncryptionKey, currentIndex, signedHash.Length);
+
+ return encryptedColumnEncryptionKey;
+ }
+
+ /// <summary>
+ /// This function validates that the encryption algorithm is RSA_OAEP and if it is not,
+ /// then throws an exception
+ /// </summary>
+ /// <param name="encryptionAlgorithm">Asymmetric key encryptio algorithm</param>
+ private void ValidateEncryptionAlgorithm(string encryptionAlgorithm, bool isSystemOp)
+ {
+ // This validates that the encryption algorithm is RSA_OAEP
+ if (null == encryptionAlgorithm)
+ {
+ throw SQL.NullKeyEncryptionAlgorithm(isSystemOp);
+ }
+
+ if (string.Equals(encryptionAlgorithm, RSAEncryptionAlgorithmWithOAEP, StringComparison.OrdinalIgnoreCase) != true)
+ {
+ throw SQL.InvalidKeyEncryptionAlgorithm(encryptionAlgorithm, RSAEncryptionAlgorithmWithOAEP, isSystemOp);
+ }
+ }
+
+ /// <summary>
+ /// Certificate path length has to fit in two bytes, so check its value against Int16.MaxValue
+ /// </summary>
+ /// <param name="masterKeyPath"></param>
+ /// <param name="isSystemOp"></param>
+ private void ValidateCertificatePathLength(string masterKeyPath, bool isSystemOp)
+ {
+ if (masterKeyPath.Length >= Int16.MaxValue)
+ {
+ throw SQL.LargeCertificatePathLength(masterKeyPath.Length, Int16.MaxValue, isSystemOp);
+ }
+ }
+
+ /// <summary>
+ /// Gets a string array containing Valid certificate locations.
+ /// </summary>
+ private string[] GetValidCertificateLocations()
+ {
+ return new string[2] {_certLocationLocalMachine, _certLocationCurrentUser};
+ }
+
+ /// <summary>
+ /// Checks if the certificate path is Empty or Null (and raises exception if they are).
+ /// </summary>
+ private void ValidateNonEmptyCertificatePath(string masterKeyPath, bool isSystemOp)
+ {
+ if (string.IsNullOrWhiteSpace(masterKeyPath))
+ {
+ if (null == masterKeyPath)
+ {
+ throw SQL.NullCertificatePath(GetValidCertificateLocations(), isSystemOp);
+ }
+ else
+ {
+ throw SQL.InvalidCertificatePath(masterKeyPath, GetValidCertificateLocations(), isSystemOp);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Parses the given certificate path, searches in certificate store and returns a matching certificate
+ /// </summary>
+ /// <param name="keyPath">
+ /// Certificate key path. Format of the path is [LocalMachine|CurrentUser]/[storename]/thumbprint
+ /// </param>
+ /// <returns>Returns the certificate identified by the certificate path</returns>
+ private X509Certificate2 GetCertificateByPath(string keyPath, bool isSystemOp)
+ {
+ Debug.Assert(!string.IsNullOrEmpty(keyPath));
+
+ // Assign default values for omitted fields
+ StoreLocation storeLocation = StoreLocation.LocalMachine; // Default to Local Machine
+ StoreName storeName = StoreName.My;
+ string[] certParts = keyPath.Split('/');
+
+ // Validate certificate path
+ // Certificate path should only contain 3 parts (Certificate Location, Certificate Store Name and Thumbprint)
+ if (certParts.Length > 3)
+ {
+ throw SQL.InvalidCertificatePath(keyPath, GetValidCertificateLocations(), isSystemOp);
+ }
+
+ // Extract the store location where the cert is stored
+ if (certParts.Length > 2)
+ {
+ if (string.Equals(certParts[0], _certLocationLocalMachine, StringComparison.OrdinalIgnoreCase) == true)
+ {
+ storeLocation = StoreLocation.LocalMachine;
+ }
+ else if (string.Equals(certParts[0], _certLocationCurrentUser, StringComparison.OrdinalIgnoreCase) == true)
+ {
+ storeLocation = StoreLocation.CurrentUser;
+ }
+ else
+ {
+ // throw an invalid certificate location exception
+ throw SQL.InvalidCertificateLocation(certParts[0], keyPath, GetValidCertificateLocations(), isSystemOp);
+ }
+ }
+
+ // Parse the certificate store name
+ if (certParts.Length > 1)
+ {
+ if (string.Equals(certParts[certParts.Length - 2], _myCertificateStore, StringComparison.OrdinalIgnoreCase) == true)
+ {
+ storeName = StoreName.My;
+ }
+ else
+ {
+ // We only support storing them in My certificate store
+ throw SQL.InvalidCertificateStore(certParts[certParts.Length - 2], keyPath, _myCertificateStore, isSystemOp);
+ }
+ }
+
+ // Get thumpbrint
+ string thumbprint = certParts[certParts.Length - 1];
+ if (string.IsNullOrEmpty(thumbprint))
+ {
+ // An empty thumbprint specified
+ throw SQL.EmptyCertificateThumbprint(keyPath, isSystemOp);
+ }
+
+ // Find the certificate and return
+ return GetCertificate(storeLocation, storeName, keyPath, thumbprint, isSystemOp);
+ }
+
+ /// <summary>
+ /// Searches for a certificate in certificate store and returns the matching certificate
+ /// </summary>
+ /// <param name="storeLocation">Store Location: This can be one of LocalMachine or UserName</param>
+ /// <param name="storeName">Store Location: Currently this can only be My store.</param>
+ /// <param name="thumbprint">Certificate thumbprint</param>
+ /// <returns>Matching certificate</returns>
+ private X509Certificate2 GetCertificate(StoreLocation storeLocation, StoreName storeName, string masterKeyPath, string thumbprint, bool isSystemOp)
+ {
+ // Open specified certificate store
+ X509Store certificateStore = null;
+
+ try
+ {
+ certificateStore = new X509Store(storeName, storeLocation);
+ certificateStore.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
+
+ // Search for the specified certificate
+ X509Certificate2Collection matchingCertificates =
+ certificateStore.Certificates.Find(X509FindType.FindByThumbprint,
+ thumbprint,
+ false);
+
+ // Throw an exception if a cert with the specified thumbprint is not found
+ if (matchingCertificates == null || matchingCertificates.Count == 0)
+ {
+ throw SQL.CertificateNotFound(thumbprint, storeName.ToString(), storeLocation.ToString(), isSystemOp);
+ }
+
+ X509Certificate2 certificate = matchingCertificates[0];
+ if (!certificate.HasPrivateKey)
+ {
+ // ensure the certificate has private key
+ throw SQL.CertificateWithNoPrivateKey(masterKeyPath, isSystemOp);
+ }
+
+ // return the matching certificate
+ return certificate;
+ }
+ finally
+ {
+ // Close the certificate store
+ if (certificateStore != null)
+ {
+ certificateStore.Close();
+ }
+ }
+ }
+
+ /// <summary>
+ /// Encrypt the text using specified certificate.
+ /// </summary>
+ /// <param name="plaintext">Text to encrypt.</param>
+ /// <param name="certificate">Certificate object.</param>
+ /// <param name="masterKeyPath">Master key path that was used.</param>
+ /// <returns>Returns an encrypted blob or throws an exception if there are any errors.</returns>
+ private byte[] RSAEncrypt(byte[] plainText, X509Certificate2 certificate)
+ {
+ Debug.Assert(plainText != null);
+ Debug.Assert(certificate != null);
+ Debug.Assert(certificate.HasPrivateKey, "Attempting to encrypt with cert without privatekey");
+
+ RSACryptoServiceProvider rscp = (RSACryptoServiceProvider)certificate.PublicKey.Key;
+ return rscp.Encrypt(plainText, fOAEP: true);
+ }
+
+ /// <summary>
+ /// Encrypt the text using specified certificate.
+ /// </summary>
+ /// <param name="plaintext">Text to decrypt.</param>
+ /// <param name="certificate">Certificate object.</param>
+ /// <param name="masterKeyPath">Master key path that was used.</param>
+ private byte[] RSADecrypt(byte[] cipherText, X509Certificate2 certificate)
+ {
+ Debug.Assert((cipherText != null) && (cipherText.Length != 0));
+ Debug.Assert(certificate != null);
+ Debug.Assert(certificate.HasPrivateKey, "Attempting to decrypt with cert without privatekey");
+
+ RSACryptoServiceProvider rscp = (RSACryptoServiceProvider)certificate.PrivateKey;
+ return rscp.Decrypt(cipherText, fOAEP: true);
+ }
+
+ /// <summary>
+ /// Generates signature based on RSA PKCS#v1.5 scheme using a specified certificate.
+ /// </summary>
+ /// <param name="dataToSign">Text to sign.</param>
+ /// <param name="certificate">Certificate object.</param>
+ /// <returns>Signature</returns>
+ private byte[] RSASignHashedData(byte[] dataToSign, X509Certificate2 certificate)
+ {
+ Debug.Assert((dataToSign != null) && (dataToSign.Length != 0));
+ Debug.Assert(certificate != null);
+ Debug.Assert(certificate.HasPrivateKey, "Attempting to sign with cert without privatekey");
+
+ // Prepare RSACryptoServiceProvider from certificate's private key
+ RSACryptoServiceProvider rscp = GetCSPFromCertificatePrivateKey(certificate);
+
+ // Prepare RSAPKCS1SignatureFormatter for signing the passed in hash
+ RSAPKCS1SignatureFormatter rsaFormatter = new RSAPKCS1SignatureFormatter(rscp);
+
+ //Set the hash algorithm to SHA256.
+ rsaFormatter.SetHashAlgorithm(_hashingAlgorithm);
+
+ //Create a signature for HashValue and return it.
+ return rsaFormatter.CreateSignature(dataToSign);
+ }
+
+ /// <summary>
+ /// Verifies the given RSA PKCSv1.5 signature.
+ /// </summary>
+ /// <param name="dataToVerify"></param>
+ /// <param name="signature"></param>
+ /// <param name="certificate"></param>
+ /// <returns>true if signature is valid, false if it is not valid</returns>
+ private bool RSAVerifySignature(byte[] dataToVerify, byte[] signature, X509Certificate2 certificate)
+ {
+ Debug.Assert((dataToVerify != null) && (dataToVerify.Length != 0));
+ Debug.Assert((signature != null) && (signature.Length != 0));
+ Debug.Assert(certificate != null);
+ Debug.Assert(certificate.HasPrivateKey, "Attempting to sign with cert without privatekey");
+
+ // Prepare RSACryptoServiceProvider from certificate's private key
+ RSACryptoServiceProvider rscp = GetCSPFromCertificatePrivateKey(certificate);
+
+ // Prepare RSAPKCS1SignatureFormatter for signing the passed in hash
+ RSAPKCS1SignatureDeformatter rsaDeFormatter = new RSAPKCS1SignatureDeformatter(rscp);
+
+ //Set the hash algorithm to SHA256.
+ rsaDeFormatter.SetHashAlgorithm(_hashingAlgorithm);
+
+ //Create a signature for HashValue and return it.
+ return rsaDeFormatter.VerifySignature(dataToVerify, signature);
+ }
+
+ /// <summary>
+ /// Prepares RSACryptoServiceProvider from a given certificate's private key
+ /// </summary>
+ /// <param name="certificate"></param>
+ /// <returns></returns>
+ private RSACryptoServiceProvider GetCSPFromCertificatePrivateKey(X509Certificate2 certificate)
+ {
+ const int rsaAesProviderType = 24;
+
+ CspParameters privateKeyParams = new CspParameters();
+ privateKeyParams = new CspParameters();
+ privateKeyParams.KeyContainerName = ((RSACryptoServiceProvider)certificate.PrivateKey).CspKeyContainerInfo.KeyContainerName;
+ privateKeyParams.ProviderType = rsaAesProviderType /*PROV_RSA_AES*/;
+ privateKeyParams.KeyNumber = (int)((RSACryptoServiceProvider)certificate.PrivateKey).CspKeyContainerInfo.KeyNumber;
+
+ // For CurrentUser store, use UseExistingKey
+ // For LocalMachine store, use UseMachineKeyStore
+ // CspKeyContainerInfo.MachineKeyStore already contains the appropriate information so just use it.
+ if (((RSACryptoServiceProvider)certificate.PrivateKey).CspKeyContainerInfo.MachineKeyStore)
+ {
+ privateKeyParams.Flags = CspProviderFlags.UseMachineKeyStore;
+ }
+ else
+ {
+ privateKeyParams.Flags = CspProviderFlags.UseExistingKey;
+ }
+
+ return new RSACryptoServiceProvider(privateKeyParams);
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlColumnEncryptionKeyStoreProvider.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlColumnEncryptionKeyStoreProvider.cs
new file mode 100644
index 00000000000..afcf970bc46
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlColumnEncryptionKeyStoreProvider.cs
@@ -0,0 +1,39 @@
+//------------------------------------------------------------------------------
+// <copyright file="SqlException.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">balnee</owner>
+// <owner current="true" primary="false">krishnib</owner>
+//------------------------------------------------------------------------------
+namespace System.Data.SqlClient
+{
+ using System;
+
+ /// <summary>
+ /// Abstract base class for all column encryption Key Store providers. It exposes two functions
+ /// 1. DecryptColumnEncryptionKey - This is the function used by SqlClient under the covers to decrypt encrypted column encryption key blob.
+ /// 2. EncryptColumnEncryptionKey - This will be used by client tools that generate DDL for customers
+ /// </summary>
+ public abstract class SqlColumnEncryptionKeyStoreProvider
+ {
+ /// <summary>
+ /// This function must be implemented by the corresponding Key Store providers. This function should use an asymmetric key identified by the key path
+ /// and decrypt an encrypted column encryption key with a given encryption algorithm.
+ /// </summary>
+ /// <param name="masterKeyPath">Complete path of an asymmetric key. Path format is specific to a key store provider.</param>
+ /// <param name="encryptionAlgorithm">Asymmetric Key Encryption Algorithm</param>
+ /// <param name="encryptedColumnEncryptionKey">Encrypted Column Encryption Key</param>
+ /// <returns>Plain text column encryption key</returns>
+ public abstract byte[] DecryptColumnEncryptionKey(string masterKeyPath, string encryptionAlgorithm, byte[] encryptedColumnEncryptionKey);
+
+ /// <summary>
+ /// This function must be implemented by the corresponding Key Store providers. This function should use an asymmetric key identified by a key path
+ /// and encrypt a plain text column encryption key with a given asymmetric key encryption algorithm.
+ /// </summary>
+ /// <param name="keyPath">Complete path of an asymmetric key. Path format is specific to a key store provider.</param>
+ /// <param name="encryptionAlgorithm">Asymmetric Key Encryption Algorithm</param>
+ /// <param name="columnEncryptionKey">Plain text column encryption key to be encrypted</param>
+ /// <returns>Encrypted column encryption key</returns>
+ public abstract byte[] EncryptColumnEncryptionKey(string masterKeyPath, string encryptionAlgorithm, byte[] columnEncryptionKey);
+ }
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCommand.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCommand.cs
index 3079ff01518..3e247da7d86 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCommand.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCommand.cs
@@ -2,14 +2,15 @@
// <copyright file="SqlCommand.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
using System;
using System.Collections;
using System.Collections.Generic;
+ using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Configuration.Assemblies;
using System.Data;
@@ -18,8 +19,10 @@ namespace System.Data.SqlClient {
using System.Data.Sql;
using System.Data.SqlTypes;
using System.Diagnostics;
+ using System.Diagnostics.Tracing;
using System.Globalization;
using System.IO;
+ using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.ConstrainedExecution;
@@ -48,8 +51,38 @@ namespace System.Data.SqlClient {
private int _commandTimeout = ADP.DefaultCommandTimeout;
private UpdateRowSource _updatedRowSource = UpdateRowSource.Both;
private bool _designTimeInvisible;
+
+ /// <summary>
+ /// Indicates if the column encryption setting was set at-least once in the batch rpc mode, when using AddBatchCommand.
+ /// </summary>
+ private bool _wasBatchModeColumnEncryptionSettingSetOnce;
+
+ /// <summary>
+ /// Column Encryption Override. Defaults to SqlConnectionSetting, in which case
+ /// it will be Enabled if SqlConnectionOptions.IsColumnEncryptionSettingEnabled = true, Disabled if false.
+ /// This may also be used to set other behavior which overrides connection level setting.
+ /// </summary>
+ private SqlCommandColumnEncryptionSetting _columnEncryptionSetting = SqlCommandColumnEncryptionSetting.UseConnectionSetting;
+
internal SqlDependency _sqlDep;
+#if DEBUG
+ /// <summary>
+ /// Force the client to sleep during sp_describe_parameter_encryption in the function TryFetchInputParameterEncryptionInfo.
+ /// </summary>
+ private static bool _sleepDuringTryFetchInputParameterEncryptionInfo = false;
+
+ /// <summary>
+ /// Force the client to sleep during sp_describe_parameter_encryption in the function RunExecuteReaderTds.
+ /// </summary>
+ private static bool _sleepDuringRunExecuteReaderTdsForSpDescribeParameterEncryption = false;
+
+ /// <summary>
+ /// Force the client to sleep during sp_describe_parameter_encryption after ReadDescribeEncryptionParameterResults.
+ /// </summary>
+ private static bool _sleepAfterReadDescribeEncryptionParameterResults = false;
+#endif
+
// devnote: Prepare
// Against 7.0 Server (Sphinx) a prepare/unprepare requires an extra roundtrip to the server.
//
@@ -83,6 +116,7 @@ namespace System.Data.SqlClient {
private bool _dirty = false; // true if the user changes the commandtext or number of parameters after the command is already prepared
private EXECTYPE _execType = EXECTYPE.UNPREPARED; // by default, assume the user is not sharing a connection so the command has not been prepared
private _SqlRPC[] _rpcArrayOf1 = null; // Used for RPC executes
+ private _SqlRPC _rpcForEncryption = null; // Used for sp_describe_parameter_encryption RPC executes
// cut down on object creation and cache all these
// cached metadata
@@ -100,6 +134,21 @@ namespace System.Data.SqlClient {
}
}
+ /// <summary>
+ /// Return if column encryption setting is enabled.
+ /// The order in the below if is important since _activeConnection.Parser can throw if the
+ /// underlying tds connection is closed and we don't want to change the behavior for folks
+ /// not trying to use transparent parameter encryption i.e. who don't use (SqlCommandColumnEncryptionSetting.Enabled or _activeConnection.IsColumnEncryptionSettingEnabled) here.
+ /// </summary>
+ internal bool IsColumnEncryptionEnabled {
+ get {
+ return (_columnEncryptionSetting == SqlCommandColumnEncryptionSetting.Enabled
+ || (_columnEncryptionSetting == SqlCommandColumnEncryptionSetting.UseConnectionSetting && _activeConnection.IsColumnEncryptionSettingEnabled))
+ && _activeConnection.Parser != null
+ && _activeConnection.Parser.IsColumnEncryptionSupported;
+ }
+ }
+
// Cached info for async executions
private class CachedAsyncState {
private int _cachedAsyncCloseCount = -1; // value of the connection's CloseCount property when the asyncResult was set; tracks when connections are closed after an async operation
@@ -189,6 +238,10 @@ namespace System.Data.SqlClient {
// _rowsAffected is cumulative for ExecuteNonQuery across all rpc batches
internal int _rowsAffected = -1; // rows affected by the command
+ // number of rows affected by sp_describe_parameter_encryption.
+ // The below line is used only for debug asserts and not exposed publicly or impacts functionality otherwise.
+ private int _rowsAffectedBySpDescribeParameterEncryption = -1;
+
private SqlNotificationRequest _notification;
private bool _notificationAutoEnlist = true; // Notifications auto enlistment is turned on by default
@@ -209,9 +262,31 @@ namespace System.Data.SqlClient {
private bool _batchRPCMode;
private List<_SqlRPC> _RPCList;
private _SqlRPC[] _SqlRPCBatchArray;
+ private _SqlRPC[] _sqlRPCParameterEncryptionReqArray;
private List<SqlParameterCollection> _parameterCollectionList;
private int _currentlyExecutingBatch;
+ /// <summary>
+ /// This variable is used to keep track of which RPC batch's results are being read when reading the results of
+ /// describe parameter encryption RPC requests in BatchRPCMode.
+ /// </summary>
+ private int _currentlyExecutingDescribeParameterEncryptionRPC;
+
+ /// <summary>
+ /// A flag to indicate if we have in-progress describe parameter encryption RPC requests.
+ /// Reset to false when completed.
+ /// </summary>
+ private bool _isDescribeParameterEncryptionRPCCurrentlyInProgress;
+
+ /// <summary>
+ /// Return the flag that indicates if describe parameter encryption RPC requests are in-progress.
+ /// </summary>
+ internal bool IsDescribeParameterEncryptionRPCCurrentlyInProgress {
+ get {
+ return _isDescribeParameterEncryptionRPCCurrentlyInProgress;
+ }
+ }
+
//
// Smi execution-specific stuff
//
@@ -272,6 +347,7 @@ namespace System.Data.SqlClient {
private SmiContext _smiRequestContext; // context that _smiRequest came from
private CommandEventSink _smiEventSink;
private SmiEventSink_DeferedProcessing _outParamEventSink;
+
private CommandEventSink EventSink {
get {
if ( null == _smiEventSink ) {
@@ -316,6 +392,13 @@ namespace System.Data.SqlClient {
Transaction = transaction;
}
+ public SqlCommand(string cmdText, SqlConnection connection, SqlTransaction transaction, SqlCommandColumnEncryptionSetting columnEncryptionSetting) : this() {
+ CommandText = cmdText;
+ Connection = connection;
+ Transaction = transaction;
+ _columnEncryptionSetting = columnEncryptionSetting;
+ }
+
private SqlCommand(SqlCommand from) : this() { // Clone
CommandText = from.CommandText;
CommandTimeout = from.CommandTimeout;
@@ -324,6 +407,7 @@ namespace System.Data.SqlClient {
DesignTimeVisible = from.DesignTimeVisible;
Transaction = from.Transaction;
UpdatedRowSource = from.UpdatedRowSource;
+ _columnEncryptionSetting = from.ColumnEncryptionSetting;
SqlParameterCollection parameters = Parameters;
foreach(object parameter in from.Parameters) {
@@ -401,7 +485,8 @@ namespace System.Data.SqlClient {
}
}
- _activeConnection = value; // UNDONE: Designers need this setter. Should we block other scenarios?
+ _activeConnection = value; //
+
Bid.Trace("<sc.SqlCommand.set_Connection|API> %d#, %d#\n", ObjectID, ((null != value) ? value.ObjectID : -1));
}
}
@@ -541,6 +626,18 @@ namespace System.Data.SqlClient {
}
[
+ Browsable(false),
+ DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
+ ResCategoryAttribute(Res.DataCategory_Data),
+ ResDescriptionAttribute(Res.TCE_SqlCommand_ColumnEncryptionSetting),
+ ]
+ public SqlCommandColumnEncryptionSetting ColumnEncryptionSetting {
+ get {
+ return _columnEncryptionSetting;
+ }
+ }
+
+ [
ResCategoryAttribute(Res.DataCategory_Data),
ResDescriptionAttribute(Res.DbCommand_CommandTimeout),
]
@@ -1012,16 +1109,25 @@ namespace System.Data.SqlClient {
Bid.ScopeEnter(out hscp, "<sc.SqlCommand.ExecuteScalar|API> %d#", ObjectID);
Bid.CorrelationTrace("<sc.SqlCommand.ExecuteScalar|API|Correlation> ObjectID%d#, ActivityID %ls\n", ObjectID);
-
+ bool success = false;
+ int? sqlExceptionNumber = null;
try {
statistics = SqlStatistics.StartTimer(Statistics);
+ WriteBeginExecuteEvent();
SqlDataReader ds;
ds = RunExecuteReader(0, RunBehavior.ReturnImmediately, true, ADP.ExecuteScalar);
- return CompleteExecuteScalar(ds, false);
+ object result = CompleteExecuteScalar(ds, false);
+ success = true;
+ return result;
+ }
+ catch (SqlException ex) {
+ sqlExceptionNumber = ex.Number;
+ throw;
}
finally {
SqlStatistics.StopTimer(statistics);
Bid.ScopeLeave(ref hscp);
+ WriteEndExecuteEvent(success, sqlExceptionNumber, synchronous: true);
}
}
@@ -1059,14 +1165,23 @@ namespace System.Data.SqlClient {
IntPtr hscp;
Bid.ScopeEnter(out hscp, "<sc.SqlCommand.ExecuteNonQuery|API> %d#", ObjectID);
Bid.CorrelationTrace("<sc.SqlCommand.ExecuteNonQuery|API|Correlation> ObjectID%d#, ActivityID %ls\n", ObjectID);
+ bool success = false;
+ int? sqlExceptionNumber = null;
try {
statistics = SqlStatistics.StartTimer(Statistics);
+ WriteBeginExecuteEvent();
InternalExecuteNonQuery(null, ADP.ExecuteNonQuery, false, CommandTimeout);
+ success = true;
return _rowsAffected;
}
+ catch (SqlException ex) {
+ sqlExceptionNumber = ex.Number;
+ throw;
+ }
finally {
SqlStatistics.StopTimer(statistics);
Bid.ScopeLeave(ref hscp);
+ WriteEndExecuteEvent(success, sqlExceptionNumber, synchronous : true);
}
}
@@ -1120,6 +1235,7 @@ namespace System.Data.SqlClient {
SqlStatistics statistics = null;
try {
statistics = SqlStatistics.StartTimer(Statistics);
+ WriteBeginExecuteEvent();
TaskCompletionSource<object> completion = new TaskCompletionSource<object>(stateObject);
try { // InternalExecuteNonQuery already has reliability block, but if failure will not put stateObj back into pool.
@@ -1221,6 +1337,18 @@ namespace System.Data.SqlClient {
else if (completionTask.IsFaulted) {
throw completionTask.Exception.InnerException;
}
+
+ // If transparent parameter encryption was attempted, then we need to skip other checks like those on EndMethodName
+ // since we want to wait for async results before checking those fields.
+ if (IsColumnEncryptionEnabled) {
+ if (_activeConnection.State != ConnectionState.Open) {
+ // If the connection is not 'valid' then it was closed while we were executing
+ throw ADP.ClosedConnectionError();
+ }
+
+ return;
+ }
+
if (cachedAsyncState.EndMethodName == null) {
throw ADP.MethodCalledTwice(endMethod);
}
@@ -1283,6 +1411,8 @@ namespace System.Data.SqlClient {
TdsParser bestEffortCleanupTarget = null;
RuntimeHelpers.PrepareConstrainedRegions();
+ bool success = false;
+ int? sqlExceptionNumber = null;
try {
#if DEBUG
TdsParser.ReliabilitySection tdsReliabilitySection = new TdsParser.ReliabilitySection();
@@ -1298,6 +1428,23 @@ namespace System.Data.SqlClient {
VerifyEndExecuteState((Task)asyncResult, ADP.EndExecuteNonQuery);
WaitForAsyncResults(asyncResult);
+ // If Transparent parameter encryption was attempted, then we would have skipped the below
+ // checks in VerifyEndExecuteState since we wanted to wait for WaitForAsyncResults to complete.
+ if (IsColumnEncryptionEnabled) {
+ if (cachedAsyncState.EndMethodName == null) {
+ throw ADP.MethodCalledTwice(ADP.EndExecuteNonQuery);
+ }
+
+ if (ADP.EndExecuteNonQuery != cachedAsyncState.EndMethodName) {
+ throw ADP.MismatchedAsyncResult(cachedAsyncState.EndMethodName, ADP.EndExecuteNonQuery);
+ }
+
+ if (!cachedAsyncState.IsActiveConnectionValid(_activeConnection)) {
+ // If the connection is not 'valid' then it was closed while we were executing
+ throw ADP.ClosedConnectionError();
+ }
+ }
+
bool processFinallyBlock = true;
try {
NotifyDependency();
@@ -1322,6 +1469,10 @@ namespace System.Data.SqlClient {
}
}
}
+ catch (SqlException e) {
+ sqlExceptionNumber = e.Number;
+ throw;
+ }
catch (Exception e) {
processFinallyBlock = ADP.IsCatchableExceptionType(e);
throw;
@@ -1333,6 +1484,7 @@ namespace System.Data.SqlClient {
}
Debug.Assert(null == _stateObj, "non-null state object in EndExecuteNonQuery");
+ success = true;
return _rowsAffected;
}
#if DEBUG
@@ -1365,6 +1517,7 @@ namespace System.Data.SqlClient {
}
finally {
SqlStatistics.StopTimer(statistics);
+ WriteEndExecuteEvent(success, sqlExceptionNumber, synchronous: false);
}
}
@@ -1463,17 +1616,27 @@ namespace System.Data.SqlClient {
IntPtr hscp;
Bid.ScopeEnter(out hscp, "<sc.SqlCommand.ExecuteXmlReader|API> %d#", ObjectID);
Bid.CorrelationTrace("<sc.SqlCommand.ExecuteXmlReader|API|Correlation> ObjectID%d#, ActivityID %ls\n", ObjectID);
+ bool success = false;
+ int? sqlExceptionNumber = null;
try {
statistics = SqlStatistics.StartTimer(Statistics);
+ WriteBeginExecuteEvent();
// use the reader to consume metadata
SqlDataReader ds;
ds = RunExecuteReader(CommandBehavior.SequentialAccess, RunBehavior.ReturnImmediately, true, ADP.ExecuteXmlReader);
- return CompleteXmlReader(ds);
+ XmlReader result = CompleteXmlReader(ds);
+ success = true;
+ return result;
+ }
+ catch (SqlException ex) {
+ sqlExceptionNumber = ex.Number;
+ throw;
}
finally {
SqlStatistics.StopTimer(statistics);
Bid.ScopeLeave(ref hscp);
+ WriteEndExecuteEvent(success, sqlExceptionNumber, synchronous : true);
}
}
@@ -1505,6 +1668,7 @@ namespace System.Data.SqlClient {
SqlStatistics statistics = null;
try {
statistics = SqlStatistics.StartTimer(Statistics);
+ WriteBeginExecuteEvent();
TaskCompletionSource<object> completion = new TaskCompletionSource<object>(stateObject);
Task writeTask;
@@ -1621,8 +1785,22 @@ namespace System.Data.SqlClient {
}
private XmlReader EndExecuteXmlReaderInternal(IAsyncResult asyncResult) {
+ bool success = false;
+ int? sqlExceptionNumber = null;
try {
- return CompleteXmlReader(InternalEndExecuteReader(asyncResult, ADP.EndExecuteXmlReader));
+ XmlReader result = CompleteXmlReader(InternalEndExecuteReader(asyncResult, ADP.EndExecuteXmlReader));
+ success = true;
+ return result;
+ }
+ catch (SqlException e){
+ sqlExceptionNumber = e.Number;
+ if (cachedAsyncState != null) {
+ cachedAsyncState.ResetAsyncState();
+ };
+
+ // SqlException is always catchable
+ ReliablePutStateObject();
+ throw;
}
catch (Exception e) {
if (cachedAsyncState != null) {
@@ -1633,6 +1811,9 @@ namespace System.Data.SqlClient {
};
throw;
}
+ finally {
+ WriteEndExecuteEvent(success, sqlExceptionNumber, synchronous : false);
+ }
}
private XmlReader CompleteXmlReader(SqlDataReader ds) {
@@ -1717,7 +1898,7 @@ namespace System.Data.SqlClient {
}
internal SqlDataReader ExecuteReader(CommandBehavior behavior, string method) {
- SqlConnection.ExecutePermission.Demand(); // TODO: Need to move this to public methods...
+ SqlConnection.ExecutePermission.Demand(); //
// Reset _pendingCancel upon entry into any Execute - used to synchronize state
// between entry into Execute* API and the thread obtaining the stateObject.
@@ -1727,7 +1908,10 @@ namespace System.Data.SqlClient {
TdsParser bestEffortCleanupTarget = null;
RuntimeHelpers.PrepareConstrainedRegions();
+ bool success = false;
+ int? sqlExceptionNumber = null;
try {
+ WriteBeginExecuteEvent();
#if DEBUG
TdsParser.ReliabilitySection tdsReliabilitySection = new TdsParser.ReliabilitySection();
@@ -1739,7 +1923,9 @@ namespace System.Data.SqlClient {
#endif //DEBUG
bestEffortCleanupTarget = SqlInternalConnection.GetBestEffortCleanupTarget(_activeConnection);
statistics = SqlStatistics.StartTimer(Statistics);
- return RunExecuteReader(behavior, RunBehavior.ReturnImmediately, true, method);
+ SqlDataReader result = RunExecuteReader(behavior, RunBehavior.ReturnImmediately, true, method);
+ success = true;
+ return result;
}
#if DEBUG
finally {
@@ -1747,6 +1933,10 @@ namespace System.Data.SqlClient {
}
#endif //DEBUG
}
+ catch (SqlException e) {
+ sqlExceptionNumber = e.Number;
+ throw;
+ }
catch (System.OutOfMemoryException e) {
_activeConnection.Abort(e);
throw;
@@ -1762,6 +1952,7 @@ namespace System.Data.SqlClient {
}
finally {
SqlStatistics.StopTimer(statistics);
+ WriteEndExecuteEvent(success, sqlExceptionNumber, synchronous : true);
}
}
@@ -1794,9 +1985,24 @@ namespace System.Data.SqlClient {
private SqlDataReader EndExecuteReaderInternal(IAsyncResult asyncResult) {
SqlStatistics statistics = null;
+ bool success = false;
+ int? sqlExceptionNumber = null;
try {
statistics = SqlStatistics.StartTimer(Statistics);
- return InternalEndExecuteReader(asyncResult, ADP.EndExecuteReader);
+ SqlDataReader result = InternalEndExecuteReader(asyncResult, ADP.EndExecuteReader);
+ success = true;
+ return result;
+ }
+ catch (SqlException e) {
+ sqlExceptionNumber = e.Number;
+ if (cachedAsyncState != null)
+ {
+ cachedAsyncState.ResetAsyncState();
+ };
+
+ // SqlException is always catchable
+ ReliablePutStateObject();
+ throw;
}
catch (Exception e) {
if (cachedAsyncState != null) {
@@ -1809,6 +2015,7 @@ namespace System.Data.SqlClient {
}
finally {
SqlStatistics.StopTimer(statistics);
+ WriteEndExecuteEvent(success, sqlExceptionNumber, synchronous : false);
}
}
@@ -1824,6 +2031,7 @@ namespace System.Data.SqlClient {
SqlStatistics statistics = null;
try {
statistics = SqlStatistics.StartTimer(Statistics);
+ WriteBeginExecuteEvent();
TaskCompletionSource<object> completion = new TaskCompletionSource<object>(stateObject);
ValidateAsyncCommand(); // Special case - done outside of try/catches to prevent putting a stateObj
@@ -1920,6 +2128,23 @@ namespace System.Data.SqlClient {
VerifyEndExecuteState((Task) asyncResult, endMethod);
WaitForAsyncResults(asyncResult);
+ // If Transparent parameter encryption was attempted, then we would have skipped the below
+ // checks in VerifyEndExecuteState since we wanted to wait for WaitForAsyncResults to complete.
+ if (IsColumnEncryptionEnabled) {
+ if (cachedAsyncState.EndMethodName == null) {
+ throw ADP.MethodCalledTwice(endMethod);
+ }
+
+ if (endMethod != cachedAsyncState.EndMethodName) {
+ throw ADP.MismatchedAsyncResult(cachedAsyncState.EndMethodName, endMethod);
+ }
+
+ if (!cachedAsyncState.IsActiveConnectionValid(_activeConnection)) {
+ // If the connection is not 'valid' then it was closed while we were executing
+ throw ADP.ClosedConnectionError();
+ }
+ }
+
CheckThrowSNIException();
TdsParser bestEffortCleanupTarget = null;
@@ -2757,7 +2982,740 @@ namespace System.Data.SqlClient {
EventSink.ProcessMessagesAndThrow(ignoreNonFatalMessages: true);
}
}
- }
+ }
+
+ /// <summary>
+ /// Resets the encryption related state of the command object and each of the parameters.
+ /// BatchRPC doesn't need special handling to cleanup the state of each RPC object and its parameters since a new RPC object and
+ /// parameters are generated on every execution.
+ /// </summary>
+ private void ResetEncryptionState() {
+ // First reset the command level state.
+ ClearDescribeParameterEncryptionRequests();
+
+ // Reset the state of each of the parameters.
+ if (_parameters != null) {
+ for (int i = 0; i < _parameters.Count; i++) {
+ _parameters[i].CipherMetadata = null;
+ _parameters[i].HasReceivedMetadata = false;
+ }
+ }
+ }
+
+ /// <summary>
+ /// Steps to be executed in the Prepare Transparent Encryption finally block.
+ /// </summary>
+ private void PrepareTransparentEncryptionFinallyBlock( bool closeDataReader,
+ bool clearDataStructures,
+ bool decrementAsyncCount,
+ bool wasDescribeParameterEncryptionNeeded,
+ ReadOnlyDictionary<_SqlRPC, _SqlRPC> describeParameterEncryptionRpcOriginalRpcMap,
+ SqlDataReader describeParameterEncryptionDataReader) {
+ if (clearDataStructures) {
+ // Clear some state variables in SqlCommand that reflect in-progress describe parameter encryption requests.
+ ClearDescribeParameterEncryptionRequests();
+
+ if (describeParameterEncryptionRpcOriginalRpcMap != null) {
+ describeParameterEncryptionRpcOriginalRpcMap = null;
+ }
+ }
+
+ // Decrement the async count.
+ if (decrementAsyncCount) {
+ SqlInternalConnectionTds internalConnectionTds = _activeConnection.GetOpenTdsConnection();
+ if (internalConnectionTds != null) {
+ internalConnectionTds.DecrementAsyncCount();
+ }
+ }
+
+ if (closeDataReader) {
+ // Close the data reader to reset the _stateObj
+ if (null != describeParameterEncryptionDataReader) {
+ describeParameterEncryptionDataReader.Close();
+ }
+ }
+ }
+
+ /// <summary>
+ /// Executes the reader after checking to see if we need to encrypt input parameters and then encrypting it if required.
+ /// TryFetchInputParameterEncryptionInfo() -> ReadDescribeEncryptionParameterResults()-> EncryptInputParameters() ->RunExecuteReaderTds()
+ /// </summary>
+ /// <param name="cmdBehavior"></param>
+ /// <param name="returnStream"></param>
+ /// <param name="async"></param>
+ /// <param name="timeout"></param>
+ /// <param name="task"></param>
+ /// <param name="asyncWrite"></param>
+ /// <returns></returns>
+ private void PrepareForTransparentEncryption(CommandBehavior cmdBehavior, bool returnStream, bool async, int timeout, TaskCompletionSource<object> completion, out Task returnTask, bool asyncWrite)
+ {
+ // Fetch reader with input params
+ Task fetchInputParameterEncryptionInfoTask = null;
+ bool describeParameterEncryptionNeeded = false;
+ SqlDataReader describeParameterEncryptionDataReader = null;
+ returnTask = null;
+
+ Debug.Assert(_activeConnection != null, "_activeConnection should not be null in PrepareForTransparentEncryption.");
+ Debug.Assert(_activeConnection.Parser != null, "_activeConnection.Parser should not be null in PrepareForTransparentEncryption.");
+ Debug.Assert(_activeConnection.Parser.IsColumnEncryptionSupported,
+ "_activeConnection.Parser.IsColumnEncryptionSupported should be true in PrepareForTransparentEncryption.");
+ Debug.Assert(_columnEncryptionSetting == SqlCommandColumnEncryptionSetting.Enabled
+ || (_columnEncryptionSetting == SqlCommandColumnEncryptionSetting.UseConnectionSetting && _activeConnection.IsColumnEncryptionSettingEnabled),
+ "ColumnEncryption setting should be enabled for input parameter encryption.");
+ Debug.Assert(async == (completion != null), "completion should can be null if and only if mode is async.");
+
+ // A flag to indicate if finallyblock needs to execute.
+ bool processFinallyBlock = true;
+
+ // A flag to indicate if we need to decrement async count on the connection in finally block.
+ bool decrementAsyncCountInFinallyBlock = async;
+
+ // Flag to indicate if exception is caught during the execution, to govern clean up.
+ bool exceptionCaught = false;
+
+ // Used in BatchRPCMode to maintain a map of describe parameter encryption RPC requests (Keys) and their corresponding original RPC requests (Values).
+ ReadOnlyDictionary<_SqlRPC, _SqlRPC> describeParameterEncryptionRpcOriginalRpcMap = null;
+
+ TdsParser bestEffortCleanupTarget = null;
+ RuntimeHelpers.PrepareConstrainedRegions();
+ try {
+#if DEBUG
+ TdsParser.ReliabilitySection tdsReliabilitySection = new TdsParser.ReliabilitySection();
+
+ RuntimeHelpers.PrepareConstrainedRegions();
+ try {
+ tdsReliabilitySection.Start();
+#else
+ {
+#endif //DEBUG
+ bestEffortCleanupTarget = SqlInternalConnection.GetBestEffortCleanupTarget(_activeConnection);
+ try {
+ // Fetch the encryption information that applies to any of the input parameters.
+ describeParameterEncryptionDataReader = TryFetchInputParameterEncryptionInfo(timeout,
+ async,
+ asyncWrite,
+ out describeParameterEncryptionNeeded,
+ out fetchInputParameterEncryptionInfoTask,
+ out describeParameterEncryptionRpcOriginalRpcMap);
+
+ Debug.Assert(describeParameterEncryptionNeeded || describeParameterEncryptionDataReader == null,
+ "describeParameterEncryptionDataReader should be null if we don't need to request describe parameter encryption request.");
+
+ Debug.Assert(fetchInputParameterEncryptionInfoTask == null || async,
+ "Task returned by TryFetchInputParameterEncryptionInfo, when in sync mode, in PrepareForTransparentEncryption.");
+
+ Debug.Assert((describeParameterEncryptionRpcOriginalRpcMap != null) == BatchRPCMode,
+ "describeParameterEncryptionRpcOriginalRpcMap can be non-null if and only if it is in BatchRPCMode.");
+
+ // If we didn't have parameters, we can fall back to regular code path, by simply returning.
+ if (!describeParameterEncryptionNeeded) {
+ Debug.Assert(null == fetchInputParameterEncryptionInfoTask,
+ "fetchInputParameterEncryptionInfoTask should not be set if describe parameter encryption is not needed.");
+
+ Debug.Assert(null == describeParameterEncryptionDataReader,
+ "SqlDataReader created for describe parameter encryption params when it is not needed.");
+
+ return;
+ }
+
+ Debug.Assert(describeParameterEncryptionDataReader != null,
+ "describeParameterEncryptionDataReader should not be null, as it is required to get results of describe parameter encryption.");
+
+ // Fire up another task to read the results of describe parameter encryption
+ if (fetchInputParameterEncryptionInfoTask != null) {
+ // Mark that we should not process the finally block since we have async execution pending.
+ // Note that this should be done outside the task's continuation delegate.
+ processFinallyBlock = false;
+ returnTask = AsyncHelper.CreateContinuationTask(fetchInputParameterEncryptionInfoTask, () => {
+ bool processFinallyBlockAsync = true;
+
+ RuntimeHelpers.PrepareConstrainedRegions();
+ try {
+#if DEBUG
+ TdsParser.ReliabilitySection tdsReliabilitySectionAsync = new TdsParser.ReliabilitySection();
+ RuntimeHelpers.PrepareConstrainedRegions();
+ try {
+ tdsReliabilitySectionAsync.Start();
+#endif //DEBUG
+ // Check for any exceptions on network write, before reading.
+ CheckThrowSNIException();
+
+ // If it is async, then TryFetchInputParameterEncryptionInfo-> RunExecuteReaderTds would have incremented the async count.
+ // Decrement it when we are about to complete async execute reader.
+ SqlInternalConnectionTds internalConnectionTds = _activeConnection.GetOpenTdsConnection();
+ if (internalConnectionTds != null)
+ {
+ internalConnectionTds.DecrementAsyncCount();
+ decrementAsyncCountInFinallyBlock = false;
+ }
+
+ // Complete executereader.
+ describeParameterEncryptionDataReader = CompleteAsyncExecuteReader();
+ Debug.Assert(null == _stateObj, "non-null state object in PrepareForTransparentEncryption.");
+
+ // Read the results of describe parameter encryption.
+ ReadDescribeEncryptionParameterResults(describeParameterEncryptionDataReader, describeParameterEncryptionRpcOriginalRpcMap);
+
+#if DEBUG
+ // Failpoint to force the thread to halt to simulate cancellation of SqlCommand.
+ if (_sleepAfterReadDescribeEncryptionParameterResults) {
+ Thread.Sleep(10000);
+ }
+ }
+ finally {
+ tdsReliabilitySectionAsync.Stop();
+ }
+#endif //DEBUG
+ }
+ catch (Exception e) {
+ processFinallyBlockAsync = ADP.IsCatchableExceptionType(e);
+ throw;
+ }
+ finally {
+ PrepareTransparentEncryptionFinallyBlock( closeDataReader: processFinallyBlockAsync,
+ decrementAsyncCount: decrementAsyncCountInFinallyBlock,
+ clearDataStructures: processFinallyBlockAsync,
+ wasDescribeParameterEncryptionNeeded: describeParameterEncryptionNeeded,
+ describeParameterEncryptionRpcOriginalRpcMap: describeParameterEncryptionRpcOriginalRpcMap,
+ describeParameterEncryptionDataReader: describeParameterEncryptionDataReader);
+ }
+ },
+ onFailure: ((exception) => {
+ if (_cachedAsyncState != null) {
+ _cachedAsyncState.ResetAsyncState();
+ }
+ if (exception != null) {
+ throw exception;
+ }}));
+ }
+ else {
+ // If it was async, ending the reader is still pending.
+ if (async) {
+ // Mark that we should not process the finally block since we have async execution pending.
+ // Note that this should be done outside the task's continuation delegate.
+ processFinallyBlock = false;
+ returnTask = Task.Run(() => {
+ bool processFinallyBlockAsync = true;
+
+ RuntimeHelpers.PrepareConstrainedRegions();
+ try {
+#if DEBUG
+ TdsParser.ReliabilitySection tdsReliabilitySectionAsync = new TdsParser.ReliabilitySection();
+ RuntimeHelpers.PrepareConstrainedRegions();
+ try {
+ tdsReliabilitySectionAsync.Start();
+#endif //DEBUG
+
+ // Check for any exceptions on network write, before reading.
+ CheckThrowSNIException();
+
+ // If it is async, then TryFetchInputParameterEncryptionInfo-> RunExecuteReaderTds would have incremented the async count.
+ // Decrement it when we are about to complete async execute reader.
+ SqlInternalConnectionTds internalConnectionTds = _activeConnection.GetOpenTdsConnection();
+ if (internalConnectionTds != null) {
+ internalConnectionTds.DecrementAsyncCount();
+ decrementAsyncCountInFinallyBlock = false;
+ }
+
+ // Complete executereader.
+ describeParameterEncryptionDataReader = CompleteAsyncExecuteReader();
+ Debug.Assert(null == _stateObj, "non-null state object in PrepareForTransparentEncryption.");
+
+ // Read the results of describe parameter encryption.
+ ReadDescribeEncryptionParameterResults(describeParameterEncryptionDataReader, describeParameterEncryptionRpcOriginalRpcMap);
+#if DEBUG
+ // Failpoint to force the thread to halt to simulate cancellation of SqlCommand.
+ if (_sleepAfterReadDescribeEncryptionParameterResults) {
+ Thread.Sleep(10000);
+ }
+#endif
+#if DEBUG
+ }
+ finally {
+ tdsReliabilitySectionAsync.Stop();
+ }
+#endif //DEBUG
+ }
+ catch (Exception e) {
+ processFinallyBlockAsync = ADP.IsCatchableExceptionType(e);
+ throw;
+ }
+ finally {
+ PrepareTransparentEncryptionFinallyBlock( closeDataReader: processFinallyBlockAsync,
+ decrementAsyncCount: decrementAsyncCountInFinallyBlock,
+ clearDataStructures: processFinallyBlockAsync,
+ wasDescribeParameterEncryptionNeeded: describeParameterEncryptionNeeded,
+ describeParameterEncryptionRpcOriginalRpcMap: describeParameterEncryptionRpcOriginalRpcMap,
+ describeParameterEncryptionDataReader: describeParameterEncryptionDataReader);
+ }
+ });
+ }
+ else {
+ // For synchronous execution, read the results of describe parameter encryption here.
+ ReadDescribeEncryptionParameterResults(describeParameterEncryptionDataReader, describeParameterEncryptionRpcOriginalRpcMap);
+ }
+
+#if DEBUG
+ // Failpoint to force the thread to halt to simulate cancellation of SqlCommand.
+ if (_sleepAfterReadDescribeEncryptionParameterResults) {
+ Thread.Sleep(10000);
+ }
+#endif
+ }
+ }
+ catch (Exception e) {
+ processFinallyBlock = ADP.IsCatchableExceptionType(e);
+ exceptionCaught = true;
+ throw;
+ }
+ finally {
+ // Free up the state only for synchronous execution. For asynchronous execution, free only if there was an exception.
+ PrepareTransparentEncryptionFinallyBlock(closeDataReader: (processFinallyBlock && !async) || exceptionCaught,
+ decrementAsyncCount: decrementAsyncCountInFinallyBlock && exceptionCaught,
+ clearDataStructures: (processFinallyBlock && !async) || exceptionCaught,
+ wasDescribeParameterEncryptionNeeded: describeParameterEncryptionNeeded,
+ describeParameterEncryptionRpcOriginalRpcMap: describeParameterEncryptionRpcOriginalRpcMap,
+ describeParameterEncryptionDataReader: describeParameterEncryptionDataReader);
+ }
+ }
+#if DEBUG
+ finally {
+ tdsReliabilitySection.Stop();
+ }
+#endif //DEBUG
+ }
+ catch (System.OutOfMemoryException e) {
+ _activeConnection.Abort(e);
+ throw;
+ }
+ catch (System.StackOverflowException e) {
+ _activeConnection.Abort(e);
+ throw;
+ }
+ catch (System.Threading.ThreadAbortException e) {
+ _activeConnection.Abort(e);
+ SqlInternalConnection.BestEffortCleanup(bestEffortCleanupTarget);
+ throw;
+ }
+ catch (Exception e) {
+ if (cachedAsyncState != null) {
+ cachedAsyncState.ResetAsyncState();
+ }
+
+ if (ADP.IsCatchableExceptionType(e)) {
+ ReliablePutStateObject();
+ }
+
+ throw;
+ }
+ }
+
+ /// <summary>
+ /// Executes an RPC to fetch param encryption info from SQL Engine. If this method is not done writing
+ /// the request to wire, it'll set the "task" parameter which can be used to create continuations.
+ /// </summary>
+ /// <param name="timeout"></param>
+ /// <param name="async"></param>
+ /// <param name="asyncWrite"></param>
+ /// <param name="inputParameterEncryptionNeeded"></param>
+ /// <param name="task"></param>
+ /// <param name="describeParameterEncryptionRpcOriginalRpcMap"></param>
+ /// <returns></returns>
+ private SqlDataReader TryFetchInputParameterEncryptionInfo(int timeout,
+ bool async,
+ bool asyncWrite,
+ out bool inputParameterEncryptionNeeded,
+ out Task task,
+ out ReadOnlyDictionary<_SqlRPC, _SqlRPC> describeParameterEncryptionRpcOriginalRpcMap) {
+ inputParameterEncryptionNeeded = false;
+ task = null;
+ describeParameterEncryptionRpcOriginalRpcMap = null;
+
+ if (BatchRPCMode) {
+ // Count the rpc requests that need to be transparently encrypted
+ // We simply look for any parameters in a request and add the request to be queried for parameter encryption
+ Dictionary<_SqlRPC, _SqlRPC> describeParameterEncryptionRpcOriginalRpcDictionary = new Dictionary<_SqlRPC, _SqlRPC>();
+
+ for (int i = 0; i < _SqlRPCBatchArray.Length; i++) {
+ // In BatchRPCMode, the actual T-SQL query is in the first parameter and not present as the rpcName, as is the case with non-BatchRPCMode.
+ // So input parameters start at parameters[1]. parameters[0] is the actual T-SQL Statement. rpcName is sp_executesql.
+ if (_SqlRPCBatchArray[i].parameters.Length > 1) {
+ _SqlRPCBatchArray[i].needsFetchParameterEncryptionMetadata = true;
+
+ // Since we are going to need multiple RPC objects, allocate a new one here for each command in the batch.
+ _SqlRPC rpcDescribeParameterEncryptionRequest = new _SqlRPC();
+
+ // Prepare the describe parameter encryption request.
+ PrepareDescribeParameterEncryptionRequest(_SqlRPCBatchArray[i], ref rpcDescribeParameterEncryptionRequest);
+ Debug.Assert(rpcDescribeParameterEncryptionRequest != null, "rpcDescribeParameterEncryptionRequest should not be null, after call to PrepareDescribeParameterEncryptionRequest.");
+
+ Debug.Assert(!describeParameterEncryptionRpcOriginalRpcDictionary.ContainsKey(rpcDescribeParameterEncryptionRequest),
+ "There should not already be a key referring to the current rpcDescribeParameterEncryptionRequest, in the dictionary describeParameterEncryptionRpcOriginalRpcDictionary.");
+
+ // Add the describe parameter encryption RPC request as the key and its corresponding original rpc request to the dictionary.
+ describeParameterEncryptionRpcOriginalRpcDictionary.Add(rpcDescribeParameterEncryptionRequest, _SqlRPCBatchArray[i]);
+ }
+ }
+
+ describeParameterEncryptionRpcOriginalRpcMap = new ReadOnlyDictionary<_SqlRPC, _SqlRPC>(describeParameterEncryptionRpcOriginalRpcDictionary);
+
+ if (describeParameterEncryptionRpcOriginalRpcMap.Count == 0) {
+ // If no parameters are present, nothing to do, simply return.
+ return null;
+ }
+ else {
+ inputParameterEncryptionNeeded = true;
+ }
+
+ _sqlRPCParameterEncryptionReqArray = describeParameterEncryptionRpcOriginalRpcMap.Keys.ToArray();
+
+ Debug.Assert(_sqlRPCParameterEncryptionReqArray.Length > 0, "There should be at-least 1 describe parameter encryption rpc request.");
+ Debug.Assert(_sqlRPCParameterEncryptionReqArray.Length <= _SqlRPCBatchArray.Length,
+ "The number of decribe parameter encryption RPC requests is more than the number of original RPC requests.");
+ }
+ else if (0 != GetParameterCount(_parameters)) {
+ // Fetch params for a single batch
+ inputParameterEncryptionNeeded = true;
+ _sqlRPCParameterEncryptionReqArray = new _SqlRPC[1];
+
+ _SqlRPC rpc = null;
+ GetRPCObject(_parameters.Count, ref rpc);
+ Debug.Assert(rpc != null, "GetRPCObject should not return rpc as null.");
+
+ rpc.rpcName = CommandText;
+
+ int i = 0;
+ foreach (SqlParameter sqlParam in _parameters) {
+ rpc.parameters[i++] = sqlParam;
+ }
+
+ // Prepare the RPC request for describe parameter encryption procedure.
+ PrepareDescribeParameterEncryptionRequest(rpc, ref _sqlRPCParameterEncryptionReqArray[0]);
+ Debug.Assert(_sqlRPCParameterEncryptionReqArray[0] != null, "_sqlRPCParameterEncryptionReqArray[0] should not be null, after call to PrepareDescribeParameterEncryptionRequest.");
+ }
+
+ if (inputParameterEncryptionNeeded) {
+ // Set the flag that indicates that parameter encryption requests are currently in-progress.
+ _isDescribeParameterEncryptionRPCCurrentlyInProgress = true;
+
+#if DEBUG
+ // Failpoint to force the thread to halt to simulate cancellation of SqlCommand.
+ if (_sleepDuringTryFetchInputParameterEncryptionInfo) {
+ Thread.Sleep(10000);
+ }
+#endif
+
+ // Execute the RPC.
+ return RunExecuteReaderTds( CommandBehavior.Default,
+ runBehavior: RunBehavior.ReturnImmediately, // Other RunBehavior modes will skip reading rows.
+ returnStream: true,
+ async: async,
+ timeout: timeout,
+ task: out task,
+ asyncWrite: asyncWrite,
+ ds: null,
+ describeParameterEncryptionRequest: true);
+ }
+ else {
+ return null;
+ }
+ }
+
+ /// <summary>
+ /// Constructs a SqlParameter with a given string value
+ /// </summary>
+ /// <param name="queryText"></param>
+ /// <returns></returns>
+ private SqlParameter GetSqlParameterWithQueryText(string queryText)
+ {
+ SqlParameter sqlParam = new SqlParameter(null, ((queryText.Length << 1) <= TdsEnums.TYPE_SIZE_LIMIT) ? SqlDbType.NVarChar : SqlDbType.NText, queryText.Length);
+ sqlParam.Value = queryText;
+
+ return sqlParam;
+ }
+
+ /// <summary>
+ /// Constructs the sp_describe_parameter_encryption request with the values from the original RPC call.
+ /// Prototype for <sp_describe_parameter_encryption> is
+ /// exec sp_describe_parameter_encryption @tsql=N'[SQL Statement]', @params=N'@p1 varbinary(256)'
+ /// </summary>
+ /// <param name="originalRpcRequest">Original RPC request</param>
+ /// <param name="describeParameterEncryptionRequest">sp_describe_parameter_encryption request being built</param>
+ private void PrepareDescribeParameterEncryptionRequest(_SqlRPC originalRpcRequest, ref _SqlRPC describeParameterEncryptionRequest) {
+ Debug.Assert(originalRpcRequest != null);
+
+ // Construct the RPC request for sp_describe_parameter_encryption
+ // sp_describe_parameter_encryption always has 2 parameters (stmt, paramlist).
+ GetRPCObject(2, ref describeParameterEncryptionRequest, forSpDescribeParameterEncryption:true);
+ describeParameterEncryptionRequest.rpcName = "sp_describe_parameter_encryption";
+
+ // Prepare @tsql parameter
+ SqlParameter sqlParam;
+ string text;
+
+ // In BatchRPCMode, The actual T-SQL query is in the first parameter and not present as the rpcName, as is the case with non-BatchRPCMode.
+ if (BatchRPCMode) {
+ Debug.Assert(originalRpcRequest.parameters != null && originalRpcRequest.parameters.Length > 0,
+ "originalRpcRequest didn't have at-least 1 parameter in BatchRPCMode, in PrepareDescribeParameterEncryptionRequest.");
+ text = (string)originalRpcRequest.parameters[0].Value;
+ sqlParam = GetSqlParameterWithQueryText(text);
+ }
+ else {
+ text = originalRpcRequest.rpcName;
+ if (CommandType == Data.CommandType.StoredProcedure) {
+ // For stored procedures, we need to prepare @tsql in the following format
+ // N'EXEC sp_name @param1=@param1, @param1=@param2, ..., @paramN=@paramN'
+ sqlParam = BuildStoredProcedureStatementForColumnEncryption(text, originalRpcRequest.parameters);
+ }
+ else {
+ sqlParam = GetSqlParameterWithQueryText(text);
+ }
+ }
+
+ Debug.Assert(text != null, "@tsql parameter is null in PrepareDescribeParameterEncryptionRequest.");
+
+ describeParameterEncryptionRequest.parameters[0] = sqlParam;
+ string parameterList = null;
+
+ // In BatchRPCMode, the input parameters start at parameters[1]. parameters[0] is the T-SQL statement. rpcName is sp_executesql.
+ // And it is already in the format expected out of BuildParamList, which is not the case with Non-BatchRPCMode.
+ if (BatchRPCMode) {
+ if (originalRpcRequest.parameters.Length > 1) {
+ parameterList = (string)originalRpcRequest.parameters[1].Value;
+ }
+ }
+ else {
+ // Prepare @params parameter
+ // Need to create new parameters as we cannot have the same parameter being part of two SqlCommand objects
+ SqlParameter paramCopy;
+ SqlParameterCollection tempCollection = new SqlParameterCollection();
+
+ for (int i = 0; i < _parameters.Count; i++) {
+ SqlParameter param = originalRpcRequest.parameters[i];
+ paramCopy = new SqlParameter(param.ParameterName, param.SqlDbType, param.Size, param.Direction, param.Precision, param.Scale, param.SourceColumn, param.SourceVersion,
+ param.SourceColumnNullMapping, param.Value, param.XmlSchemaCollectionDatabase, param.XmlSchemaCollectionOwningSchema, param.XmlSchemaCollectionName);
+ tempCollection.Add(paramCopy);
+ }
+
+ Debug.Assert(_stateObj == null, "_stateObj should be null at this time, in PrepareDescribeParameterEncryptionRequest.");
+ Debug.Assert(_activeConnection != null, "_activeConnection should not be null at this time, in PrepareDescribeParameterEncryptionRequest.");
+ TdsParser tdsParser = null;
+
+ if (_activeConnection.Parser != null) {
+ tdsParser = _activeConnection.Parser;
+ if ((tdsParser == null) || (tdsParser.State == TdsParserState.Broken) || (tdsParser.State == TdsParserState.Closed)) {
+ // Connection's parser is null as well, therefore we must be closed
+ throw ADP.ClosedConnectionError();
+ }
+ }
+
+ parameterList = BuildParamList(tdsParser, tempCollection, includeReturnValue:true);
+ }
+
+ Debug.Assert(!string.IsNullOrWhiteSpace(parameterList), "parameterList should not be null or empty or whitespace.");
+
+ sqlParam = new SqlParameter(null, ((parameterList.Length << 1) <= TdsEnums.TYPE_SIZE_LIMIT) ? SqlDbType.NVarChar : SqlDbType.NText, parameterList.Length);
+ sqlParam.Value = parameterList;
+ describeParameterEncryptionRequest.parameters[1] = sqlParam;
+ }
+
+ /// <summary>
+ /// Read the output of sp_describe_parameter_encryption
+ /// </summary>
+ /// <param name="ds">Resultset from calling to sp_describe_parameter_encryption</param>
+ /// <param name="describeParameterEncryptionRpcOriginalRpcMap"> Readonly dictionary with the map of parameter encryption rpc requests with the corresponding original rpc requests.</param>
+ private void ReadDescribeEncryptionParameterResults(SqlDataReader ds, ReadOnlyDictionary<_SqlRPC, _SqlRPC> describeParameterEncryptionRpcOriginalRpcMap) {
+ _SqlRPC rpc = null;
+ int currentOrdinal = -1;
+ SqlTceCipherInfoEntry cipherInfoEntry;
+ Dictionary<int, SqlTceCipherInfoEntry> columnEncryptionKeyTable = new Dictionary<int, SqlTceCipherInfoEntry>();
+
+ Debug.Assert((describeParameterEncryptionRpcOriginalRpcMap != null) == BatchRPCMode,
+ "describeParameterEncryptionRpcOriginalRpcMap should be non-null if and only if it is BatchRPCMode.");
+
+ // Indicates the current result set we are reading, used in BatchRPCMode, where we can have more than 1 result set.
+ int resultSetSequenceNumber = 0;
+
+#if DEBUG
+ // Keep track of the number of rows in the result sets.
+ int rowsAffected = 0;
+#endif
+
+ // A flag that used in BatchRPCMode, to assert the result of lookup in to the dictionary maintaining the map of describe parameter encryption requests
+ // and the corresponding original rpc requests.
+ bool lookupDictionaryResult;
+
+ do {
+ if (BatchRPCMode) {
+ // If we got more RPC results from the server than what was requested.
+ if (resultSetSequenceNumber >= _sqlRPCParameterEncryptionReqArray.Length) {
+ Debug.Assert(false, "Server sent back more results than what was expected for describe parameter encryption requests in BatchRPCMode.");
+ // Ignore the rest of the results from the server, if for whatever reason it sends back more than what we expect.
+ break;
+ }
+ }
+
+ // First read the column encryption key list
+ while (ds.Read()) {
+
+#if DEBUG
+ rowsAffected++;
+#endif
+
+ // Column Encryption Key Ordinal.
+ currentOrdinal = ds.GetInt32((int)DescribeParameterEncryptionResultSet1.KeyOrdinal);
+ Debug.Assert(currentOrdinal >= 0, "currentOrdinal cannot be negative.");
+
+ // Try to see if there was already an entry for the current ordinal.
+ if (!columnEncryptionKeyTable.TryGetValue(currentOrdinal, out cipherInfoEntry)) {
+ // If an entry for this ordinal was not found, create an entry in the columnEncryptionKeyTable for this ordinal.
+ cipherInfoEntry = new SqlTceCipherInfoEntry(currentOrdinal);
+ columnEncryptionKeyTable.Add(currentOrdinal, cipherInfoEntry);
+ }
+
+ Debug.Assert(!cipherInfoEntry.Equals(default(SqlTceCipherInfoEntry)), "cipherInfoEntry should not be un-initialized.");
+
+ // Read the CEK.
+ byte[] encryptedKey = null;
+ int encryptedKeyLength = (int)ds.GetBytes((int)DescribeParameterEncryptionResultSet1.EncryptedKey, 0, encryptedKey, 0, 0);
+ encryptedKey = new byte[encryptedKeyLength];
+ ds.GetBytes((int)DescribeParameterEncryptionResultSet1.EncryptedKey, 0, encryptedKey, 0, encryptedKeyLength);
+
+ // Read the metadata version of the key.
+ // It should always be 8 bytes.
+ byte[] keyMdVersion = new byte[8];
+ ds.GetBytes((int)DescribeParameterEncryptionResultSet1.KeyMdVersion, 0, keyMdVersion, 0, keyMdVersion.Length);
+
+ // Validate the provider name
+ string providerName = ds.GetString((int)DescribeParameterEncryptionResultSet1.ProviderName);
+ //SqlColumnEncryptionKeyStoreProvider keyStoreProvider;
+ //if (!SqlConnection.TryGetColumnEncryptionKeyStoreProvider (providerName, out keyStoreProvider)) {
+ // // unknown provider, skip processing this cek.
+ // Bid.Trace("<sc.SqlCommand.ReadDescribeEncryptionParameterResults|INFO>Unknown provider name recevied %s, skipping\n", providerName);
+ // continue;
+ //}
+
+ cipherInfoEntry.Add(encryptedKey: encryptedKey,
+ databaseId: ds.GetInt32((int)DescribeParameterEncryptionResultSet1.DbId),
+ cekId: ds.GetInt32((int)DescribeParameterEncryptionResultSet1.KeyId),
+ cekVersion: ds.GetInt32((int)DescribeParameterEncryptionResultSet1.KeyVersion),
+ cekMdVersion: keyMdVersion,
+ keyPath: ds.GetString((int)DescribeParameterEncryptionResultSet1.KeyPath),
+ keyStoreName: providerName,
+ algorithmName: ds.GetString((int)DescribeParameterEncryptionResultSet1.KeyEncryptionAlgorithm));
+ }
+
+ if (!ds.NextResult()) {
+ throw SQL.UnexpectedDescribeParamFormat ();
+ }
+
+ // Find the RPC command that generated this tce request
+ if (BatchRPCMode) {
+ Debug.Assert(_sqlRPCParameterEncryptionReqArray[resultSetSequenceNumber] != null, "_sqlRPCParameterEncryptionReqArray[resultSetSequenceNumber] should not be null.");
+
+ // Lookup in the dictionary to get the original rpc request corresponding to the describe parameter encryption request
+ // pointed to by _sqlRPCParameterEncryptionReqArray[resultSetSequenceNumber]
+ rpc = null;
+ lookupDictionaryResult = describeParameterEncryptionRpcOriginalRpcMap.TryGetValue(_sqlRPCParameterEncryptionReqArray[resultSetSequenceNumber++], out rpc);
+
+ Debug.Assert(lookupDictionaryResult,
+ "Describe Parameter Encryption RPC request key must be present in the dictionary describeParameterEncryptionRpcOriginalRpcMap");
+ Debug.Assert(rpc != null,
+ "Describe Parameter Encryption RPC request's corresponding original rpc request must not be null in the dictionary describeParameterEncryptionRpcOriginalRpcMap");
+ }
+ else {
+ rpc = _rpcArrayOf1[0];
+ }
+
+ Debug.Assert(rpc != null, "rpc should not be null here.");
+
+ // This is the index in the parameters array where the actual parameters start.
+ // In BatchRPCMode, parameters[0] has the t-sql, parameters[1] has the param list
+ // and actual parameters of the query start at parameters[2].
+ int parameterStartIndex = (BatchRPCMode ? 2 : 0);
+
+ // Iterate over the parameter names to read the encryption type info
+ int paramIdx;
+ while (ds.Read()) {
+#if DEBUG
+ rowsAffected++;
+#endif
+ Debug.Assert(rpc != null, "Describe Parameter Encryption requested for non-tce spec proc");
+ string parameterName = ds.GetString((int)DescribeParameterEncryptionResultSet2.ParameterName);
+
+ // When the RPC object gets reused, the parameter array has more parameters that the valid params for the command.
+ // Null is used to indicate the end of the valid part of the array. Refer to GetRPCObject().
+ for (paramIdx = parameterStartIndex; paramIdx < rpc.parameters.Length && rpc.parameters[paramIdx] != null; paramIdx++) {
+ SqlParameter sqlParameter = rpc.parameters[paramIdx];
+ Debug.Assert(sqlParameter != null, "sqlParameter should not be null.");
+
+ if (sqlParameter.ParameterNameFixed.Equals(parameterName, StringComparison.Ordinal)) {
+ Debug.Assert(sqlParameter.CipherMetadata == null, "param.CipherMetadata should be null.");
+ sqlParameter.HasReceivedMetadata = true;
+
+ // Found the param, setup the encryption info.
+ byte columnEncryptionType = ds.GetByte((int)DescribeParameterEncryptionResultSet2.ColumnEncrytionType);
+ if ((byte)SqlClientEncryptionType.PlainText != columnEncryptionType) {
+ byte cipherAlgorithmId = ds.GetByte((int)DescribeParameterEncryptionResultSet2.ColumnEncryptionAlgorithm);
+ int columnEncryptionKeyOrdinal = ds.GetInt32((int)DescribeParameterEncryptionResultSet2.ColumnEncryptionKeyOrdinal);
+ byte columnNormalizationRuleVersion = ds.GetByte((int)DescribeParameterEncryptionResultSet2.NormalizationRuleVersion);
+
+ // Lookup the key, failing which throw an exception
+ if (!columnEncryptionKeyTable.TryGetValue(columnEncryptionKeyOrdinal, out cipherInfoEntry)) {
+ throw SQL.InvalidEncryptionKeyOrdinal(columnEncryptionKeyOrdinal, columnEncryptionKeyTable.Count);
+ }
+
+ sqlParameter.CipherMetadata = new SqlCipherMetadata(sqlTceCipherInfoEntry: cipherInfoEntry,
+ ordinal: unchecked((ushort)-1),
+ cipherAlgorithmId: cipherAlgorithmId,
+ cipherAlgorithmName: null,
+ encryptionType: columnEncryptionType,
+ normalizationRuleVersion: columnNormalizationRuleVersion);
+
+ // Decrypt the symmetric key.(This will also validate and throw if needed).
+ Debug.Assert(_activeConnection != null, @"_activeConnection should not be null");
+ SqlSecurityUtility.DecryptSymmetricKey(sqlParameter.CipherMetadata, this._activeConnection.DataSource);
+
+ // This is effective only for BatchRPCMode even though we set it for non-BatchRPCMode also,
+ // since for non-BatchRPCMode mode, paramoptions gets thrown away and reconstructed in BuildExecuteSql.
+ rpc.paramoptions[paramIdx] |= TdsEnums.RPC_PARAM_ENCRYPTED;
+ }
+
+ break;
+ }
+ }
+ }
+
+ // When the RPC object gets reused, the parameter array has more parameters that the valid params for the command.
+ // Null is used to indicate the end of the valid part of the array. Refer to GetRPCObject().
+ for (paramIdx = parameterStartIndex; paramIdx < rpc.parameters.Length && rpc.parameters[paramIdx] != null; paramIdx++) {
+ if (!rpc.parameters[paramIdx].HasReceivedMetadata && rpc.parameters[paramIdx].Direction != ParameterDirection.ReturnValue) {
+ // Encryption MD wasn't sent by the server - we expect the metadata to be sent for all the parameters
+ // that were sent in the original sp_describe_parameter_encryption but not necessarily for return values,
+ // since there might be multiple return values but server will only send for one of them.
+ // For parameters that don't need encryption, the encryption type is set to plaintext.
+ throw SQL.ParamEncryptionMetadataMissing(rpc.parameters[paramIdx].ParameterName, rpc.GetCommandTextOrRpcName());
+ }
+ }
+
+#if DEBUG
+ Debug.Assert(rowsAffected == RowsAffectedByDescribeParameterEncryption,
+ "number of rows received for describe parameter encryption should be equal to rows affected by describe parameter encryption.");
+#endif
+
+ // The server has responded with encryption related information for this rpc request. So clear the needsFetchParameterEncryptionMetadata flag.
+ rpc.needsFetchParameterEncryptionMetadata = false;
+ } while (ds.NextResult());
+
+ // Verify that we received response for each rpc call needs tce
+ if (BatchRPCMode) {
+ for (int i = 0; i < _SqlRPCBatchArray.Length; i++) {
+ if (_SqlRPCBatchArray[i].needsFetchParameterEncryptionMetadata) {
+ throw SQL.ProcEncryptionMetadataMissing(_SqlRPCBatchArray[i].rpcName);
+ }
+ }
+ }
+ }
internal SqlDataReader RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, bool returnStream, string method) {
Task unused; // sync execution
@@ -2773,6 +3731,7 @@ namespace System.Data.SqlClient {
task = null;
_rowsAffected = -1;
+ _rowsAffectedBySpDescribeParameterEncryption = -1;
if (0 != (CommandBehavior.SingleRow & cmdBehavior)) {
// CommandBehavior.SingleRow implies CommandBehavior.SingleResult
@@ -2810,10 +3769,20 @@ namespace System.Data.SqlClient {
}
}
+ // Reset the encryption related state of the command and its parameters.
+ ResetEncryptionState();
if ( _activeConnection.IsContextConnection ) {
return RunExecuteReaderSmi( cmdBehavior, runBehavior, returnStream );
}
+ else if (IsColumnEncryptionEnabled) {
+ Task returnTask = null;
+ PrepareForTransparentEncryption(cmdBehavior, returnStream, async, timeout, completion, out returnTask, asyncWrite && async);
+ Debug.Assert(async == (returnTask != null), @"returnTask should be null if and only if async is false.");
+
+ return RunExecuteReaderTdsWithTransparentParameterEncryption( cmdBehavior, runBehavior, returnStream, async, timeout, out task, asyncWrite && async, ds: null,
+ describeParameterEncryptionRequest: false, describeParameterEncryptionTask: returnTask);
+ }
else {
return RunExecuteReaderTds( cmdBehavior, runBehavior, returnStream, async, timeout, out task, asyncWrite && async);
}
@@ -2840,7 +3809,73 @@ namespace System.Data.SqlClient {
}
}
- private SqlDataReader RunExecuteReaderTds( CommandBehavior cmdBehavior, RunBehavior runBehavior, bool returnStream, bool async, int timeout, out Task task, bool asyncWrite, SqlDataReader ds=null) {
+ /// <summary>
+ /// RunExecuteReaderTds after Transparent Parameter Encryption is complete.
+ /// </summary>
+ /// <param name="cmdBehavior"></param>
+ /// <param name="runBehavior"></param>
+ /// <param name="returnStream"></param>
+ /// <param name="async"></param>
+ /// <param name="timeout"></param>
+ /// <param name="task"></param>
+ /// <param name="asyncWrite"></param>
+ /// <param name="ds"></param>
+ /// <param name="describeParameterEncryptionRequest"></param>
+ /// <param name="describeParameterEncryptionTask"></param>
+ /// <returns></returns>
+ private SqlDataReader RunExecuteReaderTdsWithTransparentParameterEncryption(CommandBehavior cmdBehavior,
+ RunBehavior runBehavior,
+ bool returnStream,
+ bool async,
+ int timeout,
+ out Task task,
+ bool asyncWrite,
+ SqlDataReader ds=null,
+ bool describeParameterEncryptionRequest = false,
+ Task describeParameterEncryptionTask = null) {
+ Debug.Assert(!asyncWrite || async, "AsyncWrite should be always accompanied by Async");
+ Debug.Assert((describeParameterEncryptionTask != null) == async, @"async should be true if and only if describeParameterEncryptionTask is not null.");
+
+ if (ds == null && returnStream) {
+ ds = new SqlDataReader(this, cmdBehavior);
+ }
+
+ if (describeParameterEncryptionTask != null) {
+ long parameterEncryptionStart = ADP.TimerCurrent();
+ TaskCompletionSource<object> completion = new TaskCompletionSource<object>();
+ AsyncHelper.ContinueTask(describeParameterEncryptionTask, completion,
+ () => {
+ Task subTask = null;
+ RunExecuteReaderTds(cmdBehavior, runBehavior, returnStream, async, TdsParserStaticMethods.GetRemainingTimeout(timeout, parameterEncryptionStart), out subTask, asyncWrite, ds);
+ if (subTask == null) {
+ completion.SetResult(null);
+ }
+ else {
+ AsyncHelper.ContinueTask(subTask, completion, () => completion.SetResult(null));
+ }
+ }, connectionToDoom: null,
+ onFailure: ((exception) => {
+ if (_cachedAsyncState != null) {
+ _cachedAsyncState.ResetAsyncState();
+ }
+ if (exception != null) {
+ throw exception;
+ }}),
+ onCancellation: (() => {
+ if (_cachedAsyncState != null) {
+ _cachedAsyncState.ResetAsyncState();
+ }}),
+ connectionToAbort: _activeConnection);
+ task = completion.Task;
+ return ds;
+ }
+ else {
+ // Synchronous execution.
+ return RunExecuteReaderTds(cmdBehavior, runBehavior, returnStream, async, timeout, out task, asyncWrite, ds);
+ }
+ }
+
+ private SqlDataReader RunExecuteReaderTds( CommandBehavior cmdBehavior, RunBehavior runBehavior, bool returnStream, bool async, int timeout, out Task task, bool asyncWrite, SqlDataReader ds=null, bool describeParameterEncryptionRequest = false) {
Debug.Assert(!asyncWrite || async, "AsyncWrite should be always accompanied by Async");
if (ds == null && returnStream) {
@@ -2912,7 +3947,17 @@ namespace System.Data.SqlClient {
GetStateObject();
Task writeTask = null;
- if (BatchRPCMode) {
+ if (describeParameterEncryptionRequest) {
+#if DEBUG
+ if (_sleepDuringRunExecuteReaderTdsForSpDescribeParameterEncryption) {
+ Thread.Sleep(10000);
+ }
+#endif
+
+ Debug.Assert(_sqlRPCParameterEncryptionReqArray != null, "RunExecuteReader rpc array not provided for describe parameter encryption request.");
+ writeTask = _stateObj.Parser.TdsExecuteRPC(this, _sqlRPCParameterEncryptionReqArray, timeout, inSchema, this.Notification, _stateObj, CommandType.StoredProcedure == CommandType, sync: !asyncWrite);
+ }
+ else if (BatchRPCMode) {
Debug.Assert(inSchema == false, "Batch RPC does not support schema only command beahvior");
Debug.Assert(!IsPrepared, "Batch RPC should not be prepared!");
Debug.Assert(!IsDirty, "Batch RPC should not be marked as dirty!");
@@ -2921,7 +3966,7 @@ namespace System.Data.SqlClient {
// Bid.Trace("<sc.SqlCommand.ExecuteReader|INFO> %d#, Command executed as batch RPC.\n", ObjectID);
//}
Debug.Assert(_SqlRPCBatchArray != null, "RunExecuteReader rpc array not provided");
- writeTask = _stateObj.Parser.TdsExecuteRPC(_SqlRPCBatchArray, timeout, inSchema, this.Notification, _stateObj, CommandType.StoredProcedure == CommandType, sync: !asyncWrite );
+ writeTask = _stateObj.Parser.TdsExecuteRPC(this, _SqlRPCBatchArray, timeout, inSchema, this.Notification, _stateObj, CommandType.StoredProcedure == CommandType, sync: !asyncWrite );
}
else if ((System.Data.CommandType.Text == this.CommandType) && (0 == GetParameterCount(_parameters))) {
// Send over SQL Batch command if we are not a stored proc and have no parameters
@@ -2975,7 +4020,7 @@ namespace System.Data.SqlClient {
//
Debug.Assert(_rpcArrayOf1[0] == rpc);
- writeTask = _stateObj.Parser.TdsExecuteRPC(_rpcArrayOf1, timeout, inSchema, this.Notification, _stateObj, CommandType.StoredProcedure == CommandType, sync:!asyncWrite);
+ writeTask = _stateObj.Parser.TdsExecuteRPC(this, _rpcArrayOf1, timeout, inSchema, this.Notification, _stateObj, CommandType.StoredProcedure == CommandType, sync:!asyncWrite);
}
else {
Debug.Assert(this.CommandType == System.Data.CommandType.StoredProcedure, "unknown command type!");
@@ -3010,7 +4055,7 @@ namespace System.Data.SqlClient {
// execute sp
Debug.Assert(_rpcArrayOf1[0] == rpc);
- writeTask=_stateObj.Parser.TdsExecuteRPC(_rpcArrayOf1, timeout, inSchema, this.Notification, _stateObj, CommandType.StoredProcedure == CommandType, sync:!asyncWrite);
+ writeTask=_stateObj.Parser.TdsExecuteRPC(this, _rpcArrayOf1, timeout, inSchema, this.Notification, _stateObj, CommandType.StoredProcedure == CommandType, sync:!asyncWrite);
}
Debug.Assert(writeTask == null || async, "Returned task in sync mode");
@@ -3118,7 +4163,7 @@ namespace System.Data.SqlClient {
}
if (null != eventStream) {
- eventStream.Close( EventSink ); // UNDONE: should cancel instead!
+ eventStream.Close( EventSink ); //
}
if (requestExecutor != null) {
@@ -3259,6 +4304,16 @@ namespace System.Data.SqlClient {
// Ensure that the connection is open and that the Parser is in the correct state
SqlInternalConnectionTds tdsConnection = _activeConnection.InnerConnection as SqlInternalConnectionTds;
+
+ // Ensure that if column encryption override was used then server supports its
+ if (((SqlCommandColumnEncryptionSetting.UseConnectionSetting == ColumnEncryptionSetting && _activeConnection.IsColumnEncryptionSettingEnabled)
+ || (ColumnEncryptionSetting == SqlCommandColumnEncryptionSetting.Enabled || ColumnEncryptionSetting == SqlCommandColumnEncryptionSetting.ResultSetOnly))
+ && null != tdsConnection
+ && null != tdsConnection.Parser
+ && !tdsConnection.Parser.IsColumnEncryptionSupported) {
+ throw SQL.TceNotSupported ();
+ }
+
if (tdsConnection != null) {
var parser = tdsConnection.Parser;
if ((parser == null) || (parser.State == TdsParserState.Closed)) {
@@ -3449,6 +4504,48 @@ namespace System.Data.SqlClient {
}
}
+ /// <summary>
+ /// IMPORTANT NOTE: This is created as a copy of OnDoneProc below for Transparent Column Encryption improvement
+ /// as there is not much time, to address regressions. Will revisit removing the duplication, when we have time again.
+ /// </summary>
+ internal void OnDoneDescribeParameterEncryptionProc(TdsParserStateObject stateObj) {
+ // called per rpc batch complete
+ if (BatchRPCMode) {
+ // track the records affected for the just completed rpc batch
+ // _rowsAffected is cumulative for ExecuteNonQuery across all rpc batches
+ _sqlRPCParameterEncryptionReqArray[_currentlyExecutingDescribeParameterEncryptionRPC].cumulativeRecordsAffected = _rowsAffected;
+
+ _sqlRPCParameterEncryptionReqArray[_currentlyExecutingDescribeParameterEncryptionRPC].recordsAffected =
+ (((0 < _currentlyExecutingDescribeParameterEncryptionRPC) && (0 <= _rowsAffected))
+ ? (_rowsAffected - Math.Max(_sqlRPCParameterEncryptionReqArray[_currentlyExecutingDescribeParameterEncryptionRPC - 1].cumulativeRecordsAffected, 0))
+ : _rowsAffected);
+
+ // track the error collection (not available from TdsParser after ExecuteNonQuery)
+ // and the which errors are associated with the just completed rpc batch
+ _sqlRPCParameterEncryptionReqArray[_currentlyExecutingDescribeParameterEncryptionRPC].errorsIndexStart =
+ ((0 < _currentlyExecutingDescribeParameterEncryptionRPC)
+ ? _sqlRPCParameterEncryptionReqArray[_currentlyExecutingDescribeParameterEncryptionRPC - 1].errorsIndexEnd
+ : 0);
+ _sqlRPCParameterEncryptionReqArray[_currentlyExecutingDescribeParameterEncryptionRPC].errorsIndexEnd = stateObj.ErrorCount;
+ _sqlRPCParameterEncryptionReqArray[_currentlyExecutingDescribeParameterEncryptionRPC].errors = stateObj._errors;
+
+ // track the warning collection (not available from TdsParser after ExecuteNonQuery)
+ // and the which warnings are associated with the just completed rpc batch
+ _sqlRPCParameterEncryptionReqArray[_currentlyExecutingDescribeParameterEncryptionRPC].warningsIndexStart =
+ ((0 < _currentlyExecutingDescribeParameterEncryptionRPC)
+ ? _sqlRPCParameterEncryptionReqArray[_currentlyExecutingDescribeParameterEncryptionRPC - 1].warningsIndexEnd
+ : 0);
+ _sqlRPCParameterEncryptionReqArray[_currentlyExecutingDescribeParameterEncryptionRPC].warningsIndexEnd = stateObj.WarningCount;
+ _sqlRPCParameterEncryptionReqArray[_currentlyExecutingDescribeParameterEncryptionRPC].warnings = stateObj._warnings;
+
+ _currentlyExecutingDescribeParameterEncryptionRPC++;
+ }
+ }
+
+ /// <summary>
+ /// IMPORTANT NOTE: There is a copy of this function above in OnDoneDescribeParameterEncryptionProc.
+ /// Please consider the changes being done in this function for the above function as well.
+ /// </summary>
internal void OnDoneProc() { // called per rpc batch complete
if (BatchRPCMode) {
@@ -3492,6 +4589,10 @@ namespace System.Data.SqlClient {
if (_inPrepare)
return;
+ // Don't set the return status if this is the status for sp_describe_parameter_encryption.
+ if (IsDescribeParameterEncryptionRPCCurrentlyInProgress)
+ return;
+
SqlParameterCollection parameters = _parameters;
if (BatchRPCMode) {
if (_parameterCollectionList.Count > _currentlyExecutingBatch) {
@@ -3528,7 +4629,7 @@ namespace System.Data.SqlClient {
// If named, match the parameter name, otherwise fill in based on ordinal position.
// If the parameter is not bound, then ignore the return value.
//
- internal void OnReturnValue(SqlReturnValue rec) {
+ internal void OnReturnValue(SqlReturnValue rec, TdsParserStateObject stateObj) {
if (_inPrepare) {
if (!rec.value.IsNull) {
@@ -3545,65 +4646,114 @@ namespace System.Data.SqlClient {
SqlParameter thisParam = GetParameterForOutputValueExtraction(parameters, rec.parameter, count);
if (null != thisParam) {
- // copy over data
+ // If the parameter's direction is InputOutput, Output or ReturnValue and it needs to be transparently encrypted/decrypted
+ // then simply decrypt, deserialize and set the value.
+ if (rec.cipherMD != null &&
+ thisParam.CipherMetadata != null &&
+ (thisParam.Direction == ParameterDirection.Output ||
+ thisParam.Direction == ParameterDirection.InputOutput ||
+ thisParam.Direction == ParameterDirection.ReturnValue)) {
+ if(rec.tdsType != TdsEnums.SQLBIGVARBINARY) {
+ throw SQL.InvalidDataTypeForEncryptedParameter(thisParam.ParameterNameFixed, rec.tdsType, TdsEnums.SQLBIGVARBINARY);
+ }
- // if the value user has supplied a SqlType class, then just copy over the SqlType, otherwise convert
- // to the com type
- object val = thisParam.Value;
+ // Decrypt the ciphertext
+ TdsParser parser = _activeConnection.Parser;
+ if ((parser == null) || (parser.State == TdsParserState.Closed) || (parser.State == TdsParserState.Broken)) {
+ throw ADP.ClosedConnectionError();
+ }
- //set the UDT value as typed object rather than bytes
- if (SqlDbType.Udt == thisParam.SqlDbType) {
- object data = null;
- try {
- Connection.CheckGetExtendedUDTInfo(rec, true);
+ if (!rec.value.IsNull) {
+ try {
+ Debug.Assert(_activeConnection != null, @"_activeConnection should not be null");
- //extract the byte array from the param value
- if (rec.value.IsNull)
- data = DBNull.Value;
- else {
- data = rec.value.ByteArray; //should work for both sql and non-sql values
- }
+ // Get the key information from the parameter and decrypt the value.
+ rec.cipherMD.EncryptionInfo = thisParam.CipherMetadata.EncryptionInfo;
+ byte[] unencryptedBytes = SqlSecurityUtility.DecryptWithKey(rec.value.ByteArray, rec.cipherMD, _activeConnection.DataSource);
- //call the connection to instantiate the UDT object
- thisParam.Value = Connection.GetUdtValue(data, rec, false);
- }
- catch (FileNotFoundException e) {
- // SQL BU DT 329981
- // Assign Assembly.Load failure in case where assembly not on client.
- // This allows execution to complete and failure on SqlParameter.Value.
- thisParam.SetUdtLoadError(e);
+ if (unencryptedBytes != null) {
+ // Denormalize the value and convert it to the parameter type.
+ SqlBuffer buffer = new SqlBuffer();
+ parser.DeserializeUnencryptedValue(buffer, unencryptedBytes, rec, stateObj, rec.NormalizationRuleVersion);
+ thisParam.SetSqlBuffer(buffer);
+ }
+ }
+ catch (Exception e) {
+ throw SQL.ParamDecryptionFailed(thisParam.ParameterNameFixed, null, e);
+ }
}
- catch (FileLoadException e) {
- // SQL BU DT 329981
- // Assign Assembly.Load failure in case where assembly cannot be loaded on client.
- // This allows execution to complete and failure on SqlParameter.Value.
- thisParam.SetUdtLoadError(e);
+ else {
+ // Create a new SqlBuffer and set it to null
+ // Note: We can't reuse the SqlBuffer in "rec" below since it's already been set (to varbinary)
+ // in previous call to TryProcessReturnValue().
+ // Note 2: We will be coming down this code path only if the Command Setting is set to use TCE.
+ // We pass the command setting as TCE enabled in the below call for this reason.
+ SqlBuffer buff = new SqlBuffer();
+ TdsParser.GetNullSqlValue(buff, rec, SqlCommandColumnEncryptionSetting.Enabled, parser.Connection);
+ thisParam.SetSqlBuffer(buff);
}
-
- return;
- } else {
- thisParam.SetSqlBuffer(rec.value);
}
+ else {
+ // copy over data
- MetaType mt = MetaType.GetMetaTypeFromSqlDbType(rec.type, rec.isMultiValued);
+ // if the value user has supplied a SqlType class, then just copy over the SqlType, otherwise convert
+ // to the com type
+ object val = thisParam.Value;
- if (rec.type == SqlDbType.Decimal) {
- thisParam.ScaleInternal = rec.scale;
- thisParam.PrecisionInternal = rec.precision;
- }
- else if (mt.IsVarTime) {
- thisParam.ScaleInternal = rec.scale;
- }
- else if (rec.type == SqlDbType.Xml) {
- SqlCachedBuffer cachedBuffer = (thisParam.Value as SqlCachedBuffer);
- if (null != cachedBuffer) {
- thisParam.Value = cachedBuffer.ToString();
+ //set the UDT value as typed object rather than bytes
+ if (SqlDbType.Udt == thisParam.SqlDbType) {
+ object data = null;
+ try {
+ Connection.CheckGetExtendedUDTInfo(rec, true);
+
+ //extract the byte array from the param value
+ if (rec.value.IsNull)
+ data = DBNull.Value;
+ else {
+ data = rec.value.ByteArray; //should work for both sql and non-sql values
+ }
+
+ //call the connection to instantiate the UDT object
+ thisParam.Value = Connection.GetUdtValue(data, rec, false);
+ }
+ catch (FileNotFoundException e) {
+ // SQL BU DT 329981
+ // Assign Assembly.Load failure in case where assembly not on client.
+ // This allows execution to complete and failure on SqlParameter.Value.
+ thisParam.SetUdtLoadError(e);
+ }
+ catch (FileLoadException e) {
+ // SQL BU DT 329981
+ // Assign Assembly.Load failure in case where assembly cannot be loaded on client.
+ // This allows execution to complete and failure on SqlParameter.Value.
+ thisParam.SetUdtLoadError(e);
+ }
+
+ return;
+ } else {
+ thisParam.SetSqlBuffer(rec.value);
}
- }
- if (rec.collation != null) {
- Debug.Assert(mt.IsCharType, "Invalid collation structure for non-char type");
- thisParam.Collation = rec.collation;
+ MetaType mt = MetaType.GetMetaTypeFromSqlDbType(rec.type, rec.isMultiValued);
+
+ if (rec.type == SqlDbType.Decimal) {
+ thisParam.ScaleInternal = rec.scale;
+ thisParam.PrecisionInternal = rec.precision;
+ }
+ else if (mt.IsVarTime) {
+ thisParam.ScaleInternal = rec.scale;
+ }
+ else if (rec.type == SqlDbType.Xml) {
+ SqlCachedBuffer cachedBuffer = (thisParam.Value as SqlCachedBuffer);
+ if (null != cachedBuffer) {
+ thisParam.Value = cachedBuffer.ToString();
+ }
+ }
+
+ if (rec.collation != null) {
+ Debug.Assert(mt.IsCharType, "Invalid collation structure for non-char type");
+ thisParam.Collation = rec.collation;
+ }
}
}
@@ -3699,16 +4849,25 @@ namespace System.Data.SqlClient {
return null;
}
- private void GetRPCObject(int paramCount, ref _SqlRPC rpc) {
-
+ private void GetRPCObject(int paramCount, ref _SqlRPC rpc, bool forSpDescribeParameterEncryption = false) {
// Designed to minimize necessary allocations
int ii;
if (rpc == null) {
- if (_rpcArrayOf1 == null) {
- _rpcArrayOf1 = new _SqlRPC[1];
- _rpcArrayOf1[0] = new _SqlRPC();
+ if (!forSpDescribeParameterEncryption) {
+ if (_rpcArrayOf1 == null) {
+ _rpcArrayOf1 = new _SqlRPC[1];
+ _rpcArrayOf1[0] = new _SqlRPC();
+ }
+
+ rpc = _rpcArrayOf1[0];
+ }
+ else {
+ if (_rpcForEncryption == null) {
+ _rpcForEncryption = new _SqlRPC();
+ }
+
+ rpc = _rpcForEncryption;
}
- rpc = _rpcArrayOf1[0] ;
}
rpc.ProcID = 0;
@@ -3725,6 +4884,7 @@ namespace System.Data.SqlClient {
rpc.warningsIndexStart = 0;
rpc.warningsIndexEnd = 0;
rpc.warnings = null;
+ rpc.needsFetchParameterEncryptionMetadata = false;
// Make sure there is enough space in the parameters and paramoptions arrays
if(rpc.parameters == null || rpc.parameters.Length < paramCount) {
@@ -3767,6 +4927,11 @@ namespace System.Data.SqlClient {
parameter.Direction == ParameterDirection.Output)
rpc.paramoptions[j] = TdsEnums.RPC_PARAM_BYREF;
+ // Set the encryped bit, if the parameter is to be encrypted.
+ if (parameter.CipherMetadata != null) {
+ rpc.paramoptions[j] |= TdsEnums.RPC_PARAM_ENCRYPTED;
+ }
+
// set default value bit
if (parameter.Direction != ParameterDirection.Output) {
// remember that null == Convert.IsEmpty, DBNull.Value is a database null!
@@ -3832,11 +4997,11 @@ namespace System.Data.SqlClient {
// returns true if the parameter is not a return value
// and it's value is not DBNull (for a nullable parameter)
//
- private static bool ShouldSendParameter(SqlParameter p) {
+ private static bool ShouldSendParameter(SqlParameter p, bool includeReturnValue = false) {
switch (p.Direction) {
case ParameterDirection.ReturnValue:
- // return value parameters are never sent
- return false;
+ // return value parameters are not sent, except for the parameter list of sp_describe_parameter_encryption
+ return includeReturnValue;
case ParameterDirection.Output:
case ParameterDirection.InputOutput:
case ParameterDirection.Input:
@@ -3976,12 +5141,96 @@ namespace System.Data.SqlClient {
}
}
+ /// <summary>
+ /// This function constructs a string parameter containing the exec statement in the following format
+ /// N'EXEC sp_name @param1=@param1, @param1=@param2, ..., @paramN=@paramN'
+ ///
+
+
+
+
+ private SqlParameter BuildStoredProcedureStatementForColumnEncryption(string storedProcedureName, SqlParameter[] parameters) {
+ Debug.Assert(CommandType == CommandType.StoredProcedure, "BuildStoredProcedureStatementForColumnEncryption() should only be called for stored procedures");
+ Debug.Assert(!string.IsNullOrWhiteSpace(storedProcedureName), "storedProcedureName cannot be null or empty in BuildStoredProcedureStatementForColumnEncryption");
+ Debug.Assert(parameters != null, "parameters cannot be null in BuildStoredProcedureStatementForColumnEncryption");
+
+ StringBuilder execStatement = new StringBuilder();
+ execStatement.Append(@"EXEC ");
+
+ // Find the return value parameter (if any).
+ SqlParameter returnValueParameter = null;
+ foreach (SqlParameter parameter in parameters) {
+ if (parameter.Direction == ParameterDirection.ReturnValue) {
+ returnValueParameter = parameter;
+ break;
+ }
+ }
+
+ // If there is a return value parameter we need to assign the result to it.
+ // EXEC @returnValue = moduleName [parameters]
+ if (returnValueParameter != null) {
+ execStatement.AppendFormat(@"{0}=", returnValueParameter.ParameterNameFixed);
+ }
+
+ execStatement.Append(ParseAndQuoteIdentifier(storedProcedureName, false));
+
+ // Build parameter list in the format
+ // @param1=@param1, @param1=@param2, ..., @paramn=@paramn
+
+ // Append the first parameter
+ int i = 0;
+
+ if(parameters.Count() > 0) {
+ // Skip the return value parameters.
+ while (i < parameters.Count() && parameters[i].Direction == ParameterDirection.ReturnValue) {
+ i++;
+ }
+
+ if (i < parameters.Count()) {
+ // Possibility of a SQL Injection issue through parameter names and how to construct valid identifier for parameters.
+ // Since the parameters comes from application itself, there should not be a security vulnerability.
+ // Also since the query is not executed, but only analyzed there is no possibility for elevation of priviledge, but only for
+ // incorrect results which would only affect the user that attempts the injection.
+ execStatement.AppendFormat(@" {0}={0}", parameters[i].ParameterNameFixed);
+
+ // InputOutput and Output parameters need to be marked as such.
+ if (parameters[i].Direction == ParameterDirection.Output ||
+ parameters[i].Direction == ParameterDirection.InputOutput) {
+ execStatement.AppendFormat(@" OUTPUT");
+ }
+ }
+ }
+
+ // Move to the next parameter.
+ i++;
+
+ // Append the rest of parameters
+ for (; i < parameters.Count(); i++) {
+ if (parameters[i].Direction != ParameterDirection.ReturnValue) {
+ execStatement.AppendFormat(@", {0}={0}", parameters[i].ParameterNameFixed);
+
+ // InputOutput and Output parameters need to be marked as such.
+ if (parameters[i].Direction == ParameterDirection.Output ||
+ parameters[i].Direction == ParameterDirection.InputOutput) {
+ execStatement.AppendFormat(@" OUTPUT");
+ }
+ }
+ }
+
+ // Construct @tsql SqlParameter to be returned
+ SqlParameter tsqlParameter = new SqlParameter(null, ((execStatement.Length << 1) <= TdsEnums.TYPE_SIZE_LIMIT) ? SqlDbType.NVarChar : SqlDbType.NText, execStatement.Length);
+ tsqlParameter.Value = execStatement.ToString();
+
+ return tsqlParameter;
+ }
+
// paramList parameter for sp_executesql, sp_prepare, and sp_prepexec
- internal string BuildParamList(TdsParser parser, SqlParameterCollection parameters) {
+ internal string BuildParamList(TdsParser parser, SqlParameterCollection parameters, bool includeReturnValue = false) {
StringBuilder paramList = new StringBuilder();
bool fAddSeperator = false;
bool yukonOrNewer = parser.IsYukonOrNewer;
+
int count = 0;
count = parameters.Count;
@@ -3989,7 +5238,7 @@ namespace System.Data.SqlClient {
SqlParameter sqlParam = parameters[i];
sqlParam.Validate(i, CommandType.StoredProcedure == CommandType);
// skip ReturnValue parameters; we never send them to the server
- if (!ShouldSendParameter(sqlParam))
+ if (!ShouldSendParameter(sqlParam, includeReturnValue))
continue;
// add our separator for the ith parmeter
@@ -4090,8 +5339,8 @@ namespace System.Data.SqlClient {
}
}
- // bug 49497, if the user specifies a 0-sized parameter for a variable len field
- // pass over max size (8000 bytes or 4000 characters for wide types)
+ //
+
if (0 == size)
size = mt.IsSizeInCharacters ? (TdsEnums.MAXSIZE >> 1) : TdsEnums.MAXSIZE;
@@ -4274,6 +5523,25 @@ namespace System.Data.SqlClient {
}
}
+ /// <summary>
+ /// Get or set the number of records affected by SpDescribeParameterEncryption.
+ /// The below line is used only for debug asserts and not exposed publicly or impacts functionality otherwise.
+ /// </summary>
+ internal int RowsAffectedByDescribeParameterEncryption
+ {
+ get {
+ return _rowsAffectedBySpDescribeParameterEncryption;
+ }
+ set {
+ if (-1 == _rowsAffectedBySpDescribeParameterEncryption) {
+ _rowsAffectedBySpDescribeParameterEncryption = value;
+ }
+ else if (0 < value) {
+ _rowsAffectedBySpDescribeParameterEncryption += value;
+ }
+ }
+ }
+
internal int InternalRecordsAffected {
get {
return _rowsAffected;
@@ -4308,6 +5576,16 @@ namespace System.Data.SqlClient {
}
}
+ /// <summary>
+ /// Clear the state in sqlcommand related to describe parameter encryption RPC requests.
+ /// </summary>
+ private void ClearDescribeParameterEncryptionRequests() {
+ _sqlRPCParameterEncryptionReqArray = null;
+ _currentlyExecutingDescribeParameterEncryptionRPC = 0;
+ _isDescribeParameterEncryptionRPCCurrentlyInProgress = false;
+ _rowsAffectedBySpDescribeParameterEncryption = -1;
+ }
+
internal void ClearBatchCommand() {
List<_SqlRPC> rpcList = _RPCList;
if (null != rpcList) {
@@ -4320,7 +5598,23 @@ namespace System.Data.SqlClient {
_currentlyExecutingBatch = 0;
}
- internal void AddBatchCommand(string commandText, SqlParameterCollection parameters, CommandType cmdType) {
+ /// <summary>
+ /// Set the column encryption setting to the new one.
+ /// Do not allow conflicting column encryption settings.
+ /// </summary>
+ private void SetColumnEncryptionSetting(SqlCommandColumnEncryptionSetting newColumnEncryptionSetting) {
+ if (!this._wasBatchModeColumnEncryptionSettingSetOnce) {
+ this._columnEncryptionSetting = newColumnEncryptionSetting;
+ this._wasBatchModeColumnEncryptionSettingSetOnce = true;
+ }
+ else {
+ if (this._columnEncryptionSetting != newColumnEncryptionSetting) {
+ throw SQL.BatchedUpdateColumnEncryptionSettingMismatch();
+ }
+ }
+ }
+
+ internal void AddBatchCommand(string commandText, SqlParameterCollection parameters, CommandType cmdType, SqlCommandColumnEncryptionSetting columnEncryptionSetting) {
Debug.Assert(BatchRPCMode, "Command is not in batch RPC Mode");
Debug.Assert(_RPCList != null);
Debug.Assert(_parameterCollectionList != null);
@@ -4329,6 +5623,10 @@ namespace System.Data.SqlClient {
this.CommandText = commandText;
this.CommandType = cmdType;
+
+ // Set the column encryption setting.
+ SetColumnEncryptionSetting(columnEncryptionSetting);
+
GetStateObject();
if (cmdType == CommandType.StoredProcedure) {
BuildRPC(false, parameters, ref rpc);
@@ -4537,6 +5835,43 @@ namespace System.Data.SqlClient {
return requestExecutor;
}
+ private void WriteBeginExecuteEvent()
+ {
+ if (SqlEventSource.Log.IsEnabled() && Connection != null)
+ {
+ string commandText = CommandType == CommandType.StoredProcedure ? CommandText : string.Empty;
+ SqlEventSource.Log.BeginExecute(GetHashCode(), Connection.DataSource, Connection.Database, commandText);
+ }
+ }
+
+ /// <summary>
+ /// Writes and end execute event in Event Source.
+ /// </summary>
+ /// <param name="success">True if SQL command finished successfully, otherwise false.</param>
+ /// <param name="sqlExceptionNumber">Gets a number that identifies the type of error.</param>
+ /// <param name="synchronous">True if SQL command was executed synchronously, otherwise false.</param>
+ private void WriteEndExecuteEvent(bool success, int? sqlExceptionNumber, bool synchronous)
+ {
+ if (SqlEventSource.Log.IsEnabled())
+ {
+ // SqlEventSource.WriteEvent(int, int, int, int) is faster than provided overload SqlEventSource.WriteEvent(int, object[]).
+ // that's why trying to fit several booleans in one integer value
+
+ // success state is stored the first bit in compositeState 0x01
+ int successFlag = success ? 1 : 0;
+
+ // isSqlException is stored in the 2nd bit in compositeState 0x100
+ int isSqlExceptionFlag = sqlExceptionNumber.HasValue ? 2 : 0;
+
+ // synchronous state is stored in the second bit in compositeState 0x10
+ int synchronousFlag = synchronous ? 4 : 0;
+
+ int compositeState = successFlag | isSqlExceptionFlag | synchronousFlag;
+
+ SqlEventSource.Log.EndExecute(GetHashCode(), compositeState, sqlExceptionNumber.GetValueOrDefault());
+ }
+ }
+
#if DEBUG
internal void CompletePendingReadWithSuccess(bool resetForcePendingReadsToWait) {
var stateObj = _stateObj;
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCommandBuilder.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCommandBuilder.cs
index 476000e80a5..7563b0c082c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCommandBuilder.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCommandBuilder.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlCommandBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCommandSet.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCommandSet.cs
index eaf2f2a88a1..913a30f1c2a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCommandSet.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCommandSet.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlBatchCommand.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
@@ -35,13 +35,15 @@ namespace System.Data.SqlClient {
internal readonly SqlParameterCollection Parameters;
internal readonly int ReturnParameterIndex;
internal readonly CommandType CmdType;
+ internal readonly SqlCommandColumnEncryptionSetting ColumnEncryptionSetting;
- internal LocalCommand(string commandText, SqlParameterCollection parameters, int returnParameterIndex, CommandType cmdType) {
+ internal LocalCommand(string commandText, SqlParameterCollection parameters, int returnParameterIndex, CommandType cmdType, SqlCommandColumnEncryptionSetting columnEncryptionSetting) {
Debug.Assert(0 <= commandText.Length, "no text");
this.CommandText = commandText;
this.Parameters = parameters;
this.ReturnParameterIndex = returnParameterIndex;
this.CmdType = cmdType;
+ this.ColumnEncryptionSetting = columnEncryptionSetting;
}
}
@@ -197,7 +199,7 @@ namespace System.Data.SqlClient {
}
}
}
- LocalCommand cmd = new LocalCommand(cmdText, parameters, returnParameterIndex, command.CommandType);
+ LocalCommand cmd = new LocalCommand(cmdText, parameters, returnParameterIndex, command.CommandType, command.ColumnEncryptionSetting);
CommandList.Add(cmd);
}
@@ -260,7 +262,7 @@ namespace System.Data.SqlClient {
BatchCommand.Parameters.Clear();
for (int ii = 0 ; ii < _commandList.Count; ii++) {
LocalCommand cmd = _commandList[ii];
- BatchCommand.AddBatchCommand(cmd.CommandText, cmd.Parameters, cmd.CmdType);
+ BatchCommand.AddBatchCommand(cmd.CommandText, cmd.Parameters, cmd.CmdType, cmd.ColumnEncryptionSetting);
}
return BatchCommand.ExecuteBatchRPCCommand();
}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnection.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnection.cs
index ac04c011fb5..f169a86ecd3 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnection.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlConnection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.Data.DataSetExtensions, PublicKey="+AssemblyRef.EcmaPublicKeyFull)] // DevDiv Bugs 92166
@@ -12,6 +12,9 @@ namespace System.Data.SqlClient
{
using System;
using System.Collections;
+ using System.Collections.Concurrent;
+ using System.Collections.Generic;
+ using System.Collections.ObjectModel;
using System.Configuration.Assemblies;
using System.ComponentModel;
using System.Data;
@@ -22,6 +25,7 @@ namespace System.Data.SqlClient
using System.Diagnostics;
using System.Globalization;
using System.IO;
+ using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.ConstrainedExecution;
using System.Runtime.InteropServices;
@@ -44,6 +48,163 @@ namespace System.Data.SqlClient
static private readonly object EventInfoMessage = new object();
+ // System column encryption key store providers are added by default
+ static private readonly Dictionary<string, SqlColumnEncryptionKeyStoreProvider> _SystemColumnEncryptionKeyStoreProviders
+ = new Dictionary<string, SqlColumnEncryptionKeyStoreProvider>(capacity: 1, comparer: StringComparer.OrdinalIgnoreCase)
+ {
+ {SqlColumnEncryptionCertificateStoreProvider.ProviderName, new SqlColumnEncryptionCertificateStoreProvider()}
+ };
+
+ /// <summary>
+ /// Custom provider list should be provided by the user. We shallow copy the user supplied dictionary into a ReadOnlyDictionary.
+ /// Custom provider list can only supplied once per application.
+ /// </summary>
+ static private ReadOnlyDictionary<string, SqlColumnEncryptionKeyStoreProvider> _CustomColumnEncryptionKeyStoreProviders;
+
+ // Lock to control setting of _CustomColumnEncryptionKeyStoreProviders
+ static private readonly Object _CustomColumnEncryptionKeyProvidersLock = new Object();
+
+ /// <summary>
+ /// Dictionary object holding trusted key paths for various SQL Servers.
+ /// Key to the dictionary is a SQL Server Name
+ /// IList contains a list of trusted key paths.
+ /// </summary>
+ static private readonly ConcurrentDictionary<string, IList<string>> _ColumnEncryptionTrustedMasterKeyPaths
+ = new ConcurrentDictionary<string, IList<string>>(concurrencyLevel: 4 * Environment.ProcessorCount /* default value in ConcurrentDictionary*/,
+ capacity: 1,
+ comparer: StringComparer.OrdinalIgnoreCase);
+
+ [
+ DefaultValue(null),
+ ResCategoryAttribute(Res.DataCategory_Data),
+ ResDescriptionAttribute(Res.TCE_SqlConnection_TrustedColumnMasterKeyPaths),
+ ]
+ static public IDictionary<string, IList<string>> ColumnEncryptionTrustedMasterKeyPaths
+ {
+ get
+ {
+ return _ColumnEncryptionTrustedMasterKeyPaths;
+ }
+ }
+
+ /// <summary>
+ /// This function should only be called once in an app. This does shallow copying of the dictionary so that
+ /// the app cannot alter the custom provider list once it has been set.
+ ///
+ /// Example:
+ ///
+ /// Dictionary<string, SqlColumnEncryptionKeyStoreProvider> customKeyStoreProviders = new Dictionary<string, SqlColumnEncryptionKeyStoreProvider>();
+ /// MySqlClientHSMProvider myProvider = new MySqlClientHSMProvider();
+ /// customKeyStoreProviders.Add(@"HSM Provider", myProvider);
+ /// SqlConnection.RegisterColumnEncryptionKeyStoreProviders(customKeyStoreProviders);
+ /// </summary>
+ /// <param name="customProviders">Custom column encryption key provider dictionary</param>
+ static public void RegisterColumnEncryptionKeyStoreProviders(IDictionary<string, SqlColumnEncryptionKeyStoreProvider> customProviders)
+ {
+
+ // Return when the provided dictionary is null.
+ if (customProviders == null)
+ {
+ throw SQL.NullCustomKeyStoreProviderDictionary();
+ }
+
+ // Validate that custom provider list doesn't contain any of system provider list
+ foreach (string key in customProviders.Keys)
+ {
+ // Validate the provider name
+ //
+ // Check for null or empty
+ if (string.IsNullOrWhiteSpace(key))
+ {
+ throw SQL.EmptyProviderName();
+ }
+
+ // Check if the name starts with MSSQL_, since this is reserved namespace for system providers.
+ if (key.StartsWith(ADP.ColumnEncryptionSystemProviderNamePrefix, StringComparison.InvariantCultureIgnoreCase))
+ {
+ throw SQL.InvalidCustomKeyStoreProviderName(key, ADP.ColumnEncryptionSystemProviderNamePrefix);
+ }
+
+ // Validate the provider value
+ if (customProviders[key] == null)
+ {
+ throw SQL.NullProviderValue(key);
+ }
+ }
+
+ lock (_CustomColumnEncryptionKeyProvidersLock)
+ {
+ // Provider list can only be set once
+ if (_CustomColumnEncryptionKeyStoreProviders != null)
+ {
+ throw SQL.CanOnlyCallOnce();
+ }
+
+ // Create a temporary dictionary and then add items from the provided dictionary.
+ // Dictionary constructor does shallow copying by simply copying the provider name and provider reference pairs
+ // in the provided customerProviders dictionary.
+ Dictionary<string, SqlColumnEncryptionKeyStoreProvider> customColumnEncryptionKeyStoreProviders =
+ new Dictionary<string, SqlColumnEncryptionKeyStoreProvider>(customProviders, StringComparer.OrdinalIgnoreCase);
+
+ // Set the dictionary to the ReadOnly dictionary.
+ _CustomColumnEncryptionKeyStoreProviders = new ReadOnlyDictionary<string, SqlColumnEncryptionKeyStoreProvider>(customColumnEncryptionKeyStoreProviders);
+ }
+ }
+
+ /// <summary>
+ /// This function walks through both system and custom column encryption key store providers and returns an object if found.
+ /// </summary>
+ /// <param name="providerName">Provider Name to be searched in System Provider diction and Custom provider dictionary.</param>
+ /// <param name="columnKeyStoreProvider">If the provider is found, returns the corresponding SqlColumnEncryptionKeyStoreProvider instance.</param>
+ /// <returns>true if the provider is found, else returns false</returns>
+ static internal bool TryGetColumnEncryptionKeyStoreProvider(string providerName, out SqlColumnEncryptionKeyStoreProvider columnKeyStoreProvider) {
+ Debug.Assert(!string.IsNullOrWhiteSpace(providerName), "Provider name is invalid");
+
+ // Initialize the out parameter
+ columnKeyStoreProvider = null;
+
+ // Search in the sytem provider list.
+ if (_SystemColumnEncryptionKeyStoreProviders.TryGetValue(providerName, out columnKeyStoreProvider))
+ {
+ return true;
+ }
+
+ lock (_CustomColumnEncryptionKeyProvidersLock)
+ {
+ // If custom provider is not set, then return false
+ if (_CustomColumnEncryptionKeyStoreProviders == null)
+ {
+ return false;
+ }
+
+ // Search in the custom provider list
+ return _CustomColumnEncryptionKeyStoreProviders.TryGetValue(providerName, out columnKeyStoreProvider);
+ }
+ }
+
+ /// <summary>
+ /// This function returns a list of system provider dictionary currently supported by this driver.
+ /// </summary>
+ /// <returns>Combined list of provider names</returns>
+ static internal List<string> GetColumnEncryptionSystemKeyStoreProviders() {
+ HashSet<string> providerNames = new HashSet<string>(_SystemColumnEncryptionKeyStoreProviders.Keys);
+ return providerNames.ToList();
+ }
+
+ /// <summary>
+ /// This function returns a list of custom provider dictionary currently registered.
+ /// </summary>
+ /// <returns>Combined list of provider names</returns>
+ static internal List<string> GetColumnEncryptionCustomKeyStoreProviders() {
+ if(_CustomColumnEncryptionKeyStoreProviders != null)
+ {
+ HashSet<string> providerNames = new HashSet<string>(_CustomColumnEncryptionKeyStoreProviders.Keys);
+ return providerNames.ToList();
+ }
+
+ return new List<string>();
+ }
+
private SqlDebugContext _sdc; // SQL Debugging support
private bool _AsyncCommandInProgress;
@@ -59,7 +220,9 @@ namespace System.Data.SqlClient
private SqlCredential _credential; // SQL authentication password stored in SecureString
private string _connectionString;
- private int _connectRetryCount;
+ private int _connectRetryCount;
+
+ private string _accessToken; // Access Token to be used for token based authententication
// connection resiliency
private object _reconnectLock = new object();
@@ -98,6 +261,11 @@ namespace System.Data.SqlClient
throw ADP.InvalidMixedArgumentOfSecureCredentialAndContextConnection();
}
+ if (UsesActiveDirectoryIntegrated(connectionOptions))
+ {
+ throw SQL.SettingCredentialWithIntegratedArgument();
+ }
+
Credential = credential;
}
// else
@@ -116,6 +284,7 @@ namespace System.Data.SqlClient
password.MakeReadOnly();
_credential = new SqlCredential(connection._credential.UserId, password);
}
+ _accessToken = connection._accessToken;
CacheConnectionStringProperties();
}
@@ -206,19 +375,38 @@ namespace System.Data.SqlClient
}
}
+ /// <summary>
+ /// Is this connection using column encryption ?
+ /// </summary>
+ internal bool IsColumnEncryptionSettingEnabled {
+ get {
+ SqlConnectionString opt = (SqlConnectionString)ConnectionOptions;
+ return opt != null ? opt.ColumnEncryptionSetting == SqlConnectionColumnEncryptionSetting.Enabled : false;
+ }
+ }
+
// Is this connection is a Context Connection?
private bool UsesContextConnection(SqlConnectionString opt)
{
return opt != null ? opt.ContextConnection : false;
}
+ private bool UsesActiveDirectoryIntegrated(SqlConnectionString opt)
+ {
+ return opt != null ? opt.Authentication == SqlAuthenticationMethod.ActiveDirectoryIntegrated : false;
+ }
+
+ private bool UsesAuthentication(SqlConnectionString opt) {
+ return opt != null ? opt.Authentication != SqlAuthenticationMethod.NotSpecified : false;
+ }
+
// Does this connection uses Integrated Security?
private bool UsesIntegratedSecurity(SqlConnectionString opt) {
- return opt != null ? opt.IntegratedSecurity : false;
+ return opt != null ? opt.IntegratedSecurity : false;
}
// Does this connection uses old style of clear userID or Password in connection string?
- private bool UsesClearUserIdOrPassword(SqlConnectionString opt) {
+ private bool UsesClearUserIdOrPassword(SqlConnectionString opt) {
bool result = false;
if (null != opt) {
result = (!ADP.IsEmpty(opt.UserID) || !ADP.IsEmpty(opt.Password));
@@ -256,6 +444,41 @@ namespace System.Data.SqlClient
}
}
+ // AccessToken: To be used for token based authentication
+ [
+ Browsable(false),
+ DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
+ ResDescriptionAttribute(Res.SqlConnection_AccessToken),
+ ]
+ public string AccessToken {
+ get {
+ string result = _accessToken;
+ // When a connection is connecting or is ever opened, make AccessToken available only if "Persist Security Info" is set to true
+ // otherwise, return null
+ SqlConnectionString connectionOptions = (SqlConnectionString)UserConnectionOptions;
+ if (InnerConnection.ShouldHidePassword && connectionOptions != null && !connectionOptions.PersistSecurityInfo) {
+ result = null;
+ }
+
+ return result;
+ }
+ set {
+ // If a connection is connecting or is ever opened, AccessToken cannot be set
+ if (!InnerConnection.AllowSetConnectionString) {
+ throw ADP.OpenConnectionPropertySet("AccessToken", InnerConnection.State);
+ }
+
+ if (value != null) {
+ // Check if the usage of AccessToken has any conflict with the keys used in connection string and credential
+ CheckAndThrowOnInvalidCombinationOfConnectionOptionAndAccessToken((SqlConnectionString)ConnectionOptions);
+ }
+
+ _accessToken = value;
+ // Need to call ConnectionString_Set to do proper pool group check
+ ConnectionString_Set(new SqlConnectionPoolKey(_connectionString, credential: _credential, accessToken: _accessToken));
+ }
+ }
+
[
DefaultValue(""),
#pragma warning disable 618 // ignore obsolete warning about RecommendedAsConfigurable to use SettingsBindableAttribute
@@ -272,13 +495,23 @@ namespace System.Data.SqlClient
return ConnectionString_Get();
}
set {
- if (_credential != null)
- {
+ if(_credential != null || _accessToken != null) {
SqlConnectionString connectionOptions = new SqlConnectionString(value);
- CheckAndThrowOnInvalidCombinationOfConnectionStringAndSqlCredential(connectionOptions);
- }
+ if(_credential != null) {
+ // Check for Credential being used with Authentication=ActiveDirectoryIntegrated. Since a different error string is used
+ // for this case in ConnectionString setter vs in Credential setter, check for this error case before calling
+ // CheckAndThrowOnInvalidCombinationOfConnectionStringAndSqlCredential, which is common to both setters.
+ if(UsesActiveDirectoryIntegrated(connectionOptions)) {
+ throw SQL.SettingIntegratedWithCredential();
+ }
- ConnectionString_Set(new SqlConnectionPoolKey(value, _credential));
+ CheckAndThrowOnInvalidCombinationOfConnectionStringAndSqlCredential(connectionOptions);
+ }
+ else if(_accessToken != null) {
+ CheckAndThrowOnInvalidCombinationOfConnectionOptionAndAccessToken(connectionOptions);
+ }
+ }
+ ConnectionString_Set(new SqlConnectionPoolKey(value, _credential, _accessToken));
_connectionString = value; // Change _connectionString value only after value is validated
CacheConnectionStringProperties();
}
@@ -482,13 +715,24 @@ namespace System.Data.SqlClient
// check if the usage of credential has any conflict with the keys used in connection string
if (value != null)
{
+ // Check for Credential being used with Authentication=ActiveDirectoryIntegrated. Since a different error string is used
+ // for this case in ConnectionString setter vs in Credential setter, check for this error case before calling
+ // CheckAndThrowOnInvalidCombinationOfConnectionStringAndSqlCredential, which is common to both setters.
+ if (UsesActiveDirectoryIntegrated((SqlConnectionString) ConnectionOptions)) {
+ throw SQL.SettingCredentialWithIntegratedInvalid();
+ }
+
CheckAndThrowOnInvalidCombinationOfConnectionStringAndSqlCredential((SqlConnectionString) ConnectionOptions);
- }
+ if(_accessToken != null) {
+ throw ADP.InvalidMixedUsageOfCredentialAndAccessToken();
+ }
+ }
+
_credential = value;
// Need to call ConnectionString_Set to do proper pool group check
- ConnectionString_Set(new SqlConnectionPoolKey(_connectionString, _credential));
+ ConnectionString_Set(new SqlConnectionPoolKey(_connectionString, _credential, accessToken: _accessToken));
}
}
@@ -514,6 +758,33 @@ namespace System.Data.SqlClient
}
}
+ // CheckAndThrowOnInvalidCombinationOfConnectionOptionAndAccessToken: check if the usage of AccessToken has any conflict
+ // with the keys used in connection string and credential
+ // If there is any conflict, it throws InvalidOperationException
+ // This is to be used setter of ConnectionString and AccessToken properties
+ private void CheckAndThrowOnInvalidCombinationOfConnectionOptionAndAccessToken(SqlConnectionString connectionOptions) {
+ if (UsesClearUserIdOrPassword(connectionOptions)) {
+ throw ADP.InvalidMixedUsageOfAccessTokenAndUserIDPassword();
+ }
+
+ if (UsesIntegratedSecurity(connectionOptions)) {
+ throw ADP.InvalidMixedUsageOfAccessTokenAndIntegratedSecurity();
+ }
+
+ if (UsesContextConnection(connectionOptions)) {
+ throw ADP.InvalidMixedUsageOfAccessTokenAndContextConnection();
+ }
+
+ if (UsesAuthentication(connectionOptions)) {
+ throw ADP.InvalidMixedUsageOfAccessTokenAndAuthentication();
+ }
+
+ // Check if the usage of AccessToken has the conflict with credential
+ if (_credential != null) {
+ throw ADP.InvalidMixedUsageOfAccessTokenAndCredential();
+ }
+ }
+
//
// PUBLIC EVENTS
//
@@ -784,14 +1055,16 @@ namespace System.Data.SqlClient
}
private void DisposeMe(bool disposing) { // MDAC 65459
- _credential = null; // clear credential here rather than in IDisposable.Dispose as this is only specific to SqlConnection only
- // IDisposable.Dispose is generated code from a template and used by other providers as well
+ // clear credential and AccessToken here rather than in IDisposable.Dispose as these are specific to SqlConnection only
+ // IDisposable.Dispose is generated code from a template and used by other providers as well
+ _credential = null;
+ _accessToken = null;
if (!disposing) {
- // DevDiv2 Bug 457934:SQLConnection leaks when not disposed
- // http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/457934
- // For non-pooled connections we need to make sure that if the SqlConnection was not closed, then we release the GCHandle on the stateObject to allow it to be GCed
- // For pooled connections, we will rely on the pool reclaiming the connection
+ // DevDiv2
+
+
+
var innerConnection = (InnerConnection as SqlInternalConnectionTds);
if ((innerConnection != null) && (!innerConnection.ConnectionOptions.Pooling)) {
var parser = innerConnection.Parser;
@@ -1151,7 +1424,16 @@ namespace System.Data.SqlClient
}
private bool TryOpen(TaskCompletionSource<DbConnectionInternal> retry) {
- if (_impersonateIdentity != null) {
+ SqlConnectionString connectionOptions = (SqlConnectionString)ConnectionOptions;
+
+ if (connectionOptions != null &&
+ (connectionOptions.Authentication == SqlAuthenticationMethod.SqlPassword || connectionOptions.Authentication == SqlAuthenticationMethod.ActiveDirectoryPassword) &&
+ (!connectionOptions.HasUserIdKeyword || !connectionOptions.HasPasswordKeyword) &&
+ _credential == null) {
+ throw SQL.CredentialsNotProvided(connectionOptions.Authentication);
+ }
+
+ if (_impersonateIdentity != null) {
if (_impersonateIdentity.User == DbConnectionPoolIdentity.GetCurrentWindowsIdentity().User) {
return TryOpenInner(retry);
}
@@ -1162,7 +1444,7 @@ namespace System.Data.SqlClient
}
}
else {
- if (this.UsesIntegratedSecurity((SqlConnectionString)ConnectionOptions)) {
+ if (this.UsesIntegratedSecurity(connectionOptions) || this.UsesActiveDirectoryIntegrated(connectionOptions)) {
_lastIdentity = DbConnectionPoolIdentity.GetCurrentWindowsIdentity();
}
else {
@@ -1353,13 +1635,13 @@ namespace System.Data.SqlClient
internal void OnError(SqlException exception, bool breakConnection, Action<Action> wrapCloseInAction) {
Debug.Assert(exception != null && exception.Errors.Count != 0, "SqlConnection: OnError called with null or empty exception!");
- // Bug fix - MDAC 49022 - connection open after failure... Problem was parser was passing
- // Open as a state - because the parser's connection to the netlib was open. We would
- // then set the connection state to the parser's state - which is not correct. The only
- // time the connection state should change to what is passed in to this function is if
- // the parser is broken, then we should be closed. Changed to passing in
- // TdsParserState, not ConnectionState.
- // fixed by [....]
+ //
+
+
+
+
+
+
if (breakConnection && (ConnectionState.Open == State)) {
@@ -1665,10 +1947,10 @@ namespace System.Data.SqlClient
throw ADP.InvalidArgumentLength("newPassword", TdsEnums.MAXLEN_NEWPASSWORD);
}
- SqlConnectionPoolKey key = new SqlConnectionPoolKey(connectionString, null);
+ SqlConnectionPoolKey key = new SqlConnectionPoolKey(connectionString, credential: null, accessToken: null);
SqlConnectionString connectionOptions = SqlConnectionFactory.FindSqlConnectionOptions(key);
- if (connectionOptions.IntegratedSecurity) {
+ if (connectionOptions.IntegratedSecurity || connectionOptions.Authentication == SqlAuthenticationMethod.ActiveDirectoryIntegrated) {
throw SQL.ChangePasswordConflictsWithSSPI();
}
if (! ADP.IsEmpty(connectionOptions.AttachDBFilename)) {
@@ -1714,7 +1996,7 @@ namespace System.Data.SqlClient
throw ADP.InvalidArgumentLength("newSecurePassword", TdsEnums.MAXLEN_NEWPASSWORD);
}
- SqlConnectionPoolKey key = new SqlConnectionPoolKey(connectionString, credential);
+ SqlConnectionPoolKey key = new SqlConnectionPoolKey(connectionString, credential, accessToken: null);
SqlConnectionString connectionOptions = SqlConnectionFactory.FindSqlConnectionOptions(key);
@@ -1723,7 +2005,7 @@ namespace System.Data.SqlClient
throw ADP.InvalidMixedArgumentOfSecureAndClearCredential();
}
- if (connectionOptions.IntegratedSecurity) {
+ if (connectionOptions.IntegratedSecurity || connectionOptions.Authentication == SqlAuthenticationMethod.ActiveDirectoryIntegrated) {
throw SQL.ChangePasswordConflictsWithSSPI();
}
@@ -1755,7 +2037,7 @@ namespace System.Data.SqlClient
throw SQL.ChangePasswordRequiresYukon();
}
}
- SqlConnectionPoolKey key = new SqlConnectionPoolKey(connectionString, credential);
+ SqlConnectionPoolKey key = new SqlConnectionPoolKey(connectionString, credential, accessToken: null);
SqlConnectionFactory.SingletonInstance.ClearPool(key);
}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionFactory.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionFactory.cs
index 37766e5f465..a80e9110217 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionFactory.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionFactory.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlConnectionFactory.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient
@@ -63,7 +63,7 @@ namespace System.Data.SqlClient
// Pass DbConnectionPoolIdentity to SqlInternalConnectionTds if using integrated security.
// Used by notifications.
- if (opt.IntegratedSecurity) {
+ if (opt.IntegratedSecurity || opt.Authentication == SqlAuthenticationMethod.ActiveDirectoryIntegrated) {
if (pool != null) {
identity = pool.Identity;
}
@@ -122,7 +122,7 @@ namespace System.Data.SqlClient
opt = new SqlConnectionString(opt, instanceName, false /* user instance=false */, null /* do not modify the Enlist value */);
poolGroupProviderInfo = null; // null so we do not pass to constructor below...
}
- result = new SqlInternalConnectionTds(identity, opt, key.Credential, poolGroupProviderInfo, "", null, redirectedUserInstance, userOpt, recoverySessionData);
+ result = new SqlInternalConnectionTds(identity, opt, key.Credential, poolGroupProviderInfo, "", null, redirectedUserInstance, userOpt, recoverySessionData, pool, key.AccessToken);
}
return result;
}
@@ -157,7 +157,7 @@ namespace System.Data.SqlClient
connectionTimeout = Int32.MaxValue;
poolingOptions = new DbConnectionPoolGroupOptions(
- opt.IntegratedSecurity,
+ opt.IntegratedSecurity || opt.Authentication == SqlAuthenticationMethod.ActiveDirectoryIntegrated,
opt.MinPoolSize,
opt.MaxPoolSize,
connectionTimeout,
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionPoolGroupProviderInfo.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionPoolGroupProviderInfo.cs
index 044682c672c..157865b45ab 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionPoolGroupProviderInfo.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionPoolGroupProviderInfo.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlConnectionPoolGroupProviderInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionPoolKey.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionPoolKey.cs
index c589d8965a5..ccb98a2b8ea 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionPoolKey.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionPoolKey.cs
@@ -2,8 +2,8 @@
// <copyright file="ConnectionPoolKey.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient
@@ -12,6 +12,7 @@ namespace System.Data.SqlClient
using System;
using System.Collections;
using System.Data.Common;
+ using System.Diagnostics;
// SqlConnectionPoolKey: Implementation of a key to connection pool groups for specifically to be used for SqlConnection
// Connection string and SqlCredential are used as a key
@@ -19,16 +20,20 @@ namespace System.Data.SqlClient
{
private SqlCredential _credential;
private int _hashValue;
+ private readonly string _accessToken;
- internal SqlConnectionPoolKey(string connectionString, SqlCredential credential) : base(connectionString)
+ internal SqlConnectionPoolKey(string connectionString, SqlCredential credential, string accessToken) : base(connectionString)
{
+ Debug.Assert(_credential == null || _accessToken == null, "Credential and AccessToken can't have the value at the same time.");
_credential = credential;
+ _accessToken = accessToken;
CalculateHashCode();
}
private SqlConnectionPoolKey(SqlConnectionPoolKey key) : base (key)
{
_credential = key.Credential;
+ _accessToken = key.AccessToken;
CalculateHashCode();
}
@@ -59,12 +64,19 @@ namespace System.Data.SqlClient
}
}
+ internal string AccessToken
+ {
+ get
+ {
+ return _accessToken;
+ }
+ }
public override bool Equals(object obj)
{
SqlConnectionPoolKey key = obj as SqlConnectionPoolKey;
- return (key != null && _credential == key._credential && ConnectionString == key.ConnectionString);
+ return (key != null && _credential == key._credential && ConnectionString == key.ConnectionString && Object.ReferenceEquals(_accessToken, key._accessToken));
}
public override int GetHashCode()
@@ -83,6 +95,13 @@ namespace System.Data.SqlClient
_hashValue = _hashValue * 17 + _credential.GetHashCode();
}
}
+ else if (_accessToken != null)
+ {
+ unchecked
+ {
+ _hashValue = _hashValue * 17 + _accessToken.GetHashCode();
+ }
+ }
}
}
}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionPoolProviderInfo.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionPoolProviderInfo.cs
index d5ff005e671..3f9e5ccee0d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionPoolProviderInfo.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionPoolProviderInfo.cs
@@ -2,7 +2,7 @@
// <copyright file="SqlConnectionPoolProviderInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionString.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionString.cs
index 934f0f6ab50..794cc62baa2 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionString.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionString.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlConnectionString.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
@@ -57,6 +57,8 @@ namespace System.Data.SqlClient {
internal const bool Replication = false;
internal const int Connect_Retry_Count = 1;
internal const int Connect_Retry_Interval = 10;
+ internal static readonly SqlAuthenticationMethod Authentication = SqlAuthenticationMethod.NotSpecified;
+ internal static readonly SqlConnectionColumnEncryptionSetting ColumnEncryptionSetting = SqlConnectionColumnEncryptionSetting.Disabled;
}
// SqlConnection ConnectionString Options
@@ -66,6 +68,7 @@ namespace System.Data.SqlClient {
internal const string Application_Name = "application name";
internal const string AsynchronousProcessing = "asynchronous processing";
internal const string AttachDBFilename = "attachdbfilename";
+ internal const string ColumnEncryptionSetting = "column encryption setting";
internal const string Connect_Timeout = "connect timeout";
internal const string Connection_Reset = "connection reset";
internal const string Context_Connection = "context connection";
@@ -95,6 +98,7 @@ namespace System.Data.SqlClient {
internal const string Replication = "replication";
internal const string Connect_Retry_Count = "connectretrycount";
internal const string Connect_Retry_Interval = "connectretryinterval";
+ internal const string Authentication = "authentication";
}
// Constant for the number of duplicate options in the connnection string
@@ -194,6 +198,8 @@ namespace System.Data.SqlClient {
private readonly bool _replication;
private readonly bool _userInstance;
private readonly bool _multiSubnetFailover;
+ private readonly SqlAuthenticationMethod _authType;
+ private readonly SqlConnectionColumnEncryptionSetting _columnEncryptionSetting;
private readonly int _connectTimeout;
private readonly int _loadBalanceTimeout;
@@ -213,7 +219,6 @@ namespace System.Data.SqlClient {
private readonly string _initialCatalog;
private readonly string _password;
private readonly string _userID;
-
private readonly string _networkLibrary;
private readonly string _workstationId;
@@ -240,7 +245,7 @@ namespace System.Data.SqlClient {
// SQLPT 41700: Ignore ResetConnection=False (still validate the keyword/value)
_connectionReset = ConvertValueToBoolean(KEY.Connection_Reset, DEFAULT.Connection_Reset);
_contextConnection = ConvertValueToBoolean(KEY.Context_Connection, DEFAULT.Context_Connection);
- _encrypt = ConvertValueToBoolean(KEY.Encrypt, DEFAULT.Encrypt);
+ _encrypt = ConvertValueToEncrypt();
_enlist = ConvertValueToBoolean(KEY.Enlist, ADP.IsWindowsNT);
_mars = ConvertValueToBoolean(KEY.MARS, DEFAULT.MARS);
_persistSecurityInfo = ConvertValueToBoolean(KEY.Persist_Security_Info, DEFAULT.Persist_Security_Info);
@@ -268,6 +273,8 @@ namespace System.Data.SqlClient {
_networkLibrary = ConvertValueToString(KEY.Network_Library, null);
_password = ConvertValueToString(KEY.Password, DEFAULT.Password);
_trustServerCertificate = ConvertValueToBoolean(KEY.TrustServerCertificate, DEFAULT.TrustServerCertificate);
+ _authType = ConvertValueToAuthenticationType();
+ _columnEncryptionSetting = ConvertValueToColumnEncryptionSetting();
// Temporary string - this value is stored internally as an enum.
string typeSystemVersionString = ConvertValueToString(KEY.Type_System_Version, null);
@@ -446,6 +453,14 @@ namespace System.Data.SqlClient {
if ((_connectRetryInterval < 1) || (_connectRetryInterval > 60)) {
throw ADP.InvalidConnectRetryIntervalValue();
}
+
+ if (Authentication != SqlAuthenticationMethod.NotSpecified && _integratedSecurity == true) {
+ throw SQL.AuthenticationAndIntegratedSecurity();
+ }
+
+ if (Authentication == SqlClient.SqlAuthenticationMethod.ActiveDirectoryIntegrated && (HasUserIdKeyword || HasPasswordKeyword)) {
+ throw SQL.IntegratedWithUserIDAndPassword();
+ }
}
// This c-tor is used to create SSE and user instance connection strings when user instance is set to true
@@ -492,7 +507,8 @@ namespace System.Data.SqlClient {
_applicationIntent = connectionOptions._applicationIntent;
_connectRetryCount = connectionOptions._connectRetryCount;
_connectRetryInterval = connectionOptions._connectRetryInterval;
-
+ _authType = connectionOptions._authType;
+ _columnEncryptionSetting = connectionOptions._columnEncryptionSetting;
ValidateValueLength(_dataSource, TdsEnums.MAXLEN_SERVERNAME, KEY.Data_Source);
}
@@ -511,7 +527,8 @@ namespace System.Data.SqlClient {
internal bool Enlist { get { return _enlist; } }
internal bool MARS { get { return _mars; } }
internal bool MultiSubnetFailover { get { return _multiSubnetFailover; } }
-
+ internal SqlAuthenticationMethod Authentication { get { return _authType; } }
+ internal SqlConnectionColumnEncryptionSetting ColumnEncryptionSetting { get { return _columnEncryptionSetting; } }
internal bool PersistSecurityInfo { get { return _persistSecurityInfo; } }
internal bool Pooling { get { return _pooling; } }
internal bool Replication { get { return _replication; } }
@@ -619,11 +636,13 @@ namespace System.Data.SqlClient {
hash.Add(KEY.TrustServerCertificate, KEY.TrustServerCertificate);
hash.Add(KEY.TransactionBinding, KEY.TransactionBinding);
hash.Add(KEY.Type_System_Version, KEY.Type_System_Version);
+ hash.Add(KEY.ColumnEncryptionSetting, KEY.ColumnEncryptionSetting);
hash.Add(KEY.User_ID, KEY.User_ID);
hash.Add(KEY.User_Instance, KEY.User_Instance);
hash.Add(KEY.Workstation_Id, KEY.Workstation_Id);
hash.Add(KEY.Connect_Retry_Count, KEY.Connect_Retry_Count);
hash.Add(KEY.Connect_Retry_Interval, KEY.Connect_Retry_Interval);
+ hash.Add(KEY.Authentication, KEY.Authentication);
hash.Add(SYNONYM.APP, KEY.Application_Name);
hash.Add(SYNONYM.Async, KEY.AsynchronousProcessing);
@@ -750,6 +769,56 @@ namespace System.Data.SqlClient {
}
// ArgumentException and other types are raised as is (no wrapping)
}
+
+ internal SqlAuthenticationMethod ConvertValueToAuthenticationType() {
+ object value = base.Parsetable[KEY.Authentication];
+
+ string valStr = value as string;
+ if (valStr == null) {
+ return DEFAULT.Authentication;
+ }
+
+ try {
+ return DbConnectionStringBuilderUtil.ConvertToAuthenticationType(KEY.Authentication, valStr);
+ }
+ catch (FormatException e) {
+ throw ADP.InvalidConnectionOptionValue(KEY.Authentication, e);
+ }
+ catch (OverflowException e) {
+ throw ADP.InvalidConnectionOptionValue(KEY.Authentication, e);
+ }
+ }
+
+ /// <summary>
+ /// Convert the value to SqlConnectionColumnEncryptionSetting.
+ /// </summary>
+ /// <returns></returns>
+ internal SqlConnectionColumnEncryptionSetting ConvertValueToColumnEncryptionSetting() {
+ object value = base.Parsetable[KEY.ColumnEncryptionSetting];
+
+ string valStr = value as string;
+ if (valStr == null) {
+ return DEFAULT.ColumnEncryptionSetting;
+ }
+
+ try {
+ return DbConnectionStringBuilderUtil.ConvertToColumnEncryptionSetting(KEY.ColumnEncryptionSetting, valStr);
+ }
+ catch (FormatException e) {
+ throw ADP.InvalidConnectionOptionValue(KEY.ColumnEncryptionSetting, e);
+ }
+ catch (OverflowException e) {
+ throw ADP.InvalidConnectionOptionValue(KEY.ColumnEncryptionSetting, e);
+ }
+ }
+
+ internal bool ConvertValueToEncrypt() {
+ // If the Authentication keyword is provided, default to Encrypt=true;
+ // otherwise keep old default for backwards compatibility
+ object authValue = base.Parsetable[KEY.Authentication];
+ bool defaultEncryptValue = (authValue == null) ? DEFAULT.Encrypt : true;
+ return ConvertValueToBoolean(KEY.Encrypt, defaultEncryptValue);
+ }
}
}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionStringBuilder.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionStringBuilder.cs
index b5184a87ac9..9df61cecd01 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionStringBuilder.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionStringBuilder.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlConnectionStringBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
@@ -55,6 +55,8 @@ namespace System.Data.SqlClient {
PacketSize,
TypeSystemVersion,
+ Authentication,
+
ApplicationName,
CurrentLanguage,
WorkstationID,
@@ -73,6 +75,8 @@ namespace System.Data.SqlClient {
ConnectRetryInterval,
+ ColumnEncryptionSetting,
+
// keep the count value last
KeywordsCount
}
@@ -105,20 +109,21 @@ namespace System.Data.SqlClient {
private int _connectRetryCount = DbConnectionStringDefaults.ConnectRetryCount;
private int _connectRetryInterval = DbConnectionStringDefaults.ConnectRetryInterval;
- private bool _asynchronousProcessing = DbConnectionStringDefaults.AsynchronousProcessing;
- private bool _connectionReset = DbConnectionStringDefaults.ConnectionReset;
- private bool _contextConnection = DbConnectionStringDefaults.ContextConnection;
- private bool _encrypt = DbConnectionStringDefaults.Encrypt;
- private bool _trustServerCertificate = DbConnectionStringDefaults.TrustServerCertificate;
- private bool _enlist = DbConnectionStringDefaults.Enlist;
- private bool _integratedSecurity = DbConnectionStringDefaults.IntegratedSecurity;
- private bool _multipleActiveResultSets = DbConnectionStringDefaults.MultipleActiveResultSets;
- private bool _multiSubnetFailover = DbConnectionStringDefaults.MultiSubnetFailover;
- private bool _persistSecurityInfo = DbConnectionStringDefaults.PersistSecurityInfo;
- private bool _pooling = DbConnectionStringDefaults.Pooling;
- private bool _replication = DbConnectionStringDefaults.Replication;
- private bool _userInstance = DbConnectionStringDefaults.UserInstance;
-
+ private bool _asynchronousProcessing = DbConnectionStringDefaults.AsynchronousProcessing;
+ private bool _connectionReset = DbConnectionStringDefaults.ConnectionReset;
+ private bool _contextConnection = DbConnectionStringDefaults.ContextConnection;
+ private bool _encrypt = DbConnectionStringDefaults.Encrypt;
+ private bool _trustServerCertificate = DbConnectionStringDefaults.TrustServerCertificate;
+ private bool _enlist = DbConnectionStringDefaults.Enlist;
+ private bool _integratedSecurity = DbConnectionStringDefaults.IntegratedSecurity;
+ private bool _multipleActiveResultSets = DbConnectionStringDefaults.MultipleActiveResultSets;
+ private bool _multiSubnetFailover = DbConnectionStringDefaults.MultiSubnetFailover;
+ private bool _persistSecurityInfo = DbConnectionStringDefaults.PersistSecurityInfo;
+ private bool _pooling = DbConnectionStringDefaults.Pooling;
+ private bool _replication = DbConnectionStringDefaults.Replication;
+ private bool _userInstance = DbConnectionStringDefaults.UserInstance;
+ private SqlAuthenticationMethod _authentication = DbConnectionStringDefaults.Authentication;
+ private SqlConnectionColumnEncryptionSetting _columnEncryptionSetting = DbConnectionStringDefaults.ColumnEncryptionSetting;
static SqlConnectionStringBuilder() {
string[] validKeywords = new string[KeywordsCount];
@@ -156,7 +161,9 @@ namespace System.Data.SqlClient {
validKeywords[(int)Keywords.WorkstationID] = DbConnectionStringKeywords.WorkstationID;
validKeywords[(int)Keywords.ConnectRetryCount] = DbConnectionStringKeywords.ConnectRetryCount;
validKeywords[(int)Keywords.ConnectRetryInterval] = DbConnectionStringKeywords.ConnectRetryInterval;
- _validKeywords = validKeywords;
+ validKeywords[(int)Keywords.Authentication] = DbConnectionStringKeywords.Authentication;
+ validKeywords[(int)Keywords.ColumnEncryptionSetting] = DbConnectionStringKeywords.ColumnEncryptionSetting;
+ _validKeywords = validKeywords;
Dictionary<string, Keywords> hash = new Dictionary<string, Keywords>(KeywordsCount + SqlConnectionString.SynonymCount, StringComparer.OrdinalIgnoreCase);
hash.Add(DbConnectionStringKeywords.ApplicationIntent, Keywords.ApplicationIntent);
@@ -193,7 +200,8 @@ namespace System.Data.SqlClient {
hash.Add(DbConnectionStringKeywords.WorkstationID, Keywords.WorkstationID);
hash.Add(DbConnectionStringKeywords.ConnectRetryCount, Keywords.ConnectRetryCount);
hash.Add(DbConnectionStringKeywords.ConnectRetryInterval, Keywords.ConnectRetryInterval);
-
+ hash.Add(DbConnectionStringKeywords.Authentication, Keywords.Authentication);
+ hash.Add(DbConnectionStringKeywords.ColumnEncryptionSetting, Keywords.ColumnEncryptionSetting);
hash.Add(DbConnectionStringSynonyms.APP, Keywords.ApplicationName);
hash.Add(DbConnectionStringSynonyms.Async, Keywords.AsynchronousProcessing);
hash.Add(DbConnectionStringSynonyms.EXTENDEDPROPERTIES, Keywords.AttachDBFilename);
@@ -261,6 +269,8 @@ namespace System.Data.SqlClient {
case Keywords.IntegratedSecurity: IntegratedSecurity = ConvertToIntegratedSecurity(value); break;
+ case Keywords.Authentication: Authentication = ConvertToAuthenticationType(keyword, value); break;
+ case Keywords.ColumnEncryptionSetting: ColumnEncryptionSetting = ConvertToColumnEncryptionSetting(keyword, value); break;
case Keywords.AsynchronousProcessing: AsynchronousProcessing = ConvertToBoolean(value); break;
#pragma warning disable 618 // Obsolete ConnectionReset
case Keywords.ConnectionReset: ConnectionReset = ConvertToBoolean(value); break;
@@ -420,6 +430,22 @@ namespace System.Data.SqlClient {
_encrypt = value;
}
}
+
+ [DisplayName(DbConnectionStringKeywords.ColumnEncryptionSetting)]
+ [ResCategoryAttribute(Res.DataCategory_Security)]
+ [ResDescriptionAttribute(Res.TCE_DbConnectionString_ColumnEncryptionSetting)]
+ [RefreshPropertiesAttribute(RefreshProperties.All)]
+ public SqlConnectionColumnEncryptionSetting ColumnEncryptionSetting {
+ get { return _columnEncryptionSetting; }
+ set {
+ if (!DbConnectionStringBuilderUtil.IsValidColumnEncryptionSetting(value)) {
+ throw ADP.InvalidEnumerationValue(typeof(SqlConnectionColumnEncryptionSetting), (int)value);
+ }
+
+ SetColumnEncryptionSettingValue(value);
+ _columnEncryptionSetting = value;
+ }
+ }
[DisplayName(DbConnectionStringKeywords.TrustServerCertificate)]
[ResCategoryAttribute(Res.DataCategory_Security)]
@@ -483,6 +509,22 @@ namespace System.Data.SqlClient {
}
}
+ [DisplayName(DbConnectionStringKeywords.Authentication)]
+ [ResCategoryAttribute(Res.DataCategory_Security)]
+ [ResDescriptionAttribute(Res.DbConnectionString_Authentication)]
+ [RefreshPropertiesAttribute(RefreshProperties.All)]
+ public SqlAuthenticationMethod Authentication {
+ get { return _authentication; }
+ set {
+ if (!DbConnectionStringBuilderUtil.IsValidAuthenticationTypeValue(value)) {
+ throw ADP.InvalidEnumerationValue(typeof(SqlAuthenticationMethod), (int)value);
+ }
+
+ SetAuthenticationValue(value);
+ _authentication = value;
+ }
+ }
+
[DisplayName(DbConnectionStringKeywords.LoadBalanceTimeout)]
[ResCategoryAttribute(Res.DataCategory_Pooling)]
[ResDescriptionAttribute(Res.DbConnectionString_LoadBalanceTimeout)]
@@ -816,6 +858,27 @@ namespace System.Data.SqlClient {
private static ApplicationIntent ConvertToApplicationIntent(string keyword, object value) {
return DbConnectionStringBuilderUtil.ConvertToApplicationIntent(keyword, value);
}
+ private static SqlAuthenticationMethod ConvertToAuthenticationType(string keyword, object value) {
+ return DbConnectionStringBuilderUtil.ConvertToAuthenticationType(keyword, value);
+ }
+
+ /// <summary>
+ /// Convert to SqlConnectionColumnEncryptionSetting.
+ /// </summary>
+ /// <param name="keyword"></param>
+ /// <param name="value"></param>
+ private static SqlConnectionColumnEncryptionSetting ConvertToColumnEncryptionSetting(string keyword, object value) {
+ return DbConnectionStringBuilderUtil.ConvertToColumnEncryptionSetting(keyword, value);
+ }
+
+ internal override string ConvertValueToString(object value) {
+ if (value is SqlAuthenticationMethod) {
+ return DbConnectionStringBuilderUtil.AuthenticationTypeToString((SqlAuthenticationMethod)value);
+ }
+ else {
+ return base.ConvertValueToString(value);
+ }
+ }
private object GetAt(Keywords index) {
switch(index) {
@@ -855,7 +918,8 @@ namespace System.Data.SqlClient {
case Keywords.WorkstationID: return WorkstationID;
case Keywords.ConnectRetryCount: return ConnectRetryCount;
case Keywords.ConnectRetryInterval: return ConnectRetryInterval;
-
+ case Keywords.Authentication: return Authentication;
+ case Keywords.ColumnEncryptionSetting: return ColumnEncryptionSetting;
default:
Debug.Assert(false, "unexpected keyword");
throw ADP.KeywordNotSupported(_validKeywords[(int)index]);
@@ -924,6 +988,9 @@ namespace System.Data.SqlClient {
case Keywords.AttachDBFilename:
_attachDBFilename = DbConnectionStringDefaults.AttachDBFilename;
break;
+ case Keywords.Authentication:
+ _authentication = DbConnectionStringDefaults.Authentication;
+ break;
case Keywords.ConnectTimeout:
_connectTimeout = DbConnectionStringDefaults.ConnectTimeout;
break;
@@ -1014,6 +1081,9 @@ namespace System.Data.SqlClient {
case Keywords.WorkstationID:
_workstationID = DbConnectionStringDefaults.WorkstationID;
break;
+ case Keywords.ColumnEncryptionSetting:
+ _columnEncryptionSetting = DbConnectionStringDefaults.ColumnEncryptionSetting;
+ break;
default:
Debug.Assert(false, "unexpected keyword");
throw ADP.KeywordNotSupported(_validKeywords[(int)index]);
@@ -1031,9 +1101,17 @@ namespace System.Data.SqlClient {
base[keyword] = value;
}
private void SetApplicationIntentValue(ApplicationIntent value) {
- Debug.Assert(DbConnectionStringBuilderUtil.IsValidApplicationIntentValue(value), "invalid value");
+ Debug.Assert(DbConnectionStringBuilderUtil.IsValidApplicationIntentValue(value), "Invalid value for ApplicationIntent");
base[DbConnectionStringKeywords.ApplicationIntent] = DbConnectionStringBuilderUtil.ApplicationIntentToString(value);
}
+ private void SetAuthenticationValue(SqlAuthenticationMethod value) {
+ Debug.Assert(DbConnectionStringBuilderUtil.IsValidAuthenticationTypeValue(value), "Invalid value for AuthenticationType");
+ base[DbConnectionStringKeywords.Authentication] = DbConnectionStringBuilderUtil.AuthenticationTypeToString(value);
+ }
+ private void SetColumnEncryptionSettingValue(SqlConnectionColumnEncryptionSetting value) {
+ Debug.Assert(DbConnectionStringBuilderUtil.IsValidColumnEncryptionSetting(value), "Invalid value for SqlConnectionColumnEncryptionSetting");
+ base[DbConnectionStringKeywords.ColumnEncryptionSetting] = DbConnectionStringBuilderUtil.ColumnEncryptionSettingToString(value);
+ }
public override bool ShouldSerialize(string keyword) {
ADP.CheckArgumentNull(keyword, "keyword");
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionTimeoutErrorInternal.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionTimeoutErrorInternal.cs
index 879a86d61a8..c702b82b3a5 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionTimeoutErrorInternal.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlConnectionTimeoutErrorInternal.cs
@@ -2,7 +2,7 @@
// <copyright file="SqlConnectionTimeoutErrorInternal.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCredential.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCredential.cs
index 874ac5cc355..091753c6f38 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCredential.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlCredential.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlCredential.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDataAdapter.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDataAdapter.cs
index 11be2219aea..b1f304cd795 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDataAdapter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDataAdapter.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlDataAdapter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDataReader.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDataReader.cs
index ad91abda628..ed353411d0d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDataReader.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDataReader.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlDataReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
@@ -44,7 +44,7 @@ namespace System.Data.SqlClient {
internal SharedState _sharedState = new SharedState();
- private TdsParser _parser; // TODO: Probably don't need this, since it's on the stateObj
+ private TdsParser _parser; //
private TdsParserStateObject _stateObj;
private SqlCommand _command;
private SqlConnection _connection;
@@ -516,11 +516,17 @@ namespace System.Data.SqlClient {
// col.length is always byte count so for unicode types, half the length
//
// For MAX and XML datatypes, we get 0x7fffffff from the server. Do not divide this.
- schemaRow[Size] = (col.metaType.IsSizeInCharacters && (col.length != 0x7fffffff)) ? (col.length / 2) : col.length;
+ if (col.cipherMD != null) {
+ Debug.Assert(col.baseTI != null && col.baseTI.metaType != null, "col.baseTI and col.baseTI.metaType should not be null.");
+ schemaRow[Size] = (col.baseTI.metaType.IsSizeInCharacters && (col.baseTI.length != 0x7fffffff)) ? (col.baseTI.length / 2) : col.baseTI.length;
+ }
+ else {
+ schemaRow[Size] = (col.metaType.IsSizeInCharacters && (col.length != 0x7fffffff)) ? (col.length / 2) : col.length;
+ }
schemaRow[DataType] = GetFieldTypeInternal(col);
schemaRow[ProviderSpecificDataType] = GetProviderSpecificFieldTypeInternal(col);
- schemaRow[NonVersionedProviderType] = (int) col.type; // SqlDbType enum value - does not change with TypeSystem.
+ schemaRow[NonVersionedProviderType] = (int) (col.cipherMD != null ? col.baseTI.type : col.type); // SqlDbType enum value - does not change with TypeSystem.
schemaRow[DataTypeName] = GetDataTypeNameInternal(col);
if (_typeSystem <= SqlConnectionString.TypeSystem.SQLServer2005 && col.IsNewKatmaiDateTimeType) {
@@ -556,7 +562,7 @@ namespace System.Data.SqlClient {
// TypeSystem.SQLServer2005 and above
// SqlDbType enum value - always the actual type for SQLServer2005.
- schemaRow[ProviderType] = (int) col.type;
+ schemaRow[ProviderType] = (int) (col.cipherMD != null ? col.baseTI.type : col.type);
if (col.type == SqlDbType.Udt) { // Additional metadata for UDTs.
Debug.Assert(Connection.IsYukonOrNewer, "Invalid Column type received from the server");
@@ -576,8 +582,16 @@ namespace System.Data.SqlClient {
schemaRow[ProviderType] = GetVersionedMetaType(col.metaType).SqlDbType;
}
-
- if (TdsEnums.UNKNOWN_PRECISION_SCALE != col.precision) {
+ if (col.cipherMD != null) {
+ Debug.Assert(col.baseTI != null, @"col.baseTI should not be null.");
+ if (TdsEnums.UNKNOWN_PRECISION_SCALE != col.baseTI.precision) {
+ schemaRow[Precision] = col.baseTI.precision;
+ }
+ else {
+ schemaRow[Precision] = col.baseTI.metaType.Precision;
+ }
+ }
+ else if (TdsEnums.UNKNOWN_PRECISION_SCALE != col.precision) {
schemaRow[Precision] = col.precision;
}
else {
@@ -587,6 +601,15 @@ namespace System.Data.SqlClient {
if (_typeSystem <= SqlConnectionString.TypeSystem.SQLServer2005 && col.IsNewKatmaiDateTimeType) {
schemaRow[Scale] = MetaType.MetaNVarChar.Scale;
}
+ else if (col.cipherMD != null) {
+ Debug.Assert(col.baseTI != null, @"col.baseTI should not be null.");
+ if (TdsEnums.UNKNOWN_PRECISION_SCALE != col.baseTI.scale) {
+ schemaRow[Scale] = col.baseTI.scale;
+ }
+ else {
+ schemaRow[Scale] = col.baseTI.metaType.Scale;
+ }
+ }
else if (TdsEnums.UNKNOWN_PRECISION_SCALE != col.scale) {
schemaRow[Scale] = col.scale;
}
@@ -606,7 +629,15 @@ namespace System.Data.SqlClient {
schemaRow[IsIdentity] = col.isIdentity;
schemaRow[IsAutoIncrement] = col.isIdentity;
- schemaRow[IsLong] = col.metaType.IsLong;
+
+ if (col.cipherMD != null) {
+ Debug.Assert(col.baseTI != null, @"col.baseTI should not be null.");
+ Debug.Assert(col.baseTI.metaType != null, @"col.baseTI.metaType should not be null.");
+ schemaRow[IsLong] = col.baseTI.metaType.IsLong;
+ }
+ else {
+ schemaRow[IsLong] = col.metaType.IsLong;
+ }
// mark unique for timestamp columns
if (SqlDbType.Timestamp == col.type) {
@@ -1074,7 +1105,7 @@ namespace System.Data.SqlClient {
// CleanWire will do cleanup - so we don't really care about the snapshot
CleanupAfterAsyncInvocationInternal(stateObj, resetNetworkPacketTaskSource: false);
}
- // Switch to [....] to prepare for cleanwire
+ // Switch to sync to prepare for cleanwire
stateObj._syncOverAsync = true;
// Remove owner (this will allow the stateObj to be disposed after the connection is closed)
stateObj.RemoveOwner();
@@ -1163,14 +1194,20 @@ namespace System.Data.SqlClient {
dataTypeName = metaData.udtDatabaseName + "." + metaData.udtSchemaName + "." + metaData.udtTypeName;
}
else { // For all other types, including Xml - use data in MetaType.
- dataTypeName = metaData.metaType.TypeName;
+ if (metaData.cipherMD != null) {
+ Debug.Assert(metaData.baseTI != null && metaData.baseTI.metaType != null, "metaData.baseTI and metaData.baseTI.metaType should not be null.");
+ dataTypeName = metaData.baseTI.metaType.TypeName;
+ }
+ else {
+ dataTypeName = metaData.metaType.TypeName;
+ }
}
}
else {
// TypeSystem.SQLServer2000
-
- dataTypeName = GetVersionedMetaType(metaData.metaType).TypeName;
- }
+
+ dataTypeName = GetVersionedMetaType(metaData.metaType).TypeName;
+ }
return dataTypeName;
}
@@ -1183,7 +1220,7 @@ namespace System.Data.SqlClient {
}
override public IEnumerator GetEnumerator() {
- return new DbEnumerator((IDataReader)this, IsCommandBehavior(CommandBehavior.CloseConnection));
+ return new DbEnumerator(this, IsCommandBehavior(CommandBehavior.CloseConnection));
}
override public Type GetFieldType(int i) {
@@ -1224,7 +1261,13 @@ namespace System.Data.SqlClient {
fieldType = metaData.udtType;
}
else { // For all other types, including Xml - use data in MetaType.
- fieldType = metaData.metaType.ClassType; // Com+ type.
+ if (metaData.cipherMD != null) {
+ Debug.Assert(metaData.baseTI != null && metaData.baseTI.metaType != null, "metaData.baseTI and metaData.baseTI.metaType should not be null.");
+ fieldType = metaData.baseTI.metaType.ClassType;
+ }
+ else {
+ fieldType = metaData.metaType.ClassType; // Com+ type.
+ }
}
}
else {
@@ -1292,8 +1335,16 @@ namespace System.Data.SqlClient {
Connection.CheckGetExtendedUDTInfo(metaData, false);
providerSpecificFieldType = metaData.udtType;
}
- else { // For all other types, including Xml - use data in MetaType.
- providerSpecificFieldType = metaData.metaType.SqlType; // SqlType type.
+ else {
+ // For all other types, including Xml - use data in MetaType.
+ if (metaData.cipherMD != null) {
+ Debug.Assert(metaData.baseTI != null && metaData.baseTI.metaType != null,
+ "metaData.baseTI and metaData.baseTI.metaType should not be null.");
+ providerSpecificFieldType = metaData.baseTI.metaType.SqlType; // SqlType type.
+ }
+ else {
+ providerSpecificFieldType = metaData.metaType.SqlType; // SqlType type.
+ }
}
}
else {
@@ -1395,6 +1446,11 @@ namespace System.Data.SqlClient {
override public Stream GetStream(int i) {
CheckDataIsReady(columnIndex: i, methodName: "GetStream");
+ // Streaming is not supported on encrypted columns.
+ if (_metaData[i] != null && _metaData[i].cipherMD != null) {
+ throw SQL.StreamNotSupportOnEncryptedColumn(_metaData[i].column);
+ }
+
// Stream is only for Binary, Image, VarBinary, Udt and Xml types
// NOTE: IsBinType also includes Timestamp for some reason...
MetaType mt = _metaData[i].metaType;
@@ -1490,6 +1546,10 @@ namespace System.Data.SqlClient {
if (IsCommandBehavior(CommandBehavior.SequentialAccess)) {
Debug.Assert(!HasActiveStreamOrTextReaderOnColumn(i), "Column has an active Stream or TextReader");
+ if (_metaData[i] != null && _metaData[i].cipherMD != null) {
+ throw SQL.SequentialAccessNotSupportedOnEncryptedColumn(_metaData[i].column);
+ }
+
if (_sharedState._nextColumnHeaderToRead <= i) {
if (!TryReadColumnHeader(i)) {
return false;
@@ -1798,13 +1858,28 @@ namespace System.Data.SqlClient {
CheckDataIsReady(columnIndex: i, methodName: "GetTextReader");
// Xml type is not supported
- MetaType mt = _metaData[i].metaType;
+ MetaType mt = null;
+
+ if (_metaData[i].cipherMD != null) {
+ Debug.Assert(_metaData[i].baseTI != null, "_metaData[i].baseTI should not be null.");
+ mt = _metaData[i].baseTI.metaType;
+ }
+ else {
+ mt = _metaData[i].metaType;
+ }
+
+ Debug.Assert(mt != null, @"mt should not be null.");
+
if (((!mt.IsCharType) && (mt.SqlDbType != SqlDbType.Variant)) || (mt.SqlDbType == SqlDbType.Xml)) {
throw SQL.TextReaderNotSupportOnColumnType(_metaData[i].column);
}
// For non-variant types with sequential access, we support proper streaming
if ((mt.SqlDbType != SqlDbType.Variant) && (IsCommandBehavior(CommandBehavior.SequentialAccess))) {
+ if (_metaData[i].cipherMD != null) {
+ throw SQL.SequentialAccessNotSupportedOnEncryptedColumn(_metaData[i].column);
+ }
+
System.Text.Encoding encoding;
if (mt.IsNCharType)
{
@@ -1852,16 +1927,40 @@ namespace System.Data.SqlClient {
if (_currentTask != null) {
throw ADP.AsyncOperationPending();
}
-
+
+ MetaType mt = null;
+ if (_metaData[i].cipherMD != null) {
+ Debug.Assert(_metaData[i].baseTI != null, @"_metaData[i].baseTI should not be null.");
+ mt = _metaData[i].baseTI.metaType;
+ }
+ else {
+ mt = _metaData[i].metaType;
+ }
+
+ Debug.Assert(mt != null, "mt should not be null.");
+
+ SqlDbType sqlDbType;
+ if (_metaData[i].cipherMD != null) {
+ Debug.Assert(_metaData[i].baseTI != null, @"_metaData[i].baseTI should not be null.");
+ sqlDbType = _metaData[i].baseTI.type;
+ }
+ else {
+ sqlDbType = _metaData[i].type;
+ }
+
try {
statistics = SqlStatistics.StartTimer(Statistics);
SetTimeout(_defaultTimeoutMilliseconds);
- if ((_metaData[i].metaType.IsPlp) &&
+ if ((mt.IsPlp) &&
(IsCommandBehavior(CommandBehavior.SequentialAccess)) ) {
if (length < 0) {
throw ADP.InvalidDataLength(length);
}
+ if (_metaData[i].cipherMD != null) {
+ throw SQL.SequentialAccessNotSupportedOnEncryptedColumn(_metaData[i].column);
+ }
+
// if bad buffer index, throw
if ((bufferIndex < 0) || (buffer != null && bufferIndex >= buffer.Length)) {
throw ADP.InvalidDestinationBufferIndex(buffer.Length, bufferIndex, "bufferIndex");
@@ -1872,13 +1971,13 @@ namespace System.Data.SqlClient {
throw ADP.InvalidBufferSizeOrIndex(length, bufferIndex);
}
long charsRead = 0;
- if ( _metaData[i].type == SqlDbType.Xml ) {
+ if ( sqlDbType == SqlDbType.Xml ) {
try {
CheckDataIsReady(columnIndex: i, allowPartiallyReadColumn: true, methodName: "GetChars");
}
catch (Exception ex) {
- // Dev11 Bug #315513: Exception type breaking change from 4.0 RTM when calling GetChars on null xml
- // We need to wrap all exceptions inside a TargetInvocationException to simulate calling CreateSqlReader via MethodInfo.Invoke
+ // Dev11
+
if (ADP.IsCatchableExceptionType(ex)) {
throw new TargetInvocationException(ex);
}
@@ -2012,7 +2111,7 @@ namespace System.Data.SqlClient {
// In both cases we will clean decoder
if (dataIndex == 0)
_stateObj._plpdecoder = null;
-
+
bool isUnicode = _metaData[i].metaType.IsNCharType;
// If there are an unknown (-1) number of bytes left for a PLP, read its size
@@ -2314,8 +2413,8 @@ namespace System.Data.SqlClient {
// NOTE: This method is called by the fast-paths in Async methods and, therefore, should be resilient to the DataReader being closed
// Always make sure to take reference copies of anything set to null in TryCloseInternal()
private object GetSqlValueFromSqlBufferInternal(SqlBuffer data, _SqlMetaData metaData) {
- // Dev11 Bug #336820, Dev10 Bug #479607 (SqlClient: IsDBNull always returns false for timestamp datatype)
- // Due to a bug in TdsParser.GetNullSqlValue, Timestamps' IsNull is not correctly set - so we need to bypass the following check
+ // Dev11
+
Debug.Assert(!data.IsEmpty || data.IsNull || metaData.type == SqlDbType.Timestamp, "Data has been read, but the buffer is empty");
// Convert Katmai types to string
@@ -2467,8 +2566,8 @@ namespace System.Data.SqlClient {
// NOTE: This method is called by the fast-paths in Async methods and, therefore, should be resilient to the DataReader being closed
// Always make sure to take reference copies of anything set to null in TryCloseInternal()
private object GetValueFromSqlBufferInternal(SqlBuffer data, _SqlMetaData metaData) {
- // Dev11 Bug #336820, Dev10 Bug #479607 (SqlClient: IsDBNull always returns false for timestamp datatype)
- // Due to a bug in TdsParser.GetNullSqlValue, Timestamps' IsNull is not correctly set - so we need to bypass the following check
+ // Dev11
+
Debug.Assert(!data.IsEmpty || data.IsNull || metaData.type == SqlDbType.Timestamp, "Data has been read, but the buffer is empty");
if (_typeSystem <= SqlConnectionString.TypeSystem.SQLServer2005 && metaData.IsNewKatmaiDateTimeType) {
@@ -2673,9 +2772,9 @@ namespace System.Data.SqlClient {
moreResults = true;
return true;
- // VSTFDEVDIV 926281: DONEINPROC case is missing here; we have decided to reject this bug as it would result in breaking change
- // from Orcas RTM/SP1 and Dev10 RTM. See the bug for more details.
- // case TdsEnums.DONEINPROC:
+ // VSTFDEVDIV 926281: DONEINPROC case is missing here; we have decided to reject this
+
+
case TdsEnums.SQLDONE:
Debug.Assert(_altRowStatus == ALTROWSTATUS.Done || _altRowStatus == ALTROWSTATUS.Null, "invalid AltRowStatus");
_altRowStatus = ALTROWSTATUS.Null;
@@ -2688,10 +2787,10 @@ namespace System.Data.SqlClient {
return true;
}
- // Dev11 Bug 316483:Hang on SqlDataReader::TryHasMoreResults using MARS
- // http://vstfdevdiv:8080/web/wi.aspx?pcguid=22f9acc9-569a-41ff-b6ac-fac1b6370209&id=316483
- // TryRun() will immediately return if the TdsParser is closed\broken, causing us to enter an infinite loop
- // Instead, we will throw a closed connection exception
+ // Dev11
+
+
+
if (_parser.State == TdsParserState.Broken || _parser.State == TdsParserState.Closed) {
throw ADP.ClosedConnectionError();
}
@@ -2727,8 +2826,8 @@ namespace System.Data.SqlClient {
}
if (_stateObj._pendingData) {
// Consume error's, info's, done's on HasMoreRows, so user obtains error on Read.
- // Previous bug where Read() would return false with error on the wire in the case
- // of metadata and error immediately following. See MDAC 78285 and 75225.
+ // Previous
+
//
@@ -2763,10 +2862,10 @@ namespace System.Data.SqlClient {
ParsedDoneToken = true;
}
- // Dev11 Bug 316483:Hang on SqlDataReader::TryHasMoreResults using MARS
- // http://vstfdevdiv:8080/web/wi.aspx?pcguid=22f9acc9-569a-41ff-b6ac-fac1b6370209&id=316483
- // TryRun() will immediately return if the TdsParser is closed\broken, causing us to enter an infinite loop
- // Instead, we will throw a closed connection exception
+ // Dev11
+
+
+
if (_parser.State == TdsParserState.Broken || _parser.State == TdsParserState.Closed) {
throw ADP.ClosedConnectionError();
}
@@ -2804,10 +2903,10 @@ namespace System.Data.SqlClient {
override public bool IsDBNull(int i) {
if ((IsCommandBehavior(CommandBehavior.SequentialAccess)) && ((_sharedState._nextColumnHeaderToRead > i + 1) || (_lastColumnWithDataChunkRead > i))) {
- // Bug 447026 : A breaking change in System.Data .NET 4.5 for calling IsDBNull on commands in SequentialAccess mode
- // http://vstfdevdiv:8080/web/wi.aspx?pcguid=22f9acc9-569a-41ff-b6ac-fac1b6370209&id=447026
- // In .Net 4.0 and previous, it was possible to read a previous column using IsDBNull when in sequential mode
- // However, since it had already gone past the column, the current IsNull value is simply returned
+ //
+
+
+
// To replicate this behavior we will skip CheckHeaderIsReady\ReadColumnHeader and instead just check that the reader is ready and the column is valid
CheckMetaDataIsReady(columnIndex: i);
@@ -3264,7 +3363,9 @@ namespace System.Data.SqlClient {
if (!_data[_sharedState._nextColumnDataToRead].IsNull) {
_SqlMetaData columnMetaData = _metaData[_sharedState._nextColumnDataToRead];
- if (!_parser.TryReadSqlValue(_data[_sharedState._nextColumnDataToRead], columnMetaData, (int)_sharedState._columnDataBytesRemaining, _stateObj)) { // will read UDTs as VARBINARY.
+ if (!_parser.TryReadSqlValue(_data[_sharedState._nextColumnDataToRead], columnMetaData, (int)_sharedState._columnDataBytesRemaining, _stateObj,
+ _command != null ? _command.ColumnEncryptionSetting : SqlCommandColumnEncryptionSetting.UseConnectionSetting,
+ columnMetaData.column)) { // will read UDTs as VARBINARY.
return false;
}
_sharedState._columnDataBytesRemaining = 0;
@@ -3338,8 +3439,8 @@ namespace System.Data.SqlClient {
Debug.Assert(i == _sharedState._nextColumnDataToRead || // Either we haven't read the column yet
((i + 1 < _sharedState._nextColumnDataToRead) && (IsCommandBehavior(CommandBehavior.SequentialAccess))) || // Or we're in sequential mode and we've read way past the column (i.e. it was not the last column we read)
(!_data[i].IsEmpty || _data[i].IsNull) || // Or we should have data stored for the column (unless the column was null)
- (_metaData[i].type == SqlDbType.Timestamp), // Or Dev11 Bug #336820, Dev10 Bug #479607 (SqlClient: IsDBNull always returns false for timestamp datatype)
- // Due to a bug in TdsParser.GetNullSqlValue, Timestamps' IsNull is not correctly set - so we need to bypass the check
+ (_metaData[i].type == SqlDbType.Timestamp), // Or Dev11
+ // Due to a
"Gone past column, be we have no data stored for it");
return true;
}
@@ -3396,9 +3497,12 @@ namespace System.Data.SqlClient {
_sharedState._nextColumnDataToRead = _sharedState._nextColumnHeaderToRead;
_sharedState._nextColumnHeaderToRead++; // We read this one
- if (isNull && columnMetaData.type != SqlDbType.Timestamp /* Maintain behavior for known bug (Dev10 479607) rejected as breaking change - See comments in GetNullSqlValue for timestamp */)
+ if (isNull && columnMetaData.type != SqlDbType.Timestamp /* Maintain behavior for known */)
{
- _parser.GetNullSqlValue(_data[_sharedState._nextColumnDataToRead], columnMetaData);
+ TdsParser.GetNullSqlValue(_data[_sharedState._nextColumnDataToRead],
+ columnMetaData,
+ _command != null ? _command.ColumnEncryptionSetting : SqlCommandColumnEncryptionSetting.UseConnectionSetting,
+ _parser.Connection);
if (!readHeaderOnly) {
_sharedState._nextColumnDataToRead++;
@@ -3409,7 +3513,9 @@ namespace System.Data.SqlClient {
// If we're not in sequential access mode, we have to
// save the data we skip over so that the consumer
// can read it out of order
- if (!_parser.TryReadSqlValue(_data[_sharedState._nextColumnDataToRead], columnMetaData, (int)dataLength, _stateObj)) { // will read UDTs as VARBINARY.
+ if (!_parser.TryReadSqlValue(_data[_sharedState._nextColumnDataToRead], columnMetaData, (int)dataLength, _stateObj,
+ _command != null ? _command.ColumnEncryptionSetting : SqlCommandColumnEncryptionSetting.UseConnectionSetting,
+ columnMetaData.column)) { // will read UDTs as VARBINARY.
return false;
}
_sharedState._nextColumnDataToRead++;
@@ -4236,7 +4342,7 @@ namespace System.Data.SqlClient {
return ADP.CreatedTaskWithCancellation<bool>();
}
- // Shortcut - if we have enough data, then run [....]
+ // Shortcut - if we have enough data, then run sync
try {
if (WillHaveEnoughData(i, headerOnly: true)) {
#if DEBUG
@@ -4338,7 +4444,7 @@ namespace System.Data.SqlClient {
return ADP.CreatedTaskWithCancellation<T>();
}
- // Shortcut - if we have enough data, then run [....]
+ // Shortcut - if we have enough data, then run sync
try {
if (WillHaveEnoughData(i)) {
#if DEBUG
@@ -4509,7 +4615,7 @@ namespace System.Data.SqlClient {
}
if (task.IsCompleted) {
- // If we've completed [....], then don't bother handling the TaskCompletionSource - we'll just return the completed task
+ // If we've completed sync, then don't bother handling the TaskCompletionSource - we'll just return the completed task
CompleteRetryable(task, source, objectToDispose);
return task;
}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDataReaderSmi.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDataReaderSmi.cs
index 4a46f64b62e..ded4479ff4a 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDataReaderSmi.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDataReaderSmi.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlDataReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDelegatedTransaction.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDelegatedTransaction.cs
index 44fad3c95d7..dece801213c 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDelegatedTransaction.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDelegatedTransaction.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlDelegatedTransaction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDependency.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDependency.cs
index fe13f0878c0..c27b94cd082 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDependency.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDependency.cs
@@ -2,9 +2,9 @@
// <copyright file="SqlDependency.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDependencyListener.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDependencyListener.cs
index 9a11b63cb68..656d0dd6db1 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDependencyListener.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDependencyListener.cs
@@ -2,9 +2,9 @@
// <copyright file="SqlDependency.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
@@ -151,7 +151,7 @@ internal class SqlDependencyProcessDispatcher : MarshalByRefObject { // MBR sinc
_conversationGuidParam = new SqlParameter("@p1", SqlDbType.UniqueIdentifier);
_timeoutParam = new SqlParameter("@p2", SqlDbType.Int);
- _timeoutParam.Value = 0; // Timeout set to 0 for initial [....] query.
+ _timeoutParam.Value = 0; // Timeout set to 0 for initial sync query.
_com.Parameters.Add(_timeoutParam);
setupCompleted = true;
@@ -160,7 +160,7 @@ internal class SqlDependencyProcessDispatcher : MarshalByRefObject { // MBR sinc
// Create standard query.
_receiveQuery = "WAITFOR(RECEIVE TOP (1) message_type_name, conversation_handle, cast(message_body AS XML) as message_body from " + _escapedQueueName + "), TIMEOUT @p2;";
- // Create queue, service, [....] query, and async query on user thread to ensure proper
+ // Create queue, service, sync query, and async query on user thread to ensure proper
// init prior to return.
if (useDefaults) { // Only create if user did not specify service & database.
@@ -179,7 +179,7 @@ internal class SqlDependencyProcessDispatcher : MarshalByRefObject { // MBR sinc
// Query synchronously once to ensure everything is working correctly.
// We want the exception to occur on start to immediately inform caller.
SynchronouslyQueryServiceBrokerQueue();
- _timeoutParam.Value = _defaultWaitforTimeout; // [....] successful, extend timeout to 60 seconds.
+ _timeoutParam.Value = _defaultWaitforTimeout; // Sync successful, extend timeout to 60 seconds.
AsynchronouslyQueryServiceBrokerQueue();
}
catch (Exception e) {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDependencyUtils.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDependencyUtils.cs
index ae91e9644a2..ccd6d84f7e4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDependencyUtils.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlDependencyUtils.cs
@@ -2,9 +2,9 @@
// <copyright file="SqlDependencyUtils.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
@@ -179,7 +179,7 @@ namespace System.Data.SqlClient {
{
// this should not happen since _commandHashToNotificationId and _notificationIdToDependenciesHash are always
// updated together
- Debug.Assert(false, "_commandHashToNotificationId has entries that were removed from _notificationIdToDependenciesHash. Remember to keep them in [....]");
+ Debug.Assert(false, "_commandHashToNotificationId has entries that were removed from _notificationIdToDependenciesHash. Remember to keep them in sync");
throw ADP.InternalError(ADP.InternalErrorCode.SqlDependencyCommandHashIsNotAssociatedWithNotification);
}
@@ -217,7 +217,7 @@ namespace System.Data.SqlClient {
}
- Debug.Assert(_notificationIdToDependenciesHash.Count == _commandHashToNotificationId.Count, "always keep these maps in [....]!");
+ Debug.Assert(_notificationIdToDependenciesHash.Count == _commandHashToNotificationId.Count, "always keep these maps in sync!");
}
}
}
@@ -402,7 +402,7 @@ namespace System.Data.SqlClient {
Bid.NotificationsTrace("<sc.SqlDependencyPerAppDomainDispatcher.LookupDependencyEntriesWithRemove|DEP> Entries NOT found in hashtable.\n");
}
- Debug.Assert(_notificationIdToDependenciesHash.Count == _commandHashToNotificationId.Count, "always keep these maps in [....]!");
+ Debug.Assert(_notificationIdToDependenciesHash.Count == _commandHashToNotificationId.Count, "always keep these maps in sync!");
}
return entry; // DependencyList inherits from List<SqlDependency>
@@ -436,7 +436,7 @@ namespace System.Data.SqlClient {
// same SqlDependency can be associated with more than one command, so we have to continue till the end...
}
- Debug.Assert(commandHashesToRemove.Count == notificationIdsToRemove.Count, "maps should be kept in [....]");
+ Debug.Assert(commandHashesToRemove.Count == notificationIdsToRemove.Count, "maps should be kept in sync");
for (int i = 0; i < notificationIdsToRemove.Count; i++ ) {
// cleanup the entry outside of foreach
// do it inside finally block to avoid ThreadAbort exception interrupt this operation
@@ -448,7 +448,7 @@ namespace System.Data.SqlClient {
}
}
- Debug.Assert(_notificationIdToDependenciesHash.Count == _commandHashToNotificationId.Count, "always keep these maps in [....]!");
+ Debug.Assert(_notificationIdToDependenciesHash.Count == _commandHashToNotificationId.Count, "always keep these maps in sync!");
}
}
finally {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlEnums.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlEnums.cs
index da0013b801c..ea4a9a88bde 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlEnums.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlEnums.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlEnums.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlError.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlError.cs
index 9b4d5ee36a5..4e65e159d58 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlError.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlError.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlError.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
@@ -15,8 +15,8 @@ namespace System.Data.SqlClient {
[Serializable]
public sealed class SqlError {
- // bug fix - MDAC 48965 - missing source of exception
- // fixed by [....]
+ //
+
private string source = TdsEnums.SQL_PROVIDER_NAME;
private int number;
private byte state;
@@ -51,17 +51,17 @@ namespace System.Data.SqlClient {
this.win32ErrorCode = 0;
}
- // bug fix - MDAC #49280 - SqlError does not implement ToString();
- // I did not include an exception stack because the correct exception stack is only available
- // on SqlException, and to obtain that the SqlError would have to have backpointers all the
- // way back to SqlException. If the user needs a call stack, they can obtain it on SqlException.
+ //
+
+
+
public override string ToString() {
//return this.GetType().ToString() + ": " + this.message;
return typeof(SqlError).ToString() + ": " + this.message; // since this is sealed so we can change GetType to typeof
}
- // bug fix - MDAC #48965 - missing source of exception
- // fixed by [....]
+ //
+
public string Source {
get { return this.source;}
}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlErrorCollection.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlErrorCollection.cs
index 143be5fa399..18ea5d8081e 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlErrorCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlErrorCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlErrorCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlException.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlException.cs
index 2da09347a56..72dab1c0a59 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlException.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlException.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInfoMessageEvent.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInfoMessageEvent.cs
index 51e69e9dd4d..1e3eadb40fd 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInfoMessageEvent.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInfoMessageEvent.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlInfoMessageEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInfoMessageEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInfoMessageEventHandler.cs
index c299cee5106..d6c63875a81 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInfoMessageEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInfoMessageEventHandler.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlInfoMessageEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">blained</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInternalConnection.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInternalConnection.cs
index 105f4432368..386a6cea58e 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInternalConnection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInternalConnection.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlInternalConnection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInternalConnectionSmi.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInternalConnectionSmi.cs
index 16772773427..becb5962e50 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInternalConnectionSmi.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInternalConnectionSmi.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlInternalConnectionSmi.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInternalConnectionTds.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInternalConnectionTds.cs
index 82e3138fd73..d8c893d6c82 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInternalConnectionTds.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlInternalConnectionTds.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlInternalConnectionTds.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient
@@ -104,6 +104,7 @@ namespace System.Data.SqlClient
private TdsParser _parser;
private SqlLoginAck _loginAck;
private SqlCredential _credential;
+ private FederatedAuthenticationFeatureExtensionData? _fedAuthFeatureExtensionData;
// Connection Resiliency
private bool _sessionRecoveryRequested;
@@ -111,6 +112,62 @@ namespace System.Data.SqlClient
internal SessionData _currentSessionData; // internal for use from TdsParser only, otehr should use CurrentSessionData property that will fix database and language
private SessionData _recoverySessionData;
+ // Federated Authentication
+ // Response obtained from the server for FEDAUTHREQUIRED prelogin option.
+ internal bool _fedAuthRequired;
+
+ internal bool _federatedAuthenticationRequested;
+ internal bool _federatedAuthenticationAcknowledged;
+ internal bool _federatedAuthenticationInfoRequested; // Keep this distinct from _federatedAuthenticationRequested, since some fedauth library types may not need more info
+ internal bool _federatedAuthenticationInfoReceived;
+
+ // TCE flags
+ internal byte _tceVersionSupported;
+
+ internal byte[] _accessTokenInBytes;
+
+ // The pool that this connection is associated with, if at all it is.
+ private DbConnectionPool _dbConnectionPool;
+
+ // This is used to preserve the authentication context object if we decide to cache it for subsequent connections in the same pool.
+ // This will finally end up in _dbConnectionPool.AuthenticationContexts, but only after 1 successful login to SQL Server using this context.
+ // This variable is to persist the context after we have generated it, but before we have successfully completed the login with this new context.
+ // If this connection attempt ended up re-using the existing context and not create a new one, this will be null (since the context is not new).
+ private DbConnectionPoolAuthenticationContext _newDbConnectionPoolAuthenticationContext;
+
+ // The key of the authentication context, built from information found in the FedAuthInfoToken.
+ private DbConnectionPoolAuthenticationContextKey _dbConnectionPoolAuthenticationContextKey;
+
+#if DEBUG
+ // This is a test hook to enable testing of the retry paths for ADAL get access token.
+ // Sample code to enable:
+ //
+ // Type type = typeof(SqlConnection).Assembly.GetType("System.Data.SqlClient.SqlInternalConnectionTds");
+ // System.Reflection.FieldInfo field = type.GetField("_forceAdalRetry", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
+ // if (field != null) {
+ // field.SetValue(null, true);
+ // }
+ //
+ internal static bool _forceAdalRetry = false;
+
+ // This is a test hook to simulate a token expiring within the next 45 minutes.
+ private static bool _forceExpiryLocked = false;
+
+ // This is a test hook to simulate a token expiring within the next 10 minutes.
+ private static bool _forceExpiryUnLocked = false;
+#endif //DEBUG
+
+ // The timespan defining the amount of time the authentication context needs to be valid for at-least, to re-use the cached context,
+ // without making an attempt to refresh it. IF the context is expiring within the next 45 mins, then try to take a lock and refresh
+ // the context, if the lock is acquired.
+ private static readonly TimeSpan _dbAuthenticationContextLockedRefreshTimeSpan = new TimeSpan(hours: 0, minutes: 45, seconds: 00);
+
+ // The timespan defining the minimum amount of time the authentication context needs to be valid for re-using the cached context.
+ // If the context is expiring within the next 10 mins, then create a new context, irrespective of if another thread is trying to do the same.
+ private static readonly TimeSpan _dbAuthenticationContextUnLockedRefreshTimeSpan = new TimeSpan(hours: 0, minutes: 10, seconds: 00);
+
+ private readonly TimeoutTimer _timeout;
+
internal SessionData CurrentSessionData {
get {
if (_currentSessionData != null) {
@@ -254,7 +311,9 @@ namespace System.Data.SqlClient
SecureString newSecurePassword,
bool redirectedUserInstance,
SqlConnectionString userConnectionOptions = null, // NOTE: userConnectionOptions may be different to connectionOptions if the connection string has been expanded (see SqlConnectionString.Expand)
- SessionData reconnectSessionData = null) : base(connectionOptions) {
+ SessionData reconnectSessionData = null,
+ DbConnectionPool pool = null,
+ string accessToken = null) : base(connectionOptions) {
#if DEBUG
if (reconnectSessionData != null) {
@@ -275,6 +334,8 @@ namespace System.Data.SqlClient
}
#endif
Debug.Assert(reconnectSessionData == null || connectionOptions.ConnectRetryCount > 0, "Reconnect data supplied with CR turned off");
+
+ _dbConnectionPool = pool;
if (connectionOptions.ConnectRetryCount > 0) {
_recoverySessionData = reconnectSessionData;
@@ -287,11 +348,15 @@ namespace System.Data.SqlClient
_originalLanguage = _recoverySessionData._initialLanguage;
}
}
-
+
if (connectionOptions.UserInstance && InOutOfProcHelper.InProc) {
throw SQL.UserInstanceNotAvailableInProc();
}
+ if (accessToken != null) {
+ _accessTokenInBytes = System.Text.Encoding.Unicode.GetBytes(accessToken);
+ }
+
_identity = identity;
Debug.Assert(newSecurePassword != null || newPassword != null, "cannot have both new secure change password and string based change password to be null");
Debug.Assert(credential == null || (String.IsNullOrEmpty(connectionOptions.UserID) && String.IsNullOrEmpty(connectionOptions.Password)), "cannot mix the new secure password system and the connection string based password");
@@ -322,8 +387,8 @@ namespace System.Data.SqlClient
#else
{
#endif //DEBUG
- var timeout = TimeoutTimer.StartSecondsTimeout(connectionOptions.ConnectTimeout);
- OpenLoginEnlist(timeout, connectionOptions, credential, newPassword, newSecurePassword, redirectedUserInstance);
+ _timeout = TimeoutTimer.StartSecondsTimeout(connectionOptions.ConnectTimeout);
+ OpenLoginEnlist(_timeout, connectionOptions, credential, newPassword, newSecurePassword, redirectedUserInstance);
}
#if DEBUG
finally {
@@ -1028,6 +1093,15 @@ namespace System.Data.SqlClient
_parser.Run(RunBehavior.UntilDone, null, null, null, _parser._physicalStateObj);
if (_routingInfo == null) { // ROR should not affect state of connection recovery
+ if (_federatedAuthenticationRequested && !_federatedAuthenticationAcknowledged) {
+ Bid.Trace("<sc.SqlInternalConnectionTds.CompleteLogin|ERR> %d#, Server did not acknowledge the federated authentication request\n", ObjectID);
+ throw SQL.ParsingError(ParsingErrorState.FedAuthNotAcknowledged);
+ }
+ if (_federatedAuthenticationInfoRequested && !_federatedAuthenticationInfoReceived) {
+ Bid.Trace("<sc.SqlInternalConnectionTds.CompleteLogin|ERR> %d#, Server never sent the requested federated authentication info\n", ObjectID);
+ throw SQL.ParsingError(ParsingErrorState.FedAuthInfoNotReceived);
+ }
+
if (!_sessionRecoveryAcknowledged) {
_currentSessionData = null;
if (_recoverySessionData != null) {
@@ -1094,6 +1168,7 @@ namespace System.Data.SqlClient
}
}
+ login.authentication = ConnectionOptions.Authentication;
login.timeout = timeoutInSeconds;
login.userInstance = ConnectionOptions.UserInstance;
login.hostName = ConnectionOptions.ObtainWorkstationId();
@@ -1113,7 +1188,8 @@ namespace System.Data.SqlClient
login.serverName = server.UserServerName;
login.useReplication = ConnectionOptions.Replication;
- login.useSSPI = ConnectionOptions.IntegratedSecurity;
+ login.useSSPI = ConnectionOptions.IntegratedSecurity
+ || (ConnectionOptions.Authentication == SqlAuthenticationMethod.ActiveDirectoryIntegrated && !_fedAuthRequired);
login.packetSize = _currentPacketSize;
login.newPassword = newPassword;
login.readOnlyIntent = ConnectionOptions.ApplicationIntent == ApplicationIntent.ReadOnly;
@@ -1128,7 +1204,34 @@ namespace System.Data.SqlClient
_sessionRecoveryRequested = true;
}
- _parser.TdsLogin(login, requestedFeatures, _recoverySessionData);
+ // If the workflow being used is Active Directory Password or Active Directory Integrated and server's prelogin response
+ // for FEDAUTHREQUIRED option indicates Federated Authentication is required, we have to insert FedAuth Feature Extension
+ // in Login7, indicating the intent to use Active Directory Authentication Library for SQL Server.
+ if (ConnectionOptions.Authentication == SqlAuthenticationMethod.ActiveDirectoryPassword
+ || (ConnectionOptions.Authentication == SqlAuthenticationMethod.ActiveDirectoryIntegrated && _fedAuthRequired)) {
+ requestedFeatures |= TdsEnums.FeatureExtension.FedAuth;
+ _federatedAuthenticationInfoRequested = true;
+ _fedAuthFeatureExtensionData =
+ new FederatedAuthenticationFeatureExtensionData {
+ libraryType = TdsEnums.FedAuthLibrary.ADAL,
+ authentication = ConnectionOptions.Authentication,
+ fedAuthRequiredPreLoginResponse = _fedAuthRequired
+ };
+ }
+ if (_accessTokenInBytes != null) {
+ requestedFeatures |= TdsEnums.FeatureExtension.FedAuth;
+ _fedAuthFeatureExtensionData = new FederatedAuthenticationFeatureExtensionData {
+ libraryType = TdsEnums.FedAuthLibrary.SecurityToken,
+ fedAuthRequiredPreLoginResponse = _fedAuthRequired,
+ accessToken = _accessTokenInBytes
+ };
+ // No need any further info from the server for token based authentication. So set _federatedAuthenticationRequested to true
+ _federatedAuthenticationRequested = true;
+ }
+
+ // The TCE feature is implicitly requested
+ requestedFeatures |= TdsEnums.FeatureExtension.Tce;
+ _parser.TdsLogin(login, requestedFeatures, _recoverySessionData, _fedAuthFeatureExtensionData);
}
private void LoginFailure() {
@@ -1326,9 +1429,9 @@ namespace System.Data.SqlClient
}
catch (SqlException sqlex) {
if (null == _parser
- || TdsParserState.Closed != _parser.State
- || IsDoNotRetryConnectError(sqlex)
- || timeout.IsExpired) { // no more time to try again
+ || TdsParserState.Closed != _parser.State
+ || IsDoNotRetryConnectError(sqlex)
+ || timeout.IsExpired) { // no more time to try again
throw; // Caller will call LoginFailure()
}
@@ -1518,7 +1621,7 @@ namespace System.Data.SqlClient
}
catch (SqlException sqlex) {
if (IsDoNotRetryConnectError(sqlex)
- || timeout.IsExpired)
+ || timeout.IsExpired)
{ // no more time to try again
throw; // Caller will call LoginFailure()
}
@@ -1625,7 +1728,8 @@ namespace System.Data.SqlClient
ConnectionOptions.Encrypt,
ConnectionOptions.TrustServerCertificate,
ConnectionOptions.IntegratedSecurity,
- withFailover);
+ withFailover,
+ ConnectionOptions.Authentication);
timeoutErrorInternal.EndPhase(SqlConnectionTimeoutErrorPhase.ConsumePreLoginHandshake);
timeoutErrorInternal.SetAndBeginPhase(SqlConnectionTimeoutErrorPhase.LoginBegin);
@@ -1821,6 +1925,9 @@ namespace System.Data.SqlClient
break;
case TdsEnums.ENV_ROUTING:
+ if (Bid.AdvancedOn) {
+ Bid.Trace("<sc.SqlInternalConnectionTds.OnEnvChange> %d#, Received routing info\n", ObjectID);
+ }
if (string.IsNullOrEmpty(rec.newRoutingInfo.ServerName) || rec.newRoutingInfo.Protocol != 0 || rec.newRoutingInfo.Port == 0) {
throw SQL.ROR_InvalidRoutingInfo(this);
}
@@ -1846,6 +1953,276 @@ namespace System.Data.SqlClient
}
}
+ /// <summary>
+ /// Generates (if appropriate) and sends a Federated Authentication Access token to the server, using the Federated Authentication Info.
+ /// </summary>
+ /// <param name="fedAuthInfo">Federated Authentication Info.</param>
+ internal void OnFedAuthInfo(SqlFedAuthInfo fedAuthInfo) {
+ Debug.Assert((ConnectionOptions.HasUserIdKeyword && ConnectionOptions.HasPasswordKeyword)
+ || _credential != null
+ || (ConnectionOptions.Authentication == SqlAuthenticationMethod.ActiveDirectoryIntegrated && _fedAuthRequired),
+ "Credentials aren't provided for calling ADAL");
+ Debug.Assert(fedAuthInfo != null, "info should not be null.");
+ Debug.Assert(_dbConnectionPoolAuthenticationContextKey == null, "_dbConnectionPoolAuthenticationContextKey should be null.");
+
+ Bid.Trace("<sc.SqlInternalConnectionTds.OnFedAuthInfo> %d#, Generating federated authentication token\n", ObjectID);
+
+ DbConnectionPoolAuthenticationContext dbConnectionPoolAuthenticationContext = null;
+
+ // We want to refresh the token without taking a lock on the context, allowed when the access token is expiring within the next 10 mins.
+ bool attemptRefreshTokenUnLocked = false;
+
+ // We want to refresh the token, if taking the lock on the authentication context is successful.
+ bool attemptRefreshTokenLocked = false;
+
+ // The Federated Authentication returned by TryGetFedAuthTokenLocked or GetFedAuthToken.
+ SqlFedAuthToken fedAuthToken = null;
+
+ if (_dbConnectionPool != null) {
+ Debug.Assert(_dbConnectionPool.AuthenticationContexts != null);
+
+ // Construct the dbAuthenticationContextKey with information from FedAuthInfo and store for later use, when inserting in to the token cache.
+ _dbConnectionPoolAuthenticationContextKey = new DbConnectionPoolAuthenticationContextKey(fedAuthInfo.stsurl, fedAuthInfo.spn);
+
+ // Try to retrieve the authentication context from the pool, if one does exist for this key.
+ if (_dbConnectionPool.AuthenticationContexts.TryGetValue(_dbConnectionPoolAuthenticationContextKey, out dbConnectionPoolAuthenticationContext)) {
+ Debug.Assert(dbConnectionPoolAuthenticationContext != null, "dbConnectionPoolAuthenticationContext should not be null.");
+
+ // The timespan between UTCNow and the token expiry.
+ TimeSpan contextValidity = dbConnectionPoolAuthenticationContext.ExpirationTime.Subtract(DateTime.UtcNow);
+
+ // If the authentication context is expiring within next 10 minutes, lets just re-create a token for this connection attempt.
+ // And on successful login, try to update the cache with the new token.
+ if (contextValidity <= _dbAuthenticationContextUnLockedRefreshTimeSpan) {
+ Bid.Trace("<sc.SqlInternalConnectionTds.OnFedAuthInfo> %d#, The expiration time is less than 10 mins, so trying to get new access token regardless of if an other thread is also trying to update it.The expiration time is %s. Current Time is %s.\n", ObjectID, dbConnectionPoolAuthenticationContext.ExpirationTime.ToLongTimeString(), DateTime.UtcNow.ToLongTimeString());
+
+ attemptRefreshTokenUnLocked = true;
+ }
+
+#if DEBUG
+ // Checking if any failpoints are enabled.
+ else if (_forceExpiryUnLocked) {
+ attemptRefreshTokenUnLocked = true;
+ }
+ else if (_forceExpiryLocked) {
+ attemptRefreshTokenLocked = TryGetFedAuthTokenLocked(fedAuthInfo, dbConnectionPoolAuthenticationContext, out fedAuthToken);
+ }
+#endif
+
+ // If the token is expiring within the next 45 mins, try to fetch a new token, if there is no thread already doing it.
+ // If a thread is already doing the refresh, just use the existing token in the cache and proceed.
+ else if (contextValidity <= _dbAuthenticationContextLockedRefreshTimeSpan) {
+ if (Bid.AdvancedOn) {
+ Bid.Trace("<sc.SqlInternalConnectionTds.OnFedAuthInfo> %d#, The authentication context needs a refresh.The expiration time is %s. Current Time is %s.\n", ObjectID, dbConnectionPoolAuthenticationContext.ExpirationTime.ToLongTimeString(), DateTime.UtcNow.ToLongTimeString());
+ }
+
+ // Call the function which tries to acquire a lock over the authentication context before trying to update.
+ // If the lock could not be obtained, it will return false, without attempting to fetch a new token.
+ attemptRefreshTokenLocked = TryGetFedAuthTokenLocked(fedAuthInfo, dbConnectionPoolAuthenticationContext, out fedAuthToken);
+
+ // If TryGetFedAuthTokenLocked returns true, it means lock was obtained and fedAuthToken should not be null.
+ // If there was an exception in retrieving the new token, TryGetFedAuthTokenLocked should have thrown, so we won't be here.
+ Debug.Assert(!attemptRefreshTokenLocked || fedAuthToken != null, "Either Lock should not have been obtained or fedAuthToken should not be null.");
+ Debug.Assert(!attemptRefreshTokenLocked || _newDbConnectionPoolAuthenticationContext != null, "Either Lock should not have been obtained or _newDbConnectionPoolAuthenticationContext should not be null.");
+
+ // Indicate in Bid Trace that we are successful with the update.
+ if (attemptRefreshTokenLocked) {
+ Bid.Trace("<sc.SqlInternalConnectionTds.OnFedAuthInfo> %d#, The attempt to get a new access token succeeded under the locked mode.");
+ }
+
+ }
+ else if (Bid.AdvancedOn) {
+ Bid.Trace("<sc.SqlInternalConnectionTds.OnFedAuthInfo> %d#, Found an authentication context in the cache that does not need a refresh at this time. Re-using the cached token.\n", ObjectID);
+ }
+ }
+ }
+
+ // dbConnectionPoolAuthenticationContext will be null if either this is the first connection attempt in the pool or pooling is disabled.
+ if (dbConnectionPoolAuthenticationContext == null || attemptRefreshTokenUnLocked) {
+ // Get the Federated Authentication Token.
+ fedAuthToken = GetFedAuthToken(fedAuthInfo);
+ Debug.Assert(fedAuthToken != null, "fedAuthToken should not be null.");
+
+ if (_dbConnectionPool != null) {
+ // GetFedAuthToken should have updated _newDbConnectionPoolAuthenticationContext.
+ Debug.Assert(_newDbConnectionPoolAuthenticationContext != null, "_newDbConnectionPoolAuthenticationContext should not be null.");
+ }
+ }
+ else if (!attemptRefreshTokenLocked) {
+ Debug.Assert(dbConnectionPoolAuthenticationContext != null, "dbConnectionPoolAuthenticationContext should not be null.");
+ Debug.Assert(fedAuthToken == null, "fedAuthToken should be null in this case.");
+ Debug.Assert(_newDbConnectionPoolAuthenticationContext == null, "_newDbConnectionPoolAuthenticationContext should be null.");
+
+ fedAuthToken = new SqlFedAuthToken();
+
+ // If the code flow is here, then we are re-using the context from the cache for this connection attempt and not
+ // generating a new access token on this thread.
+ fedAuthToken.accessToken = dbConnectionPoolAuthenticationContext.AccessToken;
+ }
+
+ Debug.Assert(fedAuthToken != null && fedAuthToken.accessToken != null, "fedAuthToken and fedAuthToken.accessToken cannot be null.");
+ _parser.SendFedAuthToken(fedAuthToken);
+ }
+
+ /// <summary>
+ /// Tries to acquire a lock on the authentication context. If successful in acquiring the lock, gets a new token and assigns it in the out parameter. Else returns false.
+ /// </summary>
+ /// <param name="fedAuthInfo">Federated Authentication Info</param>
+ /// <param name="dbConnectionPoolAuthenticationContext">Authentication Context cached in the connection pool.</param>
+ /// <param name="fedAuthToken">Out parameter, carrying the token if we acquired a lock and got the token.</param>
+ /// <returns></returns>
+ internal bool TryGetFedAuthTokenLocked(SqlFedAuthInfo fedAuthInfo, DbConnectionPoolAuthenticationContext dbConnectionPoolAuthenticationContext, out SqlFedAuthToken fedAuthToken) {
+
+ Debug.Assert(fedAuthInfo != null, "fedAuthInfo should not be null.");
+ Debug.Assert(dbConnectionPoolAuthenticationContext != null, "dbConnectionPoolAuthenticationContext should not be null.");
+
+ fedAuthToken = null;
+
+ // Variable which indicates if we did indeed manage to acquire the lock on the authentication context, to try update it.
+ bool authenticationContextLocked = false;
+
+ // Prepare CER to ensure the lock on authentication context is released.
+ RuntimeHelpers.PrepareConstrainedRegions();
+ try {
+ // Try to obtain a lock on the context. If acquired, this thread got the opportunity to update.
+ // Else some other thread is already updating it, so just proceed forward with the existing token in the cache.
+ if (dbConnectionPoolAuthenticationContext.LockToUpdate()) {
+ Bid.Trace("<sc.SqlInternalConnectionTds.TryGetFedAuthTokenLocked> %d#, Acquired the lock to update the authentication context.The expiration time is %s. Current Time is %s.\n", ObjectID, dbConnectionPoolAuthenticationContext.ExpirationTime.ToLongTimeString(), DateTime.UtcNow.ToLongTimeString());
+
+ authenticationContextLocked = true;
+ }
+ else {
+ Bid.Trace("<sc.SqlInternalConnectionTds.TryGetFedAuthTokenLocked> %d#, Refreshing the context is already in progress by another thread.\n", ObjectID);
+ }
+
+ if (authenticationContextLocked) {
+ // Get the Federated Authentication Token.
+ fedAuthToken = GetFedAuthToken(fedAuthInfo);
+ Debug.Assert(fedAuthToken != null, "fedAuthToken should not be null.");
+ }
+ }
+ finally {
+ if (authenticationContextLocked) {
+ // Release the lock we took on the authentication context, even if we have not yet updated the cache with the new context. Login process can fail at several places after this step and so there is no guarantee that the new context will make it to the cache. So we shouldn't miss resetting the flag. With the reset, at-least another thread may have a chance to update it.
+ dbConnectionPoolAuthenticationContext.ReleaseLockToUpdate();
+ }
+ }
+
+ return authenticationContextLocked;
+ }
+
+ /// <summary>
+ /// Get the Federated Authentication Token.
+ /// </summary>
+ /// <param name="fedAuthInfo">Information obtained from server as Federated Authentication Info.</param>
+ /// <returns>SqlFedAuthToken</returns>
+ internal SqlFedAuthToken GetFedAuthToken(SqlFedAuthInfo fedAuthInfo) {
+
+ Debug.Assert(fedAuthInfo != null, "fedAuthInfo should not be null.");
+
+ // No:of milliseconds to sleep for the inital back off.
+ int sleepInterval = 100;
+
+ // No:of attempts, for tracing purposes, if we underwent retries.
+ int numberOfAttempts = 0;
+
+ // Object that will be returned to the caller, containing all required data about the token.
+ SqlFedAuthToken fedAuthToken = new SqlFedAuthToken();
+
+ // Username to use in error messages.
+ string username = null;
+
+ while (true) {
+ numberOfAttempts++;
+ try {
+ if (ConnectionOptions.Authentication == SqlAuthenticationMethod.ActiveDirectoryIntegrated) {
+ username = TdsEnums.NTAUTHORITYANONYMOUSLOGON;
+ fedAuthToken.accessToken = ADALNativeWrapper.ADALGetAccessTokenForWindowsIntegrated(fedAuthInfo.stsurl,
+ fedAuthInfo.spn,
+ _clientConnectionId, ActiveDirectoryAuthentication.AdoClientId,
+ ref fedAuthToken.expirationFileTime);
+ }
+ else if (_credential != null) {
+ username = _credential.UserId;
+ fedAuthToken.accessToken = ADALNativeWrapper.ADALGetAccessToken(_credential.UserId,
+ _credential.Password,
+ fedAuthInfo.stsurl,
+ fedAuthInfo.spn,
+ _clientConnectionId,
+ ActiveDirectoryAuthentication.AdoClientId,
+ ref fedAuthToken.expirationFileTime);
+ }
+ else {
+ username = ConnectionOptions.UserID;
+ fedAuthToken.accessToken = ADALNativeWrapper.ADALGetAccessToken(ConnectionOptions.UserID,
+ ConnectionOptions.Password,
+ fedAuthInfo.stsurl,
+ fedAuthInfo.spn,
+ _clientConnectionId,
+ ActiveDirectoryAuthentication.AdoClientId,
+ ref fedAuthToken.expirationFileTime);
+ }
+
+ Debug.Assert(fedAuthToken.accessToken != null, "AccessToken should not be null.");
+#if DEBUG
+ if (_forceAdalRetry) {
+ // 3399614468 is 0xCAA20004L just for testing.
+ throw new AdalException("Force retry in GetFedAuthToken", ActiveDirectoryAuthentication.GetAccessTokenTansisentError, 3399614468, 6);
+ }
+#endif
+ // Break out of the retry loop in successful case.
+ break;
+ }
+ catch (AdalException adalException) {
+
+ uint errorCategory = adalException.GetCategory();
+
+ if (ActiveDirectoryAuthentication.GetAccessTokenTansisentError != errorCategory
+ || _timeout.IsExpired
+ || _timeout.MillisecondsRemaining <= sleepInterval) {
+
+ string errorStatus = adalException.GetStatus().ToString("X");
+
+ Bid.Trace("<sc.SqlInternalConnectionTds.GetFedAuthToken.ADALException category:> %d# <error:> %s#\n", (int)errorCategory, errorStatus);
+
+ // Error[0]
+ SqlErrorCollection sqlErs = new SqlErrorCollection();
+ sqlErs.Add(new SqlError(0, (byte)0x00, (byte)TdsEnums.MIN_ERROR_CLASS, ConnectionOptions.DataSource, Res.GetString(Res.SQL_ADALFailure, username, ConnectionOptions.Authentication.ToString("G")), ActiveDirectoryAuthentication.AdalGetAccessTokenFunctionName, 0));
+
+ // Error[1]
+ string errorMessage1 = Res.GetString(Res.SQL_ADALInnerException, errorStatus, adalException.GetState());
+ sqlErs.Add(new SqlError(0, (byte)0x00, (byte)TdsEnums.MIN_ERROR_CLASS, ConnectionOptions.DataSource, errorMessage1, ActiveDirectoryAuthentication.AdalGetAccessTokenFunctionName, 0));
+
+ // Error[2]
+ if (!string.IsNullOrEmpty(adalException.Message)) {
+ sqlErs.Add(new SqlError(0, (byte)0x00, (byte)TdsEnums.MIN_ERROR_CLASS, ConnectionOptions.DataSource, adalException.Message, ActiveDirectoryAuthentication.AdalGetAccessTokenFunctionName, 0));
+ }
+ SqlException exc = SqlException.CreateException(sqlErs, "", this);
+ throw exc;
+ }
+
+ Bid.Trace("<sc.SqlInternalConnectionTds.GetFedAuthToken|ADV> %d#, sleeping %d{Milliseconds}\n", ObjectID, sleepInterval);
+ Bid.Trace("<sc.SqlInternalConnectionTds.GetFedAuthToken|ADV> %d#, remaining %d{Milliseconds}\n", ObjectID, _timeout.MillisecondsRemaining);
+
+ Thread.Sleep(sleepInterval);
+ sleepInterval *= 2;
+ }
+ }
+
+ Debug.Assert(fedAuthToken != null, "fedAuthToken should not be null.");
+ Debug.Assert(fedAuthToken.accessToken != null && fedAuthToken.accessToken.Length > 0, "fedAuthToken.accessToken should not be null or empty.");
+
+ // Store the newly generated token in _newDbConnectionPoolAuthenticationContext, only if using pooling.
+ if (_dbConnectionPool != null) {
+ DateTime expirationTime = DateTime.FromFileTimeUtc(fedAuthToken.expirationFileTime);
+ _newDbConnectionPoolAuthenticationContext = new DbConnectionPoolAuthenticationContext(fedAuthToken.accessToken, expirationTime);
+ }
+
+ Bid.Trace("<sc.SqlInternalConnectionTds.GetFedAuthToken> %d#, Finished generating federated authentication token.\n", ObjectID);
+
+ return fedAuthToken;
+ }
+
internal void OnFeatureExtAck(int featureId, byte[] data) {
if (_routingInfo != null) {
return;
@@ -1854,7 +2231,7 @@ namespace System.Data.SqlClient
case TdsEnums.FEATUREEXT_SRECOVERY: {
// Session recovery not requested
if (!_sessionRecoveryRequested) {
- throw SQL.ParsingError();
+ throw SQL.ParsingErrorFeatureId(ParsingErrorState.UnrequestedFeatureAckReceived, featureId);
}
_sessionRecoveryAcknowledged = true;
@@ -1888,9 +2265,82 @@ namespace System.Data.SqlClient
}
break;
}
+ case TdsEnums.FEATUREEXT_FEDAUTH: {
+ if (Bid.AdvancedOn) {
+ Bid.Trace("<sc.SqlInternalConnectionTds.OnFeatureExtAck> %d#, Received feature extension acknowledgement for federated authentication\n", ObjectID);
+ }
+ if (!_federatedAuthenticationRequested) {
+ Bid.Trace("<sc.SqlInternalConnectionTds.OnFeatureExtAck|ERR> %d#, Did not request federated authentication\n", ObjectID);
+ throw SQL.ParsingErrorFeatureId(ParsingErrorState.UnrequestedFeatureAckReceived, featureId);
+ }
+
+ Debug.Assert(_fedAuthFeatureExtensionData != null, "_fedAuthFeatureExtensionData must not be null when _federatedAuthenticatonRequested == true");
+
+ switch (_fedAuthFeatureExtensionData.Value.libraryType) {
+ case TdsEnums.FedAuthLibrary.ADAL:
+ case TdsEnums.FedAuthLibrary.SecurityToken:
+ // The server shouldn't have sent any additional data with the ack (like a nonce)
+ if (data.Length != 0) {
+ Bid.Trace("<sc.SqlInternalConnectionTds.OnFeatureExtAck|ERR> %d#, Federated authentication feature extension ack for ADAL and Security Token includes extra data\n", ObjectID);
+ throw SQL.ParsingError(ParsingErrorState.FedAuthFeatureAckContainsExtraData);
+ }
+ break;
+
+ default:
+ Debug.Assert(false, "Unknown _fedAuthLibrary type");
+ Bid.Trace("<sc.SqlInternalConnectionTds.OnFeatureExtAck|ERR> %d#, Attempting to use unknown federated authentication library\n", ObjectID);
+ throw SQL.ParsingErrorLibraryType(ParsingErrorState.FedAuthFeatureAckUnknownLibraryType, (int)_fedAuthFeatureExtensionData.Value.libraryType);
+ }
+ _federatedAuthenticationAcknowledged = true;
+
+ // If a new authentication context was used as part of this login attempt, try to update the new context in the cache, i.e.dbConnectionPool.AuthenticationContexts.
+ // ChooseAuthenticationContextToUpdate will take care that only the context which has more validity will remain in the cache, based on the Update logic.
+ if (_newDbConnectionPoolAuthenticationContext != null)
+ {
+ Debug.Assert(_dbConnectionPool != null, "_dbConnectionPool should not be null when _newDbConnectionPoolAuthenticationContext != null.");
+
+ DbConnectionPoolAuthenticationContext newAuthenticationContextInCacheAfterAddOrUpdate = _dbConnectionPool.AuthenticationContexts.AddOrUpdate(_dbConnectionPoolAuthenticationContextKey, _newDbConnectionPoolAuthenticationContext,
+ (key, oldValue) => DbConnectionPoolAuthenticationContext.ChooseAuthenticationContextToUpdate(oldValue, _newDbConnectionPoolAuthenticationContext));
+
+ Debug.Assert(newAuthenticationContextInCacheAfterAddOrUpdate != null, "newAuthenticationContextInCacheAfterAddOrUpdate should not be null.");
+#if DEBUG
+ // For debug purposes, assert and trace if we ended up updating the cache with the new one or some other thread's context won the expiration ----.
+ if (newAuthenticationContextInCacheAfterAddOrUpdate == _newDbConnectionPoolAuthenticationContext) {
+ Bid.Trace("<sc.SqlInternalConnectionTds.OnFeatureExtAck|ERR> %d#, Updated the new dbAuthenticationContext in the _dbConnectionPool.AuthenticationContexts. \n", ObjectID);
+ }
+ else {
+ Bid.Trace("<sc.SqlInternalConnectionTds.OnFeatureExtAck|ERR> %d#, AddOrUpdate attempted on _dbConnectionPool.AuthenticationContexts, but it did not update the new value. \n", ObjectID);
+ }
+#endif
+ }
+
+ break;
+ }
+ case TdsEnums.FEATUREEXT_TCE: {
+ if (Bid.AdvancedOn) {
+ Bid.Trace("<sc.SqlInternalConnectionTds.OnFeatureExtAck> %d#, Received feature extension acknowledgement for TCE\n", ObjectID);
+ }
+
+ if (data.Length < 1) {
+ Bid.Trace("<sc.SqlInternalConnectionTds.OnFeatureExtAck|ERR> %d#, Unknown version number for TCE\n", ObjectID);
+ throw SQL.ParsingError(ParsingErrorState.TceUnknownVersion);
+ }
+
+ byte supportedTceVersion = data[0];
+ if (0 == supportedTceVersion || supportedTceVersion > TdsEnums.MAX_SUPPORTED_TCE_VERSION) {
+ Bid.Trace("<sc.SqlInternalConnectionTds.OnFeatureExtAck|ERR> %d#, Invalid version number for TCE\n", ObjectID);
+ throw SQL.ParsingErrorValue(ParsingErrorState.TceInvalidVersion, supportedTceVersion);
+ }
+
+ _tceVersionSupported = supportedTceVersion;
+ Debug.Assert (_tceVersionSupported == TdsEnums.MAX_SUPPORTED_TCE_VERSION, "Client support TCE version 1");
+ _parser.IsColumnEncryptionSupported = true;
+ break;
+ }
+
default: {
// Unknown feature ack
- throw SQL.ParsingError();
+ throw SQL.ParsingErrorFeatureId(ParsingErrorState.UnknownFeatureAck, featureId);
}
}
}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationEventArgs.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationEventArgs.cs
index 89498fc18ec..590e7bfe329 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationEventArgs.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationEventArgs.cs
@@ -2,9 +2,9 @@
// <copyright file="SqlNotificationEventArgs.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationInfo.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationInfo.cs
index 97826a6c96b..bb13ddb37c3 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationInfo.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationInfo.cs
@@ -2,9 +2,9 @@
// <copyright file="SqlNotificationInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="true">[....]</owner>
+// <owner current="true" primary="true">mithomas</owner>
+// <owner current="true" primary="false">blained</owner>
+// <owner current="false" primary="true">ramp</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationSource.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationSource.cs
index 6fa06cf29ec..cc787d352fc 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationSource.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationSource.cs
@@ -2,9 +2,9 @@
// <copyright file="SqlNotificationSource.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">mithomas</owner>
+// <owner current="true" primary="false">blained</owner>
+// <owner current="false" primary="false">ramp</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationType.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationType.cs
index 17f31f43c07..6cf8747e9ac 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationType.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlNotificationType.cs
@@ -2,9 +2,9 @@
// <copyright file="SqlNotificationType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">mithomas</owner>
+// <owner current="true" primary="false">blained</owner>
+// <owner current="false" primary="false">ramp</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlParameter.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlParameter.cs
index 66614199c47..155094a3fa8 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlParameter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlParameter.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlParameter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
@@ -84,6 +84,48 @@ namespace System.Data.SqlClient {
private bool _coercedValueIsDataFeed;
private int _actualSize = -1;
+ /// <summary>
+ /// Column Encryption Cipher Related Metadata.
+ /// </summary>
+ private SqlCipherMetadata _columnEncryptionCipherMetadata;
+
+ /// <summary>
+ /// Get or set the encryption related metadata of this SqlParameter.
+ /// Should be set to a non-null value only once.
+ /// </summary>
+ internal SqlCipherMetadata CipherMetadata {
+ get {
+ return _columnEncryptionCipherMetadata;
+ }
+
+ set {
+ Debug.Assert(_columnEncryptionCipherMetadata == null || value == null,
+ "_columnEncryptionCipherMetadata should be set to a non-null value only once.");
+
+ _columnEncryptionCipherMetadata = value;
+ }
+ }
+
+ /// <summary>
+ /// Indicates if the parameter encryption metadata received by sp_describe_parameter_encryption.
+ /// For unencrypted parameters, the encryption metadata should still be sent (and will indicate
+ /// that no encryption is needed).
+ /// </summary>
+ internal bool HasReceivedMetadata { get; set; }
+
+ /// <summary>
+ /// Returns the normalization rule version number as a byte
+ /// </summary>
+ internal byte NormalizationRuleVersion {
+ get {
+ if (_columnEncryptionCipherMetadata != null) {
+ return _columnEncryptionCipherMetadata.NormalizationRuleVersion;
+ }
+
+ return 0x00;
+ }
+ }
+
public SqlParameter() : base() {
}
@@ -231,6 +273,16 @@ namespace System.Data.SqlClient {
}
}
+ [
+ DefaultValue(false),
+ ResCategoryAttribute(Res.DataCategory_Data),
+ ResDescriptionAttribute(Res.TCE_SqlParameter_ForceColumnEncryption),
+ ]
+ public bool ForceColumnEncryption {
+ get;
+ set;
+ }
+
override public DbType DbType {
get {
return GetMetaTypeOnly().DbType;
@@ -293,7 +345,7 @@ namespace System.Data.SqlClient {
maxlen = (long)mt.FixedLength;
}
else if (Size > 0 || Size < 0) {
- maxlen = Size; // Bug Fix: 302768, 302695, 302694, 302693
+ maxlen = Size; //
}
else {
maxlen = MSS.SmiMetaData.GetDefaultForType( mt.SqlDbType ).MaxLength;
@@ -309,6 +361,22 @@ namespace System.Data.SqlClient {
}
}
+ /// <summary>
+ /// Get SMI Metadata to write out type_info stream.
+ /// </summary>
+ /// <returns></returns>
+ internal MSS.SmiParameterMetaData GetMetadataForTypeInfo() {
+ ParameterPeekAheadValue peekAhead = null;
+
+ if (_internalMetaType == null) {
+ _internalMetaType = GetMetaTypeOnly();
+ }
+
+ return MetaDataForSmi(out peekAhead);
+ }
+
+ // IMPORTANT DEVNOTE: This method is being used for parameter encryption functionality, to get the type_info TDS object from SqlParameter.
+ // Please consider impact to that when changing this method. Refer to the callers of SqlParameter.GetMetadataForTypeInfo().
internal MSS.SmiParameterMetaData MetaDataForSmi(out ParameterPeekAheadValue peekAhead) {
peekAhead = null;
MetaType mt = ValidateTypeLengths( true /* Yukon or newer */ );
@@ -448,7 +516,7 @@ namespace System.Data.SqlClient {
internal bool ParamaterIsSqlType {
get {
return _isSqlParameterSqlType;
- }
+ }
set {
_isSqlParameterSqlType = value;
}
@@ -998,6 +1066,7 @@ namespace System.Data.SqlClient {
destination._coercedValueIsDataFeed = _coercedValueIsDataFeed;
destination._coercedValueIsSqlType = _coercedValueIsSqlType;
destination._actualSize = _actualSize;
+ destination.ForceColumnEncryption = ForceColumnEncryption;
}
internal byte GetActualPrecision() {
@@ -1463,32 +1532,32 @@ namespace System.Data.SqlClient {
// byte length and a parameter length > than that expressable in 2 bytes
internal MetaType ValidateTypeLengths(bool yukonOrNewer) {
MetaType mt = InternalMetaType;
- // MDAC bug #50839 + #52829 : Since the server will automatically reject any
- // char, varchar, binary, varbinary, nchar, or nvarchar parameter that has a
- // byte sizeInCharacters > 8000 bytes, we promote the parameter to image, text, or ntext. This
- // allows the user to specify a parameter type using a COM+ datatype and be able to
- // use that parameter against a BLOB column.
+ // MDAC
+
+
+
+
if ((SqlDbType.Udt != mt.SqlDbType) && (false == mt.IsFixed) && (false == mt.IsLong)) { // if type has 2 byte length
long actualSizeInBytes = this.GetActualSize();
long sizeInCharacters = this.Size;
- // Bug: VSTFDevDiv #636867
- // Notes:
- // 'actualSizeInBytes' is the size of value passed;
- // 'sizeInCharacters' is the parameter size;
- // 'actualSizeInBytes' is in bytes;
- // 'this.Size' is in charaters;
- // 'sizeInCharacters' is in characters;
- // 'TdsEnums.TYPE_SIZE_LIMIT' is in bytes;
- // For Non-NCharType and for non-Yukon or greater variables, size should be maintained;
- // Reverting changes from bug VSTFDevDiv # 479739 as it caused an regression;
- // Modifed variable names from 'size' to 'sizeInCharacters', 'actualSize' to 'actualSizeInBytes', and
- // 'maxSize' to 'maxSizeInBytes'
- // The idea is to
- // 1) revert the regression from bug 479739
- // 2) fix as many scenarios as possible including bug 636867
- // 3) cause no additional regression from 3.5 sp1
- // Keeping these goals in mind - the following are the changes we are making
+ //
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
long maxSizeInBytes = 0;
if ((mt.IsNCharType) && (yukonOrNewer))
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlParameterCollection.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlParameterCollection.cs
index 4367bc7a67c..a8951459130 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlParameterCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlParameterCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlParameterCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlReferenceCollection.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlReferenceCollection.cs
index e26069f2dac..c50e7ea4f77 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlReferenceCollection.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlReferenceCollection.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlReferenceCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatedEvent.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatedEvent.cs
index 75d37032331..a0ff53b1fad 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatedEvent.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatedEvent.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlRowUpdatedEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatedEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatedEventHandler.cs
index 832883eccb4..b047910e735 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatedEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatedEventHandler.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlRowUpdatedEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">blained</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatingEvent.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatingEvent.cs
index 6d3bcd921b4..2233e9dff94 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatingEvent.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatingEvent.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlRowUpdatingEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatingEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatingEventHandler.cs
index ad38aaf49af..cffa552e77e 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatingEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlRowUpdatingEventHandler.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlRowUpdatingEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">blained</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlSecurityUtility.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlSecurityUtility.cs
new file mode 100644
index 00000000000..a4b18c52525
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlSecurityUtility.cs
@@ -0,0 +1,263 @@
+//------------------------------------------------------------------------------
+// <copyright file="SqlException.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">balnee</owner>
+// <owner current="true" primary="false">krishnib</owner>
+//------------------------------------------------------------------------------
+namespace System.Data.SqlClient
+{
+ using System;
+ using System.Diagnostics;
+ using System.Reflection;
+ using System.Security;
+ using System.Security.Cryptography;
+ using System.Text;
+
+ internal static class SqlSecurityUtility {
+
+ /// <summary>
+ /// Computes a keyed hash of a given text and returns. It fills the buffer "hash" with computed hash value.
+ /// </summary>
+ /// <param name="plainText">Plain text bytes whose hash has to be computed.</param>
+ /// <param name="key">key used for the HMAC</param>
+ /// <param name="hash">Output buffer where the computed hash value is stored. If its less that 64 bytes, the hash is truncated</param>
+ /// <returns>HMAC value</returns>
+ internal static void GetHMACWithSHA256(byte[] plainText, byte[] key, byte[] hash) {
+ const int MaxSHA256HashBytes = 32;
+
+ Debug.Assert(key != null && plainText != null);
+ Debug.Assert(hash.Length != 0 && hash.Length <= MaxSHA256HashBytes);
+
+ using (HMACSHA256 hmac = new HMACSHA256(key)) {
+ byte[] computedHash = hmac.ComputeHash(plainText);
+
+ // Truncate the hash if needed
+ Buffer.BlockCopy (computedHash, 0, hash, 0, hash.Length);
+ }
+ }
+
+ /// <summary>
+ /// Computes SHA256 hash of a given input
+ /// </summary>
+ /// <param name="input">input byte array which needs to be hashed</param>
+ /// <returns>Returns SHA256 hash in a string form</returns>
+ internal static string GetSHA256Hash(byte[] input) {
+ Debug.Assert(input != null);
+
+ using (SHA256 sha256 = SHA256Cng.Create()) {
+ byte[] hashValue = sha256.ComputeHash(input);
+ return GetHexString(hashValue);
+ }
+ }
+
+ /// <summary>
+ /// Generates cryptographicall random bytes
+ /// </summary>
+ /// <param name="length">No of cryptographically random bytes to be generated</param>
+ /// <returns>A byte array containing cryptographically generated random bytes</returns>
+ internal static void GenerateRandomBytes(byte[] randomBytes) {
+ // Generate random bytes cryptographically.
+ RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();
+ rngCsp.GetBytes(randomBytes);
+ }
+
+ /// <summary>
+ /// Compares two byte arrays and returns true if all bytes are equal
+ /// </summary>
+ /// <param name="buffer1">input buffer</param>
+ /// <param name="buffer2">another buffer to be compared against</param>
+ /// <returns>returns true if both the arrays have the same byte values else returns false</returns>
+ internal static bool CompareBytes(byte[] buffer1, byte[] buffer2, int buffer2Index, int lengthToCompare) {
+ if (null == buffer1 || null == buffer2) {
+ return false;
+ }
+
+ Debug.Assert (buffer2Index > -1 && buffer2Index < buffer2.Length, "invalid index");// bounds on buffer2Index
+ if ((buffer2.Length -buffer2Index) < lengthToCompare) {
+ return false;
+ }
+
+ for (int index = 0; index < buffer1.Length && index < lengthToCompare; ++index) {
+ if (buffer1[index] != buffer2[buffer2Index + index]) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /// <summary>
+ /// Gets hex representation of byte array.
+ /// <param name="input">input byte array</param>
+ /// </summary>
+ internal static string GetHexString(byte[] input) {
+ Debug.Assert(input != null);
+
+ StringBuilder str = new StringBuilder();
+ foreach (byte b in input) {
+ str.AppendFormat(b.ToString(@"X2"));
+ }
+
+ return str.ToString();
+ }
+
+ /// <summary>
+ /// Returns the caller's function name in the format of [ClassName].[FunctionName]
+ /// </summary>
+ internal static string GetCurrentFunctionName() {
+ StackTrace stackTrace = new StackTrace();
+ StackFrame stackFrame = stackTrace.GetFrame(1);
+ MethodBase methodBase = stackFrame.GetMethod();
+ return string.Format(@"{0}.{1}", methodBase.DeclaringType.Name, methodBase.Name);
+ }
+
+ /// <summary>
+ /// Return the algorithm name mapped to an Id.
+ /// </summary>
+ /// <param name="cipherAlgorithmId"></param>
+ /// <returns></returns>
+ private static string ValidateAndGetEncryptionAlgorithmName (byte cipherAlgorithmId, string cipherAlgorithmName) {
+ if (TdsEnums.CustomCipherAlgorithmId == cipherAlgorithmId) {
+ if (null == cipherAlgorithmName) {
+ throw SQL.NullColumnEncryptionAlgorithm(SqlClientEncryptionAlgorithmFactoryList.GetInstance().GetRegisteredCipherAlgorithmNames());
+ }
+
+ return cipherAlgorithmName;
+ }
+ else if (TdsEnums.AEAD_AES_256_CBC_HMAC_SHA256 == cipherAlgorithmId) {
+ return SqlAeadAes256CbcHmac256Algorithm.AlgorithmName;
+ }
+ else if (TdsEnums.AES_256_CBC == cipherAlgorithmId) {
+ return SqlAes256CbcAlgorithm.AlgorithmName;
+ }
+ else {
+ throw SQL.UnknownColumnEncryptionAlgorithmId(cipherAlgorithmId, GetRegisteredCipherAlgorithmIds());
+ }
+ }
+
+ /// <summary>
+ /// Retrieves a string with comma separated list of registered algorithm Ids (enclosed in quotes).
+ /// </summary>
+ private static string GetRegisteredCipherAlgorithmIds () {
+ return @"'1', '2'";
+ }
+
+ /// <summary>
+ /// Encrypts the plaintext.
+ /// </summary>
+ internal static byte[] EncryptWithKey (byte[] plainText, SqlCipherMetadata md, string serverName) {
+ Debug.Assert(serverName != null, @"serverName should not be null in EncryptWithKey.");
+
+ // Initialize cipherAlgo if not already done.
+ if (!md.IsAlgorithmInitialized()) {
+ SqlSecurityUtility.DecryptSymmetricKey(md, serverName);
+ }
+
+ Debug.Assert(md.IsAlgorithmInitialized(), "Encryption Algorithm is not initialized");
+ byte[] cipherText = md.CipherAlgorithm.EncryptData(plainText); // this call succeeds or throws.
+ if (null == cipherText || 0 == cipherText.Length) {
+ SQL.NullCipherText();
+ }
+
+ return cipherText;
+ }
+
+ /// <summary>
+ /// Gets a string with first/last 10 bytes in the buff (useful for exception handling).
+ /// </summary>
+ internal static string GetBytesAsString(byte[] buff, bool fLast, int countOfBytes) {
+ int count = (buff.Length > countOfBytes) ? countOfBytes : buff.Length;
+ int startIndex = 0;
+ if (fLast) {
+ startIndex = buff.Length - count;
+ Debug.Assert(startIndex >= 0);
+ }
+
+ return BitConverter.ToString(buff, startIndex, count);
+ }
+
+ /// <summary>
+ /// Decrypts the ciphertext.
+ /// </summary>
+ internal static byte[] DecryptWithKey(byte[] cipherText, SqlCipherMetadata md, string serverName) {
+ Debug.Assert(serverName != null, @"serverName should not be null in DecryptWithKey.");
+
+ // Initialize cipherAlgo if not already done.
+ if (!md.IsAlgorithmInitialized()) {
+ SqlSecurityUtility.DecryptSymmetricKey(md, serverName);
+ }
+
+ Debug.Assert(md.IsAlgorithmInitialized(), "Decryption Algorithm is not initialized");
+ try {
+ byte[] plainText = md.CipherAlgorithm.DecryptData(cipherText); // this call succeeds or throws.
+ if (null == plainText) {
+ throw SQL.NullPlainText ();
+ }
+
+ return plainText;
+ }
+ catch (Exception e) {
+ // compute the strings to pass
+ string keyStr = GetBytesAsString(md.EncryptionKeyInfo.Value.encryptedKey, fLast:true, countOfBytes:10);
+ string valStr = GetBytesAsString(cipherText, fLast:false, countOfBytes:10);
+ throw SQL.ThrowDecryptionFailed(keyStr, valStr, e);
+ }
+ }
+
+ /// <summary>
+ /// <para> Decrypts the symmetric key and saves it in metadata. In addition, intializes
+ /// the SqlClientEncryptionAlgorithm for rapid decryption.</para>
+ /// </summary>
+ internal static void DecryptSymmetricKey(SqlCipherMetadata md, string serverName) {
+ Debug.Assert(serverName != null, @"serverName should not be null in DecryptSymmetricKey.");
+ Debug.Assert(md != null, "md should not be null in DecryptSymmetricKey.");
+ Debug.Assert(md.EncryptionInfo.HasValue, "md.EncryptionInfo should not be null in DecryptSymmetricKey.");
+ Debug.Assert(md.EncryptionInfo.Value.ColumnEncryptionKeyValues != null, "md.EncryptionInfo.ColumnEncryptionKeyValues should not be null in DecryptSymmetricKey.");
+
+ SqlClientSymmetricKey symKey = null;
+ SqlEncryptionKeyInfo? encryptionkeyInfoChosen = null;
+ SqlSymmetricKeyCache cache = SqlSymmetricKeyCache.GetInstance();
+ Exception lastException = null;
+ foreach (SqlEncryptionKeyInfo keyInfo in md.EncryptionInfo.Value.ColumnEncryptionKeyValues) {
+ try {
+ if (cache.GetKey(keyInfo, serverName, out symKey)) {
+ encryptionkeyInfoChosen = keyInfo;
+ break;
+ }
+ } catch (Exception e) {
+ lastException = e;
+ }
+ }
+
+ if (null == symKey) {
+ Debug.Assert (null != lastException, "CEK decryption failed without raising exceptions");
+ throw lastException;
+ }
+
+ Debug.Assert(encryptionkeyInfoChosen.HasValue, "encryptionkeyInfoChosen must have a value.");
+
+ // Given the symmetric key instantiate a SqlClientEncryptionAlgorithm object and cache it in metadata
+ md.CipherAlgorithm = null;
+ SqlClientEncryptionAlgorithm cipherAlgorithm = null;
+ string algorithmName = ValidateAndGetEncryptionAlgorithmName(md.CipherAlgorithmId, md.CipherAlgorithmName); // may throw
+ SqlClientEncryptionAlgorithmFactoryList.GetInstance().GetAlgorithm(symKey, md.EncryptionType, algorithmName, out cipherAlgorithm); // will validate algorithm name and type
+ Debug.Assert(cipherAlgorithm != null);
+ md.CipherAlgorithm = cipherAlgorithm;
+ md.EncryptionKeyInfo = encryptionkeyInfoChosen;
+ return;
+ }
+
+ /// <summary>
+ /// Calculates the length of the Base64 string used to represent a byte[] with the specified length.
+ /// </summary>
+ /// <param name="byteLength"></param>
+ /// <returns></returns>
+ internal static int GetBase64LengthFromByteLength(int byteLength) {
+ Debug.Assert(byteLength <= UInt16.MaxValue, @"Encrypted column encryption key cannot be larger than 65536 bytes");
+
+ // Base64 encoding uses 1 character to encode 6 bits which means 4 characters for 3 bytes and pads to 4 byte multiples.
+ return (int)((double)byteLength * 4 / 3) + 4;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlSequentialTextReader.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlSequentialTextReader.cs
index d5e60712a24..8236a519bb1 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlSequentialTextReader.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlSequentialTextReader.cs
@@ -180,7 +180,7 @@ namespace System.Data.SqlClient
byteBufferUsed += bytesRead;
}
else {
- // We need more data - setup the callback, and mark this as not completed [....]
+ // We need more data - setup the callback, and mark this as not completed sync
completedSynchronously = false;
getBytesTask.ContinueWith((t) =>
{
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlStatistics.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlStatistics.cs
index be518346a2e..688fe4f3de0 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlStatistics.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlStatistics.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlStatistics.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlStream.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlStream.cs
index 6fa1900911e..e80bd516e01 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlStream.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlStream.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlStream.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
@@ -244,8 +244,8 @@ namespace System.Data.SqlClient {
}
internal XmlReader ToXmlReader() {
- // Dev11 Bug #315513: Exception type breaking change from 4.0 RTM when calling GetChars on null xml
- // We need to wrap all exceptions inside a TargetInvocationException to simulate calling CreateSqlReader via MethodInfo.Invoke
+ // Dev11
+
return SqlTypes.SqlXml.CreateSqlXmlReader(this, closeInput: true, throwTargetInvocationExceptions: true);
}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlSymmetricKeyCache.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlSymmetricKeyCache.cs
new file mode 100644
index 00000000000..fa371fb7222
--- /dev/null
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlSymmetricKeyCache.cs
@@ -0,0 +1,107 @@
+//------------------------------------------------------------------------------
+// <copyright file="SqlSymmetricKeyCache.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+// <owner current="true" primary="true">krishnib</owner>
+// <owner current="true" primary="false">balnee</owner>
+//------------------------------------------------------------------------------
+
+namespace System.Data.SqlClient {
+ using System;
+ using System.Collections.Generic;
+ using System.Collections.Concurrent;
+ using System.Diagnostics;
+ using System.Globalization;
+ using System.Linq;
+ using System.Text;
+
+ /// <summary>
+ /// <para> Implements a cache of Symmetric Keys (once they are decrypted).Useful for rapidly decrypting multiple data values.</para>
+ /// </summary>
+ sealed internal class SqlSymmetricKeyCache {
+ private readonly ConcurrentDictionary<string,SqlClientSymmetricKey> _cache;
+ private static readonly SqlSymmetricKeyCache _singletonInstance = new SqlSymmetricKeyCache();
+
+
+ private SqlSymmetricKeyCache () {
+ _cache = new ConcurrentDictionary<string, SqlClientSymmetricKey>(concurrencyLevel: 4 * Environment.ProcessorCount /* default value in ConcurrentDictionary*/, capacity: 2);
+ }
+
+ internal static SqlSymmetricKeyCache GetInstance () {
+ return _singletonInstance;
+ }
+
+ /// <summary>
+ /// <para> Retrieves Symmetric Key (in plaintext) given the encryption material.</para>
+ /// </summary>
+ internal bool GetKey (SqlEncryptionKeyInfo keyInfo, string serverName, out SqlClientSymmetricKey encryptionKey) {
+ Debug.Assert(serverName != null, @"serverName should not be null.");
+
+ StringBuilder cacheLookupKeyBuilder = new StringBuilder(serverName, capacity: serverName.Length + SqlSecurityUtility.GetBase64LengthFromByteLength(keyInfo.encryptedKey.Length) + keyInfo.keyStoreName.Length + 2/*separators*/);
+
+#if DEBUG
+ int capacity = cacheLookupKeyBuilder.Capacity;
+#endif //DEBUG
+
+ cacheLookupKeyBuilder.Append(":");
+ cacheLookupKeyBuilder.Append(Convert.ToBase64String(keyInfo.encryptedKey));
+ cacheLookupKeyBuilder.Append(":");
+ cacheLookupKeyBuilder.Append(keyInfo.keyStoreName);
+
+ string cacheLookupKey = cacheLookupKeyBuilder.ToString();
+
+#if DEBUG
+ Debug.Assert(cacheLookupKey.Length <= capacity, "We needed to allocate a larger array");
+#endif //DEBUG
+
+ encryptionKey = null;
+
+ // Lookup the key in cache
+ if (!_cache.TryGetValue(cacheLookupKey, out encryptionKey)) {
+ Debug.Assert(SqlConnection.ColumnEncryptionTrustedMasterKeyPaths != null, @"SqlConnection.ColumnEncryptionTrustedMasterKeyPaths should not be null");
+
+ // Check against the trusted key paths
+ //
+ // Get the List corresponding to the connected server
+ IList<string> trustedKeyPaths;
+ if (SqlConnection.ColumnEncryptionTrustedMasterKeyPaths.TryGetValue(serverName, out trustedKeyPaths)) {
+ // If the list is null or is empty or if the keyPath doesn't exist in the trusted key paths, then throw an exception.
+ if ((trustedKeyPaths == null) || (trustedKeyPaths.Count() == 0) ||
+ // (trustedKeyPaths.Where(s => s.Equals(keyInfo.keyPath, StringComparison.InvariantCultureIgnoreCase)).Count() == 0)) {
+ (trustedKeyPaths.Any(s => s.Equals(keyInfo.keyPath, StringComparison.InvariantCultureIgnoreCase)) == false)) {
+ // throw an exception since the key path is not in the trusted key paths list for this server
+ throw SQL.UntrustedKeyPath(keyInfo.keyPath, serverName);
+ }
+ }
+
+ // Key Not found, attempt to look up the provider and decrypt CEK
+ SqlColumnEncryptionKeyStoreProvider provider;
+ if (!SqlConnection.TryGetColumnEncryptionKeyStoreProvider(keyInfo.keyStoreName, out provider)) {
+ throw SQL.UnrecognizedKeyStoreProviderName(keyInfo.keyStoreName,
+ SqlConnection.GetColumnEncryptionSystemKeyStoreProviders(),
+ SqlConnection.GetColumnEncryptionCustomKeyStoreProviders());
+ }
+
+ // Decrypt the CEK
+ // We will simply bubble up the exception from the DecryptColumnEncryptionKey function.
+ byte[] plaintextKey;
+ try {
+ plaintextKey = provider.DecryptColumnEncryptionKey(keyInfo.keyPath, keyInfo.algorithmName, keyInfo.encryptedKey);
+ }
+ catch (Exception e) {
+ // Generate a new exception and throw.
+ string keyHex = SqlSecurityUtility.GetBytesAsString(keyInfo.encryptedKey, fLast:true, countOfBytes:10);
+ throw SQL.KeyDecryptionFailed (keyInfo.keyStoreName, keyHex, e);
+ }
+
+ encryptionKey = new SqlClientSymmetricKey (plaintextKey);
+
+ // In case multiple threads reach here at the same time, the first one wins.
+ // The allocated memory will be reclaimed by Garbage Collector.
+ _cache.TryAdd(cacheLookupKey, encryptionKey);
+ }
+
+ return true;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlTransaction.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlTransaction.cs
index ff02ce923a3..e7927edf1a4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlTransaction.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlTransaction.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlTransaction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlUdtInfo.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlUdtInfo.cs
index cfde73a6f2b..a97f766bfc5 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlUdtInfo.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlUdtInfo.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All Rights Reserved.
// Information Contained Herein is Proprietary and Confidential.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlUtil.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlUtil.cs
index 736fbb9af31..171855fc211 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlUtil.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/SqlUtil.cs
@@ -2,17 +2,19 @@
// <copyright file="SqlUtil.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
using System;
+ using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Diagnostics;
using System.Globalization;
+ using System.Linq;
using System.Reflection;
using System.Runtime.Serialization.Formatters;
using System.Security;
@@ -259,6 +261,24 @@ namespace System.Data.SqlClient {
static internal Exception UserInstanceFailoverNotCompatible() {
return ADP.Argument(Res.GetString(Res.SQL_UserInstanceFailoverNotCompatible));
}
+ static internal Exception CredentialsNotProvided(SqlAuthenticationMethod auth) {
+ return ADP.InvalidOperation(Res.GetString(Res.SQL_CredentialsNotProvided, DbConnectionStringBuilderUtil.AuthenticationTypeToString(auth)));
+ }
+ static internal Exception AuthenticationAndIntegratedSecurity() {
+ return ADP.Argument(Res.GetString(Res.SQL_AuthenticationAndIntegratedSecurity));
+ }
+ static internal Exception IntegratedWithUserIDAndPassword() {
+ return ADP.Argument(Res.GetString(Res.SQL_IntegratedWithUserIDAndPassword));
+ }
+ static internal Exception SettingIntegratedWithCredential() {
+ return ADP.InvalidOperation(Res.GetString(Res.SQL_SettingIntegratedWithCredential));
+ }
+ static internal Exception SettingCredentialWithIntegratedArgument() {
+ return ADP.Argument(Res.GetString(Res.SQL_SettingCredentialWithIntegrated));
+ }
+ static internal Exception SettingCredentialWithIntegratedInvalid() {
+ return ADP.InvalidOperation(Res.GetString(Res.SQL_SettingCredentialWithIntegrated));
+ }
static internal Exception InvalidSQLServerVersionUnknown() {
return ADP.DataAdapter(Res.GetString(Res.SQL_InvalidSQLServerVersionUnknown));
}
@@ -295,6 +315,9 @@ namespace System.Data.SqlClient {
static internal Exception InvalidPartnerConfiguration (string server, string database) {
return ADP.InvalidOperation(Res.GetString(Res.SQL_InvalidPartnerConfiguration, server, database));
}
+ static internal Exception BatchedUpdateColumnEncryptionSettingMismatch () {
+ return ADP.InvalidOperation(Res.GetString(Res.TCE_BatchedUpdateColumnEncryptionSettingMismatch, "SqlCommandColumnEncryptionSetting", "SelectCommand", "InsertCommand", "UpdateCommand", "DeleteCommand"));
+ }
static internal Exception MARSUnspportedOnConnection() {
return ADP.InvalidOperation(Res.GetString(Res.SQL_MarsUnsupportedOnConnection));
}
@@ -440,9 +463,34 @@ namespace System.Data.SqlClient {
static internal Exception InvalidTDSVersion() {
return ADP.InvalidOperation(Res.GetString(Res.SQL_InvalidTDSVersion));
}
- static internal Exception ParsingError() {
- return ADP.InvalidOperation(Res.GetString(Res.SQL_ParsingError));
+ static internal Exception ParsingError(ParsingErrorState state) {
+ return ADP.InvalidOperation(Res.GetString(Res.SQL_ParsingErrorWithState, ((int)state).ToString(CultureInfo.InvariantCulture)));
+ }
+ static internal Exception ParsingError(ParsingErrorState state, Exception innerException) {
+ return ADP.InvalidOperation(Res.GetString(Res.SQL_ParsingErrorWithState, ((int)state).ToString(CultureInfo.InvariantCulture)), innerException);
+ }
+ static internal Exception ParsingErrorValue(ParsingErrorState state, int value) {
+ return ADP.InvalidOperation(Res.GetString(Res.SQL_ParsingErrorValue, ((int)state).ToString(CultureInfo.InvariantCulture), value));
+ }
+ static internal Exception ParsingErrorOffset(ParsingErrorState state, int offset) {
+ return ADP.InvalidOperation(Res.GetString(Res.SQL_ParsingErrorOffset, ((int)state).ToString(CultureInfo.InvariantCulture), offset));
+ }
+ static internal Exception ParsingErrorFeatureId(ParsingErrorState state, int featureId) {
+ return ADP.InvalidOperation(Res.GetString(Res.SQL_ParsingErrorFeatureId, ((int)state).ToString(CultureInfo.InvariantCulture), featureId));
+ }
+ static internal Exception ParsingErrorToken(ParsingErrorState state, int token) {
+ return ADP.InvalidOperation(Res.GetString(Res.SQL_ParsingErrorToken, ((int)state).ToString(CultureInfo.InvariantCulture), token));
}
+ static internal Exception ParsingErrorLength(ParsingErrorState state, int length) {
+ return ADP.InvalidOperation(Res.GetString(Res.SQL_ParsingErrorLength, ((int)state).ToString(CultureInfo.InvariantCulture), length));
+ }
+ static internal Exception ParsingErrorStatus(ParsingErrorState state, int status) {
+ return ADP.InvalidOperation(Res.GetString(Res.SQL_ParsingErrorStatus, ((int)state).ToString(CultureInfo.InvariantCulture), status));
+ }
+ static internal Exception ParsingErrorLibraryType(ParsingErrorState state, int libraryType) {
+ return ADP.InvalidOperation(Res.GetString(Res.SQL_ParsingErrorAuthLibraryType, ((int)state).ToString(CultureInfo.InvariantCulture), libraryType));
+ }
+
static internal Exception MoneyOverflow(string moneyValue) {
return ADP.Overflow(Res.GetString(Res.SQL_MoneyOverflow, moneyValue));
}
@@ -475,6 +523,14 @@ namespace System.Data.SqlClient {
return ADP.InvalidCast(Res.GetString(Res.SQL_StreamNotSupportOnColumnType, columnName));
}
+ static internal Exception StreamNotSupportOnEncryptedColumn(string columnName) {
+ return ADP.InvalidOperation(Res.GetString(Res.TCE_StreamNotSupportOnEncryptedColumn, columnName, "Stream"));
+ }
+
+ static internal Exception SequentialAccessNotSupportedOnEncryptedColumn(string columnName) {
+ return ADP.InvalidOperation(Res.GetString(Res.TCE_SequentialAccessNotSupportedOnEncryptedColumn, columnName, "CommandBehavior=SequentialAccess"));
+ }
+
static internal Exception TextReaderNotSupportOnColumnType(string columnName) {
return ADP.InvalidCast(Res.GetString(Res.SQL_TextReaderNotSupportOnColumnType, columnName));
}
@@ -484,7 +540,7 @@ namespace System.Data.SqlClient {
}
static internal Exception UDTUnexpectedResult(string exceptionText){
- return ADP.TypeLoad(Res.GetString(Res.SQLUDT_Unexpected,exceptionText));
+ return ADP.TypeLoad(Res.GetString(Res.SQLUDT_Unexpected,exceptionText));
}
@@ -729,6 +785,325 @@ namespace System.Data.SqlClient {
}
//
+ // TCE - Certificate Store Provider Errors.
+ //
+ static internal Exception InvalidKeyEncryptionAlgorithm(string encryptionAlgorithm, string validEncryptionAlgorithm, bool isSystemOp) {
+ if (isSystemOp) {
+ return ADP.Argument(Res.GetString(Res.TCE_InvalidKeyEncryptionAlgorithmSysErr, encryptionAlgorithm, validEncryptionAlgorithm), TdsEnums.TCE_PARAM_ENCRYPTION_ALGORITHM);
+ }
+ else {
+ return ADP.Argument(Res.GetString(Res.TCE_InvalidKeyEncryptionAlgorithm, encryptionAlgorithm, validEncryptionAlgorithm), TdsEnums.TCE_PARAM_ENCRYPTION_ALGORITHM);
+ }
+ }
+
+ static internal Exception NullKeyEncryptionAlgorithm(bool isSystemOp) {
+ if (isSystemOp) {
+ return ADP.ArgumentNull (TdsEnums.TCE_PARAM_ENCRYPTION_ALGORITHM, Res.GetString(Res.TCE_NullKeyEncryptionAlgorithmSysErr));
+ }
+ else {
+ return ADP.ArgumentNull (TdsEnums.TCE_PARAM_ENCRYPTION_ALGORITHM, Res.GetString(Res.TCE_NullKeyEncryptionAlgorithm));
+ }
+ }
+
+ static internal Exception EmptyColumnEncryptionKey() {
+ return ADP.Argument(Res.GetString(Res.TCE_EmptyColumnEncryptionKey), TdsEnums.TCE_PARAM_COLUMNENCRYPTION_KEY);
+ }
+
+ static internal Exception NullColumnEncryptionKey() {
+ return ADP.ArgumentNull(TdsEnums.TCE_PARAM_COLUMNENCRYPTION_KEY, Res.GetString(Res.TCE_NullColumnEncryptionKey));
+ }
+
+ static internal Exception EmptyEncryptedColumnEncryptionKey() {
+ return ADP.Argument(Res.GetString(Res.TCE_EmptyEncryptedColumnEncryptionKey), TdsEnums.TCE_PARAM_ENCRYPTED_CEK);
+ }
+
+ static internal Exception NullEncryptedColumnEncryptionKey() {
+ return ADP.ArgumentNull(TdsEnums.TCE_PARAM_ENCRYPTED_CEK, Res.GetString(Res.TCE_NullEncryptedColumnEncryptionKey));
+ }
+
+ static internal Exception LargeCertificatePathLength(int actualLength, int maxLength, bool isSystemOp) {
+ if (isSystemOp) {
+ return ADP.Argument(Res.GetString(Res.TCE_LargeCertificatePathLengthSysErr, actualLength, maxLength), TdsEnums.TCE_PARAM_MASTERKEY_PATH);
+ }
+ else {
+ return ADP.Argument(Res.GetString(Res.TCE_LargeCertificatePathLength, actualLength, maxLength), TdsEnums.TCE_PARAM_MASTERKEY_PATH);
+ }
+ }
+
+ static internal Exception NullCertificatePath(string[] validLocations, bool isSystemOp) {
+ Debug.Assert(2 == validLocations.Length);
+ if (isSystemOp) {
+ return ADP.ArgumentNull(TdsEnums.TCE_PARAM_MASTERKEY_PATH, Res.GetString(Res.TCE_NullCertificatePathSysErr, validLocations[0], validLocations[1], @"/"));
+ }
+ else {
+ return ADP.ArgumentNull(TdsEnums.TCE_PARAM_MASTERKEY_PATH, Res.GetString(Res.TCE_NullCertificatePath, validLocations[0], validLocations[1], @"/"));
+ }
+ }
+
+ static internal Exception InvalidCertificatePath(string actualCertificatePath, string[] validLocations, bool isSystemOp) {
+ Debug.Assert(2 == validLocations.Length);
+ if (isSystemOp) {
+ return ADP.Argument(Res.GetString(Res.TCE_InvalidCertificatePathSysErr, actualCertificatePath, validLocations[0], validLocations[1], @"/"), TdsEnums.TCE_PARAM_MASTERKEY_PATH);
+ }
+ else {
+ return ADP.Argument(Res.GetString(Res.TCE_InvalidCertificatePath, actualCertificatePath, validLocations[0], validLocations[1], @"/"), TdsEnums.TCE_PARAM_MASTERKEY_PATH);
+ }
+ }
+
+ static internal Exception InvalidCertificateLocation(string certificateLocation, string certificatePath, string[] validLocations, bool isSystemOp) {
+ Debug.Assert(2 == validLocations.Length);
+ if (isSystemOp) {
+ return ADP.Argument(Res.GetString(Res.TCE_InvalidCertificateLocationSysErr, certificateLocation, certificatePath, validLocations[0], validLocations[1], @"/"), TdsEnums.TCE_PARAM_MASTERKEY_PATH);
+ }
+ else {
+ return ADP.Argument(Res.GetString(Res.TCE_InvalidCertificateLocation, certificateLocation, certificatePath, validLocations[0], validLocations[1], @"/"), TdsEnums.TCE_PARAM_MASTERKEY_PATH);
+ }
+ }
+
+ static internal Exception InvalidCertificateStore(string certificateStore, string certificatePath, string validCertificateStore, bool isSystemOp) {
+ if (isSystemOp) {
+ return ADP.Argument(Res.GetString(Res.TCE_InvalidCertificateStoreSysErr, certificateStore, certificatePath, validCertificateStore), TdsEnums.TCE_PARAM_MASTERKEY_PATH);
+ }
+ else {
+ return ADP.Argument(Res.GetString(Res.TCE_InvalidCertificateStore, certificateStore, certificatePath, validCertificateStore), TdsEnums.TCE_PARAM_MASTERKEY_PATH);
+ }
+ }
+
+ static internal Exception EmptyCertificateThumbprint(string certificatePath, bool isSystemOp) {
+ if (isSystemOp) {
+ return ADP.Argument(Res.GetString(Res.TCE_EmptyCertificateThumbprintSysErr, certificatePath), TdsEnums.TCE_PARAM_MASTERKEY_PATH);
+ }
+ else {
+ return ADP.Argument(Res.GetString(Res.TCE_EmptyCertificateThumbprint, certificatePath), TdsEnums.TCE_PARAM_MASTERKEY_PATH);
+ }
+ }
+
+ static internal Exception CertificateNotFound(string thumbprint, string certificateLocation, string certificateStore, bool isSystemOp) {
+ if (isSystemOp) {
+ return ADP.Argument(Res.GetString(Res.TCE_CertificateNotFoundSysErr, thumbprint, certificateLocation, certificateStore), TdsEnums.TCE_PARAM_MASTERKEY_PATH);
+ }
+ else {
+ return ADP.Argument(Res.GetString(Res.TCE_CertificateNotFound, thumbprint, certificateLocation, certificateStore), TdsEnums.TCE_PARAM_MASTERKEY_PATH);
+ }
+ }
+
+ static internal Exception InvalidAlgorithmVersionInEncryptedCEK(byte actual, byte expected) {
+ return ADP.Argument(Res.GetString(Res.TCE_InvalidAlgorithmVersionInEncryptedCEK, actual.ToString(@"X2"), expected.ToString(@"X2")), TdsEnums.TCE_PARAM_ENCRYPTED_CEK);
+ }
+
+ static internal Exception InvalidCiphertextLengthInEncryptedCEK(int actual, int expected, string certificateName) {
+ return ADP.Argument(Res.GetString(Res.TCE_InvalidCiphertextLengthInEncryptedCEK, actual, expected, certificateName), TdsEnums.TCE_PARAM_ENCRYPTED_CEK);
+ }
+
+ static internal Exception InvalidSignatureInEncryptedCEK(int actual, int expected, string masterKeyPath) {
+ return ADP.Argument(Res.GetString(Res.TCE_InvalidSignatureInEncryptedCEK, actual, expected, masterKeyPath), TdsEnums.TCE_PARAM_ENCRYPTED_CEK);
+ }
+
+ static internal Exception InvalidCertificateSignature(string certificatePath) {
+ return ADP.Argument(Res.GetString(Res.TCE_InvalidCertificateSignature, certificatePath), TdsEnums.TCE_PARAM_ENCRYPTED_CEK);
+ }
+
+ static internal Exception CertificateWithNoPrivateKey(string keyPath, bool isSystemOp) {
+ if (isSystemOp) {
+ return ADP.Argument(Res.GetString(Res.TCE_CertificateWithNoPrivateKeySysErr, keyPath), TdsEnums.TCE_PARAM_MASTERKEY_PATH);
+ }
+ else {
+ return ADP.Argument(Res.GetString(Res.TCE_CertificateWithNoPrivateKey, keyPath), TdsEnums.TCE_PARAM_MASTERKEY_PATH);
+ }
+ }
+
+ //
+ // TCE - Cryptographic Algorithms Error messages
+ //
+ static internal Exception NullColumnEncryptionKeySysErr() {
+ return ADP.ArgumentNull(TdsEnums.TCE_PARAM_ENCRYPTIONKEY,Res.GetString(Res.TCE_NullColumnEncryptionKeySysErr));
+ }
+
+ static internal Exception InvalidKeySize(string algorithmName, int actualKeylength, int expectedLength) {
+ return ADP.Argument(Res.GetString(
+ Res.TCE_InvalidKeySize,
+ algorithmName,
+ actualKeylength,
+ expectedLength), TdsEnums.TCE_PARAM_ENCRYPTIONKEY);
+ }
+
+ static internal Exception InvalidEncryptionType(string algorithmName, SqlClientEncryptionType encryptionType, params SqlClientEncryptionType[] validEncryptionTypes) {
+ const string valueSeparator = @", ";
+ return ADP.Argument(Res.GetString(
+ Res.TCE_InvalidEncryptionType,
+ algorithmName,
+ encryptionType.ToString(),
+ string.Join(valueSeparator, validEncryptionTypes.Select((validEncryptionType => @"'" + validEncryptionType + @"'")))), TdsEnums.TCE_PARAM_ENCRYPTIONTYPE);
+ }
+
+ static internal Exception NullPlainText () {
+ return ADP.ArgumentNull (Res.GetString(Res.TCE_NullPlainText));
+ }
+
+ static internal Exception VeryLargeCiphertext(long cipherTextLength, long maxCipherTextSize, long plainTextLength) {
+ return ADP.Argument(Res.GetString(Res.TCE_VeryLargeCiphertext, cipherTextLength, maxCipherTextSize, plainTextLength));
+ }
+
+ static internal Exception NullCipherText () {
+ return ADP.ArgumentNull (Res.GetString(Res.TCE_NullCipherText));
+ }
+
+ static internal Exception InvalidCipherTextSize(int actualSize, int minimumSize) {
+ return ADP.Argument(Res.GetString(Res.TCE_InvalidCipherTextSize, actualSize, minimumSize), TdsEnums.TCE_PARAM_CIPHERTEXT);
+ }
+
+ static internal Exception InvalidAlgorithmVersion(byte actual, byte expected) {
+ return ADP.Argument(Res.GetString(Res.TCE_InvalidAlgorithmVersion, actual.ToString(@"X2"), expected.ToString(@"X2")), TdsEnums.TCE_PARAM_CIPHERTEXT);
+ }
+
+ static internal Exception InvalidAuthenticationTag() {
+ return ADP.Argument(Res.GetString(Res.TCE_InvalidAuthenticationTag), TdsEnums.TCE_PARAM_CIPHERTEXT);
+ }
+
+ static internal Exception NullColumnEncryptionAlgorithm (string supportedAlgorithms) {
+ return ADP.ArgumentNull (TdsEnums.TCE_PARAM_ENCRYPTION_ALGORITHM, Res.GetString(Res.TCE_NullColumnEncryptionAlgorithm, supportedAlgorithms));
+ }
+
+ //
+ // TCE - Errors from sp_describe_parameter_encryption
+ //
+ static internal Exception UnexpectedDescribeParamFormat () {
+ return ADP.Argument (Res.GetString(Res.TCE_UnexpectedDescribeParamFormat, "sp_describe_parameter_encryption"));
+ }
+
+ static internal Exception InvalidEncryptionKeyOrdinal (int ordinal, int maxOrdinal) {
+ return ADP.InvalidOperation(Res.GetString(Res.TCE_InvalidEncryptionKeyOrdinal, "sp_describe_parameter_encryption", ordinal, maxOrdinal));
+ }
+
+ static internal Exception ParamEncryptionMetadataMissing (string paramName, string procedureName) {
+ return ADP.Argument (Res.GetString(Res.TCE_ParamEncryptionMetaDataMissing, "sp_describe_parameter_encryption", paramName, procedureName));
+ }
+
+ static internal Exception ParamInvalidForceColumnEncryptionSetting (string paramName, string procedureName) {
+ return ADP.InvalidOperation(Res.GetString(Res.TCE_ParamInvalidForceColumnEncryptionSetting, TdsEnums.TCE_PARAM_FORCE_COLUMN_ENCRYPTION, paramName, procedureName, "SqlParameter"));
+ }
+
+ static internal Exception ParamUnExpectedEncryptionMetadata (string paramName, string procedureName) {
+ return ADP.InvalidOperation(Res.GetString(Res.TCE_ParamUnExpectedEncryptionMetadata, paramName, procedureName, TdsEnums.TCE_PARAM_FORCE_COLUMN_ENCRYPTION, "SqlParameter"));
+ }
+
+ static internal Exception ProcEncryptionMetadataMissing (string procedureName) {
+ return ADP.Argument (Res.GetString(Res.TCE_ProcEncryptionMetaDataMissing, "sp_describe_parameter_encryption", procedureName));
+ }
+
+ //
+ // TCE- Generic toplevel failures.
+ //
+ static internal Exception GetExceptionArray (string serverName, string errorMessage, Exception e) {
+ // Create and throw an exception array
+ SqlErrorCollection sqlErs = new SqlErrorCollection();
+ Exception exceptionToInclude = (null != e.InnerException) ? e.InnerException : e;
+ sqlErs.Add (new SqlError(infoNumber:0, errorState:(byte)0x00, errorClass:(byte)TdsEnums.MIN_ERROR_CLASS, server:serverName, errorMessage:errorMessage, procedure:null, lineNumber:0));
+
+ if (e is SqlException) {
+ SqlException exThrown = (SqlException)e;
+ SqlErrorCollection errorList = exThrown.Errors;
+ for (int i =0; i < exThrown.Errors.Count; i++) {
+ sqlErs.Add(errorList[i]);
+ }
+ }
+ else {
+ sqlErs.Add (new SqlError(infoNumber:0, errorState:(byte)0x00, errorClass:(byte)TdsEnums.MIN_ERROR_CLASS, server:serverName, errorMessage:e.Message, procedure:null, lineNumber:0));
+ }
+
+ return SqlException.CreateException(sqlErs, "", null, exceptionToInclude);
+ }
+
+ static internal Exception ParamEncryptionFailed (string paramName, string serverName, Exception e){
+ return GetExceptionArray (serverName, Res.GetString(Res.TCE_ParamEncryptionFailed, paramName), e);
+ }
+
+ static internal Exception ParamDecryptionFailed (string paramName, string serverName, Exception e) {
+ return GetExceptionArray (serverName, Res.GetString(Res.TCE_ParamDecryptionFailed, paramName), e);
+ }
+
+ static internal Exception ColumnDecryptionFailed (string columnName, string serverName, Exception e) {
+ return GetExceptionArray (serverName, Res.GetString(Res.TCE_ColumnDecryptionFailed, columnName), e);
+ }
+
+ //
+ // TCE- Client side query processing errors.
+ //
+ static internal Exception UnknownColumnEncryptionAlgorithm (string algorithmName, string supportedAlgorithms) {
+ return ADP.Argument(Res.GetString(Res.TCE_UnknownColumnEncryptionAlgorithm, algorithmName, supportedAlgorithms));
+ }
+
+ static internal Exception UnknownColumnEncryptionAlgorithmId (int algoId, string supportAlgorithmIds) {
+ return ADP.Argument(Res.GetString(Res.TCE_UnknownColumnEncryptionAlgorithmId, algoId, supportAlgorithmIds), TdsEnums.TCE_PARAM_CIPHER_ALGORITHM_ID);
+ }
+
+ static internal Exception UnsupportedNormalizationVersion (byte version) {
+ return ADP.Argument(Res.GetString(Res.TCE_UnsupportedNormalizationVersion, version, "'1'", "SQL Server"));
+ }
+
+ static internal Exception UnrecognizedKeyStoreProviderName(string providerName, List<string> systemProviders, List<string> customProviders) {
+ const string valueSeparator = @", ";
+ string systemProviderStr = string.Join (valueSeparator, systemProviders.Select(provider => @"'" + provider + @"'"));
+ string customProviderStr = string.Join (valueSeparator, customProviders.Select(provider => @"'" + provider + @"'"));
+ return ADP.Argument(Res.GetString(Res.TCE_UnrecognizedKeyStoreProviderName, providerName, systemProviderStr, customProviderStr));
+ }
+
+ static internal Exception InvalidDataTypeForEncryptedParameter(string parameterName, int actualDataType, int expectedDataType) {
+ return ADP.Argument(Res.GetString(Res.TCE_NullProviderValue, parameterName, actualDataType, expectedDataType));
+ }
+
+ static internal Exception KeyDecryptionFailed (string providerName, string keyHex, Exception e) {
+ if (providerName.Equals(SqlColumnEncryptionCertificateStoreProvider.ProviderName)) {
+ return GetExceptionArray(null, Res.GetString(Res.TCE_KeyDecryptionFailedCertStore, providerName, keyHex), e);
+ }
+ else {
+ return GetExceptionArray(null, Res.GetString(Res.TCE_KeyDecryptionFailed, providerName, keyHex), e);
+ }
+ }
+
+ static internal Exception UntrustedKeyPath(string keyPath, string serverName) {
+ return ADP.Argument(Res.GetString(Res.TCE_UntrustedKeyPath, keyPath, serverName));
+ }
+
+ static internal Exception UnsupportedDatatypeEncryption (string dataType) {
+ return ADP.Argument(Res.GetString(Res.TCE_UnsupportedDatatype, dataType));
+ }
+
+ static internal Exception ThrowDecryptionFailed (string keyStr, string valStr, Exception e) {
+ return GetExceptionArray (null, Res.GetString(Res.TCE_DecryptionFailed, keyStr, valStr), e);
+ }
+
+ //
+ // TCE- SQL connection related error messages
+ //
+ static internal Exception TceNotSupported() {
+ return ADP.InvalidOperation (Res.GetString (Res.TCE_NotSupportedByServer, "SQL Server"));
+ }
+
+ //
+ // TCE- Extensibility related error messages
+ //
+ static internal Exception CanOnlyCallOnce() {
+ return ADP.InvalidOperation(Res.GetString(Res.TCE_CanOnlyCallOnce));
+ }
+
+ static internal Exception NullCustomKeyStoreProviderDictionary() {
+ return ADP.ArgumentNull(TdsEnums.TCE_PARAM_CLIENT_KEYSTORE_PROVIDERS, Res.GetString(Res.TCE_NullCustomKeyStoreProviderDictionary));
+ }
+
+ static internal Exception InvalidCustomKeyStoreProviderName(string providerName, string prefix) {
+ return ADP.Argument(Res.GetString(Res.TCE_InvalidCustomKeyStoreProviderName, providerName, prefix), TdsEnums.TCE_PARAM_CLIENT_KEYSTORE_PROVIDERS);
+ }
+
+ static internal Exception NullProviderValue(string providerName) {
+ return ADP.ArgumentNull(TdsEnums.TCE_PARAM_CLIENT_KEYSTORE_PROVIDERS, Res.GetString(Res.TCE_NullProviderValue, providerName));
+ }
+
+ static internal Exception EmptyProviderName() {
+ return ADP.ArgumentNull(TdsEnums.TCE_PARAM_CLIENT_KEYSTORE_PROVIDERS, Res.GetString(Res.TCE_EmptyProviderName));
+ }
+
+ //
// transactions.
//
static internal Exception ConnectionDoomed() {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsEnums.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsEnums.cs
index 6cdc17706dc..7f9efe37d1d 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsEnums.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsEnums.cs
@@ -2,8 +2,8 @@
// <copyright file="TdsEnums.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
@@ -57,6 +57,7 @@ namespace System.Data.SqlClient {
// network function string contants
public const string INIT_SSPI_PACKAGE = "InitSSPIPackage";
+ public const string INIT_ADAL_PACKAGE = "InitADALPackage";
public const string INIT_SESSION = "InitSession";
public const string CONNECTION_GET_SVR_USER = "ConnectionGetSvrUser";
public const string GEN_CLIENT_CONTEXT = "GenClientContext";
@@ -104,7 +105,7 @@ namespace System.Data.SqlClient {
public const byte MT_BINARY = 5; // Unformatted binary response data (UNUSED)
public const byte MT_ATTN = 6; // Attention (break) signal
public const byte MT_BULK = 7; // Bulk load data
- public const byte MT_OPEN = 8; // Set up subchannel (UNUSED)
+ public const byte MT_FEDAUTH = 8; // Authentication token for federated authentication
public const byte MT_CLOSE = 9; // Close subchannel (UNUSED)
public const byte MT_ERROR = 10; // Protocol error detected
public const byte MT_ACK = 11; // Protocol acknowledgement (UNUSED)
@@ -156,6 +157,7 @@ namespace System.Data.SqlClient {
public const byte SQLCOLMETADATA = 0x81; // Column metadata including name
public const byte SQLALTMETADATA = 0x88; // Alt column metadata including name
public const byte SQLSSPI = 0xed; // SSPI data
+ public const byte SQLFEDAUTHINFO = 0xee; // Info for client to generate fed auth token
// Environment change notification streams
// TYPE on TDS ENVCHANGE token stream (from sql\ntdbms\include\odsapi.h)
@@ -196,13 +198,39 @@ namespace System.Data.SqlClient {
// Feature Extension
public const byte FEATUREEXT_TERMINATOR = 0xFF;
public const byte FEATUREEXT_SRECOVERY = 0x01;
+ public const byte FEATUREEXT_FEDAUTH = 0x02;
+ public const byte FEATUREEXT_TCE = 0x04;
[Flags]
public enum FeatureExtension:uint {
None=0,
SessionRecovery=1,
+ FedAuth=2,
+ Tce=4,
}
+ public const byte FEDAUTHLIB_LIVEID = 0X00;
+ public const byte FEDAUTHLIB_SECURITYTOKEN = 0x01;
+ public const byte FEDAUTHLIB_ADAL = 0x02;
+ public const byte FEDAUTHLIB_RESERVED = 0X7F;
+
+ public enum FedAuthLibrary:byte {
+ LiveId=FEDAUTHLIB_LIVEID,
+ SecurityToken=FEDAUTHLIB_SECURITYTOKEN,
+ ADAL=FEDAUTHLIB_ADAL,
+ Default=FEDAUTHLIB_RESERVED
+ }
+
+ public const byte ADALWORKFLOW_ACTIVEDIRECTORYPASSWORD = 0x01;
+ public const byte ADALWORKFLOW_ACTIVEDIRECTORYINTEGRATED = 0x02;
+
+ public enum ActiveDirectoryWorkflow : byte {
+ Password=ADALWORKFLOW_ACTIVEDIRECTORYPASSWORD,
+ Integrated=ADALWORKFLOW_ACTIVEDIRECTORYINTEGRATED,
+ }
+
+ // The string used for username in the error message when Authentication = Active Directory Integrated with FedAuth is used, if authentication fails.
+ public const string NTAUTHORITYANONYMOUSLOGON = @"NT Authority\Anonymous Logon";
// Loginrec defines
public const byte MAX_LOG_NAME = 30; // TDS 4.2 login rec max name length
@@ -313,6 +341,7 @@ namespace System.Data.SqlClient {
// second byte
public const byte ClrFixedLen = 0x1; // Fixed length CLR type
public const byte IsColumnSet = 0x4; // Column is an XML representation of an aggregation of other columns
+ public const byte IsEncrypted = 0x8; // Column is encrypted using TCE
// null values
public const uint VARLONGNULL = 0xffffffff; // null value for text and image types
@@ -478,7 +507,7 @@ namespace System.Data.SqlClient {
// RPC parameter class
public const byte RPC_PARAM_BYREF = 0x1;
public const byte RPC_PARAM_DEFAULT = 0x2;
- public const byte RPC_PARAM_IS_LOB_COOKIE = 0x8;
+ public const byte RPC_PARAM_ENCRYPTED = 0x8;
// SQL parameter list text
public const string PARAM_OUTPUT = "output";
@@ -511,7 +540,7 @@ namespace System.Data.SqlClient {
public const int LOGON_FAILED = 18456;
public const int PASSWORD_EXPIRED = 18488;
public const int IMPERSONATION_FAILED = 1346;
- public const int P_TOKENTOOLONG = 103;
+ public const int P_TOKENTOOLONG = 103;
// SNI\Win32 error values
// NOTE: these are simply windows system error codes, not SNI specific
@@ -862,10 +891,66 @@ namespace System.Data.SqlClient {
1,
};
+ internal const int MAX_TIME_SCALE = 7; // Maximum scale for time-related types
+ internal const int MAX_TIME_LENGTH = 5; // Maximum length for time
+ internal const int MAX_DATETIME2_LENGTH = 8; // Maximum length for datetime2
internal const int WHIDBEY_DATE_LENGTH = 10;
internal static readonly int[] WHIDBEY_TIME_LENGTH = { 8, 10, 11, 12, 13, 14, 15, 16 };
internal static readonly int[] WHIDBEY_DATETIME2_LENGTH = { 19, 21, 22, 23, 24, 25, 26, 27 };
internal static readonly int[] WHIDBEY_DATETIMEOFFSET_LENGTH = {26, 28, 29, 30, 31, 32, 33, 34 };
+
+ internal enum FedAuthInfoId:byte {
+ Stsurl = 0x01, // FedAuthInfoData is token endpoint URL from which to acquire fed auth token
+ Spn = 0x02, // FedAuthInfoData is the SPN to use for acquiring fed auth token
+ }
+
+ // TCE Related constants
+ internal const byte MAX_SUPPORTED_TCE_VERSION = 0x01; // max version
+ internal const ushort MAX_TCE_CIPHERINFO_SIZE = 2048; // max size of cipherinfo blob
+ internal const long MAX_TCE_CIPHERTEXT_SIZE = 2147483648; // max size of encrypted blob- currently 2GB.
+ internal const byte CustomCipherAlgorithmId = 0; // Id used for custom encryption algorithm.
+
+ internal const int AES_256_CBC = 1;
+ internal const int AEAD_AES_256_CBC_HMAC_SHA256 = 2;
+
+ // TCE Param names for exec handling
+ internal const string TCE_PARAM_CIPHERTEXT = "cipherText";
+ internal const string TCE_PARAM_CIPHER_ALGORITHM_ID="cipherAlgorithmId";
+ internal const string TCE_PARAM_COLUMNENCRYPTION_KEY="columnEncryptionKey";
+ internal const string TCE_PARAM_ENCRYPTION_ALGORITHM="encryptionAlgorithm";
+ internal const string TCE_PARAM_ENCRYPTIONTYPE = "encryptionType";
+ internal const string TCE_PARAM_ENCRYPTIONKEY = "encryptionKey";
+ internal const string TCE_PARAM_MASTERKEY_PATH = "masterKeyPath";
+ internal const string TCE_PARAM_ENCRYPTED_CEK = "encryptedColumnEncryptionKey";
+ internal const string TCE_PARAM_CLIENT_KEYSTORE_PROVIDERS="clientKeyStoreProviders";
+ internal const string TCE_PARAM_FORCE_COLUMN_ENCRYPTION="ForceColumnEncryption(true)";
+ }
+
+ internal enum ParsingErrorState {
+ Undefined = 0,
+ FedAuthInfoLengthTooShortForCountOfInfoIds = 1,
+ FedAuthInfoLengthTooShortForData = 2,
+ FedAuthInfoFailedToReadCountOfInfoIds = 3,
+ FedAuthInfoFailedToReadTokenStream = 4,
+ FedAuthInfoInvalidOffset = 5,
+ FedAuthInfoFailedToReadData = 6,
+ FedAuthInfoDataNotUnicode = 7,
+ FedAuthInfoDoesNotContainStsurlAndSpn = 8,
+ FedAuthInfoNotReceived = 9,
+ FedAuthNotAcknowledged = 10,
+ FedAuthFeatureAckContainsExtraData = 11,
+ FedAuthFeatureAckUnknownLibraryType = 12,
+ UnrequestedFeatureAckReceived = 13,
+ UnknownFeatureAck = 14,
+ InvalidTdsTokenReceived = 15,
+ SessionStateLengthTooShort = 16,
+ SessionStateInvalidStatus = 17,
+ CorruptedTdsStream = 18,
+ ProcessSniPacketFailed = 19,
+ FedAuthRequiredPreLoginResponseInvalidValue = 20,
+ TceUnknownVersion = 21,
+ TceInvalidVersion = 22,
+ TceInvalidOrdinalIntoCipherInfoTable = 23,
}
internal enum SniContext {
@@ -884,5 +969,89 @@ namespace System.Data.SqlClient {
Snix_Close,
Snix_SendRows,
}
-}
+ /// <summary>
+ /// Column Encryption Setting to be used for the SqlConnection.
+ /// </summary>
+ public enum SqlConnectionColumnEncryptionSetting {
+ /// <summary>
+ /// Disables column encryption by default on all commands on this connection.
+ /// </summary>
+ Disabled = 0,
+
+ /// <summary>
+ /// Enables column encryption by default on all commands on this connection.
+ /// </summary>
+ Enabled,
+ }
+
+ /// <summary>
+ /// Column Encryption Setting to be used for the SqlCommand.
+ /// </summary>
+ public enum SqlCommandColumnEncryptionSetting {
+ /// <summary>
+ /// if “Column Encryption Setting=Enabled” in the connection string, use Enabled. Otherwise, maps to Disabled.
+ /// </summary>
+ UseConnectionSetting = 0,
+
+ /// <summary>
+ /// Enables TCE for the command. Overrides the connection level setting for this command.
+ /// </summary>
+ Enabled,
+
+ /// <summary>
+ /// Parameters will not be encrypted, only the ResultSet will be decrypted. This is an optimization for queries that do not pass any encrypted input parameters.
+ /// Overrides the connection level setting for this command.
+ /// </summary>
+ ResultSetOnly,
+
+ /// <summary>
+ /// Disables TCE for the command.Overrides the connection level setting for this command.
+ /// </summary>
+ Disabled,
+ }
+
+ public enum SqlAuthenticationMethod {
+ NotSpecified = 0,
+ SqlPassword,
+ ActiveDirectoryPassword,
+ ActiveDirectoryIntegrated,
+ }
+
+ internal class ActiveDirectoryAuthentication
+ {
+ internal const string AdoClientId = "4d079b4c-cab7-4b7c-a115-8fd51b6f8239";
+ internal const string AdalGetAccessTokenFunctionName = "ADALGetAccessToken";
+ internal const int GetAccessTokenSuccess = 0;
+ internal const int GetAccessTokenInvalidGrant = 1;
+ internal const int GetAccessTokenTansisentError = 2;
+ internal const int GetAccessTokenOtherError = 3;
+ }
+
+ // Fields in the first resultset of "sp_describe_parameter_encryption".
+ // We expect the server to return the fields in the resultset in the same order as mentioned below.
+ // If the server changes the below order, then transparent parameter encryption will break.
+ internal enum DescribeParameterEncryptionResultSet1 {
+ KeyOrdinal = 0,
+ DbId,
+ KeyId,
+ KeyVersion,
+ KeyMdVersion,
+ EncryptedKey,
+ ProviderName,
+ KeyPath,
+ KeyEncryptionAlgorithm,
+ }
+
+ // Fields in the second resultset of "sp_describe_parameter_encryption"
+ // We expect the server to return the fields in the resultset in the same order as mentioned below.
+ // If the server changes the below order, then transparent parameter encryption will break.
+ internal enum DescribeParameterEncryptionResultSet2 {
+ ParameterOrdinal = 0,
+ ParameterName,
+ ColumnEncryptionAlgorithm,
+ ColumnEncrytionType,
+ ColumnEncryptionKeyOrdinal,
+ NormalizationRuleVersion,
+ }
+}
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParameterSetter.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParameterSetter.cs
index 56a661fe1ae..18da7f15354 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParameterSetter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParameterSetter.cs
@@ -2,9 +2,9 @@
// <copyright file="TdsParameterSetter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParser.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParser.cs
index a0d429ddb1b..74ddcf726a6 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParser.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParser.cs
@@ -2,8 +2,8 @@
// <copyright file="TdsParser.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
@@ -211,6 +211,9 @@ namespace System.Data.SqlClient {
private volatile static UInt32 s_maxSSPILength = 0; // variable to hold max SSPI data size, keep for token from server
+ // ADAL variables
+ private static bool s_fADALLoaded = false; // bool to indicate whether ADAL library has been loaded
+
// textptr sequence
private static readonly byte[] s_longDataHeader = { 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
@@ -228,6 +231,22 @@ namespace System.Data.SqlClient {
// NOTE: You must take the internal connection's _parserLock before modifying this
internal bool _asyncWrite = false;
+ // TCE supported flag, used to determine if new TDS fields are present. This is
+ // useful when talking to downlevel/uplevel server.
+ private bool _serverSupportsColumnEncryption = false;
+
+ /// <summary>
+ /// Get or set if column encryption is supported by the server.
+ /// </summary>
+ internal bool IsColumnEncryptionSupported {
+ get {
+ return _serverSupportsColumnEncryption;
+ }
+ set {
+ _serverSupportsColumnEncryption = value;
+ }
+ }
+
internal TdsParser(bool MARS, bool fAsynchronous) {
_fMARS = MARS; // may change during Connect to pre Yukon servers
_physicalStateObj = new TdsParserStateObject(this);
@@ -358,7 +377,15 @@ namespace System.Data.SqlClient {
}
}
- internal void Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, bool ignoreSniOpenTimeout, long timerExpire, bool encrypt, bool trustServerCert, bool integratedSecurity, bool withFailover) {
+ internal void Connect(ServerInfo serverInfo,
+ SqlInternalConnectionTds connHandler,
+ bool ignoreSniOpenTimeout,
+ long timerExpire,
+ bool encrypt,
+ bool trustServerCert,
+ bool integratedSecurity,
+ bool withFailover,
+ SqlAuthenticationMethod authType) {
if (_state != TdsParserState.Closed) {
Debug.Assert(false, "TdsParser.Connect called on non-closed connection!");
return;
@@ -379,16 +406,23 @@ namespace System.Data.SqlClient {
if (connHandler.ConnectionOptions.LocalDBInstance != null)
LocalDBAPI.CreateLocalDBInstance(connHandler.ConnectionOptions.LocalDBInstance);
-
- if (integratedSecurity) {
+ if (integratedSecurity || authType == SqlAuthenticationMethod.ActiveDirectoryIntegrated) {
LoadSSPILibrary();
// now allocate proper length of buffer
_sniSpnBuffer = new byte[SNINativeMethodWrapper.SniMaxComposedSpnLength];
- Bid.Trace("<sc.TdsParser.Connect|SEC> SSPI authentication\n");
+ Bid.Trace("<sc.TdsParser.Connect|SEC> SSPI or Active Directory Authentication Library for SQL Server based integrated authentication\n");
}
else {
_sniSpnBuffer = null;
- Bid.Trace("<sc.TdsParser.Connect|SEC> SQL authentication\n");
+ if (authType == SqlAuthenticationMethod.ActiveDirectoryPassword) {
+ Bid.Trace("<sc.TdsParser.Connect|SEC> Active Directory Password authentication\n");
+ }
+ else if (authType == SqlAuthenticationMethod.SqlPassword) {
+ Bid.Trace("<sc.TdsParser.Connect|SEC> SQL Password authentication\n");
+ }
+ else{
+ Bid.Trace("<sc.TdsParser.Connect|SEC> SQL authentication\n");
+ }
}
byte[] instanceName = null;
@@ -439,6 +473,7 @@ namespace System.Data.SqlClient {
Debug.Assert(result == TdsEnums.SNI_SUCCESS, "Unexpected failure state upon calling SniGetConnectionId");
//
+ Bid.Trace("<sc.TdsParser.Connect|SEC> Sending prelogin handshake\n");
SendPreLoginHandshake(instanceName, encrypt);
_connHandler.TimeoutErrorInternal.EndPhase(SqlConnectionTimeoutErrorPhase.SendPreLoginHandshake);
@@ -446,9 +481,12 @@ namespace System.Data.SqlClient {
_physicalStateObj.SniContext = SniContext.Snix_PreLogin;
- PreLoginHandshakeStatus status = ConsumePreLoginHandshake(encrypt, trustServerCert, integratedSecurity, out marsCapable);
+ Bid.Trace("<sc.TdsParser.Connect|SEC> Consuming prelogin handshake\n");
+ PreLoginHandshakeStatus status = ConsumePreLoginHandshake(authType, encrypt, trustServerCert, integratedSecurity, out marsCapable,
+ out _connHandler._fedAuthRequired);
if (status == PreLoginHandshakeStatus.InstanceFailure) {
+ Bid.Trace("<sc.TdsParser.Connect|SEC> Prelogin handshake unsuccessful. Reattempting prelogin handshake\n");
_physicalStateObj.Dispose(); // Close previous connection
// On Instance failure re-connect and flush SNI named instance cache.
@@ -464,16 +502,19 @@ namespace System.Data.SqlClient {
UInt32 retCode = SNINativeMethodWrapper.SniGetConnectionId(_physicalStateObj.Handle, ref _connHandler._clientConnectionId);
Debug.Assert(retCode == TdsEnums.SNI_SUCCESS, "Unexpected failure state upon calling SniGetConnectionId");
+ Bid.Trace("<sc.TdsParser.Connect|SEC> Sending prelogin handshake\n");
SendPreLoginHandshake(instanceName, encrypt);
- status = ConsumePreLoginHandshake(encrypt, trustServerCert, integratedSecurity, out marsCapable);
+ status = ConsumePreLoginHandshake(authType, encrypt, trustServerCert, integratedSecurity, out marsCapable,
+ out _connHandler._fedAuthRequired);
// Don't need to check for Sphinx failure, since we've already consumed
// one pre-login packet and know we are connecting to Shiloh.
if (status == PreLoginHandshakeStatus.InstanceFailure) {
- Bid.Trace("<sc.TdsParser.Connect|ERR|SEC> Login failure\n");
+ Bid.Trace("<sc.TdsParser.Connect|ERR|SEC> Prelogin handshake unsuccessful. Login failure\n");
throw SQL.InstanceFailure();
}
}
+ Bid.Trace("<sc.TdsParser.Connect|SEC> Prelogin handshake successful\n");
if (_fMARS && marsCapable) {
// if user explictly disables mars or mars not supported, don't create the session pool
@@ -482,6 +523,16 @@ namespace System.Data.SqlClient {
else {
_fMARS = false;
}
+
+ if (authType == SqlAuthenticationMethod.ActiveDirectoryPassword || (authType == SqlAuthenticationMethod.ActiveDirectoryIntegrated && _connHandler._fedAuthRequired)) {
+ Debug.Assert(!integratedSecurity, "The legacy Integrated Security connection string option cannot be true when using Active Directory Authentication Library for SQL Server Based workflows.");
+
+ LoadADALLibrary();
+ if (Bid.AdvancedOn) {
+ Bid.Trace("<sc.TdsParser.Connect|SEC> Active directory authentication.Loaded Active Directory Authentication Library for SQL Server\n");
+ }
+ }
+
return;
}
@@ -496,7 +547,7 @@ namespace System.Data.SqlClient {
_physicalStateObj.AddError(ProcessSNIError(_physicalStateObj));
ThrowExceptionAndWarning(_physicalStateObj);
}
- // create a new packet encryption changes the internal packet size Bug# 228403
+ // create a new packet encryption changes the internal packet size
try {} // EmptyTry/Finally to avoid FXCop violation
finally {
_physicalStateObj.ClearAllWritePackets();
@@ -756,6 +807,12 @@ namespace System.Data.SqlClient {
Bid.Trace("<sc.TdsParser.SendPreLoginHandshake|INFO> ClientConnectionID %ls, ActivityID %ls\n", _connHandler._clientConnectionId.ToString(), actId.ToString());
break;
+ case (int)PreLoginOptions.FEDAUTHREQUIRED:
+ payload[payloadLength++] = 0x01;
+ offset += 1;
+ optionDataSize += 1;
+ break;
+
default:
Debug.Assert(false, "UNKNOWN option in SendPreLoginHandshake");
break;
@@ -776,8 +833,11 @@ namespace System.Data.SqlClient {
_physicalStateObj.WritePacket(TdsEnums.HARDFLUSH);
}
- private PreLoginHandshakeStatus ConsumePreLoginHandshake(bool encrypt, bool trustServerCert, bool integratedSecurity, out bool marsCapable) {
- marsCapable = _fMARS; // Assign default value
+ private PreLoginHandshakeStatus ConsumePreLoginHandshake(SqlAuthenticationMethod authType, bool encrypt, bool trustServerCert, bool integratedSecurity, out bool marsCapable, out bool fedAuthRequired) {
+
+ // Assign default values
+ marsCapable = _fMARS;
+ fedAuthRequired = false;
bool isYukonOrLater = false;
@@ -883,7 +943,13 @@ namespace System.Data.SqlClient {
if (_encryptionOption == EncryptionOptions.ON ||
_encryptionOption == EncryptionOptions.LOGIN) {
UInt32 error = 0;
- UInt32 info = ((encrypt && !trustServerCert) ? TdsEnums.SNI_SSL_VALIDATE_CERTIFICATE : 0)
+
+ // If we're using legacy server certificate validation behavior (Authentication keyword not provided and not using access token), then validate if
+ // Encrypt=true and Trust Sever Certificate = false.
+ // If using Authentication keyword or access token, validate if Trust Server Certificate=false.
+ bool shouldValidateServerCert = (encrypt && !trustServerCert) || ((authType != SqlAuthenticationMethod.NotSpecified || _connHandler._accessTokenInBytes != null) && !trustServerCert);
+
+ UInt32 info = (shouldValidateServerCert ? TdsEnums.SNI_SSL_VALIDATE_CERTIFICATE : 0)
| (isYukonOrLater ? TdsEnums.SNI_SSL_USE_SCHANNEL_CACHE : 0);
if (encrypt && !integratedSecurity) {
@@ -911,7 +977,7 @@ namespace System.Data.SqlClient {
ThrowExceptionAndWarning(_physicalStateObj);
}
- // create a new packet encryption changes the internal packet size Bug# 228403
+ // create a new packet encryption changes the internal packet size
try {} // EmptyTry/Finally to avoid FXCop violation
finally {
_physicalStateObj.ClearAllWritePackets();
@@ -955,6 +1021,27 @@ namespace System.Data.SqlClient {
offset += 4;
break;
+ case (int)PreLoginOptions.FEDAUTHREQUIRED:
+ payloadOffset = payload[offset++] << 8 | payload[offset++];
+ payloadLength = payload[offset++] << 8 | payload[offset++];
+
+ // Only 0x00 and 0x01 are accepted values from the server.
+ if (payload[payloadOffset] != 0x00 && payload[payloadOffset] != 0x01) {
+ Bid.Trace("<sc.TdsParser.ConsumePreLoginHandshake|ERR> %d#, Server sent an unexpected value for FedAuthRequired PreLogin Option. Value was %d.\n", ObjectID, (int)payload[payloadOffset]);
+ throw SQL.ParsingErrorValue(ParsingErrorState.FedAuthRequiredPreLoginResponseInvalidValue, (int)payload[payloadOffset]);
+ }
+
+ // We must NOT use the response for the FEDAUTHREQUIRED PreLogin option, if the connection string option
+ // was not using the new Authentication keyword or in other words, if Authentication=NotSpecified
+ // Or AccessToken is not null, mean token based authentication is used.
+ if ((_connHandler.ConnectionOptions != null
+ && _connHandler.ConnectionOptions.Authentication != SqlAuthenticationMethod.NotSpecified)
+ || _connHandler._accessTokenInBytes != null)
+ {
+ fedAuthRequired = payload[payloadOffset] == 0x01 ? true : false;
+ }
+ break;
+
default:
Debug.Assert(false, "UNKNOWN option in ConsumePreLoginHandshake, option:" + option);
@@ -1127,10 +1214,10 @@ namespace System.Data.SqlClient {
breakConnection &= (TdsParserState.Closed != _state);
if (breakConnection) {
if ((_state == TdsParserState.OpenNotLoggedIn) && (_connHandler.ConnectionOptions.MultiSubnetFailover || _loginWithFailover) && (temp.Count == 1) && ((temp[0].Number == TdsEnums.TIMEOUT_EXPIRED) || (temp[0].Number == TdsEnums.SNI_WAIT_TIMEOUT))) {
- // DevDiv2 Bug 459546: With "MultiSubnetFailover=yes" in the Connection String, SQLClient incorrectly throws a Timeout using shorter time slice (3-4 seconds), not honoring the actual 'Connect Timeout'
- // http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/459546
- // For Multisubnet Failover we slice the timeout to make reconnecting faster (with the assumption that the server will not failover instantaneously)
- // However, when timeout occurs we need to not doom the internal connection and also to mark the TdsParser as closed such that the login will be will retried
+ // DevDiv2
+
+
+
breakConnection = false;
Disconnect();
}
@@ -1147,6 +1234,9 @@ namespace System.Data.SqlClient {
serverVersion = _connHandler.ServerVersion;
}
exception = SqlException.CreateException(temp, serverVersion, _connHandler);
+ if (exception.Procedure == TdsEnums.INIT_ADAL_PACKAGE || exception.Procedure == TdsEnums.INIT_SSPI_PACKAGE) {
+ exception._doNotReconnect = true;
+ }
}
// call OnError outside of _ErrorCollectionLock to avoid deadlock
@@ -1274,10 +1364,10 @@ namespace System.Data.SqlClient {
len-=iColon;
/*
The error message should come back in the following format: "TCP Provider: MESSAGE TEXT"
- Fix Bug 370686, if the message is recieved on a Win9x OS, the error message will not contain MESSAGE TEXT
- per Bug: 269574. If we get a errormessage with no message text, just return the entire message otherwise
- return just the message text.
- */
+ Fix
+
+
+*/
if (len > 0) {
errorMessage = errorMessage.Substring(iColon, len);
}
@@ -1385,6 +1475,21 @@ namespace System.Data.SqlClient {
//
// Takes a 16 bit short and writes it.
//
+ internal byte[] SerializeShort(int v, TdsParserStateObject stateObj) {
+ if (null == stateObj._bShortBytes) {
+ stateObj._bShortBytes = new byte[2];
+ }
+ else {
+ Debug.Assert(2 == stateObj._bShortBytes.Length);
+ }
+
+ byte[] bytes = stateObj._bShortBytes;
+ int current = 0;
+ bytes[current++] = (byte)(v & 0xff);
+ bytes[current++] = (byte)((v >> 8) & 0xff);
+ return bytes;
+ }
+
internal void WriteShort(int v, TdsParserStateObject stateObj) {
ReliabilitySection.Assert("unreliable call to WriteShort"); // you need to setup for a thread abort somewhere before you call this method
@@ -1408,6 +1513,10 @@ namespace System.Data.SqlClient {
//
// Takes a long and writes out an unsigned int
//
+ internal byte[] SerializeUnsignedInt(uint i, TdsParserStateObject stateObj) {
+ return SerializeInt((int)i, stateObj);
+ }
+
internal void WriteUnsignedInt(uint i, TdsParserStateObject stateObj) {
WriteInt((int)i, stateObj);
}
@@ -1415,6 +1524,23 @@ namespace System.Data.SqlClient {
//
// Takes an int and writes it as an int.
//
+ internal byte[] SerializeInt(int v, TdsParserStateObject stateObj) {
+ if (null == stateObj._bIntBytes) {
+ stateObj._bIntBytes = new byte[4];
+ }
+ else {
+ Debug.Assert (4 == stateObj._bIntBytes.Length);
+ }
+
+ int current = 0;
+ byte[] bytes = stateObj._bIntBytes;
+ bytes[current++] = (byte)(v & 0xff);
+ bytes[current++] = (byte)((v >> 8) & 0xff);
+ bytes[current++] = (byte)((v >> 16) & 0xff);
+ bytes[current++] = (byte)((v >> 24) & 0xff);
+ return bytes;
+ }
+
internal void WriteInt(int v, TdsParserStateObject stateObj) {
ReliabilitySection.Assert("unreliable call to WriteInt"); // you need to setup for a thread abort somewhere before you call this method
@@ -1438,6 +1564,14 @@ namespace System.Data.SqlClient {
//
// Takes a float and writes it as a 32 bit float.
//
+ internal byte[] SerializeFloat(float v) {
+ if (Single.IsInfinity(v) || Single.IsNaN(v)) {
+ throw ADP.ParameterValueOutOfRange(v.ToString());
+ }
+
+ return BitConverter.GetBytes(v);
+ }
+
internal void WriteFloat(float v, TdsParserStateObject stateObj) {
byte[] bytes = BitConverter.GetBytes(v);
@@ -1447,6 +1581,27 @@ namespace System.Data.SqlClient {
//
// Takes a long and writes it as a long.
//
+ internal byte[] SerializeLong(long v, TdsParserStateObject stateObj) {
+ int current = 0;
+ if (null == stateObj._bLongBytes) {
+ stateObj._bLongBytes = new byte[8];
+ }
+
+ byte[] bytes = stateObj._bLongBytes;
+ Debug.Assert (8 == bytes.Length, "Cached buffer has wrong size");
+
+ bytes[current++] = (byte)(v & 0xff);
+ bytes[current++] = (byte)((v >> 8) & 0xff);
+ bytes[current++] = (byte)((v >> 16) & 0xff);
+ bytes[current++] = (byte)((v >> 24) & 0xff);
+ bytes[current++] = (byte)((v >> 32) & 0xff);
+ bytes[current++] = (byte)((v >> 40) & 0xff);
+ bytes[current++] = (byte)((v >> 48) & 0xff);
+ bytes[current++] = (byte)((v >> 56) & 0xff);
+
+ return bytes;
+ }
+
internal void WriteLong(long v, TdsParserStateObject stateObj) {
ReliabilitySection.Assert("unreliable call to WriteLong"); // you need to setup for a thread abort somewhere before you call this method
@@ -1474,6 +1629,20 @@ namespace System.Data.SqlClient {
//
// Takes a long and writes part of it
//
+ internal byte[] SerializePartialLong(long v, int length) {
+ Debug.Assert(length <= 8, "Length specified is longer than the size of a long");
+ Debug.Assert(length >= 0, "Length should not be negative");
+
+ byte[] bytes = new byte[length];
+
+ // all of the long fits into the buffer
+ for (int index = 0; index < length; index++) {
+ bytes[index] = (byte)((v >> (index * 8)) & 0xff);
+ }
+
+ return bytes;
+ }
+
internal void WritePartialLong(long v, int length, TdsParserStateObject stateObj) {
ReliabilitySection.Assert("unreliable call to WritePartialLong"); // you need to setup for a thread abort somewhere before you call this method
Debug.Assert(length <= 8, "Length specified is longer than the size of a long");
@@ -1504,6 +1673,14 @@ namespace System.Data.SqlClient {
//
// Takes a double and writes it as a 64 bit double.
//
+ internal byte[] SerializeDouble(double v) {
+ if (Double.IsInfinity(v) || Double.IsNaN(v)) {
+ throw ADP.ParameterValueOutOfRange(v.ToString());
+ }
+
+ return BitConverter.GetBytes(v);
+ }
+
internal void WriteDouble(double v, TdsParserStateObject stateObj) {
byte[] bytes = BitConverter.GetBytes(v);
@@ -1597,7 +1774,8 @@ namespace System.Data.SqlClient {
token == TdsEnums.SQLOFFSET ||
token == TdsEnums.SQLSSPI ||
token == TdsEnums.SQLFEATUREEXTACK ||
- token == TdsEnums.SQLSESSIONSTATE);
+ token == TdsEnums.SQLSESSIONSTATE ||
+ token == TdsEnums.SQLFEDAUTHINFO);
}
// Main parse loop for the top-level tds tokens, calls back into the I*Handler interfaces
@@ -1656,7 +1834,7 @@ namespace System.Data.SqlClient {
_state = TdsParserState.Broken;
_connHandler.BreakConnection();
Bid.Trace("<sc.TdsParser.Run|ERR> Potential multi-threaded misuse of connection, unexpected TDS token found %d#\n", ObjectID);
- throw SQL.ParsingError(); // MDAC 82443
+ throw SQL.ParsingErrorToken(ParsingErrorState.InvalidTdsTokenReceived, token); // MDAC 82443
}
int tokenLength;
@@ -1716,8 +1894,8 @@ namespace System.Data.SqlClient {
// anyways so we need to consume all errors. This is not the case
// if we have already given out a reader. If we have already given out
// a reader we need to throw the error but not halt further processing. We used to
- // halt processing and that was a bug preventing the user from
- // processing subsequent results.
+ // halt processing and that was a
+
if (null != dataStream) { // Webdata 104560
if (!dataStream.IsInitialized) {
@@ -1770,7 +1948,15 @@ namespace System.Data.SqlClient {
return false;
}
if ((token == TdsEnums.SQLDONEPROC) && (cmdHandler != null)) {
- cmdHandler.OnDoneProc();
+ // If the current parse/read is for the results of describe parameter encryption RPC requests,
+ // call a different handler which will update the describe parameter encryption RPC structures
+ // with the results, instead of the actual user RPC requests.
+ if (cmdHandler.IsDescribeParameterEncryptionRPCCurrentlyInProgress) {
+ cmdHandler.OnDoneDescribeParameterEncryptionProc(stateObj);
+ }
+ else {
+ cmdHandler.OnDoneProc();
+ }
}
break;
@@ -1923,6 +2109,7 @@ namespace System.Data.SqlClient {
}
case TdsEnums.SQLLOGINACK:
{
+ Bid.Trace("<sc.TdsParser.TryRun|SEC> Received login acknowledgement token\n");
SqlLoginAck ack;
if (!TryProcessLoginAck(stateObj, out ack)) {
return false;
@@ -1938,6 +2125,17 @@ namespace System.Data.SqlClient {
}
break;
}
+ case TdsEnums.SQLFEDAUTHINFO:
+ {
+ _connHandler._federatedAuthenticationInfoReceived = true;
+ SqlFedAuthInfo info;
+ Bid.Trace("<sc.TdsParser.TryRun|SEC> Received federated authentication info token\n");
+ if (!TryProcessFedAuthInfo(stateObj, tokenLength, out info)) {
+ return false;
+ }
+ _connHandler.OnFedAuthInfo(info);
+ break;
+ }
case TdsEnums.SQLSESSIONSTATE:
{
if (!TryProcessSessionState(stateObj, tokenLength, _connHandler._currentSessionData)) {
@@ -1949,7 +2147,8 @@ namespace System.Data.SqlClient {
{
if (tokenLength != TdsEnums.VARNULL) {
_SqlMetaDataSet metadata;
- if (!TryProcessMetaData(tokenLength, stateObj, out metadata)) {
+ if (!TryProcessMetaData(tokenLength, stateObj, out metadata,
+ cmdHandler != null ? cmdHandler.ColumnEncryptionSetting : SqlCommandColumnEncryptionSetting.UseConnectionSetting)) {
return false;
}
stateObj._cleanupMetaData = metadata;
@@ -2023,11 +2222,12 @@ namespace System.Data.SqlClient {
case TdsEnums.SQLRETURNVALUE:
{
SqlReturnValue returnValue;
- if (!TryProcessReturnValue(tokenLength, stateObj, out returnValue)) {
+ if (!TryProcessReturnValue(tokenLength, stateObj, out returnValue,
+ cmdHandler != null ? cmdHandler.ColumnEncryptionSetting : SqlCommandColumnEncryptionSetting.UseConnectionSetting)) {
return false;
}
if (cmdHandler != null) {
- cmdHandler.OnReturnValue(returnValue);
+ cmdHandler.OnReturnValue(returnValue, stateObj);
}
break;
}
@@ -2494,7 +2694,13 @@ namespace System.Data.SqlClient {
}
if ((null != cmd) && (TdsEnums.DONE_COUNT == (status & TdsEnums.DONE_COUNT))) {
if (curCmd != TdsEnums.SELECT) {
- cmd.InternalRecordsAffected = count;
+ if (cmd.IsDescribeParameterEncryptionRPCCurrentlyInProgress) {
+ // The below line is used only for debug asserts and not exposed publicly or impacts functionality otherwise.
+ cmd.RowsAffectedByDescribeParameterEncryption = count;
+ }
+ else {
+ cmd.InternalRecordsAffected = count;
+ }
}
// Skip the bogus DONE counts sent by the server
if (stateObj._receivedColMetaData || (curCmd != TdsEnums.SELECT)) {
@@ -2648,12 +2854,18 @@ namespace System.Data.SqlClient {
_connHandler.OnFeatureExtAck(featureId, data);
}
} while (featureId != TdsEnums.FEATUREEXT_TERMINATOR);
+
+ // Check if column encryption was on and feature wasn't acknowledged.
+ if (_connHandler.ConnectionOptions.ColumnEncryptionSetting == SqlConnectionColumnEncryptionSetting.Enabled && !IsColumnEncryptionSupported) {
+ throw SQL.TceNotSupported ();
+ }
+
return true;
}
private bool TryProcessSessionState(TdsParserStateObject stateObj, int length, SessionData sdata) {
if (length < 5) {
- throw SQL.ParsingError();
+ throw SQL.ParsingErrorLength(ParsingErrorState.SessionStateLengthTooShort, length);
}
UInt32 seqNum;
if (!stateObj.TryReadUInt32(out seqNum)) {
@@ -2667,7 +2879,7 @@ namespace System.Data.SqlClient {
return false;
}
if (status > 1) {
- throw SQL.ParsingError();
+ throw SQL.ParsingErrorStatus(ParsingErrorState.SessionStateInvalidStatus, status);
}
bool recoverable = status != 0;
length -= 5;
@@ -2855,6 +3067,133 @@ namespace System.Data.SqlClient {
return true;
}
+ private bool TryProcessFedAuthInfo(TdsParserStateObject stateObj, int tokenLen, out SqlFedAuthInfo sqlFedAuthInfo) {
+ sqlFedAuthInfo = null;
+ SqlFedAuthInfo tempFedAuthInfo = new SqlFedAuthInfo();
+
+ // Skip reading token length, since it has already been read in caller
+
+ if (Bid.AdvancedOn) {
+ Bid.Trace("<sc.TdsParser.TryProcessFedAuthInfo> FEDAUTHINFO token stream length = {0}\n", tokenLen);
+ }
+
+ if (tokenLen < sizeof(uint)) {
+ // the token must at least contain a DWORD indicating the number of info IDs
+ Bid.Trace("<sc.TdsParser.TryProcessFedAuthInfo|ERR> FEDAUTHINFO token stream length too short for CountOfInfoIDs.\n");
+ throw SQL.ParsingErrorLength(ParsingErrorState.FedAuthInfoLengthTooShortForCountOfInfoIds, tokenLen);
+ }
+
+ // read how many FedAuthInfo options there are
+ uint optionsCount;
+ if (!stateObj.TryReadUInt32(out optionsCount)) {
+ Bid.Trace("<sc.TdsParser.TryProcessFedAuthInfo|ERR> Failed to read CountOfInfoIDs in FEDAUTHINFO token stream.\n");
+ throw SQL.ParsingError(ParsingErrorState.FedAuthInfoFailedToReadCountOfInfoIds);
+ }
+ tokenLen -= sizeof(uint); // remaining length is shortened since we read optCount
+
+ if (Bid.AdvancedOn) {
+ Bid.Trace("<sc.TdsParser.TryProcessFedAuthInfo> CountOfInfoIDs = {0}\n", optionsCount.ToString(CultureInfo.InvariantCulture));
+ }
+
+ if (tokenLen > 0) {
+ // read the rest of the token
+ byte[] tokenData = new byte[tokenLen];
+ int totalRead = 0;
+ bool successfulRead = stateObj.TryReadByteArray(tokenData, 0, tokenLen, out totalRead);
+
+ if (Bid.AdvancedOn) {
+ Bid.Trace("<sc.TdsParser.TryProcessFedAuthInfo> Read rest of FEDAUTHINFO token stream: {0}\n", BitConverter.ToString(tokenData, 0, totalRead));
+ }
+
+ if (!successfulRead || totalRead != tokenLen) {
+ Bid.Trace("<sc.TdsParser.TryProcessFedAuthInfo|ERR> Failed to read FEDAUTHINFO token stream. Attempted to read {0} bytes, actually read {1}\n", tokenLen, totalRead);
+ throw SQL.ParsingError(ParsingErrorState.FedAuthInfoFailedToReadTokenStream);
+ }
+
+ // each FedAuthInfoOpt is 9 bytes:
+ // 1 byte for FedAuthInfoID
+ // 4 bytes for FedAuthInfoDataLen
+ // 4 bytes for FedAuthInfoDataOffset
+ // So this is the index in tokenData for the i-th option
+ const uint optionSize = 9;
+
+ // the total number of bytes for all FedAuthInfoOpts together
+ uint totalOptionsSize = checked(optionsCount * optionSize);
+
+ for (uint i = 0; i < optionsCount; i++) {
+ uint currentOptionOffset = checked(i * optionSize);
+
+ byte id = tokenData[currentOptionOffset];
+ uint dataLen = BitConverter.ToUInt32(tokenData, checked((int)(currentOptionOffset + 1)));
+ uint dataOffset = BitConverter.ToUInt32(tokenData, checked((int)(currentOptionOffset + 5)));
+
+ if (Bid.AdvancedOn) {
+ Bid.Trace("<sc.TdsParser.TryProcessFedAuthInfo> FedAuthInfoOpt: ID={0}, DataLen={1}, Offset={2}\n", id, dataLen.ToString(CultureInfo.InvariantCulture), dataOffset.ToString(CultureInfo.InvariantCulture));
+ }
+
+ // offset is measured from optCount, so subtract to make offset measured
+ // from the beginning of tokenData
+ checked {
+ dataOffset -= sizeof(uint);
+ }
+
+ // if dataOffset points to a region within FedAuthInfoOpt or after the end of the token, throw
+ if (dataOffset < totalOptionsSize || dataOffset >= tokenLen) {
+ Bid.Trace("<sc.TdsParser.TryProcessFedAuthInfo|ERR> FedAuthInfoDataOffset points to an invalid location.\n");
+ throw SQL.ParsingErrorOffset(ParsingErrorState.FedAuthInfoInvalidOffset, unchecked((int)dataOffset));
+ }
+
+ // try to read data and throw if the arguments are bad, meaning the server sent us a bad token
+ string data;
+ try {
+ data = System.Text.Encoding.Unicode.GetString(tokenData, checked((int)dataOffset), checked((int)dataLen));
+ }
+ catch (ArgumentOutOfRangeException e) {
+ Bid.Trace("<sc.TdsParser.TryProcessFedAuthInfo|ERR> Failed to read FedAuthInfoData.\n");
+ throw SQL.ParsingError(ParsingErrorState.FedAuthInfoFailedToReadData, e);
+ }
+ catch (ArgumentException e) {
+ Bid.Trace("<sc.TdsParser.TryProcessFedAuthInfo|ERR> FedAuthInfoData is not in unicode format.\n");
+ throw SQL.ParsingError(ParsingErrorState.FedAuthInfoDataNotUnicode, e);
+ }
+
+ if (Bid.AdvancedOn) {
+ Bid.Trace("<sc.TdsParser.TryProcessFedAuthInfo> FedAuthInfoData: {0}\n", data);
+ }
+
+ // store data in tempFedAuthInfo
+ switch ((TdsEnums.FedAuthInfoId)id) {
+ case TdsEnums.FedAuthInfoId.Spn:
+ tempFedAuthInfo.spn = data;
+ break;
+ case TdsEnums.FedAuthInfoId.Stsurl:
+ tempFedAuthInfo.stsurl = data;
+ break;
+ default:
+ if (Bid.AdvancedOn) {
+ Bid.Trace("<sc.TdsParser.TryProcessFedAuthInfo> Ignoring unknown federated authentication info option: {0}\n", id);
+ }
+ break;
+ }
+ }
+ }
+ else {
+ Bid.Trace("<sc.TdsParser.TryProcessFedAuthInfo|ERR> FEDAUTHINFO token stream is not long enough to contain the data it claims to.\n");
+ throw SQL.ParsingErrorLength(ParsingErrorState.FedAuthInfoLengthTooShortForData, tokenLen);
+ }
+
+ Bid.Trace("<sc.TdsParser.TryProcessFedAuthInfo> Processed FEDAUTHINFO token stream: {0}\n", tempFedAuthInfo.ToString());
+
+ if (String.IsNullOrWhiteSpace(tempFedAuthInfo.stsurl) || String.IsNullOrWhiteSpace(tempFedAuthInfo.spn)) {
+ // We should be receiving both stsurl and spn
+ Bid.Trace("<sc.TdsParser.TryProcessFedAuthInfo|ERR> FEDAUTHINFO token stream does not contain both STSURL and SPN.\n");
+ throw SQL.ParsingError(ParsingErrorState.FedAuthInfoDoesNotContainStsurlAndSpn);
+ }
+
+ sqlFedAuthInfo = tempFedAuthInfo;
+ return true;
+ }
+
internal bool TryProcessError(byte token, TdsParserStateObject stateObj, out SqlError error) {
ushort shortLen;
byte byteLen;
@@ -2891,8 +3230,8 @@ namespace System.Data.SqlClient {
string server;
- // MDAC bug #49307 - server sometimes does not send over server field! In those cases
- // we will use our locally cached value.
+ // MDAC
+
if (byteLen == 0) {
server = _server;
}
@@ -2946,7 +3285,10 @@ namespace System.Data.SqlClient {
}
- internal bool TryProcessReturnValue(int length, TdsParserStateObject stateObj, out SqlReturnValue returnValue) {
+ internal bool TryProcessReturnValue(int length,
+ TdsParserStateObject stateObj,
+ out SqlReturnValue returnValue,
+ SqlCommandColumnEncryptionSetting columnEncryptionSetting) {
returnValue = null;
SqlReturnValue rec = new SqlReturnValue();
rec.length = length; // In Yukon this length is -1
@@ -2960,6 +3302,7 @@ namespace System.Data.SqlClient {
return false;
}
+ rec.parameter = null;
if (len > 0) {
if (!stateObj.TryReadString(len, out rec.parameter)) {
return false;
@@ -2988,12 +3331,22 @@ namespace System.Data.SqlClient {
userType = userTypeShort;
}
- // read off the flags
- ushort ignoredFlags;
- if (!stateObj.TryReadUInt16(out ignoredFlags)) {
+ // Read off the flags.
+ // The first byte is ignored since it doesn't contain any interesting information.
+ byte flags;
+ if (!stateObj.TryReadByte(out flags)) {
+ return false;
+ }
+
+ if (!stateObj.TryReadByte(out flags)) {
return false;
}
+ // Check if the column is encrypted.
+ if (_serverSupportsColumnEncryption) {
+ rec.isEncrypted = (TdsEnums.IsEncrypted == (flags & TdsEnums.IsEncrypted));
+ }
+
// read the type
byte tdsType;
if (!stateObj.TryReadByte(out tdsType)) {
@@ -3117,6 +3470,13 @@ namespace System.Data.SqlClient {
}
}
+ // For encrypted parameters, read the unencrypted type and encryption information.
+ if (_serverSupportsColumnEncryption && rec.isEncrypted) {
+ if (!TryProcessTceCryptoMetadata(stateObj, rec, cipherTable: null, columnEncryptionSetting: columnEncryptionSetting, isReturnValue: true)) {
+ return false;
+ }
+ }
+
// for now we coerce return values into a SQLVariant, not good...
bool isNull = false;
ulong valLen;
@@ -3134,10 +3494,12 @@ namespace System.Data.SqlClient {
}
if (isNull) {
- GetNullSqlValue(rec.value, rec);
+ GetNullSqlValue(rec.value, rec, SqlCommandColumnEncryptionSetting.Disabled, _connHandler);
}
else {
- if (!TryReadSqlValue(rec.value, rec, intlen, stateObj)) {
+ // We should never do any decryption here, so pass disabled as the command encryption override.
+ // We only read the binary value and decryption will be performed by OnReturnValue().
+ if (!TryReadSqlValue(rec.value, rec, intlen, stateObj, SqlCommandColumnEncryptionSetting.Disabled, columnName:null /*Not used*/)) {
return false;
}
}
@@ -3146,6 +3508,97 @@ namespace System.Data.SqlClient {
return true;
}
+ internal bool TryProcessTceCryptoMetadata (TdsParserStateObject stateObj,
+ SqlMetaDataPriv col,
+ SqlTceCipherInfoTable? cipherTable,
+ SqlCommandColumnEncryptionSetting columnEncryptionSetting,
+ bool isReturnValue) {
+ Debug.Assert(isReturnValue == (cipherTable == null), "Ciphertable is not set iff this is a return value");
+
+ // Read the ordinal into cipher table
+ ushort index = 0;
+ UInt32 userType;
+
+ // For return values there is not cipher table and no ordinal.
+ if (cipherTable.HasValue) {
+ if (!stateObj.TryReadUInt16(out index)) {
+ return false;
+ }
+
+ // validate the index (ordinal passed)
+ if (index >= cipherTable.Value.Size) {
+ Bid.Trace("<sc.TdsParser.TryProcessTceCryptoMetadata|TCE> Incorrect ordinal received %d, max tab size: %d\n", index, cipherTable.Value.Size);
+ throw SQL.ParsingErrorValue(ParsingErrorState.TceInvalidOrdinalIntoCipherInfoTable, index);
+ }
+ }
+
+ // Read the user type
+ if (!stateObj.TryReadUInt32(out userType)) {
+ return false;
+ }
+
+ // Read the base TypeInfo
+ col.baseTI = new SqlMetaDataPriv();
+ if (!TryProcessTypeInfo(stateObj, col.baseTI, userType)) {
+ return false;
+ }
+
+ // Read the cipher algorithm Id
+ byte cipherAlgorithmId;
+ if (!stateObj.TryReadByte(out cipherAlgorithmId)) {
+ return false;
+ }
+
+ string cipherAlgorithmName = null;
+ if (TdsEnums.CustomCipherAlgorithmId == cipherAlgorithmId) {
+ // Custom encryption algorithm, read the name
+ byte nameSize;
+ if (!stateObj.TryReadByte(out nameSize)) {
+ return false;
+ }
+
+ if (!stateObj.TryReadString(nameSize, out cipherAlgorithmName)) {
+ return false;
+ }
+ }
+
+ // Read Encryption Type.
+ byte encryptionType;
+ if (!stateObj.TryReadByte(out encryptionType)) {
+ return false;
+ }
+
+ // Read Normalization Rule Version.
+ byte normalizationRuleVersion;
+ if (!stateObj.TryReadByte(out normalizationRuleVersion)) {
+ return false;
+ }
+
+ Debug.Assert(col.cipherMD == null, "col.cipherMD should be null in TryProcessTceCryptoMetadata.");
+
+ // Check if TCE is enable and if it is set the crypto MD for the column.
+ // TCE is enabled if the command is set to enabled or to resultset only and this is not a return value
+ // or if it is set to use connection setting and the connection has TCE enabled.
+ if ((columnEncryptionSetting == SqlCommandColumnEncryptionSetting.Enabled ||
+ (columnEncryptionSetting == SqlCommandColumnEncryptionSetting.ResultSetOnly && !isReturnValue)) ||
+ (columnEncryptionSetting == SqlCommandColumnEncryptionSetting.UseConnectionSetting &&
+ _connHandler != null && _connHandler.ConnectionOptions != null &&
+ _connHandler.ConnectionOptions.ColumnEncryptionSetting == SqlConnectionColumnEncryptionSetting.Enabled)) {
+ col.cipherMD = new SqlCipherMetadata(cipherTable.HasValue ? (SqlTceCipherInfoEntry?)cipherTable.Value[index] : null,
+ index,
+ cipherAlgorithmId: cipherAlgorithmId,
+ cipherAlgorithmName: cipherAlgorithmName,
+ encryptionType: encryptionType,
+ normalizationRuleVersion: normalizationRuleVersion);
+ }
+ else {
+ // If TCE is disabled mark the MD as not encrypted.
+ col.isEncrypted = false;
+ }
+
+ return true;
+ }
+
internal bool TryProcessCollation(TdsParserStateObject stateObj, out SqlCollation collation) {
SqlCollation newCollation = new SqlCollation();
@@ -3357,8 +3810,7 @@ namespace System.Data.SqlClient {
Debug.Assert(cColumns > 0, "should have at least 1 column in altMetaData!");
metaData = null;
-
- _SqlMetaDataSet altMetaDataSet = new _SqlMetaDataSet(cColumns);
+ _SqlMetaDataSet altMetaDataSet = new _SqlMetaDataSet(cColumns, null);
int[] indexMap = new int[cColumns];
if (!stateObj.TryReadUInt16(out altMetaDataSet.id)) {
@@ -3389,7 +3841,8 @@ namespace System.Data.SqlClient {
return false;
}
- if (!TryCommonProcessMetaData(stateObj, col)) {
+ // TCE is not applicable to AltMetadata.
+ if (!TryCommonProcessMetaData(stateObj, col, null, fColMD: false, columnEncryptionSetting: SqlCommandColumnEncryptionSetting.Disabled)) {
return false;
}
@@ -3455,61 +3908,178 @@ namespace System.Data.SqlClient {
return true;
}
+ /// <summary>
+ /// <para> Parses the TDS message to read single CIPHER_INFO entry.</para>
+ /// </summary>
+ internal bool TryReadCipherInfoEntry (TdsParserStateObject stateObj, out SqlTceCipherInfoEntry entry) {
+ byte cekValueCount = 0;
+ entry = new SqlTceCipherInfoEntry(ordinal: 0);
- internal bool TryProcessMetaData(int cColumns, TdsParserStateObject stateObj, out _SqlMetaDataSet metaData) {
- Debug.Assert(cColumns > 0, "should have at least 1 column in metadata!");
+ // Read the DB ID
+ int dbId;
+ if (!stateObj.TryReadInt32(out dbId)) {
+ return false;
+ }
- _SqlMetaDataSet newMetaData = new _SqlMetaDataSet(cColumns);
- for (int i = 0; i < cColumns; i++) {
- if (!TryCommonProcessMetaData(stateObj, newMetaData[i])) {
- metaData = null;
+ // Read the keyID
+ int keyId;
+ if (!stateObj.TryReadInt32(out keyId)) {
+ return false;
+ }
+
+ // Read the key version
+ int keyVersion;
+ if (!stateObj.TryReadInt32(out keyVersion)) {
+ return false;
+ }
+
+ // Read the key MD Version
+ byte[] keyMDVersion = new byte[8];
+ if (!stateObj.TryReadByteArray(keyMDVersion, 0, 8)) {
+ return false;
+ }
+
+ // Read the value count
+ if (!stateObj.TryReadByte (out cekValueCount)) {
+ return false;
+ }
+
+ for (int i = 0; i < cekValueCount; i++) {
+ // Read individual CEK values
+ byte[] encryptedCek;
+ string keyPath;
+ string keyStoreName;
+ byte algorithmLength;
+ string algorithmName;
+ ushort shortValue;
+ byte byteValue;
+ int length;
+
+ // Read the length of encrypted CEK
+ if (!stateObj.TryReadUInt16 (out shortValue)) {
+ return false;
+ }
+
+ length = shortValue;
+ encryptedCek = new byte[length];
+
+ // Read the actual encrypted CEK
+ if (!stateObj.TryReadByteArray (encryptedCek, 0, length)) {
+ return false;
+ }
+
+ // Read the length of key store name
+ if (!stateObj.TryReadByte (out byteValue)) {
+ return false;
+ }
+
+ length = byteValue;
+
+ // And read the key store name now
+ if (!stateObj.TryReadString(length, out keyStoreName)) {
+ return false;
+ }
+
+ // Read the length of key Path
+ if (!stateObj.TryReadUInt16 (out shortValue)) {
+ return false;
+ }
+
+ length = shortValue;
+
+ // Read the key path string
+ if (!stateObj.TryReadString(length, out keyPath)) {
+ return false;
+ }
+
+ // Read the length of the string carrying the encryption algo
+ if (!stateObj.TryReadByte(out algorithmLength)) {
+ return false;
+ }
+
+ length = (int)algorithmLength;
+
+ // Read the string carrying the encryption algo (eg. RSA_PKCS_OAEP)
+ if (!stateObj.TryReadString(length, out algorithmName)) {
return false;
}
+
+ // Add this encrypted CEK blob to our list of encrypted values for the CEK
+ entry.Add(encryptedCek,
+ databaseId: dbId,
+ cekId: keyId,
+ cekVersion: keyVersion,
+ cekMdVersion: keyMDVersion,
+ keyPath: keyPath,
+ keyStoreName: keyStoreName,
+ algorithmName: algorithmName);
}
- metaData = newMetaData;
return true;
}
- private bool IsVarTimeTds(byte tdsType) {
- return tdsType == TdsEnums.SQLTIME || tdsType == TdsEnums.SQLDATETIME2 || tdsType == TdsEnums.SQLDATETIMEOFFSET;
- }
+ /// <summary>
+ /// <para> Parses the TDS message to read a single CIPHER_INFO table.</para>
+ /// </summary>
+ internal bool TryProcessCipherInfoTable (TdsParserStateObject stateObj, out SqlTceCipherInfoTable? cipherTable) {
+ // Read count
+ short tableSize = 0;
+ cipherTable = null;
+ if (!stateObj.TryReadInt16(out tableSize)) {
+ return false;
+ }
- private bool TryCommonProcessMetaData(TdsParserStateObject stateObj, _SqlMetaData col) {
- byte byteLen;
- UInt32 userType;
+ if (0 != tableSize) {
+ SqlTceCipherInfoTable tempTable = new SqlTceCipherInfoTable(tableSize);
- // read user type - 4 bytes Yukon, 2 backwards
- if (IsYukonOrNewer) {
- if (!stateObj.TryReadUInt32(out userType)) {
- return false;
+ // Read individual entries
+ for (int i = 0; i < tableSize; i++) {
+ SqlTceCipherInfoEntry entry;
+ if (!TryReadCipherInfoEntry (stateObj, out entry)) {
+ return false;
+ }
+
+ tempTable[i] = entry;
}
+
+ cipherTable = tempTable;
}
- else {
- ushort userTypeShort;
- if (!stateObj.TryReadUInt16(out userTypeShort)) {
+
+ return true;
+ }
+
+ internal bool TryProcessMetaData(int cColumns, TdsParserStateObject stateObj, out _SqlMetaDataSet metaData, SqlCommandColumnEncryptionSetting columnEncryptionSetting) {
+ Debug.Assert(cColumns > 0, "should have at least 1 column in metadata!");
+
+ // Read the cipher info table first
+ SqlTceCipherInfoTable? cipherTable = null;
+ if (_serverSupportsColumnEncryption) {
+ if (!TryProcessCipherInfoTable (stateObj, out cipherTable)) {
+ metaData = null;
return false;
}
- userType = userTypeShort;
}
- // read flags and set appropriate flags in structure
- byte flags;
- if (!stateObj.TryReadByte(out flags)) {
- return false;
+ // Read the ColumnData fields
+ _SqlMetaDataSet newMetaData = new _SqlMetaDataSet(cColumns, cipherTable);
+ for (int i = 0; i < cColumns; i++) {
+ if (!TryCommonProcessMetaData(stateObj, newMetaData[i], cipherTable, fColMD: true, columnEncryptionSetting: columnEncryptionSetting)) {
+ metaData = null;
+ return false;
+ }
}
- col.updatability = (byte)((flags & TdsEnums.Updatability) >> 2);
- col.isNullable = (TdsEnums.Nullable == (flags & TdsEnums.Nullable));
- col.isIdentity = (TdsEnums.Identity == (flags & TdsEnums.Identity));
+ // DEVNOTE: cipherTable is discarded at this point since its no longer needed.
+ metaData = newMetaData;
+ return true;
+ }
- // read second byte of column metadata flags
- if (!stateObj.TryReadByte(out flags)) {
- return false;
- }
-
- col.isColumnSet = (TdsEnums.IsColumnSet == (flags & TdsEnums.IsColumnSet));
+ private bool IsVarTimeTds(byte tdsType) {
+ return tdsType == TdsEnums.SQLTIME || tdsType == TdsEnums.SQLDATETIME2 || tdsType == TdsEnums.SQLDATETIMEOFFSET;
+ }
+ private bool TryProcessTypeInfo (TdsParserStateObject stateObj, SqlMetaDataPriv col, UInt32 userType) {
+ byte byteLen;
byte tdsType;
if (!stateObj.TryReadByte(out tdsType)) {
return false;
@@ -3649,6 +4219,53 @@ namespace System.Data.SqlClient {
}
}
+ return true;
+ }
+
+ private bool TryCommonProcessMetaData(TdsParserStateObject stateObj, _SqlMetaData col, SqlTceCipherInfoTable? cipherTable, bool fColMD, SqlCommandColumnEncryptionSetting columnEncryptionSetting) {
+ byte byteLen;
+ UInt32 userType;
+
+ // read user type - 4 bytes Yukon, 2 backwards
+ if (IsYukonOrNewer) {
+ if (!stateObj.TryReadUInt32(out userType)) {
+ return false;
+ }
+ }
+ else {
+ ushort userTypeShort;
+ if (!stateObj.TryReadUInt16(out userTypeShort)) {
+ return false;
+ }
+ userType = userTypeShort;
+ }
+
+ // read flags and set appropriate flags in structure
+ byte flags;
+ if (!stateObj.TryReadByte(out flags)) {
+ return false;
+ }
+
+ col.updatability = (byte)((flags & TdsEnums.Updatability) >> 2);
+ col.isNullable = (TdsEnums.Nullable == (flags & TdsEnums.Nullable));
+ col.isIdentity = (TdsEnums.Identity == (flags & TdsEnums.Identity));
+
+ // read second byte of column metadata flags
+ if (!stateObj.TryReadByte(out flags)) {
+ return false;
+ }
+
+ col.isColumnSet = (TdsEnums.IsColumnSet == (flags & TdsEnums.IsColumnSet));
+ if (fColMD && _serverSupportsColumnEncryption) {
+ col.isEncrypted = (TdsEnums.IsEncrypted == (flags & TdsEnums.IsEncrypted));
+ }
+
+ // Read TypeInfo
+ if (!TryProcessTypeInfo (stateObj, col, userType)) {
+ return false;
+ }
+
+ // Read tablename if present
if (col.metaType.IsLong && !col.metaType.IsPlp) {
if (_isYukon) {
int unusedLen = 0xFFFF; //We ignore this value
@@ -3672,6 +4289,15 @@ namespace System.Data.SqlClient {
}
}
+ // Read the TCE column cryptoinfo
+ if (fColMD && _serverSupportsColumnEncryption && col.isEncrypted) {
+ // If the column is encrypted, we should have a valid cipherTable
+ if (cipherTable.HasValue && !TryProcessTceCryptoMetadata (stateObj, col, cipherTable.Value, columnEncryptionSetting, isReturnValue: false)) {
+ return false;
+ }
+ }
+
+ // Read the column name
if (!stateObj.TryReadByte(out byteLen)) {
return false;
}
@@ -4045,14 +4671,16 @@ namespace System.Data.SqlClient {
}
if (isNull) {
- GetNullSqlValue(data, md);
+ GetNullSqlValue(data, md, SqlCommandColumnEncryptionSetting.Disabled /*Column Encryption Disabled for Bulk Copy*/, _connHandler);
buffer[map[i]] = data.SqlValue;
}
else {
// We only read up to 2Gb. Throw if data is larger. Very large data
// should be read in chunks in sequential read mode
// For Plp columns, we may have gotten only the length of the first chunk
- if (!TryReadSqlValue(data, md, md.metaType.IsPlp ? (Int32.MaxValue) : (int)len, stateObj)) {
+ if (!TryReadSqlValue(data, md, md.metaType.IsPlp ? (Int32.MaxValue) : (int)len, stateObj,
+ SqlCommandColumnEncryptionSetting.Disabled /*Column Encryption Disabled for Bulk Copy*/,
+ md.column)) {
return false;
}
buffer[map[i]] = data.SqlValue;
@@ -4066,8 +4694,44 @@ namespace System.Data.SqlClient {
return true;
}
- internal object GetNullSqlValue(SqlBuffer nullVal, SqlMetaDataPriv md) {
- switch (md.type) {
+ /// <summary>
+ /// Determines if a column value should be transparently decrypted (based on SqlCommand and Connection String settings).
+ /// </summary>
+ /// <returns>true if the value should be transparently decrypted, false otherwise</returns>
+ internal static bool ShouldHonorTceForRead (SqlCommandColumnEncryptionSetting columnEncryptionSetting,
+ SqlInternalConnectionTds connection) {
+
+ // Command leve setting trumps all
+ switch (columnEncryptionSetting) {
+ case SqlCommandColumnEncryptionSetting.Disabled:
+ return false;
+ case SqlCommandColumnEncryptionSetting.Enabled:
+ return true;
+ case SqlCommandColumnEncryptionSetting.ResultSetOnly:
+ return true;
+ default:
+ // Check connection level setting!
+ Debug.Assert(SqlCommandColumnEncryptionSetting.UseConnectionSetting == columnEncryptionSetting,
+ "Unexpected value for command level override");
+ return (connection != null && connection.ConnectionOptions != null &&
+ connection.ConnectionOptions.ColumnEncryptionSetting == SqlConnectionColumnEncryptionSetting.Enabled);
+ }
+ }
+
+ internal static object GetNullSqlValue(
+ SqlBuffer nullVal,
+ SqlMetaDataPriv md,
+ SqlCommandColumnEncryptionSetting columnEncryptionSetting,
+ SqlInternalConnectionTds connection) {
+ SqlDbType type = md.type;
+
+ if (type == SqlDbType.VarBinary && // if its a varbinary
+ md.isEncrypted &&// and encrypted
+ ShouldHonorTceForRead(columnEncryptionSetting, connection)){
+ type = md.baseTI.type; // the use the actual (plaintext) type
+ }
+
+ switch (type) {
case SqlDbType.Real:
nullVal.SetToNullOfType(SqlBuffer.StorageType.Single);
break;
@@ -4156,8 +4820,8 @@ namespace System.Data.SqlClient {
break;
case SqlDbType.Timestamp:
- // Dev10 Bug #479607 - this should have been the same as SqlDbType.Binary, but it's a rejected breaking change
- // Dev10 Bug #752790 - don't assert when it does happen
+ // Dev10
+
break;
default:
@@ -4312,7 +4976,269 @@ namespace System.Data.SqlClient {
return true;
}
- internal bool TryReadSqlValue(SqlBuffer value, SqlMetaDataPriv md, int length, TdsParserStateObject stateObj) {
+ /// <summary>
+ /// Deserializes the unencrypted bytes into a value based on the target type info.
+ /// </summary>
+ internal bool DeserializeUnencryptedValue (SqlBuffer value, byte[] unencryptedBytes, SqlMetaDataPriv md, TdsParserStateObject stateObj, byte normalizationVersion) {
+ if (normalizationVersion != 0x01) {
+ throw SQL.UnsupportedNormalizationVersion(normalizationVersion);
+ }
+
+ byte tdsType = md.baseTI.tdsType;
+ int length = unencryptedBytes.Length;
+
+ // For normalized types, the length and scale of the actual type might be different than the value's.
+ int denormalizedLength = md.baseTI.length;
+ byte denormalizedScale = md.baseTI.scale;
+
+ Debug.Assert (false == md.baseTI.isEncrypted, "Double encryption detected");
+ switch (tdsType) {
+ // We normalize to allow conversion across data types. All data types below are serialized into a BIGINT.
+ case TdsEnums.SQLBIT:
+ case TdsEnums.SQLBITN:
+ case TdsEnums.SQLINTN:
+ case TdsEnums.SQLINT1:
+ case TdsEnums.SQLINT2:
+ case TdsEnums.SQLINT4:
+ case TdsEnums.SQLINT8:
+ Debug.Assert(length == 8, "invalid length for SqlInt64 type!");
+ byte byteValue;
+ long longValue;
+
+ if (unencryptedBytes.Length != 8) {
+ return false;
+ }
+
+ longValue = BitConverter.ToInt64(unencryptedBytes, 0);
+
+ if (tdsType == TdsEnums.SQLBIT ||
+ tdsType == TdsEnums.SQLBITN) {
+ value.Boolean = (longValue != 0);
+ break;
+ }
+
+ if (tdsType == TdsEnums.SQLINT1 || denormalizedLength == 1)
+ value.Byte = (byte)longValue;
+ else if (tdsType == TdsEnums.SQLINT2 || denormalizedLength == 2)
+ value.Int16 = (Int16)longValue;
+ else if (tdsType == TdsEnums.SQLINT4 || denormalizedLength == 4)
+ value.Int32 = (Int32)longValue;
+ else
+ value.Int64 = longValue;
+
+ break;
+
+ case TdsEnums.SQLFLTN:
+ if (length == 4) {
+ goto case TdsEnums.SQLFLT4;
+ }
+ else {
+ goto case TdsEnums.SQLFLT8;
+ }
+
+ case TdsEnums.SQLFLT4:
+ Debug.Assert(length == 4, "invalid length for SqlSingle type!");
+ float singleValue;
+ if (unencryptedBytes.Length != 4) {
+ return false;
+ }
+
+ singleValue = BitConverter.ToSingle(unencryptedBytes, 0);
+ value.Single = singleValue;
+ break;
+
+ case TdsEnums.SQLFLT8:
+ double doubleValue;
+ if (unencryptedBytes.Length != 8) {
+ return false;
+ }
+
+ doubleValue = BitConverter.ToDouble(unencryptedBytes, 0);
+ value.Double = doubleValue;
+ break;
+
+ // We normalize to allow conversion across data types. SMALLMONEY is serialized into a MONEY.
+ case TdsEnums.SQLMONEYN:
+ case TdsEnums.SQLMONEY4:
+ case TdsEnums.SQLMONEY:
+ {
+ int mid;
+ uint lo;
+
+ if (unencryptedBytes.Length != 8) {
+ return false;
+ }
+
+ mid = BitConverter.ToInt32(unencryptedBytes, 0);
+ lo = BitConverter.ToUInt32(unencryptedBytes, 4);
+
+ long l = (((long)mid) << 0x20) + ((long)lo);
+ value.SetToMoney(l);
+ break;
+ }
+
+ case TdsEnums.SQLDATETIMN:
+ if (length == 4) {
+ goto case TdsEnums.SQLDATETIM4;
+ }
+ else {
+ goto case TdsEnums.SQLDATETIME;
+ }
+
+ case TdsEnums.SQLDATETIM4:
+ ushort daypartShort, timepartShort;
+ if (unencryptedBytes.Length != 4) {
+ return false;
+ }
+
+ daypartShort = (UInt16)((unencryptedBytes[1] << 8) + unencryptedBytes[0]);
+ timepartShort = (UInt16)((unencryptedBytes[3] << 8) + unencryptedBytes[2]);
+ value.SetToDateTime(daypartShort, timepartShort * SqlDateTime.SQLTicksPerMinute);
+ break;
+
+ case TdsEnums.SQLDATETIME:
+ int daypart;
+ uint timepart;
+ if (unencryptedBytes.Length != 8) {
+ return false;
+ }
+
+ daypart = BitConverter.ToInt32(unencryptedBytes, 0);
+ timepart = BitConverter.ToUInt32(unencryptedBytes, 4);
+ value.SetToDateTime(daypart, (int)timepart);
+ break;
+
+ case TdsEnums.SQLUNIQUEID:
+ {
+ Debug.Assert(length == 16, "invalid length for SqlGuid type!");
+ value.SqlGuid = new SqlGuid(unencryptedBytes, true); // doesn't copy the byte array
+ break;
+ }
+
+ case TdsEnums.SQLBINARY:
+ case TdsEnums.SQLBIGBINARY:
+ case TdsEnums.SQLBIGVARBINARY:
+ case TdsEnums.SQLVARBINARY:
+ case TdsEnums.SQLIMAGE:
+ {
+ // Note: Better not come here with plp data!!
+ Debug.Assert(length <= TdsEnums.MAXSIZE, "Plp data decryption attempted");
+
+ // If this is a fixed length type, pad with zeros to get to the fixed length size.
+ if (tdsType == TdsEnums.SQLBINARY || tdsType == TdsEnums.SQLBIGBINARY) {
+ byte[] bytes = new byte[md.baseTI.length];
+ Buffer.BlockCopy(unencryptedBytes, 0, bytes, 0, unencryptedBytes.Length);
+ unencryptedBytes = bytes;
+ }
+
+ value.SqlBinary = new SqlBinary(unencryptedBytes, true); // doesn't copy the byte array
+ break;
+ }
+
+ case TdsEnums.SQLDECIMALN:
+ case TdsEnums.SQLNUMERICN:
+ // Check the sign from the first byte.
+ int index = 0;
+ byteValue = unencryptedBytes[index++];
+ bool fPositive = (1 == byteValue);
+
+ // Now read the 4 next integers which contain the actual value.
+ length = checked((int)length-1);
+ int[] bits = new int[4];
+ int decLength = length>>2;
+ for (int i = 0; i < decLength; i++) {
+ // up to 16 bytes of data following the sign byte
+ bits[i] = BitConverter.ToInt32(unencryptedBytes, index);
+ index += 4;
+ }
+ value.SetToDecimal (md.baseTI.precision, md.baseTI.scale, fPositive, bits);
+ break;
+
+ case TdsEnums.SQLCHAR:
+ case TdsEnums.SQLBIGCHAR:
+ case TdsEnums.SQLVARCHAR:
+ case TdsEnums.SQLBIGVARCHAR:
+ case TdsEnums.SQLTEXT:
+ {
+ System.Text.Encoding encoding = md.baseTI.encoding;
+
+ if (null == encoding) {
+ encoding = _defaultEncoding;
+ }
+
+ if (null == encoding) {
+ ThrowUnsupportedCollationEncountered(stateObj);
+ }
+
+ string strValue = encoding.GetString(unencryptedBytes, 0, length);
+
+ // If this is a fixed length type, pad with spaces to get to the fixed length size.
+ if (tdsType == TdsEnums.SQLCHAR || tdsType == TdsEnums.SQLBIGCHAR) {
+ strValue = strValue.PadRight(md.baseTI.length);
+ }
+
+ value.SetToString(strValue);
+ break;
+ }
+
+ case TdsEnums.SQLNCHAR:
+ case TdsEnums.SQLNVARCHAR:
+ case TdsEnums.SQLNTEXT:
+ {
+ string strValue = System.Text.Encoding.Unicode.GetString(unencryptedBytes, 0, length);
+
+ // If this is a fixed length type, pad with spaces to get to the fixed length size.
+ if (tdsType == TdsEnums.SQLNCHAR) {
+ strValue = strValue.PadRight(md.baseTI.length / ADP.CharSize);
+ }
+
+ value.SetToString(strValue);
+ break;
+ }
+
+ case TdsEnums.SQLDATE:
+ Debug.Assert(length == 3, "invalid length for date type!");
+ value.SetToDate(unencryptedBytes);
+ break;
+
+ case TdsEnums.SQLTIME:
+ // We normalize to maximum precision to allow conversion across different precisions.
+ Debug.Assert(length == 5, "invalid length for time type!");
+ value.SetToTime(unencryptedBytes, length, TdsEnums.MAX_TIME_SCALE, denormalizedScale);
+ break;
+
+ case TdsEnums.SQLDATETIME2:
+ // We normalize to maximum precision to allow conversion across different precisions.
+ Debug.Assert(length == 8, "invalid length for datetime2 type!");
+ value.SetToDateTime2(unencryptedBytes, length, TdsEnums.MAX_TIME_SCALE, denormalizedScale);
+ break;
+
+ case TdsEnums.SQLDATETIMEOFFSET:
+ // We normalize to maximum precision to allow conversion across different precisions.
+ Debug.Assert(length == 10, "invalid length for datetimeoffset type!");
+ value.SetToDateTimeOffset(unencryptedBytes, length, TdsEnums.MAX_TIME_SCALE, denormalizedScale);
+ break;
+
+ default:
+ MetaType metaType = md.baseTI.metaType;
+
+ // If we don't have a metatype already, construct one to get the proper type name.
+ if (metaType == null) {
+ metaType = MetaType.GetSqlDataType(tdsType, userType:0, length:length);
+ }
+
+ throw SQL.UnsupportedDatatypeEncryption(metaType.TypeName);
+ }
+
+ return true;
+ }
+
+ internal bool TryReadSqlValue(SqlBuffer value,
+ SqlMetaDataPriv md,
+ int length,
+ TdsParserStateObject stateObj,
+ SqlCommandColumnEncryptionSetting columnEncryptionOverride,
+ string columnName) {
bool isPlp = md.metaType.IsPlp;
byte tdsType = md.tdsType;
@@ -4321,6 +5247,9 @@ namespace System.Data.SqlClient {
// We must read the column value completely, no matter what length is passed in
length = Int32.MaxValue;
}
+
+ //DEVNOTE: When modifying the following routines (for deserialization) please pay attention to
+ // deserialization code in DecryptWithKey () method and modify it accordingly.
switch (tdsType) {
case TdsEnums.SQLDECIMALN:
case TdsEnums.SQLNUMERICN:
@@ -4354,8 +5283,27 @@ namespace System.Data.SqlClient {
}
}
- value.SqlBinary = new SqlBinary(b, true); // doesn't copy the byte array
+ if (md.isEncrypted
+ && ((columnEncryptionOverride == SqlCommandColumnEncryptionSetting.Enabled
+ || columnEncryptionOverride == SqlCommandColumnEncryptionSetting.ResultSetOnly)
+ || (columnEncryptionOverride == SqlCommandColumnEncryptionSetting.UseConnectionSetting
+ && _connHandler != null && _connHandler.ConnectionOptions != null
+ && _connHandler.ConnectionOptions.ColumnEncryptionSetting == SqlConnectionColumnEncryptionSetting.Enabled))) {
+ try {
+ // CipherInfo is present, decrypt and read
+ byte[] unencryptedBytes = SqlSecurityUtility.DecryptWithKey(b, md.cipherMD, _connHandler.ConnectionOptions.DataSource);
+ if (unencryptedBytes != null) {
+ DeserializeUnencryptedValue(value, unencryptedBytes, md, stateObj, md.NormalizationRuleVersion);
+ }
+ }
+ catch (Exception e) {
+ throw SQL.ColumnDecryptionFailed(columnName, null, e);
+ }
+ }
+ else {
+ value.SqlBinary = new SqlBinary(b, true); // doesn't copy the byte array
+ }
break;
case TdsEnums.SQLCHAR:
@@ -4417,17 +5365,17 @@ namespace System.Data.SqlClient {
case TdsEnums.SQLTIME:
Debug.Assert(3 <= length && length <= 5, "invalid length for time type!");
- value.SetToTime(datetimeBuffer, length, scale);
+ value.SetToTime(datetimeBuffer, length, scale, scale);
break;
case TdsEnums.SQLDATETIME2:
Debug.Assert(6 <= length && length <= 8, "invalid length for datetime2 type!");
- value.SetToDateTime2(datetimeBuffer, length, scale);
+ value.SetToDateTime2(datetimeBuffer, length, scale, scale);
break;
case TdsEnums.SQLDATETIMEOFFSET:
Debug.Assert(8 <= length && length <= 10, "invalid length for datetimeoffset type!");
- value.SetToDateTimeOffset(datetimeBuffer, length, scale);
+ value.SetToDateTimeOffset(datetimeBuffer, length, scale, scale);
break;
default:
@@ -5146,6 +6094,10 @@ namespace System.Data.SqlClient {
WriteDate(value, stateObj);
}
+ private byte[] SerializeSqlMoney(SqlMoney value, int length, TdsParserStateObject stateObj) {
+ return SerializeCurrency(value.Value, length, stateObj);
+ }
+
private void WriteSqlMoney(SqlMoney value, int length, TdsParserStateObject stateObj) {
//
int[] bits = Decimal.GetBits(value.Value);
@@ -5173,6 +6125,45 @@ namespace System.Data.SqlClient {
}
}
+ private byte[] SerializeCurrency(Decimal value, int length, TdsParserStateObject stateObj) {
+ SqlMoney m = new SqlMoney(value);
+ int[] bits = Decimal.GetBits(m.Value);
+
+ // this decimal should be scaled by 10000 (regardless of what the incoming decimal was scaled by)
+ bool isNeg = (0 != (bits[3] & unchecked((int)0x80000000)));
+ long l = ((long)(uint)bits[1]) << 0x20 | (uint)bits[0];
+
+ if (isNeg)
+ l = -l;
+
+ if (length == 4) {
+ // validate the value can be represented as a small money
+ if (value < TdsEnums.SQL_SMALL_MONEY_MIN || value > TdsEnums.SQL_SMALL_MONEY_MAX) {
+ throw SQL.MoneyOverflow(value.ToString(CultureInfo.InvariantCulture));
+ }
+
+ // We normalize to allow conversion across data types. SMALLMONEY is serialized into a MONEY.
+ length = 8;
+ }
+
+ Debug.Assert (8 == length, "invalid length in SerializeCurrency");
+ if (null == stateObj._bLongBytes) {
+ stateObj._bLongBytes = new byte[8];
+ }
+
+ byte[] bytes = stateObj._bLongBytes;
+ int current = 0;
+
+ byte[] bytesPart = SerializeInt((int)(l >> 0x20), stateObj);
+ Buffer.BlockCopy(bytesPart, 0, bytes, current, 4);
+ current += 4;
+
+ bytesPart = SerializeInt((int)l, stateObj);
+ Buffer.BlockCopy(bytesPart, 0, bytes, current, 4);
+
+ return bytes;
+ }
+
private void WriteCurrency(Decimal value, int length, TdsParserStateObject stateObj) {
SqlMoney m = new SqlMoney(value);
int[] bits = Decimal.GetBits(m.Value);
@@ -5198,11 +6189,30 @@ namespace System.Data.SqlClient {
}
}
+ private byte[] SerializeDate(DateTime value) {
+ long days = value.Subtract(DateTime.MinValue).Days;
+ return SerializePartialLong(days, 3);
+ }
+
private void WriteDate(DateTime value, TdsParserStateObject stateObj) {
long days = value.Subtract(DateTime.MinValue).Days;
WritePartialLong(days, 3, stateObj);
}
+ private byte[] SerializeTime(TimeSpan value, byte scale, int length) {
+ if (0 > value.Ticks || value.Ticks >= TimeSpan.TicksPerDay) {
+ throw SQL.TimeOverflow(value.ToString());
+ }
+
+ long time = value.Ticks / TdsEnums.TICKS_FROM_SCALE[scale];
+
+ // We normalize to maximum precision to allow conversion across different precisions.
+ time = time * TdsEnums.TICKS_FROM_SCALE[scale];
+ length = TdsEnums.MAX_TIME_LENGTH;
+
+ return SerializePartialLong(time, length);
+ }
+
private void WriteTime(TimeSpan value, byte scale, int length, TdsParserStateObject stateObj) {
if (0 > value.Ticks || value.Ticks >= TimeSpan.TicksPerDay) {
throw SQL.TimeOverflow(value.ToString());
@@ -5211,12 +6221,54 @@ namespace System.Data.SqlClient {
WritePartialLong(time, length, stateObj);
}
+ private byte[] SerializeDateTime2(DateTime value, byte scale, int length) {
+ long time = value.TimeOfDay.Ticks / TdsEnums.TICKS_FROM_SCALE[scale]; // DateTime.TimeOfDay always returns a valid TimeSpan for Time
+
+ // We normalize to maximum precision to allow conversion across different precisions.
+ time = time * TdsEnums.TICKS_FROM_SCALE[scale];
+ length = TdsEnums.MAX_DATETIME2_LENGTH;
+
+ byte[] bytes = new byte[length];
+ byte[] bytesPart;
+ int current = 0;
+
+ bytesPart = SerializePartialLong(time, length - 3);
+ Buffer.BlockCopy(bytesPart, 0, bytes, current, length - 3);
+ current += length - 3;
+
+ bytesPart = SerializeDate(value);
+ Buffer.BlockCopy(bytesPart, 0, bytes, current, 3);
+
+ return bytes;
+ }
+
private void WriteDateTime2(DateTime value, byte scale, int length, TdsParserStateObject stateObj) {
long time = value.TimeOfDay.Ticks / TdsEnums.TICKS_FROM_SCALE[scale]; // DateTime.TimeOfDay always returns a valid TimeSpan for Time
WritePartialLong(time, length - 3, stateObj);
WriteDate(value, stateObj);
}
+ private byte[] SerializeDateTimeOffset(DateTimeOffset value, byte scale, int length) {
+ byte[] bytesPart;
+ int current = 0;
+
+ bytesPart = SerializeDateTime2(value.UtcDateTime, scale, length - 2);
+
+ // We need to allocate the array after we have received the length of the serialized value
+ // since it might be higher due to normalization.
+ length = bytesPart.Length + 2;
+ byte[] bytes = new byte[length];
+
+ Buffer.BlockCopy(bytesPart, 0, bytes, current, length - 2);
+ current += length - 2;
+
+ Int16 offset = (Int16)value.Offset.TotalMinutes;
+ bytes[current++] = (byte)(offset & 0xff);
+ bytes[current++] = (byte)((offset >> 8) & 0xff);
+
+ return bytes;
+ }
+
private void WriteDateTimeOffset(DateTimeOffset value, byte scale, int length, TdsParserStateObject stateObj) {
WriteDateTime2(value.UtcDateTime, scale, length - 2, stateObj);
Int16 offset = (Int16)value.Offset.TotalMinutes;
@@ -5292,6 +6344,35 @@ namespace System.Data.SqlClient {
return value;
}
+ internal byte[] SerializeSqlDecimal(SqlDecimal d, TdsParserStateObject stateObj) {
+ if (null == stateObj._bDecimalBytes) {
+ stateObj._bDecimalBytes = new byte[17];
+ }
+
+ byte[] bytes = stateObj._bDecimalBytes;
+ int current = 0;
+
+ // sign
+ if (d.IsPositive)
+ bytes[current++] = 1;
+ else
+ bytes[current++] = 0;
+
+ byte[] bytesPart = SerializeUnsignedInt(d.m_data1, stateObj);
+ Buffer.BlockCopy(bytesPart, 0, bytes, current, 4);
+ current += 4;
+ bytesPart = SerializeUnsignedInt(d.m_data2, stateObj);
+ Buffer.BlockCopy(bytesPart, 0, bytes, current, 4);
+ current += 4;
+ bytesPart = SerializeUnsignedInt(d.m_data3, stateObj);
+ Buffer.BlockCopy(bytesPart, 0, bytes, current, 4);
+ current += 4;
+ bytesPart = SerializeUnsignedInt(d.m_data4, stateObj);
+ Buffer.BlockCopy(bytesPart, 0, bytes, current, 4);
+
+ return bytes;
+ }
+
internal void WriteSqlDecimal(SqlDecimal d, TdsParserStateObject stateObj) {
// sign
if (d.IsPositive)
@@ -5305,6 +6386,55 @@ namespace System.Data.SqlClient {
WriteUnsignedInt(d.m_data4, stateObj);
}
+ private byte[] SerializeDecimal(decimal value, TdsParserStateObject stateObj) {
+ int[] decimalBits = Decimal.GetBits(value);
+ if (null == stateObj._bDecimalBytes) {
+ stateObj._bDecimalBytes = new byte[17];
+ }
+
+ byte[] bytes = stateObj._bDecimalBytes;
+ int current = 0;
+
+ /*
+ Returns a binary representation of a Decimal. The return value is an integer
+ array with four elements. Elements 0, 1, and 2 contain the low, middle, and
+ high 32 bits of the 96-bit integer part of the Decimal. Element 3 contains
+ the scale factor and sign of the Decimal: bits 0-15 (the lower word) are
+ unused; bits 16-23 contain a value between 0 and 28, indicating the power of
+ 10 to divide the 96-bit integer part by to produce the Decimal value; bits 24-
+ 30 are unused; and finally bit 31 indicates the sign of the Decimal value, 0
+ meaning positive and 1 meaning negative.
+
+ SQLDECIMAL/SQLNUMERIC has a byte stream of:
+ struct {
+ BYTE sign; // 1 if positive, 0 if negative
+ BYTE data[];
+ }
+
+ For TDS 7.0 and above, there are always 17 bytes of data
+ */
+
+ // write the sign (note that COM and SQL are opposite)
+ if (0x80000000 == (decimalBits[3] & 0x80000000))
+ bytes[current++] = 0;
+ else
+ bytes[current++] = 1;
+
+ byte[] bytesPart = SerializeInt(decimalBits[0], stateObj);
+ Buffer.BlockCopy(bytesPart, 0, bytes, current, 4);
+ current += 4;
+ bytesPart = SerializeInt(decimalBits[1], stateObj);
+ Buffer.BlockCopy(bytesPart, 0, bytes, current, 4);
+ current += 4;
+ bytesPart = SerializeInt(decimalBits[2], stateObj);
+ Buffer.BlockCopy(bytesPart, 0, bytes, current, 4);
+ current += 4;
+ bytesPart = SerializeInt(0, stateObj);
+ Buffer.BlockCopy(bytesPart, 0, bytes, current, 4);
+
+ return bytes;
+ }
+
private void WriteDecimal(decimal value, TdsParserStateObject stateObj) {
stateObj._decimalBits = Decimal.GetBits(value);
Debug.Assert(null != stateObj._decimalBits, "decimalBits should be filled in at TdsExecuteRPC time");
@@ -5364,6 +6494,14 @@ namespace System.Data.SqlClient {
return WriteString(s, s.Length, 0, stateObj, canAccumulate);
}
+ internal byte[] SerializeCharArray(char[] carr, int length, int offset) {
+ int cBytes = ADP.CharSize * length;
+ byte[] bytes = new byte[cBytes];
+
+ CopyCharsToBytes(carr, offset, bytes, 0, length);
+ return bytes;
+ }
+
internal Task WriteCharArray(char[] carr, int length, int offset, TdsParserStateObject stateObj, bool canAccumulate = true) {
int cBytes = ADP.CharSize * length;
@@ -5383,6 +6521,14 @@ namespace System.Data.SqlClient {
}
}
+ internal byte[] SerializeString(string s, int length, int offset) {
+ int cBytes = ADP.CharSize * length;
+ byte[] bytes = new byte[cBytes];
+
+ CopyStringToBytes(s, offset, bytes, 0, length);
+ return bytes;
+ }
+
internal Task WriteString(string s, int length, int offset, TdsParserStateObject stateObj, bool canAccumulate = true) {
int cBytes = ADP.CharSize * length;
@@ -5467,6 +6613,23 @@ namespace System.Data.SqlClient {
return WriteEncodingChar(s, s.Length, 0, encoding, stateObj, canAccumulate);
}
+ private byte[] SerializeEncodingChar(string s, int numChars, int offset, Encoding encoding) {
+ char[] charData;
+ byte[] byteData = null;
+
+ // if hitting 7.0 server, encoding will be null in metadata for columns or return values since
+ // 7.0 has no support for multiple code pages in data - single code page support only
+ if (encoding == null)
+ encoding = _defaultEncoding;
+
+ charData = s.ToCharArray(offset, numChars);
+
+ byteData = new byte[encoding.GetByteCount(charData, 0, charData.Length)];
+ encoding.GetBytes(charData, 0, charData.Length, byteData, 0);
+
+ return byteData;
+ }
+
private Task WriteEncodingChar(string s, int numChars, int offset, Encoding encoding, TdsParserStateObject stateObj, bool canAccumulate = true) {
char[] charData;
byte[] byteData;
@@ -5555,6 +6718,7 @@ namespace System.Data.SqlClient {
tokenLength = -1;
return true;
case TdsEnums.SQLSESSIONSTATE:
+ case TdsEnums.SQLFEDAUTHINFO:
return stateObj.TryReadInt32(out tokenLength);
}
@@ -5751,12 +6915,116 @@ namespace System.Data.SqlClient {
return len;
}
- internal void TdsLogin(SqlLogin rec, TdsEnums.FeatureExtension requestedFeatures, SessionData recoverySessionData) {
+ internal int WriteFedAuthFeatureRequest(FederatedAuthenticationFeatureExtensionData fedAuthFeatureData,
+ bool write /* if false just calculates the length */) {
+ Debug.Assert(fedAuthFeatureData.libraryType == TdsEnums.FedAuthLibrary.ADAL || fedAuthFeatureData.libraryType == TdsEnums.FedAuthLibrary.SecurityToken,
+ "only fed auth library type ADAL and Security Token are supported in writing feature request");
+
+ int dataLen = 0;
+ int totalLen = 0;
+
+ // set dataLen and totalLen
+ switch (fedAuthFeatureData.libraryType) {
+ case TdsEnums.FedAuthLibrary.ADAL:
+ dataLen = 2; // length of feature data = 1 byte for library and echo + 1 byte for workflow
+ break;
+ case TdsEnums.FedAuthLibrary.SecurityToken:
+ Debug.Assert(fedAuthFeatureData.accessToken != null, "AccessToken should not be null.");
+ dataLen = 1 + sizeof(int) + fedAuthFeatureData.accessToken.Length; // length of feature data = 1 byte for library and echo, security token length and sizeof(int) for token lengh itself
+ break;
+ default:
+ Debug.Assert(false, "Unrecognized library type for fedauth feature extension request");
+ break;
+ }
+
+ totalLen = dataLen + 5; // length of feature id (1 byte), data length field (4 bytes), and feature data (dataLen)
+
+ // write feature id
+ if (write) {
+ _physicalStateObj.WriteByte(TdsEnums.FEATUREEXT_FEDAUTH);
+
+ // set options
+ byte options = 0x00;
+
+ // set upper 7 bits of options to indicate fed auth library type
+ switch (fedAuthFeatureData.libraryType) {
+ case TdsEnums.FedAuthLibrary.ADAL:
+ Debug.Assert(_connHandler._federatedAuthenticationInfoRequested == true, "_federatedAuthenticationInfoRequested field should be true");
+ options |= TdsEnums.FEDAUTHLIB_ADAL << 1;
+ break;
+ case TdsEnums.FedAuthLibrary.SecurityToken:
+ Debug.Assert(_connHandler._federatedAuthenticationRequested == true, "_federatedAuthenticationRequested field should be true");
+ options |= TdsEnums.FEDAUTHLIB_SECURITYTOKEN << 1;
+ break;
+ default:
+ Debug.Assert(false, "Unrecognized FedAuthLibrary type for feature extension request");
+ break;
+ }
+
+ options |= (byte)(fedAuthFeatureData.fedAuthRequiredPreLoginResponse == true ? 0x01 : 0x00);
+
+ // write dataLen and options
+ WriteInt(dataLen, _physicalStateObj);
+ _physicalStateObj.WriteByte(options);
+
+ // write workflow for FedAuthLibrary.ADAL
+ // write accessToken for FedAuthLibrary.SecurityToken
+ switch (fedAuthFeatureData.libraryType) {
+ case TdsEnums.FedAuthLibrary.ADAL:
+ byte workflow = 0x00;
+ switch (fedAuthFeatureData.authentication) {
+ case SqlAuthenticationMethod.ActiveDirectoryPassword:
+ workflow = TdsEnums.ADALWORKFLOW_ACTIVEDIRECTORYPASSWORD;
+ break;
+ case SqlAuthenticationMethod.ActiveDirectoryIntegrated:
+ workflow = TdsEnums.ADALWORKFLOW_ACTIVEDIRECTORYINTEGRATED;
+ break;
+ default:
+ Debug.Assert(false, "Unrecognized Authentication type for fedauth ADAL request");
+ break;
+ }
+
+ _physicalStateObj.WriteByte(workflow);
+ break;
+ case TdsEnums.FedAuthLibrary.SecurityToken:
+ WriteInt(fedAuthFeatureData.accessToken.Length, _physicalStateObj);
+ _physicalStateObj.WriteByteArray(fedAuthFeatureData.accessToken, fedAuthFeatureData.accessToken.Length, 0);
+ break;
+ default:
+ Debug.Assert(false, "Unrecognized FedAuthLibrary type for feature extension request");
+ break;
+ }
+ }
+ return totalLen;
+ }
+
+ internal int WriteTceFeatureRequest (bool write /* if false just calculates the length */) {
+ int len = 6; // (1byte = featureID, 4bytes = featureData length, 1 bytes = Version
+
+ if (write) {
+ // Write Feature ID, legth of the version# field and TCE Version#
+ _physicalStateObj.WriteByte(TdsEnums.FEATUREEXT_TCE);
+ WriteInt (1, _physicalStateObj);
+ _physicalStateObj.WriteByte(TdsEnums.MAX_SUPPORTED_TCE_VERSION);
+ }
+
+ return len; // size of data written
+ }
+
+ internal void TdsLogin(SqlLogin rec,
+ TdsEnums.FeatureExtension requestedFeatures,
+ SessionData recoverySessionData,
+ FederatedAuthenticationFeatureExtensionData? fedAuthFeatureExtensionData) {
_physicalStateObj.SetTimeoutSeconds(rec.timeout);
- Debug.Assert(recoverySessionData == null || (requestedFeatures | TdsEnums.FeatureExtension.SessionRecovery) != 0, "Recovery session data without session recovery feature request");
+ Debug.Assert(recoverySessionData == null || (requestedFeatures & TdsEnums.FeatureExtension.SessionRecovery) != 0, "Recovery session data without session recovery feature request");
Debug.Assert(TdsEnums.MAXLEN_HOSTNAME>=rec.hostName.Length, "_workstationId.Length exceeds the max length for this value");
+ Debug.Assert(!(rec.useSSPI && _connHandler._fedAuthRequired), "Cannot use SSPI when server has responded 0x01 for FedAuthRequired PreLogin Option.");
+ Debug.Assert(!rec.useSSPI || (requestedFeatures & TdsEnums.FeatureExtension.FedAuth) == 0, "Cannot use both SSPI and FedAuth");
+ Debug.Assert(fedAuthFeatureExtensionData == null || (requestedFeatures & TdsEnums.FeatureExtension.FedAuth) != 0, "fedAuthFeatureExtensionData provided without fed auth feature request");
+ Debug.Assert(fedAuthFeatureExtensionData != null || (requestedFeatures & TdsEnums.FeatureExtension.FedAuth) == 0, "Fed Auth feature requested without specifying fedAuthFeatureExtensionData.");
+
Debug.Assert(rec.userName == null || (rec.userName != null && TdsEnums.MAXLEN_USERNAME >= rec.userName.Length), "_userID.Length exceeds the max length for this value");
Debug.Assert(rec.credential == null || (rec.credential != null && TdsEnums.MAXLEN_USERNAME >= rec.credential.UserId.Length), "_credential.UserId.Length exceeds the max length for this value");
@@ -5828,8 +7096,8 @@ namespace System.Data.SqlClient {
byte[] outSSPIBuff = null;
UInt32 outSSPILength = 0;
- // only add lengths of password and username if not using SSPI
- if (!rec.useSSPI) {
+ // only add lengths of password and username if not using SSPI or requesting federated authentication info
+ if (!rec.useSSPI && !(_connHandler._federatedAuthenticationInfoRequested || _connHandler._federatedAuthenticationRequested)) {
checked {
length += (userName.Length * 2) + encryptedPasswordLengthInBytes
+ encryptedChangePasswordLengthInBytes;
@@ -5861,10 +7129,19 @@ namespace System.Data.SqlClient {
int feOffset = length;
if (useFeatureExt) {
- if ((requestedFeatures & TdsEnums.FeatureExtension.SessionRecovery) !=0) {
- length += WriteSessionRecoveryFeatureRequest(recoverySessionData, false);
- };
- length++; // for terminator
+ checked {
+ if ((requestedFeatures & TdsEnums.FeatureExtension.SessionRecovery) != 0) {
+ length += WriteSessionRecoveryFeatureRequest(recoverySessionData, false);
+ };
+ if ((requestedFeatures & TdsEnums.FeatureExtension.FedAuth) != 0) {
+ Debug.Assert(fedAuthFeatureExtensionData != null, "fedAuthFeatureExtensionData should not null.");
+ length += WriteFedAuthFeatureRequest(fedAuthFeatureExtensionData.Value, write:false);
+ }
+ if ((requestedFeatures & TdsEnums.FeatureExtension.Tce) != 0) {
+ length += WriteTceFeatureRequest (false);
+ }
+ length++; // for terminator
+ }
}
try {
@@ -5936,6 +7213,7 @@ namespace System.Data.SqlClient {
if (rec.userInstance) {
log7Flags |= 1 << 26;
}
+
if (useFeatureExt) {
log7Flags |= 1 << 28;
}
@@ -5958,9 +7236,9 @@ namespace System.Data.SqlClient {
WriteShort(rec.hostName.Length, _physicalStateObj);
offset += rec.hostName.Length * 2;
- // Only send user/password over if not fSSPI... If both user/password and SSPI are in login
+ // Only send user/password over if not fSSPI or fed auth ADAL... If both user/password and SSPI are in login
// rec, only SSPI is used. Confirmed same bahavior as in luxor.
- if (rec.useSSPI == false) {
+ if (!rec.useSSPI && !(_connHandler._federatedAuthenticationInfoRequested || _connHandler._federatedAuthenticationRequested)) {
WriteShort(offset, _physicalStateObj); // userName offset
WriteShort(userName.Length, _physicalStateObj);
offset += userName.Length * 2;
@@ -5992,7 +7270,7 @@ namespace System.Data.SqlClient {
offset += 4;
}
else {
- WriteShort(0, _physicalStateObj); // ununsed (was remote password ?)
+ WriteShort(0, _physicalStateObj); // unused (was remote password ?)
}
WriteShort(offset, _physicalStateObj); // client interface name offset
@@ -6035,9 +7313,9 @@ namespace System.Data.SqlClient {
// write variable length portion
WriteString(rec.hostName, _physicalStateObj);
- // if we are using SSPI, do not send over username/password, since we will use SSPI instead
+ // if we are using SSPI or fed auth ADAL, do not send over username/password, since we will use SSPI instead
// same behavior as Luxor
- if (!rec.useSSPI) {
+ if (!rec.useSSPI && !(_connHandler._federatedAuthenticationInfoRequested || _connHandler._federatedAuthenticationRequested)) {
WriteString(userName, _physicalStateObj);
// Cache offset in packet for tracing.
@@ -6069,7 +7347,7 @@ namespace System.Data.SqlClient {
_physicalStateObj.WriteByteArray(outSSPIBuff, (int)outSSPILength, 0);
WriteString(rec.attachDBFilename, _physicalStateObj);
- if (!rec.useSSPI) {
+ if (!rec.useSSPI && !(_connHandler._federatedAuthenticationInfoRequested || _connHandler._federatedAuthenticationRequested)) {
// Cache offset in packet for tracing.
_physicalStateObj._traceChangePasswordOffset = _physicalStateObj._outBytesUsed;
_physicalStateObj._traceChangePasswordLength = encryptedChangePasswordLengthInBytes;
@@ -6080,13 +7358,21 @@ namespace System.Data.SqlClient {
_physicalStateObj.WriteByteArray(encryptedChangePassword, encryptedChangePasswordLengthInBytes, 0);
}
}
+
if (useFeatureExt) {
if ((requestedFeatures & TdsEnums.FeatureExtension.SessionRecovery) != 0) {
- length += WriteSessionRecoveryFeatureRequest(recoverySessionData, true);
+ WriteSessionRecoveryFeatureRequest(recoverySessionData, true);
+ };
+ if ((requestedFeatures & TdsEnums.FeatureExtension.FedAuth) != 0) {
+ Bid.Trace("<sc.TdsParser.TdsLogin|SEC> Sending federated authentication feature request\n");
+ Debug.Assert(fedAuthFeatureExtensionData != null, "fedAuthFeatureExtensionData should not null.");
+ WriteFedAuthFeatureRequest(fedAuthFeatureExtensionData.Value, write: true);
+ };
+ if ((requestedFeatures & TdsEnums.FeatureExtension.Tce) != 0) {
+ WriteTceFeatureRequest (true);
};
_physicalStateObj.WriteByte(0xFF); // terminator
}
-
} // try
catch (Exception e) {
//
@@ -6105,6 +7391,38 @@ namespace System.Data.SqlClient {
_physicalStateObj._messageStatus = 0;
}// tdsLogin
+ /// <summary>
+ /// Send the access token to the server.
+ /// </summary>
+ /// <param name="fedAuthToken">Type encapuslating a Federated Authentication access token.</param>
+ internal void SendFedAuthToken(SqlFedAuthToken fedAuthToken) {
+ Debug.Assert(fedAuthToken != null, "fedAuthToken cannot be null");
+ Debug.Assert(fedAuthToken.accessToken != null, "fedAuthToken.accessToken cannot be null");
+
+
+ Bid.Trace("<sc.TdsParser.SendFedAuthToken|SEC> Sending federated authentication token\n");
+
+ _physicalStateObj._outputMessageType = TdsEnums.MT_FEDAUTH;
+
+ byte[] accessToken = fedAuthToken.accessToken;
+
+ // Send total length (length of token plus 4 bytes for the token length field)
+ // If we were sending a nonce, this would include that length as well
+ WriteUnsignedInt((uint)accessToken.Length + sizeof(uint), _physicalStateObj);
+
+ // Send length of token
+ WriteUnsignedInt((uint)accessToken.Length, _physicalStateObj);
+
+ // Send federated authentication access token
+ _physicalStateObj.WriteByteArray(accessToken, accessToken.Length, 0);
+
+ _physicalStateObj.WritePacket(TdsEnums.HARDFLUSH);
+ _physicalStateObj._pendingData = true;
+ _physicalStateObj._messageStatus = 0;
+
+ _connHandler._federatedAuthenticationRequested = true;
+ }
+
private void SSPIData(byte[] receivedBuff, UInt32 receivedLength, byte[] sendBuff, ref UInt32 sendLength) {
SNISSPIData(receivedBuff, receivedLength, sendBuff, ref sendLength);
}
@@ -6184,6 +7502,39 @@ namespace System.Data.SqlClient {
}
}
+ private void LoadADALLibrary() {
+ // Outer check so we don't acquire lock once once it's loaded.
+ if (!s_fADALLoaded) {
+ lock (s_tdsParserLock) {
+ // re-check inside lock
+ if (!s_fADALLoaded) {
+ int result = ADALNativeWrapper.ADALInitialize();
+
+ if (0 == result) {
+ s_fADALLoaded = true;
+ }
+ else {
+ s_fADALLoaded = false;
+
+ SqlAuthenticationMethod authentication = SqlAuthenticationMethod.NotSpecified;
+
+ if (_connHandler.ConnectionOptions != null)
+ {
+ authentication = _connHandler.ConnectionOptions.Authentication;
+
+ // Only the below connection string options should have ended up calling this function.
+ Debug.Assert(authentication == SqlAuthenticationMethod.ActiveDirectoryIntegrated || authentication == SqlAuthenticationMethod.ActiveDirectoryPassword);
+ }
+
+ _physicalStateObj.AddError(new SqlError(0, (byte)0x00, (byte)TdsEnums.MIN_ERROR_CLASS, _server, Res.GetString(Res.SQL_ADALInitializeError, authentication.ToString("G"), result.ToString("X")), TdsEnums.INIT_ADAL_PACKAGE, 0));
+
+ ThrowExceptionAndWarning(_physicalStateObj);
+ }
+ }
+ }
+ }
+ }
+
internal byte[] GetDTCAddress(int timeout, TdsParserStateObject stateObj) {
// If this fails, the server will return a server error - Sameet Agarwal confirmed.
// Success: DTCAddress returned. Failure: SqlError returned.
@@ -6458,8 +7809,8 @@ namespace System.Data.SqlClient {
bool originalThreadHasParserLock = _connHandler.ThreadHasParserLockForClose;
try {
- // Dev11 Bug 385286 : ExecuteNonQueryAsync hangs when trying to write a parameter which generates ArgumentException and while handling that exception the server disconnects the connection
- // Need to set this to true such that if we have an error sending\processing the attention, we won't deadlock ourselves
+ // Dev11
+
_connHandler.ThreadHasParserLockForClose = true;
// If _outputPacketNumber prior to ResetBuffer was not equal to 1, a packet was already
@@ -6565,7 +7916,7 @@ namespace System.Data.SqlClient {
}, TaskScheduler.Default);
}
- // Finished [....]
+ // Finished sync
return null;
}
catch (Exception e) {
@@ -6586,11 +7937,12 @@ namespace System.Data.SqlClient {
}
}
- internal Task TdsExecuteRPC(_SqlRPC[] rpcArray, int timeout, bool inSchema, SqlNotificationRequest notificationRequest, TdsParserStateObject stateObj, bool isCommandProc, bool sync = true,
+ internal Task TdsExecuteRPC(SqlCommand cmd, _SqlRPC[] rpcArray, int timeout, bool inSchema, SqlNotificationRequest notificationRequest, TdsParserStateObject stateObj, bool isCommandProc, bool sync = true,
TaskCompletionSource<object> completion = null, int startRpc = 0, int startParam = 0) {
bool firstCall = (completion == null);
bool releaseConnectionLock = false;
+ Debug.Assert(cmd != null, @"cmd cannot be null inside TdsExecuteRPC");
Debug.Assert(!firstCall || startRpc == 0, "startRpc is not 0 on first call");
Debug.Assert(!firstCall || startParam == 0, "startParam is not 0 on first call");
Debug.Assert(!firstCall || !_connHandler.ThreadHasParserLockForClose, "Thread should not already have connection lock");
@@ -6674,6 +8026,20 @@ namespace System.Data.SqlClient {
if (param == null)
break; // End of parameters for this execute
+ // Throw an exception if ForceColumnEncryption is set on a parameter and the ColumnEncryption is not enabled on SqlConnection or SqlCommand
+ if (param.ForceColumnEncryption &&
+ !(cmd.ColumnEncryptionSetting == SqlCommandColumnEncryptionSetting.Enabled ||
+ (cmd.ColumnEncryptionSetting == SqlCommandColumnEncryptionSetting.UseConnectionSetting && cmd.Connection.IsColumnEncryptionSettingEnabled))) {
+ throw SQL.ParamInvalidForceColumnEncryptionSetting(param.ParameterName, rpcext.GetCommandTextOrRpcName());
+ }
+
+ // Check if the applications wants to force column encryption to avoid sending sensitive data to server
+ if (param.ForceColumnEncryption && param.CipherMetadata == null
+ && (param.Direction == ParameterDirection.Input || param.Direction == ParameterDirection.InputOutput)) {
+ // Application wants a parameter to be encrypted before sending it to server, however server doesnt think this parameter needs encryption.
+ throw SQL.ParamUnExpectedEncryptionMetadata(param.ParameterName, rpcext.GetCommandTextOrRpcName());
+ }
+
// Validate parameters are not variable length without size and with null value. MDAC 66522
param.Validate(i, isCommandProc);
@@ -6714,6 +8080,120 @@ namespace System.Data.SqlClient {
// Write parameter status
stateObj.WriteByte(rpcext.paramoptions[i]);
+ // MaxLen field is only written out for non-fixed length data types
+ // use the greater of the two sizes for maxLen
+ int actualSize;
+ int size = mt.IsSizeInCharacters ? param.GetParameterSize() * 2 : param.GetParameterSize();
+
+ //for UDTs, we calculate the length later when we get the bytes. This is a really expensive operation
+ if (mt.TDSType != TdsEnums.SQLUDT)
+ // getting the actualSize is expensive, cache here and use below
+ actualSize = param.GetActualSize();
+ else
+ actualSize = 0; //get this later
+
+ byte precision = 0;
+ byte scale = 0;
+
+ // scale and precision are only relevant for numeric and decimal types
+ // adjust the actual value scale and precision to match the user specified
+ if (mt.SqlDbType == SqlDbType.Decimal) {
+ precision = param.GetActualPrecision();
+ scale = param.GetActualScale();
+
+ if (precision > TdsEnums.MAX_NUMERIC_PRECISION) {
+ throw SQL.PrecisionValueOutOfRange(precision);
+ }
+
+ //
+ if (!isNull) {
+ if (isSqlVal) {
+ value = AdjustSqlDecimalScale((SqlDecimal)value, scale);
+
+ // If Precision is specified, verify value precision vs param precision
+ if (precision != 0) {
+ if (precision < ((SqlDecimal)value).Precision) {
+ throw ADP.ParameterValueOutOfRange((SqlDecimal)value);
+ }
+ }
+ }
+ else {
+ value = AdjustDecimalScale((Decimal)value, scale);
+
+ SqlDecimal sqlValue = new SqlDecimal((Decimal)value);
+
+ // If Precision is specified, verify value precision vs param precision
+ if (precision != 0) {
+ if (precision < sqlValue.Precision) {
+ throw ADP.ParameterValueOutOfRange((Decimal)value);
+ }
+ }
+ }
+ }
+ }
+
+ bool isParameterEncrypted = 0 != (rpcext.paramoptions[i] & TdsEnums.RPC_PARAM_ENCRYPTED);
+
+ // Additional information we need to send over wire to the server when writing encrypted parameters.
+ SqlColumnEncryptionInputParameterInfo encryptedParameterInfoToWrite = null;
+
+ // If the parameter is encrypted, we need to encrypt the value.
+ if (isParameterEncrypted) {
+ Debug.Assert(mt.TDSType != TdsEnums.SQLVARIANT &&
+ mt.TDSType != TdsEnums.SQLUDT &&
+ mt.TDSType != TdsEnums.SQLXMLTYPE &&
+ mt.TDSType != TdsEnums.SQLIMAGE &&
+ mt.TDSType != TdsEnums.SQLTEXT &&
+ mt.TDSType != TdsEnums.SQLNTEXT, "Type unsupported for encryption");
+
+ byte[] serializedValue = null;
+ byte[] encryptedValue = null;
+
+ if (!isNull) {
+ try {
+ if (isSqlVal) {
+ serializedValue = SerializeUnencryptedSqlValue(value, mt, actualSize, param.Offset, param.NormalizationRuleVersion, stateObj);
+ }
+ else {
+ // for codePageEncoded types, WriteValue simply expects the number of characters
+ // For plp types, we also need the encoded byte size
+ serializedValue = SerializeUnencryptedValue(value, mt, param.GetActualScale(), actualSize, param.Offset, isDataFeed, param.NormalizationRuleVersion, stateObj);
+ }
+
+ Debug.Assert(serializedValue != null, "serializedValue should not be null in TdsExecuteRPC.");
+ encryptedValue = SqlSecurityUtility.EncryptWithKey(serializedValue, param.CipherMetadata, _connHandler.ConnectionOptions.DataSource);
+ }
+ catch (Exception e) {
+ throw SQL.ParamEncryptionFailed(param.ParameterName, null, e);
+ }
+
+ Debug.Assert(encryptedValue != null && encryptedValue.Length > 0,
+ "encryptedValue should not be null or empty in TdsExecuteRPC.");
+ }
+ else {
+ encryptedValue = null;
+ }
+
+ // Change the datatype to varbinary(max).
+ // Since we don't know the size of the encrypted parameter on the server side, always set to (max).
+ //
+ mt = MetaType.MetaMaxVarBinary;
+ size = -1;
+ actualSize = (encryptedValue == null) ? 0 : encryptedValue.Length;
+
+ encryptedParameterInfoToWrite = new SqlColumnEncryptionInputParameterInfo(param.GetMetadataForTypeInfo(),
+ param.CipherMetadata);
+
+ // Set the value to the encrypted value and mark isSqlVal as false for VARBINARY encrypted value.
+ value = encryptedValue;
+ isSqlVal = false;
+ }
+
+ Debug.Assert(isParameterEncrypted == (encryptedParameterInfoToWrite != null),
+ "encryptedParameterInfoToWrite can be not null if and only if isParameterEncrypted is true.");
+
+ Debug.Assert(!isSqlVal || !isParameterEncrypted, "isParameterEncrypted can be true only if isSqlVal is false.");
+
//
// fixup the types by using the NullableType property of the MetaType class
//
@@ -6732,18 +8212,6 @@ namespace System.Data.SqlClient {
continue;
}
- // MaxLen field is only written out for non-fixed length data types
- // use the greater of the two sizes for maxLen
- int actualSize;
- int size = mt.IsSizeInCharacters ? param.GetParameterSize() * 2 : param.GetParameterSize();
-
- //for UDTs, we calculate the length later when we get the bytes. This is a really expensive operation
- if (mt.TDSType != TdsEnums.SQLUDT)
- // getting the actualSize is expensive, cache here and use below
- actualSize = param.GetActualSize();
- else
- actualSize = 0; //get this later
-
int codePageByteSize = 0;
int maxsize = 0;
@@ -6868,39 +8336,6 @@ namespace System.Data.SqlClient {
// scale and precision are only relevant for numeric and decimal types
if (mt.SqlDbType == SqlDbType.Decimal) {
- byte precision = param.GetActualPrecision();
- byte scale = param.GetActualScale();
-
- if (precision > TdsEnums.MAX_NUMERIC_PRECISION) {
- throw SQL.PrecisionValueOutOfRange(precision);
- }
-
- // bug 49512, make sure the value matches the scale the user enters
- if (!isNull) {
- if (isSqlVal) {
- value = AdjustSqlDecimalScale((SqlDecimal)value, scale);
-
- // If Precision is specified, verify value precision vs param precision
- if (precision != 0) {
- if (precision < ((SqlDecimal)value).Precision) {
- throw ADP.ParameterValueOutOfRange((SqlDecimal)value);
- }
- }
- }
- else {
- value = AdjustDecimalScale((Decimal)value, scale);
-
- SqlDecimal sqlValue = new SqlDecimal((Decimal)value);
-
- // If Precision is specified, verify value precision vs param precision
- if (precision != 0) {
- if (precision < sqlValue.Precision) {
- throw ADP.ParameterValueOutOfRange((Decimal)value);
- }
- }
- }
- }
-
if (0 == precision) {
if (_isShiloh)
stateObj.WriteByte(TdsEnums.DEFAULT_NUMERIC_PRECISION);
@@ -6978,10 +8413,15 @@ namespace System.Data.SqlClient {
else {
// for codePageEncoded types, WriteValue simply expects the number of characters
// For plp types, we also need the encoded byte size
- writeParamTask = WriteValue(value, mt, param.GetActualScale(), actualSize, codePageByteSize, param.Offset, stateObj, param.Size, isDataFeed);
+ writeParamTask = WriteValue(value, mt, isParameterEncrypted ? (byte)0 : param.GetActualScale(), actualSize, codePageByteSize, isParameterEncrypted ? 0 : param.Offset, stateObj, isParameterEncrypted ? 0 : param.Size, isDataFeed);
}
}
+ // Send encryption metadata for encrypted parameters.
+ if (isParameterEncrypted) {
+ writeParamTask = WriteEncryptionMetadata(writeParamTask, encryptedParameterInfoToWrite, stateObj);
+ }
+
if (!sync) {
if (writeParamTask == null) {
writeParamTask = stateObj.WaitForAccumulatedWrites();
@@ -6995,7 +8435,7 @@ namespace System.Data.SqlClient {
}
AsyncHelper.ContinueTask(writeParamTask, completion,
- () => TdsExecuteRPC(rpcArray, timeout, inSchema, notificationRequest, stateObj, isCommandProc, sync, completion,
+ () => TdsExecuteRPC(cmd, rpcArray, timeout, inSchema, notificationRequest, stateObj, isCommandProc, sync, completion,
startRpc: ii, startParam: i + 1),
connectionToDoom: _connHandler,
onFailure: exc => TdsExecuteRPC_OnFailure(exc, stateObj));
@@ -7301,7 +8741,7 @@ namespace System.Data.SqlClient {
case SqlDbType.Char:
stateObj.WriteByte(TdsEnums.SQLBIGCHAR);
WriteUnsignedShort(checked((ushort)(metaData.MaxLength)), stateObj);
- WriteUnsignedInt(_defaultCollation.info, stateObj); // TODO: Use metadata's collation??
+ WriteUnsignedInt(_defaultCollation.info, stateObj); //
stateObj.WriteByte(_defaultCollation.sortId);
break;
case SqlDbType.DateTime:
@@ -7333,13 +8773,13 @@ namespace System.Data.SqlClient {
case SqlDbType.NChar:
stateObj.WriteByte(TdsEnums.SQLNCHAR);
WriteUnsignedShort(checked((ushort)(metaData.MaxLength*2)), stateObj);
- WriteUnsignedInt(_defaultCollation.info, stateObj); // TODO: Use metadata's collation??
+ WriteUnsignedInt(_defaultCollation.info, stateObj); //
stateObj.WriteByte(_defaultCollation.sortId);
break;
case SqlDbType.NText:
stateObj.WriteByte(TdsEnums.SQLNVARCHAR);
WriteUnsignedShort(unchecked((ushort)MSS.SmiMetaData.UnlimitedMaxLengthIndicator), stateObj);
- WriteUnsignedInt(_defaultCollation.info, stateObj); // TODO: Use metadata's collation??
+ WriteUnsignedInt(_defaultCollation.info, stateObj); //
stateObj.WriteByte(_defaultCollation.sortId);
break;
case SqlDbType.NVarChar:
@@ -7350,7 +8790,7 @@ namespace System.Data.SqlClient {
else {
WriteUnsignedShort(checked((ushort)(metaData.MaxLength*2)), stateObj);
}
- WriteUnsignedInt(_defaultCollation.info, stateObj); // TODO: Use metadata's collation??
+ WriteUnsignedInt(_defaultCollation.info, stateObj); //
stateObj.WriteByte(_defaultCollation.sortId);
break;
case SqlDbType.Real:
@@ -7376,7 +8816,7 @@ namespace System.Data.SqlClient {
case SqlDbType.Text:
stateObj.WriteByte(TdsEnums.SQLBIGVARCHAR);
WriteUnsignedShort(unchecked((ushort)MSS.SmiMetaData.UnlimitedMaxLengthIndicator), stateObj);
- WriteUnsignedInt(_defaultCollation.info, stateObj); // TODO: Use metadata's collation??
+ WriteUnsignedInt(_defaultCollation.info, stateObj); //
stateObj.WriteByte(_defaultCollation.sortId);
break;
case SqlDbType.Timestamp:
@@ -7394,7 +8834,7 @@ namespace System.Data.SqlClient {
case SqlDbType.VarChar:
stateObj.WriteByte(TdsEnums.SQLBIGVARCHAR);
WriteUnsignedShort(unchecked((ushort)metaData.MaxLength), stateObj);
- WriteUnsignedInt(_defaultCollation.info, stateObj); // TODO: Use metadata's collation??
+ WriteUnsignedInt(_defaultCollation.info, stateObj); //
stateObj.WriteByte(_defaultCollation.sortId);
break;
case SqlDbType.Variant:
@@ -7580,6 +9020,146 @@ namespace System.Data.SqlClient {
return stateObj.WritePacket(TdsEnums.HARDFLUSH);
}
+ /// <summary>
+ /// Loads the column encryptions keys into cache. This will read the master key info,
+ /// decrypt the CEK and keep it ready for encryption.
+ /// </summary>
+ /// <returns></returns>
+ internal void LoadColumnEncryptionKeys (_SqlMetaDataSet metadataCollection, string serverName) {
+ if (_serverSupportsColumnEncryption && ShouldEncryptValuesForBulkCopy()) {
+ for (int col = 0; col < metadataCollection.Length; col++) {
+ if (null != metadataCollection[col]) {
+ _SqlMetaData md = metadataCollection[col];
+ if (md.isEncrypted) {
+ SqlSecurityUtility.DecryptSymmetricKey(md.cipherMD, serverName);
+ }
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// Writes a single entry of CEK Table into TDS Stream (for bulk copy).
+ /// </summary>
+ /// <returns></returns>
+ internal void WriteEncryptionEntries (ref SqlTceCipherInfoTable cekTable, TdsParserStateObject stateObj) {
+ for (int i =0; i < cekTable.Size; i++) {
+ // Write Db ID
+ WriteInt(cekTable[i].DatabaseId, stateObj);
+
+ // Write Key ID
+ WriteInt(cekTable[i].CekId, stateObj);
+
+ // Write Key Version
+ WriteInt(cekTable[i].CekVersion, stateObj);
+
+ // Write 8 bytes of key MD Version
+ Debug.Assert (8 == cekTable[i].CekMdVersion.Length);
+ stateObj.WriteByteArray (cekTable[i].CekMdVersion, 8, 0);
+
+ // We don't really need to send the keys
+ stateObj.WriteByte(0x00);
+ }
+ }
+
+ /// <summary>
+ /// Writes a CEK Table (as part of COLMETADATA token) for bulk copy.
+ /// </summary>
+ /// <returns></returns>
+ internal void WriteCekTable (_SqlMetaDataSet metadataCollection, TdsParserStateObject stateObj) {
+ if (!_serverSupportsColumnEncryption) {
+ return;
+ }
+
+ // If no cek table is present, send a count of 0 for table size
+ // Note- Cek table (with 0 entries) will be present if TCE
+ // was enabled and server supports it!
+ // OR if encryption was disabled in connection options
+ if (!metadataCollection.cekTable.HasValue ||
+ !ShouldEncryptValuesForBulkCopy()) {
+ WriteShort(0x00, stateObj);
+ return;
+ }
+
+ SqlTceCipherInfoTable cekTable = metadataCollection.cekTable.Value;
+ ushort count = (ushort)cekTable.Size;
+
+ WriteShort(count, stateObj);
+
+ WriteEncryptionEntries(ref cekTable, stateObj);
+ }
+
+ /// <summary>
+ /// Writes the UserType and TYPE_INFO values for CryptoMetadata (for bulk copy).
+ /// </summary>
+ /// <returns></returns>
+ internal void WriteTceUserTypeAndTypeInfo(SqlMetaDataPriv mdPriv, TdsParserStateObject stateObj) {
+ // Write the UserType (4 byte value)
+ WriteInt(0x0, stateObj); //
+
+ Debug.Assert(SqlDbType.Xml != mdPriv.type);
+ Debug.Assert(SqlDbType.Udt != mdPriv.type);
+
+ stateObj.WriteByte(mdPriv.tdsType);
+
+ switch (mdPriv.type) {
+ case SqlDbType.Decimal:
+ WriteTokenLength(mdPriv.tdsType, mdPriv.length, stateObj);
+ stateObj.WriteByte(mdPriv.precision);
+ stateObj.WriteByte(mdPriv.scale);
+ break;
+ case SqlDbType.Date:
+ // Nothing more to write!
+ break;
+ case SqlDbType.Time:
+ case SqlDbType.DateTime2:
+ case SqlDbType.DateTimeOffset:
+ stateObj.WriteByte(mdPriv.scale);
+ break;
+ default:
+ WriteTokenLength(mdPriv.tdsType, mdPriv.length, stateObj);
+ if (mdPriv.metaType.IsCharType && _isShiloh) {
+ WriteUnsignedInt(mdPriv.collation.info, stateObj);
+ stateObj.WriteByte(mdPriv.collation.sortId);
+ }
+ break;
+ }
+ }
+
+ /// <summary>
+ /// Writes the crypto metadata (as part of COLMETADATA token) for encrypted columns.
+ /// </summary>
+ /// <returns></returns>
+ internal void WriteCryptoMetadata(_SqlMetaData md, TdsParserStateObject stateObj) {
+ if (!_serverSupportsColumnEncryption || // TCE Feature supported
+ !md.isEncrypted || // Column is not encrypted
+ !ShouldEncryptValuesForBulkCopy()) { // TCE disabled on connection string
+ return;
+ }
+
+ // Write the ordinal
+ WriteShort (md.cipherMD.CekTableOrdinal, stateObj);
+
+ // Write UserType and TYPEINFO
+ WriteTceUserTypeAndTypeInfo(md.baseTI, stateObj);
+
+ // Write Encryption Algo
+ stateObj.WriteByte(md.cipherMD.CipherAlgorithmId);
+
+ if (TdsEnums.CustomCipherAlgorithmId == md.cipherMD.CipherAlgorithmId) {
+ // Write the algorithm name
+ Debug.Assert (md.cipherMD.CipherAlgorithmName.Length < 256);
+ stateObj.WriteByte((byte)md.cipherMD.CipherAlgorithmName.Length);
+ WriteString(md.cipherMD.CipherAlgorithmName, stateObj);
+ }
+
+ // Write Encryption Algo Type
+ stateObj.WriteByte(md.cipherMD.EncryptionType);
+
+ // Write Normalization Version
+ stateObj.WriteByte(md.cipherMD.NormalizationRuleVersion);
+ }
+
internal void WriteBulkCopyMetaData(_SqlMetaDataSet metadataCollection, int count, TdsParserStateObject stateObj) {
if (!(State == TdsParserState.OpenNotLoggedIn || State == TdsParserState.OpenLoggedIn)) {
throw ADP.ClosedConnectionError();
@@ -7588,6 +9168,9 @@ namespace System.Data.SqlClient {
stateObj.WriteByte(TdsEnums.SQLCOLMETADATA);
WriteShort(count, stateObj);
+ // Write CEK table - 0 count
+ WriteCekTable(metadataCollection, stateObj);
+
for (int i = 0; i < metadataCollection.Length; i++) {
if (metadataCollection[i] != null) {
_SqlMetaData md = metadataCollection[i];
@@ -7600,18 +9183,25 @@ namespace System.Data.SqlClient {
WriteShort(0x0000, stateObj);
}
+ // Write the flags
UInt16 flags;
-
flags = (UInt16)(md.updatability << 2);
flags |= (UInt16)(md.isNullable ? (UInt16)TdsEnums.Nullable : (UInt16)0);
flags |= (UInt16)(md.isIdentity ? (UInt16)TdsEnums.Identity : (UInt16)0);
- WriteShort(flags, stateObj); // write the flags
+ // Write the next byte of flags
+ if (_serverSupportsColumnEncryption) { // TCE Supported
+ if (ShouldEncryptValuesForBulkCopy()) { // TCE enabled on connection options
+ flags |= (UInt16)(md.isEncrypted ? (UInt16)(TdsEnums.IsEncrypted << 8) : (UInt16)0);
+ }
+ }
+
+ WriteShort(flags, stateObj);// write the flags
// todo:
// for xml WriteTokenLength results in a no-op
// discuss this with blaine ...
- // ([....]) xml datatype does not have token length in its metadata. So it should be a noop.
+ // (Microsoft) xml datatype does not have token length in its metadata. So it should be a noop.
switch (md.type) {
case SqlDbType.Decimal:
@@ -7652,12 +9242,127 @@ namespace System.Data.SqlClient {
WriteString(md.tableName, stateObj);
}
+ WriteCryptoMetadata(md, stateObj);
+
stateObj.WriteByte((byte)md.column.Length);
WriteString(md.column, stateObj);
}
} // end for loop
}
+ /// <summary>
+ /// Determines if a column value should be encrypted when using BulkCopy (based on connectionstring setting).
+ /// </summary>
+ /// <returns></returns>
+ internal bool ShouldEncryptValuesForBulkCopy () {
+ if (null != _connHandler &&
+ null != _connHandler.ConnectionOptions &&
+ SqlConnectionColumnEncryptionSetting.Enabled == _connHandler.ConnectionOptions.ColumnEncryptionSetting) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /// <summary>
+ /// Encrypts a column value (for SqlBulkCopy)
+ /// </summary>
+ /// <returns></returns>
+ internal object EncryptColumnValue (object value, SqlMetaDataPriv metadata, string column, TdsParserStateObject stateObj, bool isDataFeed, bool isSqlType) {
+ Debug.Assert (_serverSupportsColumnEncryption, "Server doesn't support encryption, yet we received encryption metadata");
+ Debug.Assert (ShouldEncryptValuesForBulkCopy(), "Encryption attempted when not requested");
+
+ if (isDataFeed) { // can't encrypt a stream column
+ SQL.StreamNotSupportOnEncryptedColumn(column);
+ }
+
+ int actualLengthInBytes;
+ switch(metadata.baseTI.metaType.NullableType) {
+ case TdsEnums.SQLBIGBINARY:
+ case TdsEnums.SQLBIGVARBINARY:
+ case TdsEnums.SQLIMAGE:
+ // For some datatypes, engine does truncation before storing the value. (For example, when
+ // trying to insert a varbinary(7000) into a varbinary(3000) column). Since we encrypt the
+ // column values, engine has no way to tell the size of the plaintext datatype. Therefore,
+ // we truncate the values based on target column sizes here before encrypting them. This
+ // truncation is only needed if we exceed the max column length or if the target column is
+ // not a blob type (eg. varbinary(max)). The actual work of truncating the column happens
+ // when we normalize and serialize the data buffers. The serialization routine expects us
+ // to report the size of data to be copied out (for serialization). If we underreport the
+ // size, truncation will happen for us!
+ actualLengthInBytes = (isSqlType) ? ((SqlBinary)value).Length : ((byte[])value).Length;
+ if (metadata.baseTI.length > 0 &&
+ actualLengthInBytes > metadata.baseTI.length) { // see comments agove
+ actualLengthInBytes = metadata.baseTI.length;
+ }
+ break;
+
+ case TdsEnums.SQLUNIQUEID:
+ actualLengthInBytes = GUID_SIZE; // that's a constant for guid
+ break;
+ case TdsEnums.SQLBIGCHAR:
+ case TdsEnums.SQLBIGVARCHAR:
+ case TdsEnums.SQLTEXT:
+ if (null == _defaultEncoding)
+ {
+ ThrowUnsupportedCollationEncountered(null); // stateObject only when reading
+ }
+
+ string stringValue = (isSqlType) ? ((SqlString)value).Value : (string)value;
+ actualLengthInBytes = _defaultEncoding.GetByteCount(stringValue);
+
+ // If the string length is > max length, then use the max length (see comments above)
+ if (metadata.baseTI.length > 0 &&
+ actualLengthInBytes > metadata.baseTI.length) {
+ actualLengthInBytes = metadata.baseTI.length; // this ensure truncation!
+ }
+
+ break;
+ case TdsEnums.SQLNCHAR:
+ case TdsEnums.SQLNVARCHAR:
+ case TdsEnums.SQLNTEXT:
+ actualLengthInBytes = ((isSqlType) ? ((SqlString)value).Value.Length : ((string)value).Length) * 2;
+
+ if (metadata.baseTI.length > 0 &&
+ actualLengthInBytes > metadata.baseTI.length) { // see comments above
+ actualLengthInBytes = metadata.baseTI.length;
+ }
+
+ break;
+
+ default:
+ actualLengthInBytes = metadata.baseTI.length;
+ break;
+ }
+
+ byte[] serializedValue;
+ if (isSqlType) {
+ // SqlType
+ serializedValue = SerializeUnencryptedSqlValue (value,
+ metadata.baseTI.metaType,
+ actualLengthInBytes,
+ offset : 0,
+ normalizationVersion: metadata.cipherMD.NormalizationRuleVersion,
+ stateObj: stateObj);
+ }
+ else {
+ serializedValue = SerializeUnencryptedValue (value,
+ metadata.baseTI.metaType,
+ metadata.baseTI.scale,
+ actualLengthInBytes,
+ offset: 0,
+ isDataFeed: isDataFeed,
+ normalizationVersion: metadata.cipherMD.NormalizationRuleVersion,
+ stateObj: stateObj);
+ }
+
+ Debug.Assert(serializedValue != null, "serializedValue should not be null in TdsExecuteRPC.");
+ return SqlSecurityUtility.EncryptWithKey(
+ serializedValue,
+ metadata.cipherMD,
+ _connHandler.ConnectionOptions.DataSource);
+ }
+
internal Task WriteBulkCopyValue(object value, SqlMetaDataPriv metadata, TdsParserStateObject stateObj, bool isSqlType, bool isDataFeed, bool isNull) {
Debug.Assert(!isSqlType || value is INullable, "isSqlType is true, but value can not be type cast to an INullable");
Debug.Assert(!isDataFeed ^ value is DataFeed, "Incorrect value for isDataFeed");
@@ -8681,7 +10386,8 @@ namespace System.Data.SqlClient {
// For MAX types, this method can only write everything in one big chunk. If multiple
// chunk writes needed, please use WritePlpBytes/WritePlpChars
- private Task WriteUnterminatedValue(object value, MetaType type, byte scale, int actualLength, int encodingByteSize, int offset, TdsParserStateObject stateObj, int paramSize, bool isDataFeed) {
+ private Task WriteUnterminatedValue(object value, MetaType type, byte scale, int actualLength, int encodingByteSize, int offset, TdsParserStateObject stateObj, int paramSize, bool isDataFeed)
+ {
Debug.Assert((null != value) && (DBNull.Value != value), "unexpected missing or empty object");
// parameters are always sent over as BIG or N types
@@ -8712,6 +10418,7 @@ namespace System.Data.SqlClient {
if (type.IsPlp) {
WriteInt(actualLength, stateObj); // chunk length
}
+
return stateObj.WriteByteArray((byte[])value, actualLength, offset, canAccumulate: false);
}
}
@@ -8875,6 +10582,360 @@ namespace System.Data.SqlClient {
// Debug.WriteLine("value: " + value.ToString(CultureInfo.InvariantCulture));
}
+ /// <summary>
+ /// Write parameter encryption metadata and returns a task if necessary.
+ /// </summary>
+ private Task WriteEncryptionMetadata(Task terminatedWriteTask, SqlColumnEncryptionInputParameterInfo columnEncryptionParameterInfo, TdsParserStateObject stateObj) {
+ Debug.Assert(columnEncryptionParameterInfo != null, @"columnEncryptionParameterInfo cannot be null");
+ Debug.Assert(stateObj != null, @"stateObj cannot be null");
+
+ // If there is not task already, simply write the encryption metadata synchronously.
+ if (terminatedWriteTask == null) {
+ WriteEncryptionMetadata(columnEncryptionParameterInfo, stateObj);
+ return null;
+ }
+ else {
+ // Otherwise, create a continuation task to write the encryption metadata after the previous write completes.
+ return AsyncHelper.CreateContinuationTask<SqlColumnEncryptionInputParameterInfo, TdsParserStateObject>(terminatedWriteTask,
+ WriteEncryptionMetadata, columnEncryptionParameterInfo, stateObj,
+ connectionToDoom: _connHandler);
+ }
+ }
+
+ /// <summary>
+ /// Write parameter encryption metadata.
+ /// </summary>
+ private void WriteEncryptionMetadata(SqlColumnEncryptionInputParameterInfo columnEncryptionParameterInfo, TdsParserStateObject stateObj) {
+ Debug.Assert(columnEncryptionParameterInfo != null, @"columnEncryptionParameterInfo cannot be null");
+ Debug.Assert(stateObj != null, @"stateObj cannot be null");
+
+ // Write the TypeInfo.
+ WriteSmiTypeInfo(columnEncryptionParameterInfo.ParameterMetadata, stateObj);
+
+ // Write the serialized array in columnEncryptionParameterInfo.
+ stateObj.WriteByteArray(columnEncryptionParameterInfo.SerializedWireFormat,
+ columnEncryptionParameterInfo.SerializedWireFormat.Length,
+ offsetBuffer: 0);
+ }
+
+ // For MAX types, this method can only write everything in one big chunk. If multiple
+ // chunk writes needed, please use WritePlpBytes/WritePlpChars
+ private byte[] SerializeUnencryptedValue(object value, MetaType type, byte scale, int actualLength, int offset, bool isDataFeed, byte normalizationVersion, TdsParserStateObject stateObj) {
+ Debug.Assert((null != value) && (DBNull.Value != value), "unexpected missing or empty object");
+
+ if (normalizationVersion != 0x01) {
+ throw SQL.UnsupportedNormalizationVersion(normalizationVersion);
+ }
+
+ // parameters are always sent over as BIG or N types
+ switch (type.NullableType) {
+ case TdsEnums.SQLFLTN:
+ if (type.FixedLength == 4)
+ return SerializeFloat((Single)value);
+ else {
+ Debug.Assert(type.FixedLength == 8, "Invalid length for SqlDouble type!");
+ return SerializeDouble((Double)value);
+ }
+
+ case TdsEnums.SQLBIGBINARY:
+ case TdsEnums.SQLBIGVARBINARY:
+ case TdsEnums.SQLIMAGE:
+ case TdsEnums.SQLUDT: {
+ Debug.Assert(!isDataFeed, "We cannot seriliaze streams");
+ Debug.Assert(value is byte[], "Value should be an array of bytes");
+
+ byte[] b = new byte[actualLength];
+ Buffer.BlockCopy((byte[])value, offset, b, 0, actualLength);
+ return b;
+ }
+
+ case TdsEnums.SQLUNIQUEID: {
+ System.Guid guid = (System.Guid)value;
+ byte[] b = guid.ToByteArray();
+
+ Debug.Assert((actualLength == b.Length) && (actualLength == 16), "Invalid length for guid type in com+ object");
+ return b;
+ }
+
+ case TdsEnums.SQLBITN: {
+ Debug.Assert(type.FixedLength == 1, "Invalid length for SqlBoolean type");
+
+ // We normalize to allow conversion across data types. BIT is serialized into a BIGINT.
+ return SerializeLong((bool)value == true ? 1 : 0, stateObj);
+ }
+
+ case TdsEnums.SQLINTN:
+ if (type.FixedLength == 1)
+ return SerializeLong((byte)value, stateObj);
+
+ if (type.FixedLength == 2)
+ return SerializeLong((Int16)value, stateObj);
+
+ if (type.FixedLength == 4)
+ return SerializeLong((Int32)value, stateObj);
+
+ Debug.Assert(type.FixedLength == 8, "invalid length for SqlIntN type: " + type.FixedLength.ToString(CultureInfo.InvariantCulture));
+ return SerializeLong((Int64)value, stateObj);
+
+ case TdsEnums.SQLBIGCHAR:
+ case TdsEnums.SQLBIGVARCHAR:
+ case TdsEnums.SQLTEXT: {
+ Debug.Assert(!isDataFeed, "We cannot seriliaze streams");
+ Debug.Assert((value is string || value is byte[]), "Value is a byte array or string");
+
+ if (value is byte[]) { // If LazyMat non-filled blob, send cookie rather than value
+ byte[] b = new byte[actualLength];
+ Buffer.BlockCopy((byte[])value, 0, b, 0, actualLength);
+ return b;
+ }
+ else {
+ return SerializeEncodingChar((string)value, actualLength, offset, _defaultEncoding);
+ }
+ }
+ case TdsEnums.SQLNCHAR:
+ case TdsEnums.SQLNVARCHAR:
+ case TdsEnums.SQLNTEXT:
+ case TdsEnums.SQLXMLTYPE: {
+ Debug.Assert(!isDataFeed, "We cannot seriliaze streams");
+ Debug.Assert((value is string || value is byte[]), "Value is a byte array or string");
+
+ if (value is byte[]) { // If LazyMat non-filled blob, send cookie rather than value
+ byte[] b = new byte[actualLength];
+ Buffer.BlockCopy((byte[])value, 0, b, 0, actualLength);
+ return b;
+ }
+ else { // convert to cchars instead of cbytes
+ actualLength >>= 1;
+ return SerializeString((string)value, actualLength, offset);
+ }
+ }
+ case TdsEnums.SQLNUMERICN:
+ Debug.Assert(type.FixedLength <= 17, "Decimal length cannot be greater than 17 bytes");
+ return SerializeDecimal((Decimal)value, stateObj);
+
+ case TdsEnums.SQLDATETIMN:
+ Debug.Assert(type.FixedLength <= 0xff, "Invalid Fixed Length");
+
+ TdsDateTime dt = MetaType.FromDateTime((DateTime)value, (byte)type.FixedLength);
+
+ if (type.FixedLength == 4) {
+ if (0 > dt.days || dt.days > UInt16.MaxValue)
+ throw SQL.SmallDateTimeOverflow(MetaType.ToDateTime(dt.days, dt.time, 4).ToString(CultureInfo.InvariantCulture));
+
+ if (null == stateObj._bIntBytes) {
+ stateObj._bIntBytes = new byte[4];
+ }
+
+ byte[] b = stateObj._bIntBytes;
+ int current = 0;
+
+ byte[] bPart = SerializeShort(dt.days, stateObj);
+ Buffer.BlockCopy(bPart, 0, b, current, 2);
+ current += 2;
+
+ bPart = SerializeShort(dt.time, stateObj);
+ Buffer.BlockCopy(bPart, 0, b, current, 2);
+
+ return b;
+ }
+ else {
+ if (null == stateObj._bLongBytes) {
+ stateObj._bLongBytes = new byte[8];
+ }
+ byte[] b = stateObj._bLongBytes;
+ int current = 0;
+
+ byte[] bPart = SerializeInt(dt.days, stateObj);
+ Buffer.BlockCopy(bPart, 0, b, current, 4);
+ current += 4;
+
+ bPart = SerializeInt(dt.time, stateObj);
+ Buffer.BlockCopy(bPart, 0, b, current, 4);
+
+ return b;
+ }
+
+ case TdsEnums.SQLMONEYN: {
+ return SerializeCurrency((Decimal)value, type.FixedLength, stateObj);
+ }
+
+ case TdsEnums.SQLDATE: {
+ return SerializeDate((DateTime)value);
+ }
+
+ case TdsEnums.SQLTIME:
+ if (scale > TdsEnums.DEFAULT_VARTIME_SCALE) {
+ throw SQL.TimeScaleValueOutOfRange(scale);
+ }
+ return SerializeTime((TimeSpan)value, scale, actualLength);
+
+ case TdsEnums.SQLDATETIME2:
+ if (scale > TdsEnums.DEFAULT_VARTIME_SCALE) {
+ throw SQL.TimeScaleValueOutOfRange(scale);
+ }
+ return SerializeDateTime2((DateTime)value, scale, actualLength);
+
+ case TdsEnums.SQLDATETIMEOFFSET:
+ if (scale > TdsEnums.DEFAULT_VARTIME_SCALE) {
+ throw SQL.TimeScaleValueOutOfRange(scale);
+ }
+ return SerializeDateTimeOffset((DateTimeOffset)value, scale, actualLength);
+
+ default:
+ throw SQL.UnsupportedDatatypeEncryption(type.TypeName);
+ } // switch
+ // Debug.WriteLine("value: " + value.ToString(CultureInfo.InvariantCulture));
+ }
+
+ // For MAX types, this method can only write everything in one big chunk. If multiple
+ // chunk writes needed, please use WritePlpBytes/WritePlpChars
+ private byte[] SerializeUnencryptedSqlValue(object value, MetaType type, int actualLength, int offset, byte normalizationVersion, TdsParserStateObject stateObj) {
+ Debug.Assert(((type.NullableType == TdsEnums.SQLXMLTYPE) ||
+ (value is INullable && !((INullable)value).IsNull)),
+ "unexpected null SqlType!");
+
+ if (normalizationVersion != 0x01) {
+ throw SQL.UnsupportedNormalizationVersion(normalizationVersion);
+ }
+
+ // parameters are always sent over as BIG or N types
+ switch (type.NullableType) {
+ case TdsEnums.SQLFLTN:
+ if (type.FixedLength == 4)
+ return SerializeFloat(((SqlSingle)value).Value);
+ else {
+ Debug.Assert(type.FixedLength == 8, "Invalid length for SqlDouble type!");
+ return SerializeDouble(((SqlDouble)value).Value);
+ }
+
+ case TdsEnums.SQLBIGBINARY:
+ case TdsEnums.SQLBIGVARBINARY:
+ case TdsEnums.SQLIMAGE: {
+ byte[] b = new byte[actualLength];
+
+ if (value is SqlBinary) {
+ Buffer.BlockCopy(((SqlBinary)value).Value, offset, b, 0, actualLength);
+ }
+ else {
+ Debug.Assert(value is SqlBytes);
+ Buffer.BlockCopy(((SqlBytes)value).Value, offset, b, 0, actualLength);
+ }
+ return b;
+ }
+
+ case TdsEnums.SQLUNIQUEID: {
+ byte[] b = ((SqlGuid)value).ToByteArray();
+
+ Debug.Assert((actualLength == b.Length) && (actualLength == 16), "Invalid length for guid type in com+ object");
+ return b;
+ }
+
+ case TdsEnums.SQLBITN: {
+ Debug.Assert(type.FixedLength == 1, "Invalid length for SqlBoolean type");
+
+ // We normalize to allow conversion across data types. BIT is serialized into a BIGINT.
+ return SerializeLong(((SqlBoolean)value).Value == true ? 1 : 0, stateObj);
+ }
+
+ case TdsEnums.SQLINTN:
+ // We normalize to allow conversion across data types. All data types below are serialized into a BIGINT.
+ if (type.FixedLength == 1)
+ return SerializeLong(((SqlByte)value).Value, stateObj);
+
+ if (type.FixedLength == 2)
+ return SerializeLong(((SqlInt16)value).Value, stateObj);
+
+ if (type.FixedLength == 4)
+ return SerializeLong(((SqlInt32)value).Value, stateObj);
+ else {
+ Debug.Assert(type.FixedLength == 8, "invalid length for SqlIntN type: " + type.FixedLength.ToString(CultureInfo.InvariantCulture));
+ return SerializeLong(((SqlInt64)value).Value, stateObj);
+ }
+
+ case TdsEnums.SQLBIGCHAR:
+ case TdsEnums.SQLBIGVARCHAR:
+ case TdsEnums.SQLTEXT:
+ if (value is SqlChars) {
+ String sch = new String(((SqlChars)value).Value);
+ return SerializeEncodingChar(sch, actualLength, offset, _defaultEncoding);
+ }
+ else {
+ Debug.Assert(value is SqlString);
+ return SerializeEncodingChar(((SqlString)value).Value, actualLength, offset, _defaultEncoding);
+ }
+
+
+ case TdsEnums.SQLNCHAR:
+ case TdsEnums.SQLNVARCHAR:
+ case TdsEnums.SQLNTEXT:
+ case TdsEnums.SQLXMLTYPE:
+ // convert to cchars instead of cbytes
+ // Xml type is already converted to string through GetCoercedValue
+ if (actualLength != 0)
+ actualLength >>= 1;
+
+ if (value is SqlChars) {
+ return SerializeCharArray(((SqlChars)value).Value, actualLength, offset);
+ }
+ else {
+ Debug.Assert(value is SqlString);
+ return SerializeString(((SqlString)value).Value, actualLength, offset);
+ }
+
+ case TdsEnums.SQLNUMERICN:
+ Debug.Assert(type.FixedLength <= 17, "Decimal length cannot be greater than 17 bytes");
+ return SerializeSqlDecimal((SqlDecimal)value, stateObj);
+
+ case TdsEnums.SQLDATETIMN:
+ SqlDateTime dt = (SqlDateTime)value;
+
+ if (type.FixedLength == 4) {
+ if (0 > dt.DayTicks || dt.DayTicks > UInt16.MaxValue)
+ throw SQL.SmallDateTimeOverflow(dt.ToString());
+
+ if (null == stateObj._bIntBytes) {
+ stateObj._bIntBytes = new byte[4];
+ }
+
+ byte[] b = stateObj._bIntBytes;
+ int current = 0;
+
+ byte[] bPart = SerializeShort(dt.DayTicks, stateObj);
+ Buffer.BlockCopy(bPart, 0, b, current, 2);
+ current += 2;
+
+ bPart = SerializeShort(dt.TimeTicks / SqlDateTime.SQLTicksPerMinute, stateObj);
+ Buffer.BlockCopy(bPart, 0, b, current, 2);
+
+ return b;
+ }
+ else {
+ if (null == stateObj._bLongBytes) {
+ stateObj._bLongBytes = new byte[8];
+ }
+
+ byte[] b = stateObj._bLongBytes;
+ int current = 0;
+
+ byte[] bPart = SerializeInt(dt.DayTicks, stateObj);
+ Buffer.BlockCopy(bPart, 0, b, current, 4);
+ current += 4;
+
+ bPart = SerializeInt(dt.TimeTicks, stateObj);
+ Buffer.BlockCopy(bPart, 0, b, current, 4);
+
+ return b;
+ }
+
+ case TdsEnums.SQLMONEYN: {
+ return SerializeSqlMoney((SqlMoney)value, type.FixedLength, stateObj);
+ }
+
+ default:
+ throw SQL.UnsupportedDatatypeEncryption(type.TypeName);
+ } // switch
+ }
+
//
// we always send over nullable types for parameters so we always write the varlen fields
//
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserHelperClasses.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserHelperClasses.cs
index fe5d91e1be7..7d2408a9042 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserHelperClasses.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserHelperClasses.cs
@@ -2,8 +2,8 @@
// <copyright file="TdsParserHelperClasses.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
@@ -19,8 +19,9 @@ namespace System.Data.SqlClient {
using System.Text;
using System.Threading;
using System.Security;
+ using System.Globalization;
- using Microsoft.SqlServer.Server; // for SMI metadata
+ using Microsoft.SqlServer.Server; // for SMI metadata
internal enum CallbackType {
Read = 0,
@@ -47,6 +48,7 @@ namespace System.Data.SqlClient {
THREADID,
MARS,
TRACEID,
+ FEDAUTHREQUIRED,
NUMOPT,
LASTOPT = 255
}
@@ -65,6 +67,210 @@ namespace System.Data.SqlClient {
Broken,
}
+ /// <summary>
+ /// Struct encapsulating the data to be sent to the server as part of Federated Authentication Feature Extension.
+ /// </summary>
+ internal struct FederatedAuthenticationFeatureExtensionData
+ {
+ internal TdsEnums.FedAuthLibrary libraryType;
+ internal bool fedAuthRequiredPreLoginResponse;
+ internal SqlAuthenticationMethod authentication;
+ internal byte[] accessToken;
+ }
+
+ /// <summary>
+ /// <para> Represents a single encrypted value for a CEK. It contains the encrypted CEK,
+ /// the store type, name,the key path and encryption algorithm.</para>
+ /// </summary>
+ internal struct SqlEncryptionKeyInfo {
+ internal byte[] encryptedKey; // the encrypted "column encryption key"
+ internal int databaseId;
+ internal int cekId;
+ internal int cekVersion;
+ internal byte[] cekMdVersion;
+ internal string keyPath;
+ internal string keyStoreName;
+ internal string algorithmName;
+ internal byte normalizationRuleVersion;
+ }
+
+ /// <summary>
+ /// <para> Encapsulates one entry in the CipherInfo table sent as part of Colmetadata.
+ /// The same CEK is encrypted multiple times with different master keys (for master key
+ /// rotation scenario) We need to keep all these around until we can resolve the CEK
+ /// using the correct master key.</para>
+ /// </summary>
+ internal struct SqlTceCipherInfoEntry {
+
+ /// <summary>
+ /// List of Column Encryption Key Information.
+ /// </summary>
+ private readonly List<SqlEncryptionKeyInfo> _columnEncryptionKeyValues;
+
+ /// <summary>
+ /// Key Ordinal.
+ /// </summary>
+ private readonly int _ordinal;
+
+ /// <summary>
+ /// Database ID
+ /// </summary>
+ private int _databaseId;
+
+ /// <summary>
+ /// Cek ID
+ /// </summary>
+ private int _cekId;
+
+ /// <summary>
+ /// Cek Version
+ /// </summary>
+ private int _cekVersion;
+
+ /// <summary>
+ /// Cek MD Version
+ /// </summary>
+ private byte[] _cekMdVersion;
+
+ /// <summary>
+ /// Return the ordinal.
+ /// </summary>
+ internal int Ordinal {
+ get {
+ return _ordinal;
+ }
+ }
+
+ /// <summary>
+ /// Return the DatabaseID.
+ /// </summary>
+ internal int DatabaseId {
+ get {
+ return _databaseId;
+ }
+ }
+
+ /// <summary>
+ /// Return the CEK ID.
+ /// </summary>
+ internal int CekId {
+ get {
+ return _cekId;
+ }
+ }
+
+ /// <summary>
+ /// Return the CEK Version.
+ /// </summary>
+ internal int CekVersion {
+ get {
+ return _cekVersion;
+ }
+ }
+
+ /// <summary>
+ /// Return the CEK MD Version.
+ /// </summary>
+ internal byte[] CekMdVersion {
+ get {
+ return _cekMdVersion;
+ }
+ }
+
+ /// <summary>
+ /// Return the list of Column Encryption Key Values.
+ /// </summary>
+ internal List<SqlEncryptionKeyInfo> ColumnEncryptionKeyValues {
+ get {
+ return _columnEncryptionKeyValues;
+ }
+ }
+
+ /// <summary>
+ /// Add an entry to the list of ColumnEncryptionKeyValues.
+ /// </summary>
+ /// <param name="encryptedKey"></param>
+ /// <param name="databaseId"></param>
+ /// <param name="cekId"></param>
+ /// <param name="cekVersion"></param>
+ /// <param name="cekMdVersion"></param>
+ /// <param name="keyPath"></param>
+ /// <param name="keyStoreName"></param>
+ /// <param name="algorithmName"></param>
+ internal void Add(byte[] encryptedKey, int databaseId, int cekId, int cekVersion, byte[] cekMdVersion, string keyPath, string keyStoreName, string algorithmName) {
+
+ Debug.Assert(_columnEncryptionKeyValues != null, "_columnEncryptionKeyValues should already be initialized.");
+
+ SqlEncryptionKeyInfo encryptionKey = new SqlEncryptionKeyInfo();
+ encryptionKey.encryptedKey = encryptedKey;
+ encryptionKey.databaseId = databaseId;
+ encryptionKey.cekId = cekId;
+ encryptionKey.cekVersion = cekVersion;
+ encryptionKey.cekMdVersion = cekMdVersion;
+ encryptionKey.keyPath = keyPath;
+ encryptionKey.keyStoreName = keyStoreName;
+ encryptionKey.algorithmName = algorithmName;
+ _columnEncryptionKeyValues.Add(encryptionKey);
+
+ if (0 == _databaseId) {
+ _databaseId = databaseId;
+ _cekId = cekId;
+ _cekVersion = cekVersion;
+ _cekMdVersion = cekMdVersion;
+ }
+ else {
+ Debug.Assert(_databaseId == databaseId);
+ Debug.Assert(_cekId == cekId);
+ Debug.Assert(_cekVersion == cekVersion);
+ Debug.Assert (_cekMdVersion != null && cekMdVersion != null && _cekMdVersion.Length == _cekMdVersion.Length);
+ }
+ }
+
+ /// <summary>
+ /// Constructor.
+ /// </summary>
+ /// <param name="ordinal"></param>
+ internal SqlTceCipherInfoEntry(int ordinal = 0) : this() {
+ _ordinal = ordinal;
+ _databaseId = 0;
+ _cekId = 0;
+ _cekVersion = 0;
+ _cekMdVersion = null;
+ _columnEncryptionKeyValues = new List<SqlEncryptionKeyInfo>();
+ }
+ }
+
+ /// <summary>
+ /// <para> Represents a table with various CEKs used in a resultset. Each entry corresponds to one (unique) CEK. The CEK
+ /// may have been encrypted using multiple master keys (giving us multiple CEK values). All these values form one single
+ /// entry in this table.</para>
+ ///</summary>
+ internal struct SqlTceCipherInfoTable {
+ private readonly SqlTceCipherInfoEntry [] keyList;
+
+ internal SqlTceCipherInfoTable (int tabSize) {
+ Debug.Assert (0 < tabSize, "Invalid Table Size");
+ keyList = new SqlTceCipherInfoEntry[tabSize];
+ }
+
+ internal SqlTceCipherInfoEntry this [int index] {
+ get {
+ Debug.Assert (index < keyList.Length, "Invalid index specified.");
+ return keyList[index];
+ }
+ set {
+ Debug.Assert (index < keyList.Length, "Invalid index specified.");
+ keyList[index] = value;
+ }
+ }
+
+ internal int Size {
+ get {
+ return keyList.Length;
+ }
+ }
+ }
+
sealed internal class SqlCollation {
// First 20 bits of info field represent the lcid, bits 21-25 are compare options
private const uint IgnoreCase = 1 << 20; // bit 21 - IgnoreCase
@@ -230,6 +436,7 @@ namespace System.Data.SqlClient {
}
sealed internal class SqlLogin {
+ internal SqlAuthenticationMethod authentication = SqlAuthenticationMethod.NotSpecified; // Authentication type
internal int timeout; // login timeout
internal bool userInstance = false; // user instance
internal string hostName = ""; // client machine name
@@ -258,6 +465,20 @@ namespace System.Data.SqlClient {
internal UInt32 tdsVersion;
}
+ sealed internal class SqlFedAuthInfo {
+ internal string spn;
+ internal string stsurl;
+ public override string ToString() {
+ return String.Format(CultureInfo.InvariantCulture, "STSURL: {0}, SPN: {1}", stsurl ?? String.Empty, spn ?? String.Empty);
+ }
+ }
+
+ sealed internal class SqlFedAuthToken {
+ internal UInt32 dataLen;
+ internal byte[] accessToken;
+ internal long expirationFileTime;
+ }
+
sealed internal class _SqlMetaData : SqlMetaDataPriv, ICloneable {
internal string column;
@@ -337,9 +558,11 @@ namespace System.Data.SqlClient {
internal int[] indexMap;
internal int visibleColumns;
internal DataTable schemaTable;
- private readonly _SqlMetaData[] metaDataArray;
+ internal readonly SqlTceCipherInfoTable? cekTable; // table of "column encryption keys" used for this metadataset
+ internal readonly _SqlMetaData[] metaDataArray;
- internal _SqlMetaDataSet(int count) {
+ internal _SqlMetaDataSet(int count, SqlTceCipherInfoTable? cipherTable) {
+ cekTable = cipherTable;
metaDataArray = new _SqlMetaData[count];
for(int i = 0; i < metaDataArray.Length; ++i) {
metaDataArray[i] = new _SqlMetaData(i);
@@ -428,6 +651,170 @@ namespace System.Data.SqlClient {
}
}
+ /// <summary>
+ /// Represents Encryption related information of the cipher data.
+ /// </summary>
+ internal class SqlCipherMetadata {
+
+ /// <summary>
+ /// Cipher Info Entry.
+ /// </summary>
+ private SqlTceCipherInfoEntry? _sqlTceCipherInfoEntry;
+
+ /// <summary>
+ /// Encryption Algorithm Id.
+ /// </summary>
+ private readonly byte _cipherAlgorithmId;
+
+ /// <summary>
+ /// Encryption Algorithm Name.
+ /// </summary>
+ private readonly string _cipherAlgorithmName;
+
+ /// <summary>
+ /// Encryption Type.
+ /// </summary>
+ private readonly byte _encryptionType;
+
+ /// <summary>
+ /// Normalization Rule Version.
+ /// </summary>
+ private readonly byte _normalizationRuleVersion;
+
+ /// <summary>
+ /// Encryption Algorithm Handle.
+ /// </summary>
+ private SqlClientEncryptionAlgorithm _sqlClientEncryptionAlgorithm;
+
+ /// <summary>
+ /// Sql Encryption Key Info.
+ /// </summary>
+ private SqlEncryptionKeyInfo? _sqlEncryptionKeyInfo;
+
+ /// <summary>
+ /// Ordinal (into the Cek Table).
+ /// </summary>
+ private readonly ushort _ordinal;
+
+ /// <summary>
+ /// Return the Encryption Info Entry.
+ /// </summary>
+ internal SqlTceCipherInfoEntry? EncryptionInfo {
+ get {
+ return _sqlTceCipherInfoEntry;
+ }
+ set {
+ Debug.Assert(!_sqlTceCipherInfoEntry.HasValue, "We can only set the EncryptionInfo once.");
+ _sqlTceCipherInfoEntry = value;
+ }
+ }
+
+ /// <summary>
+ /// Return the cipher's encryption algorithm id.
+ /// </summary>
+ internal byte CipherAlgorithmId {
+ get {
+ return _cipherAlgorithmId;
+ }
+ }
+
+ /// <summary>
+ /// Return the cipher's encryption algorithm name (could be null).
+ /// </summary>
+ internal string CipherAlgorithmName {
+ get {
+ return _cipherAlgorithmName;
+ }
+ }
+
+ /// <summary>
+ /// Return EncryptionType (Deterministic, Randomized, etc.)
+ /// </summary>
+ internal byte EncryptionType {
+ get {
+ return _encryptionType;
+ }
+ }
+
+ /// <summary>
+ /// Return normalization rule version.
+ /// </summary>
+ internal byte NormalizationRuleVersion {
+ get {
+ return _normalizationRuleVersion;
+ }
+ }
+
+ /// <summary>
+ /// Return the cipher encyrption algorithm handle.
+ /// </summary>
+ internal SqlClientEncryptionAlgorithm CipherAlgorithm {
+ get {
+ return _sqlClientEncryptionAlgorithm;
+ }
+ set {
+ Debug.Assert(_sqlClientEncryptionAlgorithm == null, "_sqlClientEncryptionAlgorithm should not be set more than once.");
+ _sqlClientEncryptionAlgorithm = value;
+ }
+ }
+
+ /// <summary>
+ /// Return Encryption Key Info.
+ /// </summary>
+ internal SqlEncryptionKeyInfo? EncryptionKeyInfo {
+ get {
+ return _sqlEncryptionKeyInfo;
+ }
+
+ set {
+ Debug.Assert(!_sqlEncryptionKeyInfo.HasValue, "_sqlEncryptionKeyInfo should not be set more than once.");
+ _sqlEncryptionKeyInfo = value;
+ }
+ }
+
+ /// <summary>
+ /// Return Ordinal into Cek Table.
+ /// </summary>
+ internal ushort CekTableOrdinal {
+ get {
+ return _ordinal;
+ }
+ }
+
+ /// <summary>
+ /// Constructor.
+ /// </summary>
+ /// <param name="sqlTceCipherInfoEntry"></param>
+ /// <param name="sqlClientEncryptionAlgorithm"></param>
+ /// <param name="cipherAlgorithmId"></param>
+ /// <param name="encryptionType"></param>
+ /// <param name="normalizationRuleVersion"></param>
+ internal SqlCipherMetadata (SqlTceCipherInfoEntry? sqlTceCipherInfoEntry,
+ ushort ordinal,
+ byte cipherAlgorithmId,
+ string cipherAlgorithmName,
+ byte encryptionType,
+ byte normalizationRuleVersion) {
+ Debug.Assert(!sqlTceCipherInfoEntry.Equals(default(SqlTceCipherInfoEntry)), "sqlTceCipherInfoEntry should not be un-initialized.");
+
+ _sqlTceCipherInfoEntry = sqlTceCipherInfoEntry;
+ _ordinal = ordinal;
+ _cipherAlgorithmId = cipherAlgorithmId;
+ _cipherAlgorithmName = cipherAlgorithmName;
+ _encryptionType = encryptionType;
+ _normalizationRuleVersion = normalizationRuleVersion;
+ _sqlEncryptionKeyInfo = null;
+ }
+
+ /// <summary>
+ /// Do we have an handle to the cipher encryption algorithm already ?
+ /// </summary>
+ /// <returns></returns>
+ internal bool IsAlgorithmInitialized() {
+ return (null != _sqlClientEncryptionAlgorithm) ? true : false;
+ }
+ }
+
internal class SqlMetaDataPriv {
internal SqlDbType type; // SqlDbType enum value
internal byte tdsType; // underlying tds type
@@ -462,6 +849,9 @@ namespace System.Data.SqlClient {
internal string structuredTypeName;
internal IList<SmiMetaData> structuredFields;
+ internal bool isEncrypted; // TCE encrypted?
+ internal SqlMetaDataPriv baseTI; // for encrypted columns, represents the TYPE_INFO for plaintext value
+ internal SqlCipherMetadata cipherMD; // Cipher related metadata for encrypted columns.
internal SqlMetaDataPriv() {
}
@@ -493,6 +883,157 @@ namespace System.Data.SqlClient {
this.structuredTypeName = original.structuredTypeName;
this.structuredFields = original.structuredFields;
}
+
+ /// <summary>
+ /// Is the algorithm handle for the cipher encryption initialized ?
+ /// </summary>
+ /// <returns></returns>
+ internal bool IsAlgorithmInitialized() {
+ if (null != cipherMD) {
+ return cipherMD.IsAlgorithmInitialized();
+ }
+
+ return false;
+ }
+
+ /// <summary>
+ /// Returns the normalization rule version byte.
+ /// </summary>
+ /// <returns></returns>
+ internal byte NormalizationRuleVersion {
+ get {
+ if (null != cipherMD){
+ return cipherMD.NormalizationRuleVersion;
+ }
+
+ return 0x00;
+ }
+ }
+ }
+
+ /// <summary>
+ /// Class encapsulating additional information when sending encrypted input parameters.
+ /// </summary>
+ sealed internal class SqlColumnEncryptionInputParameterInfo
+ {
+ /// <summary>
+ /// Metadata of the parameter to write the TYPE_INFO of the unencrypted column data type.
+ /// </summary>
+ private readonly SmiParameterMetaData _smiParameterMetadata;
+
+ /// <summary>
+ /// Column encryption related metadata.
+ /// </summary>
+ private readonly SqlCipherMetadata _cipherMetadata;
+
+ /// <summary>
+ /// Serialized format for a subset of members.
+ /// Does not include _smiParameterMetadata's serialization.
+ /// </summary>
+ private readonly byte[] _serializedWireFormat;
+
+ /// <summary>
+ /// Return the SMI Parameter Metadata.
+ /// </summary>
+ internal SmiParameterMetaData ParameterMetadata {
+ get {
+ return _smiParameterMetadata;
+ }
+ }
+
+ /// <summary>
+ /// Return the serialized format for some members.
+ /// This is pre-calculated and cached since members are immutable.
+ /// Does not include _smiParameterMetadata's serialization.
+ /// </summary>
+ internal byte[] SerializedWireFormat
+ {
+ get {
+ return _serializedWireFormat;
+ }
+ }
+
+ /// <summary>
+ /// Constructor.
+ /// </summary>
+ /// <param name="smiParameterMetadata"></param>
+ /// <param name="cipherMetadata"></param>
+ internal SqlColumnEncryptionInputParameterInfo(SmiParameterMetaData smiParameterMetadata, SqlCipherMetadata cipherMetadata) {
+ Debug.Assert(smiParameterMetadata != null, "smiParameterMetadata should not be null.");
+ Debug.Assert(cipherMetadata != null, "cipherMetadata should not be null");
+ Debug.Assert(cipherMetadata.EncryptionKeyInfo.HasValue, "cipherMetadata.EncryptionKeyInfo.HasValue should be true.");
+
+ _smiParameterMetadata = smiParameterMetadata;
+ _cipherMetadata = cipherMetadata;
+ _serializedWireFormat = SerializeToWriteFormat();
+ }
+
+ /// <summary>
+ /// Serializes some data members to wire format.
+ /// </summary>
+ private byte[] SerializeToWriteFormat() {
+ int totalLength = 0;
+
+ // CipherAlgorithmId.
+ totalLength += sizeof(byte);
+
+ // Encryption Type.
+ totalLength += sizeof(byte);
+
+ // Database id of the encryption key.
+ totalLength += sizeof(int);
+
+ // Id of the encryption key.
+ totalLength += sizeof(int);
+
+ // Version of the encryption key.
+ totalLength += sizeof(int);
+
+ // Metadata version of the encryption key.
+ totalLength += _cipherMetadata.EncryptionKeyInfo.Value.cekMdVersion.Length;
+
+ // Normalization Rule Version.
+ totalLength += sizeof(byte);
+
+ byte[] serializedWireFormat = new byte[totalLength];
+
+ // No:of bytes consumed till now. Running variable.
+ int consumedBytes = 0;
+
+ // 1 - Write Cipher Algorithm Id.
+ serializedWireFormat[consumedBytes++] = _cipherMetadata.CipherAlgorithmId;
+
+ // 2 - Write Encryption Type.
+ serializedWireFormat[consumedBytes++] = _cipherMetadata.EncryptionType;
+
+ // 3 - Write the database id of the encryption key.
+ SerializeIntIntoBuffer(_cipherMetadata.EncryptionKeyInfo.Value.databaseId, serializedWireFormat, ref consumedBytes);
+
+ // 4 - Write the id of the encryption key.
+ SerializeIntIntoBuffer(_cipherMetadata.EncryptionKeyInfo.Value.cekId, serializedWireFormat, ref consumedBytes);
+
+ // 5 - Write the version of the encryption key.
+ SerializeIntIntoBuffer(_cipherMetadata.EncryptionKeyInfo.Value.cekVersion, serializedWireFormat, ref consumedBytes);
+
+ // 6 - Write the metadata version of the encryption key.
+ Buffer.BlockCopy(_cipherMetadata.EncryptionKeyInfo.Value.cekMdVersion, 0, serializedWireFormat, consumedBytes, _cipherMetadata.EncryptionKeyInfo.Value.cekMdVersion.Length);
+ consumedBytes += _cipherMetadata.EncryptionKeyInfo.Value.cekMdVersion.Length;
+
+ // 7 - Write Normalization Rule Version.
+ serializedWireFormat[consumedBytes++] = _cipherMetadata.NormalizationRuleVersion;
+
+ return serializedWireFormat;
+ }
+
+ /// <summary>
+ /// Serializes an int into the provided buffer and offset.
+ /// </summary>
+ private void SerializeIntIntoBuffer(int value, byte[] buffer, ref int offset) {
+ buffer[offset++] = (byte)(value & 0xff);
+ buffer[offset++] = (byte)((value >> 8) & 0xff);
+ buffer[offset++] = (byte)((value >> 16) & 0xff);
+ buffer[offset++] = (byte)((value >> 24) & 0xff);
+ }
}
sealed internal class _SqlRPC {
@@ -513,6 +1054,16 @@ namespace System.Data.SqlClient {
internal int warningsIndexStart;
internal int warningsIndexEnd;
internal SqlErrorCollection warnings;
+ internal bool needsFetchParameterEncryptionMetadata;
+ internal string GetCommandTextOrRpcName() {
+ if (TdsEnums.RPC_PROCID_EXECUTESQL == ProcID) {
+ // Param 0 is the actual sql executing
+ return (string)parameters[0].Value;
+ }
+ else {
+ return rpcName;
+ }
+ }
}
sealed internal class SqlReturnValue : SqlMetaDataPriv {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserSafeHandles.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserSafeHandles.cs
index 1bc1b7398ad..6ec933e0578 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserSafeHandles.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserSafeHandles.cs
@@ -2,8 +2,8 @@
// <copyright file="TdsParserSafeHandles.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserSessionPool.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserSessionPool.cs
index d60e9ecdc77..cb4d9b10da7 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserSessionPool.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserSessionPool.cs
@@ -2,8 +2,8 @@
// <copyright file="TdsParserSessionPool.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserStateObject.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserStateObject.cs
index 81941166389..ed189942b10 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserStateObject.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserStateObject.cs
@@ -2,8 +2,8 @@
// <copyright file="TdsParserStateObject.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
@@ -151,6 +151,10 @@ namespace System.Data.SqlClient {
internal Decoder _plpdecoder = null; // Decoder object to process plp character data
internal bool _accumulateInfoEvents= false; // TRUE - accumulate info messages during TdsParser.Run, FALSE - fire them
internal List<SqlError> _pendingInfoEvents = null;
+ internal byte[] _bLongBytes = null; // scratch buffer to serialize Long values (8 bytes).
+ internal byte[] _bIntBytes = null; // scratch buffer to serialize Int values (4 bytes).
+ internal byte[] _bShortBytes = null; // scratch buffer to serialize Short values (2 bytes).
+ internal byte[] _bDecimalBytes = null; // scratch buffer to serialize decimal values (17 bytes).
//
// DO NOT USE THIS BUFFER FOR OTHER THINGS.
@@ -642,7 +646,7 @@ namespace System.Data.SqlClient {
// Should only be called for MARS - that is the only time we need to take
// the ResetConnection lock!
- // SQL BU DT 333026 - it was raised in a security review by [....] questioning whether
+ // SQL BU DT 333026 - it was raised in a security review by Microsoft questioning whether
// we need to actually process the resulting packet (sp_reset ack or error) to know if the
// reset actually succeeded. There was a concern that if the reset failed and we proceeded
// there might be a security issue present. We have been assured by the server that if
@@ -1034,7 +1038,7 @@ namespace System.Data.SqlClient {
// either TDS stream is corrupted or there is multithreaded misuse of connection
// NOTE: usually we do not proactively apply checks to TDS data, but this situation happened several times
// and caused infinite loop in CleanWire (VSTFDEVDIV\DEVDIV2:149937)
- throw SQL.ParsingError();
+ throw SQL.ParsingError(ParsingErrorState.CorruptedTdsStream);
}
return true;
@@ -1607,9 +1611,9 @@ namespace System.Data.SqlClient {
Debug.Assert(_syncOverAsync || !_asyncReadWithoutSnapshot, "This method is not safe to call when doing sync over async");
if (null == encoding) {
- // Bug 462435:CR: TdsParser.DrainData(stateObj) hitting timeout exception after Connection Resiliency change
- // http://vstfdevdiv:8080/web/wi.aspx?pcguid=22f9acc9-569a-41ff-b6ac-fac1b6370209&id=462435
- // Need to skip the current column before throwing the error - this ensures that the state shared between this and the data reader is consistent when calling DrainData
+ //
+
+
if (isPlp) {
ulong ignored;
if (!_parser.TrySkipPlpValue((ulong)length, this, out ignored)) {
@@ -2042,8 +2046,8 @@ namespace System.Data.SqlClient {
TaskCompletionSource<object> source = _networkPacketTaskSource;
if (_parser.Connection.IsInPool) {
- // Dev11 Bug 390048 : Timing issue between OnTimeout and ReadAsyncCallback results in SqlClient's packet parsing going out of [....]
- // We should never timeout if the connection is currently in the pool: the safest thing to do here is to doom the connection to avoid corruption
+ // Dev11
+
Debug.Assert(_parser.Connection.IsConnectionDoomed, "Timeout occurred while the connection is in the pool");
_parser.State = TdsParserState.Broken;
_parser.Connection.BreakConnection();
@@ -2146,7 +2150,7 @@ namespace System.Data.SqlClient {
}
// -1 == Infinite
- // 0 == Already timed out (NOTE: To simulate the same behavior as [....] we will only timeout on 0 if we receive an IO Pending from SNI)
+ // 0 == Already timed out (NOTE: To simulate the same behavior as sync we will only timeout on 0 if we receive an IO Pending from SNI)
// >0 == Actual timeout remaining
int msecsRemaining = GetTimeoutRemaining();
if (msecsRemaining > 0) {
@@ -2202,7 +2206,7 @@ namespace System.Data.SqlClient {
ChangeNetworkPacketTimeout(0, Timeout.Infinite);
}
// DO NOT HANDLE PENDING READ HERE - which is TdsEnums.SNI_SUCCESS_IO_PENDING state.
- // That is handled by user who initiated async read, or by ReadNetworkPacket which is [....] over async.
+ // That is handled by user who initiated async read, or by ReadNetworkPacket which is sync over async.
}
finally {
if (readPacket != IntPtr.Zero) {
@@ -2368,7 +2372,7 @@ namespace System.Data.SqlClient {
else {
if (_parser._loginWithFailover)
{
- // For DbMirroring Failover during login, never break the connection, just close the TdsParser
+ // For DB Mirroring Failover during login, never break the connection, just close the TdsParser (Devdiv 846298)
_parser.Disconnect();
}
else if ((_parser.State == TdsParserState.OpenNotLoggedIn) && (_parser.Connection.ConnectionOptions.MultiSubnetFailover))
@@ -2441,7 +2445,7 @@ namespace System.Data.SqlClient {
AssertValidState();
}
else {
- throw SQL.ParsingError();
+ throw SQL.ParsingError(ParsingErrorState.ProcessSniPacketFailed);
}
}
}
@@ -3080,7 +3084,7 @@ namespace System.Data.SqlClient {
Debug.Assert(Parser.Connection._parserLock.ThreadMayHaveLock(), "Thread is writing without taking the connection lock");
Task task = SNIWritePacket(Handle, packet, out sniError, canAccumulate, callerHasConnectionLock: true);
- // Check to see if the timeout has occured. This time out code is special case code to allow BCP writes to timeout to fix bug 350558, eventually we should make all writes timeout.
+ // Check to see if the timeout has occured. This time out code is special case code to allow BCP writes to timeout to fix
if (_bulkCopyOpperationInProgress && 0 == GetTimeoutRemaining()) {
_parser.Connection.ThreadHasParserLockForClose = true;
try {
@@ -3274,7 +3278,7 @@ namespace System.Data.SqlClient {
internal void AddError(SqlError error) {
Debug.Assert(error != null, "Trying to add a null error");
- // Switch to [....] once we see an error
+ // Switch to sync once we see an error
_syncOverAsync = true;
lock (_errorAndWarningsLock) {
@@ -3308,7 +3312,7 @@ namespace System.Data.SqlClient {
internal void AddWarning(SqlError error) {
Debug.Assert(error != null, "Trying to add a null error");
- // Switch to [....] once we see a warning
+ // Switch to sync once we see a warning
_syncOverAsync = true;
lock (_errorAndWarningsLock){
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserStaticMethods.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserStaticMethods.cs
index 3b85484e02c..853e76fc23f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserStaticMethods.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsParserStaticMethods.cs
@@ -2,8 +2,8 @@
// <copyright file="TdsParserStaticFunctionality.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
@@ -67,7 +67,7 @@ namespace System.Data.SqlClient {
if (index+1 < aliasLookup.Length) {
string parsedAliasName = aliasLookup.Substring(index+1);
- // Fix bug 298286
+ // Fix
if ("dbnetlib" == parsedProtocol) {
index = parsedAliasName.IndexOf(':');
if (-1 != index && index + 1 < parsedAliasName.Length) {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsRecordBufferSetter.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsRecordBufferSetter.cs
index 406e2b7b614..7b856bb8500 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsRecordBufferSetter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsRecordBufferSetter.cs
@@ -2,8 +2,8 @@
// <copyright file="TdsRecordBufferSetter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsValueSetter.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsValueSetter.cs
index aef315de517..63e1dd4ed68 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsValueSetter.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/TdsValueSetter.cs
@@ -2,8 +2,8 @@
// <copyright file="TdsValueSetter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/assemblycache.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/assemblycache.cs
index b843d552997..5fd69f0547e 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/assemblycache.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/assemblycache.cs
@@ -2,8 +2,8 @@
// <copyright file="assemblycache.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/sqlinternaltransaction.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/sqlinternaltransaction.cs
index c717a8efc77..e09e10f5aa8 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/sqlinternaltransaction.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/sqlinternaltransaction.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlInternalTransaction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data.SqlClient {
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlClient/sqlmetadatafactory.cs b/mcs/class/referencesource/System.Data/System/Data/SqlClient/sqlmetadatafactory.cs
index 24cfe1c3ee8..f17f069a00f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlClient/sqlmetadatafactory.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlClient/sqlmetadatafactory.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">Mugunm</owner>
//
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Data/System/Data/SqlDbType.cs b/mcs/class/referencesource/System.Data/System/Data/SqlDbType.cs
index fc3149c61a3..30322f22ffa 100644
--- a/mcs/class/referencesource/System.Data/System/Data/SqlDbType.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/SqlDbType.cs
@@ -2,8 +2,8 @@
// <copyright file="SqlDbType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">blained</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/StateChangeEvent.cs b/mcs/class/referencesource/System.Data/System/Data/StateChangeEvent.cs
index 54d94f05102..8bc08c54840 100644
--- a/mcs/class/referencesource/System.Data/System/Data/StateChangeEvent.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/StateChangeEvent.cs
@@ -2,8 +2,8 @@
// <copyright file="StateChangeEvent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/StateChangeEventHandler.cs b/mcs/class/referencesource/System.Data/System/Data/StateChangeEventHandler.cs
index 7ded8507eb0..2b415be9aca 100644
--- a/mcs/class/referencesource/System.Data/System/Data/StateChangeEventHandler.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/StateChangeEventHandler.cs
@@ -2,8 +2,8 @@
// <copyright file="StateChangeEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/StatementType.cs b/mcs/class/referencesource/System.Data/System/Data/StatementType.cs
index b4cbc814c23..b4bc1ebb98b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/StatementType.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/StatementType.cs
@@ -2,8 +2,8 @@
// <copyright file="StatementType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/UniqueConstraint.cs b/mcs/class/referencesource/System.Data/System/Data/UniqueConstraint.cs
index c097f9319c2..29c3d5a2486 100644
--- a/mcs/class/referencesource/System.Data/System/Data/UniqueConstraint.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/UniqueConstraint.cs
@@ -2,9 +2,9 @@
// <copyright file="UniqueConstraint.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/UpdateRowSource.cs b/mcs/class/referencesource/System.Data/System/Data/UpdateRowSource.cs
index a063670bb3c..639a0408ff2 100644
--- a/mcs/class/referencesource/System.Data/System/Data/UpdateRowSource.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/UpdateRowSource.cs
@@ -2,8 +2,8 @@
// <copyright file="UpdateRowSource.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/XDRSchema.cs b/mcs/class/referencesource/System.Data/System/Data/XDRSchema.cs
index 4c8a962083a..fee6ab5be6b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/XDRSchema.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/XDRSchema.cs
@@ -2,9 +2,9 @@
// <copyright file="XDRSchema.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/XMLDiffLoader.cs b/mcs/class/referencesource/System.Data/System/Data/XMLDiffLoader.cs
index fc3ecb9f9ff..c240bd1ed33 100644
--- a/mcs/class/referencesource/System.Data/System/Data/XMLDiffLoader.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/XMLDiffLoader.cs
@@ -2,9 +2,9 @@
// <copyright file="XMLDiffLoader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/XMLSchema.cs b/mcs/class/referencesource/System.Data/System/Data/XMLSchema.cs
index f23239bdfdf..de839b472be 100644
--- a/mcs/class/referencesource/System.Data/System/Data/XMLSchema.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/XMLSchema.cs
@@ -2,8 +2,8 @@
// <copyright file="XMLSchema.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -1346,7 +1346,7 @@ namespace System.Data {
table = _ds.Tables.GetTable(XmlConvert.DecodeName(typeName), _TableUri);
// TOD: Do not do this fix
// if (table == null && node.RefName.IsEmpty && !IsTopLevelElement(node) && _TableUri != null && _TableUri.Length > 0) {
-// _TableUri = null; // it means form="qualified", so child element inherits namespace. [....]
+// _TableUri = null; // it means form="qualified", so child element inherits namespace. Microsoft
// }
if (!FromInference || (FromInference && table == null))
@@ -1388,7 +1388,7 @@ namespace System.Data {
table.Locale = new CultureInfo(value);
}
else {
- // everett bug behavior before <... msdata:Locale=""/> inherit from DataSet
+ // everett
table.Locale = CultureInfo.InvariantCulture;
}
}
@@ -1574,7 +1574,7 @@ namespace System.Data {
new NameType("byte" , typeof(SByte) ), /* XSD Apr */
new NameType("date" , typeof(DateTime)), /* XSD Apr */
new NameType("dateTime" , typeof(DateTime)), /* XSD Apr */
- new NameType("decimal" , typeof(decimal) ), /* XSD 2001 [....] */
+ new NameType("decimal" , typeof(decimal) ), /* XSD 2001 Microsoft */
new NameType("double" , typeof(double) ), /* XSD Apr */
new NameType("duration" , typeof(TimeSpan)), /* XSD Apr */
new NameType("float" , typeof(Single) ), /* XSD Apr */
@@ -2026,7 +2026,7 @@ namespace System.Data {
}
- // XDR [....] change
+ // XDR Microsoft change
string strDefault = (attrib.Use == XmlSchemaUse.Required) ? GetMsdataAttribute(attr, Keywords.MSD_DEFAULTVALUE) : attr.DefaultValue;
if ((attr.Use == XmlSchemaUse.Optional) && (strDefault == null ))
strDefault = attr.FixedValue;
@@ -2227,7 +2227,7 @@ namespace System.Data {
_ds.Locale = new CultureInfo(value);
}
else {
- // everett bug behavior before <... msdata:Locale=""/> becoming CultureInfo(0x409)
+ // everett
_ds.Locale = CultureInfo.InvariantCulture;
}
}
diff --git a/mcs/class/referencesource/System.Data/System/Data/XmlContent.cs b/mcs/class/referencesource/System.Data/System/Data/XmlContent.cs
index 76e4e04cd15..8cd2614b8c1 100644
--- a/mcs/class/referencesource/System.Data/System/Data/XmlContent.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/XmlContent.cs
@@ -2,9 +2,9 @@
// <copyright file="XmlContent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/XmlDataLoader.cs b/mcs/class/referencesource/System.Data/System/Data/XmlDataLoader.cs
index 566e2581f16..24733de45bc 100644
--- a/mcs/class/referencesource/System.Data/System/Data/XmlDataLoader.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/XmlDataLoader.cs
@@ -2,8 +2,8 @@
// <copyright file="XmlDataLoader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -313,7 +313,7 @@ namespace System.Data {
XmlElement e = xdoc.DocumentElement;
DataTable topTable = (DataTable) nodeToSchemaMap.GetSchemaForNode(e, FIgnoreNamespace(e));
if (topTable != null) {
- topRow = topTable.CreateEmptyRow(); //enzol perf
+ topRow = topTable.CreateEmptyRow(); //Microsoft perf
nodeToRowMap[ e ] = topRow;
// get all field values.
diff --git a/mcs/class/referencesource/System.Data/System/Data/XmlKeywords.cs b/mcs/class/referencesource/System.Data/System/Data/XmlKeywords.cs
index 674f812d5ad..4b288fb5f25 100644
--- a/mcs/class/referencesource/System.Data/System/Data/XmlKeywords.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/XmlKeywords.cs
@@ -2,9 +2,9 @@
// <copyright file="XmlKeywords.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/XmlReadMode.cs b/mcs/class/referencesource/System.Data/System/Data/XmlReadMode.cs
index 9b6c96ea7c2..c0ad084bea5 100644
--- a/mcs/class/referencesource/System.Data/System/Data/XmlReadMode.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/XmlReadMode.cs
@@ -2,9 +2,9 @@
// <copyright file="XmlReadMode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/XmlToDatasetMap.cs b/mcs/class/referencesource/System.Data/System/Data/XmlToDatasetMap.cs
index a1aab9cd564..7f46e7e6d54 100644
--- a/mcs/class/referencesource/System.Data/System/Data/XmlToDatasetMap.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/XmlToDatasetMap.cs
@@ -2,9 +2,9 @@
// <copyright file="XmlToDatasetMap.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -128,10 +128,10 @@ namespace System.Data {
// Used to infere schema
private TableSchemaInfo AddTableSchema(DataTable table, XmlNameTable nameTable) {
- // [....]: Because in our case reader already read the document all names that we can meet in the
+ // Microsoft: Because in our case reader already read the document all names that we can meet in the
// document already has an entry in NameTable.
// If in future we will build identity map before reading XML we can replace Get() to Add()
- // [....]: GetIdentity is called from two places: BuildIdentityMap() and LoadRows()
+ // Microsoft: GetIdentity is called from two places: BuildIdentityMap() and LoadRows()
// First case deals with decoded names; Second one with encoded names.
// We decided encoded names in first case (instead of decoding them in second)
// because it save us time in LoadRows(). We have, as usual, more data them schemas
@@ -148,10 +148,10 @@ namespace System.Data {
}
private TableSchemaInfo AddTableSchema(XmlNameTable nameTable, DataTable table) {
- // [....]:This is the opposite of the previous function:
+ // Microsoft:This is the opposite of the previous function:
// we populate the nametable so that the hash comparison can happen as
// object comparison instead of strings.
- // [....]: GetIdentity is called from two places: BuildIdentityMap() and LoadRows()
+ // Microsoft: GetIdentity is called from two places: BuildIdentityMap() and LoadRows()
// First case deals with decoded names; Second one with encoded names.
// We decided encoded names in first case (instead of decoding them in second)
// because it save us time in LoadRows(). We have, as usual, more data them schemas
diff --git a/mcs/class/referencesource/System.Data/System/Data/XmlWriteMode.cs b/mcs/class/referencesource/System.Data/System/Data/XmlWriteMode.cs
index a14680cc77b..c0cb4620fc4 100644
--- a/mcs/class/referencesource/System.Data/System/Data/XmlWriteMode.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/XmlWriteMode.cs
@@ -2,9 +2,9 @@
// <copyright file="XmlWriteMode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">jasonzhu</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/dbtype.cs b/mcs/class/referencesource/System.Data/System/Data/dbtype.cs
index 5e336ce2517..61d06f0e66b 100644
--- a/mcs/class/referencesource/System.Data/System/Data/dbtype.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/dbtype.cs
@@ -2,8 +2,8 @@
// <copyright file="dbtype.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/updatestatus.cs b/mcs/class/referencesource/System.Data/System/Data/updatestatus.cs
index 7bd09483a67..509e14b415f 100644
--- a/mcs/class/referencesource/System.Data/System/Data/updatestatus.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/updatestatus.cs
@@ -2,8 +2,8 @@
// <copyright file="updatestatus.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">markash</owner>
+// <owner current="true" primary="false">laled</owner>
//------------------------------------------------------------------------------
namespace System.Data {
diff --git a/mcs/class/referencesource/System.Data/System/Data/xmlsaver.cs b/mcs/class/referencesource/System.Data/System/Data/xmlsaver.cs
index 2129d476241..55e888fd449 100644
--- a/mcs/class/referencesource/System.Data/System/Data/xmlsaver.cs
+++ b/mcs/class/referencesource/System.Data/System/Data/xmlsaver.cs
@@ -2,8 +2,8 @@
// <copyright file="xmlsaver.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Data {
@@ -153,7 +153,7 @@ namespace System.Data {
if (propInst is PropertyCollection) {
return;
}
- // [....]: perf: Why not have this as a table?
+ // Microsoft: perf: Why not have this as a table?
// there are several xdo properties that equal to some xml attributes, we should not explicitly ouput them.
if (
0 == String.Compare(pd.Name, "Namespace" , StringComparison.Ordinal) ||
@@ -887,7 +887,7 @@ namespace System.Data {
dsElement.SetAttribute(Keywords.MSD_ISDATASET, Keywords.MSDNS, Keywords.TRUE);
dsElement.SetAttribute(Keywords.MSD_MAINDATATABLE, Keywords.MSDNS, XmlConvert.EncodeLocalName(((dt.Namespace.Length == 0)?dt.TableName : (dt.Namespace + ":" + dt.TableName))));
- if (dt.CaseSensitive) { // WebData 111631 :it is a bug to go and write casesensitive attrib as 'true', by default
+ if (dt.CaseSensitive) { // WebData 111631 :it is a
dsElement.SetAttribute(Keywords.MSD_CASESENSITIVE, Keywords.MSDNS, Keywords.TRUE);
}
if (dt.ShouldSerializeLocale() || !dt.Locale.Equals(CultureInfo.CurrentCulture)) {
@@ -1093,7 +1093,7 @@ namespace System.Data {
schNode.AppendChild(type);
}else {
#if DEBUG
- // [....]: TO DO: replace the constructor with IsEqual(XmlElement)
+ // Microsoft: TO DO: replace the constructor with IsEqual(XmlElement)
// Debug.Assert(col.SimpleType.IsEqual(new SimpleType(elmSimpeType)), "simpleTypes with the same name have to be the same: "+name);
#endif
}
@@ -1288,7 +1288,7 @@ namespace System.Data {
minOccurs = (col.AllowDBNull) ? 0 : 1;
- // [....] 2001 change
+ // Microsoft 2001 change
if (col.ColumnMapping == MappingType.Attribute && minOccurs != 0)
root.SetAttribute(Keywords.USE, Keywords.REQUIRED);
@@ -1582,8 +1582,8 @@ namespace System.Data {
if (!table.TypeName.IsEmpty) {
if (schFormat != SchemaFormat.Remoting)
root.SetAttribute( Keywords.TYPE, NewDiffgramGen.QualifiedName((string)prefixes[table.TypeName.Namespace], table.TypeName.Name) );
-// Bug 108292: Since we always write complex type as annonymous type, DO NOT WRITE ITS NAME
-// DO NOT REVERT THIS CHANGE
+//
+
}
XmlElement compositor = null;
diff --git a/mcs/class/referencesource/System.Data/System/NewXml/BaseTreeIterator.cs b/mcs/class/referencesource/System.Data/System/NewXml/BaseTreeIterator.cs
index c06feef60f4..fa67c094ac3 100644
--- a/mcs/class/referencesource/System.Data/System/NewXml/BaseTreeIterator.cs
+++ b/mcs/class/referencesource/System.Data/System/NewXml/BaseTreeIterator.cs
@@ -2,8 +2,8 @@
// <copyright file="BaseTreeIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Data/System/NewXml/DataDocumentXPathNavigator.cs b/mcs/class/referencesource/System.Data/System/NewXml/DataDocumentXPathNavigator.cs
index 45420d2d287..d2e5280a554 100644
--- a/mcs/class/referencesource/System.Data/System/NewXml/DataDocumentXPathNavigator.cs
+++ b/mcs/class/referencesource/System.Data/System/NewXml/DataDocumentXPathNavigator.cs
@@ -2,8 +2,8 @@
// <copyright file="DataDocumentXPathNavigator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
#pragma warning disable 618 // ignore obsolete warning about XmlDataDocument
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Data/System/NewXml/DataPointer.cs b/mcs/class/referencesource/System.Data/System/NewXml/DataPointer.cs
index e8f4f51e6e6..2b85cf142ea 100644
--- a/mcs/class/referencesource/System.Data/System/NewXml/DataPointer.cs
+++ b/mcs/class/referencesource/System.Data/System/NewXml/DataPointer.cs
@@ -2,8 +2,8 @@
// <copyright file="DataPointer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
#pragma warning disable 618 // ignore obsolete warning about XmlDataDocument
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Data/System/NewXml/DataSetMappper.cs b/mcs/class/referencesource/System.Data/System/NewXml/DataSetMappper.cs
index 390bf5780d9..de28bbd118d 100644
--- a/mcs/class/referencesource/System.Data/System/NewXml/DataSetMappper.cs
+++ b/mcs/class/referencesource/System.Data/System/NewXml/DataSetMappper.cs
@@ -2,8 +2,8 @@
// <copyright file="DataSetMapper.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
#pragma warning disable 618 // ignore obsolete warning about XmlDataDocument
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Data/System/NewXml/IXmlDataVirtualNode.cs b/mcs/class/referencesource/System.Data/System/NewXml/IXmlDataVirtualNode.cs
index 35d05f1bb53..6dbed4e6d75 100644
--- a/mcs/class/referencesource/System.Data/System/NewXml/IXmlDataVirtualNode.cs
+++ b/mcs/class/referencesource/System.Data/System/NewXml/IXmlDataVirtualNode.cs
@@ -2,9 +2,9 @@
// <copyright file="IXmlDataVirtualNode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">amirhmy</owner>
+// <owner current="true" primary="false">markash</owner>
+// <owner current="false" primary="false">danield</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Data/System/NewXml/RegionIterator.cs b/mcs/class/referencesource/System.Data/System/NewXml/RegionIterator.cs
index de0c6882c97..8e4b622acef 100644
--- a/mcs/class/referencesource/System.Data/System/NewXml/RegionIterator.cs
+++ b/mcs/class/referencesource/System.Data/System/NewXml/RegionIterator.cs
@@ -2,8 +2,8 @@
// <copyright file="RegionIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
#pragma warning disable 618 // ignore obsolete warning about XmlDataDocument
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Data/System/NewXml/TreeIterator.cs b/mcs/class/referencesource/System.Data/System/NewXml/TreeIterator.cs
index 5e90984a748..34099a111b7 100644
--- a/mcs/class/referencesource/System.Data/System/NewXml/TreeIterator.cs
+++ b/mcs/class/referencesource/System.Data/System/NewXml/TreeIterator.cs
@@ -2,8 +2,8 @@
// <copyright file="TreeIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
#pragma warning disable 618 // ignore obsolete warning about XmlDataDocument
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Data/System/NewXml/XPathNodePointer.cs b/mcs/class/referencesource/System.Data/System/NewXml/XPathNodePointer.cs
index f8f3d1d95c5..b905328c39e 100644
--- a/mcs/class/referencesource/System.Data/System/NewXml/XPathNodePointer.cs
+++ b/mcs/class/referencesource/System.Data/System/NewXml/XPathNodePointer.cs
@@ -2,8 +2,8 @@
// <copyright file="XPathNodePointer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
#pragma warning disable 618 // ignore obsolete warning about XmlDataDocument
namespace System.Xml {
@@ -169,7 +169,7 @@ namespace System.Xml {
}
}
- //[....]: From CodeReview: Perf: We should have another array similar w/
+ //Microsoft: From CodeReview: Perf: We should have another array similar w/
// xmlNodeType_To_XpathNodeType_Map that will return String.Empty for everything but the element and
// attribute case.
internal string LocalName {
diff --git a/mcs/class/referencesource/System.Data/System/NewXml/XmlBoundElement.cs b/mcs/class/referencesource/System.Data/System/NewXml/XmlBoundElement.cs
index 476facfa93a..33f8307d359 100644
--- a/mcs/class/referencesource/System.Data/System/NewXml/XmlBoundElement.cs
+++ b/mcs/class/referencesource/System.Data/System/NewXml/XmlBoundElement.cs
@@ -2,8 +2,8 @@
// <copyright file="XmlBoundElement.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
#pragma warning disable 618 // ignore obsolete warning about XmlDataDocument
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Data/System/NewXml/XmlDataDocument.cs b/mcs/class/referencesource/System.Data/System/NewXml/XmlDataDocument.cs
index c2b65001e20..b2dc5d618b8 100644
--- a/mcs/class/referencesource/System.Data/System/NewXml/XmlDataDocument.cs
+++ b/mcs/class/referencesource/System.Data/System/NewXml/XmlDataDocument.cs
@@ -2,8 +2,8 @@
// <copyright file="XmlDataDocument.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
using System;
@@ -606,9 +606,9 @@ namespace System.Xml {
DataRow row = node.Row;
// create new attrs & elements for row
- // For detached rows: we are in [....] w/ temp values
- // For non-detached rows: we are in [....] w/ the current values
- // For deleted rows: we never [....]
+ // For detached rows: we are in sync w/ temp values
+ // For non-detached rows: we are in sync w/ the current values
+ // For deleted rows: we never sync
DataRowVersion rowVersion = ( row.RowState == DataRowState.Detached ) ? DataRowVersion.Proposed : DataRowVersion.Current;
foreach( DataColumn col in row.Table.Columns ) {
if ( !IsNotMapped(col) ) {
@@ -1273,7 +1273,7 @@ namespace System.Xml {
if ( col.ColumnMapping == MappingType.SimpleContent && Convert.IsDBNull( value ) && !rowElement.IsFoliated )
ForceFoliation( rowElement, ElementState.WeakFoliation);
else {
- // no need to [....] if not foliated
+ // no need to sync if not foliated
if ( !IsFoliated( rowElement ) ) {
#if DEBUG
// If the new value is null, we should be already foliated if there is a DataPointer that points to the column
@@ -1433,7 +1433,7 @@ lblDoNestedRelationSync:
XmlBoundElement be = row.Element;
Debug.Assert( be != null );
if ( be.IsFoliated ) {
- // Need to [....] changes from ROM to DOM
+ // Need to sync changes from ROM to DOM
OnColumnValueChanged( row, col, be );
}
}
@@ -1535,7 +1535,7 @@ lblDoNestedRelationSync:
// Change the childElement position in the tree to conform to the parent nested relationship in ROM
private void OnNestedParentChange(DataRow child, XmlBoundElement childElement, DataColumn childCol) {
Debug.Assert( child.Element == childElement && childElement.Row == child );
- // This function is (and s/b) called as a result of ROM changes, therefore XML changes done here should not be [....]-ed to ROM
+ // This function is (and s/b) called as a result of ROM changes, therefore XML changes done here should not be sync-ed to ROM
Debug.Assert( ignoreXmlEvents == true );
#if DEBUG
// In order to check that this move does not change the connected/disconnected state of the node
@@ -1697,7 +1697,7 @@ lblDoNestedRelationSync:
OnNodeRemovedFromTree( node, oldParent );
}
else {
- // Removing from disconnected tree to disconnected tree: just [....] the old region
+ // Removing from disconnected tree to disconnected tree: just sync the old region
OnNodeRemovedFromFragment( node, oldParent );
}
}
@@ -1742,7 +1742,7 @@ lblDoNestedRelationSync:
XmlBoundElement oldRowElem;
if ( mapper.GetRegion( oldParent, out oldRowElem ) ) {
- // [....] the old region if it is not deleted
+ // Sync the old region if it is not deleted
DataRow row = oldRowElem.Row;
// Since the old old region was disconnected, then the row can be only Deleted or Detached
Debug.Assert( ! IsRowLive( row ) );
@@ -2171,7 +2171,7 @@ lblDoNestedRelationSync:
private void SynchronizeRowFromRowElement( XmlBoundElement rowElement ) {
SynchronizeRowFromRowElement( rowElement, null );
}
- // [....] row fields w/ values from rowElem region.
+ // Sync row fields w/ values from rowElem region.
// If rowElemList is != null, all subregions of rowElem are appended to it.
private void SynchronizeRowFromRowElement( XmlBoundElement rowElement, ArrayList rowElemList ) {
DataRow row = rowElement.Row;
@@ -2402,7 +2402,7 @@ lblDoNestedRelationSync:
}
}
else {
- // We only need to [....] the embedded sub-regions
+ // We only need to sync the embedded sub-regions
TreeIterator iter = new TreeIterator( node );
for (bool fMore = iter.NextRowElement(); fMore; fMore = iter.NextRightRowElement() )
rowElemList.Add( iter.CurrentNode );
@@ -2588,7 +2588,7 @@ lblDoNestedRelationSync:
if ( row.RowState == DataRowState.Detached )
SynchronizeRowFromRowElementEx( rowElement, rowElemList );
- // Nothing to do if the row is deleted (there is no [....]-ing from XML to ROM for deleted rows)
+ // Nothing to do if the row is deleted (there is no sync-ing from XML to ROM for deleted rows)
}
private void SetNestedParentRegion( XmlBoundElement childRowElem ) {
diff --git a/mcs/class/referencesource/System.Data/System/NewXml/XmlDataImplementation.cs b/mcs/class/referencesource/System.Data/System/NewXml/XmlDataImplementation.cs
index ed253a35a14..c3e98395886 100644
--- a/mcs/class/referencesource/System.Data/System/NewXml/XmlDataImplementation.cs
+++ b/mcs/class/referencesource/System.Data/System/NewXml/XmlDataImplementation.cs
@@ -2,8 +2,8 @@
// <copyright file="XmlDataImplementation.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
#pragma warning disable 618 // ignore obsolete warning about XmlDataDocument
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Data/bid/inc/cs/bidPrivateBase.cs b/mcs/class/referencesource/System.Data/bid/inc/cs/bidPrivateBase.cs
index a2bf64dd498..0783a6e8088 100644
--- a/mcs/class/referencesource/System.Data/bid/inc/cs/bidPrivateBase.cs
+++ b/mcs/class/referencesource/System.Data/bid/inc/cs/bidPrivateBase.cs
@@ -2,8 +2,8 @@
// <copyright file="BidPrivateBase.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="true" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="true" primary="false">Microsoft</owner>
// Last Modified: 6-November-2008
//-----------------------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.IdentityModel.Selectors/infocard/common/managed/InfoCardCryptoHelper.cs b/mcs/class/referencesource/System.IdentityModel.Selectors/infocard/common/managed/InfoCardCryptoHelper.cs
index 1e7281d0cd7..1a53c754fa6 100644
--- a/mcs/class/referencesource/System.IdentityModel.Selectors/infocard/common/managed/InfoCardCryptoHelper.cs
+++ b/mcs/class/referencesource/System.IdentityModel.Selectors/infocard/common/managed/InfoCardCryptoHelper.cs
@@ -8,7 +8,7 @@ namespace Microsoft.InfoCards
using System.Security.Cryptography;
using System.Security.Cryptography.Xml;
- // copied from IdentityModel\CryptoHelper.cs and they need to be kept in [....]. After V1, we need to rethink how we can have
+ // copied from IdentityModel\CryptoHelper.cs and they need to be kept in sync. After V1, we need to rethink how we can have
// a single place to ask this question. Perhaps even add it as an extensibility
internal static class InfoCardCryptoHelper
diff --git a/mcs/class/referencesource/System.IdentityModel/InternalApis/Clr/inc/AppContextDefaultValues.cs b/mcs/class/referencesource/System.IdentityModel/InternalApis/Clr/inc/AppContextDefaultValues.cs
new file mode 100644
index 00000000000..124f9f45a4f
--- /dev/null
+++ b/mcs/class/referencesource/System.IdentityModel/InternalApis/Clr/inc/AppContextDefaultValues.cs
@@ -0,0 +1,170 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+using System;
+using System.Collections.Generic;
+
+namespace System
+{
+ internal static partial class AppContextDefaultValues
+ {
+ public static void PopulateDefaultValues()
+ {
+ string platformIdentifier, profile;
+ int version;
+
+ ParseTargetFrameworkName(out platformIdentifier, out profile, out version);
+
+ // Call into each library to populate their default switches
+ PopulateDefaultValuesPartial(platformIdentifier, profile, version);
+ }
+
+ /// <summary>
+ /// We have this separate method for getting the parsed elements out of the TargetFrameworkName so we can
+ /// more easily support this on other platforms.
+ /// </summary>
+ [System.Security.SecuritySafeCritical]
+ private static void ParseTargetFrameworkName(out string identifier, out string profile, out int version)
+ {
+ string targetFrameworkMoniker = AppDomain.CurrentDomain.SetupInformation.TargetFrameworkName;
+
+ // If we don't have a TFM then we should default to the 4.0 behavior where all quirks are turned on.
+ if (!TryParseFrameworkName(targetFrameworkMoniker, out identifier, out version, out profile))
+ {
+#if FEATURE_CORECLR
+ if (CompatibilitySwitches.UseLatestBehaviorWhenTFMNotSpecified)
+ {
+ // If we want to use the latest behavior it is enough to set the value of the switch to string.Empty.
+ // When the get to the caller of this method (PopulateDefaultValuesPartial) we are going to use the
+ // identifier we just set to decide which switches to turn on. By having an empty string as the
+ // identifier we are simply saying -- don't turn on any switches, and we are going to get the latest
+ // behavior for all the switches
+ identifier = string.Empty;
+ }
+ else
+#endif
+ {
+ identifier = ".NETFramework";
+ version = 40000;
+ profile = string.Empty;
+ }
+ }
+ }
+
+ // This code was a constructor copied from the FrameworkName class, which is located in System.dll.
+ // Parses strings in the following format: "<identifier>, Version=[v|V]<version>, Profile=<profile>"
+ // - The identifier and version is required, profile is optional
+ // - Only three components are allowed.
+ // - The version string must be in the System.Version format; an optional "v" or "V" prefix is allowed
+ private static bool TryParseFrameworkName(String frameworkName, out String identifier, out int version, out String profile)
+ {
+ // For parsing a target Framework moniker, from the FrameworkName class
+ const char c_componentSeparator = ',';
+ const char c_keyValueSeparator = '=';
+ const char c_versionValuePrefix = 'v';
+ const String c_versionKey = "Version";
+ const String c_profileKey = "Profile";
+
+ identifier = profile = string.Empty;
+ version = 0;
+
+ if (frameworkName == null || frameworkName.Length == 0)
+ {
+ return false;
+ }
+
+ String[] components = frameworkName.Split(c_componentSeparator);
+ version = 0;
+
+ // Identifer and Version are required, Profile is optional.
+ if (components.Length < 2 || components.Length > 3)
+ {
+ return false;
+ }
+
+ //
+ // 1) Parse the "Identifier", which must come first. Trim any whitespace
+ //
+ identifier = components[0].Trim();
+
+ if (identifier.Length == 0)
+ {
+ return false;
+ }
+
+ bool versionFound = false;
+ profile = null;
+
+ //
+ // The required "Version" and optional "Profile" component can be in any order
+ //
+ for (int i = 1; i < components.Length; i++)
+ {
+ // Get the key/value pair separated by '='
+ string[] keyValuePair = components[i].Split(c_keyValueSeparator);
+
+ if (keyValuePair.Length != 2)
+ {
+ return false;
+ }
+
+ // Get the key and value, trimming any whitespace
+ string key = keyValuePair[0].Trim();
+ string value = keyValuePair[1].Trim();
+
+ //
+ // 2) Parse the required "Version" key value
+ //
+ if (key.Equals(c_versionKey, StringComparison.OrdinalIgnoreCase))
+ {
+ versionFound = true;
+
+ // Allow the version to include a 'v' or 'V' prefix...
+ if (value.Length > 0 && (value[0] == c_versionValuePrefix || value[0] == 'V'))
+ {
+ value = value.Substring(1);
+ }
+ Version realVersion = new Version(value);
+ // The version class will represent some unset values as -1 internally (instead of 0).
+ version = realVersion.Major * 10000;
+ if (realVersion.Minor > 0)
+ version += realVersion.Minor * 100;
+ if (realVersion.Build > 0)
+ version += realVersion.Build;
+ }
+ //
+ // 3) Parse the optional "Profile" key value
+ //
+ else if (key.Equals(c_profileKey, StringComparison.OrdinalIgnoreCase))
+ {
+ if (!String.IsNullOrEmpty(value))
+ {
+ profile = value;
+ }
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ if (!versionFound)
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ // This is a partial method. Platforms (such as Desktop) can provide an implementation of it that will read override value
+ // from whatever mechanism is available on that platform. If no implementation is provided, the compiler is going to remove the calls
+ // to it from the code
+ static partial void TryGetSwitchOverridePartial(string switchName, ref bool overrideFound, ref bool overrideValue);
+
+ /// This is a partial method. This method is responsible for populating the default values based on a TFM.
+ /// It is partial because each library should define this method in their code to contain their defaults.
+ static partial void PopulateDefaultValuesPartial(string platformIdentifier, string profile, int version);
+ }
+}
diff --git a/mcs/class/referencesource/System.IdentityModel/InternalApis/Clr/inc/LocalAppContext.cs b/mcs/class/referencesource/System.IdentityModel/InternalApis/Clr/inc/LocalAppContext.cs
new file mode 100644
index 00000000000..f05b599ed3d
--- /dev/null
+++ b/mcs/class/referencesource/System.IdentityModel/InternalApis/Clr/inc/LocalAppContext.cs
@@ -0,0 +1,128 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+
+// NOTE: This file should not be included in mscorlib. This should only be included in FX libraries that need to provide switches
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Threading;
+
+namespace System
+{
+ internal static partial class LocalAppContext
+ {
+ private delegate bool TryGetSwitchDelegate(string switchName, out bool value);
+
+ private static TryGetSwitchDelegate TryGetSwitchFromCentralAppContext;
+ private static bool s_canForwardCalls;
+
+ private static Dictionary<string, bool> s_switchMap = new Dictionary<string, bool>();
+ private static readonly object s_syncLock = new object();
+
+ private static bool DisableCaching { get; set; }
+
+ static LocalAppContext()
+ {
+ // Try to setup the callback into the central AppContext
+ s_canForwardCalls = SetupDelegate();
+
+ // Populate the default values of the local app context
+ AppContextDefaultValues.PopulateDefaultValues();
+
+ // Cache the value of the switch that help with testing
+ DisableCaching = IsSwitchEnabled(@"TestSwitch.LocalAppContext.DisableCaching");
+ }
+
+ public static bool IsSwitchEnabled(string switchName)
+ {
+ if (s_canForwardCalls)
+ {
+ bool isEnabledCentrally;
+ if (TryGetSwitchFromCentralAppContext(switchName, out isEnabledCentrally))
+ {
+ // we found the switch, so return whatever value it has
+ return isEnabledCentrally;
+ }
+ // if we could not get the value from the central authority, try the local storage.
+ }
+
+ return IsSwitchEnabledLocal(switchName);
+ }
+
+ private static bool IsSwitchEnabledLocal(string switchName)
+ {
+ // read the value from the set of local defaults
+ bool isEnabled, isPresent;
+ lock (s_switchMap)
+ {
+ isPresent = s_switchMap.TryGetValue(switchName, out isEnabled);
+ }
+
+ // If the value is in the set of local switches, reutrn the value
+ if (isPresent)
+ {
+ return isEnabled;
+ }
+
+ // if we could not find the switch name, we should return 'false'
+ // This will preserve the concept of switches been 'off' unless explicitly set to 'on'
+ return false;
+ }
+
+ private static bool SetupDelegate()
+ {
+ Type appContextType = typeof(object).Assembly.GetType("System.AppContext");
+ if (appContextType == null)
+ return false;
+
+ MethodInfo method = appContextType.GetMethod(
+ "TryGetSwitch", // the method name
+ BindingFlags.Static | BindingFlags.Public, // binding flags
+ null, // use the default binder
+ new Type[] { typeof(string), typeof(bool).MakeByRefType() },
+ null); // parameterModifiers - this is ignored by the default binder
+ if (method == null)
+ return false;
+
+ // Create delegate if we found the method.
+ TryGetSwitchFromCentralAppContext = (TryGetSwitchDelegate)Delegate.CreateDelegate(typeof(TryGetSwitchDelegate), method);
+
+ return true;
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ internal static bool GetCachedSwitchValue(string switchName, ref int switchValue)
+ {
+ if (switchValue < 0) return false;
+ if (switchValue > 0) return true;
+
+ return GetCachedSwitchValueInternal(switchName, ref switchValue);
+ }
+
+ private static bool GetCachedSwitchValueInternal(string switchName, ref int switchValue)
+ {
+ if (LocalAppContext.DisableCaching)
+ {
+ return LocalAppContext.IsSwitchEnabled(switchName);
+ }
+
+ bool isEnabled = LocalAppContext.IsSwitchEnabled(switchName);
+ switchValue = isEnabled ? 1 /*true*/ : -1 /*false*/;
+ return isEnabled;
+ }
+
+ /// <summary>
+ /// This method is going to be called from the AppContextDefaultValues class when setting up the
+ /// default values for the switches. !!!! This method is called during the static constructor so it does not
+ /// take a lock !!!! If you are planning to use this outside of that, please ensure proper locking.
+ /// </summary>
+ internal static void DefineSwitchDefault(string switchName, bool initialValue)
+ {
+ s_switchMap[switchName] = initialValue;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/AppContextDefaultValues.cs b/mcs/class/referencesource/System.IdentityModel/System/AppContextDefaultValues.cs
new file mode 100644
index 00000000000..3513ced8afa
--- /dev/null
+++ b/mcs/class/referencesource/System.IdentityModel/System/AppContextDefaultValues.cs
@@ -0,0 +1,34 @@
+//------------------------------------------------------------
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//------------------------------------------------------------
+namespace System
+{
+ using System.IdentityModel;
+
+ internal static partial class AppContextDefaultValues
+ {
+ static partial void PopulateDefaultValuesPartial(string platformIdentifier, string profile, int version)
+ {
+ // When defining a new switch you should add it to the last known version.
+ // For instance, if you are adding a switch in .NET 4.6 (the release after 4.5.2) you should define your switch
+ // like this:
+ // if (version <= 40502) ...
+ // This ensures that all previous versions of that platform (up-to 4.5.2) will get the old behavior by default
+ // NOTE: When adding a default value for a switch please make sure that the default value is added to ALL of the existing platforms!
+ // NOTE: When adding a new if statement for the version please ensure that ALL previous switches are enabled (ie. don't use else if)
+ switch (platformIdentifier)
+ {
+ case ".NETCore":
+ case ".NETFramework":
+ {
+ if (version <= 40502)
+ {
+ LocalAppContextSwitches.SetDefaultsLessOrEqual_452();
+ }
+
+ break;
+ }
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/AsyncResult.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/AsyncResult.cs
index d423183a03a..f958bc9707a 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/AsyncResult.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/AsyncResult.cs
@@ -112,7 +112,7 @@ namespace System.IdentityModel
{
if (completed == true)
{
- // it is a bug to call complete twice
+ // it is a
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new AsynchronousOperationException(SR.GetString(SR.ID4005)));
}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Claims/Claim.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Claims/Claim.cs
index bc90eb0f2fe..f8a2a4bdfb3 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Claims/Claim.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Claims/Claim.cs
@@ -17,7 +17,7 @@ namespace System.IdentityModel.Claims
// --------------- ---------------- ------------------
// "File" "boot.ini" "Read"
// "HairColor" "Brown" "PossessProperty"
- // "UserName" "[....]" "PossessProperty"
+ // "UserName" "Microsoft" "PossessProperty"
// "Service" "MailService" "Access"
// "Operation" "ReadMail" "Invoke"
// ClaimType:
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/CryptoApi.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/CryptoApi.cs
index bd3cd02844d..076e4f39044 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/CryptoApi.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/CryptoApi.cs
@@ -363,7 +363,7 @@ namespace System.IdentityModel
protected override bool ReleaseHandle()
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // We are not interested in throwing an exception here if CloseHandle fails.
return CAPI.CertCloseStore(handle, 0);
}
@@ -390,7 +390,7 @@ namespace System.IdentityModel
protected override bool ReleaseHandle()
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // We are not interested in throwing an exception here if CloseHandle fails.
return CAPI.CertFreeCertificateContext(handle);
}
@@ -416,7 +416,7 @@ namespace System.IdentityModel
protected override bool ReleaseHandle()
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // We are not interested in throwing an exception here if CloseHandle fails.
CAPI.CertFreeCertificateChain(handle);
return true;
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/CryptoHelper.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/CryptoHelper.cs
index bfcc748bf4b..bfe9e626697 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/CryptoHelper.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/CryptoHelper.cs
@@ -865,7 +865,7 @@ namespace System.IdentityModel
catch (InvalidOperationException)
{
algorithmObject = null;
- // We ---- the exception and continue.
+ // We swallow the exception and continue.
}
if (algorithmObject != null)
@@ -901,7 +901,7 @@ namespace System.IdentityModel
catch (InvalidOperationException)
{
algorithmObject = null;
- // We ---- the exception and continue.
+ // We swallow the exception and continue.
}
if (algorithmObject != null)
{
@@ -952,7 +952,7 @@ namespace System.IdentityModel
}
catch (InvalidOperationException)
{
- // We ---- the exception and continue.
+ // We swallow the exception and continue.
}
if (algorithmObject != null)
{
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/HashStream.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/HashStream.cs
index 94b7abc729b..fe8fee081de 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/HashStream.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/HashStream.cs
@@ -57,7 +57,7 @@ namespace System.IdentityModel
get { return this.length; }
set
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException());
}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/IdentityModelStrings.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/IdentityModelStrings.cs
index 1f1fbd6678f..42cd0993c2b 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/IdentityModelStrings.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/IdentityModelStrings.cs
@@ -9,4 +9,4 @@ namespace System.IdentityModel
public abstract int Count { get; }
public abstract string this[int index] { get; }
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/LocalAppContextSwitches.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/LocalAppContextSwitches.cs
new file mode 100644
index 00000000000..8705ddf14e6
--- /dev/null
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/LocalAppContextSwitches.cs
@@ -0,0 +1,33 @@
+//------------------------------------------------------------
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//------------------------------------------------------------
+namespace System.IdentityModel
+{
+ using System;
+ using System.Runtime.CompilerServices;
+
+ // When adding a quirk, name it such that false is new behavior and true is old behavior.
+ // You are opting IN to old behavior. The new behavior is default.
+ // For example, we want to enable the functionality to explicitly add a connection close header
+ // in 4.6 and above. So we set DisableExplicitConnectionCloseHeader to true if running 4.5.2 or less.
+ internal static class LocalAppContextSwitches
+ {
+ private const string EnableCachedEmptyDefaultAuthorizationContextString = "Switch.System.IdentityModel.EnableCachedEmptyDefaultAuthorizationContext";
+ private static int enableCachedEmptyDefaultAuthorizationContext;
+
+ public static bool EnableCachedEmptyDefaultAuthorizationContext
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ get
+ {
+ return LocalAppContext.GetCachedSwitchValue(EnableCachedEmptyDefaultAuthorizationContextString, ref enableCachedEmptyDefaultAuthorizationContext);
+ }
+ }
+
+ public static void SetDefaultsLessOrEqual_452()
+ {
+ // Define the switches that should be true for 4.5.2 or less, false for 4.6+.
+ LocalAppContext.DefineSwitchDefault(EnableCachedEmptyDefaultAuthorizationContextString, true);
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Policy/DefaultAuthorizationContext.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Policy/DefaultAuthorizationContext.cs
index 119f2cee426..1226ad3469f 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Policy/DefaultAuthorizationContext.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Policy/DefaultAuthorizationContext.cs
@@ -27,19 +27,26 @@ namespace System.IdentityModel.Policy
{
get
{
- if (empty == null)
- empty = new DefaultAuthorizationContext(new DefaultEvaluationContext());
- return empty;
+ if (LocalAppContextSwitches.EnableCachedEmptyDefaultAuthorizationContext)
+ {
+ if (empty == null)
+ empty = new DefaultAuthorizationContext(new DefaultEvaluationContext());
+ return empty;
+ }
+ else
+ {
+ return new DefaultAuthorizationContext(new DefaultEvaluationContext());
+ }
}
}
public override string Id
{
- get
+ get
{
if (this.id == null)
this.id = SecurityUniqueId.Create();
- return this.id.Value;
+ return this.id.Value;
}
}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Protocols/WSTrust/WSTrustSerializationHelper.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Protocols/WSTrust/WSTrustSerializationHelper.cs
index 82834bcae45..dba47077c6f 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Protocols/WSTrust/WSTrustSerializationHelper.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Protocols/WSTrust/WSTrustSerializationHelper.cs
@@ -688,7 +688,7 @@ namespace System.IdentityModel.Protocols.WSTrust
}
// Step 3: Write the custom attributes here from the Attributes bag.
- // IDFX beta work item bug 878
+ // IDFX beta work item
// Step 4: Write the first class Element here
requestSerializer.WriteKnownRequestElement(rst, writer, context);
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/SafeCryptHandles.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/SafeCryptHandles.cs
index 20faf7715d5..f489407af89 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/SafeCryptHandles.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/SafeCryptHandles.cs
@@ -31,7 +31,7 @@ namespace System.IdentityModel
protected override bool ReleaseHandle()
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // We are not interested in throwing an exception here if CloseHandle fails.
return NativeMethods.CryptReleaseContext(handle, 0);
}
@@ -58,7 +58,7 @@ namespace System.IdentityModel
protected override bool ReleaseHandle()
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // We are not interested in throwing an exception here if CloseHandle fails.
bool ret = NativeMethods.CryptDestroyKey(handle);
if (this.provHandle != null)
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/SecurityUtils.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/SecurityUtils.cs
index 7b2b9f18987..297c9df09bf 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/SecurityUtils.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/SecurityUtils.cs
@@ -28,7 +28,7 @@ namespace System.IdentityModel
public const int WindowsVistaMajorNumber = 6;
static IIdentity anonymousIdentity;
- // these should be kept in [....] with IIS70
+ // these should be kept in sync with IIS70
public const string AuthTypeNTLM = "NTLM";
public const string AuthTypeNegotiate = "Negotiate";
public const string AuthTypeKerberos = "Kerberos";
@@ -727,7 +727,7 @@ namespace System.IdentityModel
}
/// <summary>
- /// Internal helper class to help keep Kerberos and Spnego in [....].
+ /// Internal helper class to help keep Kerberos and Spnego in sync.
/// This code is shared by:
/// System\IdentityModel\Tokens\KerberosReceiverSecurityToken.cs
/// System\ServiceModel\Security\WindowsSspiNegotiation.cs
@@ -736,7 +736,7 @@ namespace System.IdentityModel
internal class ExtendedProtectionPolicyHelper
{
//
- // keep the defaults: _protectionScenario and _policyEnforcement, in [....] with: static class System.ServiceModel.Channel.ChannelBindingUtility
+ // keep the defaults: _protectionScenario and _policyEnforcement, in sync with: static class System.ServiceModel.Channel.ChannelBindingUtility
// We can't access those defaults as IdentityModel cannot take a dependency on ServiceModel
//
static ExtendedProtectionPolicy disabledPolicy = new ExtendedProtectionPolicy(PolicyEnforcement.Never);
@@ -893,11 +893,11 @@ namespace System.IdentityModel
}
/// <summary>
- /// Keep this in [....] with \System\ServiceModel\Channels\ChannelBindingUtility.cs
+ /// Keep this in sync with \System\ServiceModel\Channels\ChannelBindingUtility.cs
/// </summary>
public static ExtendedProtectionPolicy DefaultPolicy
{ //
- //keep the default in [....] with : static class System.ServiceModel.Channels.ChannelBindingUtility
+ //keep the default in sync with : static class System.ServiceModel.Channels.ChannelBindingUtility
//we can't use these defaults as IdentityModel cannot take a dependency on ServiceModel
//
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/SspiSafeHandles.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/SspiSafeHandles.cs
index 9f61b67d9ca..ff70861495c 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/SspiSafeHandles.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/SspiSafeHandles.cs
@@ -391,7 +391,7 @@ namespace System.IdentityModel
{
SSPIHandle credentialHandle = inCredentials._handle;
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // This API does not set Win32 Last Error.
errorCode = InitializeSecurityContextW(
ref credentialHandle,
@@ -661,7 +661,7 @@ namespace System.IdentityModel
{
SSPIHandle credentialHandle = inCredentials._handle;
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // This API does not set Win32 Last Error.
errorCode = AcceptSecurityContext(
ref credentialHandle,
@@ -741,7 +741,7 @@ namespace System.IdentityModel
if (b)
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // The API does not set Win32 Last Error. It returns a error code.
status = ImpersonateSecurityContext(ref context._handle);
context.DangerousRelease();
@@ -777,7 +777,7 @@ namespace System.IdentityModel
{
if (b)
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // The API does not set Win32 Last Error. It returns a error code.
status = EncryptMessage(ref context._handle, 0, inputOutput, sequenceNumber);
context.DangerousRelease();
@@ -857,7 +857,7 @@ namespace System.IdentityModel
{
if (b)
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // The API does not set Win32 Last Error. The API returns a error code.
status = QuerySecurityContextToken(ref _handle, out safeHandle);
DangerousRelease();
@@ -875,7 +875,7 @@ namespace System.IdentityModel
if (this._EffectiveCredential != null)
this._EffectiveCredential.DangerousRelease();
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // The API does not set Win32 Last Error. It returns a error code.
return DeleteSecurityContext(ref _handle) == 0;
}
@@ -992,7 +992,7 @@ namespace System.IdentityModel
try { }
finally
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // The API does not set Win32 Last Error. It returns a error code.
errorCode = AcquireCredentialsHandleW(
null,
@@ -1027,7 +1027,7 @@ namespace System.IdentityModel
try { }
finally
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // The API does not set Win32 Last Error. It returns a error code.
errorCode = AcquireCredentialsHandleW(
null,
@@ -1073,7 +1073,7 @@ namespace System.IdentityModel
try { }
finally
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // The API does not set Win32 Last Error. It returns a error code.
errorCode = AcquireCredentialsHandleW(
null,
@@ -1114,7 +1114,7 @@ namespace System.IdentityModel
try { }
finally
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // The API does not set Win32 Last Error. It returns a error code.
errorCode = AcquireCredentialsHandleW(
null,
@@ -1138,7 +1138,7 @@ namespace System.IdentityModel
protected override bool ReleaseHandle()
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // The API does not set Win32 Last Error. It returns a error code.
return FreeCredentialsHandle(ref _handle) == 0;
}
@@ -1220,7 +1220,7 @@ namespace System.IdentityModel
protected override bool ReleaseHandle()
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // The API does not set Win32 Last Error.
return CertFreeCertificateContext(handle);
}
@@ -1242,7 +1242,7 @@ namespace System.IdentityModel
internal static int EnumeratePackages(out int pkgnum, out SafeFreeContextBuffer pkgArray)
{
int res = -1;
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // The API does not set Win32 Last Error. The API returns a error code.
res = SafeFreeContextBuffer.EnumerateSecurityPackagesW(out pkgnum, out pkgArray);
@@ -1295,7 +1295,7 @@ namespace System.IdentityModel
{
if (b)
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // The API does not set Win32 Last Error. The API returns a error code.
status = SafeFreeContextBuffer.QueryContextAttributesW(ref phContext._handle, contextAttribute, buffer);
phContext.DangerousRelease();
@@ -1330,7 +1330,7 @@ namespace System.IdentityModel
protected override bool ReleaseHandle()
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // The API does not set Win32 Last Error. The API returns a error code.
return FreeContextBuffer(handle) == 0;
}
@@ -1371,7 +1371,7 @@ namespace System.IdentityModel
protected override bool ReleaseHandle()
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // We are not interested to throw an exception here. We can ignore the Last Error code.
return CloseHandle(handle);
}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/BinaryKeyIdentifierClause.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/BinaryKeyIdentifierClause.cs
index 7ba89951f10..3d76a71a0db 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/BinaryKeyIdentifierClause.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/BinaryKeyIdentifierClause.cs
@@ -52,7 +52,7 @@ namespace System.IdentityModel.Tokens
{
BinaryKeyIdentifierClause that = keyIdentifierClause as BinaryKeyIdentifierClause;
- // PreSharp Bug: Parameter 'that' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506
return ReferenceEquals(this, that) || (that != null && that.Matches(this.identificationData));
}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/EncryptedKeyIdentifierClause.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/EncryptedKeyIdentifierClause.cs
index ff6808845dc..51d63656e9d 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/EncryptedKeyIdentifierClause.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/EncryptedKeyIdentifierClause.cs
@@ -62,7 +62,7 @@ namespace System.IdentityModel.Tokens
{
EncryptedKeyIdentifierClause that = keyIdentifierClause as EncryptedKeyIdentifierClause;
- // PreSharp Bug: Parameter 'that' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506
return ReferenceEquals(this, that) || (that != null && that.Matches(this.GetRawBuffer(), this.encryptionMethod, this.carriedKeyName));
}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/GenericXmlSecurityKeyIdentifierClause.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/GenericXmlSecurityKeyIdentifierClause.cs
index 510637d61fb..4aa931b597f 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/GenericXmlSecurityKeyIdentifierClause.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/GenericXmlSecurityKeyIdentifierClause.cs
@@ -31,7 +31,7 @@ namespace System.IdentityModel.Tokens
{
GenericXmlSecurityKeyIdentifierClause that = keyIdentifierClause as GenericXmlSecurityKeyIdentifierClause;
- // PreSharp Bug: Parameter 'that' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506
return ReferenceEquals(this, that) || (that != null && that.Matches(this.ReferenceXml));
}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/LocalIdKeyIdentifierClause.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/LocalIdKeyIdentifierClause.cs
index a58c07bc41f..d019ee2017a 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/LocalIdKeyIdentifierClause.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/LocalIdKeyIdentifierClause.cs
@@ -60,7 +60,7 @@ namespace System.IdentityModel.Tokens
{
LocalIdKeyIdentifierClause that = keyIdentifierClause as LocalIdKeyIdentifierClause;
- // PreSharp Bug: Parameter 'that' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506
return ReferenceEquals(this, that) || (that != null && that.Matches(this.localId, this.OwnerType));
}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/RsaKeyIdentifierClause.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/RsaKeyIdentifierClause.cs
index 6071c80be3e..ff88bc9bdb6 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/RsaKeyIdentifierClause.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/RsaKeyIdentifierClause.cs
@@ -58,7 +58,7 @@ namespace System.IdentityModel.Tokens
{
RsaKeyIdentifierClause that = keyIdentifierClause as RsaKeyIdentifierClause;
- // PreSharp Bug: Parameter 'that' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506
return ReferenceEquals(this, that) || (that != null && that.Matches(this.rsa));
}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/Saml2SecurityTokenHandler.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/Saml2SecurityTokenHandler.cs
index 3911fb6480c..63ea232ef93 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/Saml2SecurityTokenHandler.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/Saml2SecurityTokenHandler.cs
@@ -370,7 +370,7 @@ namespace System.IdentityModel.Tokens
if (this.samlSecurityTokenRequirement.MapToWindows)
{
- // TFS: 153865, [....] WindowsIdentity does not set Authtype. I don't think that authtype should be set here anyway.
+ // TFS: 153865, Microsoft WindowsIdentity does not set Authtype. I don't think that authtype should be set here anyway.
// The authtype will be S4U (kerberos) it doesn't really matter that the upn arrived in a SAML token.
claimsIdentity = this.CreateWindowsIdentity(this.FindUpn(claimsIdentity));
@@ -3447,8 +3447,8 @@ namespace System.IdentityModel.Tokens
}
// We are now laxing the uri check for audience restriction to support interop partners
- // This is a specific request from server : Bug 11850
- // ReadSimpleUriElement now has a flag that turns lax reading ON/OFF.
+ // This is a specific request from server :
+
audienceRestriction = new Saml2AudienceRestriction(ReadSimpleUriElement(reader, UriKind.RelativeOrAbsolute, true));
while (reader.IsStartElement(Saml2Constants.Elements.Audience, Saml2Constants.Namespace))
{
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/SamlAssertionKeyIdentifierClause.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/SamlAssertionKeyIdentifierClause.cs
index e455fc17b9d..39d9aa6fbd0 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/SamlAssertionKeyIdentifierClause.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/SamlAssertionKeyIdentifierClause.cs
@@ -74,7 +74,7 @@ namespace System.IdentityModel.Tokens
{
SamlAssertionKeyIdentifierClause that = keyIdentifierClause as SamlAssertionKeyIdentifierClause;
- // PreSharp Bug: Parameter 'that' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506
return ReferenceEquals(this, that) || (that != null && that.Matches(this.assertionId));
}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/SamlSecurityTokenHandler.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/SamlSecurityTokenHandler.cs
index 3ee5369d33f..0fbf94a87c6 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/SamlSecurityTokenHandler.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/SamlSecurityTokenHandler.cs
@@ -1020,7 +1020,7 @@ namespace System.IdentityModel.Tokens
if (_samlSecurityTokenRequirement.MapToWindows)
{
- // TFS: 153865, [....] WindowsIdentity does not set Authtype. I don't think that authtype should be set here anyway.
+ // TFS: 153865, Microsoft WindowsIdentity does not set Authtype. I don't think that authtype should be set here anyway.
// The authtype will be S4U (kerberos) it doesn't really matter that the upn arrived in a SAML token.
WindowsIdentity windowsIdentity = CreateWindowsIdentity(FindUpn(claimsIdentity));
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/WrappedSaml2AssertionKeyIdentifierClause.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/WrappedSaml2AssertionKeyIdentifierClause.cs
index 473c17bff56..05109450c4a 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/WrappedSaml2AssertionKeyIdentifierClause.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/WrappedSaml2AssertionKeyIdentifierClause.cs
@@ -11,9 +11,9 @@ namespace System.IdentityModel.Tokens
/// <summary>
/// This class wraps a Saml2AssertionKeyIdentifierClause and delegates to the wrapped clause.
- /// It derives off the SamlAssertionKeyIdentifierClause to get around a specific bug in WCF
- /// where the WCF runtime will call the Saml2SecurityToken to create a SamlAssertionKeyIdentifierClause.
- /// </summary>
+ /// It derives off the SamlAssertionKeyIdentifierClause to get around a specific
+
+
internal class WrappedSaml2AssertionKeyIdentifierClause : SamlAssertionKeyIdentifierClause
{
private Saml2AssertionKeyIdentifierClause clause;
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/X509IssuerSerialKeyIdentifierClause.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/X509IssuerSerialKeyIdentifierClause.cs
index f714137f1ee..5da0cc8a5d3 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/X509IssuerSerialKeyIdentifierClause.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/Tokens/X509IssuerSerialKeyIdentifierClause.cs
@@ -50,7 +50,7 @@ namespace System.IdentityModel.Tokens
{
X509IssuerSerialKeyIdentifierClause that = keyIdentifierClause as X509IssuerSerialKeyIdentifierClause;
- // PreSharp Bug: Parameter 'that' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506
return ReferenceEquals(this, that) || (that != null && that.Matches(this.issuerName, this.issuerSerialNumber));
}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/X509Util.cs b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/X509Util.cs
index 965002cd32e..afdb09f5804 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/X509Util.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/IdentityModel/X509Util.cs
@@ -165,7 +165,7 @@ namespace System.IdentityModel
/// <param name="revocationMode">The revocation mode to use.</param>
/// <param name="trustedStoreLocation">The store to use.</param>
/// <returns>The X509CertificateValidator.</returns>
- /// <remarks>Due to a WCF bug, X509CertificateValidatorEx must be used rather than WCF's validators directly</remarks>
+ /// <remarks>Due to a WCF
internal static X509CertificateValidator CreateCertificateValidator(
System.ServiceModel.Security.X509CertificateValidationMode certificateValidationMode,
X509RevocationMode revocationMode,
diff --git a/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/BinarySecretKeyIdentifierClause.cs b/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/BinarySecretKeyIdentifierClause.cs
index 79ce39c17ca..6389818fd19 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/BinarySecretKeyIdentifierClause.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/BinarySecretKeyIdentifierClause.cs
@@ -50,7 +50,7 @@ namespace System.ServiceModel.Security
{
BinarySecretKeyIdentifierClause that = keyIdentifierClause as BinarySecretKeyIdentifierClause;
- // PreSharp Bug: Parameter 'that' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506
return ReferenceEquals(this, that) || (that != null && that.Matches(this.GetRawBuffer()));
}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/KeyNameIdentifierClause.cs b/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/KeyNameIdentifierClause.cs
index 6bbb93644bb..a36d14136bc 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/KeyNameIdentifierClause.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/KeyNameIdentifierClause.cs
@@ -32,7 +32,7 @@ namespace System.ServiceModel.Security
{
KeyNameIdentifierClause that = keyIdentifierClause as KeyNameIdentifierClause;
- // PreSharp Bug: Parameter 'that' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506
return ReferenceEquals(this, that) || (that != null && that.Matches(this.keyName));
}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/ReferenceList.cs b/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/ReferenceList.cs
index 38447200d38..2972098749e 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/ReferenceList.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/ReferenceList.cs
@@ -38,7 +38,7 @@ namespace System.ServiceModel.Security
{
get
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException());
}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/RelAssertionDirectKeyIdentifierClause.cs b/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/RelAssertionDirectKeyIdentifierClause.cs
index 792dac6c2e6..7a8ac3dc6c5 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/RelAssertionDirectKeyIdentifierClause.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/RelAssertionDirectKeyIdentifierClause.cs
@@ -32,7 +32,7 @@ namespace System.ServiceModel.Security
{
RelAssertionDirectKeyIdentifierClause that = keyIdentifierClause as RelAssertionDirectKeyIdentifierClause;
- // PreSharp Bug: Parameter 'that' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506
return (ReferenceEquals(this, that) || (that != null && that.AssertionId == this.AssertionId));
}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/SamlAssertionDirectKeyIdentifierClause.cs b/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/SamlAssertionDirectKeyIdentifierClause.cs
index 517a9a50250..94c196b3426 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/SamlAssertionDirectKeyIdentifierClause.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/SamlAssertionDirectKeyIdentifierClause.cs
@@ -32,7 +32,7 @@ namespace System.ServiceModel.Security
{
SamlAssertionDirectKeyIdentifierClause that = keyIdentifierClause as SamlAssertionDirectKeyIdentifierClause;
- // PreSharp Bug: Parameter 'that' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506
return (ReferenceEquals(this, that) || (that != null && that.SamlUri == this.SamlUri));
}
diff --git a/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/SecurityContextKeyIdentifierClause.cs b/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/SecurityContextKeyIdentifierClause.cs
index 6f6c70a7a5e..3813a4e1658 100644
--- a/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/SecurityContextKeyIdentifierClause.cs
+++ b/mcs/class/referencesource/System.IdentityModel/System/ServiceModel/Security/SecurityContextKeyIdentifierClause.cs
@@ -50,7 +50,7 @@ namespace System.ServiceModel.Security
{
SecurityContextKeyIdentifierClause that = keyIdentifierClause as SecurityContextKeyIdentifierClause;
- // PreSharp Bug: Parameter 'that' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506
return ReferenceEquals(this, that) || (that != null && that.Matches(this.contextId, this.generation));
}
diff --git a/mcs/class/referencesource/System.Net/net/PeerToPeer/Collaboration/CollaborationEnumTypes.cs b/mcs/class/referencesource/System.Net/net/PeerToPeer/Collaboration/CollaborationEnumTypes.cs
index 12a39440425..5ddcc547da5 100644
--- a/mcs/class/referencesource/System.Net/net/PeerToPeer/Collaboration/CollaborationEnumTypes.cs
+++ b/mcs/class/referencesource/System.Net/net/PeerToPeer/Collaboration/CollaborationEnumTypes.cs
@@ -70,4 +70,4 @@ namespace System.Net.PeerToPeer.Collaboration
PeopleNearMeChanged = 10,
RequestStatusChanged = 11
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Net/net/PeerToPeer/Collaboration/ContactManager.cs b/mcs/class/referencesource/System.Net/net/PeerToPeer/Collaboration/ContactManager.cs
index de8d5aab8f2..0a863133e1b 100644
--- a/mcs/class/referencesource/System.Net/net/PeerToPeer/Collaboration/ContactManager.cs
+++ b/mcs/class/referencesource/System.Net/net/PeerToPeer/Collaboration/ContactManager.cs
@@ -1561,7 +1561,7 @@ namespace System.Net.PeerToPeer.Collaboration
object userToken = createAsyncState.UserToken;
//
- // Call the [....] version of createcontact
+ // Call the sync version of createcontact
//
try{
peerContact = CreateContact(peerNearMe);
diff --git a/mcs/class/referencesource/System.Net/net/PeerToPeer/Collaboration/PeerNearMe.cs b/mcs/class/referencesource/System.Net/net/PeerToPeer/Collaboration/PeerNearMe.cs
index 66fae79abbd..b72b6f990f3 100644
--- a/mcs/class/referencesource/System.Net/net/PeerToPeer/Collaboration/PeerNearMe.cs
+++ b/mcs/class/referencesource/System.Net/net/PeerToPeer/Collaboration/PeerNearMe.cs
@@ -315,7 +315,7 @@ namespace System.Net.PeerToPeer.Collaboration
if (exception != null){
//
- // Throw exception for [....] but call callback for async with exception
+ // Throw exception for sync but call callback for async with exception
//
if (!isAsync)
throw exception;
@@ -328,7 +328,7 @@ namespace System.Net.PeerToPeer.Collaboration
Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "Found endpoint match in Request status changed.");
//
- // For async call the callback and for [....] just return
+ // For async call the callback and for sync just return
//
if (isAsync){
RefreshDataCompletedEventArgs args = new
@@ -352,7 +352,7 @@ namespace System.Net.PeerToPeer.Collaboration
//
// Async case with exception fire callback here
- // [....] would have already thrown this by now
+ // Sync would have already thrown this by now
//
if (exception != null){
RefreshDataCompletedEventArgs args = new
diff --git a/mcs/class/referencesource/System.Net/net/PeerToPeer/PeerName.cs b/mcs/class/referencesource/System.Net/net/PeerToPeer/PeerName.cs
index e4c8f05b975..b9502c116d7 100644
--- a/mcs/class/referencesource/System.Net/net/PeerToPeer/PeerName.cs
+++ b/mcs/class/referencesource/System.Net/net/PeerToPeer/PeerName.cs
@@ -433,7 +433,7 @@ namespace System.Net.PeerToPeer
/// I have considered using regular expressions. However, the regular expressions offer
/// poor performance and or startup cost. Really there is no substiture for custom
/// parsing logic. I decided to write this piece of code to parse the peername for now
- /// - [....] 6/6/2005
+ /// - Microsoft 6/6/2005
/// </summary>
/// <param name="peerName"></param>
/// <param name="authority"></param>
diff --git a/mcs/class/referencesource/System.Net/net/PeerToPeer/PeerNameResolver.cs b/mcs/class/referencesource/System.Net/net/PeerToPeer/PeerNameResolver.cs
index 887280f9238..62397d824d7 100644
--- a/mcs/class/referencesource/System.Net/net/PeerToPeer/PeerNameResolver.cs
+++ b/mcs/class/referencesource/System.Net/net/PeerToPeer/PeerNameResolver.cs
@@ -490,7 +490,7 @@ namespace System.Net.PeerToPeer
/// <summary>
- /// PeerNameResolver does [....] and async resolves.
+ /// PeerNameResolver does sync and async resolves.
/// PeerNameResolver supports multiple outstanding async calls
/// </summary>
public class PeerNameResolver
@@ -581,7 +581,7 @@ namespace System.Net.PeerToPeer
}
/// <summary>
- /// Implements [....] resolve of the PeerName in the cloud given
+ /// Implements sync resolve of the PeerName in the cloud given
/// </summary>
/// <param name="peerName"></param>
/// <param name="cloud"></param>
@@ -641,7 +641,7 @@ namespace System.Net.PeerToPeer
//---------------------------------------------------------------
//Trace log
//---------------------------------------------------------------
- Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "[....] Resolve called with PeerName: {0}, Cloud: {1}, MaxRecords {2}", peerName, cloud, maxRecords);
+ Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "Sync Resolve called with PeerName: {0}, Cloud: {1}, MaxRecords {2}", peerName, cloud, maxRecords);
SafePeerData shEndPointInfoArray;
string NativeCloudName = cloud.InternalName;
@@ -721,7 +721,7 @@ namespace System.Net.PeerToPeer
shEndPointInfoArray.Dispose();
}
}
- Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "[....] Resolve returnig with PeerNameRecord count :{0}", PeerNameRecords.Count);
+ Logging.P2PTraceSource.TraceEvent(TraceEventType.Information, 0, "Sync Resolve returnig with PeerNameRecord count :{0}", PeerNameRecords.Count);
return PeerNameRecords;
}
diff --git a/mcs/class/referencesource/System.Numerics/BaselineExcludes.lst.cs b/mcs/class/referencesource/System.Numerics/BaselineExcludes.lst.cs
index 463e5b5ed75..45ca30fde50 100644
--- a/mcs/class/referencesource/System.Numerics/BaselineExcludes.lst.cs
+++ b/mcs/class/referencesource/System.Numerics/BaselineExcludes.lst.cs
@@ -1,7 +1,7 @@
using System.Diagnostics.CodeAnalysis;
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", Scope="namespace", Target="System.Numerics", Justification="[....] - by design")]
-[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", Scope="assembly", Target="System.Numerics", Justification="[....] - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", Scope="namespace", Target="System.Numerics", Justification="jfree - by design")]
+[module: SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", Scope="assembly", Target="System.Numerics", Justification="jfree - by design")]
[module: SuppressMessage("Microsoft.Performance","CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.SR.GetObject(System.String):System.Object")]
[module: SuppressMessage("Microsoft.Performance","CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Numerics.BigInteger.ObjectInvariant():System.Void")]
diff --git a/mcs/class/referencesource/System.Numerics/System/Numerics/Complex.cs b/mcs/class/referencesource/System.Numerics/System/Numerics/Complex.cs
index c1c4e1acbd6..579a964462b 100644
--- a/mcs/class/referencesource/System.Numerics/System/Numerics/Complex.cs
+++ b/mcs/class/referencesource/System.Numerics/System/Numerics/Complex.cs
@@ -290,7 +290,7 @@ namespace System.Numerics {
return new Complex(Math.Sin(a) * Math.Cosh(b), Math.Cos(a) * Math.Sinh(b));
}
- [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Sinh", Justification = "[....]: Existing Name")]
+ [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Sinh", Justification = "Microsoft: Existing Name")]
public static Complex Sinh(Complex value) /* Hyperbolic sin */
{
double a = value.m_real;
@@ -309,7 +309,7 @@ namespace System.Numerics {
return new Complex(Math.Cos(a) * Math.Cosh(b), - (Math.Sin(a) * Math.Sinh(b)));
}
- [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Cosh", Justification = "[....]: Existing Name")]
+ [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Cosh", Justification = "Microsoft: Existing Name")]
public static Complex Cosh(Complex value) /* Hyperbolic cos */
{
double a = value.m_real;
@@ -325,7 +325,7 @@ namespace System.Numerics {
return (Sin(value) / Cos(value));
}
- [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Tanh", Justification = "[....]: Existing Name")]
+ [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Tanh", Justification = "Microsoft: Existing Name")]
public static Complex Tanh(Complex value) /* Hyperbolic tan */
{
return (Sinh(value) / Cosh(value));
@@ -362,7 +362,7 @@ namespace System.Numerics {
return (new Complex(result_re, result_im));
}
- [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Sqrt", Justification = "[....]: Existing Name")]
+ [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Sqrt", Justification = "Microsoft: Existing Name")]
public static Complex Sqrt(Complex value) /* Square root ot the complex number */
{
return Complex.FromPolarCoordinates(Math.Sqrt(value.Magnitude), value.Phase / 2.0);
diff --git a/mcs/class/referencesource/System.Numerics/System/Numerics/HashCodeHelper.cs b/mcs/class/referencesource/System.Numerics/System/Numerics/HashCodeHelper.cs
new file mode 100644
index 00000000000..5eeeeca7dcb
--- /dev/null
+++ b/mcs/class/referencesource/System.Numerics/System/Numerics/HashCodeHelper.cs
@@ -0,0 +1,16 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+namespace System.Numerics
+{
+ internal static class HashCodeHelper
+ {
+ /// <summary>
+ /// Combines two hash codes, useful for combining hash codes of individual vector elements
+ /// </summary>
+ internal static int CombineHashCodes(int h1, int h2)
+ {
+ return (((h1 << 5) + h1) ^ h2);
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Numerics/System/Numerics/JITIntrinsicAttribute.cs b/mcs/class/referencesource/System.Numerics/System/Numerics/JITIntrinsicAttribute.cs
new file mode 100644
index 00000000000..251789871aa
--- /dev/null
+++ b/mcs/class/referencesource/System.Numerics/System/Numerics/JITIntrinsicAttribute.cs
@@ -0,0 +1,13 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+namespace System.Numerics
+{
+ /// <summary>
+ /// An attribute that can be attached to JIT Intrinsic methods/properties
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Property)]
+ internal class JitIntrinsicAttribute : Attribute
+ {
+ }
+}
diff --git a/mcs/class/referencesource/System.Numerics/System/Numerics/Matrix3x2.cs b/mcs/class/referencesource/System.Numerics/System/Numerics/Matrix3x2.cs
new file mode 100644
index 00000000000..7ee9b446023
--- /dev/null
+++ b/mcs/class/referencesource/System.Numerics/System/Numerics/Matrix3x2.cs
@@ -0,0 +1,809 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System.Globalization;
+
+namespace System.Numerics
+{
+ /// <summary>
+ /// A structure encapsulating a 3x2 matrix.
+ /// </summary>
+ public struct Matrix3x2 : IEquatable<Matrix3x2>
+ {
+ #region Public Fields
+ /// <summary>
+ /// The first element of the first row
+ /// </summary>
+ public float M11;
+ /// <summary>
+ /// The second element of the first row
+ /// </summary>
+ public float M12;
+ /// <summary>
+ /// The first element of the second row
+ /// </summary>
+ public float M21;
+ /// <summary>
+ /// The second element of the second row
+ /// </summary>
+ public float M22;
+ /// <summary>
+ /// The first element of the third row
+ /// </summary>
+ public float M31;
+ /// <summary>
+ /// The second element of the third row
+ /// </summary>
+ public float M32;
+ #endregion Public Fields
+
+ private static readonly Matrix3x2 _identity = new Matrix3x2
+ (
+ 1f, 0f,
+ 0f, 1f,
+ 0f, 0f
+ );
+
+ /// <summary>
+ /// Returns the multiplicative identity matrix.
+ /// </summary>
+ public static Matrix3x2 Identity
+ {
+ get { return _identity; }
+ }
+
+ /// <summary>
+ /// Returns whether the matrix is the identity matrix.
+ /// </summary>
+ public bool IsIdentity
+ {
+ get
+ {
+ return M11 == 1f && M22 == 1f && // Check diagonal element first for early out.
+ M12 == 0f &&
+ M21 == 0f &&
+ M31 == 0f && M32 == 0f;
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets the translation component of this matrix.
+ /// </summary>
+ public Vector2 Translation
+ {
+ get
+ {
+ return new Vector2(M31, M32);
+ }
+
+ set
+ {
+ M31 = value.X;
+ M32 = value.Y;
+ }
+ }
+
+ /// <summary>
+ /// Constructs a Matrix3x2 from the given components.
+ /// </summary>
+ public Matrix3x2(float m11, float m12,
+ float m21, float m22,
+ float m31, float m32)
+ {
+ this.M11 = m11;
+ this.M12 = m12;
+ this.M21 = m21;
+ this.M22 = m22;
+ this.M31 = m31;
+ this.M32 = m32;
+ }
+
+ /// <summary>
+ /// Creates a translation matrix from the given vector.
+ /// </summary>
+ /// <param name="position">The translation position.</param>
+ /// <returns>A translation matrix.</returns>
+ public static Matrix3x2 CreateTranslation(Vector2 position)
+ {
+ Matrix3x2 result;
+
+ result.M11 = 1.0f;
+ result.M12 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = 1.0f;
+
+ result.M31 = position.X;
+ result.M32 = position.Y;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a translation matrix from the given X and Y components.
+ /// </summary>
+ /// <param name="xPosition">The X position.</param>
+ /// <param name="yPosition">The Y position.</param>
+ /// <returns>A translation matrix.</returns>
+ public static Matrix3x2 CreateTranslation(float xPosition, float yPosition)
+ {
+ Matrix3x2 result;
+
+ result.M11 = 1.0f;
+ result.M12 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = 1.0f;
+
+ result.M31 = xPosition;
+ result.M32 = yPosition;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a scale matrix from the given X and Y components.
+ /// </summary>
+ /// <param name="xScale">Value to scale by on the X-axis.</param>
+ /// <param name="yScale">Value to scale by on the Y-axis.</param>
+ /// <returns>A scaling matrix.</returns>
+ public static Matrix3x2 CreateScale(float xScale, float yScale)
+ {
+ Matrix3x2 result;
+
+ result.M11 = xScale;
+ result.M12 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = yScale;
+ result.M31 = 0.0f;
+ result.M32 = 0.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a scale matrix that is offset by a given center point.
+ /// </summary>
+ /// <param name="xScale">Value to scale by on the X-axis.</param>
+ /// <param name="yScale">Value to scale by on the Y-axis.</param>
+ /// <param name="centerPoint">The center point.</param>
+ /// <returns>A scaling matrix.</returns>
+ public static Matrix3x2 CreateScale(float xScale, float yScale, Vector2 centerPoint)
+ {
+ Matrix3x2 result;
+
+ float tx = centerPoint.X * (1 - xScale);
+ float ty = centerPoint.Y * (1 - yScale);
+
+ result.M11 = xScale;
+ result.M12 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = yScale;
+ result.M31 = tx;
+ result.M32 = ty;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a scale matrix from the given vector scale.
+ /// </summary>
+ /// <param name="scales">The scale to use.</param>
+ /// <returns>A scaling matrix.</returns>
+ public static Matrix3x2 CreateScale(Vector2 scales)
+ {
+ Matrix3x2 result;
+
+ result.M11 = scales.X;
+ result.M12 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = scales.Y;
+ result.M31 = 0.0f;
+ result.M32 = 0.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a scale matrix from the given vector scale with an offset from the given center point.
+ /// </summary>
+ /// <param name="scales">The scale to use.</param>
+ /// <param name="centerPoint">The center offset.</param>
+ /// <returns>A scaling matrix.</returns>
+ public static Matrix3x2 CreateScale(Vector2 scales, Vector2 centerPoint)
+ {
+ Matrix3x2 result;
+
+ float tx = centerPoint.X * (1 - scales.X);
+ float ty = centerPoint.Y * (1 - scales.Y);
+
+ result.M11 = scales.X;
+ result.M12 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = scales.Y;
+ result.M31 = tx;
+ result.M32 = ty;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a scale matrix that scales uniformly with the given scale.
+ /// </summary>
+ /// <param name="scale">The uniform scale to use.</param>
+ /// <returns>A scaling matrix.</returns>
+ public static Matrix3x2 CreateScale(float scale)
+ {
+ Matrix3x2 result;
+
+ result.M11 = scale;
+ result.M12 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = scale;
+ result.M31 = 0.0f;
+ result.M32 = 0.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a scale matrix that scales uniformly with the given scale with an offset from the given center.
+ /// </summary>
+ /// <param name="scale">The uniform scale to use.</param>
+ /// <param name="centerPoint">The center offset.</param>
+ /// <returns>A scaling matrix.</returns>
+ public static Matrix3x2 CreateScale(float scale, Vector2 centerPoint)
+ {
+ Matrix3x2 result;
+
+ float tx = centerPoint.X * (1 - scale);
+ float ty = centerPoint.Y * (1 - scale);
+
+ result.M11 = scale;
+ result.M12 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = scale;
+ result.M31 = tx;
+ result.M32 = ty;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a skew matrix from the given angles in radians.
+ /// </summary>
+ /// <param name="radiansX">The X angle, in radians.</param>
+ /// <param name="radiansY">The Y angle, in radians.</param>
+ /// <returns>A skew matrix.</returns>
+ public static Matrix3x2 CreateSkew(float radiansX, float radiansY)
+ {
+ Matrix3x2 result;
+
+ float xTan = (float)Math.Tan(radiansX);
+ float yTan = (float)Math.Tan(radiansY);
+
+ result.M11 = 1.0f;
+ result.M12 = yTan;
+ result.M21 = xTan;
+ result.M22 = 1.0f;
+ result.M31 = 0.0f;
+ result.M32 = 0.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a skew matrix from the given angles in radians and a center point.
+ /// </summary>
+ /// <param name="radiansX">The X angle, in radians.</param>
+ /// <param name="radiansY">The Y angle, in radians.</param>
+ /// <param name="centerPoint">The center point.</param>
+ /// <returns>A skew matrix.</returns>
+ public static Matrix3x2 CreateSkew(float radiansX, float radiansY, Vector2 centerPoint)
+ {
+ Matrix3x2 result;
+
+ float xTan = (float)Math.Tan(radiansX);
+ float yTan = (float)Math.Tan(radiansY);
+
+ float tx = -centerPoint.Y * xTan;
+ float ty = -centerPoint.X * yTan;
+
+ result.M11 = 1.0f;
+ result.M12 = yTan;
+ result.M21 = xTan;
+ result.M22 = 1.0f;
+ result.M31 = tx;
+ result.M32 = ty;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a rotation matrix using the given rotation in radians.
+ /// </summary>
+ /// <param name="radians">The amount of rotation, in radians.</param>
+ /// <returns>A rotation matrix.</returns>
+ public static Matrix3x2 CreateRotation(float radians)
+ {
+ Matrix3x2 result;
+
+ radians = (float)Math.IEEERemainder(radians, Math.PI * 2);
+
+ float c, s;
+
+ const float epsilon = 0.001f * (float)Math.PI / 180f; // 0.1% of a degree
+
+ if (radians > -epsilon && radians < epsilon)
+ {
+ // Exact case for zero rotation.
+ c = 1;
+ s = 0;
+ }
+ else if (radians > Math.PI / 2 - epsilon && radians < Math.PI / 2 + epsilon)
+ {
+ // Exact case for 90 degree rotation.
+ c = 0;
+ s = 1;
+ }
+ else if (radians < -Math.PI + epsilon || radians > Math.PI - epsilon)
+ {
+ // Exact case for 180 degree rotation.
+ c = -1;
+ s = 0;
+ }
+ else if (radians > -Math.PI / 2 - epsilon && radians < -Math.PI / 2 + epsilon)
+ {
+ // Exact case for 270 degree rotation.
+ c = 0;
+ s = -1;
+ }
+ else
+ {
+ // Arbitrary rotation.
+ c = (float)Math.Cos(radians);
+ s = (float)Math.Sin(radians);
+ }
+
+ // [ c s ]
+ // [ -s c ]
+ // [ 0 0 ]
+ result.M11 = c;
+ result.M12 = s;
+ result.M21 = -s;
+ result.M22 = c;
+ result.M31 = 0.0f;
+ result.M32 = 0.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a rotation matrix using the given rotation in radians and a center point.
+ /// </summary>
+ /// <param name="radians">The amount of rotation, in radians.</param>
+ /// <param name="centerPoint">The center point.</param>
+ /// <returns>A rotation matrix.</returns>
+ public static Matrix3x2 CreateRotation(float radians, Vector2 centerPoint)
+ {
+ Matrix3x2 result;
+
+ radians = (float)Math.IEEERemainder(radians, Math.PI * 2);
+
+ float c, s;
+
+ const float epsilon = 0.001f * (float)Math.PI / 180f; // 0.1% of a degree
+
+ if (radians > -epsilon && radians < epsilon)
+ {
+ // Exact case for zero rotation.
+ c = 1;
+ s = 0;
+ }
+ else if (radians > Math.PI / 2 - epsilon && radians < Math.PI / 2 + epsilon)
+ {
+ // Exact case for 90 degree rotation.
+ c = 0;
+ s = 1;
+ }
+ else if (radians < -Math.PI + epsilon || radians > Math.PI - epsilon)
+ {
+ // Exact case for 180 degree rotation.
+ c = -1;
+ s = 0;
+ }
+ else if (radians > -Math.PI / 2 - epsilon && radians < -Math.PI / 2 + epsilon)
+ {
+ // Exact case for 270 degree rotation.
+ c = 0;
+ s = -1;
+ }
+ else
+ {
+ // Arbitrary rotation.
+ c = (float)Math.Cos(radians);
+ s = (float)Math.Sin(radians);
+ }
+
+ float x = centerPoint.X * (1 - c) + centerPoint.Y * s;
+ float y = centerPoint.Y * (1 - c) - centerPoint.X * s;
+
+ // [ c s ]
+ // [ -s c ]
+ // [ x y ]
+ result.M11 = c;
+ result.M12 = s;
+ result.M21 = -s;
+ result.M22 = c;
+ result.M31 = x;
+ result.M32 = y;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Calculates the determinant for this matrix.
+ /// The determinant is calculated by expanding the matrix with a third column whose values are (0,0,1).
+ /// </summary>
+ /// <returns>The determinant.</returns>
+ public float GetDeterminant()
+ {
+ // There isn't actually any such thing as a determinant for a non-square matrix,
+ // but this 3x2 type is really just an optimization of a 3x3 where we happen to
+ // know the rightmost column is always (0, 0, 1). So we expand to 3x3 format:
+ //
+ // [ M11, M12, 0 ]
+ // [ M21, M22, 0 ]
+ // [ M31, M32, 1 ]
+ //
+ // Sum the diagonal products:
+ // (M11 * M22 * 1) + (M12 * 0 * M31) + (0 * M21 * M32)
+ //
+ // Subtract the opposite diagonal products:
+ // (M31 * M22 * 0) + (M32 * 0 * M11) + (1 * M21 * M12)
+ //
+ // Collapse out the constants and oh look, this is just a 2x2 determinant!
+
+ return (M11 * M22) - (M21 * M12);
+ }
+
+ /// <summary>
+ /// Attempts to invert the given matrix. If the operation succeeds, the inverted matrix is stored in the result parameter.
+ /// </summary>
+ /// <param name="matrix">The source matrix.</param>
+ /// <param name="result">The output matrix.</param>
+ /// <returns>True if the operation succeeded, False otherwise.</returns>
+ public static bool Invert(Matrix3x2 matrix, out Matrix3x2 result)
+ {
+ float det = (matrix.M11 * matrix.M22) - (matrix.M21 * matrix.M12);
+
+ if (Math.Abs(det) < float.Epsilon)
+ {
+ result = new Matrix3x2(float.NaN, float.NaN, float.NaN, float.NaN, float.NaN, float.NaN);
+ return false;
+ }
+
+ float invDet = 1.0f / det;
+
+ result.M11 = matrix.M22 * invDet;
+ result.M12 = -matrix.M12 * invDet;
+ result.M21 = -matrix.M21 * invDet;
+ result.M22 = matrix.M11 * invDet;
+ result.M31 = (matrix.M21 * matrix.M32 - matrix.M31 * matrix.M22) * invDet;
+ result.M32 = (matrix.M31 * matrix.M12 - matrix.M11 * matrix.M32) * invDet;
+
+ return true;
+ }
+
+ /// <summary>
+ /// Linearly interpolates from matrix1 to matrix2, based on the third parameter.
+ /// </summary>
+ /// <param name="matrix1">The first source matrix.</param>
+ /// <param name="matrix2">The second source matrix.</param>
+ /// <param name="amount">The relative weighting of matrix2.</param>
+ /// <returns>The interpolated matrix.</returns>
+ public static Matrix3x2 Lerp(Matrix3x2 matrix1, Matrix3x2 matrix2, float amount)
+ {
+ Matrix3x2 result;
+
+ // First row
+ result.M11 = matrix1.M11 + (matrix2.M11 - matrix1.M11) * amount;
+ result.M12 = matrix1.M12 + (matrix2.M12 - matrix1.M12) * amount;
+
+ // Second row
+ result.M21 = matrix1.M21 + (matrix2.M21 - matrix1.M21) * amount;
+ result.M22 = matrix1.M22 + (matrix2.M22 - matrix1.M22) * amount;
+
+ // Third row
+ result.M31 = matrix1.M31 + (matrix2.M31 - matrix1.M31) * amount;
+ result.M32 = matrix1.M32 + (matrix2.M32 - matrix1.M32) * amount;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Negates the given matrix by multiplying all values by -1.
+ /// </summary>
+ /// <param name="value">The source matrix.</param>
+ /// <returns>The negated matrix.</returns>
+ public static Matrix3x2 Negate(Matrix3x2 value)
+ {
+ Matrix3x2 result;
+
+ result.M11 = -value.M11;
+ result.M12 = -value.M12;
+ result.M21 = -value.M21;
+ result.M22 = -value.M22;
+ result.M31 = -value.M31;
+ result.M32 = -value.M32;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Adds each matrix element in value1 with its corresponding element in value2.
+ /// </summary>
+ /// <param name="value1">The first source matrix.</param>
+ /// <param name="value2">The second source matrix.</param>
+ /// <returns>The matrix containing the summed values.</returns>
+ public static Matrix3x2 Add(Matrix3x2 value1, Matrix3x2 value2)
+ {
+ Matrix3x2 result;
+
+ result.M11 = value1.M11 + value2.M11;
+ result.M12 = value1.M12 + value2.M12;
+ result.M21 = value1.M21 + value2.M21;
+ result.M22 = value1.M22 + value2.M22;
+ result.M31 = value1.M31 + value2.M31;
+ result.M32 = value1.M32 + value2.M32;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Subtracts each matrix element in value2 from its corresponding element in value1.
+ /// </summary>
+ /// <param name="value1">The first source matrix.</param>
+ /// <param name="value2">The second source matrix.</param>
+ /// <returns>The matrix containing the resulting values.</returns>
+ public static Matrix3x2 Subtract(Matrix3x2 value1, Matrix3x2 value2)
+ {
+ Matrix3x2 result;
+
+ result.M11 = value1.M11 - value2.M11;
+ result.M12 = value1.M12 - value2.M12;
+ result.M21 = value1.M21 - value2.M21;
+ result.M22 = value1.M22 - value2.M22;
+ result.M31 = value1.M31 - value2.M31;
+ result.M32 = value1.M32 - value2.M32;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Multiplies two matrices together and returns the resulting matrix.
+ /// </summary>
+ /// <param name="value1">The first source matrix.</param>
+ /// <param name="value2">The second source matrix.</param>
+ /// <returns>The product matrix.</returns>
+ public static Matrix3x2 Multiply(Matrix3x2 value1, Matrix3x2 value2)
+ {
+ Matrix3x2 result;
+
+ // First row
+ result.M11 = value1.M11 * value2.M11 + value1.M12 * value2.M21;
+ result.M12 = value1.M11 * value2.M12 + value1.M12 * value2.M22;
+
+ // Second row
+ result.M21 = value1.M21 * value2.M11 + value1.M22 * value2.M21;
+ result.M22 = value1.M21 * value2.M12 + value1.M22 * value2.M22;
+
+ // Third row
+ result.M31 = value1.M31 * value2.M11 + value1.M32 * value2.M21 + value2.M31;
+ result.M32 = value1.M31 * value2.M12 + value1.M32 * value2.M22 + value2.M32;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Scales all elements in a matrix by the given scalar factor.
+ /// </summary>
+ /// <param name="value1">The source matrix.</param>
+ /// <param name="value2">The scaling value to use.</param>
+ /// <returns>The resulting matrix.</returns>
+ public static Matrix3x2 Multiply(Matrix3x2 value1, float value2)
+ {
+ Matrix3x2 result;
+
+ result.M11 = value1.M11 * value2;
+ result.M12 = value1.M12 * value2;
+ result.M21 = value1.M21 * value2;
+ result.M22 = value1.M22 * value2;
+ result.M31 = value1.M31 * value2;
+ result.M32 = value1.M32 * value2;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Negates the given matrix by multiplying all values by -1.
+ /// </summary>
+ /// <param name="value">The source matrix.</param>
+ /// <returns>The negated matrix.</returns>
+ public static Matrix3x2 operator -(Matrix3x2 value)
+ {
+ Matrix3x2 m;
+
+ m.M11 = -value.M11;
+ m.M12 = -value.M12;
+ m.M21 = -value.M21;
+ m.M22 = -value.M22;
+ m.M31 = -value.M31;
+ m.M32 = -value.M32;
+
+ return m;
+ }
+
+ /// <summary>
+ /// Adds each matrix element in value1 with its corresponding element in value2.
+ /// </summary>
+ /// <param name="value1">The first source matrix.</param>
+ /// <param name="value2">The second source matrix.</param>
+ /// <returns>The matrix containing the summed values.</returns>
+ public static Matrix3x2 operator +(Matrix3x2 value1, Matrix3x2 value2)
+ {
+ Matrix3x2 m;
+
+ m.M11 = value1.M11 + value2.M11;
+ m.M12 = value1.M12 + value2.M12;
+ m.M21 = value1.M21 + value2.M21;
+ m.M22 = value1.M22 + value2.M22;
+ m.M31 = value1.M31 + value2.M31;
+ m.M32 = value1.M32 + value2.M32;
+
+ return m;
+ }
+
+ /// <summary>
+ /// Subtracts each matrix element in value2 from its corresponding element in value1.
+ /// </summary>
+ /// <param name="value1">The first source matrix.</param>
+ /// <param name="value2">The second source matrix.</param>
+ /// <returns>The matrix containing the resulting values.</returns>
+ public static Matrix3x2 operator -(Matrix3x2 value1, Matrix3x2 value2)
+ {
+ Matrix3x2 m;
+
+ m.M11 = value1.M11 - value2.M11;
+ m.M12 = value1.M12 - value2.M12;
+ m.M21 = value1.M21 - value2.M21;
+ m.M22 = value1.M22 - value2.M22;
+ m.M31 = value1.M31 - value2.M31;
+ m.M32 = value1.M32 - value2.M32;
+
+ return m;
+ }
+
+ /// <summary>
+ /// Multiplies two matrices together and returns the resulting matrix.
+ /// </summary>
+ /// <param name="value1">The first source matrix.</param>
+ /// <param name="value2">The second source matrix.</param>
+ /// <returns>The product matrix.</returns>
+ public static Matrix3x2 operator *(Matrix3x2 value1, Matrix3x2 value2)
+ {
+ Matrix3x2 m;
+
+ // First row
+ m.M11 = value1.M11 * value2.M11 + value1.M12 * value2.M21;
+ m.M12 = value1.M11 * value2.M12 + value1.M12 * value2.M22;
+
+ // Second row
+ m.M21 = value1.M21 * value2.M11 + value1.M22 * value2.M21;
+ m.M22 = value1.M21 * value2.M12 + value1.M22 * value2.M22;
+
+ // Third row
+ m.M31 = value1.M31 * value2.M11 + value1.M32 * value2.M21 + value2.M31;
+ m.M32 = value1.M31 * value2.M12 + value1.M32 * value2.M22 + value2.M32;
+
+ return m;
+ }
+
+ /// <summary>
+ /// Scales all elements in a matrix by the given scalar factor.
+ /// </summary>
+ /// <param name="value1">The source matrix.</param>
+ /// <param name="value2">The scaling value to use.</param>
+ /// <returns>The resulting matrix.</returns>
+ public static Matrix3x2 operator *(Matrix3x2 value1, float value2)
+ {
+ Matrix3x2 m;
+
+ m.M11 = value1.M11 * value2;
+ m.M12 = value1.M12 * value2;
+ m.M21 = value1.M21 * value2;
+ m.M22 = value1.M22 * value2;
+ m.M31 = value1.M31 * value2;
+ m.M32 = value1.M32 * value2;
+
+ return m;
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the given matrices are equal.
+ /// </summary>
+ /// <param name="value1">The first source matrix.</param>
+ /// <param name="value2">The second source matrix.</param>
+ /// <returns>True if the matrices are equal; False otherwise.</returns>
+ public static bool operator ==(Matrix3x2 value1, Matrix3x2 value2)
+ {
+ return (value1.M11 == value2.M11 && value1.M22 == value2.M22 && // Check diagonal element first for early out.
+ value1.M12 == value2.M12 &&
+ value1.M21 == value2.M21 &&
+ value1.M31 == value2.M31 && value1.M32 == value2.M32);
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the given matrices are not equal.
+ /// </summary>
+ /// <param name="value1">The first source matrix.</param>
+ /// <param name="value2">The second source matrix.</param>
+ /// <returns>True if the matrices are not equal; False if they are equal.</returns>
+ public static bool operator !=(Matrix3x2 value1, Matrix3x2 value2)
+ {
+ return (value1.M11 != value2.M11 || value1.M12 != value2.M12 ||
+ value1.M21 != value2.M21 || value1.M22 != value2.M22 ||
+ value1.M31 != value2.M31 || value1.M32 != value2.M32);
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the matrix is equal to the other given matrix.
+ /// </summary>
+ /// <param name="other">The other matrix to test equality against.</param>
+ /// <returns>True if this matrix is equal to other; False otherwise.</returns>
+ public bool Equals(Matrix3x2 other)
+ {
+ return (M11 == other.M11 && M22 == other.M22 && // Check diagonal element first for early out.
+ M12 == other.M12 &&
+ M21 == other.M21 &&
+ M31 == other.M31 && M32 == other.M32);
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the given Object is equal to this matrix instance.
+ /// </summary>
+ /// <param name="obj">The Object to compare against.</param>
+ /// <returns>True if the Object is equal to this matrix; False otherwise.</returns>
+ public override bool Equals(object obj)
+ {
+ if (obj is Matrix3x2)
+ {
+ return Equals((Matrix3x2)obj);
+ }
+
+ return false;
+ }
+
+ /// <summary>
+ /// Returns a String representing this matrix instance.
+ /// </summary>
+ /// <returns>The string representation.</returns>
+ public override string ToString()
+ {
+ CultureInfo ci = CultureInfo.CurrentCulture;
+ return String.Format(ci, "{{ {{M11:{0} M12:{1}}} {{M21:{2} M22:{3}}} {{M31:{4} M32:{5}}} }}",
+ M11.ToString(ci), M12.ToString(ci),
+ M21.ToString(ci), M22.ToString(ci),
+ M31.ToString(ci), M32.ToString(ci));
+ }
+
+ /// <summary>
+ /// Returns the hash code for this instance.
+ /// </summary>
+ /// <returns>The hash code.</returns>
+ public override int GetHashCode()
+ {
+ return M11.GetHashCode() + M12.GetHashCode() +
+ M21.GetHashCode() + M22.GetHashCode() +
+ M31.GetHashCode() + M32.GetHashCode();
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Numerics/System/Numerics/Matrix4x4.cs b/mcs/class/referencesource/System.Numerics/System/Numerics/Matrix4x4.cs
new file mode 100644
index 00000000000..473b053b986
--- /dev/null
+++ b/mcs/class/referencesource/System.Numerics/System/Numerics/Matrix4x4.cs
@@ -0,0 +1,2212 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System.Globalization;
+
+namespace System.Numerics
+{
+ /// <summary>
+ /// A structure encapsulating a 4x4 matrix.
+ /// </summary>
+ public struct Matrix4x4 : IEquatable<Matrix4x4>
+ {
+ #region Public Fields
+ /// <summary>
+ /// Value at row 1, column 1 of the matrix.
+ /// </summary>
+ public float M11;
+ /// <summary>
+ /// Value at row 1, column 2 of the matrix.
+ /// </summary>
+ public float M12;
+ /// <summary>
+ /// Value at row 1, column 3 of the matrix.
+ /// </summary>
+ public float M13;
+ /// <summary>
+ /// Value at row 1, column 4 of the matrix.
+ /// </summary>
+ public float M14;
+
+ /// <summary>
+ /// Value at row 2, column 1 of the matrix.
+ /// </summary>
+ public float M21;
+ /// <summary>
+ /// Value at row 2, column 2 of the matrix.
+ /// </summary>
+ public float M22;
+ /// <summary>
+ /// Value at row 2, column 3 of the matrix.
+ /// </summary>
+ public float M23;
+ /// <summary>
+ /// Value at row 2, column 4 of the matrix.
+ /// </summary>
+ public float M24;
+
+ /// <summary>
+ /// Value at row 3, column 1 of the matrix.
+ /// </summary>
+ public float M31;
+ /// <summary>
+ /// Value at row 3, column 2 of the matrix.
+ /// </summary>
+ public float M32;
+ /// <summary>
+ /// Value at row 3, column 3 of the matrix.
+ /// </summary>
+ public float M33;
+ /// <summary>
+ /// Value at row 3, column 4 of the matrix.
+ /// </summary>
+ public float M34;
+
+ /// <summary>
+ /// Value at row 4, column 1 of the matrix.
+ /// </summary>
+ public float M41;
+ /// <summary>
+ /// Value at row 4, column 2 of the matrix.
+ /// </summary>
+ public float M42;
+ /// <summary>
+ /// Value at row 4, column 3 of the matrix.
+ /// </summary>
+ public float M43;
+ /// <summary>
+ /// Value at row 4, column 4 of the matrix.
+ /// </summary>
+ public float M44;
+ #endregion Public Fields
+
+ private static readonly Matrix4x4 _identity = new Matrix4x4
+ (
+ 1f, 0f, 0f, 0f,
+ 0f, 1f, 0f, 0f,
+ 0f, 0f, 1f, 0f,
+ 0f, 0f, 0f, 1f
+ );
+
+ /// <summary>
+ /// Returns the multiplicative identity matrix.
+ /// </summary>
+ public static Matrix4x4 Identity
+ {
+ get { return _identity; }
+ }
+
+ /// <summary>
+ /// Returns whether the matrix is the identity matrix.
+ /// </summary>
+ public bool IsIdentity
+ {
+ get
+ {
+ return M11 == 1f && M22 == 1f && M33 == 1f && M44 == 1f && // Check diagonal element first for early out.
+ M12 == 0f && M13 == 0f && M14 == 0f &&
+ M21 == 0f && M23 == 0f && M24 == 0f &&
+ M31 == 0f && M32 == 0f && M34 == 0f &&
+ M41 == 0f && M42 == 0f && M43 == 0f;
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets the translation component of this matrix.
+ /// </summary>
+ public Vector3 Translation
+ {
+ get
+ {
+ return new Vector3(M41, M42, M43);
+ }
+ set
+ {
+ M41 = value.X;
+ M42 = value.Y;
+ M43 = value.Z;
+ }
+ }
+
+ /// <summary>
+ /// Constructs a Matrix4x4 from the given components.
+ /// </summary>
+ public Matrix4x4(float m11, float m12, float m13, float m14,
+ float m21, float m22, float m23, float m24,
+ float m31, float m32, float m33, float m34,
+ float m41, float m42, float m43, float m44)
+ {
+ this.M11 = m11;
+ this.M12 = m12;
+ this.M13 = m13;
+ this.M14 = m14;
+
+ this.M21 = m21;
+ this.M22 = m22;
+ this.M23 = m23;
+ this.M24 = m24;
+
+ this.M31 = m31;
+ this.M32 = m32;
+ this.M33 = m33;
+ this.M34 = m34;
+
+ this.M41 = m41;
+ this.M42 = m42;
+ this.M43 = m43;
+ this.M44 = m44;
+ }
+
+ /// <summary>
+ /// Constructs a Matrix4x4 from the given Matrix3x2.
+ /// </summary>
+ /// <param name="value">The source Matrix3x2.</param>
+ public Matrix4x4(Matrix3x2 value)
+ {
+ M11 = value.M11;
+ M12 = value.M12;
+ M13 = 0f;
+ M14 = 0f;
+ M21 = value.M21;
+ M22 = value.M22;
+ M23 = 0f;
+ M24 = 0f;
+ M31 = 0f;
+ M32 = 0f;
+ M33 = 1f;
+ M34 = 0f;
+ M41 = value.M31;
+ M42 = value.M32;
+ M43 = 0f;
+ M44 = 1f;
+ }
+
+ /// <summary>
+ /// Creates a spherical billboard that rotates around a specified object position.
+ /// </summary>
+ /// <param name="objectPosition">Position of the object the billboard will rotate around.</param>
+ /// <param name="cameraPosition">Position of the camera.</param>
+ /// <param name="cameraUpVector">The up vector of the camera.</param>
+ /// <param name="cameraForwardVector">The forward vector of the camera.</param>
+ /// <returns>The created billboard matrix</returns>
+ public static Matrix4x4 CreateBillboard(Vector3 objectPosition, Vector3 cameraPosition, Vector3 cameraUpVector, Vector3 cameraForwardVector)
+ {
+ const float epsilon = 1e-4f;
+
+ Vector3 zaxis = new Vector3(
+ objectPosition.X - cameraPosition.X,
+ objectPosition.Y - cameraPosition.Y,
+ objectPosition.Z - cameraPosition.Z);
+
+ float norm = zaxis.LengthSquared();
+
+ if (norm < epsilon)
+ {
+ zaxis = -cameraForwardVector;
+ }
+ else
+ {
+ zaxis = Vector3.Multiply(zaxis, 1.0f / (float)Math.Sqrt(norm));
+ }
+
+ Vector3 xaxis = Vector3.Normalize(Vector3.Cross(cameraUpVector, zaxis));
+
+ Vector3 yaxis = Vector3.Cross(zaxis, xaxis);
+
+ Matrix4x4 result;
+
+ result.M11 = xaxis.X;
+ result.M12 = xaxis.Y;
+ result.M13 = xaxis.Z;
+ result.M14 = 0.0f;
+ result.M21 = yaxis.X;
+ result.M22 = yaxis.Y;
+ result.M23 = yaxis.Z;
+ result.M24 = 0.0f;
+ result.M31 = zaxis.X;
+ result.M32 = zaxis.Y;
+ result.M33 = zaxis.Z;
+ result.M34 = 0.0f;
+
+ result.M41 = objectPosition.X;
+ result.M42 = objectPosition.Y;
+ result.M43 = objectPosition.Z;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a cylindrical billboard that rotates around a specified axis.
+ /// </summary>
+ /// <param name="objectPosition">Position of the object the billboard will rotate around.</param>
+ /// <param name="cameraPosition">Position of the camera.</param>
+ /// <param name="rotateAxis">Axis to rotate the billboard around.</param>
+ /// <param name="cameraForwardVector">Forward vector of the camera.</param>
+ /// <param name="objectForwardVector">Forward vector of the object.</param>
+ /// <returns>The created billboard matrix.</returns>
+ public static Matrix4x4 CreateConstrainedBillboard(Vector3 objectPosition, Vector3 cameraPosition, Vector3 rotateAxis, Vector3 cameraForwardVector, Vector3 objectForwardVector)
+ {
+ const float epsilon = 1e-4f;
+ const float minAngle = 1.0f - (0.1f * ((float)Math.PI / 180.0f)); // 0.1 degrees
+
+ // Treat the case when object and camera positions are too close.
+ Vector3 faceDir = new Vector3(
+ objectPosition.X - cameraPosition.X,
+ objectPosition.Y - cameraPosition.Y,
+ objectPosition.Z - cameraPosition.Z);
+
+ float norm = faceDir.LengthSquared();
+
+ if (norm < epsilon)
+ {
+ faceDir = -cameraForwardVector;
+ }
+ else
+ {
+ faceDir = Vector3.Multiply(faceDir, (1.0f / (float)Math.Sqrt(norm)));
+ }
+
+ Vector3 yaxis = rotateAxis;
+ Vector3 xaxis;
+ Vector3 zaxis;
+
+ // Treat the case when angle between faceDir and rotateAxis is too close to 0.
+ float dot = Vector3.Dot(rotateAxis, faceDir);
+
+ if (Math.Abs(dot) > minAngle)
+ {
+ zaxis = objectForwardVector;
+
+ // Make sure passed values are useful for compute.
+ dot = Vector3.Dot(rotateAxis, zaxis);
+
+ if (Math.Abs(dot) > minAngle)
+ {
+ zaxis = (Math.Abs(rotateAxis.Z) > minAngle) ? new Vector3(1, 0, 0) : new Vector3(0, 0, -1);
+ }
+
+ xaxis = Vector3.Normalize(Vector3.Cross(rotateAxis, zaxis));
+ zaxis = Vector3.Normalize(Vector3.Cross(xaxis, rotateAxis));
+ }
+ else
+ {
+ xaxis = Vector3.Normalize(Vector3.Cross(rotateAxis, faceDir));
+ zaxis = Vector3.Normalize(Vector3.Cross(xaxis, yaxis));
+ }
+
+ Matrix4x4 result;
+
+ result.M11 = xaxis.X;
+ result.M12 = xaxis.Y;
+ result.M13 = xaxis.Z;
+ result.M14 = 0.0f;
+ result.M21 = yaxis.X;
+ result.M22 = yaxis.Y;
+ result.M23 = yaxis.Z;
+ result.M24 = 0.0f;
+ result.M31 = zaxis.X;
+ result.M32 = zaxis.Y;
+ result.M33 = zaxis.Z;
+ result.M34 = 0.0f;
+
+ result.M41 = objectPosition.X;
+ result.M42 = objectPosition.Y;
+ result.M43 = objectPosition.Z;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a translation matrix.
+ /// </summary>
+ /// <param name="position">The amount to translate in each axis.</param>
+ /// <returns>The translation matrix.</returns>
+ public static Matrix4x4 CreateTranslation(Vector3 position)
+ {
+ Matrix4x4 result;
+
+ result.M11 = 1.0f;
+ result.M12 = 0.0f;
+ result.M13 = 0.0f;
+ result.M14 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = 1.0f;
+ result.M23 = 0.0f;
+ result.M24 = 0.0f;
+ result.M31 = 0.0f;
+ result.M32 = 0.0f;
+ result.M33 = 1.0f;
+ result.M34 = 0.0f;
+
+ result.M41 = position.X;
+ result.M42 = position.Y;
+ result.M43 = position.Z;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a translation matrix.
+ /// </summary>
+ /// <param name="xPosition">The amount to translate on the X-axis.</param>
+ /// <param name="yPosition">The amount to translate on the Y-axis.</param>
+ /// <param name="zPosition">The amount to translate on the Z-axis.</param>
+ /// <returns>The translation matrix.</returns>
+ public static Matrix4x4 CreateTranslation(float xPosition, float yPosition, float zPosition)
+ {
+ Matrix4x4 result;
+
+ result.M11 = 1.0f;
+ result.M12 = 0.0f;
+ result.M13 = 0.0f;
+ result.M14 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = 1.0f;
+ result.M23 = 0.0f;
+ result.M24 = 0.0f;
+ result.M31 = 0.0f;
+ result.M32 = 0.0f;
+ result.M33 = 1.0f;
+ result.M34 = 0.0f;
+
+ result.M41 = xPosition;
+ result.M42 = yPosition;
+ result.M43 = zPosition;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a scaling matrix.
+ /// </summary>
+ /// <param name="xScale">Value to scale by on the X-axis.</param>
+ /// <param name="yScale">Value to scale by on the Y-axis.</param>
+ /// <param name="zScale">Value to scale by on the Z-axis.</param>
+ /// <returns>The scaling matrix.</returns>
+ public static Matrix4x4 CreateScale(float xScale, float yScale, float zScale)
+ {
+ Matrix4x4 result;
+
+ result.M11 = xScale;
+ result.M12 = 0.0f;
+ result.M13 = 0.0f;
+ result.M14 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = yScale;
+ result.M23 = 0.0f;
+ result.M24 = 0.0f;
+ result.M31 = 0.0f;
+ result.M32 = 0.0f;
+ result.M33 = zScale;
+ result.M34 = 0.0f;
+ result.M41 = 0.0f;
+ result.M42 = 0.0f;
+ result.M43 = 0.0f;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a scaling matrix with a center point.
+ /// </summary>
+ /// <param name="xScale">Value to scale by on the X-axis.</param>
+ /// <param name="yScale">Value to scale by on the Y-axis.</param>
+ /// <param name="zScale">Value to scale by on the Z-axis.</param>
+ /// <param name="centerPoint">The center point.</param>
+ /// <returns>The scaling matrix.</returns>
+ public static Matrix4x4 CreateScale(float xScale, float yScale, float zScale, Vector3 centerPoint)
+ {
+ Matrix4x4 result;
+
+ float tx = centerPoint.X * (1 - xScale);
+ float ty = centerPoint.Y * (1 - yScale);
+ float tz = centerPoint.Z * (1 - zScale);
+
+ result.M11 = xScale;
+ result.M12 = 0.0f;
+ result.M13 = 0.0f;
+ result.M14 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = yScale;
+ result.M23 = 0.0f;
+ result.M24 = 0.0f;
+ result.M31 = 0.0f;
+ result.M32 = 0.0f;
+ result.M33 = zScale;
+ result.M34 = 0.0f;
+ result.M41 = tx;
+ result.M42 = ty;
+ result.M43 = tz;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a scaling matrix.
+ /// </summary>
+ /// <param name="scales">The vector containing the amount to scale by on each axis.</param>
+ /// <returns>The scaling matrix.</returns>
+ public static Matrix4x4 CreateScale(Vector3 scales)
+ {
+ Matrix4x4 result;
+
+ result.M11 = scales.X;
+ result.M12 = 0.0f;
+ result.M13 = 0.0f;
+ result.M14 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = scales.Y;
+ result.M23 = 0.0f;
+ result.M24 = 0.0f;
+ result.M31 = 0.0f;
+ result.M32 = 0.0f;
+ result.M33 = scales.Z;
+ result.M34 = 0.0f;
+ result.M41 = 0.0f;
+ result.M42 = 0.0f;
+ result.M43 = 0.0f;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a scaling matrix with a center point.
+ /// </summary>
+ /// <param name="scales">The vector containing the amount to scale by on each axis.</param>
+ /// <param name="centerPoint">The center point.</param>
+ /// <returns>The scaling matrix.</returns>
+ public static Matrix4x4 CreateScale(Vector3 scales, Vector3 centerPoint)
+ {
+ Matrix4x4 result;
+
+ float tx = centerPoint.X * (1 - scales.X);
+ float ty = centerPoint.Y * (1 - scales.Y);
+ float tz = centerPoint.Z * (1 - scales.Z);
+
+ result.M11 = scales.X;
+ result.M12 = 0.0f;
+ result.M13 = 0.0f;
+ result.M14 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = scales.Y;
+ result.M23 = 0.0f;
+ result.M24 = 0.0f;
+ result.M31 = 0.0f;
+ result.M32 = 0.0f;
+ result.M33 = scales.Z;
+ result.M34 = 0.0f;
+ result.M41 = tx;
+ result.M42 = ty;
+ result.M43 = tz;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a uniform scaling matrix that scales equally on each axis.
+ /// </summary>
+ /// <param name="scale">The uniform scaling factor.</param>
+ /// <returns>The scaling matrix.</returns>
+ public static Matrix4x4 CreateScale(float scale)
+ {
+ Matrix4x4 result;
+
+ result.M11 = scale;
+ result.M12 = 0.0f;
+ result.M13 = 0.0f;
+ result.M14 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = scale;
+ result.M23 = 0.0f;
+ result.M24 = 0.0f;
+ result.M31 = 0.0f;
+ result.M32 = 0.0f;
+ result.M33 = scale;
+ result.M34 = 0.0f;
+ result.M41 = 0.0f;
+ result.M42 = 0.0f;
+ result.M43 = 0.0f;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a uniform scaling matrix that scales equally on each axis with a center point.
+ /// </summary>
+ /// <param name="scale">The uniform scaling factor.</param>
+ /// <param name="centerPoint">The center point.</param>
+ /// <returns>The scaling matrix.</returns>
+ public static Matrix4x4 CreateScale(float scale, Vector3 centerPoint)
+ {
+ Matrix4x4 result;
+
+ float tx = centerPoint.X * (1 - scale);
+ float ty = centerPoint.Y * (1 - scale);
+ float tz = centerPoint.Z * (1 - scale);
+
+ result.M11 = scale;
+ result.M12 = 0.0f;
+ result.M13 = 0.0f;
+ result.M14 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = scale;
+ result.M23 = 0.0f;
+ result.M24 = 0.0f;
+ result.M31 = 0.0f;
+ result.M32 = 0.0f;
+ result.M33 = scale;
+ result.M34 = 0.0f;
+ result.M41 = tx;
+ result.M42 = ty;
+ result.M43 = tz;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a matrix for rotating points around the X-axis.
+ /// </summary>
+ /// <param name="radians">The amount, in radians, by which to rotate around the X-axis.</param>
+ /// <returns>The rotation matrix.</returns>
+ public static Matrix4x4 CreateRotationX(float radians)
+ {
+ Matrix4x4 result;
+
+ float c = (float)Math.Cos(radians);
+ float s = (float)Math.Sin(radians);
+
+ // [ 1 0 0 0 ]
+ // [ 0 c s 0 ]
+ // [ 0 -s c 0 ]
+ // [ 0 0 0 1 ]
+ result.M11 = 1.0f;
+ result.M12 = 0.0f;
+ result.M13 = 0.0f;
+ result.M14 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = c;
+ result.M23 = s;
+ result.M24 = 0.0f;
+ result.M31 = 0.0f;
+ result.M32 = -s;
+ result.M33 = c;
+ result.M34 = 0.0f;
+ result.M41 = 0.0f;
+ result.M42 = 0.0f;
+ result.M43 = 0.0f;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a matrix for rotating points around the X-axis, from a center point.
+ /// </summary>
+ /// <param name="radians">The amount, in radians, by which to rotate around the X-axis.</param>
+ /// <param name="centerPoint">The center point.</param>
+ /// <returns>The rotation matrix.</returns>
+ public static Matrix4x4 CreateRotationX(float radians, Vector3 centerPoint)
+ {
+ Matrix4x4 result;
+
+ float c = (float)Math.Cos(radians);
+ float s = (float)Math.Sin(radians);
+
+ float y = centerPoint.Y * (1 - c) + centerPoint.Z * s;
+ float z = centerPoint.Z * (1 - c) - centerPoint.Y * s;
+
+ // [ 1 0 0 0 ]
+ // [ 0 c s 0 ]
+ // [ 0 -s c 0 ]
+ // [ 0 y z 1 ]
+ result.M11 = 1.0f;
+ result.M12 = 0.0f;
+ result.M13 = 0.0f;
+ result.M14 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = c;
+ result.M23 = s;
+ result.M24 = 0.0f;
+ result.M31 = 0.0f;
+ result.M32 = -s;
+ result.M33 = c;
+ result.M34 = 0.0f;
+ result.M41 = 0.0f;
+ result.M42 = y;
+ result.M43 = z;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a matrix for rotating points around the Y-axis.
+ /// </summary>
+ /// <param name="radians">The amount, in radians, by which to rotate around the Y-axis.</param>
+ /// <returns>The rotation matrix.</returns>
+ public static Matrix4x4 CreateRotationY(float radians)
+ {
+ Matrix4x4 result;
+
+ float c = (float)Math.Cos(radians);
+ float s = (float)Math.Sin(radians);
+
+ // [ c 0 -s 0 ]
+ // [ 0 1 0 0 ]
+ // [ s 0 c 0 ]
+ // [ 0 0 0 1 ]
+ result.M11 = c;
+ result.M12 = 0.0f;
+ result.M13 = -s;
+ result.M14 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = 1.0f;
+ result.M23 = 0.0f;
+ result.M24 = 0.0f;
+ result.M31 = s;
+ result.M32 = 0.0f;
+ result.M33 = c;
+ result.M34 = 0.0f;
+ result.M41 = 0.0f;
+ result.M42 = 0.0f;
+ result.M43 = 0.0f;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a matrix for rotating points around the Y-axis, from a center point.
+ /// </summary>
+ /// <param name="radians">The amount, in radians, by which to rotate around the Y-axis.</param>
+ /// <param name="centerPoint">The center point.</param>
+ /// <returns>The rotation matrix.</returns>
+ public static Matrix4x4 CreateRotationY(float radians, Vector3 centerPoint)
+ {
+ Matrix4x4 result;
+
+ float c = (float)Math.Cos(radians);
+ float s = (float)Math.Sin(radians);
+
+ float x = centerPoint.X * (1 - c) - centerPoint.Z * s;
+ float z = centerPoint.Z * (1 - c) + centerPoint.X * s;
+
+ // [ c 0 -s 0 ]
+ // [ 0 1 0 0 ]
+ // [ s 0 c 0 ]
+ // [ x 0 z 1 ]
+ result.M11 = c;
+ result.M12 = 0.0f;
+ result.M13 = -s;
+ result.M14 = 0.0f;
+ result.M21 = 0.0f;
+ result.M22 = 1.0f;
+ result.M23 = 0.0f;
+ result.M24 = 0.0f;
+ result.M31 = s;
+ result.M32 = 0.0f;
+ result.M33 = c;
+ result.M34 = 0.0f;
+ result.M41 = x;
+ result.M42 = 0.0f;
+ result.M43 = z;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a matrix for rotating points around the Z-axis.
+ /// </summary>
+ /// <param name="radians">The amount, in radians, by which to rotate around the Z-axis.</param>
+ /// <returns>The rotation matrix.</returns>
+ public static Matrix4x4 CreateRotationZ(float radians)
+ {
+ Matrix4x4 result;
+
+ float c = (float)Math.Cos(radians);
+ float s = (float)Math.Sin(radians);
+
+ // [ c s 0 0 ]
+ // [ -s c 0 0 ]
+ // [ 0 0 1 0 ]
+ // [ 0 0 0 1 ]
+ result.M11 = c;
+ result.M12 = s;
+ result.M13 = 0.0f;
+ result.M14 = 0.0f;
+ result.M21 = -s;
+ result.M22 = c;
+ result.M23 = 0.0f;
+ result.M24 = 0.0f;
+ result.M31 = 0.0f;
+ result.M32 = 0.0f;
+ result.M33 = 1.0f;
+ result.M34 = 0.0f;
+ result.M41 = 0.0f;
+ result.M42 = 0.0f;
+ result.M43 = 0.0f;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a matrix for rotating points around the Z-axis, from a center point.
+ /// </summary>
+ /// <param name="radians">The amount, in radians, by which to rotate around the Z-axis.</param>
+ /// <param name="centerPoint">The center point.</param>
+ /// <returns>The rotation matrix.</returns>
+ public static Matrix4x4 CreateRotationZ(float radians, Vector3 centerPoint)
+ {
+ Matrix4x4 result;
+
+ float c = (float)Math.Cos(radians);
+ float s = (float)Math.Sin(radians);
+
+ float x = centerPoint.X * (1 - c) + centerPoint.Y * s;
+ float y = centerPoint.Y * (1 - c) - centerPoint.X * s;
+
+ // [ c s 0 0 ]
+ // [ -s c 0 0 ]
+ // [ 0 0 1 0 ]
+ // [ x y 0 1 ]
+ result.M11 = c;
+ result.M12 = s;
+ result.M13 = 0.0f;
+ result.M14 = 0.0f;
+ result.M21 = -s;
+ result.M22 = c;
+ result.M23 = 0.0f;
+ result.M24 = 0.0f;
+ result.M31 = 0.0f;
+ result.M32 = 0.0f;
+ result.M33 = 1.0f;
+ result.M34 = 0.0f;
+ result.M41 = x;
+ result.M42 = y;
+ result.M43 = 0.0f;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a matrix that rotates around an arbitrary vector.
+ /// </summary>
+ /// <param name="axis">The axis to rotate around.</param>
+ /// <param name="angle">The angle to rotate around the given axis, in radians.</param>
+ /// <returns>The rotation matrix.</returns>
+ public static Matrix4x4 CreateFromAxisAngle(Vector3 axis, float angle)
+ {
+ // a: angle
+ // x, y, z: unit vector for axis.
+ //
+ // Rotation matrix M can compute by using below equation.
+ //
+ // T T
+ // M = uu + (cos a)( I-uu ) + (sin a)S
+ //
+ // Where:
+ //
+ // u = ( x, y, z )
+ //
+ // [ 0 -z y ]
+ // S = [ z 0 -x ]
+ // [ -y x 0 ]
+ //
+ // [ 1 0 0 ]
+ // I = [ 0 1 0 ]
+ // [ 0 0 1 ]
+ //
+ //
+ // [ xx+cosa*(1-xx) yx-cosa*yx-sina*z zx-cosa*xz+sina*y ]
+ // M = [ xy-cosa*yx+sina*z yy+cosa(1-yy) yz-cosa*yz-sina*x ]
+ // [ zx-cosa*zx-sina*y zy-cosa*zy+sina*x zz+cosa*(1-zz) ]
+ //
+ float x = axis.X, y = axis.Y, z = axis.Z;
+ float sa = (float)Math.Sin(angle), ca = (float)Math.Cos(angle);
+ float xx = x * x, yy = y * y, zz = z * z;
+ float xy = x * y, xz = x * z, yz = y * z;
+
+ Matrix4x4 result;
+
+ result.M11 = xx + ca * (1.0f - xx);
+ result.M12 = xy - ca * xy + sa * z;
+ result.M13 = xz - ca * xz - sa * y;
+ result.M14 = 0.0f;
+ result.M21 = xy - ca * xy - sa * z;
+ result.M22 = yy + ca * (1.0f - yy);
+ result.M23 = yz - ca * yz + sa * x;
+ result.M24 = 0.0f;
+ result.M31 = xz - ca * xz + sa * y;
+ result.M32 = yz - ca * yz - sa * x;
+ result.M33 = zz + ca * (1.0f - zz);
+ result.M34 = 0.0f;
+ result.M41 = 0.0f;
+ result.M42 = 0.0f;
+ result.M43 = 0.0f;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+ /// </summary>
+ /// <param name="fieldOfView">Field of view in the y direction, in radians.</param>
+ /// <param name="aspectRatio">Aspect ratio, defined as view space width divided by height.</param>
+ /// <param name="nearPlaneDistance">Distance to the near view plane.</param>
+ /// <param name="farPlaneDistance">Distance to the far view plane.</param>
+ /// <returns>The perspective projection matrix.</returns>
+ public static Matrix4x4 CreatePerspectiveFieldOfView(float fieldOfView, float aspectRatio, float nearPlaneDistance, float farPlaneDistance)
+ {
+ if (fieldOfView <= 0.0f || fieldOfView >= Math.PI)
+ throw new ArgumentOutOfRangeException("fieldOfView");
+
+ if (nearPlaneDistance <= 0.0f)
+ throw new ArgumentOutOfRangeException("nearPlaneDistance");
+
+ if (farPlaneDistance <= 0.0f)
+ throw new ArgumentOutOfRangeException("farPlaneDistance");
+
+ if (nearPlaneDistance >= farPlaneDistance)
+ throw new ArgumentOutOfRangeException("nearPlaneDistance");
+
+ float yScale = 1.0f / (float)Math.Tan(fieldOfView * 0.5f);
+ float xScale = yScale / aspectRatio;
+
+ Matrix4x4 result;
+
+ result.M11 = xScale;
+ result.M12 = result.M13 = result.M14 = 0.0f;
+
+ result.M22 = yScale;
+ result.M21 = result.M23 = result.M24 = 0.0f;
+
+ result.M31 = result.M32 = 0.0f;
+ result.M33 = farPlaneDistance / (nearPlaneDistance - farPlaneDistance);
+ result.M34 = -1.0f;
+
+ result.M41 = result.M42 = result.M44 = 0.0f;
+ result.M43 = nearPlaneDistance * farPlaneDistance / (nearPlaneDistance - farPlaneDistance);
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a perspective projection matrix from the given view volume dimensions.
+ /// </summary>
+ /// <param name="width">Width of the view volume at the near view plane.</param>
+ /// <param name="height">Height of the view volume at the near view plane.</param>
+ /// <param name="nearPlaneDistance">Distance to the near view plane.</param>
+ /// <param name="farPlaneDistance">Distance to the far view plane.</param>
+ /// <returns>The perspective projection matrix.</returns>
+ public static Matrix4x4 CreatePerspective(float width, float height, float nearPlaneDistance, float farPlaneDistance)
+ {
+ if (nearPlaneDistance <= 0.0f)
+ throw new ArgumentOutOfRangeException("nearPlaneDistance");
+
+ if (farPlaneDistance <= 0.0f)
+ throw new ArgumentOutOfRangeException("farPlaneDistance");
+
+ if (nearPlaneDistance >= farPlaneDistance)
+ throw new ArgumentOutOfRangeException("nearPlaneDistance");
+
+ Matrix4x4 result;
+
+ result.M11 = 2.0f * nearPlaneDistance / width;
+ result.M12 = result.M13 = result.M14 = 0.0f;
+
+ result.M22 = 2.0f * nearPlaneDistance / height;
+ result.M21 = result.M23 = result.M24 = 0.0f;
+
+ result.M33 = farPlaneDistance / (nearPlaneDistance - farPlaneDistance);
+ result.M31 = result.M32 = 0.0f;
+ result.M34 = -1.0f;
+
+ result.M41 = result.M42 = result.M44 = 0.0f;
+ result.M43 = nearPlaneDistance * farPlaneDistance / (nearPlaneDistance - farPlaneDistance);
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a customized, perspective projection matrix.
+ /// </summary>
+ /// <param name="left">Minimum x-value of the view volume at the near view plane.</param>
+ /// <param name="right">Maximum x-value of the view volume at the near view plane.</param>
+ /// <param name="bottom">Minimum y-value of the view volume at the near view plane.</param>
+ /// <param name="top">Maximum y-value of the view volume at the near view plane.</param>
+ /// <param name="nearPlaneDistance">Distance to the near view plane.</param>
+ /// <param name="farPlaneDistance">Distance to of the far view plane.</param>
+ /// <returns>The perspective projection matrix.</returns>
+ public static Matrix4x4 CreatePerspectiveOffCenter(float left, float right, float bottom, float top, float nearPlaneDistance, float farPlaneDistance)
+ {
+ if (nearPlaneDistance <= 0.0f)
+ throw new ArgumentOutOfRangeException("nearPlaneDistance");
+
+ if (farPlaneDistance <= 0.0f)
+ throw new ArgumentOutOfRangeException("farPlaneDistance");
+
+ if (nearPlaneDistance >= farPlaneDistance)
+ throw new ArgumentOutOfRangeException("nearPlaneDistance");
+
+ Matrix4x4 result;
+
+ result.M11 = 2.0f * nearPlaneDistance / (right - left);
+ result.M12 = result.M13 = result.M14 = 0.0f;
+
+ result.M22 = 2.0f * nearPlaneDistance / (top - bottom);
+ result.M21 = result.M23 = result.M24 = 0.0f;
+
+ result.M31 = (left + right) / (right - left);
+ result.M32 = (top + bottom) / (top - bottom);
+ result.M33 = farPlaneDistance / (nearPlaneDistance - farPlaneDistance);
+ result.M34 = -1.0f;
+
+ result.M43 = nearPlaneDistance * farPlaneDistance / (nearPlaneDistance - farPlaneDistance);
+ result.M41 = result.M42 = result.M44 = 0.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates an orthographic perspective matrix from the given view volume dimensions.
+ /// </summary>
+ /// <param name="width">Width of the view volume.</param>
+ /// <param name="height">Height of the view volume.</param>
+ /// <param name="zNearPlane">Minimum Z-value of the view volume.</param>
+ /// <param name="zFarPlane">Maximum Z-value of the view volume.</param>
+ /// <returns>The orthographic projection matrix.</returns>
+ public static Matrix4x4 CreateOrthographic(float width, float height, float zNearPlane, float zFarPlane)
+ {
+ Matrix4x4 result;
+
+ result.M11 = 2.0f / width;
+ result.M12 = result.M13 = result.M14 = 0.0f;
+
+ result.M22 = 2.0f / height;
+ result.M21 = result.M23 = result.M24 = 0.0f;
+
+ result.M33 = 1.0f / (zNearPlane - zFarPlane);
+ result.M31 = result.M32 = result.M34 = 0.0f;
+
+ result.M41 = result.M42 = 0.0f;
+ result.M43 = zNearPlane / (zNearPlane - zFarPlane);
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Builds a customized, orthographic projection matrix.
+ /// </summary>
+ /// <param name="left">Minimum X-value of the view volume.</param>
+ /// <param name="right">Maximum X-value of the view volume.</param>
+ /// <param name="bottom">Minimum Y-value of the view volume.</param>
+ /// <param name="top">Maximum Y-value of the view volume.</param>
+ /// <param name="zNearPlane">Minimum Z-value of the view volume.</param>
+ /// <param name="zFarPlane">Maximum Z-value of the view volume.</param>
+ /// <returns>The orthographic projection matrix.</returns>
+ public static Matrix4x4 CreateOrthographicOffCenter(float left, float right, float bottom, float top, float zNearPlane, float zFarPlane)
+ {
+ Matrix4x4 result;
+
+ result.M11 = 2.0f / (right - left);
+ result.M12 = result.M13 = result.M14 = 0.0f;
+
+ result.M22 = 2.0f / (top - bottom);
+ result.M21 = result.M23 = result.M24 = 0.0f;
+
+ result.M33 = 1.0f / (zNearPlane - zFarPlane);
+ result.M31 = result.M32 = result.M34 = 0.0f;
+
+ result.M41 = (left + right) / (left - right);
+ result.M42 = (top + bottom) / (bottom - top);
+ result.M43 = zNearPlane / (zNearPlane - zFarPlane);
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a view matrix.
+ /// </summary>
+ /// <param name="cameraPosition">The position of the camera.</param>
+ /// <param name="cameraTarget">The target towards which the camera is pointing.</param>
+ /// <param name="cameraUpVector">The direction that is "up" from the camera's point of view.</param>
+ /// <returns>The view matrix.</returns>
+ public static Matrix4x4 CreateLookAt(Vector3 cameraPosition, Vector3 cameraTarget, Vector3 cameraUpVector)
+ {
+ Vector3 zaxis = Vector3.Normalize(cameraPosition - cameraTarget);
+ Vector3 xaxis = Vector3.Normalize(Vector3.Cross(cameraUpVector, zaxis));
+ Vector3 yaxis = Vector3.Cross(zaxis, xaxis);
+
+ Matrix4x4 result;
+
+ result.M11 = xaxis.X;
+ result.M12 = yaxis.X;
+ result.M13 = zaxis.X;
+ result.M14 = 0.0f;
+ result.M21 = xaxis.Y;
+ result.M22 = yaxis.Y;
+ result.M23 = zaxis.Y;
+ result.M24 = 0.0f;
+ result.M31 = xaxis.Z;
+ result.M32 = yaxis.Z;
+ result.M33 = zaxis.Z;
+ result.M34 = 0.0f;
+ result.M41 = -Vector3.Dot(xaxis, cameraPosition);
+ result.M42 = -Vector3.Dot(yaxis, cameraPosition);
+ result.M43 = -Vector3.Dot(zaxis, cameraPosition);
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a world matrix with the specified parameters.
+ /// </summary>
+ /// <param name="position">The position of the object; used in translation operations.</param>
+ /// <param name="forward">Forward direction of the object.</param>
+ /// <param name="up">Upward direction of the object; usually [0, 1, 0].</param>
+ /// <returns>The world matrix.</returns>
+ public static Matrix4x4 CreateWorld(Vector3 position, Vector3 forward, Vector3 up)
+ {
+ Vector3 zaxis = Vector3.Normalize(-forward);
+ Vector3 xaxis = Vector3.Normalize(Vector3.Cross(up, zaxis));
+ Vector3 yaxis = Vector3.Cross(zaxis, xaxis);
+
+ Matrix4x4 result;
+
+ result.M11 = xaxis.X;
+ result.M12 = xaxis.Y;
+ result.M13 = xaxis.Z;
+ result.M14 = 0.0f;
+ result.M21 = yaxis.X;
+ result.M22 = yaxis.Y;
+ result.M23 = yaxis.Z;
+ result.M24 = 0.0f;
+ result.M31 = zaxis.X;
+ result.M32 = zaxis.Y;
+ result.M33 = zaxis.Z;
+ result.M34 = 0.0f;
+ result.M41 = position.X;
+ result.M42 = position.Y;
+ result.M43 = position.Z;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a rotation matrix from the given Quaternion rotation value.
+ /// </summary>
+ /// <param name="quaternion">The source Quaternion.</param>
+ /// <returns>The rotation matrix.</returns>
+ public static Matrix4x4 CreateFromQuaternion(Quaternion quaternion)
+ {
+ Matrix4x4 result;
+
+ float xx = quaternion.X * quaternion.X;
+ float yy = quaternion.Y * quaternion.Y;
+ float zz = quaternion.Z * quaternion.Z;
+
+ float xy = quaternion.X * quaternion.Y;
+ float wz = quaternion.Z * quaternion.W;
+ float xz = quaternion.Z * quaternion.X;
+ float wy = quaternion.Y * quaternion.W;
+ float yz = quaternion.Y * quaternion.Z;
+ float wx = quaternion.X * quaternion.W;
+
+ result.M11 = 1.0f - 2.0f * (yy + zz);
+ result.M12 = 2.0f * (xy + wz);
+ result.M13 = 2.0f * (xz - wy);
+ result.M14 = 0.0f;
+ result.M21 = 2.0f * (xy - wz);
+ result.M22 = 1.0f - 2.0f * (zz + xx);
+ result.M23 = 2.0f * (yz + wx);
+ result.M24 = 0.0f;
+ result.M31 = 2.0f * (xz + wy);
+ result.M32 = 2.0f * (yz - wx);
+ result.M33 = 1.0f - 2.0f * (yy + xx);
+ result.M34 = 0.0f;
+ result.M41 = 0.0f;
+ result.M42 = 0.0f;
+ result.M43 = 0.0f;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a rotation matrix from the specified yaw, pitch, and roll.
+ /// </summary>
+ /// <param name="yaw">Angle of rotation, in radians, around the Y-axis.</param>
+ /// <param name="pitch">Angle of rotation, in radians, around the X-axis.</param>
+ /// <param name="roll">Angle of rotation, in radians, around the Z-axis.</param>
+ /// <returns>The rotation matrix.</returns>
+ public static Matrix4x4 CreateFromYawPitchRoll(float yaw, float pitch, float roll)
+ {
+ Quaternion q = Quaternion.CreateFromYawPitchRoll(yaw, pitch, roll);
+
+ return Matrix4x4.CreateFromQuaternion(q);
+ }
+
+ /// <summary>
+ /// Creates a Matrix that flattens geometry into a specified Plane as if casting a shadow from a specified light source.
+ /// </summary>
+ /// <param name="lightDirection">The direction from which the light that will cast the shadow is coming.</param>
+ /// <param name="plane">The Plane onto which the new matrix should flatten geometry so as to cast a shadow.</param>
+ /// <returns>A new Matrix that can be used to flatten geometry onto the specified plane from the specified direction.</returns>
+ public static Matrix4x4 CreateShadow(Vector3 lightDirection, Plane plane)
+ {
+ Plane p = Plane.Normalize(plane);
+
+ float dot = p.Normal.X * lightDirection.X + p.Normal.Y * lightDirection.Y + p.Normal.Z * lightDirection.Z;
+ float a = -p.Normal.X;
+ float b = -p.Normal.Y;
+ float c = -p.Normal.Z;
+ float d = -p.D;
+
+ Matrix4x4 result;
+
+ result.M11 = a * lightDirection.X + dot;
+ result.M21 = b * lightDirection.X;
+ result.M31 = c * lightDirection.X;
+ result.M41 = d * lightDirection.X;
+
+ result.M12 = a * lightDirection.Y;
+ result.M22 = b * lightDirection.Y + dot;
+ result.M32 = c * lightDirection.Y;
+ result.M42 = d * lightDirection.Y;
+
+ result.M13 = a * lightDirection.Z;
+ result.M23 = b * lightDirection.Z;
+ result.M33 = c * lightDirection.Z + dot;
+ result.M43 = d * lightDirection.Z;
+
+ result.M14 = 0.0f;
+ result.M24 = 0.0f;
+ result.M34 = 0.0f;
+ result.M44 = dot;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a Matrix that reflects the coordinate system about a specified Plane.
+ /// </summary>
+ /// <param name="value">The Plane about which to create a reflection.</param>
+ /// <returns>A new matrix expressing the reflection.</returns>
+ public static Matrix4x4 CreateReflection(Plane value)
+ {
+ value = Plane.Normalize(value);
+
+ float a = value.Normal.X;
+ float b = value.Normal.Y;
+ float c = value.Normal.Z;
+
+ float fa = -2.0f * a;
+ float fb = -2.0f * b;
+ float fc = -2.0f * c;
+
+ Matrix4x4 result;
+
+ result.M11 = fa * a + 1.0f;
+ result.M12 = fb * a;
+ result.M13 = fc * a;
+ result.M14 = 0.0f;
+
+ result.M21 = fa * b;
+ result.M22 = fb * b + 1.0f;
+ result.M23 = fc * b;
+ result.M24 = 0.0f;
+
+ result.M31 = fa * c;
+ result.M32 = fb * c;
+ result.M33 = fc * c + 1.0f;
+ result.M34 = 0.0f;
+
+ result.M41 = fa * value.D;
+ result.M42 = fb * value.D;
+ result.M43 = fc * value.D;
+ result.M44 = 1.0f;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Calculates the determinant of the matrix.
+ /// </summary>
+ /// <returns>The determinant of the matrix.</returns>
+ public float GetDeterminant()
+ {
+ // | a b c d | | f g h | | e g h | | e f h | | e f g |
+ // | e f g h | = a | j k l | - b | i k l | + c | i j l | - d | i j k |
+ // | i j k l | | n o p | | m o p | | m n p | | m n o |
+ // | m n o p |
+ //
+ // | f g h |
+ // a | j k l | = a ( f ( kp - lo ) - g ( jp - ln ) + h ( jo - kn ) )
+ // | n o p |
+ //
+ // | e g h |
+ // b | i k l | = b ( e ( kp - lo ) - g ( ip - lm ) + h ( io - km ) )
+ // | m o p |
+ //
+ // | e f h |
+ // c | i j l | = c ( e ( jp - ln ) - f ( ip - lm ) + h ( in - jm ) )
+ // | m n p |
+ //
+ // | e f g |
+ // d | i j k | = d ( e ( jo - kn ) - f ( io - km ) + g ( in - jm ) )
+ // | m n o |
+ //
+ // Cost of operation
+ // 17 adds and 28 muls.
+ //
+ // add: 6 + 8 + 3 = 17
+ // mul: 12 + 16 = 28
+
+ float a = M11, b = M12, c = M13, d = M14;
+ float e = M21, f = M22, g = M23, h = M24;
+ float i = M31, j = M32, k = M33, l = M34;
+ float m = M41, n = M42, o = M43, p = M44;
+
+ float kp_lo = k * p - l * o;
+ float jp_ln = j * p - l * n;
+ float jo_kn = j * o - k * n;
+ float ip_lm = i * p - l * m;
+ float io_km = i * o - k * m;
+ float in_jm = i * n - j * m;
+
+ return a * (f * kp_lo - g * jp_ln + h * jo_kn) -
+ b * (e * kp_lo - g * ip_lm + h * io_km) +
+ c * (e * jp_ln - f * ip_lm + h * in_jm) -
+ d * (e * jo_kn - f * io_km + g * in_jm);
+ }
+
+ /// <summary>
+ /// Attempts to calculate the inverse of the given matrix. If successful, result will contain the inverted matrix.
+ /// </summary>
+ /// <param name="matrix">The source matrix to invert.</param>
+ /// <param name="result">If successful, contains the inverted matrix.</param>
+ /// <returns>True if the source matrix could be inverted; False otherwise.</returns>
+ public static bool Invert(Matrix4x4 matrix, out Matrix4x4 result)
+ {
+ // -1
+ // If you have matrix M, inverse Matrix M can compute
+ //
+ // -1 1
+ // M = --------- A
+ // det(M)
+ //
+ // A is adjugate (adjoint) of M, where,
+ //
+ // T
+ // A = C
+ //
+ // C is Cofactor matrix of M, where,
+ // i + j
+ // C = (-1) * det(M )
+ // ij ij
+ //
+ // [ a b c d ]
+ // M = [ e f g h ]
+ // [ i j k l ]
+ // [ m n o p ]
+ //
+ // First Row
+ // 2 | f g h |
+ // C = (-1) | j k l | = + ( f ( kp - lo ) - g ( jp - ln ) + h ( jo - kn ) )
+ // 11 | n o p |
+ //
+ // 3 | e g h |
+ // C = (-1) | i k l | = - ( e ( kp - lo ) - g ( ip - lm ) + h ( io - km ) )
+ // 12 | m o p |
+ //
+ // 4 | e f h |
+ // C = (-1) | i j l | = + ( e ( jp - ln ) - f ( ip - lm ) + h ( in - jm ) )
+ // 13 | m n p |
+ //
+ // 5 | e f g |
+ // C = (-1) | i j k | = - ( e ( jo - kn ) - f ( io - km ) + g ( in - jm ) )
+ // 14 | m n o |
+ //
+ // Second Row
+ // 3 | b c d |
+ // C = (-1) | j k l | = - ( b ( kp - lo ) - c ( jp - ln ) + d ( jo - kn ) )
+ // 21 | n o p |
+ //
+ // 4 | a c d |
+ // C = (-1) | i k l | = + ( a ( kp - lo ) - c ( ip - lm ) + d ( io - km ) )
+ // 22 | m o p |
+ //
+ // 5 | a b d |
+ // C = (-1) | i j l | = - ( a ( jp - ln ) - b ( ip - lm ) + d ( in - jm ) )
+ // 23 | m n p |
+ //
+ // 6 | a b c |
+ // C = (-1) | i j k | = + ( a ( jo - kn ) - b ( io - km ) + c ( in - jm ) )
+ // 24 | m n o |
+ //
+ // Third Row
+ // 4 | b c d |
+ // C = (-1) | f g h | = + ( b ( gp - ho ) - c ( fp - hn ) + d ( fo - gn ) )
+ // 31 | n o p |
+ //
+ // 5 | a c d |
+ // C = (-1) | e g h | = - ( a ( gp - ho ) - c ( ep - hm ) + d ( eo - gm ) )
+ // 32 | m o p |
+ //
+ // 6 | a b d |
+ // C = (-1) | e f h | = + ( a ( fp - hn ) - b ( ep - hm ) + d ( en - fm ) )
+ // 33 | m n p |
+ //
+ // 7 | a b c |
+ // C = (-1) | e f g | = - ( a ( fo - gn ) - b ( eo - gm ) + c ( en - fm ) )
+ // 34 | m n o |
+ //
+ // Fourth Row
+ // 5 | b c d |
+ // C = (-1) | f g h | = - ( b ( gl - hk ) - c ( fl - hj ) + d ( fk - gj ) )
+ // 41 | j k l |
+ //
+ // 6 | a c d |
+ // C = (-1) | e g h | = + ( a ( gl - hk ) - c ( el - hi ) + d ( ek - gi ) )
+ // 42 | i k l |
+ //
+ // 7 | a b d |
+ // C = (-1) | e f h | = - ( a ( fl - hj ) - b ( el - hi ) + d ( ej - fi ) )
+ // 43 | i j l |
+ //
+ // 8 | a b c |
+ // C = (-1) | e f g | = + ( a ( fk - gj ) - b ( ek - gi ) + c ( ej - fi ) )
+ // 44 | i j k |
+ //
+ // Cost of operation
+ // 53 adds, 104 muls, and 1 div.
+ float a = matrix.M11, b = matrix.M12, c = matrix.M13, d = matrix.M14;
+ float e = matrix.M21, f = matrix.M22, g = matrix.M23, h = matrix.M24;
+ float i = matrix.M31, j = matrix.M32, k = matrix.M33, l = matrix.M34;
+ float m = matrix.M41, n = matrix.M42, o = matrix.M43, p = matrix.M44;
+
+ float kp_lo = k * p - l * o;
+ float jp_ln = j * p - l * n;
+ float jo_kn = j * o - k * n;
+ float ip_lm = i * p - l * m;
+ float io_km = i * o - k * m;
+ float in_jm = i * n - j * m;
+
+ float a11 = +(f * kp_lo - g * jp_ln + h * jo_kn);
+ float a12 = -(e * kp_lo - g * ip_lm + h * io_km);
+ float a13 = +(e * jp_ln - f * ip_lm + h * in_jm);
+ float a14 = -(e * jo_kn - f * io_km + g * in_jm);
+
+ float det = a * a11 + b * a12 + c * a13 + d * a14;
+
+ if (Math.Abs(det) < float.Epsilon)
+ {
+ result = new Matrix4x4(float.NaN, float.NaN, float.NaN, float.NaN,
+ float.NaN, float.NaN, float.NaN, float.NaN,
+ float.NaN, float.NaN, float.NaN, float.NaN,
+ float.NaN, float.NaN, float.NaN, float.NaN);
+ return false;
+ }
+
+ float invDet = 1.0f / det;
+
+ result.M11 = a11 * invDet;
+ result.M21 = a12 * invDet;
+ result.M31 = a13 * invDet;
+ result.M41 = a14 * invDet;
+
+ result.M12 = -(b * kp_lo - c * jp_ln + d * jo_kn) * invDet;
+ result.M22 = +(a * kp_lo - c * ip_lm + d * io_km) * invDet;
+ result.M32 = -(a * jp_ln - b * ip_lm + d * in_jm) * invDet;
+ result.M42 = +(a * jo_kn - b * io_km + c * in_jm) * invDet;
+
+ float gp_ho = g * p - h * o;
+ float fp_hn = f * p - h * n;
+ float fo_gn = f * o - g * n;
+ float ep_hm = e * p - h * m;
+ float eo_gm = e * o - g * m;
+ float en_fm = e * n - f * m;
+
+ result.M13 = +(b * gp_ho - c * fp_hn + d * fo_gn) * invDet;
+ result.M23 = -(a * gp_ho - c * ep_hm + d * eo_gm) * invDet;
+ result.M33 = +(a * fp_hn - b * ep_hm + d * en_fm) * invDet;
+ result.M43 = -(a * fo_gn - b * eo_gm + c * en_fm) * invDet;
+
+ float gl_hk = g * l - h * k;
+ float fl_hj = f * l - h * j;
+ float fk_gj = f * k - g * j;
+ float el_hi = e * l - h * i;
+ float ek_gi = e * k - g * i;
+ float ej_fi = e * j - f * i;
+
+ result.M14 = -(b * gl_hk - c * fl_hj + d * fk_gj) * invDet;
+ result.M24 = +(a * gl_hk - c * el_hi + d * ek_gi) * invDet;
+ result.M34 = -(a * fl_hj - b * el_hi + d * ej_fi) * invDet;
+ result.M44 = +(a * fk_gj - b * ek_gi + c * ej_fi) * invDet;
+
+ return true;
+ }
+
+ struct CanonicalBasis
+ {
+ public Vector3 Row0;
+ public Vector3 Row1;
+ public Vector3 Row2;
+ };
+
+ [System.Security.SecuritySafeCritical]
+ struct VectorBasis
+ {
+ public unsafe Vector3* Element0;
+ public unsafe Vector3* Element1;
+ public unsafe Vector3* Element2;
+ }
+
+ /// <summary>
+ /// Attempts to extract the scale, translation, and rotation components from the given scale/rotation/translation matrix.
+ /// If successful, the out parameters will contained the extracted values.
+ /// </summary>
+ /// <param name="matrix">The source matrix.</param>
+ /// <param name="scale">The scaling component of the transformation matrix.</param>
+ /// <param name="rotation">The rotation component of the transformation matrix.</param>
+ /// <param name="translation">The translation component of the transformation matrix</param>
+ /// <returns>True if the source matrix was successfully decomposed; False otherwise.</returns>
+ [System.Security.SecuritySafeCritical]
+ public static bool Decompose(Matrix4x4 matrix, out Vector3 scale, out Quaternion rotation, out Vector3 translation)
+ {
+ bool result = true;
+
+ unsafe
+ {
+ fixed (Vector3* scaleBase = &scale)
+ {
+ float* pfScales = (float*)scaleBase;
+ const float EPSILON = 0.0001f;
+ float det;
+
+ VectorBasis vectorBasis;
+ Vector3** pVectorBasis = (Vector3**)&vectorBasis;
+
+ Matrix4x4 matTemp = Matrix4x4.Identity;
+ CanonicalBasis canonicalBasis = new CanonicalBasis();
+ Vector3* pCanonicalBasis = &canonicalBasis.Row0;
+
+ canonicalBasis.Row0 = new Vector3(1.0f, 0.0f, 0.0f);
+ canonicalBasis.Row1 = new Vector3(0.0f, 1.0f, 0.0f);
+ canonicalBasis.Row2 = new Vector3(0.0f, 0.0f, 1.0f);
+
+ translation = new Vector3(
+ matrix.M41,
+ matrix.M42,
+ matrix.M43);
+
+ pVectorBasis[0] = (Vector3*)&matTemp.M11;
+ pVectorBasis[1] = (Vector3*)&matTemp.M21;
+ pVectorBasis[2] = (Vector3*)&matTemp.M31;
+
+ *(pVectorBasis[0]) = new Vector3(matrix.M11, matrix.M12, matrix.M13);
+ *(pVectorBasis[1]) = new Vector3(matrix.M21, matrix.M22, matrix.M23);
+ *(pVectorBasis[2]) = new Vector3(matrix.M31, matrix.M32, matrix.M33);
+
+ scale.X = pVectorBasis[0]->Length();
+ scale.Y = pVectorBasis[1]->Length();
+ scale.Z = pVectorBasis[2]->Length();
+
+ uint a, b, c;
+ #region Ranking
+ float x = pfScales[0], y = pfScales[1], z = pfScales[2];
+ if (x < y)
+ {
+ if (y < z)
+ {
+ a = 2;
+ b = 1;
+ c = 0;
+ }
+ else
+ {
+ a = 1;
+
+ if (x < z)
+ {
+ b = 2;
+ c = 0;
+ }
+ else
+ {
+ b = 0;
+ c = 2;
+ }
+ }
+ }
+ else
+ {
+ if (x < z)
+ {
+ a = 2;
+ b = 0;
+ c = 1;
+ }
+ else
+ {
+ a = 0;
+
+ if (y < z)
+ {
+ b = 2;
+ c = 1;
+ }
+ else
+ {
+ b = 1;
+ c = 2;
+ }
+ }
+ }
+ #endregion
+
+ if (pfScales[a] < EPSILON)
+ {
+ *(pVectorBasis[a]) = pCanonicalBasis[a];
+ }
+
+ *pVectorBasis[a] = Vector3.Normalize(*pVectorBasis[a]);
+
+ if (pfScales[b] < EPSILON)
+ {
+ uint cc;
+ float fAbsX, fAbsY, fAbsZ;
+
+ fAbsX = (float)Math.Abs(pVectorBasis[a]->X);
+ fAbsY = (float)Math.Abs(pVectorBasis[a]->Y);
+ fAbsZ = (float)Math.Abs(pVectorBasis[a]->Z);
+
+ #region Ranking
+ if (fAbsX < fAbsY)
+ {
+ if (fAbsY < fAbsZ)
+ {
+ cc = 0;
+ }
+ else
+ {
+ if (fAbsX < fAbsZ)
+ {
+ cc = 0;
+ }
+ else
+ {
+ cc = 2;
+ }
+ }
+ }
+ else
+ {
+ if (fAbsX < fAbsZ)
+ {
+ cc = 1;
+ }
+ else
+ {
+ if (fAbsY < fAbsZ)
+ {
+ cc = 1;
+ }
+ else
+ {
+ cc = 2;
+ }
+ }
+ }
+ #endregion
+
+ *pVectorBasis[b] = Vector3.Cross(*pVectorBasis[a], *(pCanonicalBasis + cc));
+ }
+
+ *pVectorBasis[b] = Vector3.Normalize(*pVectorBasis[b]);
+
+ if (pfScales[c] < EPSILON)
+ {
+ *pVectorBasis[c] = Vector3.Cross(*pVectorBasis[a], *pVectorBasis[b]);
+ }
+
+ *pVectorBasis[c] = Vector3.Normalize(*pVectorBasis[c]);
+
+ det = matTemp.GetDeterminant();
+
+ // use Kramer's rule to check for handedness of coordinate system
+ if (det < 0.0f)
+ {
+ // switch coordinate system by negating the scale and inverting the basis vector on the x-axis
+ pfScales[a] = -pfScales[a];
+ *pVectorBasis[a] = -(*pVectorBasis[a]);
+
+ det = -det;
+ }
+
+ det -= 1.0f;
+ det *= det;
+
+ if ((EPSILON < det))
+ {
+ // Non-SRT matrix encountered
+ rotation = Quaternion.Identity;
+ result = false;
+ }
+ else
+ {
+ // generate the quaternion from the matrix
+ rotation = Quaternion.CreateFromRotationMatrix(matTemp);
+ }
+ }
+ }
+
+ return result;
+ }
+
+ /// <summary>
+ /// Transforms the given matrix by applying the given Quaternion rotation.
+ /// </summary>
+ /// <param name="value">The source matrix to transform.</param>
+ /// <param name="rotation">The rotation to apply.</param>
+ /// <returns>The transformed matrix.</returns>
+ public static Matrix4x4 Transform(Matrix4x4 value, Quaternion rotation)
+ {
+ // Compute rotation matrix.
+ float x2 = rotation.X + rotation.X;
+ float y2 = rotation.Y + rotation.Y;
+ float z2 = rotation.Z + rotation.Z;
+
+ float wx2 = rotation.W * x2;
+ float wy2 = rotation.W * y2;
+ float wz2 = rotation.W * z2;
+ float xx2 = rotation.X * x2;
+ float xy2 = rotation.X * y2;
+ float xz2 = rotation.X * z2;
+ float yy2 = rotation.Y * y2;
+ float yz2 = rotation.Y * z2;
+ float zz2 = rotation.Z * z2;
+
+ float q11 = 1.0f - yy2 - zz2;
+ float q21 = xy2 - wz2;
+ float q31 = xz2 + wy2;
+
+ float q12 = xy2 + wz2;
+ float q22 = 1.0f - xx2 - zz2;
+ float q32 = yz2 - wx2;
+
+ float q13 = xz2 - wy2;
+ float q23 = yz2 + wx2;
+ float q33 = 1.0f - xx2 - yy2;
+
+ Matrix4x4 result;
+
+ // First row
+ result.M11 = value.M11 * q11 + value.M12 * q21 + value.M13 * q31;
+ result.M12 = value.M11 * q12 + value.M12 * q22 + value.M13 * q32;
+ result.M13 = value.M11 * q13 + value.M12 * q23 + value.M13 * q33;
+ result.M14 = value.M14;
+
+ // Second row
+ result.M21 = value.M21 * q11 + value.M22 * q21 + value.M23 * q31;
+ result.M22 = value.M21 * q12 + value.M22 * q22 + value.M23 * q32;
+ result.M23 = value.M21 * q13 + value.M22 * q23 + value.M23 * q33;
+ result.M24 = value.M24;
+
+ // Third row
+ result.M31 = value.M31 * q11 + value.M32 * q21 + value.M33 * q31;
+ result.M32 = value.M31 * q12 + value.M32 * q22 + value.M33 * q32;
+ result.M33 = value.M31 * q13 + value.M32 * q23 + value.M33 * q33;
+ result.M34 = value.M34;
+
+ // Fourth row
+ result.M41 = value.M41 * q11 + value.M42 * q21 + value.M43 * q31;
+ result.M42 = value.M41 * q12 + value.M42 * q22 + value.M43 * q32;
+ result.M43 = value.M41 * q13 + value.M42 * q23 + value.M43 * q33;
+ result.M44 = value.M44;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Transposes the rows and columns of a matrix.
+ /// </summary>
+ /// <param name="matrix">The source matrix.</param>
+ /// <returns>The transposed matrix.</returns>
+ public static Matrix4x4 Transpose(Matrix4x4 matrix)
+ {
+ Matrix4x4 result;
+
+ result.M11 = matrix.M11;
+ result.M12 = matrix.M21;
+ result.M13 = matrix.M31;
+ result.M14 = matrix.M41;
+ result.M21 = matrix.M12;
+ result.M22 = matrix.M22;
+ result.M23 = matrix.M32;
+ result.M24 = matrix.M42;
+ result.M31 = matrix.M13;
+ result.M32 = matrix.M23;
+ result.M33 = matrix.M33;
+ result.M34 = matrix.M43;
+ result.M41 = matrix.M14;
+ result.M42 = matrix.M24;
+ result.M43 = matrix.M34;
+ result.M44 = matrix.M44;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Linearly interpolates between the corresponding values of two matrices.
+ /// </summary>
+ /// <param name="matrix1">The first source matrix.</param>
+ /// <param name="matrix2">The second source matrix.</param>
+ /// <param name="amount">The relative weight of the second source matrix.</param>
+ /// <returns>The interpolated matrix.</returns>
+ public static Matrix4x4 Lerp(Matrix4x4 matrix1, Matrix4x4 matrix2, float amount)
+ {
+ Matrix4x4 result;
+
+ // First row
+ result.M11 = matrix1.M11 + (matrix2.M11 - matrix1.M11) * amount;
+ result.M12 = matrix1.M12 + (matrix2.M12 - matrix1.M12) * amount;
+ result.M13 = matrix1.M13 + (matrix2.M13 - matrix1.M13) * amount;
+ result.M14 = matrix1.M14 + (matrix2.M14 - matrix1.M14) * amount;
+
+ // Second row
+ result.M21 = matrix1.M21 + (matrix2.M21 - matrix1.M21) * amount;
+ result.M22 = matrix1.M22 + (matrix2.M22 - matrix1.M22) * amount;
+ result.M23 = matrix1.M23 + (matrix2.M23 - matrix1.M23) * amount;
+ result.M24 = matrix1.M24 + (matrix2.M24 - matrix1.M24) * amount;
+
+ // Third row
+ result.M31 = matrix1.M31 + (matrix2.M31 - matrix1.M31) * amount;
+ result.M32 = matrix1.M32 + (matrix2.M32 - matrix1.M32) * amount;
+ result.M33 = matrix1.M33 + (matrix2.M33 - matrix1.M33) * amount;
+ result.M34 = matrix1.M34 + (matrix2.M34 - matrix1.M34) * amount;
+
+ // Fourth row
+ result.M41 = matrix1.M41 + (matrix2.M41 - matrix1.M41) * amount;
+ result.M42 = matrix1.M42 + (matrix2.M42 - matrix1.M42) * amount;
+ result.M43 = matrix1.M43 + (matrix2.M43 - matrix1.M43) * amount;
+ result.M44 = matrix1.M44 + (matrix2.M44 - matrix1.M44) * amount;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Returns a new matrix with the negated elements of the given matrix.
+ /// </summary>
+ /// <param name="value">The source matrix.</param>
+ /// <returns>The negated matrix.</returns>
+ public static Matrix4x4 Negate(Matrix4x4 value)
+ {
+ Matrix4x4 result;
+
+ result.M11 = -value.M11;
+ result.M12 = -value.M12;
+ result.M13 = -value.M13;
+ result.M14 = -value.M14;
+ result.M21 = -value.M21;
+ result.M22 = -value.M22;
+ result.M23 = -value.M23;
+ result.M24 = -value.M24;
+ result.M31 = -value.M31;
+ result.M32 = -value.M32;
+ result.M33 = -value.M33;
+ result.M34 = -value.M34;
+ result.M41 = -value.M41;
+ result.M42 = -value.M42;
+ result.M43 = -value.M43;
+ result.M44 = -value.M44;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Adds two matrices together.
+ /// </summary>
+ /// <param name="value1">The first source matrix.</param>
+ /// <param name="value2">The second source matrix.</param>
+ /// <returns>The resulting matrix.</returns>
+ public static Matrix4x4 Add(Matrix4x4 value1, Matrix4x4 value2)
+ {
+ Matrix4x4 result;
+
+ result.M11 = value1.M11 + value2.M11;
+ result.M12 = value1.M12 + value2.M12;
+ result.M13 = value1.M13 + value2.M13;
+ result.M14 = value1.M14 + value2.M14;
+ result.M21 = value1.M21 + value2.M21;
+ result.M22 = value1.M22 + value2.M22;
+ result.M23 = value1.M23 + value2.M23;
+ result.M24 = value1.M24 + value2.M24;
+ result.M31 = value1.M31 + value2.M31;
+ result.M32 = value1.M32 + value2.M32;
+ result.M33 = value1.M33 + value2.M33;
+ result.M34 = value1.M34 + value2.M34;
+ result.M41 = value1.M41 + value2.M41;
+ result.M42 = value1.M42 + value2.M42;
+ result.M43 = value1.M43 + value2.M43;
+ result.M44 = value1.M44 + value2.M44;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Subtracts the second matrix from the first.
+ /// </summary>
+ /// <param name="value1">The first source matrix.</param>
+ /// <param name="value2">The second source matrix.</param>
+ /// <returns>The result of the subtraction.</returns>
+ public static Matrix4x4 Subtract(Matrix4x4 value1, Matrix4x4 value2)
+ {
+ Matrix4x4 result;
+
+ result.M11 = value1.M11 - value2.M11;
+ result.M12 = value1.M12 - value2.M12;
+ result.M13 = value1.M13 - value2.M13;
+ result.M14 = value1.M14 - value2.M14;
+ result.M21 = value1.M21 - value2.M21;
+ result.M22 = value1.M22 - value2.M22;
+ result.M23 = value1.M23 - value2.M23;
+ result.M24 = value1.M24 - value2.M24;
+ result.M31 = value1.M31 - value2.M31;
+ result.M32 = value1.M32 - value2.M32;
+ result.M33 = value1.M33 - value2.M33;
+ result.M34 = value1.M34 - value2.M34;
+ result.M41 = value1.M41 - value2.M41;
+ result.M42 = value1.M42 - value2.M42;
+ result.M43 = value1.M43 - value2.M43;
+ result.M44 = value1.M44 - value2.M44;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Multiplies a matrix by another matrix.
+ /// </summary>
+ /// <param name="value1">The first source matrix.</param>
+ /// <param name="value2">The second source matrix.</param>
+ /// <returns>The result of the multiplication.</returns>
+ public static Matrix4x4 Multiply(Matrix4x4 value1, Matrix4x4 value2)
+ {
+ Matrix4x4 result;
+
+ // First row
+ result.M11 = value1.M11 * value2.M11 + value1.M12 * value2.M21 + value1.M13 * value2.M31 + value1.M14 * value2.M41;
+ result.M12 = value1.M11 * value2.M12 + value1.M12 * value2.M22 + value1.M13 * value2.M32 + value1.M14 * value2.M42;
+ result.M13 = value1.M11 * value2.M13 + value1.M12 * value2.M23 + value1.M13 * value2.M33 + value1.M14 * value2.M43;
+ result.M14 = value1.M11 * value2.M14 + value1.M12 * value2.M24 + value1.M13 * value2.M34 + value1.M14 * value2.M44;
+
+ // Second row
+ result.M21 = value1.M21 * value2.M11 + value1.M22 * value2.M21 + value1.M23 * value2.M31 + value1.M24 * value2.M41;
+ result.M22 = value1.M21 * value2.M12 + value1.M22 * value2.M22 + value1.M23 * value2.M32 + value1.M24 * value2.M42;
+ result.M23 = value1.M21 * value2.M13 + value1.M22 * value2.M23 + value1.M23 * value2.M33 + value1.M24 * value2.M43;
+ result.M24 = value1.M21 * value2.M14 + value1.M22 * value2.M24 + value1.M23 * value2.M34 + value1.M24 * value2.M44;
+
+ // Third row
+ result.M31 = value1.M31 * value2.M11 + value1.M32 * value2.M21 + value1.M33 * value2.M31 + value1.M34 * value2.M41;
+ result.M32 = value1.M31 * value2.M12 + value1.M32 * value2.M22 + value1.M33 * value2.M32 + value1.M34 * value2.M42;
+ result.M33 = value1.M31 * value2.M13 + value1.M32 * value2.M23 + value1.M33 * value2.M33 + value1.M34 * value2.M43;
+ result.M34 = value1.M31 * value2.M14 + value1.M32 * value2.M24 + value1.M33 * value2.M34 + value1.M34 * value2.M44;
+
+ // Fourth row
+ result.M41 = value1.M41 * value2.M11 + value1.M42 * value2.M21 + value1.M43 * value2.M31 + value1.M44 * value2.M41;
+ result.M42 = value1.M41 * value2.M12 + value1.M42 * value2.M22 + value1.M43 * value2.M32 + value1.M44 * value2.M42;
+ result.M43 = value1.M41 * value2.M13 + value1.M42 * value2.M23 + value1.M43 * value2.M33 + value1.M44 * value2.M43;
+ result.M44 = value1.M41 * value2.M14 + value1.M42 * value2.M24 + value1.M43 * value2.M34 + value1.M44 * value2.M44;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Multiplies a matrix by a scalar value.
+ /// </summary>
+ /// <param name="value1">The source matrix.</param>
+ /// <param name="value2">The scaling factor.</param>
+ /// <returns>The scaled matrix.</returns>
+ public static Matrix4x4 Multiply(Matrix4x4 value1, float value2)
+ {
+ Matrix4x4 result;
+
+ result.M11 = value1.M11 * value2;
+ result.M12 = value1.M12 * value2;
+ result.M13 = value1.M13 * value2;
+ result.M14 = value1.M14 * value2;
+ result.M21 = value1.M21 * value2;
+ result.M22 = value1.M22 * value2;
+ result.M23 = value1.M23 * value2;
+ result.M24 = value1.M24 * value2;
+ result.M31 = value1.M31 * value2;
+ result.M32 = value1.M32 * value2;
+ result.M33 = value1.M33 * value2;
+ result.M34 = value1.M34 * value2;
+ result.M41 = value1.M41 * value2;
+ result.M42 = value1.M42 * value2;
+ result.M43 = value1.M43 * value2;
+ result.M44 = value1.M44 * value2;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Returns a new matrix with the negated elements of the given matrix.
+ /// </summary>
+ /// <param name="value">The source matrix.</param>
+ /// <returns>The negated matrix.</returns>
+ public static Matrix4x4 operator -(Matrix4x4 value)
+ {
+ Matrix4x4 m;
+
+ m.M11 = -value.M11;
+ m.M12 = -value.M12;
+ m.M13 = -value.M13;
+ m.M14 = -value.M14;
+ m.M21 = -value.M21;
+ m.M22 = -value.M22;
+ m.M23 = -value.M23;
+ m.M24 = -value.M24;
+ m.M31 = -value.M31;
+ m.M32 = -value.M32;
+ m.M33 = -value.M33;
+ m.M34 = -value.M34;
+ m.M41 = -value.M41;
+ m.M42 = -value.M42;
+ m.M43 = -value.M43;
+ m.M44 = -value.M44;
+
+ return m;
+ }
+
+ /// <summary>
+ /// Adds two matrices together.
+ /// </summary>
+ /// <param name="value1">The first source matrix.</param>
+ /// <param name="value2">The second source matrix.</param>
+ /// <returns>The resulting matrix.</returns>
+ public static Matrix4x4 operator +(Matrix4x4 value1, Matrix4x4 value2)
+ {
+ Matrix4x4 m;
+
+ m.M11 = value1.M11 + value2.M11;
+ m.M12 = value1.M12 + value2.M12;
+ m.M13 = value1.M13 + value2.M13;
+ m.M14 = value1.M14 + value2.M14;
+ m.M21 = value1.M21 + value2.M21;
+ m.M22 = value1.M22 + value2.M22;
+ m.M23 = value1.M23 + value2.M23;
+ m.M24 = value1.M24 + value2.M24;
+ m.M31 = value1.M31 + value2.M31;
+ m.M32 = value1.M32 + value2.M32;
+ m.M33 = value1.M33 + value2.M33;
+ m.M34 = value1.M34 + value2.M34;
+ m.M41 = value1.M41 + value2.M41;
+ m.M42 = value1.M42 + value2.M42;
+ m.M43 = value1.M43 + value2.M43;
+ m.M44 = value1.M44 + value2.M44;
+
+ return m;
+ }
+
+ /// <summary>
+ /// Subtracts the second matrix from the first.
+ /// </summary>
+ /// <param name="value1">The first source matrix.</param>
+ /// <param name="value2">The second source matrix.</param>
+ /// <returns>The result of the subtraction.</returns>
+ public static Matrix4x4 operator -(Matrix4x4 value1, Matrix4x4 value2)
+ {
+ Matrix4x4 m;
+
+ m.M11 = value1.M11 - value2.M11;
+ m.M12 = value1.M12 - value2.M12;
+ m.M13 = value1.M13 - value2.M13;
+ m.M14 = value1.M14 - value2.M14;
+ m.M21 = value1.M21 - value2.M21;
+ m.M22 = value1.M22 - value2.M22;
+ m.M23 = value1.M23 - value2.M23;
+ m.M24 = value1.M24 - value2.M24;
+ m.M31 = value1.M31 - value2.M31;
+ m.M32 = value1.M32 - value2.M32;
+ m.M33 = value1.M33 - value2.M33;
+ m.M34 = value1.M34 - value2.M34;
+ m.M41 = value1.M41 - value2.M41;
+ m.M42 = value1.M42 - value2.M42;
+ m.M43 = value1.M43 - value2.M43;
+ m.M44 = value1.M44 - value2.M44;
+
+ return m;
+ }
+
+ /// <summary>
+ /// Multiplies a matrix by another matrix.
+ /// </summary>
+ /// <param name="value1">The first source matrix.</param>
+ /// <param name="value2">The second source matrix.</param>
+ /// <returns>The result of the multiplication.</returns>
+ public static Matrix4x4 operator *(Matrix4x4 value1, Matrix4x4 value2)
+ {
+ Matrix4x4 m;
+
+ // First row
+ m.M11 = value1.M11 * value2.M11 + value1.M12 * value2.M21 + value1.M13 * value2.M31 + value1.M14 * value2.M41;
+ m.M12 = value1.M11 * value2.M12 + value1.M12 * value2.M22 + value1.M13 * value2.M32 + value1.M14 * value2.M42;
+ m.M13 = value1.M11 * value2.M13 + value1.M12 * value2.M23 + value1.M13 * value2.M33 + value1.M14 * value2.M43;
+ m.M14 = value1.M11 * value2.M14 + value1.M12 * value2.M24 + value1.M13 * value2.M34 + value1.M14 * value2.M44;
+
+ // Second row
+ m.M21 = value1.M21 * value2.M11 + value1.M22 * value2.M21 + value1.M23 * value2.M31 + value1.M24 * value2.M41;
+ m.M22 = value1.M21 * value2.M12 + value1.M22 * value2.M22 + value1.M23 * value2.M32 + value1.M24 * value2.M42;
+ m.M23 = value1.M21 * value2.M13 + value1.M22 * value2.M23 + value1.M23 * value2.M33 + value1.M24 * value2.M43;
+ m.M24 = value1.M21 * value2.M14 + value1.M22 * value2.M24 + value1.M23 * value2.M34 + value1.M24 * value2.M44;
+
+ // Third row
+ m.M31 = value1.M31 * value2.M11 + value1.M32 * value2.M21 + value1.M33 * value2.M31 + value1.M34 * value2.M41;
+ m.M32 = value1.M31 * value2.M12 + value1.M32 * value2.M22 + value1.M33 * value2.M32 + value1.M34 * value2.M42;
+ m.M33 = value1.M31 * value2.M13 + value1.M32 * value2.M23 + value1.M33 * value2.M33 + value1.M34 * value2.M43;
+ m.M34 = value1.M31 * value2.M14 + value1.M32 * value2.M24 + value1.M33 * value2.M34 + value1.M34 * value2.M44;
+
+ // Fourth row
+ m.M41 = value1.M41 * value2.M11 + value1.M42 * value2.M21 + value1.M43 * value2.M31 + value1.M44 * value2.M41;
+ m.M42 = value1.M41 * value2.M12 + value1.M42 * value2.M22 + value1.M43 * value2.M32 + value1.M44 * value2.M42;
+ m.M43 = value1.M41 * value2.M13 + value1.M42 * value2.M23 + value1.M43 * value2.M33 + value1.M44 * value2.M43;
+ m.M44 = value1.M41 * value2.M14 + value1.M42 * value2.M24 + value1.M43 * value2.M34 + value1.M44 * value2.M44;
+
+ return m;
+ }
+
+ /// <summary>
+ /// Multiplies a matrix by a scalar value.
+ /// </summary>
+ /// <param name="value1">The source matrix.</param>
+ /// <param name="value2">The scaling factor.</param>
+ /// <returns>The scaled matrix.</returns>
+ public static Matrix4x4 operator *(Matrix4x4 value1, float value2)
+ {
+ Matrix4x4 m;
+
+ m.M11 = value1.M11 * value2;
+ m.M12 = value1.M12 * value2;
+ m.M13 = value1.M13 * value2;
+ m.M14 = value1.M14 * value2;
+ m.M21 = value1.M21 * value2;
+ m.M22 = value1.M22 * value2;
+ m.M23 = value1.M23 * value2;
+ m.M24 = value1.M24 * value2;
+ m.M31 = value1.M31 * value2;
+ m.M32 = value1.M32 * value2;
+ m.M33 = value1.M33 * value2;
+ m.M34 = value1.M34 * value2;
+ m.M41 = value1.M41 * value2;
+ m.M42 = value1.M42 * value2;
+ m.M43 = value1.M43 * value2;
+ m.M44 = value1.M44 * value2;
+ return m;
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the given two matrices are equal.
+ /// </summary>
+ /// <param name="value1">The first matrix to compare.</param>
+ /// <param name="value2">The second matrix to compare.</param>
+ /// <returns>True if the given matrices are equal; False otherwise.</returns>
+ public static bool operator ==(Matrix4x4 value1, Matrix4x4 value2)
+ {
+ return (value1.M11 == value2.M11 && value1.M22 == value2.M22 && value1.M33 == value2.M33 && value1.M44 == value2.M44 && // Check diagonal element first for early out.
+ value1.M12 == value2.M12 && value1.M13 == value2.M13 && value1.M14 == value2.M14 &&
+ value1.M21 == value2.M21 && value1.M23 == value2.M23 && value1.M24 == value2.M24 &&
+ value1.M31 == value2.M31 && value1.M32 == value2.M32 && value1.M34 == value2.M34 &&
+ value1.M41 == value2.M41 && value1.M42 == value2.M42 && value1.M43 == value2.M43);
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the given two matrices are not equal.
+ /// </summary>
+ /// <param name="value1">The first matrix to compare.</param>
+ /// <param name="value2">The second matrix to compare.</param>
+ /// <returns>True if the given matrices are not equal; False if they are equal.</returns>
+ public static bool operator !=(Matrix4x4 value1, Matrix4x4 value2)
+ {
+ return (value1.M11 != value2.M11 || value1.M12 != value2.M12 || value1.M13 != value2.M13 || value1.M14 != value2.M14 ||
+ value1.M21 != value2.M21 || value1.M22 != value2.M22 || value1.M23 != value2.M23 || value1.M24 != value2.M24 ||
+ value1.M31 != value2.M31 || value1.M32 != value2.M32 || value1.M33 != value2.M33 || value1.M34 != value2.M34 ||
+ value1.M41 != value2.M41 || value1.M42 != value2.M42 || value1.M43 != value2.M43 || value1.M44 != value2.M44);
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether this matrix instance is equal to the other given matrix.
+ /// </summary>
+ /// <param name="other">The matrix to compare this instance to.</param>
+ /// <returns>True if the matrices are equal; False otherwise.</returns>
+ public bool Equals(Matrix4x4 other)
+ {
+ return (M11 == other.M11 && M22 == other.M22 && M33 == other.M33 && M44 == other.M44 && // Check diagonal element first for early out.
+ M12 == other.M12 && M13 == other.M13 && M14 == other.M14 &&
+ M21 == other.M21 && M23 == other.M23 && M24 == other.M24 &&
+ M31 == other.M31 && M32 == other.M32 && M34 == other.M34 &&
+ M41 == other.M41 && M42 == other.M42 && M43 == other.M43);
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the given Object is equal to this matrix instance.
+ /// </summary>
+ /// <param name="obj">The Object to compare against.</param>
+ /// <returns>True if the Object is equal to this matrix; False otherwise.</returns>
+ public override bool Equals(object obj)
+ {
+ if (obj is Matrix4x4)
+ {
+ return Equals((Matrix4x4)obj);
+ }
+
+ return false;
+ }
+
+ /// <summary>
+ /// Returns a String representing this matrix instance.
+ /// </summary>
+ /// <returns>The string representation.</returns>
+ public override string ToString()
+ {
+ CultureInfo ci = CultureInfo.CurrentCulture;
+
+ return String.Format(ci, "{{ {{M11:{0} M12:{1} M13:{2} M14:{3}}} {{M21:{4} M22:{5} M23:{6} M24:{7}}} {{M31:{8} M32:{9} M33:{10} M34:{11}}} {{M41:{12} M42:{13} M43:{14} M44:{15}}} }}",
+ M11.ToString(ci), M12.ToString(ci), M13.ToString(ci), M14.ToString(ci),
+ M21.ToString(ci), M22.ToString(ci), M23.ToString(ci), M24.ToString(ci),
+ M31.ToString(ci), M32.ToString(ci), M33.ToString(ci), M34.ToString(ci),
+ M41.ToString(ci), M42.ToString(ci), M43.ToString(ci), M44.ToString(ci));
+ }
+
+ /// <summary>
+ /// Returns the hash code for this instance.
+ /// </summary>
+ /// <returns>The hash code.</returns>
+ public override int GetHashCode()
+ {
+ return M11.GetHashCode() + M12.GetHashCode() + M13.GetHashCode() + M14.GetHashCode() +
+ M21.GetHashCode() + M22.GetHashCode() + M23.GetHashCode() + M24.GetHashCode() +
+ M31.GetHashCode() + M32.GetHashCode() + M33.GetHashCode() + M34.GetHashCode() +
+ M41.GetHashCode() + M42.GetHashCode() + M43.GetHashCode() + M44.GetHashCode();
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Numerics/System/Numerics/Plane.cs b/mcs/class/referencesource/System.Numerics/System/Numerics/Plane.cs
new file mode 100644
index 00000000000..e1747c39bc1
--- /dev/null
+++ b/mcs/class/referencesource/System.Numerics/System/Numerics/Plane.cs
@@ -0,0 +1,366 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System.Globalization;
+using System.Runtime.CompilerServices;
+
+namespace System.Numerics
+{
+ /// <summary>
+ /// A structure encapsulating a 3D Plane
+ /// </summary>
+ public struct Plane : IEquatable<Plane>
+ {
+ /// <summary>
+ /// The normal vector of the Plane.
+ /// </summary>
+ public Vector3 Normal;
+ /// <summary>
+ /// The distance of the Plane along its normal from the origin.
+ /// </summary>
+ public float D;
+
+ /// <summary>
+ /// Constructs a Plane from the X, Y, and Z components of its normal, and its distance from the origin on that normal.
+ /// </summary>
+ /// <param name="x">The X-component of the normal.</param>
+ /// <param name="y">The Y-component of the normal.</param>
+ /// <param name="z">The Z-component of the normal.</param>
+ /// <param name="d">The distance of the Plane along its normal from the origin.</param>
+ public Plane(float x, float y, float z, float d)
+ {
+ Normal = new Vector3(x, y, z);
+ this.D = d;
+ }
+
+ /// <summary>
+ /// Constructs a Plane from the given normal and distance along the normal from the origin.
+ /// </summary>
+ /// <param name="normal">The Plane's normal vector.</param>
+ /// <param name="d">The Plane's distance from the origin along its normal vector.</param>
+ public Plane(Vector3 normal, float d)
+ {
+ this.Normal = normal;
+ this.D = d;
+ }
+
+ /// <summary>
+ /// Constructs a Plane from the given Vector4.
+ /// </summary>
+ /// <param name="value">A vector whose first 3 elements describe the normal vector,
+ /// and whose W component defines the distance along that normal from the origin.</param>
+ public Plane(Vector4 value)
+ {
+ Normal = new Vector3(value.X, value.Y, value.Z);
+ D = value.W;
+ }
+
+ /// <summary>
+ /// Creates a Plane that contains the three given points.
+ /// </summary>
+ /// <param name="point1">The first point defining the Plane.</param>
+ /// <param name="point2">The second point defining the Plane.</param>
+ /// <param name="point3">The third point defining the Plane.</param>
+ /// <returns>The Plane containing the three points.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Plane CreateFromVertices(Vector3 point1, Vector3 point2, Vector3 point3)
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ Vector3 a = point2 - point1;
+ Vector3 b = point3 - point1;
+
+ // N = Cross(a, b)
+ Vector3 n = Vector3.Cross(a, b);
+ Vector3 normal = Vector3.Normalize(n);
+
+ // D = - Dot(N, point1)
+ float d = -Vector3.Dot(normal, point1);
+
+ return new Plane(normal, d);
+ }
+ else
+ {
+ float ax = point2.X - point1.X;
+ float ay = point2.Y - point1.Y;
+ float az = point2.Z - point1.Z;
+
+ float bx = point3.X - point1.X;
+ float by = point3.Y - point1.Y;
+ float bz = point3.Z - point1.Z;
+
+ // N=Cross(a,b)
+ float nx = ay * bz - az * by;
+ float ny = az * bx - ax * bz;
+ float nz = ax * by - ay * bx;
+
+ // Normalize(N)
+ float ls = nx * nx + ny * ny + nz * nz;
+ float invNorm = 1.0f / (float)Math.Sqrt((double)ls);
+
+ Vector3 normal = new Vector3(
+ nx * invNorm,
+ ny * invNorm,
+ nz * invNorm);
+
+ return new Plane(
+ normal,
+ -(normal.X * point1.X + normal.Y * point1.Y + normal.Z * point1.Z));
+ }
+ }
+
+ /// <summary>
+ /// Creates a new Plane whose normal vector is the source Plane's normal vector normalized.
+ /// </summary>
+ /// <param name="value">The source Plane.</param>
+ /// <returns>The normalized Plane.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Plane Normalize(Plane value)
+ {
+ const float FLT_EPSILON = 1.192092896e-07f; // smallest such that 1.0+FLT_EPSILON != 1.0
+ if (Vector.IsHardwareAccelerated)
+ {
+ float normalLengthSquared = value.Normal.LengthSquared();
+ if (Math.Abs(normalLengthSquared - 1.0f) < FLT_EPSILON)
+ {
+ // It already normalized, so we don't need to farther process.
+ return value;
+ }
+ float normalLength = (float)Math.Sqrt(normalLengthSquared);
+ return new Plane(
+ value.Normal / normalLength,
+ value.D / normalLength);
+ }
+ else
+ {
+ float f = value.Normal.X * value.Normal.X + value.Normal.Y * value.Normal.Y + value.Normal.Z * value.Normal.Z;
+
+ if (Math.Abs(f - 1.0f) < FLT_EPSILON)
+ {
+ return value; // It already normalized, so we don't need to further process.
+ }
+
+ float fInv = 1.0f / (float)Math.Sqrt(f);
+
+ return new Plane(
+ value.Normal.X * fInv,
+ value.Normal.Y * fInv,
+ value.Normal.Z * fInv,
+ value.D * fInv);
+ }
+ }
+
+ /// <summary>
+ /// Transforms a normalized Plane by a Matrix.
+ /// </summary>
+ /// <param name="plane"> The normalized Plane to transform.
+ /// This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called.</param>
+ /// <param name="matrix">The transformation matrix to apply to the Plane.</param>
+ /// <returns>The transformed Plane.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Plane Transform(Plane plane, Matrix4x4 matrix)
+ {
+ Matrix4x4 m;
+ Matrix4x4.Invert(matrix, out m);
+
+ float x = plane.Normal.X, y = plane.Normal.Y, z = plane.Normal.Z, w = plane.D;
+
+ return new Plane(
+ x * m.M11 + y * m.M12 + z * m.M13 + w * m.M14,
+ x * m.M21 + y * m.M22 + z * m.M23 + w * m.M24,
+ x * m.M31 + y * m.M32 + z * m.M33 + w * m.M34,
+ x * m.M41 + y * m.M42 + z * m.M43 + w * m.M44);
+ }
+
+ /// <summary>
+ /// Transforms a normalized Plane by a Quaternion rotation.
+ /// </summary>
+ /// <param name="plane"> The normalized Plane to transform.
+ /// This Plane must already be normalized, so that its Normal vector is of unit length, before this method is called.</param>
+ /// <param name="rotation">The Quaternion rotation to apply to the Plane.</param>
+ /// <returns>A new Plane that results from applying the rotation.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Plane Transform(Plane plane, Quaternion rotation)
+ {
+ // Compute rotation matrix.
+ float x2 = rotation.X + rotation.X;
+ float y2 = rotation.Y + rotation.Y;
+ float z2 = rotation.Z + rotation.Z;
+
+ float wx2 = rotation.W * x2;
+ float wy2 = rotation.W * y2;
+ float wz2 = rotation.W * z2;
+ float xx2 = rotation.X * x2;
+ float xy2 = rotation.X * y2;
+ float xz2 = rotation.X * z2;
+ float yy2 = rotation.Y * y2;
+ float yz2 = rotation.Y * z2;
+ float zz2 = rotation.Z * z2;
+
+ float m11 = 1.0f - yy2 - zz2;
+ float m21 = xy2 - wz2;
+ float m31 = xz2 + wy2;
+
+ float m12 = xy2 + wz2;
+ float m22 = 1.0f - xx2 - zz2;
+ float m32 = yz2 - wx2;
+
+ float m13 = xz2 - wy2;
+ float m23 = yz2 + wx2;
+ float m33 = 1.0f - xx2 - yy2;
+
+ float x = plane.Normal.X, y = plane.Normal.Y, z = plane.Normal.Z;
+
+ return new Plane(
+ x * m11 + y * m21 + z * m31,
+ x * m12 + y * m22 + z * m32,
+ x * m13 + y * m23 + z * m33,
+ plane.D);
+ }
+
+ /// <summary>
+ /// Calculates the dot product of a Plane and Vector4.
+ /// </summary>
+ /// <param name="plane">The Plane.</param>
+ /// <param name="value">The Vector4.</param>
+ /// <returns>The dot product.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static float Dot(Plane plane, Vector4 value)
+ {
+ return plane.Normal.X * value.X +
+ plane.Normal.Y * value.Y +
+ plane.Normal.Z * value.Z +
+ plane.D * value.W;
+ }
+
+ /// <summary>
+ /// Returns the dot product of a specified Vector3 and the normal vector of this Plane plus the distance (D) value of the Plane.
+ /// </summary>
+ /// <param name="plane">The plane.</param>
+ /// <param name="value">The Vector3.</param>
+ /// <returns>The resulting value.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static float DotCoordinate(Plane plane, Vector3 value)
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ return Vector3.Dot(plane.Normal, value) + plane.D;
+ }
+ else
+ {
+ return plane.Normal.X * value.X +
+ plane.Normal.Y * value.Y +
+ plane.Normal.Z * value.Z +
+ plane.D;
+ }
+ }
+
+ /// <summary>
+ /// Returns the dot product of a specified Vector3 and the Normal vector of this Plane.
+ /// </summary>
+ /// <param name="plane">The plane.</param>
+ /// <param name="value">The Vector3.</param>
+ /// <returns>The resulting dot product.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static float DotNormal(Plane plane, Vector3 value)
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ return Vector3.Dot(plane.Normal, value);
+ }
+ else
+ {
+ return plane.Normal.X * value.X +
+ plane.Normal.Y * value.Y +
+ plane.Normal.Z * value.Z;
+ }
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the two given Planes are equal.
+ /// </summary>
+ /// <param name="value1">The first Plane to compare.</param>
+ /// <param name="value2">The second Plane to compare.</param>
+ /// <returns>True if the Planes are equal; False otherwise.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static bool operator ==(Plane value1, Plane value2)
+ {
+ return (value1.Normal.X == value2.Normal.X &&
+ value1.Normal.Y == value2.Normal.Y &&
+ value1.Normal.Z == value2.Normal.Z &&
+ value1.D == value2.D);
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the two given Planes are not equal.
+ /// </summary>
+ /// <param name="value1">The first Plane to compare.</param>
+ /// <param name="value2">The second Plane to compare.</param>
+ /// <returns>True if the Planes are not equal; False if they are equal.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static bool operator !=(Plane value1, Plane value2)
+ {
+ return (value1.Normal.X != value2.Normal.X ||
+ value1.Normal.Y != value2.Normal.Y ||
+ value1.Normal.Z != value2.Normal.Z ||
+ value1.D != value2.D);
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the given Plane is equal to this Plane instance.
+ /// </summary>
+ /// <param name="other">The Plane to compare this instance to.</param>
+ /// <returns>True if the other Plane is equal to this instance; False otherwise.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public bool Equals(Plane other)
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ return this.Normal.Equals(other.Normal) && this.D == other.D;
+ }
+ else
+ {
+ return (Normal.X == other.Normal.X &&
+ Normal.Y == other.Normal.Y &&
+ Normal.Z == other.Normal.Z &&
+ D == other.D);
+ }
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the given Object is equal to this Plane instance.
+ /// </summary>
+ /// <param name="obj">The Object to compare against.</param>
+ /// <returns>True if the Object is equal to this Plane; False otherwise.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public override bool Equals(object obj)
+ {
+ if (obj is Plane)
+ {
+ return Equals((Plane)obj);
+ }
+
+ return false;
+ }
+
+ /// <summary>
+ /// Returns a String representing this Plane instance.
+ /// </summary>
+ /// <returns>The string representation.</returns>
+ public override string ToString()
+ {
+ CultureInfo ci = CultureInfo.CurrentCulture;
+
+ return String.Format(ci, "{{Normal:{0} D:{1}}}", Normal.ToString(), D.ToString(ci));
+ }
+
+ /// <summary>
+ /// Returns the hash code for this instance.
+ /// </summary>
+ /// <returns>The hash code.</returns>
+ public override int GetHashCode()
+ {
+ return Normal.GetHashCode() + D.GetHashCode();
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Numerics/System/Numerics/Quaternion.cs b/mcs/class/referencesource/System.Numerics/System/Numerics/Quaternion.cs
new file mode 100644
index 00000000000..75f6c32f31b
--- /dev/null
+++ b/mcs/class/referencesource/System.Numerics/System/Numerics/Quaternion.cs
@@ -0,0 +1,792 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System.Globalization;
+
+namespace System.Numerics
+{
+ /// <summary>
+ /// A structure encapsulating a four-dimensional vector (x,y,z,w),
+ /// which is used to efficiently rotate an object about the (x,y,z) vector by the angle theta, where w = cos(theta/2).
+ /// </summary>
+ public struct Quaternion : IEquatable<Quaternion>
+ {
+ /// <summary>
+ /// Specifies the X-value of the vector component of the Quaternion.
+ /// </summary>
+ public float X;
+ /// <summary>
+ /// Specifies the Y-value of the vector component of the Quaternion.
+ /// </summary>
+ public float Y;
+ /// <summary>
+ /// Specifies the Z-value of the vector component of the Quaternion.
+ /// </summary>
+ public float Z;
+ /// <summary>
+ /// Specifies the rotation component of the Quaternion.
+ /// </summary>
+ public float W;
+
+ /// <summary>
+ /// Returns a Quaternion representing no rotation.
+ /// </summary>
+ public static Quaternion Identity
+ {
+ get { return new Quaternion(0, 0, 0, 1); }
+ }
+
+ /// <summary>
+ /// Returns whether the Quaternion is the identity Quaternion.
+ /// </summary>
+ public bool IsIdentity
+ {
+ get { return X == 0f && Y == 0f && Z == 0f && W == 1f; }
+ }
+
+ /// <summary>
+ /// Constructs a Quaternion from the given components.
+ /// </summary>
+ /// <param name="x">The X component of the Quaternion.</param>
+ /// <param name="y">The Y component of the Quaternion.</param>
+ /// <param name="z">The Z component of the Quaternion.</param>
+ /// <param name="w">The W component of the Quaternion.</param>
+ public Quaternion(float x, float y, float z, float w)
+ {
+ this.X = x;
+ this.Y = y;
+ this.Z = z;
+ this.W = w;
+ }
+
+ /// <summary>
+ /// Constructs a Quaternion from the given vector and rotation parts.
+ /// </summary>
+ /// <param name="vectorPart">The vector part of the Quaternion.</param>
+ /// <param name="scalarPart">The rotation part of the Quaternion.</param>
+ public Quaternion(Vector3 vectorPart, float scalarPart)
+ {
+ X = vectorPart.X;
+ Y = vectorPart.Y;
+ Z = vectorPart.Z;
+ W = scalarPart;
+ }
+
+ /// <summary>
+ /// Calculates the length of the Quaternion.
+ /// </summary>
+ /// <returns>The computed length of the Quaternion.</returns>
+ public float Length()
+ {
+ float ls = X * X + Y * Y + Z * Z + W * W;
+
+ return (float)Math.Sqrt((double)ls);
+ }
+
+ /// <summary>
+ /// Calculates the length squared of the Quaternion. This operation is cheaper than Length().
+ /// </summary>
+ /// <returns>The length squared of the Quaternion.</returns>
+ public float LengthSquared()
+ {
+ return X * X + Y * Y + Z * Z + W * W;
+ }
+
+ /// <summary>
+ /// Divides each component of the Quaternion by the length of the Quaternion.
+ /// </summary>
+ /// <param name="value">The source Quaternion.</param>
+ /// <returns>The normalized Quaternion.</returns>
+ public static Quaternion Normalize(Quaternion value)
+ {
+ Quaternion ans;
+
+ float ls = value.X * value.X + value.Y * value.Y + value.Z * value.Z + value.W * value.W;
+
+ float invNorm = 1.0f / (float)Math.Sqrt((double)ls);
+
+ ans.X = value.X * invNorm;
+ ans.Y = value.Y * invNorm;
+ ans.Z = value.Z * invNorm;
+ ans.W = value.W * invNorm;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Creates the conjugate of a specified Quaternion.
+ /// </summary>
+ /// <param name="value">The Quaternion of which to return the conjugate.</param>
+ /// <returns>A new Quaternion that is the conjugate of the specified one.</returns>
+ public static Quaternion Conjugate(Quaternion value)
+ {
+ Quaternion ans;
+
+ ans.X = -value.X;
+ ans.Y = -value.Y;
+ ans.Z = -value.Z;
+ ans.W = value.W;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Returns the inverse of a Quaternion.
+ /// </summary>
+ /// <param name="value">The source Quaternion.</param>
+ /// <returns>The inverted Quaternion.</returns>
+ public static Quaternion Inverse(Quaternion value)
+ {
+ // -1 ( a -v )
+ // q = ( ------------- ------------- )
+ // ( a^2 + |v|^2 , a^2 + |v|^2 )
+
+ Quaternion ans;
+
+ float ls = value.X * value.X + value.Y * value.Y + value.Z * value.Z + value.W * value.W;
+ float invNorm = 1.0f / ls;
+
+ ans.X = -value.X * invNorm;
+ ans.Y = -value.Y * invNorm;
+ ans.Z = -value.Z * invNorm;
+ ans.W = value.W * invNorm;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Creates a Quaternion from a vector and an angle to rotate about the vector.
+ /// </summary>
+ /// <param name="axis">The vector to rotate around.</param>
+ /// <param name="angle">The angle, in radians, to rotate around the vector.</param>
+ /// <returns>The created Quaternion.</returns>
+ public static Quaternion CreateFromAxisAngle(Vector3 axis, float angle)
+ {
+ Quaternion ans;
+
+ float halfAngle = angle * 0.5f;
+ float s = (float)Math.Sin(halfAngle);
+ float c = (float)Math.Cos(halfAngle);
+
+ ans.X = axis.X * s;
+ ans.Y = axis.Y * s;
+ ans.Z = axis.Z * s;
+ ans.W = c;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Creates a new Quaternion from the given yaw, pitch, and roll, in radians.
+ /// </summary>
+ /// <param name="yaw">The yaw angle, in radians, around the Y-axis.</param>
+ /// <param name="pitch">The pitch angle, in radians, around the X-axis.</param>
+ /// <param name="roll">The roll angle, in radians, around the Z-axis.</param>
+ /// <returns></returns>
+ public static Quaternion CreateFromYawPitchRoll(float yaw, float pitch, float roll)
+ {
+ // Roll first, about axis the object is facing, then
+ // pitch upward, then yaw to face into the new heading
+ float sr, cr, sp, cp, sy, cy;
+
+ float halfRoll = roll * 0.5f;
+ sr = (float)Math.Sin(halfRoll);
+ cr = (float)Math.Cos(halfRoll);
+
+ float halfPitch = pitch * 0.5f;
+ sp = (float)Math.Sin(halfPitch);
+ cp = (float)Math.Cos(halfPitch);
+
+ float halfYaw = yaw * 0.5f;
+ sy = (float)Math.Sin(halfYaw);
+ cy = (float)Math.Cos(halfYaw);
+
+ Quaternion result;
+
+ result.X = cy * sp * cr + sy * cp * sr;
+ result.Y = sy * cp * cr - cy * sp * sr;
+ result.Z = cy * cp * sr - sy * sp * cr;
+ result.W = cy * cp * cr + sy * sp * sr;
+
+ return result;
+ }
+
+ /// <summary>
+ /// Creates a Quaternion from the given rotation matrix.
+ /// </summary>
+ /// <param name="matrix">The rotation matrix.</param>
+ /// <returns>The created Quaternion.</returns>
+ public static Quaternion CreateFromRotationMatrix(Matrix4x4 matrix)
+ {
+ float trace = matrix.M11 + matrix.M22 + matrix.M33;
+
+ Quaternion q = new Quaternion();
+
+ if (trace > 0.0f)
+ {
+ float s = (float)Math.Sqrt(trace + 1.0f);
+ q.W = s * 0.5f;
+ s = 0.5f / s;
+ q.X = (matrix.M23 - matrix.M32) * s;
+ q.Y = (matrix.M31 - matrix.M13) * s;
+ q.Z = (matrix.M12 - matrix.M21) * s;
+ }
+ else
+ {
+ if (matrix.M11 >= matrix.M22 && matrix.M11 >= matrix.M33)
+ {
+ float s = (float)Math.Sqrt(1.0f + matrix.M11 - matrix.M22 - matrix.M33);
+ float invS = 0.5f / s;
+ q.X = 0.5f * s;
+ q.Y = (matrix.M12 + matrix.M21) * invS;
+ q.Z = (matrix.M13 + matrix.M31) * invS;
+ q.W = (matrix.M23 - matrix.M32) * invS;
+ }
+ else if (matrix.M22 > matrix.M33)
+ {
+ float s = (float)Math.Sqrt(1.0f + matrix.M22 - matrix.M11 - matrix.M33);
+ float invS = 0.5f / s;
+ q.X = (matrix.M21 + matrix.M12) * invS;
+ q.Y = 0.5f * s;
+ q.Z = (matrix.M32 + matrix.M23) * invS;
+ q.W = (matrix.M31 - matrix.M13) * invS;
+ }
+ else
+ {
+ float s = (float)Math.Sqrt(1.0f + matrix.M33 - matrix.M11 - matrix.M22);
+ float invS = 0.5f / s;
+ q.X = (matrix.M31 + matrix.M13) * invS;
+ q.Y = (matrix.M32 + matrix.M23) * invS;
+ q.Z = 0.5f * s;
+ q.W = (matrix.M12 - matrix.M21) * invS;
+ }
+ }
+
+ return q;
+ }
+
+ /// <summary>
+ /// Calculates the dot product of two Quaternions.
+ /// </summary>
+ /// <param name="quaternion1">The first source Quaternion.</param>
+ /// <param name="quaternion2">The second source Quaternion.</param>
+ /// <returns>The dot product of the Quaternions.</returns>
+ public static float Dot(Quaternion quaternion1, Quaternion quaternion2)
+ {
+ return quaternion1.X * quaternion2.X +
+ quaternion1.Y * quaternion2.Y +
+ quaternion1.Z * quaternion2.Z +
+ quaternion1.W * quaternion2.W;
+ }
+
+ /// <summary>
+ /// Interpolates between two quaternions, using spherical linear interpolation.
+ /// </summary>
+ /// <param name="quaternion1">The first source Quaternion.</param>
+ /// <param name="quaternion2">The second source Quaternion.</param>
+ /// <param name="amount">The relative weight of the second source Quaternion in the interpolation.</param>
+ /// <returns>The interpolated Quaternion.</returns>
+ public static Quaternion Slerp(Quaternion quaternion1, Quaternion quaternion2, float amount)
+ {
+ const float epsilon = 1e-6f;
+
+ float t = amount;
+
+ float cosOmega = quaternion1.X * quaternion2.X + quaternion1.Y * quaternion2.Y +
+ quaternion1.Z * quaternion2.Z + quaternion1.W * quaternion2.W;
+
+ bool flip = false;
+
+ if (cosOmega < 0.0f)
+ {
+ flip = true;
+ cosOmega = -cosOmega;
+ }
+
+ float s1, s2;
+
+ if (cosOmega > (1.0f - epsilon))
+ {
+ // Too close, do straight linear interpolation.
+ s1 = 1.0f - t;
+ s2 = (flip) ? -t : t;
+ }
+ else
+ {
+ float omega = (float)Math.Acos(cosOmega);
+ float invSinOmega = (float)(1 / Math.Sin(omega));
+
+ s1 = (float)Math.Sin((1.0f - t) * omega) * invSinOmega;
+ s2 = (flip)
+ ? (float)-Math.Sin(t * omega) * invSinOmega
+ : (float)Math.Sin(t * omega) * invSinOmega;
+ }
+
+ Quaternion ans;
+
+ ans.X = s1 * quaternion1.X + s2 * quaternion2.X;
+ ans.Y = s1 * quaternion1.Y + s2 * quaternion2.Y;
+ ans.Z = s1 * quaternion1.Z + s2 * quaternion2.Z;
+ ans.W = s1 * quaternion1.W + s2 * quaternion2.W;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Linearly interpolates between two quaternions.
+ /// </summary>
+ /// <param name="quaternion1">The first source Quaternion.</param>
+ /// <param name="quaternion2">The second source Quaternion.</param>
+ /// <param name="amount">The relative weight of the second source Quaternion in the interpolation.</param>
+ /// <returns>The interpolated Quaternion.</returns>
+ public static Quaternion Lerp(Quaternion quaternion1, Quaternion quaternion2, float amount)
+ {
+ float t = amount;
+ float t1 = 1.0f - t;
+
+ Quaternion r = new Quaternion();
+
+ float dot = quaternion1.X * quaternion2.X + quaternion1.Y * quaternion2.Y +
+ quaternion1.Z * quaternion2.Z + quaternion1.W * quaternion2.W;
+
+ if (dot >= 0.0f)
+ {
+ r.X = t1 * quaternion1.X + t * quaternion2.X;
+ r.Y = t1 * quaternion1.Y + t * quaternion2.Y;
+ r.Z = t1 * quaternion1.Z + t * quaternion2.Z;
+ r.W = t1 * quaternion1.W + t * quaternion2.W;
+ }
+ else
+ {
+ r.X = t1 * quaternion1.X - t * quaternion2.X;
+ r.Y = t1 * quaternion1.Y - t * quaternion2.Y;
+ r.Z = t1 * quaternion1.Z - t * quaternion2.Z;
+ r.W = t1 * quaternion1.W - t * quaternion2.W;
+ }
+
+ // Normalize it.
+ float ls = r.X * r.X + r.Y * r.Y + r.Z * r.Z + r.W * r.W;
+ float invNorm = 1.0f / (float)Math.Sqrt((double)ls);
+
+ r.X *= invNorm;
+ r.Y *= invNorm;
+ r.Z *= invNorm;
+ r.W *= invNorm;
+
+ return r;
+ }
+
+ /// <summary>
+ /// Concatenates two Quaternions; the result represents the value1 rotation followed by the value2 rotation.
+ /// </summary>
+ /// <param name="value1">The first Quaternion rotation in the series.</param>
+ /// <param name="value2">The second Quaternion rotation in the series.</param>
+ /// <returns>A new Quaternion representing the concatenation of the value1 rotation followed by the value2 rotation.</returns>
+ public static Quaternion Concatenate(Quaternion value1, Quaternion value2)
+ {
+ Quaternion ans;
+
+ // Concatenate rotation is actually q2 * q1 instead of q1 * q2.
+ // So that's why value2 goes q1 and value1 goes q2.
+ float q1x = value2.X;
+ float q1y = value2.Y;
+ float q1z = value2.Z;
+ float q1w = value2.W;
+
+ float q2x = value1.X;
+ float q2y = value1.Y;
+ float q2z = value1.Z;
+ float q2w = value1.W;
+
+ // cross(av, bv)
+ float cx = q1y * q2z - q1z * q2y;
+ float cy = q1z * q2x - q1x * q2z;
+ float cz = q1x * q2y - q1y * q2x;
+
+ float dot = q1x * q2x + q1y * q2y + q1z * q2z;
+
+ ans.X = q1x * q2w + q2x * q1w + cx;
+ ans.Y = q1y * q2w + q2y * q1w + cy;
+ ans.Z = q1z * q2w + q2z * q1w + cz;
+ ans.W = q1w * q2w - dot;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Flips the sign of each component of the quaternion.
+ /// </summary>
+ /// <param name="value">The source Quaternion.</param>
+ /// <returns>The negated Quaternion.</returns>
+ public static Quaternion Negate(Quaternion value)
+ {
+ Quaternion ans;
+
+ ans.X = -value.X;
+ ans.Y = -value.Y;
+ ans.Z = -value.Z;
+ ans.W = -value.W;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Adds two Quaternions element-by-element.
+ /// </summary>
+ /// <param name="value1">The first source Quaternion.</param>
+ /// <param name="value2">The second source Quaternion.</param>
+ /// <returns>The result of adding the Quaternions.</returns>
+ public static Quaternion Add(Quaternion value1, Quaternion value2)
+ {
+ Quaternion ans;
+
+ ans.X = value1.X + value2.X;
+ ans.Y = value1.Y + value2.Y;
+ ans.Z = value1.Z + value2.Z;
+ ans.W = value1.W + value2.W;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Subtracts one Quaternion from another.
+ /// </summary>
+ /// <param name="value1">The first source Quaternion.</param>
+ /// <param name="value2">The second Quaternion, to be subtracted from the first.</param>
+ /// <returns>The result of the subtraction.</returns>
+ public static Quaternion Subtract(Quaternion value1, Quaternion value2)
+ {
+ Quaternion ans;
+
+ ans.X = value1.X - value2.X;
+ ans.Y = value1.Y - value2.Y;
+ ans.Z = value1.Z - value2.Z;
+ ans.W = value1.W - value2.W;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Multiplies two Quaternions together.
+ /// </summary>
+ /// <param name="value1">The Quaternion on the left side of the multiplication.</param>
+ /// <param name="value2">The Quaternion on the right side of the multiplication.</param>
+ /// <returns>The result of the multiplication.</returns>
+ public static Quaternion Multiply(Quaternion value1, Quaternion value2)
+ {
+ Quaternion ans;
+
+ float q1x = value1.X;
+ float q1y = value1.Y;
+ float q1z = value1.Z;
+ float q1w = value1.W;
+
+ float q2x = value2.X;
+ float q2y = value2.Y;
+ float q2z = value2.Z;
+ float q2w = value2.W;
+
+ // cross(av, bv)
+ float cx = q1y * q2z - q1z * q2y;
+ float cy = q1z * q2x - q1x * q2z;
+ float cz = q1x * q2y - q1y * q2x;
+
+ float dot = q1x * q2x + q1y * q2y + q1z * q2z;
+
+ ans.X = q1x * q2w + q2x * q1w + cx;
+ ans.Y = q1y * q2w + q2y * q1w + cy;
+ ans.Z = q1z * q2w + q2z * q1w + cz;
+ ans.W = q1w * q2w - dot;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Multiplies a Quaternion by a scalar value.
+ /// </summary>
+ /// <param name="value1">The source Quaternion.</param>
+ /// <param name="value2">The scalar value.</param>
+ /// <returns>The result of the multiplication.</returns>
+ public static Quaternion Multiply(Quaternion value1, float value2)
+ {
+ Quaternion ans;
+
+ ans.X = value1.X * value2;
+ ans.Y = value1.Y * value2;
+ ans.Z = value1.Z * value2;
+ ans.W = value1.W * value2;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Divides a Quaternion by another Quaternion.
+ /// </summary>
+ /// <param name="value1">The source Quaternion.</param>
+ /// <param name="value2">The divisor.</param>
+ /// <returns>The result of the division.</returns>
+ public static Quaternion Divide(Quaternion value1, Quaternion value2)
+ {
+ Quaternion ans;
+
+ float q1x = value1.X;
+ float q1y = value1.Y;
+ float q1z = value1.Z;
+ float q1w = value1.W;
+
+ //-------------------------------------
+ // Inverse part.
+ float ls = value2.X * value2.X + value2.Y * value2.Y +
+ value2.Z * value2.Z + value2.W * value2.W;
+ float invNorm = 1.0f / ls;
+
+ float q2x = -value2.X * invNorm;
+ float q2y = -value2.Y * invNorm;
+ float q2z = -value2.Z * invNorm;
+ float q2w = value2.W * invNorm;
+
+ //-------------------------------------
+ // Multiply part.
+
+ // cross(av, bv)
+ float cx = q1y * q2z - q1z * q2y;
+ float cy = q1z * q2x - q1x * q2z;
+ float cz = q1x * q2y - q1y * q2x;
+
+ float dot = q1x * q2x + q1y * q2y + q1z * q2z;
+
+ ans.X = q1x * q2w + q2x * q1w + cx;
+ ans.Y = q1y * q2w + q2y * q1w + cy;
+ ans.Z = q1z * q2w + q2z * q1w + cz;
+ ans.W = q1w * q2w - dot;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Flips the sign of each component of the quaternion.
+ /// </summary>
+ /// <param name="value">The source Quaternion.</param>
+ /// <returns>The negated Quaternion.</returns>
+ public static Quaternion operator -(Quaternion value)
+ {
+ Quaternion ans;
+
+ ans.X = -value.X;
+ ans.Y = -value.Y;
+ ans.Z = -value.Z;
+ ans.W = -value.W;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Adds two Quaternions element-by-element.
+ /// </summary>
+ /// <param name="value1">The first source Quaternion.</param>
+ /// <param name="value2">The second source Quaternion.</param>
+ /// <returns>The result of adding the Quaternions.</returns>
+ public static Quaternion operator +(Quaternion value1, Quaternion value2)
+ {
+ Quaternion ans;
+
+ ans.X = value1.X + value2.X;
+ ans.Y = value1.Y + value2.Y;
+ ans.Z = value1.Z + value2.Z;
+ ans.W = value1.W + value2.W;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Subtracts one Quaternion from another.
+ /// </summary>
+ /// <param name="value1">The first source Quaternion.</param>
+ /// <param name="value2">The second Quaternion, to be subtracted from the first.</param>
+ /// <returns>The result of the subtraction.</returns>
+ public static Quaternion operator -(Quaternion value1, Quaternion value2)
+ {
+ Quaternion ans;
+
+ ans.X = value1.X - value2.X;
+ ans.Y = value1.Y - value2.Y;
+ ans.Z = value1.Z - value2.Z;
+ ans.W = value1.W - value2.W;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Multiplies two Quaternions together.
+ /// </summary>
+ /// <param name="value1">The Quaternion on the left side of the multiplication.</param>
+ /// <param name="value2">The Quaternion on the right side of the multiplication.</param>
+ /// <returns>The result of the multiplication.</returns>
+ public static Quaternion operator *(Quaternion value1, Quaternion value2)
+ {
+ Quaternion ans;
+
+ float q1x = value1.X;
+ float q1y = value1.Y;
+ float q1z = value1.Z;
+ float q1w = value1.W;
+
+ float q2x = value2.X;
+ float q2y = value2.Y;
+ float q2z = value2.Z;
+ float q2w = value2.W;
+
+ // cross(av, bv)
+ float cx = q1y * q2z - q1z * q2y;
+ float cy = q1z * q2x - q1x * q2z;
+ float cz = q1x * q2y - q1y * q2x;
+
+ float dot = q1x * q2x + q1y * q2y + q1z * q2z;
+
+ ans.X = q1x * q2w + q2x * q1w + cx;
+ ans.Y = q1y * q2w + q2y * q1w + cy;
+ ans.Z = q1z * q2w + q2z * q1w + cz;
+ ans.W = q1w * q2w - dot;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Multiplies a Quaternion by a scalar value.
+ /// </summary>
+ /// <param name="value1">The source Quaternion.</param>
+ /// <param name="value2">The scalar value.</param>
+ /// <returns>The result of the multiplication.</returns>
+ public static Quaternion operator *(Quaternion value1, float value2)
+ {
+ Quaternion ans;
+
+ ans.X = value1.X * value2;
+ ans.Y = value1.Y * value2;
+ ans.Z = value1.Z * value2;
+ ans.W = value1.W * value2;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Divides a Quaternion by another Quaternion.
+ /// </summary>
+ /// <param name="value1">The source Quaternion.</param>
+ /// <param name="value2">The divisor.</param>
+ /// <returns>The result of the division.</returns>
+ public static Quaternion operator /(Quaternion value1, Quaternion value2)
+ {
+ Quaternion ans;
+
+ float q1x = value1.X;
+ float q1y = value1.Y;
+ float q1z = value1.Z;
+ float q1w = value1.W;
+
+ //-------------------------------------
+ // Inverse part.
+ float ls = value2.X * value2.X + value2.Y * value2.Y +
+ value2.Z * value2.Z + value2.W * value2.W;
+ float invNorm = 1.0f / ls;
+
+ float q2x = -value2.X * invNorm;
+ float q2y = -value2.Y * invNorm;
+ float q2z = -value2.Z * invNorm;
+ float q2w = value2.W * invNorm;
+
+ //-------------------------------------
+ // Multiply part.
+
+ // cross(av, bv)
+ float cx = q1y * q2z - q1z * q2y;
+ float cy = q1z * q2x - q1x * q2z;
+ float cz = q1x * q2y - q1y * q2x;
+
+ float dot = q1x * q2x + q1y * q2y + q1z * q2z;
+
+ ans.X = q1x * q2w + q2x * q1w + cx;
+ ans.Y = q1y * q2w + q2y * q1w + cy;
+ ans.Z = q1z * q2w + q2z * q1w + cz;
+ ans.W = q1w * q2w - dot;
+
+ return ans;
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the two given Quaternions are equal.
+ /// </summary>
+ /// <param name="value1">The first Quaternion to compare.</param>
+ /// <param name="value2">The second Quaternion to compare.</param>
+ /// <returns>True if the Quaternions are equal; False otherwise.</returns>
+ public static bool operator ==(Quaternion value1, Quaternion value2)
+ {
+ return (value1.X == value2.X &&
+ value1.Y == value2.Y &&
+ value1.Z == value2.Z &&
+ value1.W == value2.W);
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the two given Quaternions are not equal.
+ /// </summary>
+ /// <param name="value1">The first Quaternion to compare.</param>
+ /// <param name="value2">The second Quaternion to compare.</param>
+ /// <returns>True if the Quaternions are not equal; False if they are equal.</returns>
+ public static bool operator !=(Quaternion value1, Quaternion value2)
+ {
+ return (value1.X != value2.X ||
+ value1.Y != value2.Y ||
+ value1.Z != value2.Z ||
+ value1.W != value2.W);
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the given Quaternion is equal to this Quaternion instance.
+ /// </summary>
+ /// <param name="other">The Quaternion to compare this instance to.</param>
+ /// <returns>True if the other Quaternion is equal to this instance; False otherwise.</returns>
+ public bool Equals(Quaternion other)
+ {
+ return (X == other.X &&
+ Y == other.Y &&
+ Z == other.Z &&
+ W == other.W);
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the given Object is equal to this Quaternion instance.
+ /// </summary>
+ /// <param name="obj">The Object to compare against.</param>
+ /// <returns>True if the Object is equal to this Quaternion; False otherwise.</returns>
+ public override bool Equals(object obj)
+ {
+ if (obj is Quaternion)
+ {
+ return Equals((Quaternion)obj);
+ }
+
+ return false;
+ }
+
+ /// <summary>
+ /// Returns a String representing this Quaternion instance.
+ /// </summary>
+ /// <returns>The string representation.</returns>
+ public override string ToString()
+ {
+ CultureInfo ci = CultureInfo.CurrentCulture;
+
+ return String.Format(ci, "{{X:{0} Y:{1} Z:{2} W:{3}}}", X.ToString(ci), Y.ToString(ci), Z.ToString(ci), W.ToString(ci));
+ }
+
+ /// <summary>
+ /// Returns the hash code for this instance.
+ /// </summary>
+ /// <returns>The hash code.</returns>
+ public override int GetHashCode()
+ {
+ return X.GetHashCode() + Y.GetHashCode() + Z.GetHashCode() + W.GetHashCode();
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Numerics/System/Numerics/Vector2.cs b/mcs/class/referencesource/System.Numerics/System/Numerics/Vector2.cs
new file mode 100644
index 00000000000..1702c846a98
--- /dev/null
+++ b/mcs/class/referencesource/System.Numerics/System/Numerics/Vector2.cs
@@ -0,0 +1,451 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System.Globalization;
+using System.Runtime.CompilerServices;
+using System.Text;
+
+namespace System.Numerics
+{
+ /// <summary>
+ /// A structure encapsulating two single precision floating point values and provides hardware accelerated methods.
+ /// </summary>
+ public partial struct Vector2 : IEquatable<Vector2>, IFormattable
+ {
+ #region Public Static Properties
+ /// <summary>
+ /// Returns the vector (0,0).
+ /// </summary>
+ public static Vector2 Zero { get { return new Vector2(); } }
+ /// <summary>
+ /// Returns the vector (1,1).
+ /// </summary>
+ public static Vector2 One { get { return new Vector2(1.0f, 1.0f); } }
+ /// <summary>
+ /// Returns the vector (1,0).
+ /// </summary>
+ public static Vector2 UnitX { get { return new Vector2(1.0f, 0.0f); } }
+ /// <summary>
+ /// Returns the vector (0,1).
+ /// </summary>
+ public static Vector2 UnitY { get { return new Vector2(0.0f, 1.0f); } }
+ #endregion Public Static Properties
+
+ #region Public instance methods
+ /// <summary>
+ /// Returns the hash code for this instance.
+ /// </summary>
+ /// <returns>The hash code.</returns>
+ public override int GetHashCode()
+ {
+ int hash = this.X.GetHashCode();
+ hash = HashCodeHelper.CombineHashCodes(hash, this.Y.GetHashCode());
+ return hash;
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the given Object is equal to this Vector2 instance.
+ /// </summary>
+ /// <param name="obj">The Object to compare against.</param>
+ /// <returns>True if the Object is equal to this Vector2; False otherwise.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public override bool Equals(object obj)
+ {
+ if (!(obj is Vector2))
+ return false;
+ return Equals((Vector2)obj);
+ }
+
+ /// <summary>
+ /// Returns a String representing this Vector2 instance.
+ /// </summary>
+ /// <returns>The string representation.</returns>
+ public override string ToString()
+ {
+ return ToString("G", CultureInfo.CurrentCulture);
+ }
+
+ /// <summary>
+ /// Returns a String representing this Vector2 instance, using the specified format to format individual elements.
+ /// </summary>
+ /// <param name="format">The format of individual elements.</param>
+ /// <returns>The string representation.</returns>
+ public string ToString(string format)
+ {
+ return ToString(format, CultureInfo.CurrentCulture);
+ }
+
+ /// <summary>
+ /// Returns a String representing this Vector2 instance, using the specified format to format individual elements
+ /// and the given IFormatProvider.
+ /// </summary>
+ /// <param name="format">The format of individual elements.</param>
+ /// <param name="formatProvider">The format provider to use when formatting elements.</param>
+ /// <returns>The string representation.</returns>
+ public string ToString(string format, IFormatProvider formatProvider)
+ {
+ StringBuilder sb = new StringBuilder();
+ string separator = NumberFormatInfo.GetInstance(formatProvider).NumberGroupSeparator;
+ sb.Append('<');
+ sb.Append(this.X.ToString(format, formatProvider));
+ sb.Append(separator);
+ sb.Append(' ');
+ sb.Append(this.Y.ToString(format, formatProvider));
+ sb.Append('>');
+ return sb.ToString();
+ }
+
+ /// <summary>
+ /// Returns the length of the vector.
+ /// </summary>
+ /// <returns>The vector's length.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public float Length()
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ float ls = Vector2.Dot(this, this);
+ return (float)Math.Sqrt(ls);
+ }
+ else
+ {
+ float ls = X * X + Y * Y;
+ return (float)Math.Sqrt((double)ls);
+ }
+ }
+
+ /// <summary>
+ /// Returns the length of the vector squared. This operation is cheaper than Length().
+ /// </summary>
+ /// <returns>The vector's length squared.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public float LengthSquared()
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ return Vector2.Dot(this, this);
+ }
+ else
+ {
+ return X * X + Y * Y;
+ }
+ }
+ #endregion Public Instance Methods
+
+ #region Public Static Methods
+ /// <summary>
+ /// Returns the Euclidean distance between the two given points.
+ /// </summary>
+ /// <param name="value1">The first point.</param>
+ /// <param name="value2">The second point.</param>
+ /// <returns>The distance.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static float Distance(Vector2 value1, Vector2 value2)
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ Vector2 difference = value1 - value2;
+ float ls = Vector2.Dot(difference, difference);
+ return (float)System.Math.Sqrt(ls);
+ }
+ else
+ {
+ float dx = value1.X - value2.X;
+ float dy = value1.Y - value2.Y;
+
+ float ls = dx * dx + dy * dy;
+
+ return (float)Math.Sqrt((double)ls);
+ }
+ }
+
+ /// <summary>
+ /// Returns the Euclidean distance squared between the two given points.
+ /// </summary>
+ /// <param name="value1">The first point.</param>
+ /// <param name="value2">The second point.</param>
+ /// <returns>The distance squared.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static float DistanceSquared(Vector2 value1, Vector2 value2)
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ Vector2 difference = value1 - value2;
+ return Vector2.Dot(difference, difference);
+ }
+ else
+ {
+ float dx = value1.X - value2.X;
+ float dy = value1.Y - value2.Y;
+
+ return dx * dx + dy * dy;
+ }
+ }
+
+ /// <summary>
+ /// Returns a vector with the same direction as the given vector, but with a length of 1.
+ /// </summary>
+ /// <param name="value">The vector to normalize.</param>
+ /// <returns>The normalized vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Normalize(Vector2 value)
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ float length = value.Length();
+ return value / length;
+ }
+ else
+ {
+ float ls = value.X * value.X + value.Y * value.Y;
+ float invNorm = 1.0f / (float)Math.Sqrt((double)ls);
+
+ return new Vector2(
+ value.X * invNorm,
+ value.Y * invNorm);
+ }
+ }
+
+ /// <summary>
+ /// Returns the reflection of a vector off a surface that has the specified normal.
+ /// </summary>
+ /// <param name="vector">The source vector.</param>
+ /// <param name="normal">The normal of the surface being reflected off.</param>
+ /// <returns>The reflected vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Reflect(Vector2 vector, Vector2 normal)
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ float dot = Vector2.Dot(vector, normal);
+ return vector - (2 * dot * normal);
+ }
+ else
+ {
+ float dot = vector.X * normal.X + vector.Y * normal.Y;
+
+ return new Vector2(
+ vector.X - 2.0f * dot * normal.X,
+ vector.Y - 2.0f * dot * normal.Y);
+ }
+ }
+
+ /// <summary>
+ /// Restricts a vector between a min and max value.
+ /// </summary>
+ /// <param name="value1">The source vector.</param>
+ /// <param name="min">The minimum value.</param>
+ /// <param name="max">The maximum value.</param>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Clamp(Vector2 value1, Vector2 min, Vector2 max)
+ {
+ // This compare order is very important!!!
+ // We must follow HLSL behavior in the case user specified min value is bigger than max value.
+ float x = value1.X;
+ x = (x > max.X) ? max.X : x;
+ x = (x < min.X) ? min.X : x;
+
+ float y = value1.Y;
+ y = (y > max.Y) ? max.Y : y;
+ y = (y < min.Y) ? min.Y : y;
+
+ return new Vector2(x, y);
+ }
+
+ /// <summary>
+ /// Linearly interpolates between two vectors based on the given weighting.
+ /// </summary>
+ /// <param name="value1">The first source vector.</param>
+ /// <param name="value2">The second source vector.</param>
+ /// <param name="amount">Value between 0 and 1 indicating the weight of the second source vector.</param>
+ /// <returns>The interpolated vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Lerp(Vector2 value1, Vector2 value2, float amount)
+ {
+ return new Vector2(
+ value1.X + (value2.X - value1.X) * amount,
+ value1.Y + (value2.Y - value1.Y) * amount);
+ }
+
+ /// <summary>
+ /// Transforms a vector by the given matrix.
+ /// </summary>
+ /// <param name="position">The source vector.</param>
+ /// <param name="matrix">The transformation matrix.</param>
+ /// <returns>The transformed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Transform(Vector2 position, Matrix3x2 matrix)
+ {
+ return new Vector2(
+ position.X * matrix.M11 + position.Y * matrix.M21 + matrix.M31,
+ position.X * matrix.M12 + position.Y * matrix.M22 + matrix.M32);
+ }
+
+ /// <summary>
+ /// Transforms a vector by the given matrix.
+ /// </summary>
+ /// <param name="position">The source vector.</param>
+ /// <param name="matrix">The transformation matrix.</param>
+ /// <returns>The transformed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Transform(Vector2 position, Matrix4x4 matrix)
+ {
+ return new Vector2(
+ position.X * matrix.M11 + position.Y * matrix.M21 + matrix.M41,
+ position.X * matrix.M12 + position.Y * matrix.M22 + matrix.M42);
+ }
+
+ /// <summary>
+ /// Transforms a vector normal by the given matrix.
+ /// </summary>
+ /// <param name="normal">The source vector.</param>
+ /// <param name="matrix">The transformation matrix.</param>
+ /// <returns>The transformed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 TransformNormal(Vector2 normal, Matrix3x2 matrix)
+ {
+ return new Vector2(
+ normal.X * matrix.M11 + normal.Y * matrix.M21,
+ normal.X * matrix.M12 + normal.Y * matrix.M22);
+ }
+
+ /// <summary>
+ /// Transforms a vector normal by the given matrix.
+ /// </summary>
+ /// <param name="normal">The source vector.</param>
+ /// <param name="matrix">The transformation matrix.</param>
+ /// <returns>The transformed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 TransformNormal(Vector2 normal, Matrix4x4 matrix)
+ {
+ return new Vector2(
+ normal.X * matrix.M11 + normal.Y * matrix.M21,
+ normal.X * matrix.M12 + normal.Y * matrix.M22);
+ }
+
+ /// <summary>
+ /// Transforms a vector by the given Quaternion rotation value.
+ /// </summary>
+ /// <param name="value">The source vector to be rotated.</param>
+ /// <param name="rotation">The rotation to apply.</param>
+ /// <returns>The transformed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Transform(Vector2 value, Quaternion rotation)
+ {
+ float x2 = rotation.X + rotation.X;
+ float y2 = rotation.Y + rotation.Y;
+ float z2 = rotation.Z + rotation.Z;
+
+ float wz2 = rotation.W * z2;
+ float xx2 = rotation.X * x2;
+ float xy2 = rotation.X * y2;
+ float yy2 = rotation.Y * y2;
+ float zz2 = rotation.Z * z2;
+
+ return new Vector2(
+ value.X * (1.0f - yy2 - zz2) + value.Y * (xy2 - wz2),
+ value.X * (xy2 + wz2) + value.Y * (1.0f - xx2 - zz2));
+ }
+ #endregion Public Static Methods
+
+ #region Public operator methods
+ // all the below methods should be inlined as they are
+ // implemented over JIT intrinsics
+
+ /// <summary>
+ /// Adds two vectors together.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The summed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Add(Vector2 left, Vector2 right)
+ {
+ return left + right;
+ }
+
+ /// <summary>
+ /// Subtracts the second vector from the first.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The difference vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Subtract(Vector2 left, Vector2 right)
+ {
+ return left - right;
+ }
+
+ /// <summary>
+ /// Multiplies two vectors together.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The product vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Multiply(Vector2 left, Vector2 right)
+ {
+ return left * right;
+ }
+
+ /// <summary>
+ /// Multiplies a vector by the given scalar.
+ /// </summary>
+ /// <param name="left">The source vector.</param>
+ /// <param name="right">The scalar value.</param>
+ /// <returns>The scaled vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Multiply(Vector2 left, Single right)
+ {
+ return left * right;
+ }
+
+ /// <summary>
+ /// Multiplies a vector by the given scalar.
+ /// </summary>
+ /// <param name="left">The scalar value.</param>
+ /// <param name="right">The source vector.</param>
+ /// <returns>The scaled vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Multiply(Single left, Vector2 right)
+ {
+ return left * right;
+ }
+
+ /// <summary>
+ /// Divides the first vector by the second.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The vector resulting from the division.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Divide(Vector2 left, Vector2 right)
+ {
+ return left / right;
+ }
+
+ /// <summary>
+ /// Divides the vector by the given scalar.
+ /// </summary>
+ /// <param name="left">The source vector.</param>
+ /// <param name="divisor">The scalar value.</param>
+ /// <returns>The result of the division.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Divide(Vector2 left, Single divisor)
+ {
+ return left / divisor;
+ }
+
+ /// <summary>
+ /// Negates a given vector.
+ /// </summary>
+ /// <param name="value">The source vector.</param>
+ /// <returns>The negated vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Negate(Vector2 value)
+ {
+ return -value;
+ }
+ #endregion Public operator methods
+ }
+}
diff --git a/mcs/class/referencesource/System.Numerics/System/Numerics/Vector2_Intrinsics.cs b/mcs/class/referencesource/System.Numerics/System/Numerics/Vector2_Intrinsics.cs
new file mode 100644
index 00000000000..167a9156342
--- /dev/null
+++ b/mcs/class/referencesource/System.Numerics/System/Numerics/Vector2_Intrinsics.cs
@@ -0,0 +1,289 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System.Runtime.CompilerServices;
+
+namespace System.Numerics
+{
+ // This file contains the definitions for all of the JIT intrinsic methods and properties that are recognized by the current x64 JIT compiler.
+ // The implementation defined here is used in any circumstance where the JIT fails to recognize these members as intrinsic.
+ // The JIT recognizes these methods and properties by name and signature: if either is changed, the JIT will no longer recognize the member.
+ // Some methods declared here are not strictly intrinsic, but delegate to an intrinsic method. For example, only one overload of CopyTo()
+
+ public partial struct Vector2
+ {
+ /// <summary>
+ /// The X component of the vector.
+ /// </summary>
+ public Single X;
+ /// <summary>
+ /// The Y component of the vector.
+ /// </summary>
+ public Single Y;
+
+ #region Constructors
+ /// <summary>
+ /// Constructs a vector whose elements are all the single specified value.
+ /// </summary>
+ /// <param name="value">The element to fill the vector with.</param>
+ [JitIntrinsic]
+ public Vector2(Single value) : this(value, value) { }
+
+ /// <summary>
+ /// Constructs a vector with the given individual elements.
+ /// </summary>
+ /// <param name="x">The X component.</param>
+ /// <param name="y">The Y component.</param>
+ [JitIntrinsic]
+ public Vector2(Single x, Single y)
+ {
+ X = x;
+ Y = y;
+ }
+ #endregion Constructors
+
+ #region Public Instance Methods
+ /// <summary>
+ /// Copies the contents of the vector into the given array.
+ /// </summary>
+ /// <param name="array">The destination array.</param>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CopyTo(Single[] array)
+ {
+ CopyTo(array, 0);
+ }
+
+ /// <summary>
+ /// Copies the contents of the vector into the given array, starting from the given index.
+ /// </summary>
+ /// <exception cref="ArgumentNullException">If array is null.</exception>
+ /// <exception cref="RankException">If array is multidimensional.</exception>
+ /// <exception cref="ArgumentOutOfRangeException">If index is greater than end of the array or index is less than zero.</exception>
+ /// <exception cref="ArgumentException">If number of elements in source vector is greater than those available in destination array
+ /// or if there are not enough elements to copy.</exception>
+ public void CopyTo(Single[] array, int index)
+ {
+ if (array == null)
+ throw new ArgumentNullException("values");
+ if (index < 0 || index >= array.Length)
+ throw new ArgumentOutOfRangeException(SR.GetString("Arg_ArgumentOutOfRangeException", index));
+ if ((array.Length - index) < 2)
+ throw new ArgumentException(SR.GetString("Arg_ElementsInSourceIsGreaterThanDestination", index));
+ array[index] = X;
+ array[index + 1] = Y;
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the given Vector2 is equal to this Vector2 instance.
+ /// </summary>
+ /// <param name="other">The Vector2 to compare this instance to.</param>
+ /// <returns>True if the other Vector2 is equal to this instance; False otherwise.</returns>
+ [JitIntrinsic]
+ public bool Equals(Vector2 other)
+ {
+ return this.X == other.X && this.Y == other.Y;
+ }
+ #endregion Public Instance Methods
+
+ #region Public Static Methods
+ /// <summary>
+ /// Returns the dot product of two vectors.
+ /// </summary>
+ /// <param name="value1">The first vector.</param>
+ /// <param name="value2">The second vector.</param>
+ /// <returns>The dot product.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static float Dot(Vector2 value1, Vector2 value2)
+ {
+ return value1.X * value2.X +
+ value1.Y * value2.Y;
+ }
+
+ /// <summary>
+ /// Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors.
+ /// </summary>
+ /// <param name="value1">The first source vector.</param>
+ /// <param name="value2">The second source vector.</param>
+ /// <returns>The minimized vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Min(Vector2 value1, Vector2 value2)
+ {
+ return new Vector2(
+ (value1.X < value2.X) ? value1.X : value2.X,
+ (value1.Y < value2.Y) ? value1.Y : value2.Y);
+ }
+
+ /// <summary>
+ /// Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors
+ /// </summary>
+ /// <param name="value1">The first source vector</param>
+ /// <param name="value2">The second source vector</param>
+ /// <returns>The maximized vector</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Max(Vector2 value1, Vector2 value2)
+ {
+ return new Vector2(
+ (value1.X > value2.X) ? value1.X : value2.X,
+ (value1.Y > value2.Y) ? value1.Y : value2.Y);
+ }
+
+ /// <summary>
+ /// Returns a vector whose elements are the absolute values of each of the source vector's elements.
+ /// </summary>
+ /// <param name="value">The source vector.</param>
+ /// <returns>The absolute value vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 Abs(Vector2 value)
+ {
+ return new Vector2(Math.Abs(value.X), Math.Abs(value.Y));
+ }
+
+ /// <summary>
+ /// Returns a vector whose elements are the square root of each of the source vector's elements.
+ /// </summary>
+ /// <param name="value">The source vector.</param>
+ /// <returns>The square root vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 SquareRoot(Vector2 value)
+ {
+ return new Vector2((Single)Math.Sqrt(value.X), (Single)Math.Sqrt(value.Y));
+ }
+ #endregion Public Static Methods
+
+ #region Public Static Operators
+ /// <summary>
+ /// Adds two vectors together.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The summed vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 operator +(Vector2 left, Vector2 right)
+ {
+ return new Vector2(left.X + right.X, left.Y + right.Y);
+ }
+
+ /// <summary>
+ /// Subtracts the second vector from the first.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The difference vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 operator -(Vector2 left, Vector2 right)
+ {
+ return new Vector2(left.X - right.X, left.Y - right.Y);
+ }
+
+ /// <summary>
+ /// Multiplies two vectors together.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The product vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 operator *(Vector2 left, Vector2 right)
+ {
+ return new Vector2(left.X * right.X, left.Y * right.Y);
+ }
+
+ /// <summary>
+ /// Multiplies a vector by the given scalar.
+ /// </summary>
+ /// <param name="left">The scalar value.</param>
+ /// <param name="right">The source vector.</param>
+ /// <returns>The scaled vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 operator *(Single left, Vector2 right)
+ {
+ return new Vector2(left, left) * right;
+ }
+
+ /// <summary>
+ /// Multiplies a vector by the given scalar.
+ /// </summary>
+ /// <param name="left">The source vector.</param>
+ /// <param name="right">The scalar value.</param>
+ /// <returns>The scaled vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 operator *(Vector2 left, Single right)
+ {
+ return left * new Vector2(right, right);
+ }
+
+ /// <summary>
+ /// Divides the first vector by the second.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The vector resulting from the division.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 operator /(Vector2 left, Vector2 right)
+ {
+ return new Vector2(left.X / right.X, left.Y / right.Y);
+ }
+
+ /// <summary>
+ /// Divides the vector by the given scalar.
+ /// </summary>
+ /// <param name="value1">The source vector.</param>
+ /// <param name="value2">The scalar value.</param>
+ /// <returns>The result of the division.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 operator /(Vector2 value1, float value2)
+ {
+ float invDiv = 1.0f / value2;
+ return new Vector2(
+ value1.X * invDiv,
+ value1.Y * invDiv);
+ }
+
+ /// <summary>
+ /// Negates a given vector.
+ /// </summary>
+ /// <param name="value">The source vector.</param>
+ /// <returns>The negated vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector2 operator -(Vector2 value)
+ {
+ return Zero - value;
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the two given vectors are equal.
+ /// </summary>
+ /// <param name="left">The first vector to compare.</param>
+ /// <param name="right">The second vector to compare.</param>
+ /// <returns>True if the vectors are equal; False otherwise.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static bool operator ==(Vector2 left, Vector2 right)
+ {
+ return left.Equals(right);
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the two given vectors are not equal.
+ /// </summary>
+ /// <param name="left">The first vector to compare.</param>
+ /// <param name="right">The second vector to compare.</param>
+ /// <returns>True if the vectors are not equal; False if they are equal.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static bool operator !=(Vector2 left, Vector2 right)
+ {
+ return !(left == right);
+ }
+ #endregion Public Static Operators
+ }
+}
diff --git a/mcs/class/referencesource/System.Numerics/System/Numerics/Vector3.cs b/mcs/class/referencesource/System.Numerics/System/Numerics/Vector3.cs
new file mode 100644
index 00000000000..e6a5b067e74
--- /dev/null
+++ b/mcs/class/referencesource/System.Numerics/System/Numerics/Vector3.cs
@@ -0,0 +1,471 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System.Globalization;
+using System.Runtime.CompilerServices;
+using System.Text;
+
+namespace System.Numerics
+{
+ /// <summary>
+ /// A structure encapsulating three single precision floating point values and provides hardware accelerated methods.
+ /// </summary>
+ public partial struct Vector3 : IEquatable<Vector3>, IFormattable
+ {
+ #region Public Static Properties
+ /// <summary>
+ /// Returns the vector (0,0,0).
+ /// </summary>
+ public static Vector3 Zero { get { return new Vector3(); } }
+ /// <summary>
+ /// Returns the vector (1,1,1).
+ /// </summary>
+ public static Vector3 One { get { return new Vector3(1.0f, 1.0f, 1.0f); } }
+ /// <summary>
+ /// Returns the vector (1,0,0).
+ /// </summary>
+ public static Vector3 UnitX { get { return new Vector3(1.0f, 0.0f, 0.0f); } }
+ /// <summary>
+ /// Returns the vector (0,1,0).
+ /// </summary>
+ public static Vector3 UnitY { get { return new Vector3(0.0f, 1.0f, 0.0f); } }
+ /// <summary>
+ /// Returns the vector (0,0,1).
+ /// </summary>
+ public static Vector3 UnitZ { get { return new Vector3(0.0f, 0.0f, 1.0f); } }
+ #endregion Public Static Properties
+
+ #region Public Instance Methods
+
+ /// <summary>
+ /// Returns the hash code for this instance.
+ /// </summary>
+ /// <returns>The hash code.</returns>
+ public override int GetHashCode()
+ {
+ int hash = this.X.GetHashCode();
+ hash = HashCodeHelper.CombineHashCodes(hash, this.Y.GetHashCode());
+ hash = HashCodeHelper.CombineHashCodes(hash, this.Z.GetHashCode());
+ return hash;
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the given Object is equal to this Vector3 instance.
+ /// </summary>
+ /// <param name="obj">The Object to compare against.</param>
+ /// <returns>True if the Object is equal to this Vector3; False otherwise.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public override bool Equals(object obj)
+ {
+ if (!(obj is Vector3))
+ return false;
+ return Equals((Vector3)obj);
+ }
+
+ /// <summary>
+ /// Returns a String representing this Vector3 instance.
+ /// </summary>
+ /// <returns>The string representation.</returns>
+ public override string ToString()
+ {
+ return ToString("G", CultureInfo.CurrentCulture);
+ }
+
+ /// <summary>
+ /// Returns a String representing this Vector3 instance, using the specified format to format individual elements.
+ /// </summary>
+ /// <param name="format">The format of individual elements.</param>
+ /// <returns>The string representation.</returns>
+ public string ToString(string format)
+ {
+ return ToString(format, CultureInfo.CurrentCulture);
+ }
+
+ /// <summary>
+ /// Returns a String representing this Vector3 instance, using the specified format to format individual elements
+ /// and the given IFormatProvider.
+ /// </summary>
+ /// <param name="format">The format of individual elements.</param>
+ /// <param name="formatProvider">The format provider to use when formatting elements.</param>
+ /// <returns>The string representation.</returns>
+ public string ToString(string format, IFormatProvider formatProvider)
+ {
+ StringBuilder sb = new StringBuilder();
+ string separator = NumberFormatInfo.GetInstance(formatProvider).NumberGroupSeparator;
+ sb.Append('<');
+ sb.Append(((IFormattable)this.X).ToString(format, formatProvider));
+ sb.Append(separator);
+ sb.Append(' ');
+ sb.Append(((IFormattable)this.Y).ToString(format, formatProvider));
+ sb.Append(separator);
+ sb.Append(' ');
+ sb.Append(((IFormattable)this.Z).ToString(format, formatProvider));
+ sb.Append('>');
+ return sb.ToString();
+ }
+
+ /// <summary>
+ /// Returns the length of the vector.
+ /// </summary>
+ /// <returns>The vector's length.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public float Length()
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ float ls = Vector3.Dot(this, this);
+ return (float)System.Math.Sqrt(ls);
+ }
+ else
+ {
+ float ls = X * X + Y * Y + Z * Z;
+ return (float)System.Math.Sqrt(ls);
+ }
+ }
+
+ /// <summary>
+ /// Returns the length of the vector squared. This operation is cheaper than Length().
+ /// </summary>
+ /// <returns>The vector's length squared.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public float LengthSquared()
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ return Vector3.Dot(this, this);
+ }
+ else
+ {
+ return X * X + Y * Y + Z * Z;
+ }
+ }
+ #endregion Public Instance Methods
+
+ #region Public Static Methods
+ /// <summary>
+ /// Returns the Euclidean distance between the two given points.
+ /// </summary>
+ /// <param name="value1">The first point.</param>
+ /// <param name="value2">The second point.</param>
+ /// <returns>The distance.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static float Distance(Vector3 value1, Vector3 value2)
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ Vector3 difference = value1 - value2;
+ float ls = Vector3.Dot(difference, difference);
+ return (float)System.Math.Sqrt(ls);
+ }
+ else
+ {
+ float dx = value1.X - value2.X;
+ float dy = value1.Y - value2.Y;
+ float dz = value1.Z - value2.Z;
+
+ float ls = dx * dx + dy * dy + dz * dz;
+
+ return (float)System.Math.Sqrt((double)ls);
+ }
+ }
+
+ /// <summary>
+ /// Returns the Euclidean distance squared between the two given points.
+ /// </summary>
+ /// <param name="value1">The first point.</param>
+ /// <param name="value2">The second point.</param>
+ /// <returns>The distance squared.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static float DistanceSquared(Vector3 value1, Vector3 value2)
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ Vector3 difference = value1 - value2;
+ return Vector3.Dot(difference, difference);
+ }
+ else
+ {
+ float dx = value1.X - value2.X;
+ float dy = value1.Y - value2.Y;
+ float dz = value1.Z - value2.Z;
+
+ return dx * dx + dy * dy + dz * dz;
+ }
+ }
+
+ /// <summary>
+ /// Returns a vector with the same direction as the given vector, but with a length of 1.
+ /// </summary>
+ /// <param name="value">The vector to normalize.</param>
+ /// <returns>The normalized vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Normalize(Vector3 value)
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ float length = value.Length();
+ return value / length;
+ }
+ else
+ {
+ float ls = value.X * value.X + value.Y * value.Y + value.Z * value.Z;
+ float length = (float)System.Math.Sqrt(ls);
+ return new Vector3(value.X / length, value.Y / length, value.Z / length);
+ }
+ }
+
+ /// <summary>
+ /// Computes the cross product of two vectors.
+ /// </summary>
+ /// <param name="vector1">The first vector.</param>
+ /// <param name="vector2">The second vector.</param>
+ /// <returns>The cross product.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Cross(Vector3 vector1, Vector3 vector2)
+ {
+ return new Vector3(
+ vector1.Y * vector2.Z - vector1.Z * vector2.Y,
+ vector1.Z * vector2.X - vector1.X * vector2.Z,
+ vector1.X * vector2.Y - vector1.Y * vector2.X);
+ }
+
+ /// <summary>
+ /// Returns the reflection of a vector off a surface that has the specified normal.
+ /// </summary>
+ /// <param name="vector">The source vector.</param>
+ /// <param name="normal">The normal of the surface being reflected off.</param>
+ /// <returns>The reflected vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Reflect(Vector3 vector, Vector3 normal)
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ float dot = Vector3.Dot(vector, normal);
+ Vector3 temp = normal * dot * 2f;
+ return vector - temp;
+ }
+ else
+ {
+ float dot = vector.X * normal.X + vector.Y * normal.Y + vector.Z * normal.Z;
+ float tempX = normal.X * dot * 2f;
+ float tempY = normal.Y * dot * 2f;
+ float tempZ = normal.Z * dot * 2f;
+ return new Vector3(vector.X - tempX, vector.Y - tempY, vector.Z - tempZ);
+ }
+ }
+
+ /// <summary>
+ /// Restricts a vector between a min and max value.
+ /// </summary>
+ /// <param name="value1">The source vector.</param>
+ /// <param name="min">The minimum value.</param>
+ /// <param name="max">The maximum value.</param>
+ /// <returns>The restricted vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Clamp(Vector3 value1, Vector3 min, Vector3 max)
+ {
+ // This compare order is very important!!!
+ // We must follow HLSL behavior in the case user specified min value is bigger than max value.
+
+ float x = value1.X;
+ x = (x > max.X) ? max.X : x;
+ x = (x < min.X) ? min.X : x;
+
+ float y = value1.Y;
+ y = (y > max.Y) ? max.Y : y;
+ y = (y < min.Y) ? min.Y : y;
+
+ float z = value1.Z;
+ z = (z > max.Z) ? max.Z : z;
+ z = (z < min.Z) ? min.Z : z;
+
+ return new Vector3(x, y, z);
+ }
+
+ /// <summary>
+ /// Linearly interpolates between two vectors based on the given weighting.
+ /// </summary>
+ /// <param name="value1">The first source vector.</param>
+ /// <param name="value2">The second source vector.</param>
+ /// <param name="amount">Value between 0 and 1 indicating the weight of the second source vector.</param>
+ /// <returns>The interpolated vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Lerp(Vector3 value1, Vector3 value2, float amount)
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ Vector3 firstInfluence = value1 * (1f - amount);
+ Vector3 secondInfluence = value2 * amount;
+ return firstInfluence + secondInfluence;
+ }
+ else
+ {
+ return new Vector3(
+ value1.X + (value2.X - value1.X) * amount,
+ value1.Y + (value2.Y - value1.Y) * amount,
+ value1.Z + (value2.Z - value1.Z) * amount);
+ }
+ }
+
+ /// <summary>
+ /// Transforms a vector by the given matrix.
+ /// </summary>
+ /// <param name="position">The source vector.</param>
+ /// <param name="matrix">The transformation matrix.</param>
+ /// <returns>The transformed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Transform(Vector3 position, Matrix4x4 matrix)
+ {
+ return new Vector3(
+ position.X * matrix.M11 + position.Y * matrix.M21 + position.Z * matrix.M31 + matrix.M41,
+ position.X * matrix.M12 + position.Y * matrix.M22 + position.Z * matrix.M32 + matrix.M42,
+ position.X * matrix.M13 + position.Y * matrix.M23 + position.Z * matrix.M33 + matrix.M43);
+ }
+
+ /// <summary>
+ /// Transforms a vector normal by the given matrix.
+ /// </summary>
+ /// <param name="normal">The source vector.</param>
+ /// <param name="matrix">The transformation matrix.</param>
+ /// <returns>The transformed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 TransformNormal(Vector3 normal, Matrix4x4 matrix)
+ {
+ return new Vector3(
+ normal.X * matrix.M11 + normal.Y * matrix.M21 + normal.Z * matrix.M31,
+ normal.X * matrix.M12 + normal.Y * matrix.M22 + normal.Z * matrix.M32,
+ normal.X * matrix.M13 + normal.Y * matrix.M23 + normal.Z * matrix.M33);
+ }
+
+ /// <summary>
+ /// Transforms a vector by the given Quaternion rotation value.
+ /// </summary>
+ /// <param name="value">The source vector to be rotated.</param>
+ /// <param name="rotation">The rotation to apply.</param>
+ /// <returns>The transformed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Transform(Vector3 value, Quaternion rotation)
+ {
+ float x2 = rotation.X + rotation.X;
+ float y2 = rotation.Y + rotation.Y;
+ float z2 = rotation.Z + rotation.Z;
+
+ float wx2 = rotation.W * x2;
+ float wy2 = rotation.W * y2;
+ float wz2 = rotation.W * z2;
+ float xx2 = rotation.X * x2;
+ float xy2 = rotation.X * y2;
+ float xz2 = rotation.X * z2;
+ float yy2 = rotation.Y * y2;
+ float yz2 = rotation.Y * z2;
+ float zz2 = rotation.Z * z2;
+
+ return new Vector3(
+ value.X * (1.0f - yy2 - zz2) + value.Y * (xy2 - wz2) + value.Z * (xz2 + wy2),
+ value.X * (xy2 + wz2) + value.Y * (1.0f - xx2 - zz2) + value.Z * (yz2 - wx2),
+ value.X * (xz2 - wy2) + value.Y * (yz2 + wx2) + value.Z * (1.0f - xx2 - yy2));
+ }
+ #endregion Public Static Methods
+
+ #region Public operator methods
+
+ // All these methods should be inlined as they are implemented
+ // over JIT intrinsics
+
+ /// <summary>
+ /// Adds two vectors together.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The summed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Add(Vector3 left, Vector3 right)
+ {
+ return left + right;
+ }
+
+ /// <summary>
+ /// Subtracts the second vector from the first.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The difference vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Subtract(Vector3 left, Vector3 right)
+ {
+ return left - right;
+ }
+
+ /// <summary>
+ /// Multiplies two vectors together.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The product vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Multiply(Vector3 left, Vector3 right)
+ {
+ return left * right;
+ }
+
+ /// <summary>
+ /// Multiplies a vector by the given scalar.
+ /// </summary>
+ /// <param name="left">The source vector.</param>
+ /// <param name="right">The scalar value.</param>
+ /// <returns>The scaled vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Multiply(Vector3 left, Single right)
+ {
+ return left * right;
+ }
+
+ /// <summary>
+ /// Multiplies a vector by the given scalar.
+ /// </summary>
+ /// <param name="left">The scalar value.</param>
+ /// <param name="right">The source vector.</param>
+ /// <returns>The scaled vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Multiply(Single left, Vector3 right)
+ {
+ return left * right;
+ }
+
+ /// <summary>
+ /// Divides the first vector by the second.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The vector resulting from the division.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Divide(Vector3 left, Vector3 right)
+ {
+ return left / right;
+ }
+
+ /// <summary>
+ /// Divides the vector by the given scalar.
+ /// </summary>
+ /// <param name="left">The source vector.</param>
+ /// <param name="divisor">The scalar value.</param>
+ /// <returns>The result of the division.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Divide(Vector3 left, Single divisor)
+ {
+ return left / divisor;
+ }
+
+ /// <summary>
+ /// Negates a given vector.
+ /// </summary>
+ /// <param name="value">The source vector.</param>
+ /// <returns>The negated vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Negate(Vector3 value)
+ {
+ return -value;
+ }
+ #endregion Public operator methods
+ }
+}
diff --git a/mcs/class/referencesource/System.Numerics/System/Numerics/Vector3_Intrinsics.cs b/mcs/class/referencesource/System.Numerics/System/Numerics/Vector3_Intrinsics.cs
new file mode 100644
index 00000000000..925fcc9f68b
--- /dev/null
+++ b/mcs/class/referencesource/System.Numerics/System/Numerics/Vector3_Intrinsics.cs
@@ -0,0 +1,315 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System.Runtime.CompilerServices;
+
+namespace System.Numerics
+{
+ // This file contains the definitions for all of the JIT intrinsic methods and properties that are recognized by the current x64 JIT compiler.
+ // The implementation defined here is used in any circumstance where the JIT fails to recognize these members as intrinsic.
+ // The JIT recognizes these methods and properties by name and signature: if either is changed, the JIT will no longer recognize the member.
+ // Some methods declared here are not strictly intrinsic, but delegate to an intrinsic method. For example, only one overload of CopyTo()
+ // is actually recognized by the JIT, but both are here for simplicity.
+
+ public partial struct Vector3
+ {
+ /// <summary>
+ /// The X component of the vector.
+ /// </summary>
+ public Single X;
+ /// <summary>
+ /// The Y component of the vector.
+ /// </summary>
+ public Single Y;
+ /// <summary>
+ /// The Z component of the vector.
+ /// </summary>
+ public Single Z;
+
+ #region Constructors
+ /// <summary>
+ /// Constructs a vector whose elements are all the single specified value.
+ /// </summary>
+ /// <param name="value">The element to fill the vector with.</param>
+ [JitIntrinsic]
+ public Vector3(Single value) : this(value, value, value) { }
+
+ /// <summary>
+ /// Constructs a Vector3 from the given Vector2 and a third value.
+ /// </summary>
+ /// <param name="value">The Vector to extract X and Y components from.</param>
+ /// <param name="z">The Z component.</param>
+ public Vector3(Vector2 value, float z) : this(value.X, value.Y, z) { }
+
+ /// <summary>
+ /// Constructs a vector with the given individual elements.
+ /// </summary>
+ /// <param name="x">The X component.</param>
+ /// <param name="y">The Y component.</param>
+ /// <param name="z">The Z component.</param>
+ [JitIntrinsic]
+ public Vector3(Single x, Single y, Single z)
+ {
+ X = x;
+ Y = y;
+ Z = z;
+ }
+ #endregion Constructors
+
+ #region Public Instance Methods
+ /// <summary>
+ /// Copies the contents of the vector into the given array.
+ /// </summary>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CopyTo(Single[] array)
+ {
+ CopyTo(array, 0);
+ }
+
+ /// <summary>
+ /// Copies the contents of the vector into the given array, starting from index.
+ /// </summary>
+ /// <exception cref="ArgumentNullException">If array is null.</exception>
+ /// <exception cref="RankException">If array is multidimensional.</exception>
+ /// <exception cref="ArgumentOutOfRangeException">If index is greater than end of the array or index is less than zero.</exception>
+ /// <exception cref="ArgumentException">If number of elements in source vector is greater than those available in destination array.</exception>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CopyTo(Single[] array, int index)
+ {
+ if (array == null)
+ throw new ArgumentNullException("values");
+ if (index < 0 || index >= array.Length)
+ throw new ArgumentOutOfRangeException(SR.GetString("Arg_ArgumentOutOfRangeException", index));
+ if ((array.Length - index) < 3)
+ throw new ArgumentException(SR.GetString("Arg_ElementsInSourceIsGreaterThanDestination", index));
+ array[index] = X;
+ array[index + 1] = Y;
+ array[index + 2] = Z;
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the given Vector3 is equal to this Vector3 instance.
+ /// </summary>
+ /// <param name="other">The Vector3 to compare this instance to.</param>
+ /// <returns>True if the other Vector3 is equal to this instance; False otherwise.</returns>
+ [JitIntrinsic]
+ public bool Equals(Vector3 other)
+ {
+ return X == other.X &&
+ Y == other.Y &&
+ Z == other.Z;
+ }
+ #endregion Public Instance Methods
+
+ #region Public Static Methods
+ /// <summary>
+ /// Returns the dot product of two vectors.
+ /// </summary>
+ /// <param name="vector1">The first vector.</param>
+ /// <param name="vector2">The second vector.</param>
+ /// <returns>The dot product.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static float Dot(Vector3 vector1, Vector3 vector2)
+ {
+ return vector1.X * vector2.X +
+ vector1.Y * vector2.Y +
+ vector1.Z * vector2.Z;
+ }
+
+ /// <summary>
+ /// Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors.
+ /// </summary>
+ /// <param name="value1">The first source vector.</param>
+ /// <param name="value2">The second source vector.</param>
+ /// <returns>The minimized vector.</returns>
+ [JitIntrinsic]
+ public static Vector3 Min(Vector3 value1, Vector3 value2)
+ {
+ return new Vector3(
+ (value1.X < value2.X) ? value1.X : value2.X,
+ (value1.Y < value2.Y) ? value1.Y : value2.Y,
+ (value1.Z < value2.Z) ? value1.Z : value2.Z);
+ }
+
+ /// <summary>
+ /// Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors.
+ /// </summary>
+ /// <param name="value1">The first source vector.</param>
+ /// <param name="value2">The second source vector.</param>
+ /// <returns>The maximized vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Max(Vector3 value1, Vector3 value2)
+ {
+ return new Vector3(
+ (value1.X > value2.X) ? value1.X : value2.X,
+ (value1.Y > value2.Y) ? value1.Y : value2.Y,
+ (value1.Z > value2.Z) ? value1.Z : value2.Z);
+ }
+
+ /// <summary>
+ /// Returns a vector whose elements are the absolute values of each of the source vector's elements.
+ /// </summary>
+ /// <param name="value">The source vector.</param>
+ /// <returns>The absolute value vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 Abs(Vector3 value)
+ {
+ return new Vector3(Math.Abs(value.X), Math.Abs(value.Y), Math.Abs(value.Z));
+ }
+
+ /// <summary>
+ /// Returns a vector whose elements are the square root of each of the source vector's elements.
+ /// </summary>
+ /// <param name="value">The source vector.</param>
+ /// <returns>The square root vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 SquareRoot(Vector3 value)
+ {
+ return new Vector3((Single)Math.Sqrt(value.X), (Single)Math.Sqrt(value.Y), (Single)Math.Sqrt(value.Z));
+ }
+ #endregion Public Static Methods
+
+ #region Public Static Operators
+ /// <summary>
+ /// Adds two vectors together.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The summed vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 operator +(Vector3 left, Vector3 right)
+ {
+ return new Vector3(left.X + right.X, left.Y + right.Y, left.Z + right.Z);
+ }
+
+ /// <summary>
+ /// Subtracts the second vector from the first.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The difference vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 operator -(Vector3 left, Vector3 right)
+ {
+ return new Vector3(left.X - right.X, left.Y - right.Y, left.Z - right.Z);
+ }
+
+ /// <summary>
+ /// Multiplies two vectors together.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The product vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 operator *(Vector3 left, Vector3 right)
+ {
+ return new Vector3(left.X * right.X, left.Y * right.Y, left.Z * right.Z);
+ }
+
+ /// <summary>
+ /// Multiplies a vector by the given scalar.
+ /// </summary>
+ /// <param name="left">The source vector.</param>
+ /// <param name="right">The scalar value.</param>
+ /// <returns>The scaled vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 operator *(Vector3 left, Single right)
+ {
+ return left * new Vector3(right);
+ }
+
+ /// <summary>
+ /// Multiplies a vector by the given scalar.
+ /// </summary>
+ /// <param name="left">The scalar value.</param>
+ /// <param name="right">The source vector.</param>
+ /// <returns>The scaled vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 operator *(Single left, Vector3 right)
+ {
+ return new Vector3(left) * right;
+ }
+
+ /// <summary>
+ /// Divides the first vector by the second.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The vector resulting from the division.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 operator /(Vector3 left, Vector3 right)
+ {
+ return new Vector3(left.X / right.X, left.Y / right.Y, left.Z / right.Z);
+ }
+
+ /// <summary>
+ /// Divides the vector by the given scalar.
+ /// </summary>
+ /// <param name="value1">The source vector.</param>
+ /// <param name="value2">The scalar value.</param>
+ /// <returns>The result of the division.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 operator /(Vector3 value1, float value2)
+ {
+ float invDiv = 1.0f / value2;
+
+ return new Vector3(
+ value1.X * invDiv,
+ value1.Y * invDiv,
+ value1.Z * invDiv);
+ }
+
+ /// <summary>
+ /// Negates a given vector.
+ /// </summary>
+ /// <param name="value">The source vector.</param>
+ /// <returns>The negated vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector3 operator -(Vector3 value)
+ {
+ return Zero - value;
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the two given vectors are equal.
+ /// </summary>
+ /// <param name="left">The first vector to compare.</param>
+ /// <param name="right">The second vector to compare.</param>
+ /// <returns>True if the vectors are equal; False otherwise.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static bool operator ==(Vector3 left, Vector3 right)
+ {
+ return (left.X == right.X &&
+ left.Y == right.Y &&
+ left.Z == right.Z);
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the two given vectors are not equal.
+ /// </summary>
+ /// <param name="left">The first vector to compare.</param>
+ /// <param name="right">The second vector to compare.</param>
+ /// <returns>True if the vectors are not equal; False if they are equal.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static bool operator !=(Vector3 left, Vector3 right)
+ {
+ return (left.X != right.X ||
+ left.Y != right.Y ||
+ left.Z != right.Z);
+ }
+ #endregion Public Static Operators
+ }
+}
diff --git a/mcs/class/referencesource/System.Numerics/System/Numerics/Vector4.cs b/mcs/class/referencesource/System.Numerics/System/Numerics/Vector4.cs
new file mode 100644
index 00000000000..a2893b3bc22
--- /dev/null
+++ b/mcs/class/referencesource/System.Numerics/System/Numerics/Vector4.cs
@@ -0,0 +1,520 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System.Globalization;
+using System.Runtime.CompilerServices;
+using System.Text;
+
+namespace System.Numerics
+{
+ /// <summary>
+ /// A structure encapsulating four single precision floating point values and provides hardware accelerated methods.
+ /// </summary>
+ public partial struct Vector4 : IEquatable<Vector4>, IFormattable
+ {
+ #region Public Static Properties
+ /// <summary>
+ /// Returns the vector (0,0,0,0).
+ /// </summary>
+ public static Vector4 Zero { get { return new Vector4(); } }
+ /// <summary>
+ /// Returns the vector (1,1,1,1).
+ /// </summary>
+ public static Vector4 One { get { return new Vector4(1.0f, 1.0f, 1.0f, 1.0f); } }
+ /// <summary>
+ /// Returns the vector (1,0,0,0).
+ /// </summary>
+ public static Vector4 UnitX { get { return new Vector4(1.0f, 0.0f, 0.0f, 0.0f); } }
+ /// <summary>
+ /// Returns the vector (0,1,0,0).
+ /// </summary>
+ public static Vector4 UnitY { get { return new Vector4(0.0f, 1.0f, 0.0f, 0.0f); } }
+ /// <summary>
+ /// Returns the vector (0,0,1,0).
+ /// </summary>
+ public static Vector4 UnitZ { get { return new Vector4(0.0f, 0.0f, 1.0f, 0.0f); } }
+ /// <summary>
+ /// Returns the vector (0,0,0,1).
+ /// </summary>
+ public static Vector4 UnitW { get { return new Vector4(0.0f, 0.0f, 0.0f, 1.0f); } }
+ #endregion Public Static Properties
+
+ #region Public instance methods
+ /// <summary>
+ /// Returns the hash code for this instance.
+ /// </summary>
+ /// <returns>The hash code.</returns>
+ public override int GetHashCode()
+ {
+ int hash = this.X.GetHashCode();
+ hash = HashCodeHelper.CombineHashCodes(hash, this.Y.GetHashCode());
+ hash = HashCodeHelper.CombineHashCodes(hash, this.Z.GetHashCode());
+ hash = HashCodeHelper.CombineHashCodes(hash, this.W.GetHashCode());
+ return hash;
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the given Object is equal to this Vector4 instance.
+ /// </summary>
+ /// <param name="obj">The Object to compare against.</param>
+ /// <returns>True if the Object is equal to this Vector4; False otherwise.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public override bool Equals(object obj)
+ {
+ if (!(obj is Vector4))
+ return false;
+ return Equals((Vector4)obj);
+ }
+
+ /// <summary>
+ /// Returns a String representing this Vector4 instance.
+ /// </summary>
+ /// <returns>The string representation.</returns>
+ public override string ToString()
+ {
+ return ToString("G", CultureInfo.CurrentCulture);
+ }
+
+ /// <summary>
+ /// Returns a String representing this Vector4 instance, using the specified format to format individual elements.
+ /// </summary>
+ /// <param name="format">The format of individual elements.</param>
+ /// <returns>The string representation.</returns>
+ public string ToString(string format)
+ {
+ return ToString(format, CultureInfo.CurrentCulture);
+ }
+
+ /// <summary>
+ /// Returns a String representing this Vector4 instance, using the specified format to format individual elements
+ /// and the given IFormatProvider.
+ /// </summary>
+ /// <param name="format">The format of individual elements.</param>
+ /// <param name="formatProvider">The format provider to use when formatting elements.</param>
+ /// <returns>The string representation.</returns>
+ public string ToString(string format, IFormatProvider formatProvider)
+ {
+ StringBuilder sb = new StringBuilder();
+ string separator = NumberFormatInfo.GetInstance(formatProvider).NumberGroupSeparator;
+ sb.Append('<');
+ sb.Append(this.X.ToString(format, formatProvider));
+ sb.Append(separator);
+ sb.Append(' ');
+ sb.Append(this.Y.ToString(format, formatProvider));
+ sb.Append(separator);
+ sb.Append(' ');
+ sb.Append(this.Z.ToString(format, formatProvider));
+ sb.Append(separator);
+ sb.Append(' ');
+ sb.Append(this.W.ToString(format, formatProvider));
+ sb.Append('>');
+ return sb.ToString();
+ }
+
+ /// <summary>
+ /// Returns the length of the vector. This operation is cheaper than Length().
+ /// </summary>
+ /// <returns>The vector's length.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public float Length()
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ float ls = Vector4.Dot(this, this);
+ return (float)System.Math.Sqrt(ls);
+ }
+ else
+ {
+ float ls = X * X + Y * Y + Z * Z + W * W;
+
+ return (float)Math.Sqrt((double)ls);
+ }
+ }
+
+ /// <summary>
+ /// Returns the length of the vector squared.
+ /// </summary>
+ /// <returns>The vector's length squared.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public float LengthSquared()
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ return Vector4.Dot(this, this);
+ }
+ else
+ {
+ return X * X + Y * Y + Z * Z + W * W;
+ }
+ }
+ #endregion Public Instance Methods
+
+ #region Public Static Methods
+ /// <summary>
+ /// Returns the Euclidean distance between the two given points.
+ /// </summary>
+ /// <param name="value1">The first point.</param>
+ /// <param name="value2">The second point.</param>
+ /// <returns>The distance.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static float Distance(Vector4 value1, Vector4 value2)
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ Vector4 difference = value1 - value2;
+ float ls = Vector4.Dot(difference, difference);
+ return (float)System.Math.Sqrt(ls);
+ }
+ else
+ {
+ float dx = value1.X - value2.X;
+ float dy = value1.Y - value2.Y;
+ float dz = value1.Z - value2.Z;
+ float dw = value1.W - value2.W;
+
+ float ls = dx * dx + dy * dy + dz * dz + dw * dw;
+
+ return (float)Math.Sqrt((double)ls);
+ }
+ }
+
+ /// <summary>
+ /// Returns the Euclidean distance squared between the two given points.
+ /// </summary>
+ /// <param name="value1">The first point.</param>
+ /// <param name="value2">The second point.</param>
+ /// <returns>The distance squared.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static float DistanceSquared(Vector4 value1, Vector4 value2)
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ Vector4 difference = value1 - value2;
+ return Vector4.Dot(difference, difference);
+ }
+ else
+ {
+ float dx = value1.X - value2.X;
+ float dy = value1.Y - value2.Y;
+ float dz = value1.Z - value2.Z;
+ float dw = value1.W - value2.W;
+
+ return dx * dx + dy * dy + dz * dz + dw * dw;
+ }
+ }
+
+ /// <summary>
+ /// Returns a vector with the same direction as the given vector, but with a length of 1.
+ /// </summary>
+ /// <param name="vector">The vector to normalize.</param>
+ /// <returns>The normalized vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Normalize(Vector4 vector)
+ {
+ if (Vector.IsHardwareAccelerated)
+ {
+ float length = vector.Length();
+ return vector / length;
+ }
+ else
+ {
+ float ls = vector.X * vector.X + vector.Y * vector.Y + vector.Z * vector.Z + vector.W * vector.W;
+ float invNorm = 1.0f / (float)Math.Sqrt((double)ls);
+
+ return new Vector4(
+ vector.X * invNorm,
+ vector.Y * invNorm,
+ vector.Z * invNorm,
+ vector.W * invNorm);
+ }
+ }
+
+ /// <summary>
+ /// Restricts a vector between a min and max value.
+ /// </summary>
+ /// <param name="value1">The source vector.</param>
+ /// <param name="min">The minimum value.</param>
+ /// <param name="max">The maximum value.</param>
+ /// <returns>The restricted vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Clamp(Vector4 value1, Vector4 min, Vector4 max)
+ {
+ // This compare order is very important!!!
+ // We must follow HLSL behavior in the case user specified min value is bigger than max value.
+
+ float x = value1.X;
+ x = (x > max.X) ? max.X : x;
+ x = (x < min.X) ? min.X : x;
+
+ float y = value1.Y;
+ y = (y > max.Y) ? max.Y : y;
+ y = (y < min.Y) ? min.Y : y;
+
+ float z = value1.Z;
+ z = (z > max.Z) ? max.Z : z;
+ z = (z < min.Z) ? min.Z : z;
+
+ float w = value1.W;
+ w = (w > max.W) ? max.W : w;
+ w = (w < min.W) ? min.W : w;
+
+ return new Vector4(x, y, z, w);
+ }
+
+ /// <summary>
+ /// Linearly interpolates between two vectors based on the given weighting.
+ /// </summary>
+ /// <param name="value1">The first source vector.</param>
+ /// <param name="value2">The second source vector.</param>
+ /// <param name="amount">Value between 0 and 1 indicating the weight of the second source vector.</param>
+ /// <returns>The interpolated vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
+ {
+ return new Vector4(
+ value1.X + (value2.X - value1.X) * amount,
+ value1.Y + (value2.Y - value1.Y) * amount,
+ value1.Z + (value2.Z - value1.Z) * amount,
+ value1.W + (value2.W - value1.W) * amount);
+ }
+
+ /// <summary>
+ /// Transforms a vector by the given matrix.
+ /// </summary>
+ /// <param name="position">The source vector.</param>
+ /// <param name="matrix">The transformation matrix.</param>
+ /// <returns>The transformed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Transform(Vector2 position, Matrix4x4 matrix)
+ {
+ return new Vector4(
+ position.X * matrix.M11 + position.Y * matrix.M21 + matrix.M41,
+ position.X * matrix.M12 + position.Y * matrix.M22 + matrix.M42,
+ position.X * matrix.M13 + position.Y * matrix.M23 + matrix.M43,
+ position.X * matrix.M14 + position.Y * matrix.M24 + matrix.M44);
+ }
+
+ /// <summary>
+ /// Transforms a vector by the given matrix.
+ /// </summary>
+ /// <param name="position">The source vector.</param>
+ /// <param name="matrix">The transformation matrix.</param>
+ /// <returns>The transformed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Transform(Vector3 position, Matrix4x4 matrix)
+ {
+ return new Vector4(
+ position.X * matrix.M11 + position.Y * matrix.M21 + position.Z * matrix.M31 + matrix.M41,
+ position.X * matrix.M12 + position.Y * matrix.M22 + position.Z * matrix.M32 + matrix.M42,
+ position.X * matrix.M13 + position.Y * matrix.M23 + position.Z * matrix.M33 + matrix.M43,
+ position.X * matrix.M14 + position.Y * matrix.M24 + position.Z * matrix.M34 + matrix.M44);
+ }
+
+ /// <summary>
+ /// Transforms a vector by the given matrix.
+ /// </summary>
+ /// <param name="vector">The source vector.</param>
+ /// <param name="matrix">The transformation matrix.</param>
+ /// <returns>The transformed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Transform(Vector4 vector, Matrix4x4 matrix)
+ {
+ return new Vector4(
+ vector.X * matrix.M11 + vector.Y * matrix.M21 + vector.Z * matrix.M31 + vector.W * matrix.M41,
+ vector.X * matrix.M12 + vector.Y * matrix.M22 + vector.Z * matrix.M32 + vector.W * matrix.M42,
+ vector.X * matrix.M13 + vector.Y * matrix.M23 + vector.Z * matrix.M33 + vector.W * matrix.M43,
+ vector.X * matrix.M14 + vector.Y * matrix.M24 + vector.Z * matrix.M34 + vector.W * matrix.M44);
+ }
+
+ /// <summary>
+ /// Transforms a vector by the given Quaternion rotation value.
+ /// </summary>
+ /// <param name="value">The source vector to be rotated.</param>
+ /// <param name="rotation">The rotation to apply.</param>
+ /// <returns>The transformed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Transform(Vector2 value, Quaternion rotation)
+ {
+ float x2 = rotation.X + rotation.X;
+ float y2 = rotation.Y + rotation.Y;
+ float z2 = rotation.Z + rotation.Z;
+
+ float wx2 = rotation.W * x2;
+ float wy2 = rotation.W * y2;
+ float wz2 = rotation.W * z2;
+ float xx2 = rotation.X * x2;
+ float xy2 = rotation.X * y2;
+ float xz2 = rotation.X * z2;
+ float yy2 = rotation.Y * y2;
+ float yz2 = rotation.Y * z2;
+ float zz2 = rotation.Z * z2;
+
+ return new Vector4(
+ value.X * (1.0f - yy2 - zz2) + value.Y * (xy2 - wz2),
+ value.X * (xy2 + wz2) + value.Y * (1.0f - xx2 - zz2),
+ value.X * (xz2 - wy2) + value.Y * (yz2 + wx2),
+ 1.0f);
+ }
+
+ /// <summary>
+ /// Transforms a vector by the given Quaternion rotation value.
+ /// </summary>
+ /// <param name="value">The source vector to be rotated.</param>
+ /// <param name="rotation">The rotation to apply.</param>
+ /// <returns>The transformed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Transform(Vector3 value, Quaternion rotation)
+ {
+ float x2 = rotation.X + rotation.X;
+ float y2 = rotation.Y + rotation.Y;
+ float z2 = rotation.Z + rotation.Z;
+
+ float wx2 = rotation.W * x2;
+ float wy2 = rotation.W * y2;
+ float wz2 = rotation.W * z2;
+ float xx2 = rotation.X * x2;
+ float xy2 = rotation.X * y2;
+ float xz2 = rotation.X * z2;
+ float yy2 = rotation.Y * y2;
+ float yz2 = rotation.Y * z2;
+ float zz2 = rotation.Z * z2;
+
+ return new Vector4(
+ value.X * (1.0f - yy2 - zz2) + value.Y * (xy2 - wz2) + value.Z * (xz2 + wy2),
+ value.X * (xy2 + wz2) + value.Y * (1.0f - xx2 - zz2) + value.Z * (yz2 - wx2),
+ value.X * (xz2 - wy2) + value.Y * (yz2 + wx2) + value.Z * (1.0f - xx2 - yy2),
+ 1.0f);
+ }
+
+ /// <summary>
+ /// Transforms a vector by the given Quaternion rotation value.
+ /// </summary>
+ /// <param name="value">The source vector to be rotated.</param>
+ /// <param name="rotation">The rotation to apply.</param>
+ /// <returns>The transformed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Transform(Vector4 value, Quaternion rotation)
+ {
+ float x2 = rotation.X + rotation.X;
+ float y2 = rotation.Y + rotation.Y;
+ float z2 = rotation.Z + rotation.Z;
+
+ float wx2 = rotation.W * x2;
+ float wy2 = rotation.W * y2;
+ float wz2 = rotation.W * z2;
+ float xx2 = rotation.X * x2;
+ float xy2 = rotation.X * y2;
+ float xz2 = rotation.X * z2;
+ float yy2 = rotation.Y * y2;
+ float yz2 = rotation.Y * z2;
+ float zz2 = rotation.Z * z2;
+
+ return new Vector4(
+ value.X * (1.0f - yy2 - zz2) + value.Y * (xy2 - wz2) + value.Z * (xz2 + wy2),
+ value.X * (xy2 + wz2) + value.Y * (1.0f - xx2 - zz2) + value.Z * (yz2 - wx2),
+ value.X * (xz2 - wy2) + value.Y * (yz2 + wx2) + value.Z * (1.0f - xx2 - yy2),
+ value.W);
+ }
+ #endregion Public Static Methods
+
+ #region Public operator methods
+ // All these methods should be inlines as they are implemented
+ // over JIT intrinsics
+
+ /// <summary>
+ /// Adds two vectors together.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The summed vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Add(Vector4 left, Vector4 right)
+ {
+ return left + right;
+ }
+
+ /// <summary>
+ /// Subtracts the second vector from the first.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The difference vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Subtract(Vector4 left, Vector4 right)
+ {
+ return left - right;
+ }
+
+ /// <summary>
+ /// Multiplies two vectors together.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The product vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Multiply(Vector4 left, Vector4 right)
+ {
+ return left * right;
+ }
+
+ /// <summary>
+ /// Multiplies a vector by the given scalar.
+ /// </summary>
+ /// <param name="left">The source vector.</param>
+ /// <param name="right">The scalar value.</param>
+ /// <returns>The scaled vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Multiply(Vector4 left, Single right)
+ {
+ return left * new Vector4(right, right, right, right);
+ }
+
+ /// <summary>
+ /// Multiplies a vector by the given scalar.
+ /// </summary>
+ /// <param name="left">The scalar value.</param>
+ /// <param name="right">The source vector.</param>
+ /// <returns>The scaled vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Multiply(Single left, Vector4 right)
+ {
+ return new Vector4(left, left, left, left) * right;
+ }
+
+ /// <summary>
+ /// Divides the first vector by the second.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The vector resulting from the division.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Divide(Vector4 left, Vector4 right)
+ {
+ return left / right;
+ }
+
+ /// <summary>
+ /// Divides the vector by the given scalar.
+ /// </summary>
+ /// <param name="left">The source vector.</param>
+ /// <param name="divisor">The scalar value.</param>
+ /// <returns>The result of the division.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Divide(Vector4 left, Single divisor)
+ {
+ return left / divisor;
+ }
+
+ /// <summary>
+ /// Negates a given vector.
+ /// </summary>
+ /// <param name="value">The source vector.</param>
+ /// <returns>The negated vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Negate(Vector4 value)
+ {
+ return -value;
+ }
+ #endregion Public operator methods
+ }
+}
diff --git a/mcs/class/referencesource/System.Numerics/System/Numerics/Vector4_Intrinsics.cs b/mcs/class/referencesource/System.Numerics/System/Numerics/Vector4_Intrinsics.cs
new file mode 100644
index 00000000000..87c76a360ee
--- /dev/null
+++ b/mcs/class/referencesource/System.Numerics/System/Numerics/Vector4_Intrinsics.cs
@@ -0,0 +1,346 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System.Runtime.CompilerServices;
+
+namespace System.Numerics
+{
+ // This file contains the definitions for all of the JIT intrinsic methods and properties that are recognized by the current x64 JIT compiler.
+ // The implementation defined here is used in any circumstance where the JIT fails to recognize these members as intrinsic.
+ // The JIT recognizes these methods and properties by name and signature: if either is changed, the JIT will no longer recognize the member.
+ // Some methods declared here are not strictly intrinsic, but delegate to an intrinsic method. For example, only one overload of CopyTo()
+
+ public partial struct Vector4
+ {
+ /// <summary>
+ /// The X component of the vector.
+ /// </summary>
+ public Single X;
+ /// <summary>
+ /// The Y component of the vector.
+ /// </summary>
+ public Single Y;
+ /// <summary>
+ /// The Z component of the vector.
+ /// </summary>
+ public Single Z;
+ /// <summary>
+ /// The W component of the vector.
+ /// </summary>
+ public Single W;
+
+ #region Constructors
+
+ /// <summary>
+ /// Constructs a vector whose elements are all the single specified value.
+ /// </summary>
+ /// <param name="value">The element to fill the vector with.</param>
+ [JitIntrinsic]
+ public Vector4(Single value)
+ : this(value, value, value, value)
+ {
+ }
+ /// <summary>
+ /// Constructs a vector with the given individual elements.
+ /// </summary>
+ /// <param name="w">W component.</param>
+ /// <param name="x">X component.</param>
+ /// <param name="y">Y component.</param>
+ /// <param name="z">Z component.</param>
+ [JitIntrinsic]
+ public Vector4(Single x, Single y, Single z, Single w)
+ {
+ W = w;
+ X = x;
+ Y = y;
+ Z = z;
+ }
+
+ /// <summary>
+ /// Constructs a Vector4 from the given Vector2 and a Z and W component.
+ /// </summary>
+ /// <param name="value">The vector to use as the X and Y components.</param>
+ /// <param name="z">The Z component.</param>
+ /// <param name="w">The W component.</param>
+ public Vector4(Vector2 value, Single z, Single w)
+ {
+ X = value.X;
+ Y = value.Y;
+ Z = z;
+ W = w;
+ }
+
+ /// <summary>
+ /// Constructs a Vector4 from the given Vector3 and a W component.
+ /// </summary>
+ /// <param name="value">The vector to use as the X, Y, and Z components.</param>
+ /// <param name="w">The W component.</param>
+ public Vector4(Vector3 value, Single w)
+ {
+ X = value.X;
+ Y = value.Y;
+ Z = value.Z;
+ W = w;
+ }
+ #endregion Constructors
+
+ #region Public Instance Methods
+ /// <summary>
+ /// Copies the contents of the vector into the given array.
+ /// </summary>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CopyTo(Single[] array)
+ {
+ CopyTo(array, 0);
+ }
+
+ /// <summary>
+ /// Copies the contents of the vector into the given array, starting from index.
+ /// </summary>
+ /// <exception cref="ArgumentNullException">If array is null.</exception>
+ /// <exception cref="RankException">If array is multidimensional.</exception>
+ /// <exception cref="ArgumentOutOfRangeException">If index is greater than end of the array or index is less than zero.</exception>
+ /// <exception cref="ArgumentException">If number of elements in source vector is greater than those available in destination array.</exception>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public void CopyTo(Single[] array, int index)
+ {
+ if (array == null)
+ throw new ArgumentNullException("values");
+ if (index < 0 || index >= array.Length)
+ throw new ArgumentOutOfRangeException(SR.GetString("Arg_ArgumentOutOfRangeException", index));
+ if ((array.Length - index) < 4)
+ throw new ArgumentException(SR.GetString("Arg_ElementsInSourceIsGreaterThanDestination", index));
+ array[index] = X;
+ array[index + 1] = Y;
+ array[index + 2] = Z;
+ array[index + 3] = W;
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the given Vector4 is equal to this Vector4 instance.
+ /// </summary>
+ /// <param name="other">The Vector4 to compare this instance to.</param>
+ /// <returns>True if the other Vector4 is equal to this instance; False otherwise.</returns>
+ [JitIntrinsic]
+ public bool Equals(Vector4 other)
+ {
+ return this.X == other.X
+ && this.Y == other.Y
+ && this.Z == other.Z
+ && this.W == other.W;
+ }
+ #endregion Public Instance Methods
+
+ #region Public Static Methods
+ /// <summary>
+ /// Returns the dot product of two vectors.
+ /// </summary>
+ /// <param name="vector1">The first vector.</param>
+ /// <param name="vector2">The second vector.</param>
+ /// <returns>The dot product.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static float Dot(Vector4 vector1, Vector4 vector2)
+ {
+ return vector1.X * vector2.X +
+ vector1.Y * vector2.Y +
+ vector1.Z * vector2.Z +
+ vector1.W * vector2.W;
+ }
+
+ /// <summary>
+ /// Returns a vector whose elements are the minimum of each of the pairs of elements in the two source vectors.
+ /// </summary>
+ /// <param name="value1">The first source vector.</param>
+ /// <param name="value2">The second source vector.</param>
+ /// <returns>The minimized vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Min(Vector4 value1, Vector4 value2)
+ {
+ return new Vector4(
+ (value1.X < value2.X) ? value1.X : value2.X,
+ (value1.Y < value2.Y) ? value1.Y : value2.Y,
+ (value1.Z < value2.Z) ? value1.Z : value2.Z,
+ (value1.W < value2.W) ? value1.W : value2.W);
+ }
+
+ /// <summary>
+ /// Returns a vector whose elements are the maximum of each of the pairs of elements in the two source vectors.
+ /// </summary>
+ /// <param name="value1">The first source vector.</param>
+ /// <param name="value2">The second source vector.</param>
+ /// <returns>The maximized vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Max(Vector4 value1, Vector4 value2)
+ {
+ return new Vector4(
+ (value1.X > value2.X) ? value1.X : value2.X,
+ (value1.Y > value2.Y) ? value1.Y : value2.Y,
+ (value1.Z > value2.Z) ? value1.Z : value2.Z,
+ (value1.W > value2.W) ? value1.W : value2.W);
+ }
+
+ /// <summary>
+ /// Returns a vector whose elements are the absolute values of each of the source vector's elements.
+ /// </summary>
+ /// <param name="value">The source vector.</param>
+ /// <returns>The absolute value vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 Abs(Vector4 value)
+ {
+ return new Vector4(Math.Abs(value.X), Math.Abs(value.Y), Math.Abs(value.Z), Math.Abs(value.W));
+ }
+
+ /// <summary>
+ /// Returns a vector whose elements are the square root of each of the source vector's elements.
+ /// </summary>
+ /// <param name="value">The source vector.</param>
+ /// <returns>The square root vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 SquareRoot(Vector4 value)
+ {
+ return new Vector4((Single)Math.Sqrt(value.X), (Single)Math.Sqrt(value.Y), (Single)Math.Sqrt(value.Z), (Single)Math.Sqrt(value.W));
+ }
+ #endregion Public Static Methods
+
+ #region Public static operators
+ /// <summary>
+ /// Adds two vectors together.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The summed vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 operator +(Vector4 left, Vector4 right)
+ {
+ return new Vector4(left.X + right.X, left.Y + right.Y, left.Z + right.Z, left.W + right.W);
+ }
+
+ /// <summary>
+ /// Subtracts the second vector from the first.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The difference vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 operator -(Vector4 left, Vector4 right)
+ {
+ return new Vector4(left.X - right.X, left.Y - right.Y, left.Z - right.Z, left.W - right.W);
+ }
+
+ /// <summary>
+ /// Multiplies two vectors together.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The product vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 operator *(Vector4 left, Vector4 right)
+ {
+ return new Vector4(left.X * right.X, left.Y * right.Y, left.Z * right.Z, left.W * right.W);
+ }
+
+ /// <summary>
+ /// Multiplies a vector by the given scalar.
+ /// </summary>
+ /// <param name="left">The source vector.</param>
+ /// <param name="right">The scalar value.</param>
+ /// <returns>The scaled vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 operator *(Vector4 left, Single right)
+ {
+ return left * new Vector4(right);
+ }
+
+ /// <summary>
+ /// Multiplies a vector by the given scalar.
+ /// </summary>
+ /// <param name="left">The scalar value.</param>
+ /// <param name="right">The source vector.</param>
+ /// <returns>The scaled vector.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 operator *(Single left, Vector4 right)
+ {
+ return new Vector4(left) * right;
+ }
+
+ /// <summary>
+ /// Divides the first vector by the second.
+ /// </summary>
+ /// <param name="left">The first source vector.</param>
+ /// <param name="right">The second source vector.</param>
+ /// <returns>The vector resulting from the division.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 operator /(Vector4 left, Vector4 right)
+ {
+ return new Vector4(left.X / right.X, left.Y / right.Y, left.Z / right.Z, left.W / right.W);
+ }
+
+ /// <summary>
+ /// Divides the vector by the given scalar.
+ /// </summary>
+ /// <param name="value1">The source vector.</param>
+ /// <param name="value2">The scalar value.</param>
+ /// <returns>The result of the division.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 operator /(Vector4 value1, float value2)
+ {
+ float invDiv = 1.0f / value2;
+
+ return new Vector4(
+ value1.X * invDiv,
+ value1.Y * invDiv,
+ value1.Z * invDiv,
+ value1.W * invDiv);
+ }
+
+ /// <summary>
+ /// Negates a given vector.
+ /// </summary>
+ /// <param name="value">The source vector.</param>
+ /// <returns>The negated vector.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector4 operator -(Vector4 value)
+ {
+ return Zero - value;
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the two given vectors are equal.
+ /// </summary>
+ /// <param name="left">The first vector to compare.</param>
+ /// <param name="right">The second vector to compare.</param>
+ /// <returns>True if the vectors are equal; False otherwise.</returns>
+ [JitIntrinsic]
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static bool operator ==(Vector4 left, Vector4 right)
+ {
+ return left.Equals(right);
+ }
+
+ /// <summary>
+ /// Returns a boolean indicating whether the two given vectors are not equal.
+ /// </summary>
+ /// <param name="left">The first vector to compare.</param>
+ /// <param name="right">The second vector to compare.</param>
+ /// <returns>True if the vectors are not equal; False if they are equal.</returns>
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static bool operator !=(Vector4 left, Vector4 right)
+ {
+ return !(left == right);
+ }
+ #endregion Public static operators
+ }
+}
diff --git a/mcs/class/referencesource/System.Numerics/System/Numerics/Vector_Operations.cs b/mcs/class/referencesource/System.Numerics/System/Numerics/Vector_Operations.cs
new file mode 100644
index 00000000000..69215a062f2
--- /dev/null
+++ b/mcs/class/referencesource/System.Numerics/System/Numerics/Vector_Operations.cs
@@ -0,0 +1,29 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System.Runtime.CompilerServices;
+
+namespace System.Numerics
+{
+ /// <summary>
+ /// Contains various methods useful for creating, manipulating, combining, and converting generic vectors with one another.
+ /// </summary>
+ internal static class Vector
+ {
+ // Every operation must either be a JIT intrinsic or implemented over a JIT intrinsic
+ // as a thin wrapper
+ // Operations implemented over a JIT intrinsic should be inlined
+ // Methods that do not have a <T> type parameter are recognized as intrinsics
+ /// <summary>
+ /// Returns whether or not vector operations are subject to hardware acceleration through JIT intrinsic support.
+ /// </summary>
+ [JitIntrinsic]
+ public static bool IsHardwareAccelerated
+ {
+ get
+ {
+ return false;
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Runtime.Caching/System/Caching/MemoryCache.cs b/mcs/class/referencesource/System.Runtime.Caching/System/Caching/MemoryCache.cs
index f9030cc4095..5b489d93e7a 100644
--- a/mcs/class/referencesource/System.Runtime.Caching/System/Caching/MemoryCache.cs
+++ b/mcs/class/referencesource/System.Runtime.Caching/System/Caching/MemoryCache.cs
@@ -466,6 +466,9 @@ namespace System.Runtime.Caching {
}
public long Trim(int percent) {
+ if (percent > 100) {
+ percent = 100;
+ }
long trimmed = 0;
if (_disposed == 0) {
foreach (MemoryCacheStore store in _stores) {
@@ -491,7 +494,7 @@ namespace System.Runtime.Caching {
return (GetInternal(key, regionName) != null);
}
- // Dev10 907758: Breaking bug in System.RuntimeCaching.MemoryCache.AddOrGetExisting (CacheItem, CacheItemPolicy)
+ // Dev10 907758: Breaking
public override bool Add(CacheItem item, CacheItemPolicy policy) {
CacheItem existingEntry = AddOrGetExisting(item, policy);
return (existingEntry == null || existingEntry.Value == null);
diff --git a/mcs/class/referencesource/System.Runtime.Caching/System/Caching/MemoryCacheEntry.cs b/mcs/class/referencesource/System.Runtime.Caching/System/Caching/MemoryCacheEntry.cs
index 931bcee8885..de32f8fcd86 100644
--- a/mcs/class/referencesource/System.Runtime.Caching/System/Caching/MemoryCacheEntry.cs
+++ b/mcs/class/referencesource/System.Runtime.Caching/System/Caching/MemoryCacheEntry.cs
@@ -230,7 +230,7 @@ namespace System.Runtime.Caching {
internal void RemoveDependent(MemoryCacheEntryChangeMonitor dependent) {
lock (this) {
- if (_fields._dependents != null) {
+ if (_fields != null && _fields._dependents != null) {
_fields._dependents.Remove(dependent);
}
}
diff --git a/mcs/class/referencesource/System.Runtime.Caching/System/Caching/MemoryCacheStore.cs b/mcs/class/referencesource/System.Runtime.Caching/System/Caching/MemoryCacheStore.cs
index 0ff86ea9ced..45128a44bc7 100644
--- a/mcs/class/referencesource/System.Runtime.Caching/System/Caching/MemoryCacheStore.cs
+++ b/mcs/class/referencesource/System.Runtime.Caching/System/Caching/MemoryCacheStore.cs
@@ -14,7 +14,6 @@ namespace System.Runtime.Caching {
internal sealed class MemoryCacheStore : IDisposable {
const int INSERT_BLOCK_WAIT = 10000;
const int MAX_COUNT = Int32.MaxValue / 2;
- const int MIN_COUNT = 10;
private Hashtable _entries;
private Object _entriesLock;
@@ -140,7 +139,7 @@ namespace System.Runtime.Caching {
if (_disposed == 0) {
existingEntry = _entries[key] as MemoryCacheEntry;
// has it expired?
- if (existingEntry != null && entry.UtcAbsExp <= DateTime.UtcNow) {
+ if (existingEntry != null && existingEntry.UtcAbsExp <= DateTime.UtcNow) {
toBeReleasedEntry = existingEntry;
toBeReleasedEntry.State = EntryState.RemovingFromCache;
existingEntry = null;
@@ -300,21 +299,18 @@ namespace System.Runtime.Caching {
}
internal long TrimInternal(int percent) {
+ Dbg.Assert(percent <= 100, "percent <= 100");
+
int count = Count;
int toTrim = 0;
// do we need to drop a percentage of entries?
if (percent > 0) {
- toTrim = (int)(((long)count * (long)percent) / 100L);
+ toTrim = (int)Math.Ceiling(((long)count * (long)percent) / 100D);
// would this leave us above MAX_COUNT?
int minTrim = count - MAX_COUNT;
if (toTrim < minTrim) {
toTrim = minTrim;
}
- // would this put us below MIN_COUNT?
- int maxTrim = count - MIN_COUNT;
- if (toTrim > maxTrim) {
- toTrim = maxTrim;
- }
}
// do we need to trim?
if (toTrim <= 0 || _disposed == 1) {
diff --git a/mcs/class/referencesource/System.Runtime.Caching/System/Caching/PerfCounters.cs b/mcs/class/referencesource/System.Runtime.Caching/System/Caching/PerfCounters.cs
index 1b481f800f7..44605faaf37 100644
--- a/mcs/class/referencesource/System.Runtime.Caching/System/Caching/PerfCounters.cs
+++ b/mcs/class/referencesource/System.Runtime.Caching/System/Caching/PerfCounters.cs
@@ -137,7 +137,7 @@ namespace System.Runtime.Caching {
for (int i = 0; i < NUM_COUNTERS; i++) {
PerformanceCounter counter = counters[i];
if (counter != null) {
- // decrement counter by its current value, to zero it out for this instance of the named cache (see Dev10 Bug 680819)
+ // decrement counter by its current value, to zero it out for this instance of the named cache (see Dev10
long value = Interlocked.Exchange(ref _counterValues[i], 0);
if (value != 0) {
counter.IncrementBy(-value);
diff --git a/mcs/class/referencesource/System.Runtime.DurableInstancing/AssemblyInfo.cs b/mcs/class/referencesource/System.Runtime.DurableInstancing/AssemblyInfo.cs
index 03a00d90c10..028caa7645a 100644
--- a/mcs/class/referencesource/System.Runtime.DurableInstancing/AssemblyInfo.cs
+++ b/mcs/class/referencesource/System.Runtime.DurableInstancing/AssemblyInfo.cs
@@ -33,7 +33,7 @@ using System.Security.Permissions;
[assembly: InternalsVisibleTo("System.ServiceModel.Activation, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
[assembly: InternalsVisibleTo("System.ServiceModel.Routing, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
-//
+// TODO, 62799, fix this to be System.Runtime.Friend
[assembly: InternalsVisibleTo("CDF.CIT.Scenarios.Common, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
[assembly: InternalsVisibleTo("Microsoft.CDF.Test.Persistence, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
// Need to provide InternalsVisibleTo System.Runtime.Serialization to allow serialization of internal DataContracts/DataMembers in partial trust.
diff --git a/mcs/class/referencesource/System.Runtime.DurableInstancing/System/Runtime/DurableInstancing/InstanceHandle.cs b/mcs/class/referencesource/System.Runtime.DurableInstancing/System/Runtime/DurableInstancing/InstanceHandle.cs
index 95764cc2bfc..fc6f606c097 100644
--- a/mcs/class/referencesource/System.Runtime.DurableInstancing/System/Runtime/DurableInstancing/InstanceHandle.cs
+++ b/mcs/class/referencesource/System.Runtime.DurableInstancing/System/Runtime/DurableInstancing/InstanceHandle.cs
@@ -89,7 +89,7 @@ namespace System.Runtime.DurableInstancing
{
Fx.Assert(value != Guid.Empty, "Cannot set an empty Id.");
Fx.Assert(this.id == Guid.Empty, "Cannot set Id more than once.");
- Fx.Assert(!this.idIsSet, "idIsSet out of [....] with id.");
+ Fx.Assert(!this.idIsSet, "idIsSet out of sync with id.");
this.id = value;
diff --git a/mcs/class/referencesource/System.Runtime.DurableInstancing/System/Runtime/DurableInstancing/InstancePersistenceContext.cs b/mcs/class/referencesource/System.Runtime.DurableInstancing/System/Runtime/DurableInstancing/InstancePersistenceContext.cs
index f5e657cf682..10f94668259 100644
--- a/mcs/class/referencesource/System.Runtime.DurableInstancing/System/Runtime/DurableInstancing/InstancePersistenceContext.cs
+++ b/mcs/class/referencesource/System.Runtime.DurableInstancing/System/Runtime/DurableInstancing/InstancePersistenceContext.cs
@@ -1596,7 +1596,7 @@ namespace System.Runtime.DurableInstancing
}
finally
{
- Fx.AssertAndThrowFatal(this.context.Active, "Out-of-[....] between InstanceExecutionContext and ExecutionAsyncResult.");
+ Fx.AssertAndThrowFatal(this.context.Active, "Out-of-sync between InstanceExecutionContext and ExecutionAsyncResult.");
this.context.LastAsyncResult = null;
this.context.RootAsyncResult = null;
diff --git a/mcs/class/referencesource/System.Runtime.DurableInstancing/System/Runtime/ICancelable.cs b/mcs/class/referencesource/System.Runtime.DurableInstancing/System/Runtime/ICancelable.cs
index 09ba59b65ba..e9a543a6ad3 100644
--- a/mcs/class/referencesource/System.Runtime.DurableInstancing/System/Runtime/ICancelable.cs
+++ b/mcs/class/referencesource/System.Runtime.DurableInstancing/System/Runtime/ICancelable.cs
@@ -10,4 +10,4 @@ namespace System.Runtime
{
void Cancel();
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/ClassDataContract.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/ClassDataContract.cs
index 6e80e107162..9ea613ebc3a 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/ClassDataContract.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/ClassDataContract.cs
@@ -820,7 +820,7 @@ namespace System.Runtime.Serialization
if (BaseContract != null)
{
- if (hasDataContractAttribute && dataContractAttribute.IsReferenceSetExplicit)
+ if (hasDataContractAttribute && dataContractAttribute.IsReferenceSetExplicitly)
{
bool baseIsReference = this.BaseContract.IsReference;
if ((baseIsReference && !dataContractAttribute.IsReference) ||
@@ -920,7 +920,7 @@ namespace System.Runtime.Serialization
ThrowInvalidDataContractException(SR.GetString(SR.InvalidMember, DataContract.GetClrTypeFullName(type), member.Name));
DataMemberAttribute memberAttribute = (DataMemberAttribute)memberAttributes[0];
- if (memberAttribute.IsNameSetExplicit)
+ if (memberAttribute.IsNameSetExplicitly)
{
if (memberAttribute.Name == null || memberAttribute.Name.Length == 0)
ThrowInvalidDataContractException(SR.GetString(SR.InvalidDataMemberName, member.Name, DataContract.GetClrTypeFullName(type)));
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/CollectionDataContract.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/CollectionDataContract.cs
index 75092529f3c..f26a107c43d 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/CollectionDataContract.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/CollectionDataContract.cs
@@ -539,14 +539,14 @@ namespace System.Runtime.Serialization
string itemName = null, keyName = null, valueName = null;
if (collectionContractAttribute != null)
{
- if (collectionContractAttribute.IsItemNameSetExplicit)
+ if (collectionContractAttribute.IsItemNameSetExplicitly)
{
if (collectionContractAttribute.ItemName == null || collectionContractAttribute.ItemName.Length == 0)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidDataContractException(SR.GetString(SR.InvalidCollectionContractItemName, DataContract.GetClrTypeFullName(UnderlyingType))));
itemName = DataContract.EncodeLocalName(collectionContractAttribute.ItemName);
itemNameSetExplicit = true;
}
- if (collectionContractAttribute.IsKeyNameSetExplicit)
+ if (collectionContractAttribute.IsKeyNameSetExplicitly)
{
if (collectionContractAttribute.KeyName == null || collectionContractAttribute.KeyName.Length == 0)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidDataContractException(SR.GetString(SR.InvalidCollectionContractKeyName, DataContract.GetClrTypeFullName(UnderlyingType))));
@@ -554,7 +554,7 @@ namespace System.Runtime.Serialization
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidDataContractException(SR.GetString(SR.InvalidCollectionContractKeyNoDictionary, DataContract.GetClrTypeFullName(UnderlyingType), collectionContractAttribute.KeyName)));
keyName = DataContract.EncodeLocalName(collectionContractAttribute.KeyName);
}
- if (collectionContractAttribute.IsValueNameSetExplicit)
+ if (collectionContractAttribute.IsValueNameSetExplicitly)
{
if (collectionContractAttribute.ValueName == null || collectionContractAttribute.ValueName.Length == 0)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidDataContractException(SR.GetString(SR.InvalidCollectionContractValueName, DataContract.GetClrTypeFullName(UnderlyingType))));
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/CollectionDataContractAttribute.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/CollectionDataContractAttribute.cs
index f7ed6f29105..6fee2df6077 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/CollectionDataContractAttribute.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/CollectionDataContractAttribute.cs
@@ -13,12 +13,12 @@ namespace System.Runtime.Serialization
string keyName;
string valueName;
bool isReference;
- bool isNameSetExplicit;
- bool isNamespaceSetExplicit;
- bool isReferenceSetExplicit;
- bool isItemNameSetExplicit;
- bool isKeyNameSetExplicit;
- bool isValueNameSetExplicit;
+ bool isNameSetExplicitly;
+ bool isNamespaceSetExplicitly;
+ bool isReferenceSetExplicitly;
+ bool isItemNameSetExplicitly;
+ bool isKeyNameSetExplicitly;
+ bool isValueNameSetExplicitly;
public CollectionDataContractAttribute()
{
@@ -30,13 +30,13 @@ namespace System.Runtime.Serialization
set
{
ns = value;
- isNamespaceSetExplicit = true;
+ isNamespaceSetExplicitly = true;
}
}
- internal bool IsNamespaceSetExplicit
+ public bool IsNamespaceSetExplicitly
{
- get { return isNamespaceSetExplicit; }
+ get { return isNamespaceSetExplicitly; }
}
public string Name
@@ -45,13 +45,13 @@ namespace System.Runtime.Serialization
set
{
name = value;
- isNameSetExplicit = true;
+ isNameSetExplicitly = true;
}
}
- internal bool IsNameSetExplicit
+ public bool IsNameSetExplicitly
{
- get { return isNameSetExplicit; }
+ get { return isNameSetExplicitly; }
}
public string ItemName
@@ -60,13 +60,13 @@ namespace System.Runtime.Serialization
set
{
itemName = value;
- isItemNameSetExplicit = true;
+ isItemNameSetExplicitly = true;
}
}
- internal bool IsItemNameSetExplicit
+ public bool IsItemNameSetExplicitly
{
- get { return isItemNameSetExplicit; }
+ get { return isItemNameSetExplicitly; }
}
public string KeyName
@@ -75,7 +75,7 @@ namespace System.Runtime.Serialization
set
{
keyName = value;
- isKeyNameSetExplicit = true;
+ isKeyNameSetExplicitly = true;
}
}
@@ -85,18 +85,18 @@ namespace System.Runtime.Serialization
set
{
isReference = value;
- isReferenceSetExplicit = true;
+ isReferenceSetExplicitly = true;
}
}
- internal bool IsReferenceSetExplicit
+ public bool IsReferenceSetExplicitly
{
- get { return isReferenceSetExplicit; }
+ get { return isReferenceSetExplicitly; }
}
- internal bool IsKeyNameSetExplicit
+ public bool IsKeyNameSetExplicitly
{
- get { return isKeyNameSetExplicit; }
+ get { return isKeyNameSetExplicitly; }
}
public string ValueName
@@ -105,13 +105,13 @@ namespace System.Runtime.Serialization
set
{
valueName = value;
- isValueNameSetExplicit = true;
+ isValueNameSetExplicitly = true;
}
}
- internal bool IsValueNameSetExplicit
+ public bool IsValueNameSetExplicitly
{
- get { return isValueNameSetExplicit; }
+ get { return isValueNameSetExplicitly; }
}
}
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Configuration/SerializationSectionGroup.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Configuration/SerializationSectionGroup.cs
index 044ffea1746..7b73dabbe5a 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Configuration/SerializationSectionGroup.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Configuration/SerializationSectionGroup.cs
@@ -13,7 +13,7 @@ namespace System.Runtime.Serialization.Configuration
{
throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("config");
}
-#pragma warning suppress 56506 // [....], config is checked above
+#pragma warning suppress 56506 // Microsoft, config is checked above
return (SerializationSectionGroup)config.SectionGroups[ConfigurationStrings.SectionGroupName];
}
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataContract.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataContract.cs
index 68d510c6663..c63c76f9153 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataContract.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataContract.cs
@@ -674,8 +674,10 @@ namespace System.Runtime.Serialization
XmlQualifiedName qname = new XmlQualifiedName(name, ns);
if (!nameToBuiltInContract.TryGetValue(qname, out dataContract))
{
- TryCreateBuiltInDataContract(name, ns, out dataContract);
- nameToBuiltInContract.Add(qname, dataContract);
+ if (TryCreateBuiltInDataContract(name, ns, out dataContract))
+ {
+ nameToBuiltInContract.Add(qname, dataContract);
+ }
}
return dataContract;
}
@@ -1408,7 +1410,7 @@ namespace System.Runtime.Serialization
static XmlQualifiedName GetDCTypeStableName(Type type, DataContractAttribute dataContractAttribute)
{
string name = null, ns = null;
- if (dataContractAttribute.IsNameSetExplicit)
+ if (dataContractAttribute.IsNameSetExplicitly)
{
name = dataContractAttribute.Name;
if (name == null || name.Length == 0)
@@ -1420,7 +1422,7 @@ namespace System.Runtime.Serialization
else
name = GetDefaultStableLocalName(type);
- if (dataContractAttribute.IsNamespaceSetExplicit)
+ if (dataContractAttribute.IsNamespaceSetExplicitly)
{
ns = dataContractAttribute.Namespace;
if (ns == null)
@@ -1521,7 +1523,7 @@ namespace System.Runtime.Serialization
throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidDataContractException(SR.GetString(SR.TooManyCollectionContracts, DataContract.GetClrTypeFullName(type))));
#endif
collectionContractAttribute = (CollectionDataContractAttribute)collectionContractAttributes[0];
- if (collectionContractAttribute.IsNameSetExplicit)
+ if (collectionContractAttribute.IsNameSetExplicitly)
{
name = collectionContractAttribute.Name;
if (name == null || name.Length == 0)
@@ -1533,7 +1535,7 @@ namespace System.Runtime.Serialization
else
name = GetDefaultStableLocalName(type);
- if (collectionContractAttribute.IsNamespaceSetExplicit)
+ if (collectionContractAttribute.IsNamespaceSetExplicitly)
{
ns = collectionContractAttribute.Namespace;
if (ns == null)
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataContractAttribute.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataContractAttribute.cs
index cafac3b78c1..8a555df1a6d 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataContractAttribute.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataContractAttribute.cs
@@ -9,10 +9,10 @@ namespace System.Runtime.Serialization
{
string name;
string ns;
- bool isNameSetExplicit;
- bool isNamespaceSetExplicit;
+ bool isNameSetExplicitly;
+ bool isNamespaceSetExplicitly;
bool isReference;
- bool isReferenceSetExplicit;
+ bool isReferenceSetExplicitly;
public DataContractAttribute()
{
@@ -24,13 +24,13 @@ namespace System.Runtime.Serialization
set
{
isReference = value;
- isReferenceSetExplicit = true;
+ isReferenceSetExplicitly = true;
}
}
- internal bool IsReferenceSetExplicit
+ public bool IsReferenceSetExplicitly
{
- get { return isReferenceSetExplicit; }
+ get { return isReferenceSetExplicitly; }
}
public string Namespace
@@ -39,13 +39,13 @@ namespace System.Runtime.Serialization
set
{
ns = value;
- isNamespaceSetExplicit = true;
+ isNamespaceSetExplicitly = true;
}
}
- internal bool IsNamespaceSetExplicit
+ public bool IsNamespaceSetExplicitly
{
- get { return isNamespaceSetExplicit; }
+ get { return isNamespaceSetExplicitly; }
}
public string Name
@@ -54,13 +54,13 @@ namespace System.Runtime.Serialization
set
{
name = value;
- isNameSetExplicit = true;
+ isNameSetExplicitly = true;
}
}
- internal bool IsNameSetExplicit
+ public bool IsNameSetExplicitly
{
- get { return isNameSetExplicit; }
+ get { return isNameSetExplicitly; }
}
}
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataContractSet.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataContractSet.cs
index 7c541c25dd7..dcb716e6fc1 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataContractSet.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataContractSet.cs
@@ -15,8 +15,6 @@ namespace System.Runtime.Serialization
internal class DataContractSet
{
- // Same string used in MessageContractImporter of System.ServiceModel.dll
- const String FailedReferenceTypeExceptionKey = "System.Runtime.Serialization.FailedReferenceType";
Dictionary<XmlQualifiedName, DataContract> contracts;
Dictionary<DataContract, object> processedContracts;
IDataContractSurrogate dataContractSurrogate;
@@ -368,20 +366,7 @@ namespace System.Runtime.Serialization
if (type == null)
throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ReferencedTypesCannotContainNull)));
- try
- {
- AddReferencedType(referencedTypesDictionary, type);
- }
- catch (InvalidDataContractException ex)
- {
- ex.Data.Add(FailedReferenceTypeExceptionKey, type);
- throw;
- }
- catch (InvalidOperationException ex)
- {
- ex.Data.Add(FailedReferenceTypeExceptionKey, type);
- throw;
- }
+ AddReferencedType(referencedTypesDictionary, type);
}
}
}
@@ -413,7 +398,22 @@ namespace System.Runtime.Serialization
{
if (IsTypeReferenceable(type))
{
- XmlQualifiedName stableName = this.GetStableName(type);
+ XmlQualifiedName stableName;
+ try
+ {
+ stableName = this.GetStableName(type);
+ }
+ catch (InvalidDataContractException)
+ {
+ // Type not referenceable if we can't get a stable name.
+ return;
+ }
+ catch (InvalidOperationException)
+ {
+ // Type not referenceable if we can't get a stable name.
+ return;
+ }
+
object value;
if (referencedTypes.TryGetValue(stableName, out value))
{
@@ -500,11 +500,20 @@ namespace System.Runtime.Serialization
static bool IsTypeReferenceable(Type type)
{
Type itemType;
- return (type.IsSerializable ||
- type.IsDefined(Globals.TypeOfDataContractAttribute, false) ||
- (Globals.TypeOfIXmlSerializable.IsAssignableFrom(type) && !type.IsGenericTypeDefinition) ||
- CollectionDataContract.IsCollection(type, out itemType) ||
- ClassDataContract.IsNonAttributedTypeValidForSerialization(type));
+
+ try
+ {
+ return (type.IsSerializable ||
+ type.IsDefined(Globals.TypeOfDataContractAttribute, false) ||
+ (Globals.TypeOfIXmlSerializable.IsAssignableFrom(type) && !type.IsGenericTypeDefinition) ||
+ CollectionDataContract.IsCollection(type, out itemType) ||
+ ClassDataContract.IsNonAttributedTypeValidForSerialization(type));
+ }
+ catch (System.IO.FileLoadException)
+ { // this can happen in Type.IsDefined when trying to load a referenced library that is not available at design time.
+ }
+
+ return false;
}
}
}
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataMemberAttribute.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataMemberAttribute.cs
index 114f1a94ba6..0da48906008 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataMemberAttribute.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/DataMemberAttribute.cs
@@ -8,7 +8,7 @@ namespace System.Runtime.Serialization
public sealed class DataMemberAttribute : Attribute
{
string name;
- bool isNameSetExplicit;
+ bool isNameSetExplicitly;
int order = -1;
bool isRequired;
bool emitDefaultValue = Globals.DefaultEmitDefaultValue;
@@ -20,12 +20,12 @@ namespace System.Runtime.Serialization
public string Name
{
get { return name; }
- set { name = value; isNameSetExplicit = true; }
+ set { name = value; isNameSetExplicitly = true; }
}
- internal bool IsNameSetExplicit
+ public bool IsNameSetExplicitly
{
- get { return isNameSetExplicit; }
+ get { return isNameSetExplicitly; }
}
public int Order
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/EnumDataContract.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/EnumDataContract.cs
index f9c411fdf4d..d9f1dc31284 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/EnumDataContract.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/EnumDataContract.cs
@@ -290,7 +290,7 @@ namespace System.Runtime.Serialization
EnumMemberAttribute memberAttribute = (EnumMemberAttribute)memberAttributes[0];
DataMember memberContract = new DataMember(field);
- if (memberAttribute.IsValueSetExplicit)
+ if (memberAttribute.IsValueSetExplicitly)
{
if (memberAttribute.Value == null || memberAttribute.Value.Length == 0)
ThrowInvalidDataContractException(SR.GetString(SR.InvalidEnumMemberValue, field.Name, DataContract.GetClrTypeFullName(type)));
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/EnumMemberAttribute.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/EnumMemberAttribute.cs
index 6a0fb9b47c0..fbcc3353302 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/EnumMemberAttribute.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/EnumMemberAttribute.cs
@@ -8,7 +8,7 @@ namespace System.Runtime.Serialization
public sealed class EnumMemberAttribute : Attribute
{
string value;
- bool isValueSetExplicit;
+ bool isValueSetExplicitly;
public EnumMemberAttribute()
{
@@ -17,12 +17,12 @@ namespace System.Runtime.Serialization
public string Value
{
get { return this.value; }
- set { this.value = value; this.isValueSetExplicit = true; }
+ set { this.value = value; this.isValueSetExplicitly = true; }
}
- internal bool IsValueSetExplicit
+ public bool IsValueSetExplicitly
{
- get { return this.isValueSetExplicit; }
+ get { return this.isValueSetExplicitly; }
}
}
}
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Globals.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Globals.cs
index fa97ce9c0b4..0cdf9cde68b 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Globals.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Globals.cs
@@ -1093,23 +1093,6 @@ namespace System.Runtime.Serialization
}
[SecurityCritical]
- static Type typeOfSafeSerializationManager;
- static bool typeOfSafeSerializationManagerSet;
- internal static Type TypeOfSafeSerializationManager
- {
- [SecuritySafeCritical]
- get
- {
- if (!typeOfSafeSerializationManagerSet)
- {
- typeOfSafeSerializationManager = TypeOfInt.Assembly.GetType("System.Runtime.Serialization.SafeSerializationManager");
- typeOfSafeSerializationManagerSet = true;
- }
- return typeOfSafeSerializationManager;
- }
- }
-
- [SecurityCritical]
static Uri dataContractXsdBaseNamespaceUri;
internal static Uri DataContractXsdBaseNamespaceUri
{
@@ -1164,8 +1147,6 @@ namespace System.Runtime.Serialization
public readonly static string NewObjectId = string.Empty;
public const string SimpleSRSInternalsVisiblePattern = @"^[\s]*System\.Runtime\.Serialization[\s]*$";
public const string FullSRSInternalsVisiblePattern = @"^[\s]*System\.Runtime\.Serialization[\s]*,[\s]*PublicKey[\s]*=[\s]*(?i:00000000000000000400000000000000)[\s]*$";
- public const string SafeSerializationManagerName = "SafeSerializationManager";
- public const string SafeSerializationManagerNamespace = "http://schemas.datacontract.org/2004/07/System.Runtime.Serialization";
public const string NullObjectId = null;
public const string Space = " ";
public const string OpenBracket = "[";
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/JsonEncodingStreamWrapper.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/JsonEncodingStreamWrapper.cs
index 3f756c1dcd5..b8620e452ad 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/JsonEncodingStreamWrapper.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/JsonEncodingStreamWrapper.cs
@@ -14,7 +14,7 @@ namespace System.Runtime.Serialization.Json
// This wrapper does not support seek.
// Supports: UTF-8, Unicode, BigEndianUnicode
- // ASSUMPTION ([....]): This class will only be used for EITHER reading OR writing. It can be done, it would just mean more buffers.
+ // ASSUMPTION (Microsoft): This class will only be used for EITHER reading OR writing. It can be done, it would just mean more buffers.
class JsonEncodingStreamWrapper : Stream
{
[Fx.Tag.SecurityNote(Miscellaneous = "RequiresReview - Static fields are marked SecurityCritical or readonly to prevent"
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/JsonNodeType.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/JsonNodeType.cs
index c0f6374a400..b99510be2bc 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/JsonNodeType.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/JsonNodeType.cs
@@ -14,4 +14,4 @@ namespace System.Runtime.Serialization.Json
StandaloneText,
Collection
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/JsonWriterDelegator.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/JsonWriterDelegator.cs
index dc71490b990..736af7f520b 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/JsonWriterDelegator.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/JsonWriterDelegator.cs
@@ -199,7 +199,7 @@ namespace System.Runtime.Serialization.Json
void WriteDateTimeInDefaultFormat(DateTime value)
{
// ToUniversalTime() truncates dates to DateTime.MaxValue or DateTime.MinValue instead of throwing
- // This will break round-tripping of these dates (see bug 9690 in CSD Developer Framework)
+ // This will break round-tripping of these dates (see
if (value.Kind != DateTimeKind.Utc)
{
long tickCount = value.Ticks - TimeZone.CurrentTimeZone.GetUtcOffset(value).Ticks;
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/XmlJsonWriter.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/XmlJsonWriter.cs
index 581e40aee0c..de0ed526f1a 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/XmlJsonWriter.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/Json/XmlJsonWriter.cs
@@ -792,7 +792,7 @@ namespace System.Runtime.Serialization.Json
WriteString(new string(buffer, index, count));
}
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase")] // [....], ToLowerInvariant is just used in Json error message
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase")] // Microsoft, ToLowerInvariant is just used in Json error message
public override void WriteStartAttribute(string prefix, string localName, string ns)
{
if (IsClosed)
@@ -1374,7 +1374,7 @@ namespace System.Runtime.Serialization.Json
}
}
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase")] // [....], ToLowerInvariant is just used in Json error message
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase")] // Microsoft, ToLowerInvariant is just used in Json error message
void ThrowInvalidAttributeContent()
{
if (HasOpenAttribute)
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerContext.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerContext.cs
index c1f09aedca5..a374cebc455 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerContext.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Runtime/Serialization/XmlObjectSerializerContext.cs
@@ -278,10 +278,6 @@ namespace System.Runtime.Serialization
DataContract dataContract = PrimitiveDataContract.GetPrimitiveDataContract(typeName.Name, typeName.Namespace);
if (dataContract == null)
{
- if (typeName.Name == Globals.SafeSerializationManagerName && typeName.Namespace == Globals.SafeSerializationManagerNamespace && Globals.TypeOfSafeSerializationManager != null)
- {
- return GetDataContract(Globals.TypeOfSafeSerializationManager);
- }
dataContract = scopedKnownTypes.GetDataContract(typeName);
if (dataContract == null)
{
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/EncodingStreamWrapper.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/EncodingStreamWrapper.cs
index bea64bce4d9..b0a6487fc6d 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/EncodingStreamWrapper.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/EncodingStreamWrapper.cs
@@ -11,9 +11,9 @@ namespace System.Xml
// This wrapper does not support seek.
// Constructors consume/emit byte order mark.
// Supports: UTF-8, Unicode, BigEndianUnicode
- // ASSUMPTION ([....]): This class will only be used for EITHER reading OR writing. It can be done, it would just mean more buffers.
- // ASSUMPTION ([....]): The byte buffer is large enough to hold the declaration
- // ASSUMPTION ([....]): The buffer manipulation methods (FillBuffer/Compare/etc.) will only be used to parse the declaration
+ // ASSUMPTION (Microsoft): This class will only be used for EITHER reading OR writing. It can be done, it would just mean more buffers.
+ // ASSUMPTION (Microsoft): The byte buffer is large enough to hold the declaration
+ // ASSUMPTION (Microsoft): The buffer manipulation methods (FillBuffer/Compare/etc.) will only be used to parse the declaration
// during construction.
class EncodingStreamWrapper : Stream
{
@@ -749,7 +749,7 @@ namespace System.Xml
// Add format exceptions
// Do we need to modify the stream position/Seek to account for the buffer?
- // ASSUMPTION ([....]): This class will only be used for EITHER reading OR writing.
+ // ASSUMPTION (Microsoft): This class will only be used for EITHER reading OR writing.
#if NO
class UTF16Stream : Stream
{
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/UniqueID.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/UniqueID.cs
index 2db9f63d632..53fe8347cac 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/UniqueID.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/UniqueID.cs
@@ -352,7 +352,7 @@ namespace System.Xml
if (object.ReferenceEquals(id1, null) || object.ReferenceEquals(id2, null))
return false;
-#pragma warning suppress 56506 // [....], checks for whether id1 and id2 are null done above.
+#pragma warning suppress 56506 // Microsoft, checks for whether id1 and id2 are null done above.
if (id1.IsGuid && id2.IsGuid)
{
return id1.idLow == id2.idLow && id1.idHigh == id2.idHigh;
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/ValueHandle.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/ValueHandle.cs
index 74313dec99b..5d18e55fe92 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/ValueHandle.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/ValueHandle.cs
@@ -539,7 +539,7 @@ namespace System.Xml
}
}
- // ASSUMPTION ([....]): all chars in str will be ASCII
+ // ASSUMPTION (Microsoft): all chars in str will be ASCII
public bool Equals2(string str, bool checkLower)
{
if (this.type != ValueHandleType.UTF8)
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlBaseReader.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlBaseReader.cs
index 6b1de6eb1d9..92000c475b5 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlBaseReader.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlBaseReader.cs
@@ -1,8 +1,8 @@
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
-// PERF, [....], [....]: Make LookupNamespace do something smarter when lots of names
-// PERF, [....], [....]: Make Attribute lookup smarter when lots of attributes
+// PERF, Microsoft, Microsoft: Make LookupNamespace do something smarter when lots of names
+// PERF, Microsoft, Microsoft: Make Attribute lookup smarter when lots of attributes
namespace System.Xml
{
using System;
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlConverter.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlConverter.cs
index 3497ba645ca..3f683a49570 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlConverter.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlConverter.cs
@@ -1,9 +1,9 @@
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
-// PERF, [....], [....]: Make LookupNamespace do something smarter when lots of names
-// PERF, [....], [....]: Make Attribute lookup smarter when lots of attributes
-// PERF: [....], [....]: Compare safe/unsafe versions
+// PERF, Microsoft, Microsoft: Make LookupNamespace do something smarter when lots of names
+// PERF, Microsoft, Microsoft: Make Attribute lookup smarter when lots of attributes
+// PERF: Microsoft, Microsoft: Compare safe/unsafe versions
namespace System.Xml
{
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlDictionaryWriter.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlDictionaryWriter.cs
index 5c94636bb60..3868664cd23 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlDictionaryWriter.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlDictionaryWriter.cs
@@ -145,7 +145,7 @@ namespace System.Xml
{
if (LookupPrefix(namespaceUri) != null)
return;
-#pragma warning suppress 56506 // [....], namespaceUri is already checked
+#pragma warning suppress 56506 // Microsoft, namespaceUri is already checked
prefix = namespaceUri.Length == 0 ? string.Empty : string.Concat("d", namespaceUri.Length.ToString(System.Globalization.NumberFormatInfo.InvariantInfo));
}
WriteAttributeString("xmlns", prefix, null, namespaceUri);
@@ -196,7 +196,7 @@ namespace System.Xml
throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("localName"));
if (namespaceUri == null)
namespaceUri = XmlDictionaryString.Empty;
-#pragma warning suppress 56506 // [....], XmlDictionaryString.Empty is never null
+#pragma warning suppress 56506 // Microsoft, XmlDictionaryString.Empty is never null
WriteQualifiedName(localName.Value, namespaceUri.Value);
}
@@ -301,7 +301,7 @@ namespace System.Xml
{
if (completionException == null)
{
- // only release stream when no exception (mirrors [....] behaviour)
+ // only release stream when no exception (mirrors sync behaviour)
this.streamProvider.ReleaseStream(this.stream);
this.stream = null;
}
@@ -311,7 +311,7 @@ namespace System.Xml
void ContinueWork(bool completedSynchronously, Exception completionException = null)
{
- // Individual Reads or writes may complete [....] or async. A callback however
+ // Individual Reads or writes may complete sync or async. A callback however
// will always all ContinueWork() with CompletedSynchronously=false this flag
// is used to complete this AsyncResult.
try
@@ -523,7 +523,10 @@ namespace System.Xml
Operation operation = Operation.Read;
IStreamProvider streamProvider;
XmlDictionaryWriter writer;
+ Func<IAsyncResult, WriteValueAsyncResult, bool> writeBlockHandler;
+ static Func<IAsyncResult, WriteValueAsyncResult, bool> handleWriteBlock = HandleWriteBlock;
+ static Func<IAsyncResult, WriteValueAsyncResult, bool> handleWriteBlockAsync = HandleWriteBlockAsync;
static AsyncCallback onContinueWork = Fx.ThunkCallback(OnContinueWork);
public WriteValueAsyncResult(XmlDictionaryWriter writer, IStreamProvider value, AsyncCallback callback, object state)
@@ -531,6 +534,7 @@ namespace System.Xml
{
this.streamProvider = value;
this.writer = writer;
+ this.writeBlockHandler = this.writer.Settings != null && this.writer.Settings.Async ? handleWriteBlockAsync : handleWriteBlock;
this.stream = value.GetStream();
if (this.stream == null)
{
@@ -561,7 +565,7 @@ namespace System.Xml
{
if (completionException == null)
{
- // only release stream when no exception (mirrors [....] behaviour)
+ // only release stream when no exception (mirrors sync behaviour)
this.streamProvider.ReleaseStream(this.stream);
this.stream = null;
}
@@ -578,7 +582,7 @@ namespace System.Xml
{
if (HandleReadBlock(result))
{
- // Read completed ([....] or async, doesn't matter)
+ // Read completed (sync or async, doesn't matter)
if (this.bytesRead > 0)
{
// allow loop to continue at Write
@@ -598,9 +602,9 @@ namespace System.Xml
}
else
{
- if (HandleWriteBlock(result))
+ if (this.writeBlockHandler(result, this))
{
- // Write completed ([....] or async, doesn't matter)
+ // Write completed (sync or async, doesn't matter)
AdjustBlockSize();
operation = Operation.Read;
}
@@ -631,24 +635,43 @@ namespace System.Xml
}
//returns whether or not I completed.
- bool HandleWriteBlock(IAsyncResult result)
+ static bool HandleWriteBlock(IAsyncResult result, WriteValueAsyncResult thisPtr)
{
if (result == null)
{
- result = this.writer.BeginWriteBase64(this.block, 0, this.bytesRead, onContinueWork, this);
+ result = thisPtr.writer.BeginWriteBase64(thisPtr.block, 0, thisPtr.bytesRead, onContinueWork, thisPtr);
if (!result.CompletedSynchronously)
{
return false;
}
}
- this.writer.EndWriteBase64(result);
+ thisPtr.writer.EndWriteBase64(result);
+ return true;
+ }
+
+ //returns whether or not I completed.
+ static bool HandleWriteBlockAsync(IAsyncResult result, WriteValueAsyncResult thisPtr)
+ {
+ Task task = (Task)result;
+
+ if (task == null)
+ {
+ task = thisPtr.writer.WriteBase64Async(thisPtr.block, 0, thisPtr.bytesRead);
+ task.AsAsyncResult(onContinueWork, thisPtr);
+ return false;
+ }
+
+ task.GetAwaiter().GetResult();
+
return true;
}
static void OnContinueWork(IAsyncResult result)
{
- if (result.CompletedSynchronously)
+ // If result is a Task we shouldn't check for Synchronous completion
+ // We should only return if we're in the async completion path and if the result completed synchronously.
+ if (result.CompletedSynchronously && !(result is Task))
{
return;
}
diff --git a/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlMtomReader.cs b/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlMtomReader.cs
index 69831c0d846..1c5fd2c4cfd 100644
--- a/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlMtomReader.cs
+++ b/mcs/class/referencesource/System.Runtime.Serialization/System/Xml/XmlMtomReader.cs
@@ -2102,7 +2102,7 @@ namespace System.Xml
public override long Length
{
-#pragma warning suppress 56503 // [....], required by the XmlReader
+#pragma warning suppress 56503 // Microsoft, required by the XmlReader
get { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(SR.GetString(SR.SeekNotSupportedOnStream, this.GetType().FullName))); }
}
@@ -2110,7 +2110,7 @@ namespace System.Xml
{
get
{
-#pragma warning suppress 56503 // [....], required by the XmlReader
+#pragma warning suppress 56503 // Microsoft, required by the XmlReader
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(SR.GetString(SR.SeekNotSupportedOnStream, this.GetType().FullName)));
}
set { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(SR.GetString(SR.SeekNotSupportedOnStream, this.GetType().FullName))); }
@@ -2831,7 +2831,7 @@ namespace System.Xml
{
get
{
-#pragma warning suppress 56503 // [....], required by the Stream contract
+#pragma warning suppress 56503 // Microsoft, required by the Stream contract
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(SR.GetString(SR.SeekNotSupportedOnStream, stream.GetType().FullName)));
}
}
@@ -2840,7 +2840,7 @@ namespace System.Xml
{
get
{
-#pragma warning suppress 56503 // [....], required by the Stream contract
+#pragma warning suppress 56503 // Microsoft, required by the Stream contract
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(SR.GetString(SR.SeekNotSupportedOnStream, stream.GetType().FullName)));
}
set
diff --git a/mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/Activation/HostedHttpContext.cs b/mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/Activation/HostedHttpContext.cs
index 7c0fda2a964..35fc01d8c56 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/Activation/HostedHttpContext.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/Activation/HostedHttpContext.cs
@@ -193,7 +193,7 @@ namespace System.ServiceModel.Activation
{
HttpInput httpInput = this.GetHttpInput(false);
- // work around http.sys keep alive bug with chunked requests, see MB 49676, this is fixed in Vista
+ // work around http.sys keep alive
if ((httpInput != null && httpInput.ContentLength == -1 && !OSEnvironmentHelper.IsVistaOrGreater) || !this.KeepAliveEnabled)
{
result.SetConnectionClose();
diff --git a/mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/Activation/HostedImpersonationContext.cs b/mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/Activation/HostedImpersonationContext.cs
index 336347f1663..591bf22f0ba 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/Activation/HostedImpersonationContext.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/Activation/HostedImpersonationContext.cs
@@ -59,7 +59,7 @@ namespace System.ServiceModel.Activation
[SecurityCritical]
static void CloseInvalidOutSafeHandleCritical(SafeHandle handle)
{
- // Workaround for 64-bit CLR bug VSWhidbey 546830 - sometimes invalid SafeHandles come back null.
+ // Workaround for 64-bit CLR
if (handle != null)
{
Fx.Assert(handle.IsInvalid, "CloseInvalidOutSafeHandle called with a valid handle!");
diff --git a/mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/Activation/IServiceModelActivationHandler.cs b/mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/Activation/IServiceModelActivationHandler.cs
index 87872c243c9..cc294489540 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/Activation/IServiceModelActivationHandler.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/Activation/IServiceModelActivationHandler.cs
@@ -10,4 +10,4 @@ namespace System.ServiceModel.Activation
{
ServiceHostFactoryBase GetFactory();
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/ServiceHostingEnvironment.cs b/mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/ServiceHostingEnvironment.cs
index 6b5fd7e5ba1..bede66c59b0 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/ServiceHostingEnvironment.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activation/System/ServiceModel/ServiceHostingEnvironment.cs
@@ -516,7 +516,7 @@ namespace System.ServiceModel
static bool GetIsSimpleApplicationHost()
{
// ASPNET won't provide API to check Cassini. But it's safe and performant to check only
- // the ApplicationID prefix (MessageBus Bug 24832).
+ // the ApplicationID prefix (MessageBus
return (string.Compare(ISAPIApplicationIdPrefix, 0,
HostingEnvironmentWrapper.UnsafeApplicationID, 0, ISAPIApplicationIdPrefix.Length, StringComparison.OrdinalIgnoreCase) != 0);
}
diff --git a/mcs/class/referencesource/System.ServiceModel.Activities/SuppressMessages.cs b/mcs/class/referencesource/System.ServiceModel.Activities/SuppressMessages.cs
index 5187c6b8b86..9caa3edf6bb 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activities/SuppressMessages.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activities/SuppressMessages.cs
@@ -6,7 +6,7 @@
using System.Diagnostics.CodeAnalysis;
using System.Runtime;
- //
+ // TODO, 47676, see the TODO on BookmarkNameHelper.CreateBookmarkName
[module: SuppressMessage(FxCop.Category.Performance, FxCop.Rule.AvoidUncalledPrivateCode, Scope = "member", Target = "System.ServiceModel.Activities.SR.ConflictingBookmarkName(System.Object,System.Object):System.String")]
[module: SuppressMessage(FxCop.Category.Performance, FxCop.Rule.AvoidUncalledPrivateCode, Scope = "member", Target = "System.ServiceModel.Activities.SR.TransactedReceiveScopeMustHaveValidReceive(System.Object):System.String")]
[module: SuppressMessage(FxCop.Category.Performance, FxCop.Rule.AvoidUncalledPrivateCode, Scope = "member", Target = "System.ServiceModel.Activities.SR.AbortInstanceOnTransactionFailureDoesNotMatch(System.Object,System.Object):System.String")]
diff --git a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/AppSettings.cs b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/AppSettings.cs
index 4265ccae14d..6a4ec0676bf 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/AppSettings.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/AppSettings.cs
@@ -15,11 +15,17 @@ namespace System.ServiceModel.Activities
// false [default] to NOT have InstanceKeys automatically disassociated by default, so that they stay around until the completion of the workflow.
// true to have InstanceKeys automatically dissociated by default. Doing this affects the extensibility point WorkflowInstance.OnDisassociateKeys.
- // <add key="workflowServices:DefaultAutomaticInstanceKeyDisassociation" value="true"/>
+ // <add key="microsoft:WorkflowServices:DefaultAutomaticInstanceKeyDisassociation" value="true"/>
//
// NOTE - There is a similar setting in System.Activities because the changes affected by this are in both assemblies.
private static bool defaultAutomaticInstanceKeyDisassociation;
+ // The number of seconds to wait for non-protocol bookmarks if we receive a request, but the protocol bookmark for that Receive activity is not ready.
+ // Default = 60 (1 minute).
+ // A value of 0 implies that we should not wait at all and the "out of order" exception should be thrown, rather than the timeout exception.
+ // <add key="microsoft:WorkflowServices:FilterResumeTimeoutInSeconds" value="60"/>
+ private static int filterResumeTimeoutInSeconds;
+
internal static bool DefaultAutomaticInstanceKeyDisassociation
{
get
@@ -29,6 +35,15 @@ namespace System.ServiceModel.Activities
}
}
+ internal static int FilterResumeTimeoutInSeconds
+ {
+ get
+ {
+ EnsureSettingsLoaded();
+ return filterResumeTimeoutInSeconds;
+ }
+ }
+
private static void EnsureSettingsLoaded()
{
if (!settingsInitialized)
@@ -50,11 +65,17 @@ namespace System.ServiceModel.Activities
defaultAutomaticInstanceKeyDisassociation = false;
}
+ if (settings == null || !int.TryParse(settings["microsoft:WorkflowServices:FilterResumeTimeoutInSeconds"], out filterResumeTimeoutInSeconds) ||
+ (filterResumeTimeoutInSeconds < 0))
+ {
+ filterResumeTimeoutInSeconds = 60;
+ }
+
settingsInitialized = true;
}
}
}
}
- }
+ }
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/BufferedReceiveManager.cs b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/BufferedReceiveManager.cs
index e8670e2a0a6..b240804d46d 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/BufferedReceiveManager.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/BufferedReceiveManager.cs
@@ -83,7 +83,7 @@ namespace System.ServiceModel.Activities.Dispatcher
// Actual Buffering
lock (this.thisLock)
{
- // Optimistic state check in case we just ----d with the receiveContext
+ // Optimistic state check in case we just raced with the receiveContext
// faulting. If the receiveContext still faults after the state check, the above
// cleanup routine will handle things correctly. In both cases, a double-release
// of the throttle is protected.
diff --git a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/DurableInstanceManager.cs b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/DurableInstanceManager.cs
index 2ff32b65c21..198c511575b 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/DurableInstanceManager.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/DurableInstanceManager.cs
@@ -1323,7 +1323,7 @@ namespace System.ServiceModel.Activities.Dispatcher
// This async result waits for store events and handle them (currently only support HasRunnableWorkflowEvent).
// It is intended to always complete async to simplify caller usage.
- // 1) no code to handle [....] completion.
+ // 1) no code to handle sync completion.
// 2) recursive call will be safe from StackOverflow.
// For simplicity, we handle (load/run) each event one-by-one.
// We ---- certain set of exception (see HandleException). Other will crash the process.
diff --git a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/PersistenceContext.cs b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/PersistenceContext.cs
index eb135add289..96a92a8fed8 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/PersistenceContext.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/PersistenceContext.cs
@@ -102,7 +102,7 @@ namespace System.ServiceModel.Activities.Dispatcher
ReadSuspendedInfo(view);
}
- // If we were loaded or we locked the instance, the keys will have been [....]'d.
+ // If we were loaded or we locked the instance, the keys will have been sync'd.
if (IsInitialized || IsLocked)
{
RationalizeSavedKeys(false);
diff --git a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/PersistenceProviderDirectory.cs b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/PersistenceProviderDirectory.cs
index ed99706cbfa..126936ab2c9 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/PersistenceProviderDirectory.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/PersistenceProviderDirectory.cs
@@ -1178,7 +1178,7 @@ namespace System.ServiceModel.Activities.Dispatcher
this.pipeline.Publish();
}
- // PersistenceContext.Open doesn't do anything, so it's ok to call [....].
+ // PersistenceContext.Open doesn't do anything, so it's ok to call sync.
this.context.Open(TimeSpan.Zero);
IAsyncResult result;
diff --git a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/WorkflowServiceInstance.cs b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/WorkflowServiceInstance.cs
index cf3db836fbd..539cdf5804b 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/WorkflowServiceInstance.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/Dispatcher/WorkflowServiceInstance.cs
@@ -42,7 +42,7 @@ namespace System.ServiceModel.Activities.Dispatcher
// NOTE: There is a small period of time where no one things they own the lock. Exit has "handed
// off the lock by calling Set on the waiter, but the waiter has not yet executed the code
// which sets ownsLock to true.
- // [....] Handoff - During [....] handoff the ref bool ownsLock will be set accordingly by the
+ // Sync Handoff - During sync handoff the ref bool ownsLock will be set accordingly by the
// Acquire* method. These methods should always be called in a try block with a finally
// which calls ReleaseLock.
// Async Handoff - During async handoff the callback can assume it has the lock if either
@@ -655,12 +655,12 @@ namespace System.ServiceModel.Activities.Dispatcher
{
if (!this.idleWaiters.Remove(idleEvent))
{
- // If it wasn't in the list that means we ----d between throwing from Wait
+ // If it wasn't in the list that means we raced between throwing from Wait
// and setting the event. This thread now is responsible for the lock.
if (waitException is TimeoutException)
{
// In the case of Timeout we let setting the event win and signal to
- // ---- the exception
+ // swallow the exception
ownsLock = true;
return false;
@@ -814,7 +814,7 @@ namespace System.ServiceModel.Activities.Dispatcher
if (!this.executorLock.Exit(isRunnable, ref ownsLock))
{
// No one was waiting, but we had activeOperations (otherwise we would not have gotten
- // to this branch of the if). This means that we ----d with a timeout and should resume
+ // to this branch of the if). This means that we raced with a timeout and should resume
// the workflow's execution. If we don't resume execution we'll just hang ... no one
// has the lock, the workflow is ready to execute, but it is not.
Fx.Assert(this.activeOperations > 0, "We should always have active operations otherwise we should have taken a different code path.");
@@ -1653,8 +1653,8 @@ namespace System.ServiceModel.Activities.Dispatcher
result = this.Controller.ScheduleBookmarkResumption(bookmark, value, bookmarkScope);
}
- if (result == BookmarkResumptionResult.NotReady && !bufferedReceiveEnabled)
- {
+ if (result == BookmarkResumptionResult.NotReady && !bufferedReceiveEnabled && (this.serviceHost.FilterResumeTimeout.TotalSeconds > 0))
+ {
if (waitHandle == null)
{
waitHandle = new AsyncWaitHandle();
@@ -3007,7 +3007,8 @@ namespace System.ServiceModel.Activities.Dispatcher
this.value = value;
this.bookmarkScope = bookmarkScope;
this.timeoutHelper = new TimeoutHelper(timeout);
- // we are using default hard coded timeout of 1 minutes
+ // The value for WorkflowServiceHost.FilterResumeTimeout comes from the AppSetting
+ // "microsoft:WorkflowServices:FilterResumeTimeoutInSeconds"
this.nextIdleTimeoutHelper = new TimeoutHelper(instance.serviceHost.FilterResumeTimeout);
this.isResumeProtocolBookmark = isResumeProtocolBookmark;
this.OnCompleting = onCompleting;
@@ -3195,8 +3196,8 @@ namespace System.ServiceModel.Activities.Dispatcher
bool bufferedReceiveEnabled = this.isResumeProtocolBookmark && this.instance.BufferedReceiveManager != null;
this.resumptionResult = this.instance.ResumeProtocolBookmarkCore(this.bookmark, this.value, this.bookmarkScope, bufferedReceiveEnabled, ref this.waitHandle, ref this.ownsLock);
- if (this.resumptionResult == BookmarkResumptionResult.NotReady && !bufferedReceiveEnabled)
- {
+ if (this.resumptionResult == BookmarkResumptionResult.NotReady && !bufferedReceiveEnabled && (this.instance.serviceHost.FilterResumeTimeout.TotalSeconds > 0))
+ {
if (nextIdleCallback == null)
{
nextIdleCallback = new Action<object, TimeoutException>(OnNextIdle);
@@ -3267,7 +3268,7 @@ namespace System.ServiceModel.Activities.Dispatcher
{
// If the waitHandle is not in either of these lists then it must have
// been removed by the Set() path - that means we've got the lock, so let's
- // just run with it (IE - ---- the exception).
+ // just run with it (IE - swallow the exception).
if (thisPtr.instance.nextIdleWaiters.Remove(thisPtr.waitHandle) || thisPtr.instance.idleWaiters.Remove(thisPtr.waitHandle))
{
thisPtr.Complete(false, asyncException);
@@ -5310,7 +5311,7 @@ namespace System.ServiceModel.Activities.Dispatcher
{
if (!asyncWaiter.Owner.waiters.Remove(asyncWaiter.Token))
{
- // We ----d between timing out and getting signaled.
+ // We raced between timing out and getting signaled.
// We'll take the signal which means we now own the lock
completionException = null;
@@ -5603,7 +5604,7 @@ namespace System.ServiceModel.Activities.Dispatcher
{
// In the interest of allocating less objects we don't implement
// the full async pattern here. Instead, we've flattened it to
- // do the [....] part and then optionally delegate down to the inner
+ // do the sync part and then optionally delegate down to the inner
// BeginCommit.
if (this.contextOwnedTransaction != null)
{
diff --git a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/IWorkflowInstanceManagement.cs b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/IWorkflowInstanceManagement.cs
index c46da590cf6..f0ac8481d03 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/IWorkflowInstanceManagement.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/IWorkflowInstanceManagement.cs
@@ -76,7 +76,7 @@ namespace System.ServiceModel.Activities
void EndUnsuspend(IAsyncResult result);
//Transacted Operation
- //
+ // TODO, 21237, Post One-Way Tx flow support below operations should be changed to Oneway.
[OperationContract(Name = XD2.WorkflowInstanceManagementService.TransactedCancel)]
[TransactionFlow(TransactionFlowOption.Allowed)]
diff --git a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/InternalSendMessage.cs b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/InternalSendMessage.cs
index 83519049410..ffbe82df40d 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/InternalSendMessage.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/InternalSendMessage.cs
@@ -1830,7 +1830,7 @@ namespace System.ServiceModel.Activities
{
if (asyncSend)
{
- //If there is a transaction that we could be flowing out then we create this blocking clone to [....] with the commit processing.
+ //If there is a transaction that we could be flowing out then we create this blocking clone to sync with the commit processing.
if (this.currentTransactionContext != null)
{
this.dependentClone = this.currentTransactionContext.DependentClone(DependentCloneOption.BlockCommitUntilComplete);
@@ -2664,9 +2664,9 @@ namespace System.ServiceModel.Activities
property.Instance.CorrelationSynchronizer.NotifyRequestSetByChannel(new Action<Message>(OnWorkflowCorrelationProcessingComplete));
// We have to do this dance with the lock because
- // we aren't sure if we've been running [....] or not.
+ // we aren't sure if we've been running sync or not.
// NOTE: It is possible for us to go async and
- // still decide we're completing [....]. This is fine
+ // still decide we're completing sync. This is fine
// as it does not violate the async pattern since
// the work is done by the time Begin completes.
completeSelf = false;
@@ -2697,9 +2697,9 @@ namespace System.ServiceModel.Activities
this.message = updatedMessage;
// We have to do this dance with the lock because
- // we aren't sure if we've been running [....] or not.
+ // we aren't sure if we've been running sync or not.
// NOTE: It is possible for us to go async and
- // still decide we're completing [....]. This is fine
+ // still decide we're completing sync. This is fine
// as it does not violate the async pattern since
// the work is done by the time Begin completes.
bool completeSelf = false;
diff --git a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/SerializerOption.cs b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/SerializerOption.cs
index 0f155775877..fd8f1477dbb 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/SerializerOption.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/SerializerOption.cs
@@ -12,4 +12,4 @@ namespace System.ServiceModel.Activities
DataContractSerializer,
XmlSerializer
};
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/WorkflowOperationContext.cs b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/WorkflowOperationContext.cs
index d9edb71a70f..812d50813d4 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/WorkflowOperationContext.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/WorkflowOperationContext.cs
@@ -94,7 +94,7 @@ namespace System.ServiceModel.Activities
try
{
- // set activity ID on the executing thread (Bug 113386)
+ // set activity ID on the executing thread (
if (TraceUtility.MessageFlowTracingOnly)
{
this.e2eActivityId = TraceUtility.GetReceivedActivityId(this.OperationContext);
diff --git a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/WorkflowService.cs b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/WorkflowService.cs
index ff7cacca106..f955b0e8c45 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/WorkflowService.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/WorkflowService.cs
@@ -295,6 +295,10 @@ namespace System.ServiceModel.Activities
SkipValidatingRootConfiguration = source.SkipValidatingRootConfiguration,
PrepareForRuntime = source.PrepareForRuntime,
Environment = source.Environment,
+ // Retain the same cancellation token. Otherwise we can't cancel the validation of WorkflowService objects
+ // which can make the designer unreponsive if the validation takes a long time.
+ CancellationToken = source.CancellationToken
+
};
foreach (KeyValuePair<Type, IList<Constraint>> constrants in source.AdditionalConstraints)
diff --git a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/WorkflowServiceHost.cs b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/WorkflowServiceHost.cs
index 35b49245a6d..3574b87ff09 100644
--- a/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/WorkflowServiceHost.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Activities/System/ServiceModel/Activities/WorkflowServiceHost.cs
@@ -31,7 +31,6 @@ namespace System.ServiceModel.Activities
static readonly Type mexBehaviorType = typeof(ServiceMetadataBehavior);
static readonly TimeSpan defaultPersistTimeout = TimeSpan.FromSeconds(30);
static readonly TimeSpan defaultTrackTimeout = TimeSpan.FromSeconds(30);
- static readonly TimeSpan defaultFilterResumeTimeout = TimeSpan.FromMinutes(1);
static readonly Type baseActivityType = typeof(Activity);
static readonly Type correlationQueryBehaviorType = typeof(CorrelationQueryBehavior);
static readonly Type bufferedReceiveServiceBehaviorType = typeof(BufferedReceiveServiceBehavior);
@@ -482,7 +481,7 @@ namespace System.ServiceModel.Activities
this.PersistTimeout = defaultPersistTimeout;
this.TrackTimeout = defaultTrackTimeout;
- this.FilterResumeTimeout = defaultFilterResumeTimeout;
+ this.FilterResumeTimeout = TimeSpan.FromSeconds(AppSettings.FilterResumeTimeoutInSeconds);
}
protected override void InitializeRuntime()
diff --git a/mcs/class/referencesource/System.ServiceModel.Channels/AssemblyInfo.cs b/mcs/class/referencesource/System.ServiceModel.Channels/AssemblyInfo.cs
index 8bf65c7eefa..fc11912b0ff 100644
--- a/mcs/class/referencesource/System.ServiceModel.Channels/AssemblyInfo.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Channels/AssemblyInfo.cs
@@ -25,4 +25,4 @@ using System.Windows.Markup;
// Friend assemblies
[assembly: InternalsVisibleToAttribute("NetFx.Checkin.Common.NetFxFriends, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
-[assembly: InternalsVisibleToAttribute("System.ServiceModel.Friend, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")]
+[assembly: InternalsVisibleToAttribute("System.ServiceModel.Friend, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")] \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/ByteStreamMessage.cs b/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/ByteStreamMessage.cs
index 8e8428a6497..7a76f6e4a21 100644
--- a/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/ByteStreamMessage.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/ByteStreamMessage.cs
@@ -8,6 +8,7 @@ namespace System.ServiceModel.Channels
using System.IO;
using System.Net.Http;
using System.Runtime;
+ using System.Threading.Tasks;
using System.Xml;
public static class ByteStreamMessage
@@ -552,6 +553,13 @@ namespace System.ServiceModel.Channels
static bool HandleWriteBodyContents(IAsyncResult result)
{
+ // If result is a task, we need to get the result so that exceptions are bubbled up in case the task is faulted.
+ Task t = result as Task;
+ if (t != null)
+ {
+ t.GetAwaiter().GetResult();
+ }
+
WriteBodyContentsAsyncResult thisPtr = (WriteBodyContentsAsyncResult)result.AsyncState;
thisPtr.writer.WriteEndElement();
return true;
diff --git a/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/UdpChannelBase.cs b/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/UdpChannelBase.cs
index bd420a64d62..6e0f45677ef 100644
--- a/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/UdpChannelBase.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/UdpChannelBase.cs
@@ -481,7 +481,7 @@ namespace System.ServiceModel.Channels
// AsyncResult.AsyncCompletionWrapperCallback takes care of catching the exceptions for us.
IAsyncResult result = this.channel.UdpOutputChannel.BeginClose(this.timeoutHelper.RemainingTime(), this.PrepareAsyncCompletion(completeCloseOutputChannelCallback), this);
- // SyncContinue calls CompleteCloseOutputChannel for us in [....] case.
+ // SyncContinue calls CompleteCloseOutputChannel for us in sync case.
return this.SyncContinue(result);
}
@@ -490,7 +490,7 @@ namespace System.ServiceModel.Channels
// AsyncResult.AsyncCompletionWrapperCallback takes care of catching the exceptions for us.
IAsyncResult result = this.baseBeginClose(this.timeoutHelper.RemainingTime(), this.PrepareAsyncCompletion(completeBaseCloseCallback), this);
- // SyncContinue calls CompleteBaseClose for us in [....] case.
+ // SyncContinue calls CompleteBaseClose for us in sync case.
return this.SyncContinue(result);
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/UdpOutputChannel.cs b/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/UdpOutputChannel.cs
index 2a932ecbe35..ebc66d5ea6b 100644
--- a/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/UdpOutputChannel.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/UdpOutputChannel.cs
@@ -664,7 +664,7 @@ namespace System.ServiceModel.Channels
if (completedSynchronously && this.retransmissionEnabled)
{
- // initial send completed [....], now we need to start the retransmission process...
+ // initial send completed sync, now we need to start the retransmission process...
completedSynchronously = this.BeginRetransmission();
}
diff --git a/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/UdpSocket.cs b/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/UdpSocket.cs
index 2b746ed3fb4..3ee507f1b3f 100644
--- a/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/UdpSocket.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/UdpSocket.cs
@@ -222,8 +222,8 @@ namespace System.ServiceModel.Channels
if (socketException.ErrorCode == UnsafeNativeMethods.ERROR_INVALID_HANDLE)
{
- //This would likely indicate a bug in our ref-counting
- //for instance, a channel is closing the socket multiple times...
+ //This would likely indicate a
+
Fx.Assert("The socket appears to have been closed unexpectedly. This probably indicates incorrect ref counting (i.e. a channel is closing the socket multiple times)");
result = new CommunicationObjectAbortedException(socketException.Message, socketException);
}
diff --git a/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/XmlByteStreamWriter.cs b/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/XmlByteStreamWriter.cs
index dd553772c3a..d337effa367 100644
--- a/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/XmlByteStreamWriter.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Channels/System/ServiceModel/Channels/XmlByteStreamWriter.cs
@@ -7,6 +7,7 @@ namespace System.ServiceModel.Channels
using System;
using System.IO;
using System.Runtime;
+ using System.Threading;
using System.Threading.Tasks;
using System.Xml;
@@ -15,6 +16,7 @@ namespace System.ServiceModel.Channels
bool ownsStream;
ByteStreamWriterState state;
Stream stream;
+ XmlWriterSettings settings;
public XmlByteStreamWriter(Stream stream, bool ownsStream)
{
@@ -30,6 +32,24 @@ namespace System.ServiceModel.Channels
get { return ByteStreamWriterStateToWriteState(this.state); }
}
+ public override XmlWriterSettings Settings
+ {
+ get
+ {
+ if (settings == null)
+ {
+ XmlWriterSettings newSettings = new XmlWriterSettings()
+ {
+ Async = true
+ };
+
+ Interlocked.CompareExchange<XmlWriterSettings>(ref this.settings, newSettings, null);
+ }
+
+ return this.settings;
+ }
+ }
+
public override void Close()
{
if (this.state != ByteStreamWriterState.Closed)
diff --git a/mcs/class/referencesource/System.ServiceModel.Discovery/AssemblyInfo.cs b/mcs/class/referencesource/System.ServiceModel.Discovery/AssemblyInfo.cs
index 4e2db6bd508..66c938965ed 100644
--- a/mcs/class/referencesource/System.ServiceModel.Discovery/AssemblyInfo.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Discovery/AssemblyInfo.cs
@@ -3,4 +3,4 @@ using System.Runtime.CompilerServices;
// Friends Assembly
[assembly: InternalsVisibleTo("System.ServiceModel.Friend, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")]
-// Partial Trust :
+// Partial Trust : \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel.Discovery/System/ServiceModel/Discovery/AnnouncementService.cs b/mcs/class/referencesource/System.ServiceModel.Discovery/System/ServiceModel/Discovery/AnnouncementService.cs
index 89dd02a9aff..f464d031ec0 100644
--- a/mcs/class/referencesource/System.ServiceModel.Discovery/System/ServiceModel/Discovery/AnnouncementService.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Discovery/System/ServiceModel/Discovery/AnnouncementService.cs
@@ -46,7 +46,7 @@ namespace System.ServiceModel.Discovery
void IAnnouncementContractApril2005.HelloOperation(HelloMessageApril2005 message)
{
- Fx.Assert("The [....] method IAnnouncementContractApril2005.HelloOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IAnnouncementContractApril2005.HelloOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IAnnouncementContractApril2005.BeginHelloOperation(HelloMessageApril2005 message, AsyncCallback callback, object state)
@@ -61,7 +61,7 @@ namespace System.ServiceModel.Discovery
void IAnnouncementContractApril2005.ByeOperation(ByeMessageApril2005 message)
{
- Fx.Assert("The [....] method IAnnouncementContractApril2005.ByeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IAnnouncementContractApril2005.ByeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IAnnouncementContractApril2005.BeginByeOperation(ByeMessageApril2005 message, AsyncCallback callback, object state)
@@ -76,7 +76,7 @@ namespace System.ServiceModel.Discovery
void IAnnouncementContract11.HelloOperation(HelloMessage11 message)
{
- Fx.Assert("The [....] method IAnnouncementContract11.HelloOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IAnnouncementContract11.HelloOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IAnnouncementContract11.BeginHelloOperation(HelloMessage11 message, AsyncCallback callback, object state)
@@ -91,7 +91,7 @@ namespace System.ServiceModel.Discovery
void IAnnouncementContract11.ByeOperation(ByeMessage11 message)
{
- Fx.Assert("The [....] method IAnnouncementContract11.ByeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IAnnouncementContract11.ByeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IAnnouncementContract11.BeginByeOperation(ByeMessage11 message, AsyncCallback callback, object state)
@@ -106,7 +106,7 @@ namespace System.ServiceModel.Discovery
void IAnnouncementContractCD1.HelloOperation(HelloMessageCD1 message)
{
- Fx.Assert("The [....] method IAnnouncementContractCD1.HelloOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IAnnouncementContractCD1.HelloOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IAnnouncementContractCD1.BeginHelloOperation(HelloMessageCD1 message, AsyncCallback callback, object state)
@@ -121,7 +121,7 @@ namespace System.ServiceModel.Discovery
void IAnnouncementContractCD1.ByeOperation(ByeMessageCD1 message)
{
- Fx.Assert("The [....] method IAnnouncementContractCD1.ByeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IAnnouncementContractCD1.ByeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IAnnouncementContractCD1.BeginByeOperation(ByeMessageCD1 message, AsyncCallback callback, object state)
diff --git a/mcs/class/referencesource/System.ServiceModel.Discovery/System/ServiceModel/Discovery/DiscoveryProxy.cs b/mcs/class/referencesource/System.ServiceModel.Discovery/System/ServiceModel/Discovery/DiscoveryProxy.cs
index 8b32eb3d74b..7f2946925e5 100644
--- a/mcs/class/referencesource/System.ServiceModel.Discovery/System/ServiceModel/Discovery/DiscoveryProxy.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Discovery/System/ServiceModel/Discovery/DiscoveryProxy.cs
@@ -65,7 +65,7 @@ namespace System.ServiceModel.Discovery
void IAnnouncementContractApril2005.HelloOperation(HelloMessageApril2005 message)
{
- Fx.Assert("The [....] method IAnnouncementContractApril2005.HelloOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IAnnouncementContractApril2005.HelloOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IAnnouncementContractApril2005.BeginHelloOperation(HelloMessageApril2005 message, AsyncCallback callback, object state)
@@ -80,7 +80,7 @@ namespace System.ServiceModel.Discovery
void IAnnouncementContractApril2005.ByeOperation(ByeMessageApril2005 message)
{
- Fx.Assert("The [....] method IAnnouncementContractApril2005.ByeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IAnnouncementContractApril2005.ByeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IAnnouncementContractApril2005.BeginByeOperation(ByeMessageApril2005 message, AsyncCallback callback, object state)
@@ -95,7 +95,7 @@ namespace System.ServiceModel.Discovery
void IAnnouncementContract11.HelloOperation(HelloMessage11 message)
{
- Fx.Assert("The [....] method IAnnouncementContract11.HelloOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IAnnouncementContract11.HelloOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IAnnouncementContract11.BeginHelloOperation(HelloMessage11 message, AsyncCallback callback, object state)
@@ -110,7 +110,7 @@ namespace System.ServiceModel.Discovery
void IAnnouncementContract11.ByeOperation(ByeMessage11 message)
{
- Fx.Assert("The [....] method IAnnouncementContract11.ByeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IAnnouncementContract11.ByeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IAnnouncementContract11.BeginByeOperation(ByeMessage11 message, AsyncCallback callback, object state)
@@ -125,7 +125,7 @@ namespace System.ServiceModel.Discovery
void IAnnouncementContractCD1.HelloOperation(HelloMessageCD1 message)
{
- Fx.Assert("The [....] method IAnnouncementContractCD1.HelloOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IAnnouncementContractCD1.HelloOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IAnnouncementContractCD1.BeginHelloOperation(HelloMessageCD1 message, AsyncCallback callback, object state)
@@ -140,7 +140,7 @@ namespace System.ServiceModel.Discovery
void IAnnouncementContractCD1.ByeOperation(ByeMessageCD1 message)
{
- Fx.Assert("The [....] method IAnnouncementContractCD1.ByeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IAnnouncementContractCD1.ByeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IAnnouncementContractCD1.BeginByeOperation(ByeMessageCD1 message, AsyncCallback callback, object state)
@@ -155,7 +155,7 @@ namespace System.ServiceModel.Discovery
void IDiscoveryContractApril2005.ProbeOperation(ProbeMessageApril2005 request)
{
- Fx.Assert("The [....] method IDiscoveryContractApril2005.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractApril2005.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IDiscoveryContractApril2005.BeginProbeOperation(ProbeMessageApril2005 request, AsyncCallback callback, object state)
@@ -170,7 +170,7 @@ namespace System.ServiceModel.Discovery
void IDiscoveryContractApril2005.ResolveOperation(ResolveMessageApril2005 request)
{
- Fx.Assert("The [....] method IDiscoveryContractApril2005.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractApril2005.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IDiscoveryContractApril2005.BeginResolveOperation(ResolveMessageApril2005 request, AsyncCallback callback, object state)
@@ -185,7 +185,7 @@ namespace System.ServiceModel.Discovery
void IDiscoveryContractAdhoc11.ProbeOperation(ProbeMessage11 request)
{
- Fx.Assert("The [....] method IDiscoveryContractAdhoc11.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractAdhoc11.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IDiscoveryContractAdhoc11.BeginProbeOperation(ProbeMessage11 request, AsyncCallback callback, object state)
@@ -200,7 +200,7 @@ namespace System.ServiceModel.Discovery
void IDiscoveryContractAdhoc11.ResolveOperation(ResolveMessage11 request)
{
- Fx.Assert("The [....] method IDiscoveryContractAdhoc11.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractAdhoc11.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IDiscoveryContractAdhoc11.BeginResolveOperation(ResolveMessage11 request, AsyncCallback callback, object state)
@@ -215,7 +215,7 @@ namespace System.ServiceModel.Discovery
ProbeMatchesMessage11 IDiscoveryContractManaged11.ProbeOperation(ProbeMessage11 request)
{
- Fx.Assert("The [....] method IDiscoveryContractManaged11.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractManaged11.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
return null;
}
@@ -231,7 +231,7 @@ namespace System.ServiceModel.Discovery
ResolveMatchesMessage11 IDiscoveryContractManaged11.ResolveOperation(ResolveMessage11 request)
{
- Fx.Assert("The [....] method IDiscoveryContractManaged11.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractManaged11.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
return null;
}
@@ -247,7 +247,7 @@ namespace System.ServiceModel.Discovery
void IDiscoveryContractAdhocCD1.ProbeOperation(ProbeMessageCD1 request)
{
- Fx.Assert("The [....] method IDiscoveryContractAdhocCD1.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractAdhocCD1.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IDiscoveryContractAdhocCD1.BeginProbeOperation(ProbeMessageCD1 request, AsyncCallback callback, object state)
@@ -262,7 +262,7 @@ namespace System.ServiceModel.Discovery
void IDiscoveryContractAdhocCD1.ResolveOperation(ResolveMessageCD1 request)
{
- Fx.Assert("The [....] method IDiscoveryContractAdhocCD1.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractAdhocCD1.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IDiscoveryContractAdhocCD1.BeginResolveOperation(ResolveMessageCD1 request, AsyncCallback callback, object state)
@@ -277,7 +277,7 @@ namespace System.ServiceModel.Discovery
ProbeMatchesMessageCD1 IDiscoveryContractManagedCD1.ProbeOperation(ProbeMessageCD1 request)
{
- Fx.Assert("The [....] method IDiscoveryContractManagedCD1.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractManagedCD1.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
return null;
}
@@ -293,7 +293,7 @@ namespace System.ServiceModel.Discovery
ResolveMatchesMessageCD1 IDiscoveryContractManagedCD1.ResolveOperation(ResolveMessageCD1 request)
{
- Fx.Assert("The [....] method IDiscoveryContractManagedCD1.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractManagedCD1.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
return null;
}
diff --git a/mcs/class/referencesource/System.ServiceModel.Discovery/System/ServiceModel/Discovery/DiscoveryService.cs b/mcs/class/referencesource/System.ServiceModel.Discovery/System/ServiceModel/Discovery/DiscoveryService.cs
index b7119cb08f0..98adc930deb 100644
--- a/mcs/class/referencesource/System.ServiceModel.Discovery/System/ServiceModel/Discovery/DiscoveryService.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Discovery/System/ServiceModel/Discovery/DiscoveryService.cs
@@ -69,7 +69,7 @@ namespace System.ServiceModel.Discovery
void IDiscoveryContractApril2005.ProbeOperation(ProbeMessageApril2005 request)
{
- Fx.Assert("The [....] method IDiscoveryContractApril2005.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractApril2005.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IDiscoveryContractApril2005.BeginProbeOperation(ProbeMessageApril2005 request, AsyncCallback callback, object state)
@@ -84,7 +84,7 @@ namespace System.ServiceModel.Discovery
void IDiscoveryContractApril2005.ResolveOperation(ResolveMessageApril2005 request)
{
- Fx.Assert("The [....] method IDiscoveryContractApril2005.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractApril2005.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IDiscoveryContractApril2005.BeginResolveOperation(ResolveMessageApril2005 request, AsyncCallback callback, object state)
@@ -99,7 +99,7 @@ namespace System.ServiceModel.Discovery
void IDiscoveryContractAdhoc11.ProbeOperation(ProbeMessage11 request)
{
- Fx.Assert("The [....] method IDiscoveryContractAdhoc11.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractAdhoc11.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IDiscoveryContractAdhoc11.BeginProbeOperation(ProbeMessage11 request, AsyncCallback callback, object state)
@@ -114,7 +114,7 @@ namespace System.ServiceModel.Discovery
void IDiscoveryContractAdhoc11.ResolveOperation(ResolveMessage11 request)
{
- Fx.Assert("The [....] method IDiscoveryContractAdhoc11.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractAdhoc11.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IDiscoveryContractAdhoc11.BeginResolveOperation(ResolveMessage11 request, AsyncCallback callback, object state)
@@ -129,7 +129,7 @@ namespace System.ServiceModel.Discovery
ProbeMatchesMessage11 IDiscoveryContractManaged11.ProbeOperation(ProbeMessage11 request)
{
- Fx.Assert("The [....] method IDiscoveryContractManaged11.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractManaged11.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
return null;
}
@@ -145,7 +145,7 @@ namespace System.ServiceModel.Discovery
ResolveMatchesMessage11 IDiscoveryContractManaged11.ResolveOperation(ResolveMessage11 request)
{
- Fx.Assert("The [....] method IDiscoveryContractManaged11.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractManaged11.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
return null;
}
@@ -162,7 +162,7 @@ namespace System.ServiceModel.Discovery
void IDiscoveryContractAdhocCD1.ProbeOperation(ProbeMessageCD1 request)
{
- Fx.Assert("The [....] method IDiscoveryContractAdhocCD1.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractAdhocCD1.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IDiscoveryContractAdhocCD1.BeginProbeOperation(ProbeMessageCD1 request, AsyncCallback callback, object state)
@@ -177,7 +177,7 @@ namespace System.ServiceModel.Discovery
void IDiscoveryContractAdhocCD1.ResolveOperation(ResolveMessageCD1 request)
{
- Fx.Assert("The [....] method IDiscoveryContractAdhocCD1.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractAdhocCD1.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
}
IAsyncResult IDiscoveryContractAdhocCD1.BeginResolveOperation(ResolveMessageCD1 request, AsyncCallback callback, object state)
@@ -192,7 +192,7 @@ namespace System.ServiceModel.Discovery
ProbeMatchesMessageCD1 IDiscoveryContractManagedCD1.ProbeOperation(ProbeMessageCD1 request)
{
- Fx.Assert("The [....] method IDiscoveryContractManagedCD1.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractManagedCD1.ProbeOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
return null;
}
@@ -208,7 +208,7 @@ namespace System.ServiceModel.Discovery
ResolveMatchesMessageCD1 IDiscoveryContractManagedCD1.ResolveOperation(ResolveMessageCD1 request)
{
- Fx.Assert("The [....] method IDiscoveryContractManagedCD1.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
+ Fx.Assert("The sync method IDiscoveryContractManagedCD1.ResolveOperation must not get invoked. It is marked with PreferAsyncInvocation flag.");
return null;
}
diff --git a/mcs/class/referencesource/System.ServiceModel.Internals/AssemblyInfo.cs b/mcs/class/referencesource/System.ServiceModel.Internals/AssemblyInfo.cs
index 83770340695..715b38b201e 100644
--- a/mcs/class/referencesource/System.ServiceModel.Internals/AssemblyInfo.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Internals/AssemblyInfo.cs
@@ -58,7 +58,7 @@ using System.Security.Permissions;
[assembly: InternalsVisibleTo("System.Activities.DurableInstancing, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
[assembly: InternalsVisibleTo("XsdBuildTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
-//
+// TODO, 62799, fix this to be System.Runtime.Friend
[assembly: InternalsVisibleTo("System.ServiceModel.Friend, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")]
[assembly: InternalsVisibleTo("Microsoft.CDF.Test.Persistence, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
[assembly: InternalsVisibleTo("CDF.CIT.Scenarios.Common, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
diff --git a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/AsyncResult.cs b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/AsyncResult.cs
index 652bb872179..996b8becef2 100644
--- a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/AsyncResult.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/AsyncResult.cs
@@ -402,7 +402,7 @@ namespace System.Runtime
return asyncResult;
}
- // can be utilized by subclasses to write core completion code for both the [....] and async paths
+ // can be utilized by subclasses to write core completion code for both the sync and async paths
// in one location, signalling chainable synchronous completion with the boolean result,
// and leveraging PrepareAsyncCompletion for conversion to an AsyncCallback.
// NOTE: requires that "this" is passed in as the state object to the asynchronous sub-call being used with a completion routine.
diff --git a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/DiagnosticTraceBase.cs b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/DiagnosticTraceBase.cs
index 5089c872773..b05c6e8fb8d 100644
--- a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/DiagnosticTraceBase.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/DiagnosticTraceBase.cs
@@ -482,7 +482,7 @@ namespace System.Runtime.Diagnostics
{
OnShutdownTracing();
}
-#pragma warning suppress 56500 //[....]; Taken care of by FxCop
+#pragma warning suppress 56500 //Microsoft; Taken care of by FxCop
catch (Exception exception)
{
if (Fx.IsFatal(exception))
diff --git a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/EtwDiagnosticTrace.cs b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/EtwDiagnosticTrace.cs
index 4a81f353ca1..c2a0ca931c3 100644
--- a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/EtwDiagnosticTrace.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/EtwDiagnosticTrace.cs
@@ -642,7 +642,7 @@ namespace System.Runtime.Diagnostics
{
this.etwProvider.Dispose();
//no need to set this.etwProvider as null as Dispose() provides the necessary guard
- //leaving it non-null protects trace calls from NullReferenceEx, CSDMain Bug 136228
+ //leaving it non-null protects trace calls from NullReferenceEx, CSDMain
}
}
catch (Exception exception)
diff --git a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/EventLogCategory.cs b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/EventLogCategory.cs
index 1417a78c8ac..033f09386fa 100644
--- a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/EventLogCategory.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/EventLogCategory.cs
@@ -23,4 +23,4 @@ namespace System.Runtime.Diagnostics
ListenerAdapter
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/EventLogEventId.cs b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/EventLogEventId.cs
index eeb8e04a67c..d7fcf0b3d22 100644
--- a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/EventLogEventId.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Diagnostics/EventLogEventId.cs
@@ -18,7 +18,7 @@ namespace System.Runtime.Diagnostics
// The Severity and Facility assigned in EventLog.mc must match those assigned via the EventId here.
// If the EventId's do not match, the EventViewer will not be able to display the strings defined in EventLog.mc correctly. In this case, the following error message will be included in the logged event:
// "The description for Event ID XX from source System.ServiceModel 4.0.0.0 cannot be found..."
- // To inspect the value ----igend to the enum elements below, build 'ndp\cdf\src\System.ServiceModel.Internals', and inspect System.ServiceModel.Internals\System.ServiceModel.Internals.asmmeta
+ // To inspect the value assigend to the enum elements below, build 'ndp\cdf\src\System.ServiceModel.Internals', and inspect System.ServiceModel.Internals\System.ServiceModel.Internals.asmmeta
// To inspect the EventId generated from EventLog.mc, build 'ndp\cdf\src\WCF\EventLog', and open ServiceModelEvents.dll.mui with \\indigofs\PrivateLabDebugShare\sarada\RPFRecorder\RPFRecorder.exe (convert EventId from decimal to hex).
// You could also use any other method of viewing ServiceModelEvents.dll.mui which would allow you to inspect the EventId
enum EventLogEventId : uint
diff --git a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/IOThreadScheduler.cs b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/IOThreadScheduler.cs
index 7160ac29b92..a5185f4f5dd 100644
--- a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/IOThreadScheduler.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/IOThreadScheduler.cs
@@ -209,7 +209,7 @@ namespace System.Runtime
if (Bits.Count(ht) == -1)
{
// Use a temporary local here to store the result of the Interlocked.CompareExchange. This
- // works around a codegen bug in the 32-bit JIT (TFS 749182).
+ // works around a codegen
int interlockedResult = Interlocked.CompareExchange(ref this.headTail, ht + Bits.HiOne, ht);
if (ht == interlockedResult)
{
diff --git a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Interop/UnsafeNativeMethods.cs b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Interop/UnsafeNativeMethods.cs
index 5b7526842cc..8cc7d8e10e1 100644
--- a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Interop/UnsafeNativeMethods.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/Interop/UnsafeNativeMethods.cs
@@ -13,6 +13,7 @@ namespace System.Runtime.Interop
using System.Runtime.InteropServices;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.Diagnostics;
+ using FILETIME = System.Runtime.InteropServices.ComTypes.FILETIME;
[SuppressUnmanagedCodeSecurity]
static class UnsafeNativeMethods
@@ -34,7 +35,7 @@ namespace System.Runtime.Interop
internal uint Size;
[FieldOffset(12)]
internal int Reserved;
- }
+ }
[SuppressMessage(FxCop.Category.Security, FxCop.Rule.ReviewSuppressUnmanagedCodeSecurityUsage,
Justification = "This PInvoke call has been reviewed")]
@@ -73,7 +74,17 @@ namespace System.Runtime.Interop
[DllImport(KERNEL32, SetLastError = true)]
[ResourceExposure(ResourceScope.None)]
[SecurityCritical]
- public static extern void GetSystemTimeAsFileTime([Out] out long time);
+ private static extern void GetSystemTimeAsFileTime([Out] out FILETIME time);
+
+ [SecurityCritical]
+ public static void GetSystemTimeAsFileTime(out long time) {
+ FILETIME fileTime;
+ GetSystemTimeAsFileTime(out fileTime);
+ time = 0;
+ time |= (uint)fileTime.dwHighDateTime;
+ time <<= sizeof(uint) * 8;
+ time |= (uint)fileTime.dwLowDateTime;
+ }
[SuppressMessage(FxCop.Category.Security, FxCop.Rule.SpecifyMarshalingForPInvokeStringArguments, Justification = "")]
[DllImport(KERNEL32, SetLastError = true, CharSet = CharSet.Auto)]
diff --git a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/MruCache.cs b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/MruCache.cs
index 91555c98f88..dada2897fb8 100644
--- a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/MruCache.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/MruCache.cs
@@ -60,7 +60,7 @@ namespace System.Runtime
Fx.Assert(null != key, "");
// if anything goes wrong (duplicate entry, etc) we should
- // clear our caches so that we don't get out of [....]
+ // clear our caches so that we don't get out of sync
bool success = false;
try
{
diff --git a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/ThreadNeutralSemaphore.cs b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/ThreadNeutralSemaphore.cs
index 814d7819b53..054e0504faf 100644
--- a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/ThreadNeutralSemaphore.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/ThreadNeutralSemaphore.cs
@@ -105,7 +105,7 @@ namespace System.Runtime
{
if (!thisPtr.RemoveWaiter(data.Waiter))
{
- // The timeout ----d with Exit and exit won.
+ // The timeout raced with Exit and exit won.
// We've successfully entered.
exceptionToPropagate = null;
}
@@ -160,7 +160,7 @@ namespace System.Runtime
if (timedOut && !RemoveWaiter(waiter))
{
- // The timeout ----d with Exit and exit won.
+ // The timeout raced with Exit and exit won.
// We've successfully entered.
timedOut = false;
diff --git a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/TraceLevelHelper.cs b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/TraceLevelHelper.cs
index 2098afd1b62..9eaf540e6e1 100644
--- a/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/TraceLevelHelper.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Internals/System/Runtime/TraceLevelHelper.cs
@@ -10,7 +10,7 @@ namespace System.Runtime
using System.Diagnostics;
/// <remarks>
- /// [....] (11/15/10, CSDMain 194940) - Previously, this code first checked that the opcode was set to informational. If not, it would check
+ /// Microsoft (11/15/10, CSDMain 194940) - Previously, this code first checked that the opcode was set to informational. If not, it would check
/// the opcode name for start, stop, suspend, or resume and use that or return Information otherwise. This does not work well with the latest
/// ETW changes where almost every event has a task and opcode. With the old logic, if an opcode is set on the event with a level such as
/// warning or error, the level would be incorrectly reported in diagnostic tracing as informational. Also, start/stop/suspend/resume events
diff --git a/mcs/class/referencesource/System.ServiceModel.Routing/System/ServiceModel/Routing/RoutingService.cs b/mcs/class/referencesource/System.ServiceModel.Routing/System/ServiceModel/Routing/RoutingService.cs
index 32e9d3dcf99..d136269d2ad 100644
--- a/mcs/class/referencesource/System.ServiceModel.Routing/System/ServiceModel/Routing/RoutingService.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Routing/System/ServiceModel/Routing/RoutingService.cs
@@ -200,7 +200,7 @@ namespace System.ServiceModel.Routing
{
if (this.perMessageChannels != null)
{
- //This is for impersonation, thus it's supposed to complete [....]
+ //This is for impersonation, thus it's supposed to complete sync
IAsyncResult result = this.perMessageChannels.BeginClose(this.ChannelExtension.OperationTimeout, null, null);
this.perMessageChannels.EndClose(result);
this.perMessageChannels = null;
diff --git a/mcs/class/referencesource/System.ServiceModel.Web/GlobalSuppressions.cs b/mcs/class/referencesource/System.ServiceModel.Web/GlobalSuppressions.cs
index e430960c253..332b14376f2 100644
--- a/mcs/class/referencesource/System.ServiceModel.Web/GlobalSuppressions.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Web/GlobalSuppressions.cs
@@ -7,7 +7,7 @@ using System.Diagnostics.CodeAnalysis;
[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.ServiceModel.SR2.resources", MessageId = "Infos", Justification = "This represents the ParameterInfo class defined in System.Reflection")]
[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "namespace", Target = "System.Xml.Linq", MessageId = "Linq")]
-// [....], BEGIN FxCop violations for code in Microsoft.Web.Script.Services.*
+// krisragh, BEGIN FxCop violations for code in Microsoft.Web.Script.Services.*
[module: SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline", Scope = "member", Target = "Microsoft.Web.Script.Services.WebServiceTypeData..cctor()")]
[module: SuppressMessage("Reliability", "Reliability102:WrapExceptionsRule", Scope = "member", Target = "Microsoft.Web.Script.Services.WebServiceTypeData.ThrowCannotGenerateProxyForTypeError(System.Xml.XmlQualifiedName):System.Void")]
[module: SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", Scope = "member", Target = "Microsoft.Web.Script.Services.WebServiceClientProxyGenerator..ctor(System.String,System.Boolean)", MessageId = "debug")]
@@ -25,7 +25,7 @@ using System.Diagnostics.CodeAnalysis;
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Web.Script.Services.WebServiceParameterData.get_ParameterType():Microsoft.Web.Script.Services.WebServiceTypeData")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Web.Script.Services.WebServiceTypeData.set_TypeName(System.String):System.Void")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Web.Script.Services.WebServiceTypeData.set_TypeNamespace(System.String):System.Void")]
-// [....], END FxCop violations for code in Microsoft.Web.Script.Services.*
+// krisragh, END FxCop violations for code in Microsoft.Web.Script.Services.*
[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Runtime.Serialization.DataContractContentExtensions.ReadAsDataContract(System.ServiceModel.Web.Client.Http.HttpContent,System.Runtime.Serialization.DataContractSerializer):T")]
diff --git a/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Description/WebHttpBehavior.cs b/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Description/WebHttpBehavior.cs
index 7e9b5bf657e..83b5943fbc2 100644
--- a/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Description/WebHttpBehavior.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Description/WebHttpBehavior.cs
@@ -116,12 +116,12 @@ namespace System.ServiceModel.Description
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(SR2.CrossDomainJavascriptNotsupported));
}
-#pragma warning disable 56506 // [....], endpoint.Contract is never null
+#pragma warning disable 56506 // Microsoft, endpoint.Contract is never null
this.reflector = new XmlSerializerOperationBehavior.Reflector(endpoint.Contract.Namespace, null);
foreach (OperationDescription od in endpoint.Contract.Operations)
#pragma warning restore 56506
{
-#pragma warning disable 56506 // [....], clientRuntime.Operations is never null
+#pragma warning disable 56506 // Microsoft, clientRuntime.Operations is never null
if (clientRuntime.Operations.Contains(od.Name))
#pragma warning restore 56506
{
@@ -169,7 +169,7 @@ namespace System.ServiceModel.Description
{
this.HelpUri = new UriTemplate(HelpPage.OperationListHelpPageUriTemplate).BindByPosition(endpoint.ListenUri);
}
-#pragma warning disable 56506 // [....], endpoint.Contract is never null
+#pragma warning disable 56506 // Microsoft, endpoint.Contract is never null
this.reflector = new XmlSerializerOperationBehavior.Reflector(endpoint.Contract.Namespace, null);
#pragma warning restore 56506
@@ -177,12 +177,12 @@ namespace System.ServiceModel.Description
endpointDispatcher.AddressFilter = new PrefixEndpointAddressMessageFilter(endpoint.Address);
endpointDispatcher.ContractFilter = new MatchAllMessageFilter();
// operation selector
-#pragma warning disable 56506 // [....], endpointDispatcher.DispatchRuntime is never null
+#pragma warning disable 56506 // Microsoft, endpointDispatcher.DispatchRuntime is never null
endpointDispatcher.DispatchRuntime.OperationSelector = this.GetOperationSelector(endpoint);
#pragma warning restore 56506
// unhandled operation
string actionStarOperationName = null;
-#pragma warning disable 56506 // [....], endpoint.Contract is never null
+#pragma warning disable 56506 // Microsoft, endpoint.Contract is never null
foreach (OperationDescription od in endpoint.Contract.Operations)
#pragma warning restore 56506
{
@@ -197,7 +197,7 @@ namespace System.ServiceModel.Description
{
// WCF v1 installs any Action="*" op into UnhandledDispatchOperation, but WebHttpBehavior
// doesn't want this, so we 'move' that operation back into normal set of operations
-#pragma warning disable 56506 // [....], endpointDispatcher.DispatchRuntime.{Operations,UnhandledDispatchOperation} is never null
+#pragma warning disable 56506 // Microsoft, endpointDispatcher.DispatchRuntime.{Operations,UnhandledDispatchOperation} is never null
endpointDispatcher.DispatchRuntime.Operations.Add(
endpointDispatcher.DispatchRuntime.UnhandledDispatchOperation);
#pragma warning restore 56506
@@ -228,7 +228,7 @@ namespace System.ServiceModel.Description
jsonContentType = JsonMessageEncoderFactory.GetContentType(null);
}
-#pragma warning disable 56506 // [....], endpointDispatcher.DispatchRuntime.UnhandledDispatchOperation is never null
+#pragma warning disable 56506 // Microsoft, endpointDispatcher.DispatchRuntime.UnhandledDispatchOperation is never null
// always install UnhandledDispatchOperation (WebHttpDispatchOperationSelector may choose not to use it)
endpointDispatcher.DispatchRuntime.UnhandledDispatchOperation = new DispatchOperation(endpointDispatcher.DispatchRuntime, "*", WildcardAction, WildcardAction);
endpointDispatcher.DispatchRuntime.UnhandledDispatchOperation.DeserializeRequest = false;
@@ -239,13 +239,13 @@ namespace System.ServiceModel.Description
foreach (OperationDescription od in endpoint.Contract.Operations)
{
DispatchOperation dop = null;
-#pragma warning disable 56506 // [....], endpointDispatcher.DispatchRuntime, DispatchRuntime.Operations are never null
+#pragma warning disable 56506 // Microsoft, endpointDispatcher.DispatchRuntime, DispatchRuntime.Operations are never null
if (endpointDispatcher.DispatchRuntime.Operations.Contains(od.Name))
#pragma warning restore 56506
{
dop = endpointDispatcher.DispatchRuntime.Operations[od.Name];
}
-#pragma warning disable 56506 // [....], endpointDispatcher.DispatchRuntime.UnhandledDispatchOperation is never null
+#pragma warning disable 56506 // Microsoft, endpointDispatcher.DispatchRuntime.UnhandledDispatchOperation is never null
else if (endpointDispatcher.DispatchRuntime.UnhandledDispatchOperation.Name == od.Name)
{
dop = endpointDispatcher.DispatchRuntime.UnhandledDispatchOperation;
@@ -600,7 +600,7 @@ namespace System.ServiceModel.Description
WebMessageFormat responseFormat = GetResponseFormat(operationDescription);
// Determine if we should add a json formatter; If the ResponseFormat is json, we always add the json formatter even if the
- // operation is XmlSerializerFormat because the formatter constructor throws the exception: "json not valid with XmlSerializerFormat" [[....]]
+ // operation is XmlSerializerFormat because the formatter constructor throws the exception: "json not valid with XmlSerializerFormat" [Microsoft]
bool useJson = (responseFormat == WebMessageFormat.Json || SupportsJsonFormat(operationDescription));
IDispatchMessageFormatter innerFormatter;
diff --git a/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Description/WebScriptEnablingBehavior.cs b/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Description/WebScriptEnablingBehavior.cs
index bfa99823767..8913c7090b5 100644
--- a/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Description/WebScriptEnablingBehavior.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Description/WebScriptEnablingBehavior.cs
@@ -126,7 +126,7 @@ namespace System.ServiceModel.Description
public override void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
{
base.ApplyClientBehavior(endpoint, clientRuntime);
-#pragma warning disable 56506 // [....], clientRuntime.MessageInspectors is never null
+#pragma warning disable 56506 // Microsoft, clientRuntime.MessageInspectors is never null
clientRuntime.MessageInspectors.Add(new JsonClientMessageInspector());
#pragma warning restore 56506
}
@@ -142,7 +142,7 @@ namespace System.ServiceModel.Description
}
catch (XmlException exception)
{
- // [....], need to reference this resource string although fix for 13332 was removed
+ // Microsoft, need to reference this resource string although fix for 13332 was removed
throw System.ServiceModel.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(SR2.GetString(SR2.InvalidXmlCharactersInNameUsedWithPOSTMethod, string.Empty, string.Empty, string.Empty), exception));
}
}
@@ -151,7 +151,7 @@ namespace System.ServiceModel.Description
{
base.Validate(endpoint);
-#pragma warning disable 56506 // [....], endpoint.Contract is never null
+#pragma warning disable 56506 // Microsoft, endpoint.Contract is never null
foreach (OperationDescription operation in endpoint.Contract.Operations)
#pragma warning restore 56506
{
@@ -232,7 +232,7 @@ namespace System.ServiceModel.Description
throw System.ServiceModel.DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(
"endpointDispatcher", SR2.GetString(SR2.ChannelDispatcherMustBePresent));
}
-#pragma warning disable 56506 // [....], endpointDispatcher.ChannelDispatcher.ErrorHandlers never null
+#pragma warning disable 56506 // Microsoft, endpointDispatcher.ChannelDispatcher.ErrorHandlers never null
endpointDispatcher.ChannelDispatcher.ErrorHandlers.Add(new JsonErrorHandler(endpoint, endpointDispatcher.ChannelDispatcher.IncludeExceptionDetailInFaults));
#pragma warning restore 56506
}
diff --git a/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Dispatcher/HelpHtmlBuilder.cs b/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Dispatcher/HelpHtmlBuilder.cs
index 9f3b6f56998..8596a0101e7 100644
--- a/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Dispatcher/HelpHtmlBuilder.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Dispatcher/HelpHtmlBuilder.cs
@@ -165,7 +165,7 @@ namespace System.ServiceModel.Dispatcher
{
if (error != null)
{
- //TFS Bug 500275: it is not necessary to HtmlEncode the error.Message string here because XElement ctor will encode it.
+ //TFS
div.Add(new XElement(HtmlPElementName, SR2.GetString(SR2.HelpServerErrorProcessingRequestWithDetails, error.Message)));
div.Add(new XElement(HtmlPElementName, error.StackTrace ?? String.Empty));
}
@@ -179,7 +179,7 @@ namespace System.ServiceModel.Dispatcher
string encodedHelpLink = HttpUtility.HtmlEncode(helpUri.AbsoluteUri);
if (error != null)
{
- //TFS Bug 500275: XElement.Parse does not HtmlEncode the string passed to it, so we need to encode it before calling Parse.
+ //TFS
string errorMessage = AppSettings.DisableHtmlErrorPageExceptionHtmlEncoding ? error.Message : HttpUtility.HtmlEncode(error.Message);
div.Add(XElement.Parse(SR2.GetString(SR2.HelpServerErrorProcessingRequestWithDetailsAndLink, encodedHelpLink, errorMessage)));
div.Add(new XElement(HtmlPElementName, error.StackTrace ?? String.Empty));
@@ -363,7 +363,7 @@ namespace System.ServiceModel.Dispatcher
else
{
return new XElement(HtmlPElementName,
- new XElement(HtmlAElementName, new XAttribute(HtmlNameAttributeName, "#" + label), title),
+ new XElement(HtmlAElementName, new XAttribute(HtmlNameAttributeName, label), title),
new XElement(HtmlPreElementName, new XAttribute(HtmlClassAttributeName, label), content));
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Dispatcher/HttpUnhandledOperationInvoker.cs b/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Dispatcher/HttpUnhandledOperationInvoker.cs
index 22389d6d90b..523e330f016 100644
--- a/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Dispatcher/HttpUnhandledOperationInvoker.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Dispatcher/HttpUnhandledOperationInvoker.cs
@@ -36,7 +36,7 @@ namespace System.ServiceModel.Dispatcher
{
Message message = inputs[0] as Message;
outputs = null;
-#pragma warning disable 56506 // [....], message.Properties is never null
+#pragma warning disable 56506 // Microsoft, message.Properties is never null
if (message == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(
diff --git a/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Dispatcher/WebHttpDispatchOperationSelector.cs b/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Dispatcher/WebHttpDispatchOperationSelector.cs
index ee73a7fd9a4..dba20ddce99 100644
--- a/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Dispatcher/WebHttpDispatchOperationSelector.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Dispatcher/WebHttpDispatchOperationSelector.cs
@@ -47,7 +47,7 @@ namespace System.ServiceModel.Dispatcher
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(
SR2.GetString(SR2.EndpointAddressCannotBeNull)));
}
-#pragma warning disable 56506 // [....], endpoint.Address.Uri is never null
+#pragma warning disable 56506 // Microsoft, endpoint.Address.Uri is never null
Uri baseUri = endpoint.Address.Uri;
this.methodSpecificTables = new Dictionary<string, UriTemplateTable>();
this.templates = new Dictionary<string, UriTemplate>();
@@ -61,7 +61,7 @@ namespace System.ServiceModel.Dispatcher
Dictionary<WCFKey, string> alreadyHaves = new Dictionary<WCFKey, string>();
-#pragma warning disable 56506 // [....], endpoint.Contract is never null
+#pragma warning disable 56506 // Microsoft, endpoint.Contract is never null
foreach (OperationDescription od in endpoint.Contract.Operations)
#pragma warning restore 56506
{
@@ -156,7 +156,7 @@ namespace System.ServiceModel.Dispatcher
}
bool uriMatched;
string result = this.SelectOperation(ref message, out uriMatched);
-#pragma warning disable 56506 // [....], Message.Properties is never null
+#pragma warning disable 56506 // Microsoft, Message.Properties is never null
message.Properties.Add(HttpOperationSelectorUriMatchedPropertyName, uriMatched);
#pragma warning restore 56506
if (result != null)
@@ -164,7 +164,7 @@ namespace System.ServiceModel.Dispatcher
message.Properties.Add(HttpOperationNamePropertyName, result);
if (DiagnosticUtility.ShouldTraceInformation)
{
-#pragma warning disable 56506 // [....], Message.Headers is never null
+#pragma warning disable 56506 // Microsoft, Message.Headers is never null
TraceUtility.TraceEvent(TraceEventType.Information, TraceCode.WebRequestMatchesOperation, SR2.GetString(SR2.TraceCodeWebRequestMatchesOperation, message.Headers.To, result));
#pragma warning restore 56506
}
@@ -186,7 +186,7 @@ namespace System.ServiceModel.Dispatcher
return this.catchAllOperationName;
}
-#pragma warning disable 56506 // [....], message.Properties is never null
+#pragma warning disable 56506 // Microsoft, message.Properties is never null
if (!message.Properties.ContainsKey(HttpRequestMessageProperty.Name))
{
return this.catchAllOperationName;
diff --git a/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Web/HttpDateParse.cs b/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Web/HttpDateParse.cs
index 4a3d17d51e7..34857a8654f 100644
--- a/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Web/HttpDateParse.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Web/HttpDateParse.cs
@@ -1,4 +1,4 @@
-//------------------------------------------------------------
+//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.ServiceModel.Web
@@ -9,9 +9,9 @@ namespace System.ServiceModel.Web
// DO NOT EDIT THIS CODE.
//
// All of the code from this class was taken from build 20717.00
- // of System.Net.HttpDateParse. If there is a bug with this code
- // it should be fixed in the original System.Net.HttpDateParse
- // and then ported here. [[....]]
+ // of System.Net.HttpDateParse. If there is a
+
+
internal static class HttpDateParse
{
@@ -48,7 +48,7 @@ namespace System.ServiceModel.Web
private const int DATE_TOKEN_JANUARY = 1;
private const int DATE_TOKEN_FEBRUARY = 2;
- private const int DATE_TOKEN_MARCH = 3;
+ private const int DATE_TOKEN_Microsoft = 3;
private const int DATE_TOKEN_APRIL = 4;
private const int DATE_TOKEN_MAY = 5;
private const int DATE_TOKEN_JUNE = 6;
@@ -145,7 +145,7 @@ namespace System.ServiceModel.Web
switch (MakeUpper(lpszDay[index + 2]))
{
case 'R':
- return DATE_TOKEN_MARCH;
+ return DATE_TOKEN_Microsoft;
case 'Y':
return DATE_TOKEN_MAY;
}
diff --git a/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Web/WebOperationContext.cs b/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Web/WebOperationContext.cs
index e6d3a74f47d..aaff3cea26a 100644
--- a/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Web/WebOperationContext.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/Web/WebOperationContext.cs
@@ -37,7 +37,7 @@ namespace System.ServiceModel.Web
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("operationContext");
}
this.operationContext = operationContext;
-#pragma warning disable 56506 // [....], operationContext.Extensions is never null
+#pragma warning disable 56506 // Microsoft, operationContext.Extensions is never null
if (operationContext.Extensions.Find<WebOperationContext>() == null)
{
operationContext.Extensions.Add(this);
diff --git a/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/WebHttpBinding.cs b/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/WebHttpBinding.cs
index 7fd8d6fd514..2b72d55770b 100644
--- a/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/WebHttpBinding.cs
+++ b/mcs/class/referencesource/System.ServiceModel.Web/System/ServiceModel/WebHttpBinding.cs
@@ -195,7 +195,7 @@ namespace System.ServiceModel
}
}
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] // [....], This is the pattern we use on the standard bindings in Indigo V1
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] // Microsoft, This is the pattern we use on the standard bindings in Indigo V1
bool IBindingRuntimePreferences.ReceiveSynchronously
{
get { return false; }
diff --git a/mcs/class/referencesource/System.ServiceModel/InternalApis/Clr/inc/AppContextDefaultValues.cs b/mcs/class/referencesource/System.ServiceModel/InternalApis/Clr/inc/AppContextDefaultValues.cs
new file mode 100644
index 00000000000..124f9f45a4f
--- /dev/null
+++ b/mcs/class/referencesource/System.ServiceModel/InternalApis/Clr/inc/AppContextDefaultValues.cs
@@ -0,0 +1,170 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+using System;
+using System.Collections.Generic;
+
+namespace System
+{
+ internal static partial class AppContextDefaultValues
+ {
+ public static void PopulateDefaultValues()
+ {
+ string platformIdentifier, profile;
+ int version;
+
+ ParseTargetFrameworkName(out platformIdentifier, out profile, out version);
+
+ // Call into each library to populate their default switches
+ PopulateDefaultValuesPartial(platformIdentifier, profile, version);
+ }
+
+ /// <summary>
+ /// We have this separate method for getting the parsed elements out of the TargetFrameworkName so we can
+ /// more easily support this on other platforms.
+ /// </summary>
+ [System.Security.SecuritySafeCritical]
+ private static void ParseTargetFrameworkName(out string identifier, out string profile, out int version)
+ {
+ string targetFrameworkMoniker = AppDomain.CurrentDomain.SetupInformation.TargetFrameworkName;
+
+ // If we don't have a TFM then we should default to the 4.0 behavior where all quirks are turned on.
+ if (!TryParseFrameworkName(targetFrameworkMoniker, out identifier, out version, out profile))
+ {
+#if FEATURE_CORECLR
+ if (CompatibilitySwitches.UseLatestBehaviorWhenTFMNotSpecified)
+ {
+ // If we want to use the latest behavior it is enough to set the value of the switch to string.Empty.
+ // When the get to the caller of this method (PopulateDefaultValuesPartial) we are going to use the
+ // identifier we just set to decide which switches to turn on. By having an empty string as the
+ // identifier we are simply saying -- don't turn on any switches, and we are going to get the latest
+ // behavior for all the switches
+ identifier = string.Empty;
+ }
+ else
+#endif
+ {
+ identifier = ".NETFramework";
+ version = 40000;
+ profile = string.Empty;
+ }
+ }
+ }
+
+ // This code was a constructor copied from the FrameworkName class, which is located in System.dll.
+ // Parses strings in the following format: "<identifier>, Version=[v|V]<version>, Profile=<profile>"
+ // - The identifier and version is required, profile is optional
+ // - Only three components are allowed.
+ // - The version string must be in the System.Version format; an optional "v" or "V" prefix is allowed
+ private static bool TryParseFrameworkName(String frameworkName, out String identifier, out int version, out String profile)
+ {
+ // For parsing a target Framework moniker, from the FrameworkName class
+ const char c_componentSeparator = ',';
+ const char c_keyValueSeparator = '=';
+ const char c_versionValuePrefix = 'v';
+ const String c_versionKey = "Version";
+ const String c_profileKey = "Profile";
+
+ identifier = profile = string.Empty;
+ version = 0;
+
+ if (frameworkName == null || frameworkName.Length == 0)
+ {
+ return false;
+ }
+
+ String[] components = frameworkName.Split(c_componentSeparator);
+ version = 0;
+
+ // Identifer and Version are required, Profile is optional.
+ if (components.Length < 2 || components.Length > 3)
+ {
+ return false;
+ }
+
+ //
+ // 1) Parse the "Identifier", which must come first. Trim any whitespace
+ //
+ identifier = components[0].Trim();
+
+ if (identifier.Length == 0)
+ {
+ return false;
+ }
+
+ bool versionFound = false;
+ profile = null;
+
+ //
+ // The required "Version" and optional "Profile" component can be in any order
+ //
+ for (int i = 1; i < components.Length; i++)
+ {
+ // Get the key/value pair separated by '='
+ string[] keyValuePair = components[i].Split(c_keyValueSeparator);
+
+ if (keyValuePair.Length != 2)
+ {
+ return false;
+ }
+
+ // Get the key and value, trimming any whitespace
+ string key = keyValuePair[0].Trim();
+ string value = keyValuePair[1].Trim();
+
+ //
+ // 2) Parse the required "Version" key value
+ //
+ if (key.Equals(c_versionKey, StringComparison.OrdinalIgnoreCase))
+ {
+ versionFound = true;
+
+ // Allow the version to include a 'v' or 'V' prefix...
+ if (value.Length > 0 && (value[0] == c_versionValuePrefix || value[0] == 'V'))
+ {
+ value = value.Substring(1);
+ }
+ Version realVersion = new Version(value);
+ // The version class will represent some unset values as -1 internally (instead of 0).
+ version = realVersion.Major * 10000;
+ if (realVersion.Minor > 0)
+ version += realVersion.Minor * 100;
+ if (realVersion.Build > 0)
+ version += realVersion.Build;
+ }
+ //
+ // 3) Parse the optional "Profile" key value
+ //
+ else if (key.Equals(c_profileKey, StringComparison.OrdinalIgnoreCase))
+ {
+ if (!String.IsNullOrEmpty(value))
+ {
+ profile = value;
+ }
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ if (!versionFound)
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ // This is a partial method. Platforms (such as Desktop) can provide an implementation of it that will read override value
+ // from whatever mechanism is available on that platform. If no implementation is provided, the compiler is going to remove the calls
+ // to it from the code
+ static partial void TryGetSwitchOverridePartial(string switchName, ref bool overrideFound, ref bool overrideValue);
+
+ /// This is a partial method. This method is responsible for populating the default values based on a TFM.
+ /// It is partial because each library should define this method in their code to contain their defaults.
+ static partial void PopulateDefaultValuesPartial(string platformIdentifier, string profile, int version);
+ }
+}
diff --git a/mcs/class/referencesource/System.ServiceModel/InternalApis/Clr/inc/LocalAppContext.cs b/mcs/class/referencesource/System.ServiceModel/InternalApis/Clr/inc/LocalAppContext.cs
new file mode 100644
index 00000000000..f05b599ed3d
--- /dev/null
+++ b/mcs/class/referencesource/System.ServiceModel/InternalApis/Clr/inc/LocalAppContext.cs
@@ -0,0 +1,128 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+
+// NOTE: This file should not be included in mscorlib. This should only be included in FX libraries that need to provide switches
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Threading;
+
+namespace System
+{
+ internal static partial class LocalAppContext
+ {
+ private delegate bool TryGetSwitchDelegate(string switchName, out bool value);
+
+ private static TryGetSwitchDelegate TryGetSwitchFromCentralAppContext;
+ private static bool s_canForwardCalls;
+
+ private static Dictionary<string, bool> s_switchMap = new Dictionary<string, bool>();
+ private static readonly object s_syncLock = new object();
+
+ private static bool DisableCaching { get; set; }
+
+ static LocalAppContext()
+ {
+ // Try to setup the callback into the central AppContext
+ s_canForwardCalls = SetupDelegate();
+
+ // Populate the default values of the local app context
+ AppContextDefaultValues.PopulateDefaultValues();
+
+ // Cache the value of the switch that help with testing
+ DisableCaching = IsSwitchEnabled(@"TestSwitch.LocalAppContext.DisableCaching");
+ }
+
+ public static bool IsSwitchEnabled(string switchName)
+ {
+ if (s_canForwardCalls)
+ {
+ bool isEnabledCentrally;
+ if (TryGetSwitchFromCentralAppContext(switchName, out isEnabledCentrally))
+ {
+ // we found the switch, so return whatever value it has
+ return isEnabledCentrally;
+ }
+ // if we could not get the value from the central authority, try the local storage.
+ }
+
+ return IsSwitchEnabledLocal(switchName);
+ }
+
+ private static bool IsSwitchEnabledLocal(string switchName)
+ {
+ // read the value from the set of local defaults
+ bool isEnabled, isPresent;
+ lock (s_switchMap)
+ {
+ isPresent = s_switchMap.TryGetValue(switchName, out isEnabled);
+ }
+
+ // If the value is in the set of local switches, reutrn the value
+ if (isPresent)
+ {
+ return isEnabled;
+ }
+
+ // if we could not find the switch name, we should return 'false'
+ // This will preserve the concept of switches been 'off' unless explicitly set to 'on'
+ return false;
+ }
+
+ private static bool SetupDelegate()
+ {
+ Type appContextType = typeof(object).Assembly.GetType("System.AppContext");
+ if (appContextType == null)
+ return false;
+
+ MethodInfo method = appContextType.GetMethod(
+ "TryGetSwitch", // the method name
+ BindingFlags.Static | BindingFlags.Public, // binding flags
+ null, // use the default binder
+ new Type[] { typeof(string), typeof(bool).MakeByRefType() },
+ null); // parameterModifiers - this is ignored by the default binder
+ if (method == null)
+ return false;
+
+ // Create delegate if we found the method.
+ TryGetSwitchFromCentralAppContext = (TryGetSwitchDelegate)Delegate.CreateDelegate(typeof(TryGetSwitchDelegate), method);
+
+ return true;
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ internal static bool GetCachedSwitchValue(string switchName, ref int switchValue)
+ {
+ if (switchValue < 0) return false;
+ if (switchValue > 0) return true;
+
+ return GetCachedSwitchValueInternal(switchName, ref switchValue);
+ }
+
+ private static bool GetCachedSwitchValueInternal(string switchName, ref int switchValue)
+ {
+ if (LocalAppContext.DisableCaching)
+ {
+ return LocalAppContext.IsSwitchEnabled(switchName);
+ }
+
+ bool isEnabled = LocalAppContext.IsSwitchEnabled(switchName);
+ switchValue = isEnabled ? 1 /*true*/ : -1 /*false*/;
+ return isEnabled;
+ }
+
+ /// <summary>
+ /// This method is going to be called from the AppContextDefaultValues class when setting up the
+ /// default values for the switches. !!!! This method is called during the static constructor so it does not
+ /// take a lock !!!! If you are planning to use this outside of that, please ensure proper locking.
+ /// </summary>
+ internal static void DefineSwitchDefault(string switchName, bool initialValue)
+ {
+ s_switchMap[switchName] = initialValue;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Activation/Configuration/ServiceModelActivationSectionGroup.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Activation/Configuration/ServiceModelActivationSectionGroup.cs
index 5688f5591ea..19c842d4e17 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Activation/Configuration/ServiceModelActivationSectionGroup.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Activation/Configuration/ServiceModelActivationSectionGroup.cs
@@ -19,7 +19,7 @@ namespace System.ServiceModel.Activation.Configuration
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("config");
}
-#pragma warning suppress 56506 // [....], Configuration.SectionGroups cannot be null
+#pragma warning suppress 56506 // Microsoft, Configuration.SectionGroups cannot be null
return (ServiceModelActivationSectionGroup)config.SectionGroups[ConfigurationStrings.SectionGroupName];
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Activation/ListenerUnsafeNativeMethods.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Activation/ListenerUnsafeNativeMethods.cs
index 6e8d0191482..2b4bdc9f186 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Activation/ListenerUnsafeNativeMethods.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Activation/ListenerUnsafeNativeMethods.cs
@@ -257,7 +257,7 @@ namespace System.ServiceModel.Activation
protected override bool ReleaseHandle()
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // We are not interested to throw an exception here. We can ignore the Last Error code.
return CloseHandle(handle);
}
@@ -279,7 +279,7 @@ namespace System.ServiceModel.Activation
override protected bool ReleaseHandle()
{
-#pragma warning suppress 56523 // [....], should only fail if there is a bug (invalid handle); MDA will be raised
+#pragma warning suppress 56523 // Microsoft, should only fail if there is a
return ListenerUnsafeNativeMethods.CloseServiceHandle(handle);
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Activation/Utility.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Activation/Utility.cs
index 32b1ecdc92b..9a011db9633 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Activation/Utility.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Activation/Utility.cs
@@ -33,7 +33,7 @@ namespace System.ServiceModel.Activation
static SafeCloseHandle OpenCurrentProcessForWrite()
{
int processId = Process.GetCurrentProcess().Id;
-#pragma warning suppress 56523 // [....], Win32Exception ctor calls Marshal.GetLastWin32Error()
+#pragma warning suppress 56523 // Microsoft, Win32Exception ctor calls Marshal.GetLastWin32Error()
SafeCloseHandle process = ListenerUnsafeNativeMethods.OpenProcess(ListenerUnsafeNativeMethods.PROCESS_QUERY_INFORMATION | ListenerUnsafeNativeMethods.WRITE_DAC | ListenerUnsafeNativeMethods.READ_CONTROL, false, processId);
if (process.IsInvalid)
{
@@ -46,7 +46,7 @@ namespace System.ServiceModel.Activation
static SafeCloseHandle OpenProcessForQuery(int pid)
{
-#pragma warning suppress 56523 // [....], Win32Exception ctor calls Marshal.GetLastWin32Error()
+#pragma warning suppress 56523 // Microsoft, Win32Exception ctor calls Marshal.GetLastWin32Error()
SafeCloseHandle process = ListenerUnsafeNativeMethods.OpenProcess(ListenerUnsafeNativeMethods.PROCESS_QUERY_INFORMATION, false, pid);
if (process.IsInvalid)
{
@@ -99,7 +99,7 @@ namespace System.ServiceModel.Activation
static SafeServiceHandle OpenSCManager()
{
-#pragma warning suppress 56523 // [....], Win32Exception ctor calls Marshal.GetLastWin32Error()
+#pragma warning suppress 56523 // Microsoft, Win32Exception ctor calls Marshal.GetLastWin32Error()
SafeServiceHandle scManager = ListenerUnsafeNativeMethods.OpenSCManager(null, null, ListenerUnsafeNativeMethods.SC_MANAGER_CONNECT);
if (scManager.IsInvalid)
{
@@ -112,7 +112,7 @@ namespace System.ServiceModel.Activation
static SafeServiceHandle OpenService(SafeServiceHandle scManager, string serviceName, int purpose)
{
-#pragma warning suppress 56523 // [....], Win32Exception ctor calls Marshal.GetLastWin32Error()
+#pragma warning suppress 56523 // Microsoft, Win32Exception ctor calls Marshal.GetLastWin32Error()
SafeServiceHandle service = ListenerUnsafeNativeMethods.OpenService(scManager, serviceName, purpose);
if (service.IsInvalid)
{
@@ -249,7 +249,7 @@ namespace System.ServiceModel.Activation
}
}
byte[] pSecurityDescriptor = new byte[lpnLengthNeeded];
-#pragma warning suppress 56523 // [....], Win32Exception ctor calls Marshal.GetLastWin32Error()
+#pragma warning suppress 56523 // Microsoft, Win32Exception ctor calls Marshal.GetLastWin32Error()
success = ListenerUnsafeNativeMethods.GetKernelObjectSecurity(kernelObject, ListenerUnsafeNativeMethods.DACL_SECURITY_INFORMATION, pSecurityDescriptor, pSecurityDescriptor.Length, out lpnLengthNeeded);
if (!success)
{
@@ -273,7 +273,7 @@ namespace System.ServiceModel.Activation
pSecurityDescriptor = new byte[lpnLengthNeeded];
securityDescriptor.GetBinaryForm(pSecurityDescriptor, 0);
// set the SECURITY_DESCRIPTOR on the kernelObject
-#pragma warning suppress 56523 // [....], Win32Exception ctor calls Marshal.GetLastWin32Error()
+#pragma warning suppress 56523 // Microsoft, Win32Exception ctor calls Marshal.GetLastWin32Error()
success = ListenerUnsafeNativeMethods.SetKernelObjectSecurity(kernelObject, ListenerUnsafeNativeMethods.DACL_SECURITY_INFORMATION, pSecurityDescriptor);
if (!success)
{
@@ -419,7 +419,7 @@ namespace System.ServiceModel.Activation
}
}
byte[] serviceStatusProcess = new byte[lpnLengthNeeded];
-#pragma warning suppress 56523 // [....], Win32Exception ctor calls Marshal.GetLastWin32Error()
+#pragma warning suppress 56523 // Microsoft, Win32Exception ctor calls Marshal.GetLastWin32Error()
success = ListenerUnsafeNativeMethods.QueryServiceStatusEx(service, ListenerUnsafeNativeMethods.SC_STATUS_PROCESS_INFO, serviceStatusProcess, serviceStatusProcess.Length, out lpnLengthNeeded);
if (!success)
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/EndpointInstanceProvider.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/EndpointInstanceProvider.cs
index 755291d6c77..25dbbdf242d 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/EndpointInstanceProvider.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/EndpointInstanceProvider.cs
@@ -120,7 +120,7 @@ namespace System.ServiceModel.Administration
{
Fx.Assert(null != endpoint, "");
Fx.Assert(null != instance, "");
- instance.SetProperty(AdministrationStrings.CounterInstanceName, PerformanceCounters.PerformanceCountersEnabled ? EndpointPerformanceCounters.CreateFriendlyInstanceName(endpoint.ServiceName, endpoint.Contract.Name, endpoint.Address.AbsoluteUri.ToUpperInvariant()) : String.Empty);
+ instance.SetProperty(AdministrationStrings.CounterInstanceName, PerformanceCounters.PerformanceCountersEnabled ? EndpointPerformanceCounters.GetFriendlyInstanceName(endpoint.ServiceName, endpoint.Contract.Name, endpoint.Address.AbsoluteUri.ToUpperInvariant()) : String.Empty);
instance.SetProperty(AdministrationStrings.Name, endpoint.Name);
instance.SetProperty(AdministrationStrings.ContractName, endpoint.Contract.Name);
FillAddressInfo(endpoint, instance);
@@ -668,7 +668,7 @@ namespace System.ServiceModel.Administration
if (PerformanceCounters.PerformanceCountersEnabled && null != endpointInfo)
{
- result = OperationPerformanceCounters.CreateFriendlyInstanceName(endpointInfo.ServiceName, endpointInfo.Contract.Name, operationName, endpointInfo.Address.AbsoluteUri.ToUpperInvariant());
+ result = OperationPerformanceCounters.GetFriendlyInstanceName(endpointInfo.ServiceName, endpointInfo.Contract.Name, operationName, endpointInfo.Address.AbsoluteUri.ToUpperInvariant());
}
return result;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/ProviderBase.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/ProviderBase.cs
index 2c22592f0a2..f5c43f0cad3 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/ProviderBase.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/ProviderBase.cs
@@ -14,7 +14,7 @@ namespace System.ServiceModel.Administration
Fx.Assert(null != info, "");
Fx.Assert(null != instance, "");
//warning 56507 : Prefer 'string.IsNullOrEmpty(action)' over checks for null and/or emptiness.
-#pragma warning suppress 56507 //[....]; Asserting non-null object for marshalling reasons. Empty string may be valid input.
+#pragma warning suppress 56507 //Microsoft; Asserting non-null object for marshalling reasons. Empty string may be valid input.
Fx.Assert(null != propertyName, "");
string[] data = new string[info.Count];
@@ -31,7 +31,7 @@ namespace System.ServiceModel.Administration
Fx.Assert(null != info, "");
Fx.Assert(null != instance, "");
//warning 56507 : Prefer 'string.IsNullOrEmpty(action)' over checks for null and/or emptiness.
-#pragma warning suppress 56507 //[....]; Asserting non-null object for marshalling reasons. Empty string may be valid input.
+#pragma warning suppress 56507 //Microsoft; Asserting non-null object for marshalling reasons. Empty string may be valid input.
Fx.Assert(null != propertyName, "");
int i = 0;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/ServiceInstanceProvider.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/ServiceInstanceProvider.cs
index 4fced34d3b6..23593fd0acc 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/ServiceInstanceProvider.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/ServiceInstanceProvider.cs
@@ -132,7 +132,7 @@ namespace System.ServiceModel.Administration
Fx.Assert(null != instance, "");
Fx.Assert(null != info, "");
ProviderBase.FillCollectionInfo(info.Service.BaseAddresses, instance, AdministrationStrings.BaseAddresses);
- instance.SetProperty(AdministrationStrings.CounterInstanceName, PerformanceCounters.PerformanceCountersEnabled ? ServicePerformanceCounters.CreateFriendlyInstanceName(info.Service) : String.Empty);
+ instance.SetProperty(AdministrationStrings.CounterInstanceName, PerformanceCounters.PerformanceCountersEnabled ? ServicePerformanceCounters.GetFriendlyInstanceName(info.Service) : String.Empty);
instance.SetProperty(AdministrationStrings.ConfigurationName, info.ConfigurationName);
instance.SetProperty(AdministrationStrings.DistinguishedName, info.DistinguishedName);
instance.SetProperty(AdministrationStrings.Name, info.Name);
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/WbemProvider.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/WbemProvider.cs
index 94a7b1eb68f..aa8e4a77b3c 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/WbemProvider.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Administration/WbemProvider.cs
@@ -968,7 +968,7 @@ namespace System.ServiceModel.Administration
int hResult = this.wbemObject.Put(name, 0, ref val, (int)type);
if ((int)WbemNative.WbemStatus.WBEM_E_TYPE_MISMATCH == hResult || (int)WbemNative.WbemStatus.WBEM_E_NOT_FOUND == hResult)
{
- //This would be most likely a product bug (somebody changed type without updating MOF), improper installation or tampering with MOF
+ //This would be most likely a product
System.Runtime.Diagnostics.EventLogEventId eventId;
if ((int)WbemNative.WbemStatus.WBEM_E_TYPE_MISMATCH == hResult)
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/AppContextDefaultValues.Default.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/AppContextDefaultValues.Default.cs
new file mode 100644
index 00000000000..5f591137e39
--- /dev/null
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/AppContextDefaultValues.Default.cs
@@ -0,0 +1,35 @@
+// <copyright>
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+namespace System
+{
+ using System;
+ using System.ServiceModel;
+
+ internal static partial class AppContextDefaultValues
+ {
+ static partial void PopulateDefaultValuesPartial(string platformIdentifier, string profile, int version)
+ {
+ // When defining a new switch you should add it to the last known version.
+ // For instance, if you are adding a switch in .NET 4.6 (the release after 4.5.2) you should defined your switch
+ // like this:
+ // if (version <= 40502) ...
+ // This ensures that all previous versions of that platform (up-to 4.5.2) will get the old behavior by default
+ // NOTE: When adding a default value for a switch please make sure that the default value is added to ALL of the existing platforms!
+ // NOTE: When adding a new if statement for the version please ensure that ALL previous switches are enabled (ie. don't use else if)
+ switch (platformIdentifier)
+ {
+ case ".NETCore":
+ case ".NETFramework":
+ {
+ if (version <= 40502)
+ {
+ LocalAppContextSwitches.SetDefaultsLessOrEqual_452();
+ }
+
+ break;
+ }
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/CacheSetting.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/CacheSetting.cs
index 3c83ed6c904..7b8aa168f1b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/CacheSetting.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/CacheSetting.cs
@@ -10,4 +10,4 @@ namespace System.ServiceModel
AlwaysOn,
AlwaysOff
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/AddressHeader.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/AddressHeader.cs
index b866cfd27ca..e9aca788ae8 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/AddressHeader.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/AddressHeader.cs
@@ -293,7 +293,7 @@ namespace System.ServiceModel.Channels
}
}
- // [....], This will be kept internal for now. If the optimization needs to be public, we'll re-evaluate it.
+ // Microsoft, This will be kept internal for now. If the optimization needs to be public, we'll re-evaluate it.
class DictionaryAddressHeader : XmlObjectSerializerAddressHeader
{
XmlDictionaryString name;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/AddressHeaderCollection.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/AddressHeaderCollection.cs
index 0225acd4ea6..a249d56a9a9 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/AddressHeaderCollection.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/AddressHeaderCollection.cs
@@ -70,7 +70,7 @@ namespace System.ServiceModel.Channels
for (int i = 0; i < InternalCount; i++)
{
-#pragma warning suppress 56506 // [....], Message.Headers can never be null
+#pragma warning suppress 56506 // Microsoft, Message.Headers can never be null
message.Headers.Add(this[i].ToMessageHeader());
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/BinaryMessageEncoder.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/BinaryMessageEncoder.cs
index 0aea9ac3133..61b59eaa709 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/BinaryMessageEncoder.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/BinaryMessageEncoder.cs
@@ -1667,7 +1667,7 @@ namespace System.ServiceModel.Channels
get
{
if (IsDisposed)
-#pragma warning suppress 56503 // [....], Invalid State after dispose
+#pragma warning suppress 56503 // Microsoft, Invalid State after dispose
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateMessageDisposedException());
@@ -1681,7 +1681,7 @@ namespace System.ServiceModel.Channels
get
{
if (IsDisposed)
-#pragma warning suppress 56503 // [....], Invalid State after dispose
+#pragma warning suppress 56503 // Microsoft, Invalid State after dispose
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateMessageDisposedException());
@@ -1696,7 +1696,7 @@ namespace System.ServiceModel.Channels
{
if (IsDisposed)
{
-#pragma warning suppress 56503 // [....], Invalid State after dispose
+#pragma warning suppress 56503 // Microsoft, Invalid State after dispose
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateMessageDisposedException());
}
return headers.MessageVersion;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/BufferedOutputAsyncStream.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/BufferedOutputAsyncStream.cs
index 8beb939caa2..aef29ec12b5 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/BufferedOutputAsyncStream.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/BufferedOutputAsyncStream.cs
@@ -27,8 +27,8 @@ namespace System.ServiceModel.Channels
///
/// Currently BufferedOutputAsyncStream only used to wrap the System.Net.HttpResponseStream, which satisfy both requirements.
///
- /// BufferedOutputAsyncStream can also be used when doing asynchronous operations. [....] operations are not allowed when an async
- /// operation is in-flight. If a [....] operation is in progress (i.e., data exists in our CurrentBuffer) and we issue an async operation,
+ /// BufferedOutputAsyncStream can also be used when doing asynchronous operations. Sync operations are not allowed when an async
+ /// operation is in-flight. If a sync operation is in progress (i.e., data exists in our CurrentBuffer) and we issue an async operation,
/// we flush everything in the buffers (and block while doing so) before the async operation is allowed to proceed.
///
/// </summary>
@@ -78,7 +78,7 @@ namespace System.ServiceModel.Channels
{
get
{
-#pragma warning suppress 56503 // [....], required by the Stream.Length contract
+#pragma warning suppress 56503 // Microsoft, required by the Stream.Length contract
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(SR.GetString(SR.ReadNotSupported)));
}
}
@@ -87,7 +87,7 @@ namespace System.ServiceModel.Channels
{
get
{
-#pragma warning suppress 56503 // [....], required by the Stream.Position contract
+#pragma warning suppress 56503 // Microsoft, required by the Stream.Position contract
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(SR.GetString(SR.SeekNotSupported)));
}
set
@@ -326,7 +326,7 @@ namespace System.ServiceModel.Channels
void DequeueAndFlush(ByteBuffer currentBuffer, AsyncEventArgsCallback callback)
{
// Dequeue does a checkout of the buffer from its slot.
- // the callback for the [....] path only enqueues the buffer.
+ // the callback for the sync path only enqueues the buffer.
// The WriteAsync callback needs to enqueue and also complete.
this.currentByteBuffer = null;
ByteBuffer dequeued = this.buffers.Dequeue();
@@ -747,7 +747,7 @@ namespace System.ServiceModel.Channels
buffer.stream.EndWrite(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ClientWebSocketFactory.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ClientWebSocketFactory.cs
index 48fe8d3c73c..d096477625d 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ClientWebSocketFactory.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ClientWebSocketFactory.cs
@@ -26,4 +26,4 @@ namespace System.ServiceModel.Channels
// we estimate that implementors of a custom web socket factory will find it enough too.
public abstract WebSocket CreateWebSocket(Stream connection, WebSocketTransportSettings settings);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/CompositeDuplexBindingElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/CompositeDuplexBindingElement.cs
index f038eb55394..1dcac849612 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/CompositeDuplexBindingElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/CompositeDuplexBindingElement.cs
@@ -86,7 +86,7 @@ namespace System.ServiceModel.Channels
else
{
//
-#pragma warning suppress 56506 // [....], context.Binding will never be null.
+#pragma warning suppress 56506 // Microsoft, context.Binding will never be null.
context.ListenUriRelativeAddress = String.Empty;
context.ListenUriMode = ListenUriMode.Unique;
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/Connection.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/Connection.cs
index 9934d41ffdb..c795e66a15e 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/Connection.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/Connection.cs
@@ -338,7 +338,7 @@ namespace System.ServiceModel.Channels
{
get
{
-#pragma warning suppress 56503 // [....], required by the Stream.Length contract
+#pragma warning suppress 56503 // Microsoft, required by the Stream.Length contract
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(SR.GetString(SR.SeekNotSupported)));
}
}
@@ -347,7 +347,7 @@ namespace System.ServiceModel.Channels
{
get
{
-#pragma warning suppress 56503 // [....], required by the Stream.Position contract
+#pragma warning suppress 56503 // Microsoft, required by the Stream.Position contract
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(SR.GetString(SR.SeekNotSupported)));
}
set
@@ -470,7 +470,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.HandleIO(thisPtr.connection);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ConnectionDemuxer.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ConnectionDemuxer.cs
index 0a74ee019dd..9f50f397fe8 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ConnectionDemuxer.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ConnectionDemuxer.cs
@@ -554,7 +554,7 @@ namespace System.ServiceModel.Channels
IConnection upgradedConnection = this.serverSingletonPreambleReader.EndCompletePreamble(result);
ServerSingletonConnectionReader singletonReader = new ServerSingletonConnectionReader(serverSingletonPreambleReader, upgradedConnection, this.demuxer);
- //singletonReader doesn't have async version of ReceiveRequest, so just call the [....] method for now.
+ //singletonReader doesn't have async version of ReceiveRequest, so just call the sync method for now.
RequestContext requestContext = singletonReader.ReceiveRequest(this.timeoutHelper.RemainingTime());
singletonChannelListener.ReceiveRequest(requestContext, serverSingletonPreambleReader.ConnectionDequeuedCallback, true);
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ConnectionModeReader.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ConnectionModeReader.cs
index de091c4ea88..57a54e084e5 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ConnectionModeReader.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ConnectionModeReader.cs
@@ -134,7 +134,7 @@ namespace System.ServiceModel.Channels
completeSelf = reader.ContinueReading();
}
}
-#pragma warning suppress 56500 // [....], transferring exception to caller
+#pragma warning suppress 56500 // Microsoft, transferring exception to caller
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -201,7 +201,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = ContinueReading();
}
-#pragma warning suppress 56500 // [....], transferring exception to caller
+#pragma warning suppress 56500 // Microsoft, transferring exception to caller
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ConnectionPool.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ConnectionPool.cs
index a76041897de..fcab3692d0b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ConnectionPool.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ConnectionPool.cs
@@ -1213,7 +1213,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.HandleConnect(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1292,7 +1292,7 @@ namespace System.ServiceModel.Channels
thisPtr.SnapshotConnection();
}
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ContentOnlyMessage.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ContentOnlyMessage.cs
index a2413853a8d..0173e2b62ea 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ContentOnlyMessage.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ContentOnlyMessage.cs
@@ -28,7 +28,7 @@ namespace System.ServiceModel.Channels
{
if (IsDisposed)
{
-#pragma warning suppress 56503 // [....], required by base class contract
+#pragma warning suppress 56503 // Microsoft, required by base class contract
throw TraceUtility.ThrowHelperError(CreateMessageDisposedException(), this);
}
@@ -42,7 +42,7 @@ namespace System.ServiceModel.Channels
{
if (IsDisposed)
{
-#pragma warning suppress 56503 // [....], required by base class contract
+#pragma warning suppress 56503 // Microsoft, required by base class contract
throw TraceUtility.ThrowHelperError(CreateMessageDisposedException(), this);
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/FramingChannels.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/FramingChannels.cs
index f232b0f7d44..41c0e1f3786 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/FramingChannels.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/FramingChannels.cs
@@ -641,7 +641,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.HandleWritePreamble();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -669,7 +669,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.HandlePreambleAck();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -702,7 +702,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.HandleInitiatorOpen(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -735,7 +735,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.HandleUpgrade(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -768,7 +768,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.HandleInitiatorClose(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -796,7 +796,7 @@ namespace System.ServiceModel.Channels
thisPtr.connection.EndWrite();
completeSelf = thisPtr.ReadAck();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -826,7 +826,7 @@ namespace System.ServiceModel.Channels
{
ConnectionUpgradeHelper.EndDecodeFramingFault(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -913,7 +913,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.HandleEstablishConnection(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1172,7 +1172,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.CompleteReadFaultData();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1335,7 +1335,7 @@ namespace System.ServiceModel.Channels
completeSelf = thisPtr.Begin();
}
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1366,7 +1366,7 @@ namespace System.ServiceModel.Channels
{
ConnectionUpgradeHelper.EndDecodeFramingFault(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1392,7 +1392,7 @@ namespace System.ServiceModel.Channels
completeSelf = thisPtr.Begin();
}
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1423,7 +1423,7 @@ namespace System.ServiceModel.Channels
thisPtr.CompleteUpgrade(result);
completeSelf = thisPtr.Begin();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/FramingDecoders.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/FramingDecoders.cs
index 8c5b4e61483..dbd6ca609d0 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/FramingDecoders.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/FramingDecoders.cs
@@ -32,7 +32,7 @@ namespace System.ServiceModel.Channels
get
{
if (!isValueDecoded)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return value;
}
@@ -108,7 +108,7 @@ namespace System.ServiceModel.Channels
get
{
if (currentState != State.Done)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return value;
}
@@ -236,7 +236,7 @@ namespace System.ServiceModel.Channels
get
{
if (!IsValueDecoded)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return via;
}
@@ -544,7 +544,7 @@ namespace System.ServiceModel.Channels
get
{
if (currentState != State.Done)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return mode;
}
@@ -555,7 +555,7 @@ namespace System.ServiceModel.Channels
get
{
if (currentState != State.Done)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return majorVersion;
}
@@ -566,7 +566,7 @@ namespace System.ServiceModel.Channels
get
{
if (currentState != State.Done)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return minorVersion;
}
@@ -624,7 +624,7 @@ namespace System.ServiceModel.Channels
get
{
if (currentState < State.PreUpgradeStart)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return contentType;
}
@@ -635,7 +635,7 @@ namespace System.ServiceModel.Channels
get
{
if (currentState < State.ReadingContentTypeRecord)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return viaDecoder.ValueAsUri;
}
@@ -652,7 +652,7 @@ namespace System.ServiceModel.Channels
get
{
if (currentState != State.UpgradeRequest)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return upgrade;
}
@@ -663,7 +663,7 @@ namespace System.ServiceModel.Channels
get
{
if (currentState < State.EnvelopeStart)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return envelopeSize;
}
@@ -880,7 +880,7 @@ namespace System.ServiceModel.Channels
{
if (currentState < State.ChunkStart)
{
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
}
@@ -1009,7 +1009,7 @@ namespace System.ServiceModel.Channels
get
{
if (currentState < State.ReadingContentTypeRecord)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return viaDecoder.ValueAsUri;
}
@@ -1020,7 +1020,7 @@ namespace System.ServiceModel.Channels
get
{
if (currentState < State.PreUpgradeStart)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return contentType;
}
@@ -1031,7 +1031,7 @@ namespace System.ServiceModel.Channels
get
{
if (currentState != State.UpgradeRequest)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return upgrade;
}
@@ -1280,7 +1280,7 @@ namespace System.ServiceModel.Channels
get
{
if (currentState < State.ReadingContentTypeRecord)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return viaDecoder.ValueAsUri;
}
@@ -1291,7 +1291,7 @@ namespace System.ServiceModel.Channels
get
{
if (currentState < State.Start)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return contentType;
}
@@ -1386,7 +1386,7 @@ namespace System.ServiceModel.Channels
get
{
if (CurrentState < ClientFramingDecoderState.EnvelopeStart)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return envelopeSize;
}
@@ -1397,7 +1397,7 @@ namespace System.ServiceModel.Channels
get
{
if (CurrentState < ClientFramingDecoderState.Fault)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return faultDecoder.Value;
}
@@ -1543,7 +1543,7 @@ namespace System.ServiceModel.Channels
get
{
if (CurrentState < ClientFramingDecoderState.Fault)
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.FramingValueNotAvailable)));
return faultDecoder.Value;
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpChannelFactory.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpChannelFactory.cs
index 6fcf11dd123..8dd38356431 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpChannelFactory.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpChannelFactory.cs
@@ -35,6 +35,7 @@ namespace System.ServiceModel.Channels
{
static bool httpWebRequestWebPermissionDenied = false;
static RequestCachePolicy requestCachePolicy = new RequestCachePolicy(RequestCacheLevel.BypassCache);
+ static long connectionGroupNamePrefix = 0;
readonly ClientWebSocketFactory clientWebSocketFactory;
@@ -65,6 +66,7 @@ namespace System.ServiceModel.Channels
WebSocketTransportSettings webSocketSettings;
ConnectionBufferPool bufferPool;
Lazy<string> webSocketSoapContentType;
+ string uniqueConnectionGroupNamePrefix;
internal HttpChannelFactory(HttpTransportBindingElement bindingElement, BindingContext context)
: base(bindingElement, context, HttpTransportDefaults.GetDefaultMessageEncoderFactory())
@@ -183,6 +185,15 @@ namespace System.ServiceModel.Channels
}
this.webSocketSoapContentType = new Lazy<string>(() => { return this.MessageEncoderFactory.CreateSessionEncoder().ContentType; }, LazyThreadSafetyMode.ExecutionAndPublication);
+
+ if (ServiceModelAppSettings.HttpTransportPerFactoryConnectionPool)
+ {
+ this.uniqueConnectionGroupNamePrefix = Interlocked.Increment(ref connectionGroupNamePrefix).ToString();
+ }
+ else
+ {
+ this.uniqueConnectionGroupNamePrefix = string.Empty;
+ }
}
public bool AllowCookies
@@ -665,7 +676,7 @@ namespace System.ServiceModel.Channels
}
string prefix = this.OnGetConnectionGroupPrefix(httpWebRequest, clientCertificateToken);
- inputString = string.Concat(prefix, inputString);
+ inputString = string.Concat(this.uniqueConnectionGroupNamePrefix, prefix, inputString);
string credentialHash = null;
@@ -1170,6 +1181,7 @@ namespace System.ServiceModel.Channels
ChannelBinding channelBinding;
int webRequestCompleted;
EventTraceActivity eventTraceActivity;
+ const string ConnectionGroupPrefixMessagePropertyName = "HttpTransportConnectionGroupNamePrefix";
public HttpChannelRequest(HttpRequestChannel channel, HttpChannelFactory<IRequestChannel> factory)
{
@@ -1179,11 +1191,27 @@ namespace System.ServiceModel.Channels
this.factory = factory;
}
+ private string GetConnectionGroupPrefix(Message message)
+ {
+ object property;
+ if (message.Properties.TryGetValue(ConnectionGroupPrefixMessagePropertyName, out property))
+ {
+ string prefix = property as string;
+ if (prefix != null)
+ {
+ return prefix;
+ }
+ }
+
+ return string.Empty;
+ }
+
public void SendRequest(Message message, TimeSpan timeout)
{
TimeoutHelper timeoutHelper = new TimeoutHelper(timeout);
factory.ApplyManualAddressing(ref this.to, ref this.via, message);
this.webRequest = channel.GetWebRequest(this.to, this.via, ref timeoutHelper);
+ this.webRequest.ConnectionGroupName = GetConnectionGroupPrefix(message) + this.webRequest.ConnectionGroupName;
Message request = message;
@@ -1277,7 +1305,7 @@ namespace System.ServiceModel.Channels
}
catch (NullReferenceException nullReferenceException)
{
- // workaround for Whidbey bug #558605 - only happens in streamed case.
+ // workaround for Whidbey
if (TransferModeHelper.IsRequestStreamed(this.factory.transferMode))
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
@@ -1468,7 +1496,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.OnGetWebRequestCompleted(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1582,7 +1610,7 @@ namespace System.ServiceModel.Channels
}
catch (NullReferenceException nullReferenceException)
{
- // workaround for Whidbey bug #558605 - only happens in streamed case.
+ // workaround for Whidbey
if (TransferModeHelper.IsRequestStreamed(this.factory.transferMode))
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
@@ -1639,7 +1667,7 @@ namespace System.ServiceModel.Channels
}
catch (NullReferenceException nullReferenceException)
{
- // workaround for Whidbey bug #558605 - only happens in streamed case.
+ // workaround for Whidbey
if (TransferModeHelper.IsRequestStreamed(this.factory.transferMode))
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
@@ -1782,7 +1810,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.CompleteParseIncomingMessage(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1809,7 +1837,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.CompleteSend(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1854,7 +1882,7 @@ namespace System.ServiceModel.Channels
completeSelf = true;
completionException = new CommunicationException(webException.Message, webException);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -2040,7 +2068,7 @@ namespace System.ServiceModel.Channels
thisPtr.CompleteGetSspiCredential(result);
thisPtr.CloseTokenProvidersIfRequired();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -2068,7 +2096,7 @@ namespace System.ServiceModel.Channels
thisPtr.CompleteGetUserNameCredential(result);
thisPtr.CloseTokenProvidersIfRequired();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpChannelHelpers.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpChannelHelpers.cs
index d2389c42a41..f346cfc9387 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpChannelHelpers.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpChannelHelpers.cs
@@ -780,7 +780,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.ContinueReading(thisPtr.inputStream.EndRead(result));
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -979,7 +979,7 @@ namespace System.ServiceModel.Channels
}
catch (IOException ioException)
{
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(HttpChannelUtilities.CreateResponseIOException(ioException, TimeoutHelper.FromMilliseconds(this.ReadTimeout)));
+ throw this.CreateResponseIOException(ioException);
}
catch (ObjectDisposedException objectDisposedException)
{
@@ -999,7 +999,7 @@ namespace System.ServiceModel.Channels
}
catch (IOException ioException)
{
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(HttpChannelUtilities.CreateResponseIOException(ioException, TimeoutHelper.FromMilliseconds(this.ReadTimeout)));
+ throw this.CreateResponseIOException(ioException);
}
catch (ObjectDisposedException objectDisposedException)
{
@@ -1023,7 +1023,7 @@ namespace System.ServiceModel.Channels
}
catch (IOException ioException)
{
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(HttpChannelUtilities.CreateResponseIOException(ioException, TimeoutHelper.FromMilliseconds(this.ReadTimeout)));
+ throw this.CreateResponseIOException(ioException);
}
catch (WebException webException)
{
@@ -1044,13 +1044,21 @@ namespace System.ServiceModel.Channels
}
catch (IOException ioException)
{
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(HttpChannelUtilities.CreateResponseIOException(ioException, TimeoutHelper.FromMilliseconds(this.ReadTimeout)));
+ throw this.CreateResponseIOException(ioException);
}
catch (WebException webException)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(HttpChannelUtilities.CreateResponseWebException(webException, this.webResponse));
}
}
+
+ private Exception CreateResponseIOException(IOException ioException)
+ {
+ TimeSpan timeSpan = this.CanTimeout ? TimeoutHelper.FromMilliseconds(this.ReadTimeout) : TimeSpan.MaxValue;
+
+ return DiagnosticUtility.ExceptionUtility.ThrowHelperError(HttpChannelUtilities.CreateResponseIOException(ioException, timeSpan));
+ }
+
}
}
}
@@ -2169,7 +2177,7 @@ namespace System.ServiceModel.Channels
bool WriteStreamedMessage()
{
- // return a bool to determine if we are [....].
+ // return a bool to determine if we are sync.
if (onWriteStreamedMessage == null)
{
@@ -2265,7 +2273,7 @@ namespace System.ServiceModel.Channels
completeSelf = true;
}
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -2291,7 +2299,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.WriteStreamedMessage();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -2325,7 +2333,7 @@ namespace System.ServiceModel.Channels
thisPtr.CompleteWriteBody(result);
thisPtr.httpOutput.TraceSend();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -2488,14 +2496,14 @@ namespace System.ServiceModel.Channels
if (action != null)
{
- //This code is calling UrlPathEncode due to MessageBus bug 53362.
- //After reviewing this decision, we
- //feel that this was probably the wrong thing to do because UrlPathEncode
- //doesn't escape some characters like '+', '%', etc. The real issue behind
- //bug 53362 may have been as simple as being encoded multiple times on the client
- //but being decoded one time on the server. Calling UrlEncode would correctly
- //escape these characters, but since we don't want to break any customers and no
- //customers have complained, we will leave this as is for now...
+ //This code is calling UrlPathEncode due to MessageBus
+
+
+
+
+
+
+
action = string.Format(CultureInfo.InvariantCulture, "\"{0}\"", UrlUtility.UrlPathEncode(action));
}
@@ -2757,7 +2765,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.CompleteGetRequestStream(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -2980,6 +2988,18 @@ namespace System.ServiceModel.Channels
this.SetContentType(value);
}
}
+ else if (string.Compare(name, "Connection", StringComparison.OrdinalIgnoreCase) == 0 &&
+ value != null &&
+ string.Compare(value.Trim(), "close", StringComparison.OrdinalIgnoreCase) == 0 &&
+ !LocalAppContextSwitches.DisableExplicitConnectionCloseHeader)
+ {
+ // HttpListenerResponse will not serialize the Connection:close header
+ // if its KeepAlive is true. So in the case where a service has explicitly
+ // added Connection:close (not added by default) set KeepAlive to false.
+ // This will cause HttpListenerResponse to add its own Connection:close header
+ // and to serialize it properly. We do not add a redundant header here.
+ this.listenerResponse.KeepAlive = false;
+ }
else
{
this.AddHeader(name, value);
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpPipeline.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpPipeline.cs
index ee321225b02..2b656359678 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpPipeline.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpPipeline.cs
@@ -444,7 +444,7 @@ namespace System.ServiceModel.Channels
bool lockTaken = false;
try
{
- // We need this lock only in [....] reply case. In this case, we hopped the thread in the request side, so it's possible to send the response here
+ // We need this lock only in sync reply case. In this case, we hopped the thread in the request side, so it's possible to send the response here
// before the TransportIntegrationHandler is ready on another thread (thus a race condition). So we use the lock here. In the incoming path, we won't
// release the lock until the TransportIntegrationHandler is ready. Once we get the lock on the outgoing path, we can then call Wait() on this handler safely.
Monitor.TryEnter(this.ThisLock, TimeoutHelper.ToMilliseconds(helper.RemainingTime()), ref lockTaken);
@@ -615,7 +615,7 @@ namespace System.ServiceModel.Channels
this.cancellationTokenSource.Dispose();
this.wasProcessInboundRequestSuccessful = true;
//// shortcut scenario
- //// Currently we are always doing [....] send even async send is enabled.
+ //// Currently we are always doing sync send even async send is enabled.
this.SendAndClose(t.Result);
}
else if (this.isAsyncReply)
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpRequestContext.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpRequestContext.cs
index e76fb3a434a..c2f0b9b702b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpRequestContext.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpRequestContext.cs
@@ -829,7 +829,7 @@ namespace System.ServiceModel.Channels
public override HttpOutput GetHttpOutput(Message message)
{
- // work around http.sys keep alive bug with chunked requests, see MB 49676, this is fixed in Vista
+ // work around http.sys keep alive
if (listenerContext.Request.ContentLength64 == -1 && !OSEnvironmentHelper.IsVistaOrGreater)
{
listenerContext.Response.KeepAlive = false;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpTransportBindingElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpTransportBindingElement.cs
index 479ca48628a..c173b43170b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpTransportBindingElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpTransportBindingElement.cs
@@ -528,7 +528,7 @@ namespace System.ServiceModel.Channels
}
else
{
-#pragma warning suppress 56506 // [....], BindingContext.BindingParameters cannot be null
+#pragma warning suppress 56506 // Microsoft, BindingContext.BindingParameters cannot be null
if (context.BindingParameters.Find<MessageEncodingBindingElement>() == null)
{
context.BindingParameters.Add(new TextMessageEncodingBindingElement());
@@ -578,7 +578,7 @@ namespace System.ServiceModel.Channels
if (!this.CanBuildChannelFactory<TChannel>(context))
{
-#pragma warning suppress 56506 // [....], context.Binding will never be null.
+#pragma warning suppress 56506 // Microsoft, context.Binding will never be null.
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("TChannel", SR.GetString(SR.CouldnTCreateChannelForChannelType2, context.Binding.Name, typeof(TChannel)));
}
@@ -649,7 +649,7 @@ namespace System.ServiceModel.Channels
if (!this.CanBuildChannelListener<TChannel>(context))
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(
-#pragma warning suppress 56506 // [....], context.Binding will never be null.
+#pragma warning suppress 56506 // Microsoft, context.Binding will never be null.
"TChannel", SR.GetString(SR.CouldnTCreateChannelForChannelType2, context.Binding.Name, typeof(TChannel)));
}
@@ -672,7 +672,7 @@ namespace System.ServiceModel.Channels
if (effectiveAutheSchemes == AuthenticationSchemes.None)
{
-#pragma warning suppress 56506 // [....], context.Binding will never be null.
+#pragma warning suppress 56506 // Microsoft, context.Binding will never be null.
string bindingName = context.Binding.Name;
if (this.AuthenticationScheme == AuthenticationSchemes.None)
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpsChannelFactory.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpsChannelFactory.cs
index 6b2511b4c0f..6f0924176e2 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpsChannelFactory.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpsChannelFactory.cs
@@ -488,7 +488,7 @@ namespace System.ServiceModel.Channels
thisPtr.request = thisPtr.httpsChannel.EndBaseGetWebRequest(result);
thisPtr.factory.AddServerCertMappingOrSetRemoteCertificateValidationCallback(thisPtr.request, thisPtr.to);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -514,7 +514,7 @@ namespace System.ServiceModel.Channels
thisPtr.OnGetToken(result);
completeSelf = thisPtr.GetWebRequest();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpsChannelListener.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpsChannelListener.cs
index 95f6f9c5659..3f9f1727f7b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpsChannelListener.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/HttpsChannelListener.cs
@@ -23,7 +23,7 @@ namespace System.ServiceModel.Channels
where TChannel : class, IChannel
{
readonly bool useCustomClientCertificateVerification;
- readonly bool shouldValidateClientCertificate;
+ bool shouldValidateClientCertificate;
bool useHostedClientCertificateMapping;
bool requireClientCertificate;
SecurityTokenAuthenticator certificateAuthenticator;
@@ -125,6 +125,12 @@ namespace System.ServiceModel.Channels
{
base.ApplyHostedContext(virtualPath, isMetadataListener);
useHostedClientCertificateMapping = AspNetEnvironment.Current.ValidateHttpsSettings(virtualPath, ref this.requireClientCertificate);
+
+ // We want to validate the certificate if IIS is set to require a client certificate
+ if (this.requireClientCertificate)
+ {
+ this.shouldValidateClientCertificate = true;
+ }
}
internal override ITransportManagerRegistration CreateTransportManagerRegistration(Uri listenUri)
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IChannelAcceptor.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IChannelAcceptor.cs
index 6a0e7fb98d9..a5b62241f41 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IChannelAcceptor.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IChannelAcceptor.cs
@@ -14,4 +14,4 @@ namespace System.ServiceModel.Channels
IAsyncResult BeginWaitForChannel(TimeSpan timeout, AsyncCallback callback, object state);
bool EndWaitForChannel(IAsyncResult result);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IChannelBindingProvider.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IChannelBindingProvider.cs
index 80d524ef8f6..d9c4d699462 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IChannelBindingProvider.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IChannelBindingProvider.cs
@@ -11,4 +11,4 @@ namespace System.ServiceModel.Channels
void EnableChannelBindingSupport();
bool IsChannelBindingSupportEnabled { get; }
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IHttpCookieContainerManager.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IHttpCookieContainerManager.cs
index 84d0fd0d93d..d684cbc9cfe 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IHttpCookieContainerManager.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IHttpCookieContainerManager.cs
@@ -17,4 +17,4 @@ namespace System.ServiceModel.Channels
/// </summary>
CookieContainer CookieContainer { get; set; }
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IReliableFactorySettings.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IReliableFactorySettings.cs
index 38df4d9ca89..a6f06de1e8a 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IReliableFactorySettings.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IReliableFactorySettings.cs
@@ -25,4 +25,4 @@ namespace System.ServiceModel.Channels
TimeSpan SendTimeout { get; }
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IStreamUpgradeChannelBindingProvider.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IStreamUpgradeChannelBindingProvider.cs
index e98a53f6f90..ff8aeb3b70c 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IStreamUpgradeChannelBindingProvider.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IStreamUpgradeChannelBindingProvider.cs
@@ -11,4 +11,4 @@ namespace System.ServiceModel.Channels
ChannelBinding GetChannelBinding(StreamUpgradeInitiator upgradeInitiator, ChannelBindingKind kind);
ChannelBinding GetChannelBinding(StreamUpgradeAcceptor upgradeAcceptor, ChannelBindingKind kind);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IdlingCommunicationPool.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IdlingCommunicationPool.cs
index b2563cc48b4..e576d74b13c 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IdlingCommunicationPool.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/IdlingCommunicationPool.cs
@@ -37,7 +37,7 @@ namespace System.ServiceModel.Channels
protected override void CloseItemAsync(TItem item, TimeSpan timeout)
{
- // Default behavior is [....]. Derived classes can override.
+ // Default behavior is sync. Derived classes can override.
this.CloseItem(item, timeout);
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InitialServerConnectionReader.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InitialServerConnectionReader.cs
index 4bc768331a2..d9d1af921b2 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InitialServerConnectionReader.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InitialServerConnectionReader.cs
@@ -404,7 +404,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.CompleteAcceptUpgrade(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InputChannel.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InputChannel.cs
index 26f1e3aa35f..b4e5202fa55 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InputChannel.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InputChannel.cs
@@ -223,7 +223,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.HandleReceiveComplete(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InternalDuplexBindingElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InternalDuplexBindingElement.cs
index dc126777c7b..5abee3c70ab 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InternalDuplexBindingElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InternalDuplexBindingElement.cs
@@ -69,7 +69,7 @@ namespace System.ServiceModel.Channels
}
else
{
-#pragma warning suppress 56506 // [....], context.RemainingBindingElements will never be null
+#pragma warning suppress 56506 // Microsoft, context.RemainingBindingElements will never be null
context.RemainingBindingElements.Clear();
}
LocalAddressProvider localAddressProvider = context.BindingParameters.Remove<LocalAddressProvider>();
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InternalDuplexChannelListener.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InternalDuplexChannelListener.cs
index 2795232210d..9f3022762c8 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InternalDuplexChannelListener.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/InternalDuplexChannelListener.cs
@@ -345,7 +345,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.CompleteSend(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/Message.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/Message.cs
index 5ea731f0809..2ae3bf5e350 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/Message.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/Message.cs
@@ -34,7 +34,7 @@ namespace System.ServiceModel.Channels
get
{
if (IsDisposed)
-#pragma warning suppress 56503 // [....], Invalid State after dispose
+#pragma warning suppress 56503 // Microsoft, Invalid State after dispose
throw TraceUtility.ThrowHelperError(CreateMessageDisposedException(), this);
return false;
@@ -46,7 +46,7 @@ namespace System.ServiceModel.Channels
get
{
if (IsDisposed)
-#pragma warning suppress 56503 // [....], Invalid State after dispose
+#pragma warning suppress 56503 // Microsoft, Invalid State after dispose
throw TraceUtility.ThrowHelperError(CreateMessageDisposedException(), this);
return false;
@@ -978,7 +978,7 @@ namespace System.ServiceModel.Channels
get
{
if (IsDisposed)
-#pragma warning suppress 56503 // [....], Invalid State after dispose
+#pragma warning suppress 56503 // Microsoft, Invalid State after dispose
throw TraceUtility.ThrowHelperError(CreateMessageDisposedException(), this);
return bodyWriter.IsFault;
}
@@ -989,7 +989,7 @@ namespace System.ServiceModel.Channels
get
{
if (IsDisposed)
-#pragma warning suppress 56503 // [....], Invalid State after dispose
+#pragma warning suppress 56503 // Microsoft, Invalid State after dispose
throw TraceUtility.ThrowHelperError(CreateMessageDisposedException(), this);
return bodyWriter.IsEmpty;
}
@@ -1000,7 +1000,7 @@ namespace System.ServiceModel.Channels
get
{
if (IsDisposed)
-#pragma warning suppress 56503 // [....], Invalid State after dispose
+#pragma warning suppress 56503 // Microsoft, Invalid State after dispose
throw TraceUtility.ThrowHelperError(CreateMessageDisposedException(), this);
return headers;
}
@@ -1011,7 +1011,7 @@ namespace System.ServiceModel.Channels
get
{
if (IsDisposed)
-#pragma warning suppress 56503 // [....], Invalid State after dispose
+#pragma warning suppress 56503 // Microsoft, Invalid State after dispose
throw TraceUtility.ThrowHelperError(CreateMessageDisposedException(), this);
if (properties == null)
properties = new MessageProperties();
@@ -1024,7 +1024,7 @@ namespace System.ServiceModel.Channels
get
{
if (IsDisposed)
-#pragma warning suppress 56503 // [....], Invalid State after dispose
+#pragma warning suppress 56503 // Microsoft, Invalid State after dispose
throw TraceUtility.ThrowHelperError(CreateMessageDisposedException(), this);
return headers.MessageVersion;
}
@@ -1306,7 +1306,7 @@ namespace System.ServiceModel.Channels
get
{
if (IsDisposed)
-#pragma warning suppress 56503 // [....], Invalid State after dispose
+#pragma warning suppress 56503 // Microsoft, Invalid State after dispose
throw TraceUtility.ThrowHelperError(CreateMessageDisposedException(), this);
return headers;
}
@@ -1522,7 +1522,7 @@ namespace System.ServiceModel.Channels
get
{
if (IsDisposed)
-#pragma warning suppress 56503 // [....], Invalid State after dispose
+#pragma warning suppress 56503 // Microsoft, Invalid State after dispose
throw TraceUtility.ThrowHelperError(CreateMessageDisposedException(), this);
return headers;
}
@@ -1541,7 +1541,7 @@ namespace System.ServiceModel.Channels
get
{
if (IsDisposed)
-#pragma warning suppress 56503 // [....], Invalid State after dispose
+#pragma warning suppress 56503 // Microsoft, Invalid State after dispose
throw TraceUtility.ThrowHelperError(CreateMessageDisposedException(), this);
return properties;
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageBuffer.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageBuffer.cs
index 4a15880764e..383bf17b7af 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageBuffer.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageBuffer.cs
@@ -197,7 +197,7 @@ namespace System.ServiceModel.Channels
lock (ThisLock)
{
if (closed)
-#pragma warning suppress 56503 // [....], Invalid State after dispose
+#pragma warning suppress 56503 // Microsoft, Invalid State after dispose
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateBufferDisposedException());
return messageData.Buffer.Count;
}
@@ -224,7 +224,7 @@ namespace System.ServiceModel.Channels
lock (ThisLock)
{
if (closed)
-#pragma warning suppress 56503 // [....], Invalid State after dispose
+#pragma warning suppress 56503 // Microsoft, Invalid State after dispose
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateBufferDisposedException());
return messageData.MessageEncoder.ContentType;
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageEncodingBindingElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageEncodingBindingElement.cs
index 1dcae5bf034..72af695436d 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageEncodingBindingElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageEncodingBindingElement.cs
@@ -38,7 +38,7 @@ namespace System.ServiceModel.Channels
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("context"));
}
-#pragma warning suppress 56506 // [....], BindingContext.BindingParameters never be null
+#pragma warning suppress 56506 // Microsoft, BindingContext.BindingParameters never be null
context.BindingParameters.Add(this);
return context.BuildInnerChannelFactory<TChannel>();
}
@@ -50,7 +50,7 @@ namespace System.ServiceModel.Channels
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("context"));
}
-#pragma warning suppress 56506 // [....], BindingContext.BindingParameters never be null
+#pragma warning suppress 56506 // Microsoft, BindingContext.BindingParameters never be null
context.BindingParameters.Add(this);
return context.CanBuildInnerChannelFactory<TChannel>();
}
@@ -63,7 +63,7 @@ namespace System.ServiceModel.Channels
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("context"));
}
-#pragma warning suppress 56506 // [....], BindingContext.BindingParameters never be null
+#pragma warning suppress 56506 // Microsoft, BindingContext.BindingParameters never be null
context.BindingParameters.Add(this);
return context.BuildInnerChannelListener<TChannel>();
}
@@ -76,7 +76,7 @@ namespace System.ServiceModel.Channels
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("context"));
}
-#pragma warning suppress 56506 // [....], BindingContext.BindingParameters never be null
+#pragma warning suppress 56506 // Microsoft, BindingContext.BindingParameters never be null
context.BindingParameters.Add(this);
return context.CanBuildInnerChannelListener<TChannel>();
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageEncodingBindingElementImporter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageEncodingBindingElementImporter.cs
index 6b4de1fab49..3662da87dc2 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageEncodingBindingElementImporter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageEncodingBindingElementImporter.cs
@@ -25,7 +25,7 @@ namespace System.ServiceModel.Channels
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context");
}
-#pragma warning suppress 56506 // [....], these properties cannot be null in this context
+#pragma warning suppress 56506 // Microsoft, these properties cannot be null in this context
if (context.Endpoint.Binding == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context.Endpoint.Binding");
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageFault.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageFault.cs
index 5803f1710c9..09e60dfffb8 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageFault.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageFault.cs
@@ -69,7 +69,7 @@ namespace System.ServiceModel.Channels
{
try
{
-#pragma warning suppress 56506 // [....], Message.Version can never be null
+#pragma warning suppress 56506 // Microsoft, Message.Version can never be null
EnvelopeVersion envelopeVersion = message.Version.Envelope;
MessageFault fault;
if (envelopeVersion == EnvelopeVersion.Soap12)
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageHeaders.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageHeaders.cs
index 504eb714827..5accd13b6ac 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageHeaders.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MessageHeaders.cs
@@ -490,7 +490,7 @@ namespace System.ServiceModel.Channels
if (collection.version != version)
{
-#pragma warning suppress 56506 // [....], collection.version is never null
+#pragma warning suppress 56506 // Microsoft, collection.version is never null
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.MessageHeaderVersionMismatch, collection.version.ToString(), version.ToString()), "collection"));
}
@@ -507,7 +507,7 @@ namespace System.ServiceModel.Channels
switch (header.HeaderType)
{
case HeaderType.BufferedMessageHeader:
- AddHeader(new Header(header.HeaderKind, CaptureBufferedHeader(collection.bufferedMessageData,
+ AddHeader(new Header(header.HeaderKind, collection.CaptureBufferedHeader(collection.bufferedMessageData,
header.HeaderInfo, headerIndex), processing));
break;
case HeaderType.ReadableHeader:
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MsmqDecodeHelper.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MsmqDecodeHelper.cs
index 4fba9a57491..0fe664c4b07 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MsmqDecodeHelper.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/MsmqDecodeHelper.cs
@@ -325,8 +325,8 @@ namespace System.ServiceModel.Channels
throw listener.NormalizePoisonException(messageProperty.LookupId, MaxMessageSizeStream.CreateMaxReceivedMessageSizeExceededException(listener.MaxReceivedMessageSize));
}
- // Fix for CSDMain bug 17842
- // size is derived from user data, check for corruption
+ // Fix for CSDMain
+
if ((size + offset) > buffer.Length)
{
listener.MsmqReceiveHelper.FinalDisposition(messageProperty);
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/OneWayChannelFactory.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/OneWayChannelFactory.cs
index f45463a3320..c37698a5e7b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/OneWayChannelFactory.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/OneWayChannelFactory.cs
@@ -763,7 +763,7 @@ namespace System.ServiceModel.Channels
thisPtr.CompleteOpen(result);
completeSelf = thisPtr.SendMessage();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -796,7 +796,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.innerChannel.EndSend(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/OneWayChannelListener.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/OneWayChannelListener.cs
index ef8abafcf1f..afba9b018ca 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/OneWayChannelListener.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/OneWayChannelListener.cs
@@ -429,7 +429,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.HandleReceiveRequestComplete(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -461,7 +461,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.HandleReplyComplete(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -770,7 +770,7 @@ namespace System.ServiceModel.Channels
return;
}
}
-#pragma warning suppress 56500 // [....], transferring exception to input queue to be pulled off by user
+#pragma warning suppress 56500 // Microsoft, transferring exception to input queue to be pulled off by user
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -809,7 +809,7 @@ namespace System.ServiceModel.Channels
{
DiagnosticUtility.TraceHandledException(e, TraceEventType.Information);
}
-#pragma warning suppress 56500 // [....], transferring exception to input queue to be pulled off by user
+#pragma warning suppress 56500 // Microsoft, transferring exception to input queue to be pulled off by user
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -940,7 +940,7 @@ namespace System.ServiceModel.Channels
}
DiagnosticUtility.TraceHandledException(e, TraceEventType.Information);
}
-#pragma warning suppress 56500 // [....], transferring exception to input queue to be pulled off by user
+#pragma warning suppress 56500 // Microsoft, transferring exception to input queue to be pulled off by user
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1007,7 +1007,7 @@ namespace System.ServiceModel.Channels
}
DiagnosticUtility.TraceHandledException(e, TraceEventType.Information);
}
-#pragma warning suppress 56500 // [....], transferring exception to input queue to be pulled off by user
+#pragma warning suppress 56500 // Microsoft, transferring exception to input queue to be pulled off by user
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1274,7 +1274,7 @@ namespace System.ServiceModel.Channels
{
DiagnosticUtility.TraceHandledException(e, TraceEventType.Information);
}
-#pragma warning suppress 56500 // [....], transferring exception to input queue to be pulled off by user
+#pragma warning suppress 56500 // Microsoft, transferring exception to input queue to be pulled off by user
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1379,7 +1379,7 @@ namespace System.ServiceModel.Channels
DiagnosticUtility.TraceHandledException(e, TraceEventType.Information);
startLoop = (this.channel.State == CommunicationState.Opened);
}
-#pragma warning suppress 56500 // [....], transferring exception to input queue to be pulled off by user
+#pragma warning suppress 56500 // Microsoft, transferring exception to input queue to be pulled off by user
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1415,7 +1415,7 @@ namespace System.ServiceModel.Channels
{
DiagnosticUtility.TraceHandledException(e, TraceEventType.Information);
}
-#pragma warning suppress 56500 // [....], transferring exception to input queue to be pulled off by user
+#pragma warning suppress 56500 // Microsoft, transferring exception to input queue to be pulled off by user
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/OverlappedContext.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/OverlappedContext.cs
index 7af8609728f..f03b4079905 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/OverlappedContext.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/OverlappedContext.cs
@@ -109,7 +109,7 @@ namespace System.ServiceModel.Channels
}
if (this.syncOperationPending)
{
- throw Fx.AssertAndThrow("OverlappedContext.Free called while [....] operation is pending.");
+ throw Fx.AssertAndThrow("OverlappedContext.Free called while sync operation is pending.");
}
if (this.nativeOverlapped == null)
{
@@ -172,7 +172,7 @@ namespace System.ServiceModel.Channels
}
if (this.syncOperationPending)
{
- throw Fx.AssertAndThrow("StartAsyncOperation called while a [....] operation was already pending.");
+ throw Fx.AssertAndThrow("StartAsyncOperation called while a sync operation was already pending.");
}
if (this.nativeOverlapped == null)
{
@@ -249,7 +249,7 @@ namespace System.ServiceModel.Channels
this.overlapped.EventHandleIntPtr = EventHandle;
- // [....] operations do NOT root this object. If it gets finalized, we need to know not to free the buffer.
+ // Sync operations do NOT root this object. If it gets finalized, we need to know not to free the buffer.
// We do root the event.
this.rootedHolder.EventHolder = this.completionEvent;
this.syncOperationPending = true;
@@ -292,7 +292,7 @@ namespace System.ServiceModel.Channels
}
Fx.Assert(this.bufferPtr == null || this.bufferPtr == (byte*)Marshal.UnsafeAddrOfPinnedArrayElement((byte[])holder, 0),
- "The buffer moved during a [....] call!");
+ "The buffer moved during a sync call!");
CancelSyncOperation(ref holder);
return true;
@@ -333,7 +333,7 @@ namespace System.ServiceModel.Channels
byte* ptr = this.bufferPtr;
if (ptr == null)
{
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw Fx.AssertAndThrow("Pointer requested while no operation pending or no buffer provided.");
}
return ptr;
@@ -348,7 +348,7 @@ namespace System.ServiceModel.Channels
NativeOverlapped* ptr = this.nativeOverlapped;
if (ptr == null)
{
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw Fx.AssertAndThrow("NativeOverlapped pointer requested after it was freed.");
}
return ptr;
@@ -446,14 +446,14 @@ namespace System.ServiceModel.Channels
Fx.Assert(pThis.bufferPtr == null || pThis.bufferPtr == (byte*)Marshal.UnsafeAddrOfPinnedArrayElement((byte[])pThis.bufferHolder[0], 0),
"Buffer moved during synchronous deferred cleanup!");
- Fx.Assert(pThis.syncOperationPending, "OverlappedContext.CleanupCallback called with no [....] operation pending.");
+ Fx.Assert(pThis.syncOperationPending, "OverlappedContext.CleanupCallback called with no sync operation pending.");
pThis.pinnedTarget = null;
pThis.rootedHolder.EventHolder.Close();
Overlapped.Free(pThis.nativeOverlapped);
}
// This class is always held onto (rooted) by the packed Overlapped. The OverlappedContext instance moves itself in and out of
- // this object to root itself. It's also used to root the ManualResetEvent during [....] operations.
+ // this object to root itself. It's also used to root the ManualResetEvent during sync operations.
// It needs to be an IAsyncResult since that's what Overlapped takes.
class RootedHolder : IAsyncResult
{
@@ -493,7 +493,7 @@ namespace System.ServiceModel.Channels
{
get
{
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw Fx.AssertAndThrow("RootedHolder.AsyncState called.");
}
}
@@ -502,7 +502,7 @@ namespace System.ServiceModel.Channels
{
get
{
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw Fx.AssertAndThrow("RootedHolder.AsyncWaitHandle called.");
}
}
@@ -511,7 +511,7 @@ namespace System.ServiceModel.Channels
{
get
{
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw Fx.AssertAndThrow("RootedHolder.CompletedSynchronously called.");
}
}
@@ -520,7 +520,7 @@ namespace System.ServiceModel.Channels
{
get
{
-#pragma warning suppress 56503 // [....], not a publicly accessible API
+#pragma warning suppress 56503 // Microsoft, not a publicly accessible API
throw Fx.AssertAndThrow("RootedHolder.IsCompleted called.");
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PeerCustomResolverBindingElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PeerCustomResolverBindingElement.cs
index a9e8a8ea0ef..00ba45b8759 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PeerCustomResolverBindingElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PeerCustomResolverBindingElement.cs
@@ -52,7 +52,7 @@ namespace System.ServiceModel.Channels
if (context == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("context"));
-#pragma warning suppress 56506 // [....], context.BindingParameters is never null
+#pragma warning suppress 56506 // Microsoft, context.BindingParameters is never null
credentials = context.BindingParameters.Find<ClientCredentials>();
}
public override T GetProperty<T>(System.ServiceModel.Channels.BindingContext context)
@@ -110,7 +110,7 @@ namespace System.ServiceModel.Channels
if (context == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("context"));
-#pragma warning suppress 56506 // [....], context.BindingParameters is never null
+#pragma warning suppress 56506 // Microsoft, context.BindingParameters is never null
context.BindingParameters.Add(this);
credentials = context.BindingParameters.Find<ClientCredentials>();
return context.BuildInnerChannelFactory<TChannel>();
@@ -120,7 +120,7 @@ namespace System.ServiceModel.Channels
{
if (context == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("context"));
-#pragma warning suppress 56506 // [....], context.BindingParameters is never null
+#pragma warning suppress 56506 // Microsoft, context.BindingParameters is never null
this.credentials = context.BindingParameters.Find<ClientCredentials>();
context.BindingParameters.Add(this);
return context.CanBuildInnerChannelFactory<TChannel>();
@@ -131,7 +131,7 @@ namespace System.ServiceModel.Channels
if (context == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("context"));
-#pragma warning suppress 56506 // [....], context.BindingParameters is never null
+#pragma warning suppress 56506 // Microsoft, context.BindingParameters is never null
context.BindingParameters.Add(this);
this.credentials = context.BindingParameters.Find<ClientCredentials>();
return context.BuildInnerChannelListener<TChannel>();
@@ -141,7 +141,7 @@ namespace System.ServiceModel.Channels
{
if (context == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("context"));
-#pragma warning suppress 56506 // [....], context.BindingParameters is never null
+#pragma warning suppress 56506 // Microsoft, context.BindingParameters is never null
this.credentials = context.BindingParameters.Find<ClientCredentials>();
context.BindingParameters.Add(this);
return context.CanBuildInnerChannelListener<TChannel>();
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PeerFlooder.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PeerFlooder.cs
index b3866971e7a..9559bfb66a9 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PeerFlooder.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PeerFlooder.cs
@@ -938,7 +938,7 @@ namespace System.ServiceModel.Channels
//this is the callback routine for async completion on channel BeginSend() operations.
- //if we are done, simply return. This can happen if user called [....] EndX.
+ //if we are done, simply return. This can happen if user called sync EndX.
//if the flooder is still processing BeginSend(), then we probably cant complete. In this case, add the result to pending and return
//main thread will flush the pending completions in MarkEnd().
//otherwise, call EndX on the result and remove it from results.
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PeerNeighborManager.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PeerNeighborManager.cs
index 0ae8268e7fc..1698d27888b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PeerNeighborManager.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PeerNeighborManager.cs
@@ -1635,7 +1635,7 @@ namespace System.ServiceModel.Channels
throw;
}
- // Indicate [....] completion to the caller
+ // Indicate sync completion to the caller
if (result.CompletedSynchronously)
base.Complete(true);
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PipeConnection.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PipeConnection.cs
index f50e3667174..70538c75bfc 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PipeConnection.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/PipeConnection.cs
@@ -798,7 +798,7 @@ namespace System.ServiceModel.Channels
ulong GetServerPid()
{
ulong id;
-#pragma warning suppress 56523 // [....], Win32Exception ctor calls Marshal.GetLastWin32Error()
+#pragma warning suppress 56523 // Microsoft, Win32Exception ctor calls Marshal.GetLastWin32Error()
if (!UnsafeNativeMethods.GetNamedPipeServerProcessId(pipe, out id))
{
Win32Exception e = new Win32Exception();
@@ -810,7 +810,7 @@ namespace System.ServiceModel.Channels
ulong GetClientPid()
{
ulong id;
-#pragma warning suppress 56523 // [....], Win32Exception ctor calls Marshal.GetLastWin32Error()
+#pragma warning suppress 56523 // Microsoft, Win32Exception ctor calls Marshal.GetLastWin32Error()
if (!UnsafeNativeMethods.GetNamedPipeServerProcessId(pipe, out id))
{
Win32Exception e = new Win32Exception();
@@ -885,7 +885,7 @@ namespace System.ServiceModel.Channels
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(ConvertPipeException(e, TransferOperation.Read));
}
}
-#pragma warning suppress 56500 // [....], transferring exception to caller
+#pragma warning suppress 56500 // Microsoft, transferring exception to caller
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -955,7 +955,7 @@ namespace System.ServiceModel.Channels
throw DiagnosticUtility.ExceptionUtility.ThrowHelper(ConvertPipeException(e, TransferOperation.Write), ExceptionEventType);
}
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -2293,7 +2293,7 @@ namespace System.ServiceModel.Channels
}
}
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ReplyChannel.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ReplyChannel.cs
index 3f258f1641f..58c50c38a0f 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ReplyChannel.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ReplyChannel.cs
@@ -129,7 +129,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.HandleReceiveRequestComplete(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/RequestChannel.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/RequestChannel.cs
index 687c24254c5..f6e2de5fec7 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/RequestChannel.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/RequestChannel.cs
@@ -415,7 +415,7 @@ namespace System.ServiceModel.Channels
}
thisPtr.CleanupEvents();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/RequestContextBase.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/RequestContextBase.cs
index f062f22e9a0..269367ec443 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/RequestContextBase.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/RequestContextBase.cs
@@ -45,7 +45,7 @@ namespace System.ServiceModel.Channels
{
if (this.requestMessageException != null)
{
-#pragma warning suppress 56503 // [....], see outcome of DCR 50092
+#pragma warning suppress 56503 // Microsoft, see outcome of DCR 50092
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(this.requestMessageException);
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SafeNativeMethods.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SafeNativeMethods.cs
index f63d363b4ec..261d8c688ee 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SafeNativeMethods.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SafeNativeMethods.cs
@@ -7,6 +7,7 @@ namespace System.ServiceModel.Channels
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
+ using FILETIME = System.Runtime.InteropServices.ComTypes.FILETIME;
[SuppressUnmanagedCodeSecurity]
internal static class SafeNativeMethods
@@ -20,10 +21,19 @@ namespace System.ServiceModel.Channels
[Out] out uint increment,
[Out] out uint adjustmentDisabled
);
-
+
[DllImport(KERNEL32, SetLastError = true)]
[ResourceExposure(ResourceScope.None)]
- public static extern void GetSystemTimeAsFileTime(out long time);
+ private static extern void GetSystemTimeAsFileTime([Out] out FILETIME time);
+
+ public static void GetSystemTimeAsFileTime(out long time) {
+ FILETIME fileTime;
+ GetSystemTimeAsFileTime(out fileTime);
+ time = 0;
+ time |= (uint)fileTime.dwHighDateTime;
+ time <<= sizeof(uint) * 8;
+ time |= (uint)fileTime.dwLowDateTime;
+ }
[Fx.Tag.SecurityNote(Critical = "Calls critical method GetSystemTimeAdjustment.",
Safe = "Method is a SafeNativeMethod.")]
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SecurityBindingElementImporter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SecurityBindingElementImporter.cs
index 4a140246430..340b136e949 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SecurityBindingElementImporter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SecurityBindingElementImporter.cs
@@ -349,7 +349,7 @@ namespace System.ServiceModel.Channels
// normalize protection level settings at the operation scope if possible to help avoid typed message generation
if (hasProtectionLevel && isProtectionLevelUniform)
{
- // ([....]) remove the foreach message here
+ // (Microsoft) remove the foreach message here
// foreach (MessageDescription message in operation.Messages)
this.ResetProtectionLevelForMessages(operation);
@@ -665,7 +665,7 @@ namespace System.ServiceModel.Channels
{
// We already have found and imported the message security binding element above. Hence this could be the dual mode security.
// Now let us see if there is HttpsTransportBinding assertion also below it .This is to avoid the
- // warning messages while importing wsdl representing the message security over Https transport security scenario. See Bug:136416.
+ // warning messages while importing wsdl representing the message security over Https transport security scenario. See
SecurityBindingElement tbe = null;
this.TryImportTransportSecurityBindingElement(importer, policyContext, out tbe, true);
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ServiceChannelProxy.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ServiceChannelProxy.cs
index d2551e9e314..8469527bec0 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ServiceChannelProxy.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/ServiceChannelProxy.cs
@@ -765,7 +765,7 @@ namespace System.ServiceModel.Channels
{
get
{
-#pragma warning suppress 56503 // [....], IEnumerator guidelines, Current throws exception before calling MoveNext
+#pragma warning suppress 56503 // Microsoft, IEnumerator guidelines, Current throws exception before calling MoveNext
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SFxDictionaryIsEmpty)));
}
}
@@ -778,7 +778,7 @@ namespace System.ServiceModel.Channels
{
get
{
-#pragma warning suppress 56503 // [....], IEnumerator guidelines, Current throws exception before calling MoveNext
+#pragma warning suppress 56503 // Microsoft, IEnumerator guidelines, Current throws exception before calling MoveNext
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SFxDictionaryIsEmpty)));
}
}
@@ -787,7 +787,7 @@ namespace System.ServiceModel.Channels
{
get
{
-#pragma warning suppress 56503 // [....], IEnumerator guidelines, Current throws exception before calling MoveNext
+#pragma warning suppress 56503 // Microsoft, IEnumerator guidelines, Current throws exception before calling MoveNext
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SFxDictionaryIsEmpty)));
}
}
@@ -796,7 +796,7 @@ namespace System.ServiceModel.Channels
{
get
{
-#pragma warning suppress 56503 // [....], IEnumerator guidelines, Current throws exception before calling MoveNext
+#pragma warning suppress 56503 // Microsoft, IEnumerator guidelines, Current throws exception before calling MoveNext
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SFxDictionaryIsEmpty)));
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SessionConnectionReader.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SessionConnectionReader.cs
index 71a06c030bf..62fff724ff7 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SessionConnectionReader.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SessionConnectionReader.cs
@@ -1465,7 +1465,7 @@ namespace System.ServiceModel.Channels
}
}
}
-#pragma warning suppress 56500 // [....], transferring exception to caller
+#pragma warning suppress 56500 // Microsoft, transferring exception to caller
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SingletonConnectionReader.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SingletonConnectionReader.cs
index 5660eb1b93b..4cb52f57980 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SingletonConnectionReader.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SingletonConnectionReader.cs
@@ -595,7 +595,7 @@ namespace System.ServiceModel.Channels
if (!upgradeAsyncResult.CompletedSynchronously)
{
- upgradeAsyncResult = null; //caller shouldn't use this out param unless completed [....].
+ upgradeAsyncResult = null; //caller shouldn't use this out param unless completed sync.
return false;
}
@@ -1295,7 +1295,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.message = thisPtr.parent.Receive(thisPtr.timeout);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception exception)
{
if (Fx.IsFatal(exception))
@@ -1892,7 +1892,7 @@ namespace System.ServiceModel.Channels
completeSelf = thisPtr.HandleWriteStartBytes();
throwing = false;
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1928,7 +1928,7 @@ namespace System.ServiceModel.Channels
completeSelf = thisPtr.HandleWriteBufferedMessage();
throwing = false;
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1963,7 +1963,7 @@ namespace System.ServiceModel.Channels
completeSelf = thisPtr.HandleWriteEndBytes();
success = true;
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SocketConnection.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SocketConnection.cs
index 2a57b0bdbf5..6690af5b3da 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SocketConnection.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SocketConnection.cs
@@ -941,7 +941,7 @@ namespace System.ServiceModel.Channels
{
this.asyncWriteException = ConvertSendException(socketException, TimeSpan.MaxValue);
}
-#pragma warning suppress 56500 // [....], transferring exception to caller
+#pragma warning suppress 56500 // Microsoft, transferring exception to caller
catch (Exception exception)
{
if (Fx.IsFatal(exception))
@@ -1274,7 +1274,7 @@ namespace System.ServiceModel.Channels
{
this.asyncReadException = ConvertObjectDisposedException(objectDisposedException, TransferOperation.Read);
}
-#pragma warning suppress 56500 // [....], transferring exception to caller
+#pragma warning suppress 56500 // Microsoft, transferring exception to caller
catch (Exception exception)
{
if (Fx.IsFatal(exception))
@@ -1306,7 +1306,7 @@ namespace System.ServiceModel.Channels
{
asyncReadException = ConvertReceiveException(socketException, TimeSpan.MaxValue);
}
-#pragma warning suppress 56500 // [....], transferring exception to caller
+#pragma warning suppress 56500 // Microsoft, transferring exception to caller
catch (Exception exception)
{
if (Fx.IsFatal(exception))
@@ -1927,7 +1927,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.StartConnect();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -2234,7 +2234,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.StartAccept();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SslStreamSecurityBindingElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SslStreamSecurityBindingElement.cs
index 4220d500c1b..957aefd915a 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SslStreamSecurityBindingElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SslStreamSecurityBindingElement.cs
@@ -3,6 +3,7 @@
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Channels
{
+ using System.Security.Authentication;
using System.ComponentModel;
using System.Collections.Generic;
using System.Net.Security;
@@ -16,10 +17,12 @@ namespace System.ServiceModel.Channels
{
IdentityVerifier identityVerifier;
bool requireClientCertificate;
+ SslProtocols sslProtocols;
public SslStreamSecurityBindingElement()
{
this.requireClientCertificate = TransportDefaults.RequireClientCertificate;
+ this.sslProtocols = TransportDefaults.SslProtocols;
}
protected SslStreamSecurityBindingElement(SslStreamSecurityBindingElement elementToBeCloned)
@@ -27,6 +30,7 @@ namespace System.ServiceModel.Channels
{
this.identityVerifier = elementToBeCloned.identityVerifier;
this.requireClientCertificate = elementToBeCloned.requireClientCertificate;
+ this.sslProtocols = elementToBeCloned.sslProtocols;
}
public IdentityVerifier IdentityVerifier
@@ -64,6 +68,20 @@ namespace System.ServiceModel.Channels
}
}
+ [DefaultValue(TransportDefaults.SslProtocols)]
+ public SslProtocols SslProtocols
+ {
+ get
+ {
+ return this.sslProtocols;
+ }
+ set
+ {
+ SslProtocolsHelper.Validate(value);
+ this.sslProtocols = value;
+ }
+ }
+
public override IChannelFactory<TChannel> BuildChannelFactory<TChannel>(BindingContext context)
{
if (context == null)
@@ -71,7 +89,7 @@ namespace System.ServiceModel.Channels
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context");
}
-#pragma warning suppress 56506 // [....], BindingContext.BindingParameters cannot be null
+#pragma warning suppress 56506 // Microsoft, BindingContext.BindingParameters cannot be null
context.BindingParameters.Add(this);
return context.BuildInnerChannelFactory<TChannel>();
}
@@ -83,7 +101,7 @@ namespace System.ServiceModel.Channels
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context");
}
-#pragma warning suppress 56506 // [....], BindingContext.BindingParameters cannot be null
+#pragma warning suppress 56506 // Microsoft, BindingContext.BindingParameters cannot be null
context.BindingParameters.Add(this);
return context.CanBuildInnerChannelFactory<TChannel>();
}
@@ -95,7 +113,7 @@ namespace System.ServiceModel.Channels
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context");
}
-#pragma warning suppress 56506 // [....], BindingContext.BindingParameters cannot be null
+#pragma warning suppress 56506 // Microsoft, BindingContext.BindingParameters cannot be null
context.BindingParameters.Add(this);
return context.BuildInnerChannelListener<TChannel>();
}
@@ -107,7 +125,7 @@ namespace System.ServiceModel.Channels
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context");
}
-#pragma warning suppress 56506 // [....], BindingContext.BindingParameters cannot be null
+#pragma warning suppress 56506 // Microsoft, BindingContext.BindingParameters cannot be null
context.BindingParameters.Add(this);
return context.CanBuildInnerChannelListener<TChannel>();
}
@@ -218,7 +236,7 @@ namespace System.ServiceModel.Channels
return false;
}
- return this.requireClientCertificate == ssl.requireClientCertificate;
+ return this.requireClientCertificate == ssl.requireClientCertificate && this.sslProtocols == ssl.sslProtocols;
}
[EditorBrowsable(EditorBrowsableState.Never)]
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SslStreamSecurityUpgradeProvider.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SslStreamSecurityUpgradeProvider.cs
index 2def8e744e0..a9761c4dcab 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SslStreamSecurityUpgradeProvider.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SslStreamSecurityUpgradeProvider.cs
@@ -34,17 +34,19 @@ namespace System.ServiceModel.Channels
bool requireClientCertificate;
string scheme;
bool enableChannelBinding;
+ SslProtocols sslProtocols;
- SslStreamSecurityUpgradeProvider(IDefaultCommunicationTimeouts timeouts, SecurityTokenManager clientSecurityTokenManager, bool requireClientCertificate, string scheme, IdentityVerifier identityVerifier)
+ SslStreamSecurityUpgradeProvider(IDefaultCommunicationTimeouts timeouts, SecurityTokenManager clientSecurityTokenManager, bool requireClientCertificate, string scheme, IdentityVerifier identityVerifier, SslProtocols sslProtocols)
: base(timeouts)
{
this.identityVerifier = identityVerifier;
this.scheme = scheme;
this.clientSecurityTokenManager = clientSecurityTokenManager;
this.requireClientCertificate = requireClientCertificate;
+ this.sslProtocols = sslProtocols;
}
- SslStreamSecurityUpgradeProvider(IDefaultCommunicationTimeouts timeouts, SecurityTokenProvider serverTokenProvider, bool requireClientCertificate, SecurityTokenAuthenticator clientCertificateAuthenticator, string scheme, IdentityVerifier identityVerifier)
+ SslStreamSecurityUpgradeProvider(IDefaultCommunicationTimeouts timeouts, SecurityTokenProvider serverTokenProvider, bool requireClientCertificate, SecurityTokenAuthenticator clientCertificateAuthenticator, string scheme, IdentityVerifier identityVerifier, SslProtocols sslProtocols)
: base(timeouts)
{
this.serverTokenProvider = serverTokenProvider;
@@ -52,6 +54,7 @@ namespace System.ServiceModel.Channels
this.clientCertificateAuthenticator = clientCertificateAuthenticator;
this.identityVerifier = identityVerifier;
this.scheme = scheme;
+ this.sslProtocols = sslProtocols;
}
public static SslStreamSecurityUpgradeProvider CreateClientProvider(
@@ -65,7 +68,7 @@ namespace System.ServiceModel.Channels
}
SecurityTokenManager tokenManager = credentialProvider.CreateSecurityTokenManager();
- return new SslStreamSecurityUpgradeProvider(context.Binding, tokenManager, bindingElement.RequireClientCertificate, context.Binding.Scheme, bindingElement.IdentityVerifier);
+ return new SslStreamSecurityUpgradeProvider(context.Binding, tokenManager, bindingElement.RequireClientCertificate, context.Binding.Scheme, bindingElement.IdentityVerifier, bindingElement.SslProtocols);
}
public static SslStreamSecurityUpgradeProvider CreateServerProvider(
@@ -99,7 +102,7 @@ namespace System.ServiceModel.Channels
TransportSecurityHelpers.GetCertificateTokenAuthenticator(tokenManager, context.Binding.Scheme, listenUri);
return new SslStreamSecurityUpgradeProvider(context.Binding, tokenProvider, bindingElement.RequireClientCertificate,
- certificateAuthenticator, context.Binding.Scheme, bindingElement.IdentityVerifier);
+ certificateAuthenticator, context.Binding.Scheme, bindingElement.IdentityVerifier, bindingElement.SslProtocols);
}
public override EndpointIdentity Identity
@@ -164,6 +167,11 @@ namespace System.ServiceModel.Channels
get { return this.scheme; }
}
+ public SslProtocols SslProtocols
+ {
+ get { return this.sslProtocols; }
+ }
+
public override T GetProperty<T>()
{
if (typeof(T) == typeof(IChannelBindingProvider) || typeof(T) == typeof(IStreamUpgradeChannelBindingProvider))
@@ -431,7 +439,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = this.HandleOpenAuthenticatorComplete(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -462,7 +470,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = this.HandleOpenTokenProviderComplete(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -493,7 +501,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = this.HandleGetTokenComplete(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -524,7 +532,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = this.HandleCloseTokenProviderComplete(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -589,7 +597,7 @@ namespace System.ServiceModel.Channels
try
{
sslStream.AuthenticateAsServer(this.parent.ServerCertificate, this.parent.RequireClientCertificate,
- SslProtocols.Default, false);
+ this.parent.SslProtocols, false);
}
catch (AuthenticationException exception)
{
@@ -703,7 +711,7 @@ namespace System.ServiceModel.Channels
this.sslStream = new SslStream(stream, false, this.acceptor.ValidateRemoteCertificate);
return this.sslStream.BeginAuthenticateAsServer(this.acceptor.parent.ServerCertificate,
- this.acceptor.parent.RequireClientCertificate, SslProtocols.Default, false, callback, this);
+ this.acceptor.parent.RequireClientCertificate, this.acceptor.parent.SslProtocols, false, callback, this);
}
protected override Stream OnCompleteAuthenticateAsServer(IAsyncResult result)
@@ -910,7 +918,7 @@ namespace System.ServiceModel.Channels
SslStream sslStream = new SslStream(stream, false, this.ValidateRemoteCertificate, selectionCallback);
try
{
- sslStream.AuthenticateAsClient(string.Empty, clientCertificates, SslProtocols.Default, false);
+ sslStream.AuthenticateAsClient(string.Empty, clientCertificates, this.parent.SslProtocols, false);
}
catch (SecurityTokenValidationException tokenValidationException)
{
@@ -995,7 +1003,7 @@ namespace System.ServiceModel.Channels
try
{
return this.sslStream.BeginAuthenticateAsClient(string.Empty, this.clientCertificates,
- SslProtocols.Default, false, callback, this);
+ this.initiator.parent.SslProtocols, false, callback, this);
}
catch (SecurityTokenValidationException tokenValidationException)
{
@@ -1134,7 +1142,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = this.HandleBaseOpenComplete(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1165,7 +1173,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = this.HandleOpenTokenProviderComplete(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1196,7 +1204,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = this.HandleGetTokenComplete(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1286,7 +1294,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = this.HandleBaseCloseComplete(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1316,7 +1324,7 @@ namespace System.ServiceModel.Channels
{
SecurityUtils.EndCloseTokenProviderIfRequired(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StandardBindingImporter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StandardBindingImporter.cs
index 55a2020f77e..364205eab36 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StandardBindingImporter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StandardBindingImporter.cs
@@ -21,7 +21,7 @@ namespace System.ServiceModel.Channels
if (endpointContext == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("endpointContext");
-#pragma warning suppress 56506 // [....], endpointContext.Endpoint is never null
+#pragma warning suppress 56506 // Microsoft, endpointContext.Endpoint is never null
if (endpointContext.Endpoint.Binding == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("endpointContext.Binding");
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StreamSecurityUpgradeAcceptorAsyncResult.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StreamSecurityUpgradeAcceptorAsyncResult.cs
index fb32637e265..f045513e285 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StreamSecurityUpgradeAcceptorAsyncResult.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StreamSecurityUpgradeAcceptorAsyncResult.cs
@@ -90,7 +90,7 @@ namespace System.ServiceModel.Channels
{
acceptUpgradeAsyncResult.CompleteAuthenticateAsServer(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StreamSecurityUpgradeInitiatorAsyncResult.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StreamSecurityUpgradeInitiatorAsyncResult.cs
index 5d18a8df17e..37d443c87cf 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StreamSecurityUpgradeInitiatorAsyncResult.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StreamSecurityUpgradeInitiatorAsyncResult.cs
@@ -93,7 +93,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.CompleteAuthenticateAsClient(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StreamedFramingRequestChannel.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StreamedFramingRequestChannel.cs
index fc5e285e288..ccfc53f4304 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StreamedFramingRequestChannel.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/StreamedFramingRequestChannel.cs
@@ -348,7 +348,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.HandleWritePreamble();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -377,7 +377,7 @@ namespace System.ServiceModel.Channels
thisPtr.connection.EndWrite();
completeSelf = thisPtr.ReadPreambleAck();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -405,7 +405,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.HandlePreambleAck();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -438,7 +438,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.HandleUpgrade(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -470,7 +470,7 @@ namespace System.ServiceModel.Channels
{
ConnectionUpgradeHelper.EndDecodeFramingFault(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -763,7 +763,7 @@ namespace System.ServiceModel.Channels
completeSelf = thisPtr.HandleEstablishConnection(result);
throwing = false;
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -805,7 +805,7 @@ namespace System.ServiceModel.Channels
completeSelf = thisPtr.HandleWriteMessage(result);
throwing = false;
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -842,7 +842,7 @@ namespace System.ServiceModel.Channels
completeSelf = thisPtr.CompleteReceiveReply(result);
throwing = false;
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SynchronizedMessageSource.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SynchronizedMessageSource.cs
index 99380758425..91df25a657b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SynchronizedMessageSource.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/SynchronizedMessageSource.cs
@@ -176,7 +176,7 @@ namespace System.ServiceModel.Channels
thisPtr.exitLock = true;
completeSelf = thisPtr.PerformOperation(thisPtr.timeoutHelper.RemainingTime());
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -225,7 +225,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.SetReturnValue(thisPtr.Source.EndReceive());
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -270,7 +270,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.SetReturnValue(thisPtr.Source.EndWaitForMessage());
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportBindingElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportBindingElement.cs
index c1727702b66..799f5ba415c 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportBindingElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportBindingElement.cs
@@ -117,7 +117,7 @@ namespace System.ServiceModel.Channels
// to cover all our bases, let's iterate through the BindingParameters to make sure
// we haven't missed a query (since we're the Transport and we're at the bottom)
-#pragma warning suppress 56506 // [....], BindingContext.BindingParameters cannot be null
+#pragma warning suppress 56506 // Microsoft, BindingContext.BindingParameters cannot be null
Collection<BindingElement> bindingElements = context.BindingParameters.FindAll<BindingElement>();
T result = default(T);
@@ -154,7 +154,7 @@ namespace System.ServiceModel.Channels
internal ChannelProtectionRequirements GetProtectionRequirements(BindingContext context)
{
AddressingVersion addressingVersion = AddressingVersion.WSAddressing10;
-#pragma warning suppress 56506 // [....], CustomBinding.Elements can never be null
+#pragma warning suppress 56506 // Microsoft, CustomBinding.Elements can never be null
MessageEncodingBindingElement messageEncoderBindingElement = context.Binding.Elements.Find<MessageEncodingBindingElement>();
if (messageEncoderBindingElement != null)
{
@@ -183,7 +183,7 @@ namespace System.ServiceModel.Channels
}
// Set SoapBinding Transport URI
-#pragma warning suppress 56506 // [....], these properties cannot be null in this context
+#pragma warning suppress 56506 // Microsoft, these properties cannot be null in this context
BindingElementCollection bindingElements = endpointContext.Endpoint.Binding.CreateBindingElements();
if (wsdlTransportUri != null)
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportBindingElementImporter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportBindingElementImporter.cs
index 3cd450b6d5c..9e6b90657f3 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportBindingElementImporter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportBindingElementImporter.cs
@@ -36,20 +36,20 @@ namespace System.ServiceModel.Channels
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context");
}
-#pragma warning suppress 56506 // [....], these properties cannot be null in this context
+#pragma warning suppress 56506 // Microsoft, these properties cannot be null in this context
if (context.Endpoint.Binding == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context.Endpoint.Binding");
}
-#pragma warning suppress 56506 // [....], CustomBinding.Elements never be null
+#pragma warning suppress 56506 // Microsoft, CustomBinding.Elements never be null
TransportBindingElement transportBindingElement = GetBindingElements(context).Find<TransportBindingElement>();
bool transportHandledExternaly = (transportBindingElement != null) && !StateHelper.IsRegisteredTransportBindingElement(importer, context);
if (transportHandledExternaly)
return;
-#pragma warning suppress 56506 // [....], these properties cannot be null in this context
+#pragma warning suppress 56506 // Microsoft, these properties cannot be null in this context
WsdlNS.SoapBinding soapBinding = (WsdlNS.SoapBinding)context.WsdlBinding.Extensions.Find(typeof(WsdlNS.SoapBinding));
if (soapBinding != null && transportBindingElement == null)
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportDefaults.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportDefaults.cs
index ce6834f178b..f689dc4a0de 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportDefaults.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportDefaults.cs
@@ -8,6 +8,7 @@ namespace System.ServiceModel.Channels
using System.Net.Security;
using System.Net.WebSockets;
using System.Runtime;
+ using System.Security.Authentication;
using System.Security.Principal;
using System.ServiceModel;
using System.ServiceModel.Dispatcher;
@@ -201,6 +202,7 @@ namespace System.ServiceModel.Channels
internal const bool RequireClientCertificate = false;
internal const int MaxFaultSize = MaxBufferSize;
internal const int MaxSecurityFaultSize = 16384;
+ internal const SslProtocols SslProtocols = SslProtocols.Ssl3 | SslProtocols.Tls | SslProtocols.Tls11 | SslProtocols.Tls12;
// Calling CreateFault on an incoming message can expose some DoS-related security
// vulnerabilities when a service is in streaming mode. See MB 47592 for more details.
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportDuplexSessionChannel.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportDuplexSessionChannel.cs
index ec077721918..d0a75974cbc 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportDuplexSessionChannel.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportDuplexSessionChannel.cs
@@ -739,7 +739,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.HandleCloseOutputSession(result, false);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -771,7 +771,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.HandleCloseInputSession(result, false);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -937,7 +937,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.WriteEndBytes();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -965,7 +965,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.HandleWriteEndBytesComplete();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1105,7 +1105,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = thisPtr.WriteCore();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1133,7 +1133,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.channel.FinishWritingMessage();
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1290,7 +1290,7 @@ namespace System.ServiceModel.Channels
DiagnosticUtility.TraceHandledException(e, TraceEventType.Information);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportManager.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportManager.cs
index aedfcbdd37c..5bf91cc0194 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportManager.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportManager.cs
@@ -345,7 +345,7 @@ namespace System.ServiceModel.Channels
{
this.OnScheduled(this.parent);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportSecurityHelpers.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportSecurityHelpers.cs
index 3abbf4e36ed..84154efa76a 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportSecurityHelpers.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/TransportSecurityHelpers.cs
@@ -606,7 +606,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.CompleteGetToken(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -700,7 +700,7 @@ namespace System.ServiceModel.Channels
{
thisPtr.CompleteGetToken(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/UnsafeNativeMethods.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/UnsafeNativeMethods.cs
index 647dce82c45..2634898e8f3 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/UnsafeNativeMethods.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/UnsafeNativeMethods.cs
@@ -1099,6 +1099,12 @@ namespace System.ServiceModel.Channels
[MarshalAs(UnmanagedType.U1), Out] out bool pfEnabled
);
+
+#if !FEATURE_CORECLR
+ // On CoreCLR this is not the way to determine if a process is a tailored application (which means APPX).
+ // On CoreCLR AppX is determined by a flag past to the host which is exposed by AppDomain.IsAppXProcess in mscorlib.
+ // The reason for this if-def is to ensure nobody takes a dependency on this on CoreCLR.
+
// AppModel.h functions (Win8+)
[DllImport(KERNEL32, CharSet = CharSet.None, EntryPoint = "GetCurrentPackageId")]
[SecurityCritical]
@@ -1128,6 +1134,7 @@ namespace System.ServiceModel.Channels
/// Indicates weather the running application is an immersive (or modern) Windows 8 (or later) application.
/// </summary>
internal static Lazy<bool> IsTailoredApplication = new Lazy<bool>(() => _IsTailoredApplication());
+#endif //!FEATURE_CORECLR
}
[SuppressUnmanagedCodeSecurity]
@@ -1145,7 +1152,7 @@ namespace System.ServiceModel.Channels
internal int GetClientPid()
{
int pid;
-#pragma warning suppress 56523 // [....], Win32Exception ctor calls Marshal.GetLastWin32Error()
+#pragma warning suppress 56523 // Microsoft, Win32Exception ctor calls Marshal.GetLastWin32Error()
bool success = UnsafeNativeMethods.GetNamedPipeClientProcessId(this, out pid);
if (!success)
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/UriPrefixTable.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/UriPrefixTable.cs
index 71549cd703b..4795a09177b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/UriPrefixTable.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/UriPrefixTable.cs
@@ -56,7 +56,7 @@ namespace System.ServiceModel.Channels
{
// The UriPrefixTable instance itself is used as a
// synchronization primitive in the TransportManagers and the
- // TransportManagerContainers so we return 'this' to keep them in [....].
+ // TransportManagerContainers so we return 'this' to keep them in sync.
return this;
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/WindowsStreamSecurityBindingElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/WindowsStreamSecurityBindingElement.cs
index 8f027c01ce9..e1f36707c02 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/WindowsStreamSecurityBindingElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/WindowsStreamSecurityBindingElement.cs
@@ -57,7 +57,7 @@ namespace System.ServiceModel.Channels
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context");
}
-#pragma warning suppress 56506 // [....], BindingContext.BindingParameters cannot be null
+#pragma warning suppress 56506 // Microsoft, BindingContext.BindingParameters cannot be null
context.BindingParameters.Add(this);
return context.BuildInnerChannelFactory<TChannel>();
}
@@ -69,7 +69,7 @@ namespace System.ServiceModel.Channels
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context");
}
-#pragma warning suppress 56506 // [....], BindingContext.BindingParameters cannot be null
+#pragma warning suppress 56506 // Microsoft, BindingContext.BindingParameters cannot be null
context.BindingParameters.Add(this);
return context.CanBuildInnerChannelFactory<TChannel>();
}
@@ -81,7 +81,7 @@ namespace System.ServiceModel.Channels
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context");
}
-#pragma warning suppress 56506 // [....], BindingContext.BindingParameters cannot be null
+#pragma warning suppress 56506 // Microsoft, BindingContext.BindingParameters cannot be null
context.BindingParameters.Add(this);
return context.BuildInnerChannelListener<TChannel>();
}
@@ -93,7 +93,7 @@ namespace System.ServiceModel.Channels
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context");
}
-#pragma warning suppress 56506 // [....], BindingContext.BindingParameters cannot be null
+#pragma warning suppress 56506 // Microsoft, BindingContext.BindingParameters cannot be null
context.BindingParameters.Add(this);
return context.CanBuildInnerChannelListener<TChannel>();
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/WindowsStreamSecurityUpgradeProvider.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/WindowsStreamSecurityUpgradeProvider.cs
index feaf5f1b1cf..441c80b91f1 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/WindowsStreamSecurityUpgradeProvider.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Channels/WindowsStreamSecurityUpgradeProvider.cs
@@ -614,7 +614,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = this.HandleBaseOpenComplete(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -645,7 +645,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = this.HandleOpenTokenProviderComplete(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -676,7 +676,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = this.HandleGetSspiCredentialComplete(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -758,7 +758,7 @@ namespace System.ServiceModel.Channels
{
completeSelf = this.HandleBaseCloseComplete(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -788,7 +788,7 @@ namespace System.ServiceModel.Channels
{
SecurityUtils.EndCloseTokenProviderIfRequired(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ClientBase.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ClientBase.cs
index c969544ef04..9da24fb18bb 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ClientBase.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ClientBase.cs
@@ -376,7 +376,7 @@ namespace System.ServiceModel
}
else
{
-#pragma warning suppress 56503 // [....], We throw only for unknown exceptions.
+#pragma warning suppress 56503 // Microsoft, We throw only for unknown exceptions.
throw;
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ComIntegration/IClassFactory.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ComIntegration/IClassFactory.cs
index 66772f888a4..4d9c3b8699f 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ComIntegration/IClassFactory.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ComIntegration/IClassFactory.cs
@@ -11,4 +11,4 @@ internal interface IClassFactory
[return: MarshalAs(UnmanagedType.Interface)]
object CreateInstance([In, MarshalAs(UnmanagedType.IUnknown)] object pUnkOuter, [In, MarshalAs(UnmanagedType.LPStruct)] Guid riid);
void LockServer([In, MarshalAs(UnmanagedType.Bool)]bool fLock);
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ComIntegration/IContextSecurityPerimeter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ComIntegration/IContextSecurityPerimeter.cs
index 06d679d8bc7..d21b9655918 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ComIntegration/IContextSecurityPerimeter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ComIntegration/IContextSecurityPerimeter.cs
@@ -16,4 +16,4 @@ namespace System.ServiceModel.ComIntegration
void SetPerimeterFlag([MarshalAs(UnmanagedType.Bool)] bool flag);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ComIntegration/IServerSecurity.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ComIntegration/IServerSecurity.cs
index 7fb9461b3cb..a0d0fb6253c 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ComIntegration/IServerSecurity.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ComIntegration/IServerSecurity.cs
@@ -30,4 +30,4 @@ namespace System.ServiceModel.ComIntegration
bool IsImpersonating();
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/BinaryMessageEncodingElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/BinaryMessageEncodingElement.cs
index 05db2a82948..94912a949e8 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/BinaryMessageEncodingElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/BinaryMessageEncodingElement.cs
@@ -63,7 +63,7 @@ namespace System.ServiceModel.Configuration
binding.MaxSessionSize = this.MaxSessionSize;
binding.MaxReadPoolSize = this.MaxReadPoolSize;
binding.MaxWritePoolSize = this.MaxWritePoolSize;
-#pragma warning suppress 56506 //[....]; base.ApplyConfiguration() checks for 'binding' being null
+#pragma warning suppress 56506 //Microsoft; base.ApplyConfiguration() checks for 'binding' being null
this.ReaderQuotas.ApplyConfiguration(binding.ReaderQuotas);
binding.CompressionFormat = this.CompressionFormat;
}
@@ -73,7 +73,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
BinaryMessageEncodingElement source = (BinaryMessageEncodingElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
this.MaxSessionSize = source.MaxSessionSize;
this.MaxReadPoolSize = source.MaxReadPoolSize;
this.MaxWritePoolSize = source.MaxWritePoolSize;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CallbackDebugElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CallbackDebugElement.cs
index e9ffa4980f0..68aaa719233 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CallbackDebugElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CallbackDebugElement.cs
@@ -25,7 +25,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
CallbackDebugElement source = (CallbackDebugElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() check for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() check for 'from' being null
this.IncludeExceptionDetailInFaults = source.IncludeExceptionDetailInFaults;
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CallbackTimeoutsElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CallbackTimeoutsElement.cs
index c12e897d24b..e998b23a0fa 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CallbackTimeoutsElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CallbackTimeoutsElement.cs
@@ -29,7 +29,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
CallbackTimeoutsElement source = (CallbackTimeoutsElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
this.TransactionTimeout = source.TransactionTimeout;
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ClientCredentialsElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ClientCredentialsElement.cs
index ca6fdc46366..71c11065ab4 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ClientCredentialsElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ClientCredentialsElement.cs
@@ -96,7 +96,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
ClientCredentialsElement source = (ClientCredentialsElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
this.ClientCertificate.Copy(source.ClientCertificate);
this.ServiceCertificate.Copy(source.ServiceCertificate);
this.Windows.Copy(source.Windows);
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ClientViaElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ClientViaElement.cs
index 7c79bab3f26..33e4d36bd11 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ClientViaElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ClientViaElement.cs
@@ -25,7 +25,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
ClientViaElement source = (ClientViaElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() check for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() check for 'from' being null
this.ViaUri = source.ViaUri;
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CommonEndpointBehaviorElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CommonEndpointBehaviorElement.cs
index 6913327c252..d5220b39c01 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CommonEndpointBehaviorElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CommonEndpointBehaviorElement.cs
@@ -23,7 +23,7 @@ namespace System.ServiceModel.Configuration
{
if (!typeof(System.ServiceModel.Description.IEndpointBehavior).IsAssignableFrom(element.BehaviorType))
{
-#pragma warning disable 56506 //[....]; element.ElementInformation is guaranteed to be non-null(System.Configuration)
+#pragma warning disable 56506 //Microsoft; element.ElementInformation is guaranteed to be non-null(System.Configuration)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigInvalidCommonEndpointBehaviorType,
element.ConfigurationElementName,
typeof(System.ServiceModel.Description.IEndpointBehavior).FullName),
@@ -44,7 +44,7 @@ namespace System.ServiceModel.Configuration
{
if (!typeof(System.ServiceModel.Description.IEndpointBehavior).IsAssignableFrom(element.BehaviorType))
{
-#pragma warning disable 56506 //[....]; element.ElementInformation is guaranteed to be non-null(System.Configuration)
+#pragma warning disable 56506 //Microsoft; element.ElementInformation is guaranteed to be non-null(System.Configuration)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigInvalidCommonEndpointBehaviorType,
element.ConfigurationElementName,
typeof(System.ServiceModel.Description.IEndpointBehavior).FullName),
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CommonServiceBehaviorElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CommonServiceBehaviorElement.cs
index 963969c6d22..ab4e50ac044 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CommonServiceBehaviorElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CommonServiceBehaviorElement.cs
@@ -23,7 +23,7 @@ namespace System.ServiceModel.Configuration
{
if (!typeof(System.ServiceModel.Description.IServiceBehavior).IsAssignableFrom(element.BehaviorType))
{
-#pragma warning disable 56506 //[....]; element.ElementInformation is guaranteed to be non-null(System.Configuration)
+#pragma warning disable 56506 //Microsoft; element.ElementInformation is guaranteed to be non-null(System.Configuration)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigInvalidCommonServiceBehaviorType,
element.ConfigurationElementName,
typeof(System.ServiceModel.Description.IServiceBehavior).FullName),
@@ -44,7 +44,7 @@ namespace System.ServiceModel.Configuration
{
if (!typeof(System.ServiceModel.Description.IServiceBehavior).IsAssignableFrom(element.BehaviorType))
{
-#pragma warning disable 56506 //[....]; element.ElementInformation is guaranteed to be non-null(System.Configuration)
+#pragma warning disable 56506 //Microsoft; element.ElementInformation is guaranteed to be non-null(System.Configuration)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigInvalidCommonServiceBehaviorType,
element.ConfigurationElementName,
typeof(System.ServiceModel.Description.IServiceBehavior).FullName),
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CompositeDuplexElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CompositeDuplexElement.cs
index 8367bce3605..960392bb704 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CompositeDuplexElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/CompositeDuplexElement.cs
@@ -35,7 +35,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
CompositeDuplexElement source = (CompositeDuplexElement)from;
-#pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument
this.ClientBaseAddress = source.ClientBaseAddress;
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ConfigurationHelpers.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ConfigurationHelpers.cs
index 74e3234cf9b..5271947453a 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ConfigurationHelpers.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ConfigurationHelpers.cs
@@ -37,7 +37,7 @@ namespace System.ServiceModel.Configuration
new ConfigurationErrorsException(SR.GetString(SR.ConfigBindingExtensionNotFound,
ConfigurationHelpers.GetBindingsSectionPath(bindingCollectionName))));
}
- catch (NullReferenceException) // System.Configuration.ConfigurationElement bug
+ catch (NullReferenceException) // System.Configuration.ConfigurationElement
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
new ConfigurationErrorsException(SR.GetString(SR.ConfigBindingExtensionNotFound,
@@ -69,7 +69,7 @@ namespace System.ServiceModel.Configuration
new ConfigurationErrorsException(SR.GetString(SR.ConfigBindingExtensionNotFound,
ConfigurationHelpers.GetBindingsSectionPath(bindingCollectionName))));
}
- catch (NullReferenceException) // System.Configuration.ConfigurationElement bug
+ catch (NullReferenceException) // System.Configuration.ConfigurationElement
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
new ConfigurationErrorsException(SR.GetString(SR.ConfigBindingExtensionNotFound,
@@ -99,7 +99,7 @@ namespace System.ServiceModel.Configuration
new ConfigurationErrorsException(SR.GetString(SR.ConfigEndpointExtensionNotFound,
ConfigurationHelpers.GetEndpointsSectionPath(endpointCollectionName))));
}
- catch (NullReferenceException) // System.Configuration.ConfigurationElement bug
+ catch (NullReferenceException) // System.Configuration.ConfigurationElement
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
new ConfigurationErrorsException(SR.GetString(SR.ConfigEndpointExtensionNotFound,
@@ -131,7 +131,7 @@ namespace System.ServiceModel.Configuration
new ConfigurationErrorsException(SR.GetString(SR.ConfigEndpointExtensionNotFound,
ConfigurationHelpers.GetEndpointsSectionPath(endpointCollectionName))));
}
- catch (NullReferenceException) // System.Configuration.ConfigurationElement bug
+ catch (NullReferenceException) // System.Configuration.ConfigurationElement
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
new ConfigurationErrorsException(SR.GetString(SR.ConfigEndpointExtensionNotFound,
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ConfigurationStrings.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ConfigurationStrings.cs
index 390b21cd4bd..6d3b0516ad9 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ConfigurationStrings.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ConfigurationStrings.cs
@@ -401,6 +401,7 @@ namespace System.ServiceModel.Configuration
internal const string Soap12WSAddressing10 = "Soap12WSAddressing10";
internal const string Soap12WSAddressingAugust2004 = "Soap12WSAddressingAugust2004";
internal const string SslCertificateAuthentication = "sslCertificateAuthentication";
+ internal const string SslProtocols = "sslProtocols";
internal const string SslStreamSecuritySectionName = "sslStreamSecurity";
internal const string StandardEndpoint = "standardEndpoint";
internal const string StandardEndpointsSectionName = "standardEndpoints";
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ConnectionOrientedTransportElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ConnectionOrientedTransportElement.cs
index 40411ccbc5e..d9f93eff49d 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ConnectionOrientedTransportElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ConnectionOrientedTransportElement.cs
@@ -111,7 +111,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
ConnectionOrientedTransportElement source = (ConnectionOrientedTransportElement)from;
-#pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument
this.ConnectionBufferSize = source.ConnectionBufferSize;
this.HostNameComparisonMode = source.HostNameComparisonMode;
this.ChannelInitializationTimeout = source.ChannelInitializationTimeout;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/DataContractSerializerElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/DataContractSerializerElement.cs
index ac7dea53490..2997f320965 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/DataContractSerializerElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/DataContractSerializerElement.cs
@@ -38,7 +38,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
DataContractSerializerElement source = (DataContractSerializerElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
this.IgnoreExtensionDataObject = source.IgnoreExtensionDataObject;
this.MaxItemsInObjectGraph = source.MaxItemsInObjectGraph;
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/EndpointBehaviorElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/EndpointBehaviorElement.cs
index 02733601e3c..4c079f993d6 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/EndpointBehaviorElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/EndpointBehaviorElement.cs
@@ -37,7 +37,7 @@ namespace System.ServiceModel.Configuration
}
if (!typeof(System.ServiceModel.Description.IEndpointBehavior).IsAssignableFrom(element.BehaviorType))
{
-#pragma warning disable 56506 //[....]; element.ElementInformation is guaranteed to be non-null(System.Configuration)
+#pragma warning disable 56506 //Microsoft; element.ElementInformation is guaranteed to be non-null(System.Configuration)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigInvalidEndpointBehaviorType,
element.ConfigurationElementName,
this.Name),
@@ -62,7 +62,7 @@ namespace System.ServiceModel.Configuration
}
if (!typeof(System.ServiceModel.Description.IEndpointBehavior).IsAssignableFrom(element.BehaviorType))
{
-#pragma warning disable 56506 //[....]; element.ElementInformation is guaranteed to be non-null(System.Configuration)
+#pragma warning disable 56506 //Microsoft; element.ElementInformation is guaranteed to be non-null(System.Configuration)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigInvalidEndpointBehaviorType,
element.ConfigurationElementName,
this.Name),
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ExtensionElementCollection.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ExtensionElementCollection.cs
index 066afddd96b..ba05d703ce2 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ExtensionElementCollection.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ExtensionElementCollection.cs
@@ -87,7 +87,7 @@ namespace System.ServiceModel.Configuration
else if (element.TypeName.Equals(extension.TypeName, StringComparison.Ordinal))
{
// In order to avoid extra assemblies being loaded, we perform type comparison only if the type names
- // are the same. See bug CSDMain 222573.
+ // are the same. See
Type elementType = Type.GetType(element.Type, false);
if (null != elementType && elementType.Equals(Type.GetType(extension.Type, false)))
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/HttpTransportElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/HttpTransportElement.cs
index e8e8d211ebd..b3df15d6f1a 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/HttpTransportElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/HttpTransportElement.cs
@@ -211,7 +211,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
HttpTransportElement source = (HttpTransportElement)from;
-#pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument
this.AllowCookies = source.AllowCookies;
this.RequestInitializationTimeout = source.RequestInitializationTimeout;
this.AuthenticationScheme = source.AuthenticationScheme;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/HttpsTransportElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/HttpsTransportElement.cs
index 38d9700d506..5e54dbf2fbd 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/HttpsTransportElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/HttpsTransportElement.cs
@@ -30,7 +30,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
HttpsTransportElement source = (HttpsTransportElement)from;
-#pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument
this.RequireClientCertificate = source.RequireClientCertificate;
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/IdentityElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/IdentityElement.cs
index 50ed2a79999..e7ec1f86419 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/IdentityElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/IdentityElement.cs
@@ -111,7 +111,7 @@ namespace System.ServiceModel.Configuration
else if (identity is X509CertificateEndpointIdentity)
{
X509Certificate2Collection certs = ((X509CertificateEndpointIdentity)identity).Certificates;
-#pragma warning suppress 56506 //[....]; this.Certificate can never be null (underlying configuration system guarantees)
+#pragma warning suppress 56506 //Microsoft; this.Certificate can never be null (underlying configuration system guarantees)
this.Certificate.EncodedValue = Convert.ToBase64String(certs.Export(certs.Count == 1 ? X509ContentType.SerializedCert : X509ContentType.SerializedStore));
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/IssuedTokenClientElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/IssuedTokenClientElement.cs
index c12c1022c0f..7c925c490ee 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/IssuedTokenClientElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/IssuedTokenClientElement.cs
@@ -94,17 +94,17 @@ namespace System.ServiceModel.Configuration
this.MaxIssuedTokenCachingTime = from.MaxIssuedTokenCachingTime;
this.IssuedTokenRenewalThresholdPercentage = from.IssuedTokenRenewalThresholdPercentage;
-#pragma warning suppress 56506 //[....]; from.ElementInformation.Properties[ConfigurationStrings.LocalIssuerIssuedTokenParameters] can never be null (underlying configuration system guarantees)
+#pragma warning suppress 56506 //Microsoft; from.ElementInformation.Properties[ConfigurationStrings.LocalIssuerIssuedTokenParameters] can never be null (underlying configuration system guarantees)
if (PropertyValueOrigin.Default != from.ElementInformation.Properties[ConfigurationStrings.LocalIssuer].ValueOrigin)
{
this.LocalIssuer.Copy(from.LocalIssuer);
}
-#pragma warning suppress 56506 //[....]; from.ElementInformation.Properties[ConfigurationStrings.LocalIssuerChannelBehaviors] can never be null (underlying configuration system guarantees)
+#pragma warning suppress 56506 //Microsoft; from.ElementInformation.Properties[ConfigurationStrings.LocalIssuerChannelBehaviors] can never be null (underlying configuration system guarantees)
if (PropertyValueOrigin.Default != from.ElementInformation.Properties[ConfigurationStrings.LocalIssuerChannelBehaviors].ValueOrigin)
{
this.LocalIssuerChannelBehaviors = from.LocalIssuerChannelBehaviors;
}
-#pragma warning suppress 56506 //[....]; from.ElementInformation.Properties[ConfigurationStrings.IssuerChannelBehaviors] can never be null (underlying configuration system guarantees)
+#pragma warning suppress 56506 //Microsoft; from.ElementInformation.Properties[ConfigurationStrings.IssuerChannelBehaviors] can never be null (underlying configuration system guarantees)
if (PropertyValueOrigin.Default != from.ElementInformation.Properties[ConfigurationStrings.IssuerChannelBehaviors].ValueOrigin)
{
foreach (IssuedTokenClientBehaviorsElement element in from.IssuerChannelBehaviors)
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/IssuedTokenServiceElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/IssuedTokenServiceElement.cs
index 426a9ae19b9..5d7544aeba6 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/IssuedTokenServiceElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/IssuedTokenServiceElement.cs
@@ -114,7 +114,7 @@ namespace System.ServiceModel.Configuration
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("from");
}
this.SamlSerializerType = from.SamlSerializerType;
-#pragma warning suppress 56506 // [....]; ElementInformation is never null.
+#pragma warning suppress 56506 // Microsoft; ElementInformation is never null.
PropertyInformationCollection propertyInfo = from.ElementInformation.Properties;
if (propertyInfo[ConfigurationStrings.KnownCertificates].ValueOrigin != PropertyValueOrigin.Default)
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/MtomMessageEncodingElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/MtomMessageEncodingElement.cs
index 8f40a13563e..6ad15c1e44d 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/MtomMessageEncodingElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/MtomMessageEncodingElement.cs
@@ -24,7 +24,7 @@ namespace System.ServiceModel.Configuration
binding.WriteEncoding = this.WriteEncoding;
binding.MaxReadPoolSize = this.MaxReadPoolSize;
binding.MaxWritePoolSize = this.MaxWritePoolSize;
-#pragma warning suppress 56506 //[....]; base.ApplyConfiguration() checks for 'binding' being null
+#pragma warning suppress 56506 //Microsoft; base.ApplyConfiguration() checks for 'binding' being null
this.ReaderQuotas.ApplyConfiguration(binding.ReaderQuotas);
binding.MaxBufferSize = this.MaxBufferSize;
}
@@ -39,7 +39,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
MtomMessageEncodingElement source = (MtomMessageEncodingElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
this.MessageVersion = source.MessageVersion;
this.WriteEncoding = source.WriteEncoding;
this.MaxReadPoolSize = source.MaxReadPoolSize;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/NamedPipeTransportElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/NamedPipeTransportElement.cs
index 941b4601c4f..d5cfd75588b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/NamedPipeTransportElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/NamedPipeTransportElement.cs
@@ -22,7 +22,7 @@ namespace System.ServiceModel.Configuration
{
base.ApplyConfiguration(bindingElement);
NamedPipeTransportBindingElement binding = (NamedPipeTransportBindingElement)bindingElement;
-#pragma warning suppress 56506 //[....]; base.ApplyConfiguration above checks for bindingElement being null
+#pragma warning suppress 56506 //Microsoft; base.ApplyConfiguration above checks for bindingElement being null
this.ConnectionPoolSettings.ApplyConfiguration(binding.ConnectionPoolSettings);
this.PipeSettings.ApplyConfiguration(binding.PipeSettings);
}
@@ -30,7 +30,7 @@ namespace System.ServiceModel.Configuration
protected internal override void InitializeFrom(BindingElement bindingElement)
{
base.InitializeFrom(bindingElement);
-#pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument
NamedPipeTransportBindingElement binding = (NamedPipeTransportBindingElement)bindingElement;
this.ConnectionPoolSettings.InitializeFrom(binding.ConnectionPoolSettings);
this.PipeSettings.InitializeFrom(binding.PipeSettings);
@@ -40,7 +40,7 @@ namespace System.ServiceModel.Configuration
{
base.CopyFrom(from);
NamedPipeTransportElement source = (NamedPipeTransportElement)from;
-#pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument
this.ConnectionPoolSettings.CopyFrom(source.ConnectionPoolSettings);
this.PipeSettings.CopyFrom(source.PipeSettings);
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/OneWayElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/OneWayElement.cs
index 0c90b056aa4..c3d3c369274 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/OneWayElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/OneWayElement.cs
@@ -47,7 +47,7 @@ namespace System.ServiceModel.Configuration
PropertyInformationCollection propertyInfo = this.ElementInformation.Properties;
if (propertyInfo[ConfigurationStrings.ChannelPoolSettings].ValueOrigin != PropertyValueOrigin.Default)
{
-#pragma warning suppress 56506 // [....], base.ApplyConfiguration() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.ApplyConfiguration() validates the argument
this.ChannelPoolSettings.ApplyConfiguration(oneWayBindingElement.ChannelPoolSettings);
}
oneWayBindingElement.MaxAcceptedChannels = this.MaxAcceptedChannels;
@@ -59,7 +59,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
OneWayElement source = (OneWayElement)from;
-#pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument
PropertyInformationCollection propertyInfo = source.ElementInformation.Properties;
if (propertyInfo[ConfigurationStrings.ChannelPoolSettings].ValueOrigin != PropertyValueOrigin.Default)
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/PeerTransportElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/PeerTransportElement.cs
index 5b8d687f39f..ddc638c7926 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/PeerTransportElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/PeerTransportElement.cs
@@ -68,7 +68,7 @@ namespace System.ServiceModel.Configuration
binding.Port = this.Port;
binding.MaxBufferPoolSize = this.MaxBufferPoolSize;
binding.MaxReceivedMessageSize = this.MaxReceivedMessageSize;
-#pragma warning suppress 56506 //[....]; base.ApplyConfiguration() checks for 'binding' being null
+#pragma warning suppress 56506 //Microsoft; base.ApplyConfiguration() checks for 'binding' being null
this.Security.ApplyConfiguration(binding.Security);
}
@@ -77,7 +77,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
PeerTransportElement source = (PeerTransportElement)from;
-#pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument
this.ListenIPAddress = source.ListenIPAddress;
this.Port = source.Port;
this.MaxBufferPoolSize = source.MaxBufferPoolSize;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/PrivacyNoticeElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/PrivacyNoticeElement.cs
index c8e310db5dc..bdfdf19f58e 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/PrivacyNoticeElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/PrivacyNoticeElement.cs
@@ -50,7 +50,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
PrivacyNoticeElement source = (PrivacyNoticeElement) from;
- #pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
+ #pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument
this.Url = source.Url;
this.Version = source.Version;
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/Properties.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/Properties.cs
index 0d026927dac..35c78297859 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/Properties.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/Properties.cs
@@ -20,11 +20,11 @@ using System.Configuration;
using System.Globalization;
-// configType.Name: StandardBindingElement
+// configType.Name: DiagnosticSection
-namespace System.ServiceModel.Configuration
+namespace System.ServiceModel.Activation.Configuration
{
- public partial class StandardBindingElement
+ public sealed partial class DiagnosticSection
{
ConfigurationPropertyCollection properties;
@@ -35,11 +35,7 @@ namespace System.ServiceModel.Configuration
if (this.properties == null)
{
ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
- properties.Add(new ConfigurationProperty("name", typeof(System.String), string.Empty, null, new System.Configuration.StringValidator(0, 2147483647, null), System.Configuration.ConfigurationPropertyOptions.IsKey));
- properties.Add(new ConfigurationProperty("closeTimeout", typeof(System.TimeSpan), System.TimeSpan.Parse("00:01:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("openTimeout", typeof(System.TimeSpan), System.TimeSpan.Parse("00:01:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("receiveTimeout", typeof(System.TimeSpan), System.TimeSpan.Parse("00:10:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("sendTimeout", typeof(System.TimeSpan), System.TimeSpan.Parse("00:01:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("performanceCountersEnabled", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
this.properties = properties;
}
return this.properties;
@@ -48,11 +44,11 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: NetTcpBindingElement
+// configType.Name: NetPipeSection
-namespace System.ServiceModel.Configuration
+namespace System.ServiceModel.Activation.Configuration
{
- public partial class NetTcpBindingElement
+ public sealed partial class NetPipeSection
{
ConfigurationPropertyCollection properties;
@@ -62,20 +58,11 @@ namespace System.ServiceModel.Configuration
{
if (this.properties == null)
{
- ConfigurationPropertyCollection properties = base.Properties;
- properties.Add(new ConfigurationProperty("transactionFlow", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("transferMode", typeof(System.ServiceModel.TransferMode), System.ServiceModel.TransferMode.Buffered, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.TransferModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("transactionProtocol", typeof(System.ServiceModel.TransactionProtocol), "OleTransactions", new System.ServiceModel.Configuration.TransactionProtocolConverter(), null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("hostNameComparisonMode", typeof(System.ServiceModel.HostNameComparisonMode), System.ServiceModel.HostNameComparisonMode.StrongWildcard, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.HostNameComparisonModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("listenBacklog", typeof(System.Int32), 0, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxBufferPoolSize", typeof(System.Int64), (long)524288, null, new System.Configuration.LongValidator(0, 9223372036854775807, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxBufferSize", typeof(System.Int32), 65536, null, new System.Configuration.IntegerValidator(1, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxConnections", typeof(System.Int32), 0, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxReceivedMessageSize", typeof(System.Int64), (long)65536, null, new System.Configuration.LongValidator(1, 9223372036854775807, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("portSharingEnabled", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("readerQuotas", typeof(System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("reliableSession", typeof(System.ServiceModel.Configuration.StandardBindingOptionalReliableSessionElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("security", typeof(System.ServiceModel.Configuration.NetTcpSecurityElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
+ properties.Add(new ConfigurationProperty("allowAccounts", typeof(System.ServiceModel.Activation.Configuration.SecurityIdentifierElementCollection), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxPendingConnections", typeof(System.Int32), 100, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxPendingAccepts", typeof(System.Int32), 0, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("receiveTimeout", typeof(System.TimeSpan), System.TimeSpan.Parse("00:00:30", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
this.properties = properties;
}
return this.properties;
@@ -84,11 +71,11 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: WSHttpBindingBaseElement
+// configType.Name: NetTcpSection
-namespace System.ServiceModel.Configuration
+namespace System.ServiceModel.Activation.Configuration
{
- public partial class WSHttpBindingBaseElement
+ public sealed partial class NetTcpSection
{
ConfigurationPropertyCollection properties;
@@ -98,18 +85,13 @@ namespace System.ServiceModel.Configuration
{
if (this.properties == null)
{
- ConfigurationPropertyCollection properties = base.Properties;
- properties.Add(new ConfigurationProperty("bypassProxyOnLocal", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("transactionFlow", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("hostNameComparisonMode", typeof(System.ServiceModel.HostNameComparisonMode), System.ServiceModel.HostNameComparisonMode.StrongWildcard, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.HostNameComparisonModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxBufferPoolSize", typeof(System.Int64), (long)524288, null, new System.Configuration.LongValidator(0, 9223372036854775807, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxReceivedMessageSize", typeof(System.Int64), (long)65536, null, new System.Configuration.LongValidator(1, 9223372036854775807, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("messageEncoding", typeof(System.ServiceModel.WSMessageEncoding), System.ServiceModel.WSMessageEncoding.Text, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.WSMessageEncodingHelper)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("proxyAddress", typeof(System.Uri), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("readerQuotas", typeof(System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("reliableSession", typeof(System.ServiceModel.Configuration.StandardBindingOptionalReliableSessionElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("textEncoding", typeof(System.Text.Encoding), "utf-8", new System.ServiceModel.Configuration.EncodingConverter(), null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("useDefaultWebProxy", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
+ properties.Add(new ConfigurationProperty("allowAccounts", typeof(System.ServiceModel.Activation.Configuration.SecurityIdentifierElementCollection), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("listenBacklog", typeof(System.Int32), 0, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxPendingConnections", typeof(System.Int32), 100, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxPendingAccepts", typeof(System.Int32), 0, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("receiveTimeout", typeof(System.TimeSpan), System.TimeSpan.Parse("00:00:30", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("teredoEnabled", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
this.properties = properties;
}
return this.properties;
@@ -118,11 +100,11 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: WSHttpBindingElement
+// configType.Name: SecurityIdentifierElement
-namespace System.ServiceModel.Configuration
+namespace System.ServiceModel.Activation.Configuration
{
- public partial class WSHttpBindingElement
+ public sealed partial class SecurityIdentifierElement
{
ConfigurationPropertyCollection properties;
@@ -132,9 +114,8 @@ namespace System.ServiceModel.Configuration
{
if (this.properties == null)
{
- ConfigurationPropertyCollection properties = base.Properties;
- properties.Add(new ConfigurationProperty("allowCookies", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("security", typeof(System.ServiceModel.Configuration.WSHttpSecurityElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
+ properties.Add(new ConfigurationProperty("securityIdentifier", typeof(System.Security.Principal.SecurityIdentifier), null, new System.ServiceModel.Activation.Configuration.SecurityIdentifierConverter(), null, System.Configuration.ConfigurationPropertyOptions.IsKey));
this.properties = properties;
}
return this.properties;
@@ -170,30 +151,6 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: StandardBindingCollectionElement`2
-
-namespace System.ServiceModel.Configuration
-{
- public partial class StandardBindingCollectionElement<TStandardBinding, TBindingConfiguration>
- {
- ConfigurationPropertyCollection properties;
-
- protected override ConfigurationPropertyCollection Properties
- {
- get
- {
- if (this.properties == null)
- {
- ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
- properties.Add(new ConfigurationProperty("", typeof(System.ServiceModel.Configuration.StandardBindingElementCollection<TBindingConfiguration>), null, null, null, System.Configuration.ConfigurationPropertyOptions.IsDefaultCollection));
- this.properties = properties;
- }
- return this.properties;
- }
- }
- }
-}
-
// configType.Name: NetTcpContextBindingElement
namespace System.ServiceModel.Configuration
@@ -246,65 +203,6 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: HttpBindingBaseElement
-
-namespace System.ServiceModel.Configuration
-{
- public partial class HttpBindingBaseElement
- {
- ConfigurationPropertyCollection properties;
-
- protected override ConfigurationPropertyCollection Properties
- {
- get
- {
- if (this.properties == null)
- {
- ConfigurationPropertyCollection properties = base.Properties;
- properties.Add(new ConfigurationProperty("allowCookies", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("bypassProxyOnLocal", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("hostNameComparisonMode", typeof(System.ServiceModel.HostNameComparisonMode), System.ServiceModel.HostNameComparisonMode.StrongWildcard, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.HostNameComparisonModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxBufferPoolSize", typeof(System.Int64), (long)524288, null, new System.Configuration.LongValidator(0, 9223372036854775807, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxBufferSize", typeof(System.Int32), 65536, null, new System.Configuration.IntegerValidator(1, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxReceivedMessageSize", typeof(System.Int64), (long)65536, null, new System.Configuration.LongValidator(1, 9223372036854775807, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("proxyAddress", typeof(System.Uri), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("readerQuotas", typeof(System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("textEncoding", typeof(System.Text.Encoding), "utf-8", new System.ServiceModel.Configuration.EncodingConverter(), null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("transferMode", typeof(System.ServiceModel.TransferMode), System.ServiceModel.TransferMode.Buffered, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.TransferModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("useDefaultWebProxy", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- this.properties = properties;
- }
- return this.properties;
- }
- }
- }
-}
-
-// configType.Name: BasicHttpBindingElement
-
-namespace System.ServiceModel.Configuration
-{
- public partial class BasicHttpBindingElement
- {
- ConfigurationPropertyCollection properties;
-
- protected override ConfigurationPropertyCollection Properties
- {
- get
- {
- if (this.properties == null)
- {
- ConfigurationPropertyCollection properties = base.Properties;
- properties.Add(new ConfigurationProperty("messageEncoding", typeof(System.ServiceModel.WSMessageEncoding), System.ServiceModel.WSMessageEncoding.Text, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.WSMessageEncodingHelper)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("security", typeof(System.ServiceModel.Configuration.BasicHttpSecurityElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- this.properties = properties;
- }
- return this.properties;
- }
- }
- }
-}
-
// configType.Name: BasicHttpContextBindingElement
namespace System.ServiceModel.Configuration
@@ -499,6 +397,31 @@ namespace System.ServiceModel.Configuration
}
}
+// configType.Name: BasicHttpBindingElement
+
+namespace System.ServiceModel.Configuration
+{
+ public partial class BasicHttpBindingElement
+ {
+ ConfigurationPropertyCollection properties;
+
+ protected override ConfigurationPropertyCollection Properties
+ {
+ get
+ {
+ if (this.properties == null)
+ {
+ ConfigurationPropertyCollection properties = base.Properties;
+ properties.Add(new ConfigurationProperty("messageEncoding", typeof(System.ServiceModel.WSMessageEncoding), System.ServiceModel.WSMessageEncoding.Text, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.WSMessageEncodingHelper)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("security", typeof(System.ServiceModel.Configuration.BasicHttpSecurityElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ this.properties = properties;
+ }
+ return this.properties;
+ }
+ }
+ }
+}
+
// configType.Name: BasicHttpMessageSecurityElement
namespace System.ServiceModel.Configuration
@@ -968,32 +891,6 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: TransportElement
-
-namespace System.ServiceModel.Configuration
-{
- public partial class TransportElement
- {
- ConfigurationPropertyCollection properties;
-
- protected override ConfigurationPropertyCollection Properties
- {
- get
- {
- if (this.properties == null)
- {
- ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
- properties.Add(new ConfigurationProperty("manualAddressing", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxBufferPoolSize", typeof(System.Int64), (long)524288, null, new System.Configuration.LongValidator(1, 9223372036854775807, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxReceivedMessageSize", typeof(System.Int64), (long)65536, null, new System.Configuration.LongValidator(1, 9223372036854775807, false), System.Configuration.ConfigurationPropertyOptions.None));
- this.properties = properties;
- }
- return this.properties;
- }
- }
- }
-}
-
// configType.Name: ConnectionOrientedTransportElement
namespace System.ServiceModel.Configuration
@@ -1337,6 +1234,40 @@ namespace System.ServiceModel.Configuration
}
}
+// configType.Name: HttpBindingBaseElement
+
+namespace System.ServiceModel.Configuration
+{
+ public partial class HttpBindingBaseElement
+ {
+ ConfigurationPropertyCollection properties;
+
+ protected override ConfigurationPropertyCollection Properties
+ {
+ get
+ {
+ if (this.properties == null)
+ {
+ ConfigurationPropertyCollection properties = base.Properties;
+ properties.Add(new ConfigurationProperty("allowCookies", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("bypassProxyOnLocal", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("hostNameComparisonMode", typeof(System.ServiceModel.HostNameComparisonMode), System.ServiceModel.HostNameComparisonMode.StrongWildcard, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.HostNameComparisonModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxBufferPoolSize", typeof(System.Int64), (long)524288, null, new System.Configuration.LongValidator(0, 9223372036854775807, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxBufferSize", typeof(System.Int32), 65536, null, new System.Configuration.IntegerValidator(1, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxReceivedMessageSize", typeof(System.Int64), (long)65536, null, new System.Configuration.LongValidator(1, 9223372036854775807, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("proxyAddress", typeof(System.Uri), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("readerQuotas", typeof(System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("textEncoding", typeof(System.Text.Encoding), "utf-8", new System.ServiceModel.Configuration.EncodingConverter(), null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("transferMode", typeof(System.ServiceModel.TransferMode), System.ServiceModel.TransferMode.Buffered, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.TransferModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("useDefaultWebProxy", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ this.properties = properties;
+ }
+ return this.properties;
+ }
+ }
+ }
+}
+
// configType.Name: HttpDigestClientElement
namespace System.ServiceModel.Configuration
@@ -1386,11 +1317,11 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: HttpTransportElement
+// configType.Name: HttpsTransportElement
namespace System.ServiceModel.Configuration
{
- public partial class HttpTransportElement
+ public partial class HttpsTransportElement
{
ConfigurationPropertyCollection properties;
@@ -1401,24 +1332,7 @@ namespace System.ServiceModel.Configuration
if (this.properties == null)
{
ConfigurationPropertyCollection properties = base.Properties;
- properties.Add(new ConfigurationProperty("allowCookies", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("requestInitializationTimeout", typeof(System.TimeSpan), System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("authenticationScheme", typeof(System.Net.AuthenticationSchemes), System.Net.AuthenticationSchemes.Anonymous, null, new System.ServiceModel.Configuration.StandardRuntimeFlagEnumValidator<System.Net.AuthenticationSchemes>(), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("bypassProxyOnLocal", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("decompressionEnabled", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("hostNameComparisonMode", typeof(System.ServiceModel.HostNameComparisonMode), System.ServiceModel.HostNameComparisonMode.StrongWildcard, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.HostNameComparisonModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("keepAliveEnabled", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxBufferSize", typeof(System.Int32), 65536, null, new System.Configuration.IntegerValidator(1, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxPendingAccepts", typeof(System.Int32), 0, null, new System.Configuration.IntegerValidator(0, 100000, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("messageHandlerFactory", typeof(System.ServiceModel.Configuration.HttpMessageHandlerFactoryElement), null, null, new System.ServiceModel.Configuration.HttpMessageHandlerFactoryValidator(), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("proxyAddress", typeof(System.Uri), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("proxyAuthenticationScheme", typeof(System.Net.AuthenticationSchemes), System.Net.AuthenticationSchemes.Anonymous, null, new System.ServiceModel.Configuration.StandardRuntimeEnumValidator(typeof(System.Net.AuthenticationSchemes)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("realm", typeof(System.String), string.Empty, null, new System.Configuration.StringValidator(0, 2147483647, null), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("transferMode", typeof(System.ServiceModel.TransferMode), System.ServiceModel.TransferMode.Buffered, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.TransferModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("unsafeConnectionNtlmAuthentication", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("useDefaultWebProxy", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("extendedProtectionPolicy", typeof(System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("webSocketSettings", typeof(System.ServiceModel.Configuration.WebSocketTransportSettingsElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("requireClientCertificate", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
this.properties = properties;
}
return this.properties;
@@ -1427,11 +1341,11 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: HttpsTransportElement
+// configType.Name: HttpTransportElement
namespace System.ServiceModel.Configuration
{
- public partial class HttpsTransportElement
+ public partial class HttpTransportElement
{
ConfigurationPropertyCollection properties;
@@ -1442,7 +1356,24 @@ namespace System.ServiceModel.Configuration
if (this.properties == null)
{
ConfigurationPropertyCollection properties = base.Properties;
- properties.Add(new ConfigurationProperty("requireClientCertificate", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("allowCookies", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("requestInitializationTimeout", typeof(System.TimeSpan), System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("authenticationScheme", typeof(System.Net.AuthenticationSchemes), System.Net.AuthenticationSchemes.Anonymous, null, new System.ServiceModel.Configuration.StandardRuntimeFlagEnumValidator<System.Net.AuthenticationSchemes>(), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("bypassProxyOnLocal", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("decompressionEnabled", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("hostNameComparisonMode", typeof(System.ServiceModel.HostNameComparisonMode), System.ServiceModel.HostNameComparisonMode.StrongWildcard, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.HostNameComparisonModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("keepAliveEnabled", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxBufferSize", typeof(System.Int32), 65536, null, new System.Configuration.IntegerValidator(1, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxPendingAccepts", typeof(System.Int32), 0, null, new System.Configuration.IntegerValidator(0, 100000, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("messageHandlerFactory", typeof(System.ServiceModel.Configuration.HttpMessageHandlerFactoryElement), null, null, new System.ServiceModel.Configuration.HttpMessageHandlerFactoryValidator(), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("proxyAddress", typeof(System.Uri), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("proxyAuthenticationScheme", typeof(System.Net.AuthenticationSchemes), System.Net.AuthenticationSchemes.Anonymous, null, new System.ServiceModel.Configuration.StandardRuntimeEnumValidator(typeof(System.Net.AuthenticationSchemes)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("realm", typeof(System.String), string.Empty, null, new System.Configuration.StringValidator(0, 2147483647, null), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("transferMode", typeof(System.ServiceModel.TransferMode), System.ServiceModel.TransferMode.Buffered, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.TransferModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("unsafeConnectionNtlmAuthentication", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("useDefaultWebProxy", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("extendedProtectionPolicy", typeof(System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("webSocketSettings", typeof(System.ServiceModel.Configuration.WebSocketTransportSettingsElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
this.properties = properties;
}
return this.properties;
@@ -1916,11 +1847,11 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: MsmqElementBase
+// configType.Name: MsmqIntegrationElement
namespace System.ServiceModel.Configuration
{
- public partial class MsmqElementBase
+ public sealed partial class MsmqIntegrationElement
{
ConfigurationPropertyCollection properties;
@@ -1931,20 +1862,7 @@ namespace System.ServiceModel.Configuration
if (this.properties == null)
{
ConfigurationPropertyCollection properties = base.Properties;
- properties.Add(new ConfigurationProperty("customDeadLetterQueue", typeof(System.Uri), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("deadLetterQueue", typeof(System.ServiceModel.DeadLetterQueue), System.ServiceModel.DeadLetterQueue.System, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.DeadLetterQueueHelper)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("durable", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("exactlyOnce", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxRetryCycles", typeof(System.Int32), 2, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("receiveContextEnabled", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("receiveErrorHandling", typeof(System.ServiceModel.ReceiveErrorHandling), System.ServiceModel.ReceiveErrorHandling.Fault, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.ReceiveErrorHandlingHelper)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("receiveRetryCount", typeof(System.Int32), 5, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("retryCycleDelay", typeof(System.TimeSpan), System.TimeSpan.Parse("00:30:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("msmqTransportSecurity", typeof(System.ServiceModel.Configuration.MsmqTransportSecurityElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("timeToLive", typeof(System.TimeSpan), System.TimeSpan.Parse("1.00:00:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("useSourceJournal", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("useMsmqTracing", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("validityDuration", typeof(System.TimeSpan), System.TimeSpan.Parse("00:05:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("serializationFormat", typeof(System.ServiceModel.MsmqIntegration.MsmqMessageSerializationFormat), System.ServiceModel.MsmqIntegration.MsmqMessageSerializationFormat.Xml, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.MsmqIntegration.MsmqMessageSerializationFormatHelper)), System.Configuration.ConfigurationPropertyOptions.None));
this.properties = properties;
}
return this.properties;
@@ -1953,11 +1871,11 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: MsmqIntegrationElement
+// configType.Name: MsmqIntegrationSecurityElement
namespace System.ServiceModel.Configuration
{
- public sealed partial class MsmqIntegrationElement
+ public sealed partial class MsmqIntegrationSecurityElement
{
ConfigurationPropertyCollection properties;
@@ -1967,8 +1885,9 @@ namespace System.ServiceModel.Configuration
{
if (this.properties == null)
{
- ConfigurationPropertyCollection properties = base.Properties;
- properties.Add(new ConfigurationProperty("serializationFormat", typeof(System.ServiceModel.MsmqIntegration.MsmqMessageSerializationFormat), System.ServiceModel.MsmqIntegration.MsmqMessageSerializationFormat.Xml, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.MsmqIntegration.MsmqMessageSerializationFormatHelper)), System.Configuration.ConfigurationPropertyOptions.None));
+ ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
+ properties.Add(new ConfigurationProperty("mode", typeof(System.ServiceModel.MsmqIntegration.MsmqIntegrationSecurityMode), System.ServiceModel.MsmqIntegration.MsmqIntegrationSecurityMode.Transport, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.MsmqIntegration.MsmqIntegrationSecurityModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("transport", typeof(System.ServiceModel.Configuration.MsmqTransportSecurityElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
this.properties = properties;
}
return this.properties;
@@ -1977,11 +1896,11 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: MsmqIntegrationSecurityElement
+// configType.Name: MsmqElementBase
namespace System.ServiceModel.Configuration
{
- public sealed partial class MsmqIntegrationSecurityElement
+ public partial class MsmqElementBase
{
ConfigurationPropertyCollection properties;
@@ -1991,9 +1910,21 @@ namespace System.ServiceModel.Configuration
{
if (this.properties == null)
{
- ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
- properties.Add(new ConfigurationProperty("mode", typeof(System.ServiceModel.MsmqIntegration.MsmqIntegrationSecurityMode), System.ServiceModel.MsmqIntegration.MsmqIntegrationSecurityMode.Transport, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.MsmqIntegration.MsmqIntegrationSecurityModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("transport", typeof(System.ServiceModel.Configuration.MsmqTransportSecurityElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ ConfigurationPropertyCollection properties = base.Properties;
+ properties.Add(new ConfigurationProperty("customDeadLetterQueue", typeof(System.Uri), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("deadLetterQueue", typeof(System.ServiceModel.DeadLetterQueue), System.ServiceModel.DeadLetterQueue.System, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.DeadLetterQueueHelper)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("durable", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("exactlyOnce", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxRetryCycles", typeof(System.Int32), 2, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("receiveContextEnabled", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("receiveErrorHandling", typeof(System.ServiceModel.ReceiveErrorHandling), System.ServiceModel.ReceiveErrorHandling.Fault, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.ReceiveErrorHandlingHelper)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("receiveRetryCount", typeof(System.Int32), 5, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("retryCycleDelay", typeof(System.TimeSpan), System.TimeSpan.Parse("00:30:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("msmqTransportSecurity", typeof(System.ServiceModel.Configuration.MsmqTransportSecurityElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("timeToLive", typeof(System.TimeSpan), System.TimeSpan.Parse("1.00:00:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("useSourceJournal", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("useMsmqTracing", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("validityDuration", typeof(System.TimeSpan), System.TimeSpan.Parse("00:05:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
this.properties = properties;
}
return this.properties;
@@ -2261,11 +2192,11 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: WebSocketTransportSettingsElement
+// configType.Name: NetHttpWebSocketTransportSettingsElement
namespace System.ServiceModel.Configuration
{
- public partial class WebSocketTransportSettingsElement
+ public sealed partial class NetHttpWebSocketTransportSettingsElement
{
ConfigurationPropertyCollection properties;
@@ -2275,13 +2206,11 @@ namespace System.ServiceModel.Configuration
{
if (this.properties == null)
{
- ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
- properties.Add(new ConfigurationProperty("transportUsage", typeof(System.ServiceModel.Channels.WebSocketTransportUsage), System.ServiceModel.Channels.WebSocketTransportUsage.Never, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.Channels.WebSocketTransportUsageHelper)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("createNotificationOnConnection", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("keepAliveInterval", typeof(System.TimeSpan), System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("-00:00:00.0010000", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("subProtocol", typeof(System.String), string.Empty, null, new System.Configuration.StringValidator(0, 2147483647, null), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("disablePayloadMasking", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxPendingConnections", typeof(System.Int32), 0, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
+ ConfigurationPropertyCollection properties = base.Properties;
+ properties.Remove("transportUsage");
+ properties.Add(new ConfigurationProperty("transportUsage", typeof(System.ServiceModel.Channels.WebSocketTransportUsage), System.ServiceModel.Channels.WebSocketTransportUsage.WhenDuplex, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.Channels.WebSocketTransportUsageHelper)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Remove("subProtocol");
+ properties.Add(new ConfigurationProperty("subProtocol", typeof(System.String), "soap", null, new System.Configuration.StringValidator(0, 2147483647, null), System.Configuration.ConfigurationPropertyOptions.None));
this.properties = properties;
}
return this.properties;
@@ -2290,11 +2219,11 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: NetHttpWebSocketTransportSettingsElement
+// configType.Name: WebSocketTransportSettingsElement
namespace System.ServiceModel.Configuration
{
- public sealed partial class NetHttpWebSocketTransportSettingsElement
+ public partial class WebSocketTransportSettingsElement
{
ConfigurationPropertyCollection properties;
@@ -2304,11 +2233,13 @@ namespace System.ServiceModel.Configuration
{
if (this.properties == null)
{
- ConfigurationPropertyCollection properties = base.Properties;
- properties.Remove("transportUsage");
- properties.Add(new ConfigurationProperty("transportUsage", typeof(System.ServiceModel.Channels.WebSocketTransportUsage), System.ServiceModel.Channels.WebSocketTransportUsage.WhenDuplex, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.Channels.WebSocketTransportUsageHelper)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Remove("subProtocol");
- properties.Add(new ConfigurationProperty("subProtocol", typeof(System.String), "soap", null, new System.Configuration.StringValidator(0, 2147483647, null), System.Configuration.ConfigurationPropertyOptions.None));
+ ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
+ properties.Add(new ConfigurationProperty("transportUsage", typeof(System.ServiceModel.Channels.WebSocketTransportUsage), System.ServiceModel.Channels.WebSocketTransportUsage.Never, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.Channels.WebSocketTransportUsageHelper)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("createNotificationOnConnection", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("keepAliveInterval", typeof(System.TimeSpan), System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("-00:00:00.0010000", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("subProtocol", typeof(System.String), string.Empty, null, new System.Configuration.StringValidator(0, 2147483647, null), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("disablePayloadMasking", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxPendingConnections", typeof(System.Int32), 0, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
this.properties = properties;
}
return this.properties;
@@ -2380,54 +2311,6 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: StandardEndpointElement
-
-namespace System.ServiceModel.Configuration
-{
- public partial class StandardEndpointElement
- {
- ConfigurationPropertyCollection properties;
-
- protected override ConfigurationPropertyCollection Properties
- {
- get
- {
- if (this.properties == null)
- {
- ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
- properties.Add(new ConfigurationProperty("name", typeof(System.String), string.Empty, null, new System.Configuration.StringValidator(0, 2147483647, null), System.Configuration.ConfigurationPropertyOptions.IsKey));
- this.properties = properties;
- }
- return this.properties;
- }
- }
- }
-}
-
-// configType.Name: StandardEndpointCollectionElement`2
-
-namespace System.ServiceModel.Configuration
-{
- public partial class StandardEndpointCollectionElement<TStandardEndpoint, TEndpointConfiguration>
- {
- ConfigurationPropertyCollection properties;
-
- protected override ConfigurationPropertyCollection Properties
- {
- get
- {
- if (this.properties == null)
- {
- ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
- properties.Add(new ConfigurationProperty("", typeof(System.ServiceModel.Configuration.StandardEndpointElementCollection<TEndpointConfiguration>), null, null, null, System.Configuration.ConfigurationPropertyOptions.IsDefaultCollection));
- this.properties = properties;
- }
- return this.properties;
- }
- }
- }
-}
-
// configType.Name: NetNamedPipeSecurityElement
namespace System.ServiceModel.Configuration
@@ -2507,11 +2390,11 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: NetTcpSecurityElement
+// configType.Name: NetTcpBindingElement
namespace System.ServiceModel.Configuration
{
- public sealed partial class NetTcpSecurityElement
+ public partial class NetTcpBindingElement
{
ConfigurationPropertyCollection properties;
@@ -2521,10 +2404,20 @@ namespace System.ServiceModel.Configuration
{
if (this.properties == null)
{
- ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
- properties.Add(new ConfigurationProperty("mode", typeof(System.ServiceModel.SecurityMode), System.ServiceModel.SecurityMode.Transport, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.SecurityModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("transport", typeof(System.ServiceModel.Configuration.TcpTransportSecurityElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("message", typeof(System.ServiceModel.Configuration.MessageSecurityOverTcpElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ ConfigurationPropertyCollection properties = base.Properties;
+ properties.Add(new ConfigurationProperty("transactionFlow", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("transferMode", typeof(System.ServiceModel.TransferMode), System.ServiceModel.TransferMode.Buffered, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.TransferModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("transactionProtocol", typeof(System.ServiceModel.TransactionProtocol), "OleTransactions", new System.ServiceModel.Configuration.TransactionProtocolConverter(), null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("hostNameComparisonMode", typeof(System.ServiceModel.HostNameComparisonMode), System.ServiceModel.HostNameComparisonMode.StrongWildcard, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.HostNameComparisonModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("listenBacklog", typeof(System.Int32), 0, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxBufferPoolSize", typeof(System.Int64), (long)524288, null, new System.Configuration.LongValidator(0, 9223372036854775807, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxBufferSize", typeof(System.Int32), 65536, null, new System.Configuration.IntegerValidator(1, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxConnections", typeof(System.Int32), 0, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxReceivedMessageSize", typeof(System.Int64), (long)65536, null, new System.Configuration.LongValidator(1, 9223372036854775807, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("portSharingEnabled", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("readerQuotas", typeof(System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("reliableSession", typeof(System.ServiceModel.Configuration.StandardBindingOptionalReliableSessionElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("security", typeof(System.ServiceModel.Configuration.NetTcpSecurityElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
this.properties = properties;
}
return this.properties;
@@ -2533,11 +2426,11 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: StandardBindingReliableSessionElement
+// configType.Name: NetTcpSecurityElement
namespace System.ServiceModel.Configuration
{
- public partial class StandardBindingReliableSessionElement
+ public sealed partial class NetTcpSecurityElement
{
ConfigurationPropertyCollection properties;
@@ -2548,8 +2441,9 @@ namespace System.ServiceModel.Configuration
if (this.properties == null)
{
ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
- properties.Add(new ConfigurationProperty("ordered", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("inactivityTimeout", typeof(System.TimeSpan), System.TimeSpan.Parse("00:10:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00.0000001", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("mode", typeof(System.ServiceModel.SecurityMode), System.ServiceModel.SecurityMode.Transport, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.SecurityModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("transport", typeof(System.ServiceModel.Configuration.TcpTransportSecurityElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("message", typeof(System.ServiceModel.Configuration.MessageSecurityOverTcpElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
this.properties = properties;
}
return this.properties;
@@ -2789,6 +2683,216 @@ namespace System.ServiceModel.Configuration
}
}
+// configType.Name: StandardBindingElement
+
+namespace System.ServiceModel.Configuration
+{
+ public partial class StandardBindingElement
+ {
+ ConfigurationPropertyCollection properties;
+
+ protected override ConfigurationPropertyCollection Properties
+ {
+ get
+ {
+ if (this.properties == null)
+ {
+ ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
+ properties.Add(new ConfigurationProperty("name", typeof(System.String), string.Empty, null, new System.Configuration.StringValidator(0, 2147483647, null), System.Configuration.ConfigurationPropertyOptions.IsKey));
+ properties.Add(new ConfigurationProperty("closeTimeout", typeof(System.TimeSpan), System.TimeSpan.Parse("00:01:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("openTimeout", typeof(System.TimeSpan), System.TimeSpan.Parse("00:01:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("receiveTimeout", typeof(System.TimeSpan), System.TimeSpan.Parse("00:10:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("sendTimeout", typeof(System.TimeSpan), System.TimeSpan.Parse("00:01:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
+ this.properties = properties;
+ }
+ return this.properties;
+ }
+ }
+ }
+}
+
+// configType.Name: WSHttpBindingBaseElement
+
+namespace System.ServiceModel.Configuration
+{
+ public partial class WSHttpBindingBaseElement
+ {
+ ConfigurationPropertyCollection properties;
+
+ protected override ConfigurationPropertyCollection Properties
+ {
+ get
+ {
+ if (this.properties == null)
+ {
+ ConfigurationPropertyCollection properties = base.Properties;
+ properties.Add(new ConfigurationProperty("bypassProxyOnLocal", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("transactionFlow", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("hostNameComparisonMode", typeof(System.ServiceModel.HostNameComparisonMode), System.ServiceModel.HostNameComparisonMode.StrongWildcard, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.HostNameComparisonModeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxBufferPoolSize", typeof(System.Int64), (long)524288, null, new System.Configuration.LongValidator(0, 9223372036854775807, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxReceivedMessageSize", typeof(System.Int64), (long)65536, null, new System.Configuration.LongValidator(1, 9223372036854775807, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("messageEncoding", typeof(System.ServiceModel.WSMessageEncoding), System.ServiceModel.WSMessageEncoding.Text, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.WSMessageEncodingHelper)), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("proxyAddress", typeof(System.Uri), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("readerQuotas", typeof(System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("reliableSession", typeof(System.ServiceModel.Configuration.StandardBindingOptionalReliableSessionElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("textEncoding", typeof(System.Text.Encoding), "utf-8", new System.ServiceModel.Configuration.EncodingConverter(), null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("useDefaultWebProxy", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ this.properties = properties;
+ }
+ return this.properties;
+ }
+ }
+ }
+}
+
+// configType.Name: WSHttpBindingElement
+
+namespace System.ServiceModel.Configuration
+{
+ public partial class WSHttpBindingElement
+ {
+ ConfigurationPropertyCollection properties;
+
+ protected override ConfigurationPropertyCollection Properties
+ {
+ get
+ {
+ if (this.properties == null)
+ {
+ ConfigurationPropertyCollection properties = base.Properties;
+ properties.Add(new ConfigurationProperty("allowCookies", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("security", typeof(System.ServiceModel.Configuration.WSHttpSecurityElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ this.properties = properties;
+ }
+ return this.properties;
+ }
+ }
+ }
+}
+
+// configType.Name: StandardBindingCollectionElement`2
+
+namespace System.ServiceModel.Configuration
+{
+ public partial class StandardBindingCollectionElement<TStandardBinding, TBindingConfiguration>
+ {
+ ConfigurationPropertyCollection properties;
+
+ protected override ConfigurationPropertyCollection Properties
+ {
+ get
+ {
+ if (this.properties == null)
+ {
+ ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
+ properties.Add(new ConfigurationProperty("", typeof(System.ServiceModel.Configuration.StandardBindingElementCollection<TBindingConfiguration>), null, null, null, System.Configuration.ConfigurationPropertyOptions.IsDefaultCollection));
+ this.properties = properties;
+ }
+ return this.properties;
+ }
+ }
+ }
+}
+
+// configType.Name: TransportElement
+
+namespace System.ServiceModel.Configuration
+{
+ public partial class TransportElement
+ {
+ ConfigurationPropertyCollection properties;
+
+ protected override ConfigurationPropertyCollection Properties
+ {
+ get
+ {
+ if (this.properties == null)
+ {
+ ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
+ properties.Add(new ConfigurationProperty("manualAddressing", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxBufferPoolSize", typeof(System.Int64), (long)524288, null, new System.Configuration.LongValidator(1, 9223372036854775807, false), System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("maxReceivedMessageSize", typeof(System.Int64), (long)65536, null, new System.Configuration.LongValidator(1, 9223372036854775807, false), System.Configuration.ConfigurationPropertyOptions.None));
+ this.properties = properties;
+ }
+ return this.properties;
+ }
+ }
+ }
+}
+
+// configType.Name: StandardEndpointElement
+
+namespace System.ServiceModel.Configuration
+{
+ public partial class StandardEndpointElement
+ {
+ ConfigurationPropertyCollection properties;
+
+ protected override ConfigurationPropertyCollection Properties
+ {
+ get
+ {
+ if (this.properties == null)
+ {
+ ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
+ properties.Add(new ConfigurationProperty("name", typeof(System.String), string.Empty, null, new System.Configuration.StringValidator(0, 2147483647, null), System.Configuration.ConfigurationPropertyOptions.IsKey));
+ this.properties = properties;
+ }
+ return this.properties;
+ }
+ }
+ }
+}
+
+// configType.Name: StandardEndpointCollectionElement`2
+
+namespace System.ServiceModel.Configuration
+{
+ public partial class StandardEndpointCollectionElement<TStandardEndpoint, TEndpointConfiguration>
+ {
+ ConfigurationPropertyCollection properties;
+
+ protected override ConfigurationPropertyCollection Properties
+ {
+ get
+ {
+ if (this.properties == null)
+ {
+ ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
+ properties.Add(new ConfigurationProperty("", typeof(System.ServiceModel.Configuration.StandardEndpointElementCollection<TEndpointConfiguration>), null, null, null, System.Configuration.ConfigurationPropertyOptions.IsDefaultCollection));
+ this.properties = properties;
+ }
+ return this.properties;
+ }
+ }
+ }
+}
+
+// configType.Name: StandardBindingReliableSessionElement
+
+namespace System.ServiceModel.Configuration
+{
+ public partial class StandardBindingReliableSessionElement
+ {
+ ConfigurationPropertyCollection properties;
+
+ protected override ConfigurationPropertyCollection Properties
+ {
+ get
+ {
+ if (this.properties == null)
+ {
+ ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
+ properties.Add(new ConfigurationProperty("ordered", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("inactivityTimeout", typeof(System.TimeSpan), System.TimeSpan.Parse("00:10:00", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00.0000001", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
+ this.properties = properties;
+ }
+ return this.properties;
+ }
+ }
+ }
+}
+
// configType.Name: RsaElement
namespace System.ServiceModel.Configuration
@@ -3368,6 +3472,7 @@ namespace System.ServiceModel.Configuration
{
ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
properties.Add(new ConfigurationProperty("requireClientCertificate", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("sslProtocols", typeof(System.Security.Authentication.SslProtocols), System.Security.Authentication.SslProtocols.Ssl3 | System.Security.Authentication.SslProtocols.Tls | System.Security.Authentication.SslProtocols.Default | System.Security.Authentication.SslProtocols.Tls11 | System.Security.Authentication.SslProtocols.Tls12, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.Security.SslProtocolsHelper)), System.Configuration.ConfigurationPropertyOptions.None));
this.properties = properties;
}
return this.properties;
@@ -3422,6 +3527,7 @@ namespace System.ServiceModel.Configuration
properties.Add(new ConfigurationProperty("clientCredentialType", typeof(System.ServiceModel.TcpClientCredentialType), System.ServiceModel.TcpClientCredentialType.Windows, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.TcpClientCredentialTypeHelper)), System.Configuration.ConfigurationPropertyOptions.None));
properties.Add(new ConfigurationProperty("protectionLevel", typeof(System.Net.Security.ProtectionLevel), System.Net.Security.ProtectionLevel.EncryptAndSign, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.Security.ProtectionLevelHelper)), System.Configuration.ConfigurationPropertyOptions.None));
properties.Add(new ConfigurationProperty("extendedProtectionPolicy", typeof(System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
+ properties.Add(new ConfigurationProperty("sslProtocols", typeof(System.Security.Authentication.SslProtocols), System.Security.Authentication.SslProtocols.Ssl3 | System.Security.Authentication.SslProtocols.Tls | System.Security.Authentication.SslProtocols.Default | System.Security.Authentication.SslProtocols.Tls11 | System.Security.Authentication.SslProtocols.Tls12, null, new System.ServiceModel.Configuration.ServiceModelEnumValidator(typeof(System.ServiceModel.Security.SslProtocolsHelper)), System.Configuration.ConfigurationPropertyOptions.None));
this.properties = properties;
}
return this.properties;
@@ -4118,110 +4224,6 @@ namespace System.ServiceModel.Configuration
}
}
-// configType.Name: DiagnosticSection
-
-namespace System.ServiceModel.Activation.Configuration
-{
- public sealed partial class DiagnosticSection
- {
- ConfigurationPropertyCollection properties;
-
- protected override ConfigurationPropertyCollection Properties
- {
- get
- {
- if (this.properties == null)
- {
- ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
- properties.Add(new ConfigurationProperty("performanceCountersEnabled", typeof(System.Boolean), true, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- this.properties = properties;
- }
- return this.properties;
- }
- }
- }
-}
-
-// configType.Name: NetPipeSection
-
-namespace System.ServiceModel.Activation.Configuration
-{
- public sealed partial class NetPipeSection
- {
- ConfigurationPropertyCollection properties;
-
- protected override ConfigurationPropertyCollection Properties
- {
- get
- {
- if (this.properties == null)
- {
- ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
- properties.Add(new ConfigurationProperty("allowAccounts", typeof(System.ServiceModel.Activation.Configuration.SecurityIdentifierElementCollection), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxPendingConnections", typeof(System.Int32), 100, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxPendingAccepts", typeof(System.Int32), 0, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("receiveTimeout", typeof(System.TimeSpan), System.TimeSpan.Parse("00:00:30", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
- this.properties = properties;
- }
- return this.properties;
- }
- }
- }
-}
-
-// configType.Name: NetTcpSection
-
-namespace System.ServiceModel.Activation.Configuration
-{
- public sealed partial class NetTcpSection
- {
- ConfigurationPropertyCollection properties;
-
- protected override ConfigurationPropertyCollection Properties
- {
- get
- {
- if (this.properties == null)
- {
- ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
- properties.Add(new ConfigurationProperty("allowAccounts", typeof(System.ServiceModel.Activation.Configuration.SecurityIdentifierElementCollection), null, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("listenBacklog", typeof(System.Int32), 0, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxPendingConnections", typeof(System.Int32), 100, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("maxPendingAccepts", typeof(System.Int32), 0, null, new System.Configuration.IntegerValidator(0, 2147483647, false), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("receiveTimeout", typeof(System.TimeSpan), System.TimeSpan.Parse("00:00:30", CultureInfo.InvariantCulture), new System.ServiceModel.Configuration.TimeSpanOrInfiniteConverter(), new System.ServiceModel.Configuration.TimeSpanOrInfiniteValidator(System.TimeSpan.Parse("00:00:00", CultureInfo.InvariantCulture), System.TimeSpan.Parse("24.20:31:23.6470000", CultureInfo.InvariantCulture)), System.Configuration.ConfigurationPropertyOptions.None));
- properties.Add(new ConfigurationProperty("teredoEnabled", typeof(System.Boolean), false, null, null, System.Configuration.ConfigurationPropertyOptions.None));
- this.properties = properties;
- }
- return this.properties;
- }
- }
- }
-}
-
-// configType.Name: SecurityIdentifierElement
-
-namespace System.ServiceModel.Activation.Configuration
-{
- public sealed partial class SecurityIdentifierElement
- {
- ConfigurationPropertyCollection properties;
-
- protected override ConfigurationPropertyCollection Properties
- {
- get
- {
- if (this.properties == null)
- {
- ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
- properties.Add(new ConfigurationProperty("securityIdentifier", typeof(System.Security.Principal.SecurityIdentifier), null, new System.ServiceModel.Activation.Configuration.SecurityIdentifierConverter(), null, System.Configuration.ConfigurationPropertyOptions.IsKey));
- this.properties = properties;
- }
- return this.properties;
- }
- }
- }
-}
-
// configType.Name: ComContractElement
namespace System.ServiceModel.Configuration
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ReliableMessagingVersionConverter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ReliableMessagingVersionConverter.cs
index 5ea78eddac7..dff1f8fd22d 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ReliableMessagingVersionConverter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ReliableMessagingVersionConverter.cs
@@ -32,7 +32,7 @@ namespace System.ServiceModel.Configuration
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
string version = value as string;
-#pragma warning suppress 56507 // [....], Really checking for null (meaning value was not a string) versus String.Empty
+#pragma warning suppress 56507 // Microsoft, Really checking for null (meaning value was not a string) versus String.Empty
if (version != null)
{
switch (version)
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ReliableSessionElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ReliableSessionElement.cs
index 5fa338c0cdf..78c194c1945 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ReliableSessionElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ReliableSessionElement.cs
@@ -104,7 +104,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
ReliableSessionElement source = (ReliableSessionElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
this.AcknowledgementInterval = source.AcknowledgementInterval;
this.FlowControlEnabled = source.FlowControlEnabled;
this.InactivityTimeout = source.InactivityTimeout;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/RemoveBehaviorElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/RemoveBehaviorElement.cs
index f7d061da296..04f10476125 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/RemoveBehaviorElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/RemoveBehaviorElement.cs
@@ -23,7 +23,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
RemoveBehaviorElement source = (RemoveBehaviorElement) from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
this.Name = source.Name;
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/SecurityElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/SecurityElement.cs
index 70c98b01678..6866807d7b6 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/SecurityElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/SecurityElement.cs
@@ -37,7 +37,7 @@ namespace System.ServiceModel.Configuration
SecurityElement source = (SecurityElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
if (PropertyValueOrigin.Default != source.ElementInformation.Properties[ConfigurationStrings.SecureConversationBootstrap].ValueOrigin)
this.SecureConversationBootstrap.CopyFrom(source.SecureConversationBootstrap);
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/SecurityElementBase.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/SecurityElementBase.cs
index 98c71d0c3bb..f27d8b8a471 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/SecurityElementBase.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/SecurityElementBase.cs
@@ -173,7 +173,7 @@ namespace System.ServiceModel.Configuration
SecurityBindingElement sbe = (SecurityBindingElement)bindingElement;
-#pragma warning disable 56506 //[....]; base.CopyFrom() checks for 'from' being null
+#pragma warning disable 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
if (PropertyValueOrigin.Default != this.ElementInformation.Properties[ConfigurationStrings.DefaultAlgorithmSuite].ValueOrigin)
sbe.DefaultAlgorithmSuite = this.DefaultAlgorithmSuite;
if (PropertyValueOrigin.Default != this.ElementInformation.Properties[ConfigurationStrings.IncludeTimestamp].ValueOrigin)
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceAuthorizationElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceAuthorizationElement.cs
index 3871c52a5cb..bea61241b88 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceAuthorizationElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceAuthorizationElement.cs
@@ -84,7 +84,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
ServiceAuthorizationElement source = (ServiceAuthorizationElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
this.PrincipalPermissionMode = source.PrincipalPermissionMode;
this.RoleProviderName = source.RoleProviderName;
this.ImpersonateCallerForAllOperations = source.ImpersonateCallerForAllOperations;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceBehaviorElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceBehaviorElement.cs
index 28a42f4bf36..feac091740f 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceBehaviorElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceBehaviorElement.cs
@@ -37,7 +37,7 @@ namespace System.ServiceModel.Configuration
}
if (!typeof(System.ServiceModel.Description.IServiceBehavior).IsAssignableFrom(element.BehaviorType))
{
-#pragma warning disable 56506 //[....]; element.ElementInformation is guaranteed to be non-null(System.Configuration)
+#pragma warning disable 56506 //Microsoft; element.ElementInformation is guaranteed to be non-null(System.Configuration)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigInvalidServiceBehaviorType,
element.ConfigurationElementName,
this.Name),
@@ -62,7 +62,7 @@ namespace System.ServiceModel.Configuration
}
if (!typeof(System.ServiceModel.Description.IServiceBehavior).IsAssignableFrom(element.BehaviorType))
{
-#pragma warning disable 56506 //[....]; element.ElementInformation is guaranteed to be non-null(System.Configuration)
+#pragma warning disable 56506 //Microsoft; element.ElementInformation is guaranteed to be non-null(System.Configuration)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigInvalidServiceBehaviorType,
element.ConfigurationElementName,
this.Name),
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceCredentialsElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceCredentialsElement.cs
index 050bca034d1..ae57ebb3ffd 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceCredentialsElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceCredentialsElement.cs
@@ -98,7 +98,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
ServiceCredentialsElement source = (ServiceCredentialsElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
this.ClientCertificate.Copy(source.ClientCertificate);
this.ServiceCertificate.Copy(source.ServiceCertificate);
this.UserNameAuthentication.Copy(source.UserNameAuthentication);
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceDebugElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceDebugElement.cs
index 86a1000cbf8..c3e7c986f24 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceDebugElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceDebugElement.cs
@@ -86,7 +86,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
ServiceDebugElement source = (ServiceDebugElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() check for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() check for 'from' being null
this.HttpHelpPageEnabled = source.HttpHelpPageEnabled;
this.HttpHelpPageUrl = source.HttpHelpPageUrl;
this.HttpsHelpPageEnabled = source.HttpsHelpPageEnabled;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceMetadataEndpointCollectionElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceMetadataEndpointCollectionElement.cs
index 63590402f6e..4cac2ac3099 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceMetadataEndpointCollectionElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceMetadataEndpointCollectionElement.cs
@@ -12,4 +12,4 @@ namespace System.ServiceModel.Configuration
public partial class ServiceMetadataEndpointCollectionElement : StandardEndpointCollectionElement<ServiceMetadataEndpoint, ServiceMetadataEndpointElement>
{
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceMetadataPublishingElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceMetadataPublishingElement.cs
index 236a9d88250..f23ce762124 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceMetadataPublishingElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceMetadataPublishingElement.cs
@@ -95,7 +95,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
ServiceMetadataPublishingElement source = (ServiceMetadataPublishingElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() check for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() check for 'from' being null
this.HttpGetEnabled = source.HttpGetEnabled;
this.HttpGetUrl = source.HttpGetUrl;
this.HttpsGetEnabled = source.HttpsGetEnabled;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceModelConfigurationElementCollection.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceModelConfigurationElementCollection.cs
index 277cdad0330..576cff6c0b1 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceModelConfigurationElementCollection.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceModelConfigurationElementCollection.cs
@@ -239,7 +239,7 @@ namespace System.ServiceModel.Configuration
}
else
{
-#pragma warning disable 56506 //[....]; Variable 'key' checked for null previously
+#pragma warning disable 56506 //Microsoft; Variable 'key' checked for null previously
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.ConfigKeysDoNotMatch,
this.GetElementKey(value).ToString(),
key.ToString()));
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceModelExtensionCollectionElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceModelExtensionCollectionElement.cs
index eba49b2e2ed..798ad08c8c9 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceModelExtensionCollectionElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceModelExtensionCollectionElement.cs
@@ -48,7 +48,7 @@ namespace System.ServiceModel.Configuration
if (!this.CollectionElementBaseType.IsAssignableFrom(extensionType))
{
-#pragma warning disable 56506 //[....]; Variable 'extensionType' checked for null previously
+#pragma warning disable 56506 //Microsoft; Variable 'extensionType' checked for null previously
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("extensionType",
SR.GetString(SR.ConfigInvalidExtensionType,
extensionType.ToString(),
@@ -326,8 +326,8 @@ namespace System.ServiceModel.Configuration
}
catch (ConfigurationErrorsException e)
{
- // Work-around for bug 219506@CSDMain: if the extension type cannot be loaded, we'll ignore
- // the exception when running in win8 app container and reading from machine.config.
+ // Work-around for
+
if (System.ServiceModel.Channels.AppContainerInfo.IsRunningInAppContainer && evaluationContext.IsMachineLevel)
{
DiagnosticUtility.TraceHandledException(e, TraceEventType.Information);
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceModelSectionGroup.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceModelSectionGroup.cs
index c05708f7b3e..112d210c209 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceModelSectionGroup.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceModelSectionGroup.cs
@@ -74,7 +74,7 @@ namespace System.ServiceModel.Configuration
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("config");
}
-#pragma warning suppress 56506 //[....]; config.SectionGroups can never be null (underlying configuration system guarantees)
+#pragma warning suppress 56506 //Microsoft; config.SectionGroups can never be null (underlying configuration system guarantees)
return (ServiceModelSectionGroup)config.SectionGroups[ConfigurationStrings.SectionGroupName];
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceSecurityAuditElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceSecurityAuditElement.cs
index a26244ce56d..5cbdf80e1fb 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceSecurityAuditElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceSecurityAuditElement.cs
@@ -52,7 +52,7 @@ namespace System.ServiceModel.Configuration
{
base.CopyFrom(from);
ServiceSecurityAuditElement source = (ServiceSecurityAuditElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
this.AuditLogLocation = source.AuditLogLocation;
this.SuppressAuditFailure = source.SuppressAuditFailure;
this.ServiceAuthorizationAuditLevel = source.ServiceAuthorizationAuditLevel;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceThrottlingElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceThrottlingElement.cs
index 11f81f42606..b6df0f71a16 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceThrottlingElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceThrottlingElement.cs
@@ -44,7 +44,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
ServiceThrottlingElement source = (ServiceThrottlingElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
this.MaxConcurrentCalls = source.MaxConcurrentCalls;
this.MaxConcurrentSessions = source.MaxConcurrentSessions;
this.MaxConcurrentInstances = source.MaxConcurrentInstances;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceTimeoutsElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceTimeoutsElement.cs
index 9bd23149f74..573b1d9a966 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceTimeoutsElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/ServiceTimeoutsElement.cs
@@ -29,7 +29,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
ServiceTimeoutsElement source = (ServiceTimeoutsElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
this.TransactionTimeout = source.TransactionTimeout;
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/SslStreamSecurityElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/SslStreamSecurityElement.cs
index fdcc8f9805a..247bd119d7a 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/SslStreamSecurityElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/SslStreamSecurityElement.cs
@@ -5,7 +5,9 @@
namespace System.ServiceModel.Configuration
{
using System.Configuration;
+ using System.Security.Authentication;
using System.ServiceModel.Channels;
+ using System.ServiceModel.Security;
public sealed partial class SslStreamSecurityElement : BindingElementExtensionElement
{
@@ -21,12 +23,22 @@ namespace System.ServiceModel.Configuration
set { base[ConfigurationStrings.RequireClientCertificate] = value; }
}
+ [ConfigurationProperty(ConfigurationStrings.SslProtocols, DefaultValue = TransportDefaults.SslProtocols)]
+ [ServiceModelEnumValidator(typeof(SslProtocolsHelper))]
+ public SslProtocols SslProtocols
+ {
+ get { return (SslProtocols)base[ConfigurationStrings.SslProtocols]; }
+ private set { base[ConfigurationStrings.SslProtocols] = value; }
+ }
+
+
public override void ApplyConfiguration(BindingElement bindingElement)
{
base.ApplyConfiguration(bindingElement);
SslStreamSecurityBindingElement sslBindingElement =
(SslStreamSecurityBindingElement)bindingElement;
sslBindingElement.RequireClientCertificate = this.RequireClientCertificate;
+ sslBindingElement.SslProtocols = this.SslProtocols;
}
protected internal override BindingElement CreateBindingElement()
@@ -48,8 +60,9 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
SslStreamSecurityElement source = (SslStreamSecurityElement)from;
-#pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument
this.RequireClientCertificate = source.RequireClientCertificate;
+ this.SslProtocols = source.SslProtocols;
}
protected internal override void InitializeFrom(BindingElement bindingElement)
@@ -58,6 +71,7 @@ namespace System.ServiceModel.Configuration
SslStreamSecurityBindingElement sslBindingElement
= (SslStreamSecurityBindingElement)bindingElement;
SetPropertyValueIfNotDefaultValue(ConfigurationStrings.RequireClientCertificate, sslBindingElement.RequireClientCertificate);
+ SetPropertyValueIfNotDefaultValue(ConfigurationStrings.SslProtocols, sslBindingElement.SslProtocols);
}
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/StandardBindingCollectionElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/StandardBindingCollectionElement.cs
index 64932814a80..ed2e5bb7e99 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/StandardBindingCollectionElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/StandardBindingCollectionElement.cs
@@ -44,7 +44,7 @@ namespace System.ServiceModel.Configuration
{
// This line needed because of the IBindingSection implementation
StandardBindingCollectionElement<TStandardBinding, TBindingConfiguration> me = (StandardBindingCollectionElement<TStandardBinding, TBindingConfiguration>)this;
-#pragma warning suppress 56506 //[....]; me.Bindings can never be null (underlying configuration system guarantees)
+#pragma warning suppress 56506 //Microsoft; me.Bindings can never be null (underlying configuration system guarantees)
return me.Bindings.ContainsKey(name);
}
protected internal override Binding GetDefault()
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/StandardEndpointCollectionElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/StandardEndpointCollectionElement.cs
index 51b14b08d3b..848b2d8991d 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/StandardEndpointCollectionElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/StandardEndpointCollectionElement.cs
@@ -44,7 +44,7 @@ namespace System.ServiceModel.Configuration
public override bool ContainsKey(string name)
{
StandardEndpointCollectionElement<TStandardEndpoint, TEndpointConfiguration> me = (StandardEndpointCollectionElement<TStandardEndpoint, TEndpointConfiguration>)this;
-#pragma warning suppress 56506 //[....]; me.Endpoints can never be null (underlying configuration system guarantees)
+#pragma warning suppress 56506 //Microsoft; me.Endpoints can never be null (underlying configuration system guarantees)
return me.Endpoints.ContainsKey(name);
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TcpTransportElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TcpTransportElement.cs
index e792c9cabc7..bed3878e51b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TcpTransportElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TcpTransportElement.cs
@@ -19,7 +19,7 @@ namespace System.ServiceModel.Configuration
public override void ApplyConfiguration(BindingElement bindingElement)
{
base.ApplyConfiguration(bindingElement);
-#pragma warning suppress 56506 // [....], base.ApplyConfiguration() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.ApplyConfiguration() validates the argument
TcpTransportBindingElement binding = (TcpTransportBindingElement)bindingElement;
PropertyInformationCollection propertyInfo = this.ElementInformation.Properties;
if (this.ListenBacklog != TcpTransportDefaults.ListenBacklogConst)
@@ -28,7 +28,7 @@ namespace System.ServiceModel.Configuration
}
binding.PortSharingEnabled = this.PortSharingEnabled;
binding.TeredoEnabled = this.TeredoEnabled;
-#pragma warning suppress 56506 // [....], base.ApplyConfiguration() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.ApplyConfiguration() validates the argument
this.ConnectionPoolSettings.ApplyConfiguration(binding.ConnectionPoolSettings);
binding.ExtendedProtectionPolicy = ChannelBindingUtility.BuildPolicy(this.ExtendedProtectionPolicy);
}
@@ -43,7 +43,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
TcpTransportElement source = (TcpTransportElement)from;
-#pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument
this.ListenBacklog = source.ListenBacklog;
this.PortSharingEnabled = source.PortSharingEnabled;
this.TeredoEnabled = source.TeredoEnabled;
@@ -59,7 +59,7 @@ namespace System.ServiceModel.Configuration
protected internal override void InitializeFrom(BindingElement bindingElement)
{
base.InitializeFrom(bindingElement);
-#pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument
TcpTransportBindingElement binding = (TcpTransportBindingElement)bindingElement;
if (binding.IsListenBacklogSet)
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TcpTransportSecurityElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TcpTransportSecurityElement.cs
index 8dd7f7a821c..c07d01f40a7 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TcpTransportSecurityElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TcpTransportSecurityElement.cs
@@ -13,6 +13,7 @@ namespace System.ServiceModel.Configuration
using System.ServiceModel;
using System.ServiceModel.Security;
using System.ComponentModel;
+ using System.Security.Authentication;
public sealed partial class TcpTransportSecurityElement : ServiceModelConfigurationElement
{
@@ -39,6 +40,14 @@ namespace System.ServiceModel.Configuration
private set { base[ConfigurationStrings.ExtendedProtectionPolicy] = value; }
}
+ [ConfigurationProperty(ConfigurationStrings.SslProtocols, DefaultValue = TransportDefaults.SslProtocols)]
+ [ServiceModelEnumValidator(typeof(SslProtocolsHelper))]
+ public SslProtocols SslProtocols
+ {
+ get { return (SslProtocols)base[ConfigurationStrings.SslProtocols]; }
+ private set { base[ConfigurationStrings.SslProtocols] = value; }
+ }
+
internal void ApplyConfiguration(TcpTransportSecurity security)
{
if (security == null)
@@ -48,6 +57,7 @@ namespace System.ServiceModel.Configuration
security.ClientCredentialType = this.ClientCredentialType;
security.ProtectionLevel = this.ProtectionLevel;
security.ExtendedProtectionPolicy = ChannelBindingUtility.BuildPolicy(this.ExtendedProtectionPolicy);
+ security.SslProtocols = this.SslProtocols;
}
internal void InitializeFrom(TcpTransportSecurity security)
@@ -59,6 +69,7 @@ namespace System.ServiceModel.Configuration
SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ClientCredentialType, security.ClientCredentialType);
SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ProtectionLevel, security.ProtectionLevel);
ChannelBindingUtility.InitializeFrom(security.ExtendedProtectionPolicy, this.ExtendedProtectionPolicy);
+ SetPropertyValueIfNotDefaultValue(ConfigurationStrings.SslProtocols, security.SslProtocols);
}
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TextMessageEncodingElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TextMessageEncodingElement.cs
index bf649723569..ec04b51b2cb 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TextMessageEncodingElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TextMessageEncodingElement.cs
@@ -24,7 +24,7 @@ namespace System.ServiceModel.Configuration
binding.WriteEncoding = this.WriteEncoding;
binding.MaxReadPoolSize = this.MaxReadPoolSize;
binding.MaxWritePoolSize = this.MaxWritePoolSize;
-#pragma warning suppress 56506 //[....]; base.ApplyConfiguration() checks for 'binding' being null
+#pragma warning suppress 56506 //Microsoft; base.ApplyConfiguration() checks for 'binding' being null
this.ReaderQuotas.ApplyConfiguration(binding.ReaderQuotas);
}
@@ -38,7 +38,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
TextMessageEncodingElement source = (TextMessageEncodingElement)from;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
this.MessageVersion = source.MessageVersion;
this.WriteEncoding = source.WriteEncoding;
this.MaxReadPoolSize = source.MaxReadPoolSize;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransactedBatchingElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransactedBatchingElement.cs
index b74805626e1..176571cd0e2 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransactedBatchingElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransactedBatchingElement.cs
@@ -22,7 +22,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
TransactedBatchingElement source = from as TransactedBatchingElement;
-#pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
+#pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
this.MaxBatchSize = source.MaxBatchSize;
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransactionFlowElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransactionFlowElement.cs
index 652f729b0cc..de6601252f0 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransactionFlowElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransactionFlowElement.cs
@@ -53,7 +53,7 @@ namespace System.ServiceModel.Configuration
{
base.CopyFrom(from);
TransactionFlowElement source = (TransactionFlowElement)from;
-#pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument
this.TransactionProtocol = source.TransactionProtocol;
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransactionProtocolConverter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransactionProtocolConverter.cs
index 9bba5ca4cce..12c1308b56b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransactionProtocolConverter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransactionProtocolConverter.cs
@@ -32,7 +32,7 @@ namespace System.ServiceModel.Configuration
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
string protocol = value as string;
-#pragma warning suppress 56507 // [....], Really checking for null (meaning value was not a string) versus String.Empty
+#pragma warning suppress 56507 // Microsoft, Really checking for null (meaning value was not a string) versus String.Empty
if (protocol != null)
{
switch (protocol)
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransportElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransportElement.cs
index c4599271949..18d9aea87e4 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransportElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/TransportElement.cs
@@ -27,7 +27,7 @@ using System.ServiceModel.Channels;
base.CopyFrom(from);
TransportElement source = (TransportElement)from;
-#pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument
this.ManualAddressing = source.ManualAddressing;
this.MaxBufferPoolSize = source.MaxBufferPoolSize;
this.MaxReceivedMessageSize = source.MaxReceivedMessageSize;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/WindowsStreamSecurityElement.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/WindowsStreamSecurityElement.cs
index f82b3f7c2d5..e31633cd846 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/WindowsStreamSecurityElement.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Configuration/WindowsStreamSecurityElement.cs
@@ -52,7 +52,7 @@ namespace System.ServiceModel.Configuration
base.CopyFrom(from);
WindowsStreamSecurityElement source = (WindowsStreamSecurityElement)from;
-#pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
+#pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument
this.ProtectionLevel = source.ProtectionLevel;
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ClientClassGenerator.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ClientClassGenerator.cs
index c7362683b42..5712afbf7ba 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ClientClassGenerator.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ClientClassGenerator.cs
@@ -61,7 +61,7 @@ namespace System.ServiceModel.Description
static string getDefaultValueForInitializationMethodName = "GetDefaultValueForInitialization";
// IMPORTANT: this table tracks the set of .ctors in ClientBase and DuplexClientBase.
- // This table must be kept in [....]
+ // This table must be kept in sync
// for DuplexClientBase, the initial InstanceContext param is assumed; ctor overloads must match between ClientBase and DuplexClientBase
static Type[][] ClientCtorParamTypes = new Type[][]
{
@@ -107,7 +107,7 @@ namespace System.ServiceModel.Description
#if DEBUG
static BindingFlags ctorBindingFlags = BindingFlags.Instance | BindingFlags.NonPublic;
- static string DebugCheckTable_errorString = "Client code generation table out of [....] with ClientBase and DuplexClientBase ctors. Please investigate.";
+ static string DebugCheckTable_errorString = "Client code generation table out of sync with ClientBase and DuplexClientBase ctors. Please investigate.";
// check the table against what we would get from reflection
static void DebugCheckTable()
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ConfigWriter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ConfigWriter.cs
index 2020a04443f..c111c900c36 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ConfigWriter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ConfigWriter.cs
@@ -40,7 +40,7 @@ namespace System.ServiceModel.Description
channelElement = new ChannelEndpointElement(endpoint.Address, typeName);
- // [....]: review: Use decoded form to preserve the user-given friendly name, however, beacuse our Encoding algorithm
+ // Microsoft: review: Use decoded form to preserve the user-given friendly name, however, beacuse our Encoding algorithm
// does not touch ASCII names, a name that looks like encoded name will not roundtrip(Example: "_x002C_" will turned into ",")
channelElement.Name = NamingHelper.GetUniqueName(NamingHelper.CodeName(endpoint.Name), this.CheckIfChannelNameInUse, null);
@@ -64,7 +64,7 @@ namespace System.ServiceModel.Description
BindingDictionaryValue bindingDV;
if (!bindingTable.TryGetValue(binding, out bindingDV))
{
- // [....]: review: Use decoded form to preserve the user-given friendly name, however, beacuse our Encoding algorithm
+ // Microsoft: review: Use decoded form to preserve the user-given friendly name, however, beacuse our Encoding algorithm
// does not touch ASCII names, a name that looks like encoded name will not roundtrip(Example: "_x002C_" will turned into ",")
string bindingName = NamingHelper.GetUniqueName(NamingHelper.CodeName(binding.Name), this.CheckIfBindingNameInUse, null);
string bindingSectionName;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/DispatcherBuilder.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/DispatcherBuilder.cs
index f3625150b0c..1106d1758c9 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/DispatcherBuilder.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/DispatcherBuilder.cs
@@ -788,6 +788,12 @@ namespace System.ServiceModel.Description
}
} // end foreach "endpoint"
+ // Clear performance counter cache.
+ if ((PerformanceCounters.PerformanceCountersEnabled || PerformanceCounters.MinimalPerformanceCountersEnabled) && ServiceModelAppSettings.EnsureUniquePerformanceCounterInstanceNames)
+ {
+ System.Diagnostics.PerformanceCounter.CloseSharedResources();
+ }
+
if (canReceiveInTransaction)
{
BindingElementCollection bindingElements = binding.CreateBindingElements();
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/IPolicyImportExtension.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/IPolicyImportExtension.cs
index aef0d3ff6c5..66d83a9cdb3 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/IPolicyImportExtension.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/IPolicyImportExtension.cs
@@ -8,4 +8,4 @@ namespace System.ServiceModel.Description
{
void ImportPolicy(MetadataImporter importer, PolicyConversionContext context);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/IWsdlExportExtension.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/IWsdlExportExtension.cs
index 8f21363d287..263bff5c4b3 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/IWsdlExportExtension.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/IWsdlExportExtension.cs
@@ -10,4 +10,4 @@ namespace System.ServiceModel.Description
void ExportEndpoint(WsdlExporter exporter, WsdlEndpointConversionContext context);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/IWsdlImportExtension.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/IWsdlImportExtension.cs
index 992b4d989ba..41668914157 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/IWsdlImportExtension.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/IWsdlImportExtension.cs
@@ -17,4 +17,4 @@ namespace System.ServiceModel.Description
void ImportEndpoint(WsdlImporter importer, WsdlEndpointConversionContext context);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ImportedPolicyConversionContext.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ImportedPolicyConversionContext.cs
index 5d9a366651e..711970a2a0c 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ImportedPolicyConversionContext.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ImportedPolicyConversionContext.cs
@@ -13,7 +13,7 @@ namespace System.ServiceModel.Description
public abstract partial class MetadataImporter
{
- //Consider, [....]: make this public
+ //Consider, Microsoft: make this public
internal static IEnumerable<PolicyConversionContext> GetPolicyConversionContextEnumerator(ServiceEndpoint endpoint, PolicyAlternatives policyAlternatives)
{
return ImportedPolicyConversionContext.GetPolicyConversionContextEnumerator(endpoint, policyAlternatives, MetadataImporterQuotas.Defaults);
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/MessageContractExporter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/MessageContractExporter.cs
index dbef91c1275..2b126c76a44 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/MessageContractExporter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/MessageContractExporter.cs
@@ -511,7 +511,7 @@ namespace System.ServiceModel.Description
string operationName = contractContext.GetOperation(operation).Name;
string callbackString = operation.IsServerInitiated() ? "Callback" : string.Empty;
- // [....]: composing names have potential problem of generating name that looks like an encoded name, consider avoiding '_'
+ // Microsoft: composing names have potential problem of generating name that looks like an encoded name, consider avoiding '_'
if (messageDescription.Direction == MessageDirection.Input)
messageNameBase = string.Format(System.Globalization.CultureInfo.InvariantCulture,
"{0}_{1}_Input{2}Message", portTypeName, operationName, callbackString);
@@ -539,7 +539,7 @@ namespace System.ServiceModel.Description
{
string portTypeName = contractContext.WsdlPortType.Name;
string operationName = contractContext.GetOperation(operation).Name;
- // [....]: composing names have potential problem of generating name that looks like an encoded name, consider avoiding '_'
+ // Microsoft: composing names have potential problem of generating name that looks like an encoded name, consider avoiding '_'
string faultNameBase = String.Format(System.Globalization.CultureInfo.InvariantCulture, "{0}_{1}_{2}_FaultMessage", portTypeName, operationName, faultName);
WsdlNS.ServiceDescription wsdl = contractContext.WsdlPortType.ServiceDescription;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/MetadataSection.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/MetadataSection.cs
index 87e7f37dace..8c33e75db72 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/MetadataSection.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/MetadataSection.cs
@@ -92,7 +92,7 @@ namespace System.ServiceModel.Description
if (!IsPolicyElement(policy))
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("policy",
-#pragma warning suppress 56506 // [....], policy cannot be null at this point since it has been validated above.
+#pragma warning suppress 56506 // Microsoft, policy cannot be null at this point since it has been validated above.
SR.GetString(SR.SFxBadMetadataMustBePolicy, MetadataStrings.WSPolicy.NamespaceUri, MetadataStrings.WSPolicy.Elements.Policy, policy.NamespaceURI, policy.LocalName));
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/PolicyReader.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/PolicyReader.cs
index 469c6d6be67..9b60b764319 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/PolicyReader.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/PolicyReader.cs
@@ -21,7 +21,7 @@ namespace System.ServiceModel.Description
internal delegate void PolicyWarningHandler(XmlElement contextAssertion, string warningMessage);
- // Consider, [....], make this public?
+ // Consider, Microsoft, make this public?
internal event PolicyWarningHandler PolicyWarningOccured;
internal IEnumerable<IEnumerable<XmlElement>> NormalizePolicy(IEnumerable<XmlElement> policyAssertions)
@@ -92,7 +92,7 @@ namespace System.ServiceModel.Description
string warningMsg = SR.GetString(SR.UnrecognizedPolicyElementInNamespace, node.Name, node.NamespaceURI);
metadataImporter.PolicyWarningOccured.Invoke(contextAssertion, warningMsg);
break;
- //consider [....], add more error handling here. default?
+ //consider Microsoft, add more error handling here. default?
}
return nodes;
}
@@ -365,7 +365,7 @@ namespace System.ServiceModel.Description
{
get
{
-#pragma warning suppress 56503 // [....], IEnumerator guidelines, Current throws exception before calling MoveNext
+#pragma warning suppress 56503 // Microsoft, IEnumerator guidelines, Current throws exception before calling MoveNext
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.NoValue0)));
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ServiceEndpoint.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ServiceEndpoint.cs
index cd369d24220..d8c3dca4e8b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ServiceEndpoint.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/ServiceEndpoint.cs
@@ -105,7 +105,7 @@ namespace System.ServiceModel.Description
}
else if (binding != null)
{
- // [....]: composing names have potential problem of generating name that looks like an encoded name, consider avoiding '_'
+ // Microsoft: composing names have potential problem of generating name that looks like an encoded name, consider avoiding '_'
return String.Format(CultureInfo.InvariantCulture, "{0}_{1}", new XmlName(Binding.Name).EncodedName, Contract.Name);
}
else
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/SoapHelper.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/SoapHelper.cs
index 61868f6c869..d18c4927e4d 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/SoapHelper.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/SoapHelper.cs
@@ -186,7 +186,7 @@ namespace System.ServiceModel.Description
static class SoapConverter
{
- // [....], this could be simplified if we used generics.
+ // Microsoft, this could be simplified if we used generics.
internal static void ConvertExtensions(WsdlNS.ServiceDescriptionFormatExtensionCollection extensions, EnvelopeVersion version, ConvertExtension conversionMethod)
{
bool foundOne = false;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/TaskOperationDescriptionValidator.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/TaskOperationDescriptionValidator.cs
index 70f61006515..2d1827ef8a1 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/TaskOperationDescriptionValidator.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/TaskOperationDescriptionValidator.cs
@@ -15,7 +15,7 @@ namespace System.ServiceModel.Description
{
if (isForService)
{
- // no other method ([....], async) is allowed to co-exist with a task-based method on the server-side.
+ // no other method (sync, async) is allowed to co-exist with a task-based method on the server-side.
EnsureNoSyncMethod(operationDescription);
EnsureNoBeginEndMethod(operationDescription);
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/TypeLoader.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/TypeLoader.cs
index 105821f4e78..45d56cc0518 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/TypeLoader.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/TypeLoader.cs
@@ -771,13 +771,13 @@ namespace System.ServiceModel.Description
return defaultFormatAttribute;
}
- //[....] and Async should follow the rules:
+ //Sync and Async should follow the rules:
// 1. Parameter match
// 2. Async cannot have behaviors (verification happens later in ProcessOpMethod - behaviors haven't yet been loaded here)
// 3. Async cannot have known types
// 4. Async cannot have known faults
- // 5. [....] and Async have to match on OneWay status
- // 6. [....] and Async have to match Action and ReplyAction
+ // 5. Sync and Async have to match on OneWay status
+ // 6. Sync and Async have to match Action and ReplyAction
void VerifyConsistency(OperationConsistencyVerifier verifier)
{
verifier.VerifyParameterLength();
@@ -860,7 +860,7 @@ namespace System.ServiceModel.Description
existingOp.TaskTResult = newOp.TaskTResult;
if (existingOp.SyncMethod != null)
{
- // Task vs. [....]
+ // Task vs. Sync
VerifyConsistency(new SyncTaskOperationConsistencyVerifier(existingOp, newOp));
}
else
@@ -876,7 +876,7 @@ namespace System.ServiceModel.Description
existingOp.EndMethod = newOp.EndMethod;
if (existingOp.SyncMethod != null)
{
- // Async vs. [....]
+ // Async vs. Sync
VerifyConsistency(new SyncAsyncOperationConsistencyVerifier(existingOp, newOp));
}
else
@@ -894,12 +894,12 @@ namespace System.ServiceModel.Description
newOp.TaskTResult = existingOp.TaskTResult;
if (existingOp.TaskMethod != null)
{
- // [....] vs. Task
+ // Sync vs. Task
VerifyConsistency(new SyncTaskOperationConsistencyVerifier(newOp, existingOp));
}
else
{
- // [....] vs. Async
+ // Sync vs. Async
VerifyConsistency(new SyncAsyncOperationConsistencyVerifier(newOp, existingOp));
}
return newOp;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/WsdlExporter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/WsdlExporter.cs
index 656fc85a790..bb0dc9be896 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/WsdlExporter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/WsdlExporter.cs
@@ -991,7 +991,7 @@ namespace System.ServiceModel.Description
int i = 0;
prefix = prefixBase + i.ToString(CultureInfo.InvariantCulture);
- //[....], consider do we need to check at higher scopes as well?
+ //Microsoft, consider do we need to check at higher scopes as well?
while (PrefixExists(scopes[0].Namespaces.ToArray(), prefix))
prefix = prefixBase + (++i).ToString(CultureInfo.InvariantCulture);
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/WsdlImporter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/WsdlImporter.cs
index cf5abf7fb7a..026247d854c 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/WsdlImporter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Description/WsdlImporter.cs
@@ -922,7 +922,7 @@ namespace System.ServiceModel.Description
// This method checks if there is a match based on Names, between the specified OperationBinding and Operation.
// When searching for the Operation associated with an OperationBinding, we need to return an exact match if possible,
// or a partial match otherwise (when some of the Names are null).
- // Bug 16833 @ CSDMain requires that partial matches are allowed, while the TFS bug 477838 requires that exact matches are done (when possible).
+ //
if (wsdlOperationBinding.Name != wsdlOperation.Name)
{
return MatchResult.None;
@@ -1189,7 +1189,7 @@ namespace System.ServiceModel.Description
internal static XmlQualifiedName GetBindingName(WsdlNS.Port wsdlPort)
{
- // [....]: composing names have potential problem of generating name that looks like an encoded name, consider avoiding '_'
+ // Microsoft: composing names have potential problem of generating name that looks like an encoded name, consider avoiding '_'
XmlName xmlName = new XmlName(string.Format(CultureInfo.InvariantCulture, "{0}_{1}", wsdlPort.Service.Name, wsdlPort.Name), true /*isEncoded*/);
return new XmlQualifiedName(xmlName.EncodedName, wsdlPort.Service.ServiceDescription.TargetNamespace);
}
@@ -1233,7 +1233,7 @@ namespace System.ServiceModel.Description
}
else
{
- // [....]: why this is an Assert, and not an exception?
+ // Microsoft: why this is an Assert, and not an exception?
Fx.Assert("Unsupported WSDL OM (More than 2 OperationMessages encountered in an Operation or WsdlOM is invalid)");
}
// names the come from service description documents have to be valid NCNames; XmlName.ctor will validate.
@@ -1920,7 +1920,7 @@ namespace System.ServiceModel.Description
static Exception CreateExtensionException(IWsdlImportExtension importer, Exception e)
{
string errorMessage = SR.GetString(SR.WsdlExtensionImportError, importer.GetType().FullName, e.Message);
- //consider [....], allow internal exceptions to throw WsdlImportException and handle it in some special way?
+ //consider Microsoft, allow internal exceptions to throw WsdlImportException and handle it in some special way?
return new InvalidOperationException(errorMessage, e);
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/ActivityType.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/ActivityType.cs
index 4c4431f8472..951d2e5f3a8 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/ActivityType.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/ActivityType.cs
@@ -22,4 +22,4 @@ namespace System.ServiceModel.Diagnostics
WmiPutInstance,
NumItems, // leave this item at the end of the list.
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/EndpointPerformanceCountersBase.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/EndpointPerformanceCountersBase.cs
index 89aa50b117d..95b174c15cb 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/EndpointPerformanceCountersBase.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/EndpointPerformanceCountersBase.cs
@@ -77,9 +77,14 @@ namespace System.ServiceModel.Diagnostics
this.instanceName = CreateFriendlyInstanceName(service, contract, uri);
}
- static internal string CreateFriendlyInstanceName(string service, string contract, string uri)
+ private static string GetFullInstanceName(string service, string contract, string uri)
{
// instance name is: serviceName.interfaceName.operationName@uri
+ return String.Format("{0}.{1}@{2}", service, contract, uri);
+ }
+
+ private static string GetShortInstanceName(string service, string contract, string uri)
+ {
int length = service.Length + contract.Length + uri.Length + 2;
if (length > maxCounterLength)
@@ -115,6 +120,32 @@ namespace System.ServiceModel.Diagnostics
return service + "." + contract + "@" + uri.Replace('/', '|');
}
+ internal static string CreateFriendlyInstanceName(string service, string contract, string uri)
+ {
+ string shortInstanceName = GetShortInstanceName(service, contract, uri);
+ if (!ServiceModelAppSettings.EnsureUniquePerformanceCounterInstanceNames)
+ {
+ return shortInstanceName;
+ }
+
+ string fullInstanceName = GetFullInstanceName(service, contract, uri);
+
+ return EnsureUniqueInstanceName(PerformanceCounterStrings.SERVICEMODELENDPOINT.EndpointPerfCounters, shortInstanceName, fullInstanceName);
+ }
+
+ internal static string GetFriendlyInstanceName(string service, string contract, string uri)
+ {
+ string shortInstanceName = GetShortInstanceName(service, contract, uri);
+ if (!ServiceModelAppSettings.EnsureUniquePerformanceCounterInstanceNames)
+ {
+ return shortInstanceName;
+ }
+
+ string fullInstanceName = GetFullInstanceName(service, contract, uri);
+
+ return GetUniqueInstanceName(PerformanceCounterStrings.SERVICEMODELENDPOINT.EndpointPerfCounters, shortInstanceName, fullInstanceName);
+ }
+
private static truncOptions GetCompressionTasks(int totalLen, int serviceLen, int contractLen, int uriLen)
{
truncOptions bitmask = 0;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/EndpointPerformanceCountersV2.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/EndpointPerformanceCountersV2.cs
index 930153e8e28..447f3c6cdb0 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/EndpointPerformanceCountersV2.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/EndpointPerformanceCountersV2.cs
@@ -154,6 +154,18 @@ namespace System.ServiceModel.Diagnostics
get { return this.endpointCounterSetInstance != null; }
}
+ // Immediately disposes and nulls the CounterSetInstance. This differs from Dispose because Dispose is "lazy" in that
+ // it holds weak references to the instances so we don't get corrupted state if the values are updated later. This
+ // method is used in situations when we need to delete the instance immediately and know the values won't be updated.
+ internal void DeleteInstance()
+ {
+ if (this.endpointCounterSetInstance != null)
+ {
+ this.endpointCounterSetInstance.Dispose();
+ this.endpointCounterSetInstance = null;
+ }
+ }
+
protected override void Dispose(bool disposing)
{
try
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/OperationPerformanceCountersBase.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/OperationPerformanceCountersBase.cs
index d6f84e46128..4e53f24b330 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/OperationPerformanceCountersBase.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/OperationPerformanceCountersBase.cs
@@ -72,9 +72,15 @@ namespace System.ServiceModel.Diagnostics
this.instanceName = CreateFriendlyInstanceName(service, contract, operationName, uri);
}
- static internal string CreateFriendlyInstanceName(string service, string contract, string operation, string uri)
+
+ private static string GetFullInstanceName(string service, string contract, string operation, string uri)
{
// instance name is: serviceName.interfaceName.operationName@uri
+ return String.Format("{0}.{1}.{2}@{3}", service, contract, operation, uri);
+ }
+
+ private static string GetShortInstanceName(string service, string contract, string operation, string uri)
+ {
int length = service.Length + contract.Length + operation.Length + uri.Length + 3;
if (length > maxCounterLength)
@@ -117,6 +123,32 @@ namespace System.ServiceModel.Diagnostics
return service + "." + contract + "." + operation + "@" + uri.Replace('/', '|');
}
+ internal static string CreateFriendlyInstanceName(string service, string contract, string operation, string uri)
+ {
+ string shortInstanceName = GetShortInstanceName(service, contract, operation, uri);
+ if (!ServiceModelAppSettings.EnsureUniquePerformanceCounterInstanceNames)
+ {
+ return shortInstanceName;
+ }
+
+ string fullInstanceName = GetFullInstanceName(service, contract, operation, uri);
+
+ return EnsureUniqueInstanceName(PerformanceCounterStrings.SERVICEMODELOPERATION.OperationPerfCounters, shortInstanceName, fullInstanceName);
+ }
+
+ internal static string GetFriendlyInstanceName(string service, string contract, string operation, string uri)
+ {
+ string shortInstanceName = GetShortInstanceName(service, contract, operation, uri);
+ if (!ServiceModelAppSettings.EnsureUniquePerformanceCounterInstanceNames)
+ {
+ return shortInstanceName;
+ }
+
+ string fullInstanceName = GetFullInstanceName(service, contract, operation, uri);
+
+ return GetUniqueInstanceName(PerformanceCounterStrings.SERVICEMODELOPERATION.OperationPerfCounters, shortInstanceName, fullInstanceName);
+ }
+
static truncOptions GetCompressionTasks(int totalLen, int serviceLen, int contractLen, int operationLen, int uriLen)
{
truncOptions bitmask = 0;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/OperationPerformanceCountersV2.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/OperationPerformanceCountersV2.cs
index 697a2e11631..0226391b1c2 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/OperationPerformanceCountersV2.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/OperationPerformanceCountersV2.cs
@@ -139,6 +139,18 @@ namespace System.ServiceModel.Diagnostics
get { return this.operationCounterSetInstance != null; }
}
+ // Immediately disposes and nulls the CounterSetInstance. This differs from Dispose because Dispose is "lazy" in that
+ // it holds weak references to the instances so we don't get corrupted state if the values are updated later. This
+ // method is used in situations when we need to delete the instance immediately and know the values won't be updated.
+ internal void DeleteInstance()
+ {
+ if (this.operationCounterSetInstance != null)
+ {
+ this.operationCounterSetInstance.Dispose();
+ this.operationCounterSetInstance = null;
+ }
+ }
+
protected override void Dispose(bool disposing)
{
try
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/PerformanceCountersBase.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/PerformanceCountersBase.cs
index b2988a8b220..bfe5aa06792 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/PerformanceCountersBase.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/PerformanceCountersBase.cs
@@ -33,11 +33,67 @@ namespace System.ServiceModel.Diagnostics
get;
}
+ private static string GetInstanceNameWithHash(string instanceName, string fullInstanceName)
+ {
+ return String.Format("{0}{1}", instanceName, StringUtil.GetNonRandomizedHashCode(fullInstanceName).ToString("X", CultureInfo.InvariantCulture));
+ }
+
+ protected static string EnsureUniqueInstanceName(string categoryName, string instanceName, string fullInstanceName)
+ {
+ if (String.IsNullOrEmpty(categoryName))
+ throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNullOrEmptyString("categoryName");
+ if (String.IsNullOrEmpty(instanceName))
+ throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNullOrEmptyString("instanceName");
+ if (String.IsNullOrEmpty(fullInstanceName))
+ throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNullOrEmptyString("fullInstanceName");
+
+ try
+ {
+ // If the instance name is already used, append a hash of the full name to it.
+ if (PerformanceCounterCategory.InstanceExists(instanceName, categoryName))
+ {
+ return GetInstanceNameWithHash(instanceName, fullInstanceName);
+ }
+ }
+ catch
+ {
+ // If an exception is thrown, return the instance name without modification.
+ }
+
+ return instanceName;
+ }
+
+ protected static string GetUniqueInstanceName(string categoryName, string instanceName, string fullInstanceName)
+ {
+ if (String.IsNullOrEmpty(categoryName))
+ throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNullOrEmptyString("categoryName");
+ if (String.IsNullOrEmpty(instanceName))
+ throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNullOrEmptyString("instanceName");
+ if (String.IsNullOrEmpty(fullInstanceName))
+ throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNullOrEmptyString("fullInstanceName");
+
+ try
+ {
+ // If the instance name with the hash appended exists, return it.
+ string nameWithHash = GetInstanceNameWithHash(instanceName, fullInstanceName);
+ if (PerformanceCounterCategory.InstanceExists(nameWithHash, categoryName))
+ {
+ return nameWithHash;
+ }
+ }
+ catch
+ {
+ // If an exception is thrown, return the instance name without modification.
+ }
+
+ return instanceName;
+ }
+
// remove count chars from string and add a 2 char hash code to beginning or end, as specified.
protected static string GetHashedString(string str, int startIndex, int count, bool hashAtEnd)
{
string returnVal = str.Remove(startIndex, count);
- string hash = ((uint)str.GetHashCode() % 99).ToString("00", CultureInfo.InvariantCulture);
+ string hash = ((uint)StringUtil.GetNonRandomizedHashCode(str) % 99).ToString("00", CultureInfo.InvariantCulture);
return hashAtEnd ? returnVal + hash : hash + returnVal;
}
@@ -59,9 +115,9 @@ namespace System.ServiceModel.Diagnostics
// A CounterSetInstance is not disposed immediately when a service, endpoint or operation perf counter is disposed. Because messages
// can be processed while a ServiceHost is being closed, and such messages can try to update perf counters data, resulting in AVs or
- // corruptions (see bug 249132 @ CSDMain). So instead of disposing a CounterSetInstance, we hold a WeakReference to it, until either
- // GC reclaims it or a new service/endpoint/operation perf counter is started with the same name (and re-uses the CounterSetInstance).
- // The CounterSetInstance finalizer will free up the perf counters memory, so we don't have a leak.
+ // corruptions (see
+
+
protected class CounterSetInstanceCache
{
// instance name -> WeakReference of CounterSetInstance
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/PerformanceCountersFactory.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/PerformanceCountersFactory.cs
index 5f540b16b9f..d5dbfcb93e7 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/PerformanceCountersFactory.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/PerformanceCountersFactory.cs
@@ -9,6 +9,8 @@ namespace System.ServiceModel.Diagnostics
static class PerformanceCountersFactory
{
+ private static bool categoriesExist = false;
+
static internal ServicePerformanceCountersBase CreateServiceCounters(ServiceHostBase serviceHost)
{
if (!CheckPermissions())
@@ -20,6 +22,7 @@ namespace System.ServiceModel.Diagnostics
{
try
{
+ EnsureCategoriesExistIfNeeded();
var counters = new ServicePerformanceCountersV2(serviceHost);
// Workaround Sys.Diag.PerformanceData problem:
// Ensure that all three categories are initialized so other processes can still
@@ -60,6 +63,7 @@ namespace System.ServiceModel.Diagnostics
{
try
{
+ EnsureCategoriesExistIfNeeded();
return new EndpointPerformanceCountersV2(service, contract, uri);
}
#pragma warning suppress 56500 // covered by FxCOP
@@ -94,6 +98,7 @@ namespace System.ServiceModel.Diagnostics
{
try
{
+ EnsureCategoriesExistIfNeeded();
return new OperationPerformanceCountersV2(service, contract, operationName, uri);
}
#pragma warning suppress 56500 // covered by FxCOP
@@ -139,5 +144,81 @@ namespace System.ServiceModel.Diagnostics
return false;
}
+
+ // If EnsureUniquePerformanceCounterInstanceName is enabled, PerformanceCountersBase.cs will be checking if instances
+ // exist in each of these categories, so we need to ensure the categories all exist. This works around System.Diagnostics
+ // calls using PerformanceCounterLib to cache which categories do/don't exist.
+ private static void EnsureCategoriesExistIfNeeded()
+ {
+ if (categoriesExist || !ServiceModelAppSettings.EnsureUniquePerformanceCounterInstanceNames)
+ {
+ return;
+ }
+
+ OperationPerformanceCountersV2 operationCounter = null;
+ EndpointPerformanceCountersV2 endpointCounter = null;
+ ServicePerformanceCountersV2 serviceCounter = null;
+
+ try
+ {
+ if (PerformanceCounterCategory.Exists(PerformanceCounterStrings.SERVICEMODELOPERATION.OperationPerfCounters) &&
+ PerformanceCounterCategory.Exists(PerformanceCounterStrings.SERVICEMODELENDPOINT.EndpointPerfCounters) &&
+ PerformanceCounterCategory.Exists(PerformanceCounterStrings.SERVICEMODELSERVICE.ServicePerfCounters))
+ {
+ categoriesExist = true;
+ return;
+ }
+
+ // Categories do not exist. Update PerformanceCounterLib's cache using dummy counters.
+ const string dummyValue = "_WCF_Admin";
+
+
+ // Older operating systems (such as windows 7) report the category as not existing unless a counter instance
+ // has been created in it. Create one instance in each of the categories to ensure they will exist in the cache
+ // that System.Diagnostics calls use.
+ ServiceHost dummyServiceHost = new ServiceHost(typeof(object), new Uri("http://" + dummyValue));
+ operationCounter = new OperationPerformanceCountersV2(dummyValue, dummyValue, dummyValue, dummyValue);
+ endpointCounter = new EndpointPerformanceCountersV2(dummyValue, dummyValue, dummyValue);
+ serviceCounter = new ServicePerformanceCountersV2(dummyServiceHost);
+
+ // Throw away cached categories, then read from the categories to cause the cache to be repopulated.
+ PerformanceCounter.CloseSharedResources();
+ PerformanceCounterCategory.Exists(dummyValue);
+ }
+ catch (UnauthorizedAccessException)
+ {
+ // Don't have permission to read performance counters. Trace a warning.
+ if (DiagnosticUtility.ShouldTraceWarning)
+ {
+ TraceUtility.TraceEvent(TraceEventType.Warning,
+ TraceCode.PerformanceCountersFailedForService,
+ SR.GetString(SR.EnsureCategoriesExistFailedPermission));
+ }
+ }
+ catch
+ {
+ // Failed to ensure all of the categories exist. Catch the exception and try to create the counter anyway.
+ }
+ finally
+ {
+ // Delete the dummy counters, we don't need them anymore.
+ if (operationCounter != null)
+ {
+ operationCounter.DeleteInstance();
+ }
+
+ if (endpointCounter != null)
+ {
+ endpointCounter.DeleteInstance();
+ }
+
+ if (serviceCounter != null)
+ {
+ serviceCounter.DeleteInstance();
+ }
+
+ categoriesExist = true;
+ }
+ }
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/ServicePerformanceCountersBase.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/ServicePerformanceCountersBase.cs
index 547633b7534..0443a521d52 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/ServicePerformanceCountersBase.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/ServicePerformanceCountersBase.cs
@@ -143,16 +143,31 @@ namespace System.ServiceModel.Diagnostics
get { return (int)PerfCounters.TotalCounters; }
}
- static internal string CreateFriendlyInstanceName(ServiceHostBase serviceHost)
+ private static string GetServiceUri(ServiceHostBase serviceHost, ServiceInfo serviceInfo)
{
- // instance name is: serviceName@uri
- ServiceInfo serviceInfo = new ServiceInfo(serviceHost);
- string serviceName = serviceInfo.ServiceName;
string uri;
if (!TryGetFullVirtualPath(serviceHost, out uri))
{
uri = serviceInfo.FirstAddress;
}
+ return uri;
+ }
+
+ private static string GetFullInstanceName(ServiceHostBase serviceHost)
+ {
+ // instance name is: serviceName@uri
+ ServiceInfo serviceInfo = new ServiceInfo(serviceHost);
+ string serviceName = serviceInfo.ServiceName;
+ string uri = GetServiceUri(serviceHost, serviceInfo);
+ return String.Format("{0}@{1}", serviceName, uri);
+ }
+
+ private static string GetShortInstanceName(ServiceHostBase serviceHost)
+ {
+ ServiceInfo serviceInfo = new ServiceInfo(serviceHost);
+ string serviceName = serviceInfo.ServiceName;
+ string uri = GetServiceUri(serviceHost, serviceInfo);
+
int length = serviceName.Length + uri.Length + 2;
if (length > maxCounterLength)
@@ -181,6 +196,32 @@ namespace System.ServiceModel.Diagnostics
return serviceName + "@" + uri.Replace('/', '|');
}
+ internal static string CreateFriendlyInstanceName(ServiceHostBase serviceHost)
+ {
+ string shortInstanceName = GetShortInstanceName(serviceHost);
+ if (!ServiceModelAppSettings.EnsureUniquePerformanceCounterInstanceNames)
+ {
+ return shortInstanceName;
+ }
+
+ string fullInstanceName = GetFullInstanceName(serviceHost);
+
+ return EnsureUniqueInstanceName(PerformanceCounterStrings.SERVICEMODELSERVICE.ServicePerfCounters, shortInstanceName, fullInstanceName);
+ }
+
+ internal static string GetFriendlyInstanceName(ServiceHostBase serviceHost)
+ {
+ string shortInstanceName = GetShortInstanceName(serviceHost);
+ if (!ServiceModelAppSettings.EnsureUniquePerformanceCounterInstanceNames)
+ {
+ return shortInstanceName;
+ }
+
+ string fullInstanceName = GetFullInstanceName(serviceHost);
+
+ return GetUniqueInstanceName(PerformanceCounterStrings.SERVICEMODELSERVICE.ServicePerfCounters, shortInstanceName, fullInstanceName);
+ }
+
static bool TryGetFullVirtualPath(ServiceHostBase serviceHost, out string uri)
{
VirtualPathExtension pathExtension = serviceHost.Extensions.Find<VirtualPathExtension>();
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/ServicePerformanceCountersV2.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/ServicePerformanceCountersV2.cs
index 9e53c72fe2a..b037f388f47 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/ServicePerformanceCountersV2.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Diagnostics/ServicePerformanceCountersV2.cs
@@ -232,6 +232,18 @@ using System.ServiceModel.Administration;
get { return this.serviceCounterSetInstance != null; }
}
+ // Immediately disposes and nulls the CounterSetInstance. This differs from Dispose because Dispose is "lazy" in that
+ // it holds weak references to the instances so we don't get corrupted state if the values are updated later. This
+ // method is used in situations when we need to delete the instance immediately and know the values won't be updated.
+ internal void DeleteInstance()
+ {
+ if (this.serviceCounterSetInstance != null)
+ {
+ this.serviceCounterSetInstance.Dispose();
+ this.serviceCounterSetInstance = null;
+ }
+ }
+
protected override void Dispose(bool disposing)
{
try
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ActionMessageFilterTable.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ActionMessageFilterTable.cs
index 08915244300..9f4d8c9c0bc 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ActionMessageFilterTable.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ActionMessageFilterTable.cs
@@ -111,7 +111,7 @@ namespace System.ServiceModel.Dispatcher
this.filters.Add(filter, data);
List<MessageFilter> filters;
-#pragma warning suppress 56506 // [....], Actions will never be null
+#pragma warning suppress 56506 // Microsoft, Actions will never be null
if (filter.Actions.Count == 0)
{
this.always.Add(filter);
@@ -426,7 +426,7 @@ namespace System.ServiceModel.Dispatcher
if (this.filters.Remove(filter))
{
-#pragma warning suppress 56506 // [....], ActionMessageFilter.Actions can never be null
+#pragma warning suppress 56506 // Microsoft, ActionMessageFilter.Actions can never be null
if (filter.Actions.Count == 0)
{
this.always.Remove(filter);
@@ -436,9 +436,9 @@ namespace System.ServiceModel.Dispatcher
List<MessageFilter> filters;
for (int i = 0; i < filter.Actions.Count; ++i)
{
-#pragma warning suppress 56506 // [....], PreSharp generates a false error here
+#pragma warning suppress 56506 // Microsoft, PreSharp generates a false error here
filters = this.actions[filter.Actions[i]];
-#pragma warning suppress 56506 // [....], filters can never be null
+#pragma warning suppress 56506 // Microsoft, filters can never be null
if (filters.Count == 1)
{
this.actions.Remove(filter.Actions[i]);
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/DuplexChannelBinder.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/DuplexChannelBinder.cs
index 8a9955bd599..bad9a746f7b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/DuplexChannelBinder.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/DuplexChannelBinder.cs
@@ -537,7 +537,7 @@ namespace System.ServiceModel.Dispatcher
}
}
- // ASSUMPTION: ([....]) caller holds lock (this.mutex)
+ // ASSUMPTION: (Microsoft) caller holds lock (this.mutex)
void RequestStarting(Message message, IDuplexRequest request)
{
if (request != null)
@@ -552,7 +552,7 @@ namespace System.ServiceModel.Dispatcher
}
- // ASSUMPTION: ([....]) caller holds lock (this.mutex)
+ // ASSUMPTION: (Microsoft) caller holds lock (this.mutex)
void RequestCompleting(IDuplexRequest request)
{
this.pending--;
@@ -1473,7 +1473,7 @@ namespace System.ServiceModel.Dispatcher
public void EndClose(IAsyncResult result)
{
- // don't need to lock here since BeginClose is the [....]-point
+ // don't need to lock here since BeginClose is the sync-point
if (this.closeState.TryUserClose())
{
this.innerChannel.EndClose(result);
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/EndpointAddressMessageFilter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/EndpointAddressMessageFilter.cs
index c61e56fb947..049a1b78495 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/EndpointAddressMessageFilter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/EndpointAddressMessageFilter.cs
@@ -92,7 +92,7 @@ namespace System.ServiceModel.Dispatcher
}
// To
-#pragma warning suppress 56506 // [....], Message.Headers can never be null
+#pragma warning suppress 56506 // Microsoft, Message.Headers can never be null
Uri to = message.Headers.To;
Uri actingAs = this.address.Uri;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/EndpointAddressMessageFilterTable.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/EndpointAddressMessageFilterTable.cs
index b3d707904c1..7f5e509b82b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/EndpointAddressMessageFilterTable.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/EndpointAddressMessageFilterTable.cs
@@ -153,7 +153,7 @@ namespace System.ServiceModel.Dispatcher
this.candidates.Add(filter, can);
CandidateSet cset;
-#pragma warning suppress 56506 // [....], EndpointAddressMessageFilter.Address can never be null
+#pragma warning suppress 56506 // Microsoft, EndpointAddressMessageFilter.Address can never be null
Uri soapToAddress = filter.Address.Uri;
if (filter.IncludeHostNameInComparison)
{
@@ -181,7 +181,7 @@ namespace System.ServiceModel.Dispatcher
// Update the QName ref count
QName qname;
int cnt;
-#pragma warning suppress 56506 // [....], EndpointAddressMessageFilter.Address can never be null
+#pragma warning suppress 56506 // Microsoft, EndpointAddressMessageFilter.Address can never be null
for (int i = 0; i < address.Headers.Count; ++i)
{
AddressHeader parameter = address.Headers[i];
@@ -719,7 +719,7 @@ namespace System.ServiceModel.Dispatcher
}
Candidate can = this.candidates[filter];
-#pragma warning suppress 56506 // [....], EndpointAddressMessageFilter.Address can never be null
+#pragma warning suppress 56506 // Microsoft, EndpointAddressMessageFilter.Address can never be null
Uri soapToAddress = filter.Address.Uri;
CandidateSet cset = null;
@@ -761,7 +761,7 @@ namespace System.ServiceModel.Dispatcher
{
// Adjust QName counts
QName qname;
-#pragma warning suppress 56506 // [....], EndpointAddress.Headers can never be null
+#pragma warning suppress 56506 // Microsoft, EndpointAddress.Headers can never be null
for (int i = 0; i < address.Headers.Count; ++i)
{
AddressHeader parameter = address.Headers[i];
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ErrorHandlingAcceptor.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ErrorHandlingAcceptor.cs
index 87f9088a8ad..853a5f7386b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ErrorHandlingAcceptor.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ErrorHandlingAcceptor.cs
@@ -56,9 +56,9 @@ namespace System.ServiceModel.Dispatcher
{
if ((this.dispatcher == null) || !this.dispatcher.HandleError(e))
{
- // We only stop if the listener faults. It is a bug
- // if the listener is in an invalid state and does not
- // fault. So there are no cases today where this aborts.
+ // We only stop if the listener faults. It is a
+
+
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ImmutableDispatchRuntime.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ImmutableDispatchRuntime.cs
index cb52945280c..60d24111d6a 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ImmutableDispatchRuntime.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ImmutableDispatchRuntime.cs
@@ -1030,7 +1030,7 @@ namespace System.ServiceModel.Dispatcher
void ProcessMessage31(ref MessageRpc rpc)
{
- rpc.NextProcessor = this.ProcessMessage4;
+ rpc.NextProcessor = this.processMessage4;
if (this.transaction != null)
{
@@ -1144,7 +1144,7 @@ namespace System.ServiceModel.Dispatcher
{
if (!rpc.Operation.IsSynchronous)
{
- // If async call completes in [....], it tells us through the gate below
+ // If async call completes in sync, it tells us through the gate below
rpc.PrepareInvokeContinueGate();
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/InputChannelBinder.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/InputChannelBinder.cs
index 9a7e2012f19..b27cc867c80 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/InputChannelBinder.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/InputChannelBinder.cs
@@ -50,7 +50,7 @@ namespace System.ServiceModel.Dispatcher
{
get
{
-#pragma warning suppress 56503 // [....], the property is really not implemented, cannot lie, API not public
+#pragma warning suppress 56503 // Microsoft, the property is really not implemented, cannot lie, API not public
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/MessageFilterTable.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/MessageFilterTable.cs
index 3f1dd3be148..ebe6801b630 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/MessageFilterTable.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/MessageFilterTable.cs
@@ -153,7 +153,7 @@ namespace System.ServiceModel.Dispatcher
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("filter", SR.GetString(SR.FilterExists));
}
-#pragma warning suppress 56506 // [....], PreSharp generates a false warning here
+#pragma warning suppress 56506 // Microsoft, PreSharp generates a false warning here
Type filterType = filter.GetType();
Type tableType = null;
IMessageFilterTable<TFilterData> table = null;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/OperationInvokerBehavior.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/OperationInvokerBehavior.cs
index 2bfeafdac3c..2bcb3ceaede 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/OperationInvokerBehavior.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/OperationInvokerBehavior.cs
@@ -41,7 +41,7 @@ namespace System.ServiceModel.Dispatcher
{
if (description.BeginMethod != null)
{
- // both [....] and async methods are present on the contract, check the preference
+ // both sync and async methods are present on the contract, check the preference
OperationBehaviorAttribute operationBehaviorAttribue = description.Behaviors.Find<OperationBehaviorAttribute>();
if ((operationBehaviorAttribue != null) && operationBehaviorAttribue.PreferAsyncInvocation)
{
@@ -54,7 +54,7 @@ namespace System.ServiceModel.Dispatcher
}
else
{
- // only [....] method is present on the contract
+ // only sync method is present on the contract
dispatch.Invoker = new SyncMethodInvoker(description.SyncMethod);
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/OutputChannelBinder.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/OutputChannelBinder.cs
index 4c94fe775fe..e4a25a96a6a 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/OutputChannelBinder.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/OutputChannelBinder.cs
@@ -43,7 +43,7 @@ namespace System.ServiceModel.Dispatcher
{
get
{
-#pragma warning suppress 56503 // [....], the property is really not implemented, cannot lie, API not public
+#pragma warning suppress 56503 // Microsoft, the property is really not implemented, cannot lie, API not public
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/PrefixEndpointAddressMessageFilter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/PrefixEndpointAddressMessageFilter.cs
index 53855e35933..91f21729a23 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/PrefixEndpointAddressMessageFilter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/PrefixEndpointAddressMessageFilter.cs
@@ -85,7 +85,7 @@ namespace System.ServiceModel.Dispatcher
}
// To
-#pragma warning suppress 56506 // [....], Message.Headers can never be null
+#pragma warning suppress 56506 // Microsoft, Message.Headers can never be null
Uri to = message.Headers.To;
object o;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/PrefixEndpointAddressMessageFilterTable.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/PrefixEndpointAddressMessageFilterTable.cs
index d360c4ba441..5b8d787e79f 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/PrefixEndpointAddressMessageFilterTable.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/PrefixEndpointAddressMessageFilterTable.cs
@@ -59,7 +59,7 @@ namespace System.ServiceModel.Dispatcher
Candidate can = new Candidate(filter, data, mask, filter.HeaderLookup);
this.candidates.Add(filter, can);
-#pragma warning suppress 56506 // [....], PrefixEndpointAddressMessageFilter.Address can never be null
+#pragma warning suppress 56506 // Microsoft, PrefixEndpointAddressMessageFilter.Address can never be null
Uri soapToAddress = filter.Address.Uri;
CandidateSet cset;
@@ -134,7 +134,7 @@ namespace System.ServiceModel.Dispatcher
}
Candidate can = this.candidates[filter];
-#pragma warning suppress 56506 // [....], PrefixEndpointAddressMessageFilter.Address can never be null
+#pragma warning suppress 56506 // Microsoft, PrefixEndpointAddressMessageFilter.Address can never be null
Uri soapToAddress = filter.Address.Uri;
CandidateSet cset = null;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/PrimitiveOperationFormatter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/PrimitiveOperationFormatter.cs
index 7387258171a..beddbbcfcfb 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/PrimitiveOperationFormatter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/PrimitiveOperationFormatter.cs
@@ -46,7 +46,7 @@ namespace System.ServiceModel.Dispatcher
OperationFormatter.Validate(description, isRpc, false/*isEncoded*/);
this.operation = description;
-#pragma warning suppress 56506 // [....], OperationDescription.Messages never be null
+#pragma warning suppress 56506 // Microsoft, OperationDescription.Messages never be null
this.requestMessage = description.Messages[0];
if (description.Messages.Count == 2)
this.responseMessage = description.Messages[1];
@@ -290,7 +290,7 @@ namespace System.ServiceModel.Dispatcher
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("description");
OperationDescription operation = description;
-#pragma warning suppress 56506 // [....], OperationDescription.Messages never be null
+#pragma warning suppress 56506 // Microsoft, OperationDescription.Messages never be null
MessageDescription requestMessage = description.Messages[0];
MessageDescription responseMessage = null;
if (description.Messages.Count == 2)
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryFunctions.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryFunctions.cs
index e3335d23660..046eea89a08 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryFunctions.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryFunctions.cs
@@ -55,7 +55,7 @@ namespace System.ServiceModel.Dispatcher
List<NodeSequenceIterator> iterList;
- // REFACTOR, [....], make this a function on QueryValueModel
+ // REFACTOR, Microsoft, make this a function on QueryValueModel
internal XsltFunctionCallOpcode(XsltContext context, IXsltContextFunction function, int argCount)
: base(OpcodeID.XsltFunction)
{
@@ -138,7 +138,7 @@ namespace System.ServiceModel.Dispatcher
}
else
{
- // PERF, [....], see if we can cache these arrays to avoid allocations
+ // PERF, Microsoft, see if we can cache these arrays to avoid allocations
object[] xsltArgs = new object[this.argCount];
int iterationCount = context.TopArg.Count;
for (int iteration = 0; iteration < iterationCount; ++iteration)
@@ -1210,7 +1210,7 @@ namespace System.ServiceModel.Dispatcher
StackFrame argKeys = context.SecondArg;
StackFrame argValues = context[2];
- // PERF, [....], this is really slow.
+ // PERF, Microsoft, this is really slow.
StringBuilder builder = new StringBuilder();
while (argSource.basePtr <= argSource.endPtr)
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryMatcher.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryMatcher.cs
index d34430b8733..6fec13b5cb6 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryMatcher.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryMatcher.cs
@@ -337,8 +337,8 @@ namespace System.ServiceModel.Dispatcher
// Fx will bind prefixes and functions here.
if (namespaces != null)
{
- // There's a bug in System.Xml.XPath. If we pass an XsltContext to SetContext it won't throw if there's
- // an undefined prefix.
+ // There's a
+
if (namespaces is XsltContext)
{
// Lex the xpath to find all prefixes used
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryNode.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryNode.cs
index 0ee7900aaca..f56c2737a5e 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryNode.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryNode.cs
@@ -140,7 +140,7 @@ namespace System.ServiceModel.Dispatcher
NodesetLast = 0x01,
}
- // PERF, [....], Remove when generic sort works
+ // PERF, Microsoft, Remove when generic sort works
// Used to sort in document order
#if NO
internal class NodeSequenceItemObjectComparer : IComparer
@@ -908,7 +908,7 @@ namespace System.ServiceModel.Dispatcher
{
this.Merge(false);
- // PERF, [....], make this work
+ // PERF, Microsoft, make this work
//Array.Sort<NodeSequenceItem>(this.items, 0, this.count, NodeSequence.Comparer);
Array.Sort(this.items, 0, this.count, NodeSequence.ObjectComparer);
@@ -974,7 +974,7 @@ namespace System.ServiceModel.Dispatcher
return seq;
/*
- // PERF, [....], I think we can do the merge ourselves and avoid the sort.
+ // PERF, Microsoft, I think we can do the merge ourselves and avoid the sort.
// Need to verify that the sequences are always in document order.
for(int i = 0; i < this.count; ++i)
{
@@ -1055,13 +1055,13 @@ namespace System.ServiceModel.Dispatcher
{
if (this.index == 0)
{
-#pragma warning suppress 56503 // [....], postponing the public change
+#pragma warning suppress 56503 // Microsoft, postponing the public change
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new QueryProcessingException(QueryProcessingError.Unexpected, SR.GetString(SR.QueryContextNotSupportedInSequences)));
}
if (this.index > this.data.seq.Count)
{
-#pragma warning suppress 56503 // [....], postponing the public change
+#pragma warning suppress 56503 // Microsoft, postponing the public change
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.QueryAfterNodes)));
}
//
@@ -1156,13 +1156,13 @@ namespace System.ServiceModel.Dispatcher
{
if (this.iter.CurrentPosition == 0)
{
-#pragma warning suppress 56503 // [....], postponing the public change
+#pragma warning suppress 56503 // Microsoft, postponing the public change
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.QueryBeforeNodes)));
}
if (this.iter.CurrentPosition > this.iter.Count)
{
-#pragma warning suppress 56503 // [....], postponing the public change
+#pragma warning suppress 56503 // Microsoft, postponing the public change
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.QueryAfterNodes)));
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryProcessor.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryProcessor.cs
index 54818a997be..6df5f8ce144 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryProcessor.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryProcessor.cs
@@ -457,7 +457,7 @@ namespace System.ServiceModel.Dispatcher
this.matcher = matcher;
this.flags = QueryProcessingFlags.Match;
- // PERF, [....], see if we can just let these to their default init
+ // PERF, Microsoft, see if we can just let these to their default init
this.messageAction = null;
//this.messageAddress = null;
//this.messageVia = null;
@@ -510,7 +510,7 @@ namespace System.ServiceModel.Dispatcher
}
else
{
-#pragma warning suppress 56503 // [....], property is more readable for this
+#pragma warning suppress 56503 // Microsoft, property is more readable for this
throw DiagnosticUtility.ExceptionUtility.ThrowHelperCritical(new QueryProcessingException(QueryProcessingError.Unexpected));
}
this.counter = this.contextNode as INodeCounter;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QuerySelectOp.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QuerySelectOp.cs
index e835c3651fd..133eb048b5e 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QuerySelectOp.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QuerySelectOp.cs
@@ -44,7 +44,7 @@ namespace System.ServiceModel.Dispatcher
{
get
{
- // PERF, [....], weaken guard?
+ // PERF, Microsoft, weaken guard?
return QueryAxisType.Self == this.axis.Type || QueryAxisType.Child == this.axis.Type;
//return ((QueryAxisType.Self == this.axis.Type) || ((this.axis.Type != QueryAxisType.DescendantOrSelf || this.axis.Type != QueryAxisType.Descendant)&& 0 != ((QueryNodeType.Element | QueryNodeType.Root) & this.type)));
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QuerySubExprEliminator.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QuerySubExprEliminator.cs
index 790a61eb0e0..40a6970b464 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QuerySubExprEliminator.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QuerySubExprEliminator.cs
@@ -278,8 +278,8 @@ namespace System.ServiceModel.Dispatcher
internal class SubExprHeader : SubExpr
{
- // WS, [....], Can probably combine these
- // WS, [....], Make this data structure less ugly (if possible)
+ // WS, Microsoft, Can probably combine these
+ // WS, Microsoft, Make this data structure less ugly (if possible)
Dictionary<string, Dictionary<string, List<SubExpr>>> nameLookup;
Dictionary<SubExpr, MyInt> indexLookup;
@@ -329,7 +329,7 @@ namespace System.ServiceModel.Dispatcher
context.SaveVariable(this.var, context.Processor.ElapsedCount(marker));
}
- // WS, [....], see if we can put this array in the processor to save
+ // WS, Microsoft, see if we can put this array in the processor to save
// an allocation. Perhaps we can use the variables slot we're going to fill
NodeSequence[] childSequences = new NodeSequence[this.children.Count];
NodeSequence seq = context.Sequences[context.TopSequenceArg.basePtr].Sequence;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryUtil.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryUtil.cs
index 6efce98ed0c..6327b5d0d53 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryUtil.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/QueryUtil.cs
@@ -657,7 +657,7 @@ namespace System.ServiceModel.Dispatcher
}
else
{
- // PERF, [....], can this be made more efficient? Does it need to be?
+ // PERF, Microsoft, can this be made more efficient? Does it need to be?
Remove(old);
Insert(replace);
}
@@ -704,7 +704,7 @@ namespace System.ServiceModel.Dispatcher
}
else if (this.buffer.Length == this.size)
{
- // PERF, [....], how should we choose a new size?
+ // PERF, Microsoft, how should we choose a new size?
T[] tmp = new T[this.size + 1];
if (index == 0)
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ReplyChannelBinder.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ReplyChannelBinder.cs
index fc2e8ea3f9f..3c15855a7dd 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ReplyChannelBinder.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/ReplyChannelBinder.cs
@@ -50,7 +50,7 @@ namespace System.ServiceModel.Dispatcher
{
get
{
-#pragma warning suppress 56503 // [....], the property is really not implemented, cannot lie, API not public
+#pragma warning suppress 56503 // Microsoft, the property is really not implemented, cannot lie, API not public
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/SecurityImpersonationBehavior.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/SecurityImpersonationBehavior.cs
index d25cc14579e..7832a4aa308 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/SecurityImpersonationBehavior.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/SecurityImpersonationBehavior.cs
@@ -486,7 +486,7 @@ namespace System.ServiceModel.Dispatcher
{
public IDisposable Impersonate()
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // The LastWin32Error can be ignored here.
IntPtr threadHandle = SafeNativeMethods.GetCurrentThread();
SafeCloseHandle tokenHandle;
@@ -527,12 +527,12 @@ namespace System.ServiceModel.Dispatcher
void Undo()
{
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
+ // PreSharp
#pragma warning suppress 56523 // The LastWin32Error can be ignored here.
Fx.Assert(this.threadHandle == SafeNativeMethods.GetCurrentThread(), "");
// We are in the Dispose method. If a failure occurs we just have to ignore it.
- // PreSharp Bug: Call 'Marshal.GetLastWin32Error' or 'Marshal.GetHRForLastWin32Error' before any other interop call.
- // #pragma warning suppress 56523 // The LastWin32Error can be ignored here.
+ // PreSharp
+
if (!SafeNativeMethods.SetCurrentThreadToken(IntPtr.Zero, this.tokenHandle))
{
int error = Marshal.GetLastWin32Error();
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/SecurityValidationBehavior.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/SecurityValidationBehavior.cs
index 0d0cb0f2c97..82a56eaf5fe 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/SecurityValidationBehavior.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/SecurityValidationBehavior.cs
@@ -235,7 +235,7 @@ namespace System.ServiceModel.Dispatcher
if (sbe is SymmetricSecurityBindingElement || sbe is AsymmetricSecurityBindingElement)
{
// check to see if we are streaming
- // ([....] 53690): need to have a general way get the transfer Mode from the binding
+ // (Microsoft 53690): need to have a general way get the transfer Mode from the binding
// TransferMode transferMode = binding.GetProperty<TransferMode>(new BindingParameterCollection());
if (GetTransferMode(binding) != TransferMode.Buffered)
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/SeekableMessageNavigator.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/SeekableMessageNavigator.cs
index 9066da02bd9..7e37baf4ea9 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/SeekableMessageNavigator.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/SeekableMessageNavigator.cs
@@ -138,7 +138,7 @@ namespace System.ServiceModel.Dispatcher
// The base uri of the element
// This is usually associated with the URI of the original data's location
- // WS, [....], look into what readers from messages surface. If it's always null, we can save
+ // WS, Microsoft, look into what readers from messages surface. If it's always null, we can save
// some memory
public override string BaseURI
{
@@ -183,7 +183,7 @@ namespace System.ServiceModel.Dispatcher
while (n != p.elem)
{
- // PERF, [....], we might be able to get rid of this check by tweaking the position
+ // PERF, Microsoft, we might be able to get rid of this check by tweaking the position
// validator
if (n == NullIndex)
{
@@ -779,7 +779,7 @@ namespace System.ServiceModel.Dispatcher
// Move the navigator to the first child of the current node.
public override bool MoveToFirstChild()
{
- // PERF, [....], do we need this check? The null check may be enough
+ // PERF, Microsoft, do we need this check? The null check may be enough
// Only valid for the root or an element node
if (this.location == RootIndex || this.dom.nodes[this.location].type == XPathNodeType.Element)
{
@@ -894,7 +894,7 @@ namespace System.ServiceModel.Dispatcher
n = this.dom.nodes[n].nextSibling;
}
- // PERF, [....], can we just clear?
+ // PERF, Microsoft, can we just clear?
// We didn't find it, so restore the namespace stack
for (int i = 0; i < nsCount; ++i)
{
@@ -1483,7 +1483,7 @@ namespace System.ServiceModel.Dispatcher
// Get the index of the next namespace that matches the scope
// This function populates the namespace stack too
- // PERF, [....], see if we can have this function set the current location too
+ // PERF, Microsoft, see if we can have this function set the current location too
int FindNamespace(int parent, int ns, XPathNamespaceScope scope)
{
bool done = false;
@@ -1932,7 +1932,7 @@ namespace System.ServiceModel.Dispatcher
int n = NullIndex;
do
{
- // PERF, [....], reorder cases so more common ones are earlier
+ // PERF, Microsoft, reorder cases so more common ones are earlier
switch (reader.NodeType)
{
case XmlNodeType.Element:
@@ -2118,7 +2118,7 @@ namespace System.ServiceModel.Dispatcher
}
}
- // PERF, [....], find a better way to implement and have internal
+ // PERF, Microsoft, find a better way to implement and have internal
void INodeCounter.Increase()
{
Increase();
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/StreamFormatter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/StreamFormatter.cs
index a11a8f82efa..37c3276d24f 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/StreamFormatter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/StreamFormatter.cs
@@ -332,7 +332,7 @@ namespace System.ServiceModel.Dispatcher
{
get
{
-#pragma warning suppress 56503 // [....], not a seekable stream, it is ok to throw NotSupported in this case
+#pragma warning suppress 56503 // Microsoft, not a seekable stream, it is ok to throw NotSupported in this case
throw TraceUtility.ThrowHelperError(new NotSupportedException(), this.message);
}
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/XPathMessageContext.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/XPathMessageContext.cs
index 1222eb30b45..9a9aee04f01 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/XPathMessageContext.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Dispatcher/XPathMessageContext.cs
@@ -162,7 +162,7 @@ namespace System.ServiceModel.Dispatcher
if (argTypes == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("argTypes");
- // PERF, [....], factor ns if all same
+ // PERF, Microsoft, factor ns if all same
string ns = LookupNamespace(prefix);
for (int i = 0; i < functions.Length; ++i)
{
@@ -1254,7 +1254,7 @@ namespace System.ServiceModel.Dispatcher
{
do
{
- // PERF, [....], this will be faster if I cache the envelope namespace to do the
+ // PERF, Microsoft, this will be faster if I cache the envelope namespace to do the
// actor lookup by hand
long pos = nav.CurrentPosition;
string navActor = XPathMessageFunctionActor.ExtractFromNavigator(nav);
@@ -1283,9 +1283,9 @@ namespace System.ServiceModel.Dispatcher
return docContext.Evaluate(expr);
#if NO
- // PERF, [....], I drafted this implementation before we found out that a bug in the Fx implementation would
- // prevent us from constructing an XPathNodeIterator that they would accept. I'm keeping it
- // around in the hope that I will be able to use it by M5.4. If not, it will be deleted.
+ // PERF, Microsoft, I drafted this implementation before we found out that a
+
+
XPathNavigator basicNav = docContext.Clone();
SeekableXPathNavigator nav = basicNav as SeekableXPathNavigator;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/DnsEndpointIdentity.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/DnsEndpointIdentity.cs
index 2b2991a1473..4ce51214c0e 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/DnsEndpointIdentity.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/DnsEndpointIdentity.cs
@@ -25,7 +25,7 @@ namespace System.ServiceModel
if (identity == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("identity");
- // PreSharp Bug: Parameter 'identity.ResourceType' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506 // Claim.ClaimType will never return null
if (!identity.ClaimType.Equals(ClaimTypes.Dns))
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.UnrecognizedClaimTypeForIdentity, identity.ClaimType, ClaimTypes.Dns));
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/EndpointAddress.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/EndpointAddress.cs
index 26583d1528c..dd22acb146b 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/EndpointAddress.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/EndpointAddress.cs
@@ -342,7 +342,7 @@ namespace System.ServiceModel
// NOTE: UserInfo, Query, and Fragment are ignored when comparing Uris as addresses
// this is the WCF logic for comparing Uris that represent addresses
- // this method must be kept in [....] with UriGetHashCode
+ // this method must be kept in sync with UriGetHashCode
internal static bool UriEquals(Uri u1, Uri u2, bool ignoreCase, bool includeHostInComparison)
{
return UriEquals(u1, u2, ignoreCase, includeHostInComparison, true);
@@ -393,7 +393,7 @@ namespace System.ServiceModel
return string.Compare(u1Path, 0, u2Path, 0, u1Len, ignoreCase ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal) == 0;
}
- // this method must be kept in [....] with UriEquals
+ // this method must be kept in sync with UriEquals
internal static int UriGetHashCode(Uri uri, bool includeHostInComparison)
{
return UriGetHashCode(uri, includeHostInComparison, true);
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/EndpointIdentity.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/EndpointIdentity.cs
index 59cbd6c2569..c8f69446d0f 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/EndpointIdentity.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/EndpointIdentity.cs
@@ -69,7 +69,7 @@ namespace System.ServiceModel
if (identity == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("identity");
- // PreSharp Bug: Parameter 'identity.ClaimType' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506 // Claim.ClaimType will never return null
if (identity.ClaimType.Equals(ClaimTypes.Dns))
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/EndpointTrait.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/EndpointTrait.cs
index a1805b2d606..cc42d3bda8d 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/EndpointTrait.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/EndpointTrait.cs
@@ -9,4 +9,4 @@ namespace System.ServiceModel
{
public abstract ChannelFactory<TChannel> CreateChannelFactory();
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/FaultReason.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/FaultReason.cs
index cbac59f62a0..409b9c82445 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/FaultReason.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/FaultReason.cs
@@ -72,7 +72,7 @@ namespace System.ServiceModel
return GetMatchingTranslation(CultureInfo.CurrentCulture);
}
- // [....], This function should always return a translation so that a fault can be surfaced.
+ // Microsoft, This function should always return a translation so that a fault can be surfaced.
public FaultReasonText GetMatchingTranslation(CultureInfo cultureInfo)
{
if (cultureInfo == null)
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/LocalAppContextSwitches.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/LocalAppContextSwitches.cs
new file mode 100644
index 00000000000..76196d79980
--- /dev/null
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/LocalAppContextSwitches.cs
@@ -0,0 +1,33 @@
+// <copyright>
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+namespace System.ServiceModel
+{
+ using System;
+ using System.Runtime.CompilerServices;
+
+ // When adding a quirk, name it such that false is new behavior and true is old behavior.
+ // You are opting IN to old behavior. The new behavior is default.
+ // For example, we want to enable the functionality to explicitly add a connection close header
+ // in 4.6 and above. So we set DisableExplicitConnectionCloseHeader to true if running 4.5.2 or less.
+ internal static class LocalAppContextSwitches
+ {
+ private const string DisableExplicitConnectionCloseHeaderString = "Switch.System.ServiceModel.DisableExplicitConnectionCloseHeader";
+ private static int disableExplicitConnectionCloseHeader;
+
+ public static bool DisableExplicitConnectionCloseHeader
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ get
+ {
+ return LocalAppContext.GetCachedSwitchValue(DisableExplicitConnectionCloseHeaderString, ref disableExplicitConnectionCloseHeader);
+ }
+ }
+
+ public static void SetDefaultsLessOrEqual_452()
+ {
+ // Define the switches that should be true for 4.5.2 or less, false for 4.6+.
+ LocalAppContext.DefineSwitchDefault(DisableExplicitConnectionCloseHeaderString, true);
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/OSVersion.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/OSVersion.cs
index b70de211809..165d8db22b0 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/OSVersion.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/OSVersion.cs
@@ -46,4 +46,4 @@ namespace System.ServiceModel
/// </summary>
PostWin8,
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/RsaEndpointIdentity.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/RsaEndpointIdentity.cs
index b0c64e3ce49..d1e3619beec 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/RsaEndpointIdentity.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/RsaEndpointIdentity.cs
@@ -41,7 +41,7 @@ namespace System.ServiceModel
if (identity == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("identity");
- // PreSharp Bug: Parameter 'identity.ClaimType' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506 // Claim.ClaimType will never return null
if (!identity.ClaimType.Equals(ClaimTypes.Rsa))
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.UnrecognizedClaimTypeForIdentity, identity.ClaimType, ClaimTypes.Rsa));
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/CryptoHelper.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/CryptoHelper.cs
index ff0d508ecb0..415a96411d1 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/CryptoHelper.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/CryptoHelper.cs
@@ -178,7 +178,7 @@ namespace System.ServiceModel.Security
catch (InvalidOperationException)
{
algorithmObject = null;
- // We ---- the exception and continue.
+ // We swallow the exception and continue.
}
if (algorithmObject != null)
{
@@ -281,7 +281,7 @@ namespace System.ServiceModel.Security
catch (InvalidOperationException)
{
algorithmObject = null;
- // We ---- the exception and continue.
+ // We swallow the exception and continue.
}
if (algorithmObject != null)
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/FederatedSecurityTokenManager.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/FederatedSecurityTokenManager.cs
index 734d4d21936..4cd988b21cd 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/FederatedSecurityTokenManager.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/FederatedSecurityTokenManager.cs
@@ -439,9 +439,9 @@ namespace System.ServiceModel.Security
return _defaultTokenResolver;
}
/// <summary>
- /// There is a bug in WCF where the version obtained from the public SecurityTokenVersion strings is wrong.
- /// The internal MessageSecurityTokenVersion has the right version.
- /// </summary>
+ /// There is a
+
+
internal static SecurityVersion GetSecurityVersion( SecurityTokenVersion tokenVersion )
{
if ( tokenVersion == null )
@@ -450,11 +450,11 @@ namespace System.ServiceModel.Security
}
//
- // Workaround for WCF bug.
- // In .NET 3.5 WCF returns the wrong Token Specification. We need to reflect on the
- // internal code so we can access the SecurityVersion directly instead of depending
- // on the security specification.
- //
+ // Workaround for WCF
+
+
+
+
if ( tokenVersion is MessageSecurityTokenVersion )
{
SecurityVersion sv = ( tokenVersion as MessageSecurityTokenVersion ).SecurityVersion;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/RequestSecurityToken.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/RequestSecurityToken.cs
index 846bfee75a6..a4a35f7d8f1 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/RequestSecurityToken.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/RequestSecurityToken.cs
@@ -254,7 +254,7 @@ namespace System.ServiceModel.Security
{
if (this.isReceiver)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ItemNotAvailableInDeserializedRST, "RequestProperties")));
}
@@ -334,7 +334,7 @@ namespace System.ServiceModel.Security
{
if (!this.isReceiver)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ItemAvailableInDeserializedRSTOnly, "RequestSecurityTokenXml")));
}
@@ -374,7 +374,7 @@ namespace System.ServiceModel.Security
{
if (this.isReceiver)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ItemNotAvailableInDeserializedRST, "AppliesTo")));
}
@@ -388,7 +388,7 @@ namespace System.ServiceModel.Security
{
if (this.isReceiver)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ItemNotAvailableInDeserializedRST, "AppliesToSerializer")));
}
@@ -402,7 +402,7 @@ namespace System.ServiceModel.Security
{
if (this.isReceiver)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ItemNotAvailableInDeserializedRST, "AppliesToType")));
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/RequestSecurityTokenResponse.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/RequestSecurityTokenResponse.cs
index c84607d9427..0cfa08302c6 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/RequestSecurityTokenResponse.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/RequestSecurityTokenResponse.cs
@@ -334,7 +334,7 @@ namespace System.ServiceModel.Security
{
if (this.isReceiver)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ItemNotAvailableInDeserializedRSTR, "EntropyToken")));
}
@@ -348,7 +348,7 @@ namespace System.ServiceModel.Security
{
if (this.isReceiver)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ItemNotAvailableInDeserializedRSTR, "IssuedToken")));
}
@@ -368,7 +368,7 @@ namespace System.ServiceModel.Security
{
if (this.isReceiver)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ItemNotAvailableInDeserializedRSTR, "ProofToken")));
}
@@ -388,7 +388,7 @@ namespace System.ServiceModel.Security
{
if (!this.isReceiver)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ItemAvailableInDeserializedRSTROnly, "RequestSecurityTokenXml")));
}
@@ -402,7 +402,7 @@ namespace System.ServiceModel.Security
{
if (this.isReceiver)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ItemNotAvailableInDeserializedRST, "AppliesTo")));
}
@@ -416,7 +416,7 @@ namespace System.ServiceModel.Security
{
if (this.isReceiver)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ItemNotAvailableInDeserializedRST, "AppliesToSerializer")));
}
@@ -430,7 +430,7 @@ namespace System.ServiceModel.Security
{
if (this.isReceiver)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ItemNotAvailableInDeserializedRST, "AppliesToType")));
}
@@ -444,7 +444,7 @@ namespace System.ServiceModel.Security
{
if (this.isReceiver)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ItemNotAvailableInDeserializedRSTR, "IsLifetimeSet")));
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SctClaimSerializer.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SctClaimSerializer.cs
index 1ab82412c3a..d957ab82280 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SctClaimSerializer.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SctClaimSerializer.cs
@@ -428,7 +428,7 @@ namespace System.ServiceModel.Security
writer.WriteStartElement(dictionary.WindowsSidIdentity, dictionary.EmptyString);
WriteSidAttribute(wid.User, dictionary, writer);
- // This is to work around WOW64 bug Windows OS 1491447
+ // This is to work around WOW64
string authenticationType = null;
using (WindowsIdentity self = WindowsIdentity.GetCurrent())
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecureConversationDriver.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecureConversationDriver.cs
index a3145e57e1a..68a7269529f 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecureConversationDriver.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecureConversationDriver.cs
@@ -21,7 +21,7 @@ namespace System.ServiceModel.Security
{
get
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SecureConversationDriverVersionDoesNotSupportSession)));
}
@@ -31,7 +31,7 @@ namespace System.ServiceModel.Security
{
get
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SecureConversationDriverVersionDoesNotSupportSession)));
}
@@ -53,7 +53,7 @@ namespace System.ServiceModel.Security
{
get
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SecureConversationDriverVersionDoesNotSupportSession)));
}
@@ -63,7 +63,7 @@ namespace System.ServiceModel.Security
{
get
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SecureConversationDriverVersionDoesNotSupportSession)));
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecuritySessionClientSettings.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecuritySessionClientSettings.cs
index e74c94855b8..946bb402256 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecuritySessionClientSettings.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecuritySessionClientSettings.cs
@@ -2758,7 +2758,7 @@ namespace System.ServiceModel.Security
{
if (this.sessionId == null)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ChannelMustBeOpenedToGetSessionId)));
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecuritySessionSecurityTokenProvider.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecuritySessionSecurityTokenProvider.cs
index 175f07c58c9..4f2357a444a 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecuritySessionSecurityTokenProvider.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecuritySessionSecurityTokenProvider.cs
@@ -865,9 +865,9 @@ namespace System.ServiceModel.Security
/*
* Session issuance/renewal consists of the following steps (some may be async):
- * 1. Create a channel ([....])
+ * 1. Create a channel (sync)
* 2. Open the channel (async)
- * 3. Create the request to send to server ([....])
+ * 3. Create the request to send to server (sync)
* 4. Send the message and get reply (async)
* 5. Process the reply to get the token
* 6. Close the channel (async) and complete the async result
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecurityUtils.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecurityUtils.cs
index e24e7b2ecc5..7047365f940 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecurityUtils.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecurityUtils.cs
@@ -18,6 +18,7 @@ namespace System.ServiceModel.Security
using System.Net.Security;
using System.Runtime;
using System.Security;
+ using System.Security.Authentication;
using System.Security.Authentication.ExtendedProtection;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
@@ -105,6 +106,28 @@ namespace System.ServiceModel.Security
}
}
+ static class SslProtocolsHelper
+ {
+ internal static bool IsDefined(SslProtocols value)
+ {
+ SslProtocols allValues = SslProtocols.None;
+ foreach (var protocol in Enum.GetValues(typeof(SslProtocols)))
+ {
+ allValues |= (SslProtocols)protocol;
+ }
+ return (value & allValues) == value;
+ }
+
+ internal static void Validate(SslProtocols value)
+ {
+ if (!IsDefined(value))
+ {
+ throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidEnumArgumentException("value", (int)value,
+ typeof(SslProtocols)));
+ }
+ }
+ }
+
static class TokenImpersonationLevelHelper
{
internal static bool IsDefined(TokenImpersonationLevel value)
@@ -261,7 +284,7 @@ namespace System.ServiceModel.Security
volatile static bool isSslValidationRequirementDetermined = false;
static readonly int MinimumSslCipherStrength = 128;
- // these are kept in [....] with IIS70
+ // these are kept in sync with IIS70
public const string AuthTypeNTLM = "NTLM";
public const string AuthTypeNegotiate = "Negotiate";
public const string AuthTypeKerberos = "Kerberos";
@@ -1378,7 +1401,7 @@ namespace System.ServiceModel.Security
}
}
- // work-around to Windows SE Bug 141614
+ // work-around to Windows SE
[Fx.Tag.SecurityNote(Critical = "Uses unsafe critical method UnsafeGetPassword to access the credential password without a Demand.",
Safe = "Only uses the password to construct a cloned NetworkCredential instance, does not leak password value.")]
[SecuritySafeCritical]
@@ -1412,7 +1435,7 @@ namespace System.ServiceModel.Security
}
}
- // WORKAROUND, [....], VSWhidbey 561276: The first NetworkCredential must be created in a lock.
+ // WORKAROUND, Microsoft, VSWhidbey 561276: The first NetworkCredential must be created in a lock.
internal static void PrepareNetworkCredential()
{
if (dummyNetworkCredential == null)
@@ -1632,7 +1655,7 @@ namespace System.ServiceModel.Security
{
thisPtr.communicationObject.EndOpen(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -1707,7 +1730,7 @@ namespace System.ServiceModel.Security
{
thisPtr.communicationObject.EndClose(result);
}
-#pragma warning suppress 56500 // [....], transferring exception to another thread
+#pragma warning suppress 56500 // Microsoft, transferring exception to another thread
catch (Exception e)
{
if (Fx.IsFatal(e))
@@ -2156,7 +2179,7 @@ namespace System.ServiceModel.Security
if (keyIdentifierClause is EncryptedKeyIdentifierClause)
{
EncryptedKeyIdentifierClause keyClause = (EncryptedKeyIdentifierClause)keyIdentifierClause;
- // PreSharp Bug: Parameter 'keyClause' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506 // keyClause will not be null due to the if condition above.
for (int i = 0; i < keyClause.EncryptingKeyIdentifier.Count; i++)
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecurityVerifiedMessage.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecurityVerifiedMessage.cs
index 99658e3d2b6..b8af32e48a7 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecurityVerifiedMessage.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/SecurityVerifiedMessage.cs
@@ -70,7 +70,7 @@ namespace System.ServiceModel.Security
{
if (this.IsDisposed)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw TraceUtility.ThrowHelperError(CreateMessageDisposedException(), this);
}
@@ -91,7 +91,7 @@ namespace System.ServiceModel.Security
{
if (this.IsDisposed)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw TraceUtility.ThrowHelperError(CreateMessageDisposedException(), this);
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/TlsSspiNegotiation.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/TlsSspiNegotiation.cs
index 0032edc9ea8..77a3dde3fdd 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/TlsSspiNegotiation.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/TlsSspiNegotiation.cs
@@ -210,7 +210,7 @@ namespace System.ServiceModel.Security
ThrowIfDisposed();
if (!IsValidContext)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new Win32Exception((int)SecurityStatus.InvalidHandle));
}
@@ -229,7 +229,7 @@ namespace System.ServiceModel.Security
ThrowIfDisposed();
if (!IsValidContext)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new Win32Exception((int)SecurityStatus.InvalidHandle));
}
@@ -269,7 +269,7 @@ namespace System.ServiceModel.Security
ThrowIfDisposed();
if (!IsValidContext)
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new Win32Exception((int)SecurityStatus.InvalidHandle));
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/TransportSecurityProtocol.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/TransportSecurityProtocol.cs
index cf865bbb427..93c2c9b13af 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/TransportSecurityProtocol.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/TransportSecurityProtocol.cs
@@ -240,6 +240,13 @@ namespace System.ServiceModel.Security
securityHeader.ExpectEndorsingTokens = expectEndorsingTokens;
securityHeader.MaxReceivedMessageSize = factory.SecurityBindingElement.MaxReceivedMessageSize;
securityHeader.ReaderQuotas = factory.SecurityBindingElement.ReaderQuotas;
+
+ // Due to compatibility, only honor this setting if this app setting is enabled
+ if (ServiceModelAppSettings.UseConfiguredTransportSecurityHeaderLayout)
+ {
+ securityHeader.Layout = factory.SecurityHeaderLayout;
+ }
+
TimeoutHelper timeoutHelper = new TimeoutHelper(timeout);
if (!factory.ActAsInitiator)
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/TrustDriver.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/TrustDriver.cs
index e052b20da66..7088b26b839 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/TrustDriver.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/TrustDriver.cs
@@ -38,7 +38,7 @@ namespace System.ServiceModel.Security
{
get
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.TrustDriverVersionDoesNotSupportIssuedTokens)));
}
@@ -49,7 +49,7 @@ namespace System.ServiceModel.Security
{
get
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.TrustDriverVersionDoesNotSupportIssuedTokens)));
}
@@ -75,7 +75,7 @@ namespace System.ServiceModel.Security
{
get
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.TrustDriverVersionDoesNotSupportSession)));
}
@@ -88,7 +88,7 @@ namespace System.ServiceModel.Security
{
get
{
- // PreSharp Bug: Property get methods should not throw exceptions.
+ // PreSharp
#pragma warning suppress 56503
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.TrustDriverVersionDoesNotSupportSession)));
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSSecurityPolicy.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSSecurityPolicy.cs
index e3d7cf18cc0..8b17d6e54ca 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSSecurityPolicy.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSSecurityPolicy.cs
@@ -2923,7 +2923,7 @@ namespace System.ServiceModel.Security
return;
}
WsdlImporter wsdlImporter;
- // NOTE: [....], Policy import/export is seperate from WSDL however, this policy importer
+ // NOTE: Microsoft, Policy import/export is seperate from WSDL however, this policy importer
// invokes the WsdlImporter. In the event that the current MetadataImporter is a WsdlImporter,
// we should use it's collection of extensions for the import process. Other wise
WsdlImporter currentWsdlImporter = importer as WsdlImporter;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSSecurityTokenSerializer.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSSecurityTokenSerializer.cs
index 85bed0f99b9..c4cd224b3b0 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSSecurityTokenSerializer.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSSecurityTokenSerializer.cs
@@ -472,7 +472,7 @@ namespace System.ServiceModel.Security
}
}
- // PreSharp Bug: Parameter 'element' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new XmlException(SR.GetString(SR.CannotReadToken, element.LocalName, element.NamespaceURI, element.GetAttribute(SecurityJan2004Strings.ValueType, null))));
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSTrust.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSTrust.cs
index 2795cd2b3ec..5c6b6d26fbf 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSTrust.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSTrust.cs
@@ -1524,7 +1524,7 @@ namespace System.ServiceModel.Security
foreach (XmlNode node in element.ChildNodes)
if (node is XmlElement)
{
- // PreSharp Bug: Parameter 'requiredClaims' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506
requiredClaims.Add((XmlElement)node);
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSTrustFeb2005.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSTrustFeb2005.cs
index e098f79e161..e0d19660f81 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSTrustFeb2005.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSTrustFeb2005.cs
@@ -282,7 +282,7 @@ namespace System.ServiceModel.Security
public void ApplyClientBehavior(ServiceEndpoint serviceEndpoint, ClientRuntime behavior)
{
// it is very unlikely that InteractiveChannelInitializers will be null, this is defensive in case ClientRuntime every has a
- // bug. I am OK with this as ApplyingClientBehavior is a one-time channel setup.
+ //
if (behavior != null && behavior.InteractiveChannelInitializers != null)
{
// clear away any interactive initializer
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSTrustServiceContract.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSTrustServiceContract.cs
index 81df58a3069..5561ded581f 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSTrustServiceContract.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Security/WSTrustServiceContract.cs
@@ -1351,7 +1351,7 @@ namespace System.ServiceModel.Security
internal class ProcessCoreAsyncResult : AsyncResult
{
//
- // Encapsulate the local variables in the [....] version of ProcessCore as fields.
+ // Encapsulate the local variables in the sync version of ProcessCore as fields.
//
WSTrustServiceContract _trustServiceContract;
DispatchContext _dispatchContext;
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ServiceModelAppSettings.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ServiceModelAppSettings.cs
new file mode 100644
index 00000000000..b7c7db2a426
--- /dev/null
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ServiceModelAppSettings.cs
@@ -0,0 +1,99 @@
+// <copyright>
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+
+namespace System.ServiceModel
+{
+ using System.Collections.Specialized;
+ using System.Configuration;
+ using System.Diagnostics.CodeAnalysis;
+ using System.Runtime;
+
+ // Due to friend relationships with other assemblies, naming this class as AppSettings causes ambiguity when building those assemblies
+ internal static class ServiceModelAppSettings
+ {
+ internal const string HttpTransportPerFactoryConnectionPoolString = "wcf:httpTransportBinding:useUniqueConnectionPoolPerFactory";
+ internal const string EnsureUniquePerformanceCounterInstanceNamesString = "wcf:ensureUniquePerformanceCounterInstanceNames";
+ internal const string UseConfiguredTransportSecurityHeaderLayoutString = "wcf:useConfiguredTransportSecurityHeaderLayout";
+ const bool DefaultHttpTransportPerFactoryConnectionPool = false;
+ const bool DefaultEnsureUniquePerformanceCounterInstanceNames = false;
+ const bool DefaultUseConfiguredTransportSecurityHeaderLayout = false;
+ static bool httpTransportPerFactoryConnectionPool;
+ static bool ensureUniquePerformanceCounterInstanceNames;
+ static bool useConfiguredTransportSecurityHeaderLayout;
+ static volatile bool settingsInitalized = false;
+ static object appSettingsLock = new object();
+
+ internal static bool HttpTransportPerFactoryConnectionPool
+ {
+ get
+ {
+ EnsureSettingsLoaded();
+
+ return httpTransportPerFactoryConnectionPool;
+ }
+ }
+
+ internal static bool EnsureUniquePerformanceCounterInstanceNames
+ {
+ get
+ {
+ EnsureSettingsLoaded();
+
+ return ensureUniquePerformanceCounterInstanceNames;
+ }
+ }
+
+ internal static bool UseConfiguredTransportSecurityHeaderLayout
+ {
+ get
+ {
+ EnsureSettingsLoaded();
+
+ return useConfiguredTransportSecurityHeaderLayout;
+ }
+ }
+
+ [SuppressMessage(FxCop.Category.ReliabilityBasic, "Reliability104:CaughtAndHandledExceptionsRule",
+ Justification = "Handle the configuration exceptions here to avoid regressions on customer's existing scenarios")]
+ static void EnsureSettingsLoaded()
+ {
+ if (!settingsInitalized)
+ {
+ lock (appSettingsLock)
+ {
+ if (!settingsInitalized)
+ {
+ NameValueCollection appSettingsSection = null;
+ try
+ {
+ appSettingsSection = ConfigurationManager.AppSettings;
+ }
+ catch (ConfigurationErrorsException)
+ {
+ }
+ finally
+ {
+ if ((appSettingsSection == null) || !bool.TryParse(appSettingsSection[HttpTransportPerFactoryConnectionPoolString], out httpTransportPerFactoryConnectionPool))
+ {
+ httpTransportPerFactoryConnectionPool = DefaultHttpTransportPerFactoryConnectionPool;
+ }
+
+ if ((appSettingsSection == null) || !bool.TryParse(appSettingsSection[EnsureUniquePerformanceCounterInstanceNamesString], out ensureUniquePerformanceCounterInstanceNames))
+ {
+ ensureUniquePerformanceCounterInstanceNames = DefaultEnsureUniquePerformanceCounterInstanceNames;
+ }
+
+ if ((appSettingsSection == null) || !bool.TryParse(appSettingsSection[UseConfiguredTransportSecurityHeaderLayoutString], out useConfiguredTransportSecurityHeaderLayout))
+ {
+ useConfiguredTransportSecurityHeaderLayout = DefaultUseConfiguredTransportSecurityHeaderLayout;
+ }
+
+ settingsInitalized = true;
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ServiceModelAttributeTargets.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ServiceModelAttributeTargets.cs
index a509ec937b2..6e73e4d0448 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ServiceModelAttributeTargets.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ServiceModelAttributeTargets.cs
@@ -20,4 +20,4 @@ namespace System.ServiceModel
public const AttributeTargets ContractBehavior = ServiceBehavior | ClientBehavior;
public const AttributeTargets OperationBehavior = AttributeTargets.Method;
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ServiceModelStrings.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ServiceModelStrings.cs
index b90c5b928ac..f8d14752a32 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ServiceModelStrings.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/ServiceModelStrings.cs
@@ -8,4 +8,4 @@ namespace System.ServiceModel
public abstract int Count { get; }
public abstract string this[int index] { get; }
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/SpnEndpointIdentity.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/SpnEndpointIdentity.cs
index 12a1e028970..2e20f2954bd 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/SpnEndpointIdentity.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/SpnEndpointIdentity.cs
@@ -60,7 +60,7 @@ namespace System.ServiceModel
if (identity == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("identity");
- // PreSharp Bug: Parameter 'identity.ResourceType' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506 // Claim.ClaimType will never return null
if (!identity.ClaimType.Equals(ClaimTypes.Spn))
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.UnrecognizedClaimTypeForIdentity, identity.ClaimType, ClaimTypes.Spn));
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/StringUtil.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/StringUtil.cs
new file mode 100644
index 00000000000..cb8e8ef58a2
--- /dev/null
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/StringUtil.cs
@@ -0,0 +1,63 @@
+// <copyright>
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+namespace System.ServiceModel
+{
+ internal static class StringUtil
+ {
+ private static readonly bool randomizedStringHashingEnabled;
+
+ static StringUtil()
+ {
+ // StringComparer.InvariantCultureIgnoreCase.GetHashCode is a stable hash between 32 and 64 bits.
+ // Test the result of this GetHashCode against a known test vector to see if randomized hashing is enabled.
+ randomizedStringHashingEnabled = StringComparer.InvariantCultureIgnoreCase.GetHashCode("The quick brown fox jumps over the lazy dog.") != 0x703e662e;
+ }
+
+ // This should be used instead of String.GetHashCode if the value should be
+ // stable even if UseRandomizedStringHashing is enabled.
+ internal static int GetNonRandomizedHashCode(string str)
+ {
+ if (!randomizedStringHashingEnabled)
+ {
+ return str.GetHashCode();
+ }
+
+ return GetStableHashCode(str);
+ }
+
+ // This is copied from the 32 bit implementation from String.GetHashCode.
+ // Since ServiceModel is compiled for MSIL, we can't have different functionality
+ // for 32 and 64 bits.
+ [System.Security.SecuritySafeCritical]
+ private static int GetStableHashCode(string str)
+ {
+ unsafe
+ {
+ fixed (char* src = str)
+ {
+ int hash1 = (5381 << 16) + 5381;
+ int hash2 = hash1;
+
+ // 32 bit machines.
+ int* pint = (int*)src;
+ int len = str.Length;
+ while (len > 2)
+ {
+ hash1 = ((hash1 << 5) + hash1 + (hash1 >> 27)) ^ pint[0];
+ hash2 = ((hash2 << 5) + hash2 + (hash2 >> 27)) ^ pint[1];
+ pint += 2;
+ len -= 4;
+ }
+
+ if (len > 0)
+ {
+ hash1 = ((hash1 << 5) + hash1 + (hash1 >> 27)) ^ pint[0];
+ }
+
+ return hash1 + (hash2 * 1566083941);
+ }
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Syndication/Rss20FeedFormatter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Syndication/Rss20FeedFormatter.cs
index 2b294d1acec..a7bfdc2a440 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Syndication/Rss20FeedFormatter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Syndication/Rss20FeedFormatter.cs
@@ -502,9 +502,8 @@ namespace System.ServiceModel.Syndication
}
}
}
- reader.ReadStartElement();
- link.Uri = new Uri(reader.ReadString(), UriKind.RelativeOrAbsolute);
- reader.ReadEndElement();
+ string uri = reader.ReadElementString();
+ link.Uri = new Uri(uri, UriKind.RelativeOrAbsolute);
return link;
}
@@ -655,10 +654,17 @@ namespace System.ServiceModel.Syndication
}
else if (reader.IsStartElement(Rss20Constants.PubDateTag, Rss20Constants.Rss20Namespace))
{
+ bool canReadContent = !reader.IsEmptyElement;
reader.ReadStartElement();
- string str = reader.ReadString();
- result.PublishDate = DateFromString(str, reader);
- reader.ReadEndElement();
+ if (canReadContent)
+ {
+ string str = reader.ReadString();
+ if (!string.IsNullOrEmpty(str))
+ {
+ result.PublishDate = DateFromString(str, reader);
+ }
+ reader.ReadEndElement();
+ }
}
else if (reader.IsStartElement(Rss20Constants.SourceTag, Rss20Constants.Rss20Namespace))
{
@@ -691,9 +697,7 @@ namespace System.ServiceModel.Syndication
}
}
}
- reader.ReadStartElement();
- string feedTitle = reader.ReadString();
- reader.ReadEndElement();
+ string feedTitle = reader.ReadElementString();
feed.Title = new TextSyndicationContent(feedTitle);
result.SourceFeed = feed;
}
@@ -947,9 +951,17 @@ namespace System.ServiceModel.Syndication
}
else if (reader.IsStartElement(Rss20Constants.LastBuildDateTag, Rss20Constants.Rss20Namespace))
{
+ bool canReadContent = !reader.IsEmptyElement;
reader.ReadStartElement();
- result.LastUpdatedTime = DateFromString(reader.ReadString(), reader);
- reader.ReadEndElement();
+ if (canReadContent)
+ {
+ string str = reader.ReadString();
+ if (!string.IsNullOrEmpty(str))
+ {
+ result.LastUpdatedTime = DateFromString(str, reader);
+ }
+ reader.ReadEndElement();
+ }
}
else if (reader.IsStartElement(Rss20Constants.CategoryTag, Rss20Constants.Rss20Namespace))
{
@@ -1112,7 +1124,7 @@ namespace System.ServiceModel.Syndication
// if there's a single author with an email address, then serialize as the managingEditor
// else serialize the authors as Atom extensions
-#pragma warning disable 56506 // [....]: this.Feed.Authors is never null
+#pragma warning disable 56506 // Microsoft: this.Feed.Authors is never null
if ((this.Feed.Authors.Count == 1) && (this.Feed.Authors[0].Email != null))
#pragma warning restore 56506
{
@@ -1137,7 +1149,7 @@ namespace System.ServiceModel.Syndication
writer.WriteEndElement();
}
-#pragma warning disable 56506 // [....]: this.Feed.Categories is never null
+#pragma warning disable 56506 // Microsoft: this.Feed.Categories is never null
for (int i = 0; i < this.Feed.Categories.Count; ++i)
#pragma warning restore 56506
{
@@ -1149,7 +1161,7 @@ namespace System.ServiceModel.Syndication
writer.WriteElementString(Rss20Constants.GeneratorTag, this.Feed.Generator);
}
-#pragma warning disable 56506 // [....]: this.Feed.Contributors is never null
+#pragma warning disable 56506 // Microsoft: this.Feed.Contributors is never null
if (this.Feed.Contributors.Count > 0)
#pragma warning restore 56506
{
@@ -1251,7 +1263,7 @@ namespace System.ServiceModel.Syndication
WriteAlternateLink(writer, firstAlternateLink, (item.BaseUri != null ? item.BaseUri : feedBaseUri));
}
-#pragma warning disable 56506 // [....], item.Authors is never null
+#pragma warning disable 56506 // Microsoft, item.Authors is never null
if (item.Authors.Count == 1 && !string.IsNullOrEmpty(item.Authors[0].Email))
#pragma warning restore 56506
{
@@ -1269,7 +1281,7 @@ namespace System.ServiceModel.Syndication
}
}
-#pragma warning disable 56506 // [....], item.Categories is never null
+#pragma warning disable 56506 // Microsoft, item.Categories is never null
for (int i = 0; i < item.Categories.Count; ++i)
#pragma warning restore 56506
{
@@ -1397,7 +1409,7 @@ namespace System.ServiceModel.Syndication
}
}
-#pragma warning disable 56506 // [....], item.COntributors is never null
+#pragma warning disable 56506 // Microsoft, item.COntributors is never null
if (item.Contributors.Count > 0)
#pragma warning restore 56506
{
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/TcpTransportSecurity.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/TcpTransportSecurity.cs
index af674bcdf0d..cecfed85e38 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/TcpTransportSecurity.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/TcpTransportSecurity.cs
@@ -4,6 +4,7 @@
namespace System.ServiceModel
{
using System;
+ using System.Security.Authentication;
using System.Security.Authentication.ExtendedProtection;
using System.ServiceModel.Channels;
using System.ServiceModel.Security;
@@ -19,12 +20,14 @@ namespace System.ServiceModel
TcpClientCredentialType clientCredentialType;
ProtectionLevel protectionLevel;
ExtendedProtectionPolicy extendedProtectionPolicy;
+ SslProtocols sslProtocols;
public TcpTransportSecurity()
{
this.clientCredentialType = DefaultClientCredentialType;
this.protectionLevel = DefaultProtectionLevel;
this.extendedProtectionPolicy = ChannelBindingUtility.DefaultPolicy;
+ this.sslProtocols = TransportDefaults.SslProtocols;
}
[DefaultValue(DefaultClientCredentialType)]
@@ -78,6 +81,17 @@ namespace System.ServiceModel
}
}
+ [DefaultValue(TransportDefaults.SslProtocols)]
+ public SslProtocols SslProtocols
+ {
+ get { return this.sslProtocols; }
+ set
+ {
+ SslProtocolsHelper.Validate(value);
+ this.sslProtocols = value;
+ }
+ }
+
SslStreamSecurityBindingElement CreateSslBindingElement(bool requireClientCertificate)
{
if (this.protectionLevel != ProtectionLevel.EncryptAndSign)
@@ -88,17 +102,20 @@ namespace System.ServiceModel
SslStreamSecurityBindingElement result = new SslStreamSecurityBindingElement();
result.RequireClientCertificate = requireClientCertificate;
+ result.SslProtocols = sslProtocols;
return result;
}
- static bool IsSslBindingElement(BindingElement element, TcpTransportSecurity transportSecurity, out bool requireClientCertificate)
+ static bool IsSslBindingElement(BindingElement element, TcpTransportSecurity transportSecurity, out bool requireClientCertificate, out SslProtocols sslProtocols)
{
requireClientCertificate = false;
+ sslProtocols = TransportDefaults.SslProtocols;
SslStreamSecurityBindingElement ssl = element as SslStreamSecurityBindingElement;
if (ssl == null)
return false;
transportSecurity.ProtectionLevel = ProtectionLevel.EncryptAndSign;
requireClientCertificate = ssl.RequireClientCertificate;
+ sslProtocols = ssl.SslProtocols;
return true;
}
@@ -110,7 +127,8 @@ namespace System.ServiceModel
internal static bool SetTransportProtectionOnly(BindingElement transport, TcpTransportSecurity transportSecurity)
{
bool requireClientCertificate;
- return IsSslBindingElement(transport, transportSecurity, out requireClientCertificate);
+ SslProtocols sslProtocols;
+ return IsSslBindingElement(transport, transportSecurity, out requireClientCertificate, out sslProtocols);
}
internal BindingElement CreateTransportProtectionAndAuthentication()
@@ -130,15 +148,17 @@ namespace System.ServiceModel
internal static bool SetTransportProtectionAndAuthentication(BindingElement transport, TcpTransportSecurity transportSecurity)
{
bool requireClientCertificate = false;
+ SslProtocols sslProtocols = TransportDefaults.SslProtocols;
if (transport is WindowsStreamSecurityBindingElement)
{
transportSecurity.ClientCredentialType = TcpClientCredentialType.Windows;
transportSecurity.ProtectionLevel = ((WindowsStreamSecurityBindingElement)transport).ProtectionLevel;
return true;
}
- else if (IsSslBindingElement(transport, transportSecurity, out requireClientCertificate))
+ else if (IsSslBindingElement(transport, transportSecurity, out requireClientCertificate, out sslProtocols))
{
transportSecurity.ClientCredentialType = requireClientCertificate ? TcpClientCredentialType.Certificate : TcpClientCredentialType.None;
+ transportSecurity.SslProtocols = sslProtocols;
return true;
}
return false;
@@ -148,6 +168,7 @@ namespace System.ServiceModel
{
return this.ClientCredentialType != TcpTransportSecurity.DefaultClientCredentialType
|| this.ProtectionLevel != TcpTransportSecurity.DefaultProtectionLevel
+ || this.SslProtocols != TransportDefaults.SslProtocols
|| ShouldSerializeExtendedProtectionPolicy();
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Transactions/IsolationFlags.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Transactions/IsolationFlags.cs
index 927e14c6708..b4c249c4306 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Transactions/IsolationFlags.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Transactions/IsolationFlags.cs
@@ -21,4 +21,4 @@ namespace System.ServiceModel.Transactions
Optimistic = 0x00000010,
ReadOnly = 0x00000020
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Transactions/WsatTransactionFormatter.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Transactions/WsatTransactionFormatter.cs
index 737d71575ec..a70a3246731 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Transactions/WsatTransactionFormatter.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/Transactions/WsatTransactionFormatter.cs
@@ -71,10 +71,10 @@ namespace System.ServiceModel.Transactions
void ForcePromotion(Transaction transaction)
{
// Force promotion. This may throw TransactionException.
- // We used to check the DistributedIdentifier property first, but VSWhidbey bug 547901
- // prevents us from doing so reliably in multi-threaded scenarios (there is a ----
- // in the System.Transactions code that can cause a NullReferenceException if we ask
- // for the identifier while the transaction is being promoted)
+ // We used to check the DistributedIdentifier property first, but VSWhidbey
+
+
+
TransactionInterop.GetTransmitterPropagationToken(transaction);
}
diff --git a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/UpnEndpointIdentity.cs b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/UpnEndpointIdentity.cs
index c00f1e0d9a1..5ea26cb17f4 100644
--- a/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/UpnEndpointIdentity.cs
+++ b/mcs/class/referencesource/System.ServiceModel/System/ServiceModel/UpnEndpointIdentity.cs
@@ -38,7 +38,7 @@ namespace System.ServiceModel
if (identity == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("identity");
- // PreSharp Bug: Parameter 'identity.ResourceType' to this public method must be validated: A null-dereference can occur here.
+ // PreSharp
#pragma warning suppress 56506 // Claim.ResourceType will never return null
if (!identity.ClaimType.Equals(ClaimTypes.Upn))
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.UnrecognizedClaimTypeForIdentity, identity.ClaimType, ClaimTypes.Upn));
diff --git a/mcs/class/referencesource/System.Web.ApplicationServices/Properties/AssemblyInfo.cs b/mcs/class/referencesource/System.Web.ApplicationServices/Properties/AssemblyInfo.cs
index b643d49d37c..d3dbff86194 100644
--- a/mcs/class/referencesource/System.Web.ApplicationServices/Properties/AssemblyInfo.cs
+++ b/mcs/class/referencesource/System.Web.ApplicationServices/Properties/AssemblyInfo.cs
@@ -9,4 +9,4 @@ using System.Runtime.CompilerServices;
[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly",
MessageId = "username", Scope = "resource", Target = "System.Web.ApplicationServicesStrings.resources",
- Justification = "The use of the word is correct in a technical context.")]
+ Justification = "The use of the word is correct in a technical context.")] \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web.DynamicData/DynamicData/DynamicDataExtensions.cs b/mcs/class/referencesource/System.Web.DynamicData/DynamicData/DynamicDataExtensions.cs
index d7311de020f..765abf1c5d2 100644
--- a/mcs/class/referencesource/System.Web.DynamicData/DynamicData/DynamicDataExtensions.cs
+++ b/mcs/class/referencesource/System.Web.DynamicData/DynamicData/DynamicDataExtensions.cs
@@ -228,7 +228,7 @@ namespace System.Web.DynamicData {
}
/// <summary>
- /// Make the SelectedIndex [....] up with the PersistedSelection. Concretely, what it means is that
+ /// Make the SelectedIndex sync up with the PersistedSelection. Concretely, what it means is that
/// if you select a row and then page away (or sort), the selection remains on that row
/// even if it's not currently visible.
/// </summary>
diff --git a/mcs/class/referencesource/System.Web.DynamicData/DynamicData/DynamicDataManager.cs b/mcs/class/referencesource/System.Web.DynamicData/DynamicData/DynamicDataManager.cs
index f54d6521c67..2fcbbceb898 100644
--- a/mcs/class/referencesource/System.Web.DynamicData/DynamicData/DynamicDataManager.cs
+++ b/mcs/class/referencesource/System.Web.DynamicData/DynamicData/DynamicDataManager.cs
@@ -189,7 +189,7 @@ namespace System.Web.DynamicData {
internal static void EnablePersistedSelection(BaseDataBoundControl baseDataBoundControl, IMetaTable table) {
Debug.Assert(baseDataBoundControl != null, "NULL!");
- // Make the persisted selection [....] up with the selected index if possible
+ // Make the persisted selection sync up with the selected index if possible
if (!table.IsReadOnly) {
DynamicDataExtensions.EnablePersistedSelectionInternal(baseDataBoundControl);
}
diff --git a/mcs/class/referencesource/System.Web.DynamicData/DynamicData/FieldTemplateUserControl.cs b/mcs/class/referencesource/System.Web.DynamicData/DynamicData/FieldTemplateUserControl.cs
index 33381499ece..e0f4e82dbda 100644
--- a/mcs/class/referencesource/System.Web.DynamicData/DynamicData/FieldTemplateUserControl.cs
+++ b/mcs/class/referencesource/System.Web.DynamicData/DynamicData/FieldTemplateUserControl.cs
@@ -421,11 +421,11 @@ namespace System.Web.DynamicData {
private void SetUpRequiredFieldValidator(RequiredFieldValidator validator, MetaColumn column) {
var requiredAttribute = column.Metadata.RequiredAttribute;
if (requiredAttribute!= null && requiredAttribute.AllowEmptyStrings) {
- // Dev10 Bug 749744
- // If somone explicitly set AllowEmptyStrings = true then we assume that they want to
- // allow empty strings to go into a database even if the column is marked as required.
- // Since ASP.NET validators always get an empty string, this essential turns of
- // required field validation.
+ // Dev10
+
+
+
+
IgnoreModelValidationAttribute(typeof(RequiredAttribute));
} else if (column.IsRequired) {
validator.Enabled = true;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityConnectionStringBuilderItem.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityConnectionStringBuilderItem.cs
index 5598b5c6061..ba73d026878 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityConnectionStringBuilderItem.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityConnectionStringBuilderItem.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Data.EntityClient;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceConfigureObjectContext.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceConfigureObjectContext.cs
index ceeca336731..24c9e3f49b0 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceConfigureObjectContext.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceConfigureObjectContext.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//
// Manages the properties that can be set on the first page of the wizard
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceConfigureObjectContextPanel.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceConfigureObjectContextPanel.cs
index fae30157a8d..ba12b645410 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceConfigureObjectContextPanel.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceConfigureObjectContextPanel.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceConfigureObjectContextPanel.designer.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceConfigureObjectContextPanel.designer.cs
index 8b78d5d1999..d0af6f0701c 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceConfigureObjectContextPanel.designer.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceConfigureObjectContextPanel.designer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Windows.Forms;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceContainerNameConverter.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceContainerNameConverter.cs
index b92970d9ed7..dddf08b8a92 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceContainerNameConverter.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceContainerNameConverter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceContainerNameItem.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceContainerNameItem.cs
index 561dbabb75b..1a470ab01c4 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceContainerNameItem.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceContainerNameItem.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Data.Metadata.Edm;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDataSelection.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDataSelection.cs
index 68ca2a9632e..95c9411215c 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDataSelection.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDataSelection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//
// Manages the properties that can be set on the second page of the wizard
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDataSelectionPanel.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDataSelectionPanel.cs
index a2d586e55c2..9deff40bb70 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDataSelectionPanel.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDataSelectionPanel.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDataSelectionPanel.designer.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDataSelectionPanel.designer.cs
index e5f04474496..b5854bbb0dd 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDataSelectionPanel.designer.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDataSelectionPanel.designer.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Windows.Forms;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDesigner.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDesigner.cs
index b630b7594ef..babe193dcc9 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDesigner.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDesigner.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.ComponentModel;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDesignerHelper.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDesignerHelper.cs
index 3b53951fe81..c9369bc4382 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDesignerHelper.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceDesignerHelper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Collections.Generic;
@@ -70,6 +70,7 @@ namespace System.Web.UI.Design.WebControls
private bool _forceSchemaRetrieval;
private readonly EntityDataSourceDesigner _owner;
private bool _canLoadWebConfig;
+ private bool _usingEntityFrameworkVersionHigherThanFive = false;
#endregion
internal EntityDataSourceDesignerHelper(EntityDataSource entityDataSource, bool interactiveMode)
@@ -96,7 +97,7 @@ namespace System.Web.UI.Design.WebControls
}
Debug.Assert(_owner != null, "expected non-null owner");
- Debug.Assert(_webApplication != null, "expected non-null web application service");
+ Debug.Assert(_webApplication != null, "expected non-null web application service");
}
internal void AddSystemWebEntityReference()
@@ -627,9 +628,16 @@ namespace System.Web.UI.Design.WebControls
catch (Exception ex)
{
StringBuilder exceptionMessage = new StringBuilder();
- exceptionMessage.AppendLine(Strings.Error_MetadataLoadError);
- exceptionMessage.AppendLine();
- exceptionMessage.Append(ex.Message);
+ if (_usingEntityFrameworkVersionHigherThanFive)
+ {
+ exceptionMessage.Append(Strings.Error_UnsupportedVersionOfEntityFramework);
+ }
+ else
+ {
+ exceptionMessage.AppendLine(Strings.Error_MetadataLoadError);
+ exceptionMessage.AppendLine();
+ exceptionMessage.Append(ex.Message);
+ }
ShowError(exceptionMessage.ToString());
}
}
@@ -657,9 +665,17 @@ namespace System.Web.UI.Design.WebControls
{
foreach (Type type in typeDiscoverySvc.GetTypes(typeof(object), false /*excludeGlobalTypes*/))
{
- if (!_assemblies.Contains(type.Assembly) && !IsSystemAssembly(type.Assembly.FullName))
+ var assembly = type.Assembly;
+ if (!_usingEntityFrameworkVersionHigherThanFive
+ && assembly.GetName().Name.Equals("EntityFramework", StringComparison.InvariantCultureIgnoreCase)
+ && assembly.GetName().Version.Major > 5)
+ {
+ _usingEntityFrameworkVersionHigherThanFive = true;
+ ShowError(Strings.Error_UnsupportedVersionOfEntityFramework);
+ }
+ if (!_assemblies.Contains(assembly) && !IsSystemAssembly(assembly.FullName))
{
- _assemblies.Add(type.Assembly);
+ _assemblies.Add(assembly);
}
}
}
@@ -1115,12 +1131,12 @@ namespace System.Web.UI.Design.WebControls
// the right metadata from the design-time environment
EntityDataSource entityDataSource = new EntityDataSource(_entityConnection);
- // This is workaround for a bug in the SQL CE provider services. SQL CE uses two providers - one is supposed to be used at design time
- // while the other one is supposed to be used at runtime. When the Entiy Designer is used in a way that requires to talk to the database
- // SQL CE starts returning design time provider. However they don't reset an internal flag and continue to return design time provider even if
- // the Entity Designer is not used anymore. Calling GetProviderManifestToken() method will reset the flag according to the provider in the
- // connection. This fixes the problem for SQL CE provider without having to special case SQL CE because it will be a no-op for other providers.
- // For more details see bug 35675 in DevDiv database http://vstfdevdiv:8080/web/wi.aspx?pcguid=22f9acc9-569a-41ff-b6ac-fac1b6370209&id=35675
+ // This is workaround for a
+
+
+
+
+
DbProviderServices.GetProviderServices(_entityConnection.StoreConnection).GetProviderManifestToken(_entityConnection.StoreConnection);
// Copy only the properties that can affect the schema
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntitySetNameConverter.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntitySetNameConverter.cs
index fef0dc95f51..59ab452a5e2 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntitySetNameConverter.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntitySetNameConverter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntitySetNameItem.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntitySetNameItem.cs
index 4f522e7e5b8..e1fcec20251 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntitySetNameItem.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntitySetNameItem.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Data.Metadata.Edm;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntityTypeFilterConverter.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntityTypeFilterConverter.cs
index f814d7516c9..9b5f5ed2d2e 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntityTypeFilterConverter.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntityTypeFilterConverter.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntityTypeFilterItem.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntityTypeFilterItem.cs
index d5029c50646..271ff0562a0 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntityTypeFilterItem.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceEntityTypeFilterItem.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Data.Metadata.Edm;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceState.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceState.cs
index d0ab4f9f647..18982675357 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceState.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceState.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//
// Temporary storage for properties set via the wizard
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceStatementEditor.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceStatementEditor.cs
index da4ed87c9c6..4d135b88934 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceStatementEditor.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceStatementEditor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.ComponentModel;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceStatementEditorForm.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceStatementEditorForm.cs
index 85f30115ba4..fd48f29e043 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceStatementEditorForm.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceStatementEditorForm.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//
// Enables a user to edit CommandText, OrderBy, Select, and
// Where properties and parameters
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceWizardForm.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceWizardForm.cs
index 4ae9440329d..83cd536ab50 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceWizardForm.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDataSourceWizardForm.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//
// Containing form for the wizard panels
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDesignerDataSourceView.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDesignerDataSourceView.cs
index 2206efbf87a..4e664aa3294 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDesignerDataSourceView.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/EntityDesignerDataSourceView.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System.Collections;
using System.Data;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/DesignerForm.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/DesignerForm.cs
index fea3d8fac3b..3467d462140 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/DesignerForm.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/DesignerForm.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/RTLAwareMessageBox.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/RTLAwareMessageBox.cs
index 25d42e05031..fcd3e820f51 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/RTLAwareMessageBox.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/RTLAwareMessageBox.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/ResourceDescriptionAttribute.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/ResourceDescriptionAttribute.cs
index d61fc0f3a73..f7a25c7abfb 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/ResourceDescriptionAttribute.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/ResourceDescriptionAttribute.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/TaskFormBase.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/TaskFormBase.cs
index fbd461cd8d5..0ca68d843b0 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/TaskFormBase.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/TaskFormBase.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/UIHelper.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/UIHelper.cs
index a21300b6939..ca925042fc3 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/UIHelper.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/UIHelper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//
// Helper methods for UI functionality like displaying dialogs
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/WizardForm.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/WizardForm.cs
index c8dadbce8ab..371f73057a8 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/WizardForm.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/WizardForm.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/WizardPanel.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/WizardPanel.cs
index 4374823c05f..6aecc439a4f 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/WizardPanel.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/WizardPanel.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/WizardPanelChangingEventArgs.cs b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/WizardPanelChangingEventArgs.cs
index a77f7e065bb..4e30056bf7c 100644
--- a/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/WizardPanelChangingEventArgs.cs
+++ b/mcs/class/referencesource/System.Web.Entity.Design/System/Data/WebControls/Design/Util/WizardPanelChangingEventArgs.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Web.Entity/AssemblyInfo.cs b/mcs/class/referencesource/System.Web.Entity/AssemblyInfo.cs
index 2cab554ad99..48281823db0 100644
--- a/mcs/class/referencesource/System.Web.Entity/AssemblyInfo.cs
+++ b/mcs/class/referencesource/System.Web.Entity/AssemblyInfo.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner barryfr
+// @backupOwner cmeek
//---------------------------------------------------------------------
// Ensures that this library never satisfies a link demand by virtue of being a GACed
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSource.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSource.cs
index f0971e34d21..3114cbef763 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSource.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSource.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceChangedEventArgs.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceChangedEventArgs.cs
index c3ff8c1e14c..b5660791276 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceChangedEventArgs.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceChangedEventArgs.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
// @backupOwner objsdev
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceChangingEventArgs.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceChangingEventArgs.cs
index c19dbcb822b..c0fbdfb66d7 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceChangingEventArgs.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceChangingEventArgs.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
// @backupOwner objsdev
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceColumn.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceColumn.cs
index c89ec893dc2..09edc5e625f 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceColumn.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceColumn.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceContextCreatedEventArgs.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceContextCreatedEventArgs.cs
index 2e639d2c124..f92ab5ee5dd 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceContextCreatedEventArgs.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceContextCreatedEventArgs.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
// @backupOwner objsdev
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceContextCreatingEventArgs.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceContextCreatingEventArgs.cs
index a39034e814c..d0a9eb11961 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceContextCreatingEventArgs.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceContextCreatingEventArgs.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
// @backupOwner objsdev
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceContextDisposingEventArgs.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceContextDisposingEventArgs.cs
index e53faa0c241..913b1580082 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceContextDisposingEventArgs.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceContextDisposingEventArgs.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
// @backupOwner objsdev
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceMemberPath.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceMemberPath.cs
index a1f0cbc1ebc..c02df2400dc 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceMemberPath.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceMemberPath.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceQueryBuilder.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceQueryBuilder.cs
index 21cecb80459..ebca39ae434 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceQueryBuilder.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceQueryBuilder.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Web.UI.WebControls
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceReferenceGroup.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceReferenceGroup.cs
index 065d0f80398..90033972dc2 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceReferenceGroup.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceReferenceGroup.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceSelectedEventArgs.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceSelectedEventArgs.cs
index 1b1f06ab3d4..132dc52f092 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceSelectedEventArgs.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceSelectedEventArgs.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
// @backupOwner objsdev
//---------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceSelectingEventArgs.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceSelectingEventArgs.cs
index 2e5c1656148..781a35ec02b 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceSelectingEventArgs.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceSelectingEventArgs.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
// @backupOwner objsdev
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceUtil.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceUtil.cs
index 2560d5e2ea6..315148ec4b6 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceUtil.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceUtil.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceValidationException.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceValidationException.cs
index 6b285402c0f..f8108d339c1 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceValidationException.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceValidationException.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceView.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceView.cs
index 88460b1e61e..a6f45854e14 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceView.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceView.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System.Collections;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceViewSchema.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceViewSchema.cs
index 497db73023e..dfb3b251589 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceViewSchema.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceViewSchema.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
namespace System.Web.UI.WebControls
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceWrapper.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceWrapper.cs
index 0660a995a69..00219e431d7 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceWrapper.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceWrapper.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Data;
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceWrapperCollection.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceWrapperCollection.cs
index 1d8a270c4aa..97ac5510425 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceWrapperCollection.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceWrapperCollection.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Data;
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceWrapperPropertyDescriptor.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceWrapperPropertyDescriptor.cs
index 8cc49ef33c6..e66c99544a8 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceWrapperPropertyDescriptor.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/EntityDataSourceWrapperPropertyDescriptor.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Data;
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/ResourceDescriptionAttribute.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/ResourceDescriptionAttribute.cs
index 94b2b327ea7..218f1da608d 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/ResourceDescriptionAttribute.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/ResourceDescriptionAttribute.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/ResourceDisplayNameAttribute.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/ResourceDisplayNameAttribute.cs
index 529367d0482..ece6b3f2142 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/ResourceDisplayNameAttribute.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/ResourceDisplayNameAttribute.cs
@@ -3,8 +3,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
-// @backupOwner [....]
+// @owner Microsoft
+// @backupOwner Microsoft
//------------------------------------------------------------------------------
using System;
using System.ComponentModel;
diff --git a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/WebControlParameterProxy.cs b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/WebControlParameterProxy.cs
index 1df13685dd3..cd03f842f21 100644
--- a/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/WebControlParameterProxy.cs
+++ b/mcs/class/referencesource/System.Web.Entity/System/Data/WebControls/WebControlParameterProxy.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
-// @owner [....]
+// @owner Microsoft
// @backupOwner objsdev
//---------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Web.Extensions/Compilation/WCFModel/VSWCFServiceContractGenerator.cs b/mcs/class/referencesource/System.Web.Extensions/Compilation/WCFModel/VSWCFServiceContractGenerator.cs
index 45b862eda3a..0cedd02d552 100644
--- a/mcs/class/referencesource/System.Web.Extensions/Compilation/WCFModel/VSWCFServiceContractGenerator.cs
+++ b/mcs/class/referencesource/System.Web.Extensions/Compilation/WCFModel/VSWCFServiceContractGenerator.cs
@@ -441,9 +441,9 @@ namespace Microsoft.VSDesigner.WCFModel
}
catch (Exception ex)
{
- // fatal error... (workaround for bug #135242)
- // We want to convert fatal error exception to a normal code generator error message,
- // so the user could find information from pervious errors to find KB topic.
+ // fatal error... (workaround for
+
+
proxyGenerationErrors.Add(new ProxyGenerationError(
ProxyGenerationError.GeneratorState.GenerateCode,
String.Empty,
@@ -1252,7 +1252,7 @@ namespace Microsoft.VSDesigner.WCFModel
if (serializerType == ClientOptions.ProxySerializerType.Auto && ContainsHttpBindings(metadataSections))
{
// NOTE: HTTP Get/Post binding indicates an old web service. We use XmlSerializer to prevent generating dup classes.
- // Please check devdiv bug 94078
+ // Please check devdiv
serializerType = ClientOptions.ProxySerializerType.XmlSerializer;
}
diff --git a/mcs/class/referencesource/System.Web.Extensions/Handlers/ScriptModule.cs b/mcs/class/referencesource/System.Web.Extensions/Handlers/ScriptModule.cs
index c6e323ff26d..150fb37f359 100644
--- a/mcs/class/referencesource/System.Web.Extensions/Handlers/ScriptModule.cs
+++ b/mcs/class/referencesource/System.Web.Extensions/Handlers/ScriptModule.cs
@@ -143,6 +143,10 @@ namespace System.Web.Handlers {
response.Cache.SetCacheability(HttpCacheability.NoCache);
response.ContentType = "text/plain";
+ // DevDiv#961281
+ // Allow apps to access to the redirect location
+ context.Items[PageRequestManager.AsyncPostBackRedirectLocationKey] = redirectLocation;
+
// Preserve redirected state: TFS#882879
response.IsRequestBeingRedirected = true;
diff --git a/mcs/class/referencesource/System.Web.Extensions/Handlers/ScriptResourceHandler.cs b/mcs/class/referencesource/System.Web.Extensions/Handlers/ScriptResourceHandler.cs
index 93deb03db38..c70ccff6906 100644
--- a/mcs/class/referencesource/System.Web.Extensions/Handlers/ScriptResourceHandler.cs
+++ b/mcs/class/referencesource/System.Web.Extensions/Handlers/ScriptResourceHandler.cs
@@ -526,8 +526,8 @@ namespace System.Web.Handlers {
}
}
else {
- // Bug DevDiv #175061, we don't want to force any encoding here and let the default
- // encoding apply no matter what the incoming scripts might have been encoded with.
+ //
+
response.Write(script.ToString());
}
}
diff --git a/mcs/class/referencesource/System.Web.Extensions/Script/Services/PageClientProxyGenerator.cs b/mcs/class/referencesource/System.Web.Extensions/Script/Services/PageClientProxyGenerator.cs
index 97d49938441..28d28964e19 100644
--- a/mcs/class/referencesource/System.Web.Extensions/Script/Services/PageClientProxyGenerator.cs
+++ b/mcs/class/referencesource/System.Web.Extensions/Script/Services/PageClientProxyGenerator.cs
@@ -13,13 +13,13 @@ namespace System.Web.Script.Services {
internal PageClientProxyGenerator(IPage page, bool debug)
: this(VirtualPathUtility.MakeRelative(page.Request.Path, page.Request.FilePath), debug) {
- // Dev10 Bug 597146: Use VirtualPathUtility to build a relative path from the path to the file.
- // Previously just Page.Request.FilePath was used, which was for example, /app/foo/page.aspx,
- // but this breaks with cookieless sessions since the url is /app/foo/(sessionid)/page.aspx.
- // We need to make a relative path from page.Request.Path (e.g. /app/foo) to page.Request.FilePath
- // (e.g. /app/foo/page.aspx) rather than just strip off 'page.aspx' with Path.GetFileName, because
- // the url may include PathInfo, such as "/app/foo/page.aspx/pathinfo1/pathinfo2", and in that case
- // we need the path to be ../../page.aspx
+ // Dev10
+
+
+
+
+
+
}
internal PageClientProxyGenerator(string path, bool debug) {
diff --git a/mcs/class/referencesource/System.Web.Extensions/Script/Services/RestHandler.cs b/mcs/class/referencesource/System.Web.Extensions/Script/Services/RestHandler.cs
index eee0e1f07a2..29d3f6088b2 100644
--- a/mcs/class/referencesource/System.Web.Extensions/Script/Services/RestHandler.cs
+++ b/mcs/class/referencesource/System.Web.Extensions/Script/Services/RestHandler.cs
@@ -224,9 +224,9 @@ namespace System.Web.Script.Services {
context.Response.AddHeader("jsonerror", "true");
// Maintain the Charset from before. (DevDiv Bugs 158401)
context.Response.Charset = charset;
- //Devdiv Bug: 118619:When accessed remotely, an Ajax web service that throws an error doesn't return the error string in the proper format on IIS7
- //For IIS 7.0 integrated mode we need to set TrySkipIisCustomErrors to override IIS custom error handling. This has no functional/perf impact on
- //IIS 7.0 classic mode or earlier versions.
+ //Devdiv
+
+
context.Response.TrySkipIisCustomErrors = true;
using (StreamWriter writer = new StreamWriter(context.Response.OutputStream, new UTF8Encoding(false))) {
if (ex is TargetInvocationException) {
diff --git a/mcs/class/referencesource/System.Web.Extensions/ui/AssemblyCache.cs b/mcs/class/referencesource/System.Web.Extensions/ui/AssemblyCache.cs
index 5c4032bac79..15ef4492480 100644
--- a/mcs/class/referencesource/System.Web.Extensions/ui/AssemblyCache.cs
+++ b/mcs/class/referencesource/System.Web.Extensions/ui/AssemblyCache.cs
@@ -95,7 +95,7 @@ using System.Web.Script;
}
}
catch {
- // Bug 34311: If we are unable to load the attribute, don't throw.
+ //
}
return null;
}
diff --git a/mcs/class/referencesource/System.Web.Extensions/ui/EmbeddedResourceFinder.cs b/mcs/class/referencesource/System.Web.Extensions/ui/EmbeddedResourceFinder.cs
index 4695543de1a..56f254eac21 100644
--- a/mcs/class/referencesource/System.Web.Extensions/ui/EmbeddedResourceFinder.cs
+++ b/mcs/class/referencesource/System.Web.Extensions/ui/EmbeddedResourceFinder.cs
@@ -9,4 +9,4 @@
// work properly is the assembly name is different from
// the namespace. The work around is to use a type which is
// outside the root namespace.
-internal class EmbeddedResourceFinder { }
+internal class EmbeddedResourceFinder { } \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web.Extensions/ui/PageRequestManager.cs b/mcs/class/referencesource/System.Web.Extensions/ui/PageRequestManager.cs
index 191bab69f4d..b6432553900 100644
--- a/mcs/class/referencesource/System.Web.Extensions/ui/PageRequestManager.cs
+++ b/mcs/class/referencesource/System.Web.Extensions/ui/PageRequestManager.cs
@@ -49,6 +49,7 @@ namespace System.Web.UI {
internal const string AsyncPostBackErrorKey = "System.Web.UI.PageRequestManager:AsyncPostBackError";
internal const string AsyncPostBackErrorMessageKey = "System.Web.UI.PageRequestManager:AsyncPostBackErrorMessage";
internal const string AsyncPostBackErrorHttpCodeKey = "System.Web.UI.PageRequestManager:AsyncPostBackErrorHttpCode";
+ internal const string AsyncPostBackRedirectLocationKey = "System.Web.UI.PageRequestManager:AsyncPostBackRedirectLocation";
private const string PageTitleToken = "pageTitle";
private const string FocusToken = "focus";
private const string AsyncPostFormField = "__ASYNCPOST";
diff --git a/mcs/class/referencesource/System.Web.Extensions/ui/ProfileServiceManager.cs b/mcs/class/referencesource/System.Web.Extensions/ui/ProfileServiceManager.cs
index bd0283344c3..4dc972c4020 100644
--- a/mcs/class/referencesource/System.Web.Extensions/ui/ProfileServiceManager.cs
+++ b/mcs/class/referencesource/System.Web.Extensions/ui/ProfileServiceManager.cs
@@ -97,9 +97,9 @@ namespace System.Web.UI {
}
if (!String.IsNullOrEmpty(serviceUrl)) {
- // DevDiv Bug 72257:When custom path is set and loadProperties=True, we shouldn't use the default path
- // loadProperties script always retrieves the properties from default profile provider, which is not correct if ProfileService
- // points to non default path. Hence throw when non default path and loadProperties both are specified.
+ // DevDiv
+
+
if (defaultServicePath == null){
defaultServicePath = scriptManager.ResolveClientUrl("~/" + System.Web.Script.Services.WebServiceData._profileServiceFileName);
}
diff --git a/mcs/class/referencesource/System.Web.Extensions/ui/RoleServiceManager.cs b/mcs/class/referencesource/System.Web.Extensions/ui/RoleServiceManager.cs
index d86c29fd178..5533fd3dcf6 100644
--- a/mcs/class/referencesource/System.Web.Extensions/ui/RoleServiceManager.cs
+++ b/mcs/class/referencesource/System.Web.Extensions/ui/RoleServiceManager.cs
@@ -84,9 +84,9 @@ namespace System.Web.UI {
bool pathSpecified = !String.IsNullOrEmpty(serviceUrl);
if (pathSpecified) {
- // DevDiv Bug 71954:When loadRoles="true" and the path is set, we should not load the roles from the default path
- // loadRoles script always retrieves the roles from default role provider, which is not correct if RolesService
- // points to non default path. Hence throw when non default path and loadRoles both are specified.
+ // DevDiv
+
+
if (defaultServicePath == null){
defaultServicePath = scriptManager.ResolveClientUrl("~/" + System.Web.Script.Services.WebServiceData._roleServiceFileName);
}
diff --git a/mcs/class/referencesource/System.Web.Extensions/ui/ScriptManager.cs b/mcs/class/referencesource/System.Web.Extensions/ui/ScriptManager.cs
index 049a5452cbf..8ab1f58f399 100644
--- a/mcs/class/referencesource/System.Web.Extensions/ui/ScriptManager.cs
+++ b/mcs/class/referencesource/System.Web.Extensions/ui/ScriptManager.cs
@@ -1060,8 +1060,8 @@ namespace System.Web.UI {
// PERF: Use field directly to avoid creating List if not already created
if (_scripts != null) {
foreach (ScriptReference scriptReference in _scripts) {
- // Fix for Dev11 Bug # 406984 : When user explicitly adds the MicrosoftAjax.[debug].js OR MicrosoftAjaxCore.[debug].js, we want to mark them as defining Sys so that
- // we can register the FrameworkLoadedCheck scripts after them.
+ // Fix for Dev11
+
if (scriptReference.IsAjaxFrameworkScript(this) && (scriptReference.Name.StartsWith("MicrosoftAjax.", StringComparison.OrdinalIgnoreCase) || scriptReference.Name.StartsWith("MicrosoftAjaxCore.", StringComparison.OrdinalIgnoreCase))) {
scriptReference.IsDefiningSys = true;
_scriptPathsDefiningSys.Add(scriptReference.EffectivePath);
diff --git a/mcs/class/referencesource/System.Web.Mobile/GlobalSuppressions.cs b/mcs/class/referencesource/System.Web.Mobile/GlobalSuppressions.cs
index 62007800287..87c20afb689 100644
--- a/mcs/class/referencesource/System.Web.Mobile/GlobalSuppressions.cs
+++ b/mcs/class/referencesource/System.Web.Mobile/GlobalSuppressions.cs
@@ -5,345 +5,345 @@ using System.Diagnostics.CodeAnalysis;
// These suppressions were automatically migrated from the FxCop baseline files.
#region $/DevDiv/Dev11/pu/MQAspNet/ddsuites/src/FxCop/Excludes/Triaged/System.Web.Mobile.dll.FxCop
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.ExternDll", Justification = @"[....]: used via reflection")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Mobile.DeviceFilterElement.#get_ElementProperty()", Justification = @"[....]: Breaking changes, can't fix.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Mobile.DeviceFilterElement.#GetDelegate()", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Mobile.DeviceFilterElement.#get_Properties()", Justification = @"[....]: Breaking changes, can't fix.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Mobile.DeviceFilterElementCollection.#AllKeys", Justification = @"[....]: Breaking changes, can't fix.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Mobile.DeviceFilterElementCollection.#get_CollectionType()", Justification = @"[....]: Breaking changes, can't fix.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Mobile.DeviceFilterElementCollection.#CreateNewElement()", Justification = @"[....]: Breaking changes, can't fix.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Mobile.DeviceFilterElementCollection.#get_ElementName()", Justification = @"[....]: Breaking changes, can't fix.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Mobile.DeviceFilterElementCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Breaking changes, can't fix.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Mobile.DeviceFiltersSection.#CreateDeviceFilters()", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Mobile.ErrorHandlerModule.#Application_Error(System.Object,System.EventArgs)", Justification = @"[....]: The exception object needs to be identified to report the exception error message.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.Mobile.ErrorHandlerModule.#System.Web.IHttpModule.Dispose()", Justification = @"[....]: From the comment of the code it is obsolete method that doesn't have any implementation. So it is not necessary for subclasses to use the implementation because it is empty.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.Mobile.ErrorHandlerModule.#System.Web.IHttpModule.Init(System.Web.HttpApplication)", Justification = @"[....]: From the comment of the code it is obsolete method that doesn't have any implementation. So it is not necessary for subclasses to use the implementation because it is empty.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Mobile.MobileCapabilities+EvaluateCapabilitiesDelegate.#.ctor(System.Object,System.IntPtr)", Justification = @"[....]: This delegate is indeed used in other source files. I'm not sure why this rule still complains about it. I have reported the issue to FxCop Bug report alias.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Mobile.MobileDeviceCapabilitiesSectionHandler.#Create(System.Object,System.Object,System.Xml.XmlNode)", Justification = @"[....]: Disregard this rule.")]
-[module: SuppressMessage("Microsoft.Design", "CA1059:MembersShouldNotExposeCertainConcreteTypes", Scope = "member", Target = "System.Web.Mobile.MobileDeviceCapabilitiesSectionHandler.#Create(System.Object,System.Object,System.Xml.XmlNode)", MessageId = "System.Xml.XmlNode", Justification = @"[....]: Breaking changes, can't fix.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength", Scope = "member", Target = "System.Web.Mobile.MobileDeviceCapabilitiesSectionHandler.#Create(System.Object,System.Object,System.Xml.XmlNode)", Justification = @"[....]: The testing of the string variable is explicitly divided into specific null and empty string cases for creating different error exceptions.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Mobile.SR.#GetObject(System.String)", Justification = @"[....]: I presume this internal code is created by the automatic SR class generation and it just happens that the code in the assembly doesn't call this method. So it is by design.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Mobile.SR.#get_Resources()", Justification = @"[....]: I presume this internal code is created by the automatic SR class generation and it just happens that the code in the assembly doesn't call this method. So it is by design.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.ExternDll", Justification = @"mattgi: used via reflection")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Mobile.DeviceFilterElement.#get_ElementProperty()", Justification = @"phuff: Breaking changes, can't fix.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Mobile.DeviceFilterElement.#GetDelegate()", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Mobile.DeviceFilterElement.#get_Properties()", Justification = @"phuff: Breaking changes, can't fix.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Mobile.DeviceFilterElementCollection.#AllKeys", Justification = @"phuff: Breaking changes, can't fix.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Mobile.DeviceFilterElementCollection.#get_CollectionType()", Justification = @"phuff: Breaking changes, can't fix.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Mobile.DeviceFilterElementCollection.#CreateNewElement()", Justification = @"phuff: Breaking changes, can't fix.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Mobile.DeviceFilterElementCollection.#get_ElementName()", Justification = @"phuff: Breaking changes, can't fix.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Mobile.DeviceFilterElementCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Breaking changes, can't fix.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Mobile.DeviceFiltersSection.#CreateDeviceFilters()", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Mobile.ErrorHandlerModule.#Application_Error(System.Object,System.EventArgs)", Justification = @"ftse: The exception object needs to be identified to report the exception error message.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.Mobile.ErrorHandlerModule.#System.Web.IHttpModule.Dispose()", Justification = @"ftse: From the comment of the code it is obsolete method that doesn't have any implementation. So it is not necessary for subclasses to use the implementation because it is empty.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.Mobile.ErrorHandlerModule.#System.Web.IHttpModule.Init(System.Web.HttpApplication)", Justification = @"ftse: From the comment of the code it is obsolete method that doesn't have any implementation. So it is not necessary for subclasses to use the implementation because it is empty.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Mobile.MobileCapabilities+EvaluateCapabilitiesDelegate.#.ctor(System.Object,System.IntPtr)", Justification = @"ftse: This delegate is indeed used in other source files. I'm not sure why this rule still complains about it. I have reported the issue to FxCop Bug report alias.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Mobile.MobileDeviceCapabilitiesSectionHandler.#Create(System.Object,System.Object,System.Xml.XmlNode)", Justification = @"phuff: Disregard this rule.")]
+[module: SuppressMessage("Microsoft.Design", "CA1059:MembersShouldNotExposeCertainConcreteTypes", Scope = "member", Target = "System.Web.Mobile.MobileDeviceCapabilitiesSectionHandler.#Create(System.Object,System.Object,System.Xml.XmlNode)", MessageId = "System.Xml.XmlNode", Justification = @"phuff: Breaking changes, can't fix.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength", Scope = "member", Target = "System.Web.Mobile.MobileDeviceCapabilitiesSectionHandler.#Create(System.Object,System.Object,System.Xml.XmlNode)", Justification = @"ftse: The testing of the string variable is explicitly divided into specific null and empty string cases for creating different error exceptions.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Mobile.SR.#GetObject(System.String)", Justification = @"ftse: I presume this internal code is created by the automatic SR class generation and it just happens that the code in the assembly doesn't call this method. So it is by design.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Mobile.SR.#get_Resources()", Justification = @"ftse: I presume this internal code is created by the automatic SR class generation and it just happens that the code in the assembly doesn't call this method. So it is by design.")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.AppliedDeviceFiltersDialog.#get_InExternalCacheEditMode()", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.AppliedDeviceFiltersDialog.#LoadAvailableFilters()", Justification = @"[....]: We don't want to allow any exceptions to bubble up from this designer call, an debug assert will be used instead.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.AppliedFiltersCachedState.#get_AppliedFilters()", Justification = @"[....]: called via reflection")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.AppliedFiltersCachedState.#ChoiceExistsInTreeView(System.Web.UI.Design.MobileControls.Util.DeviceFilterNode)", Justification = @"[....]: THese are needed for the native addresses.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1300:SpecifyMessageBoxOptions", Scope = "member", Target = "System.Web.UI.Design.MobileControls.BaseTemplatedMobileComponentEditor.#EditComponent(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Windows.Forms.IWin32Window)", Justification = @"[....]: RTL exclusion for mobile designer")]
-[module: SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", Scope = "member", Target = "System.Web.UI.Design.MobileControls.ChoicePropertyFilter.#Dispose()", Justification = @"[....]: underlying dispose method doesn't provide benefit")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.Design.MobileControls.ChoiceTreeNode.#.ctor(System.Web.UI.Design.MobileControls.Util.DeviceFilterNode,System.Web.UI.Design.MobileControls.IDeviceSpecificDesigner)", Justification = @"[....]: This is an internal class.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.Design.MobileControls.ChoiceTreeNode.#.ctor(System.Web.UI.Design.MobileControls.Util.DeviceFilterNode,System.Web.UI.MobileControls.DeviceSpecificChoice,System.Web.UI.Design.MobileControls.IDeviceSpecificDesigner)", Justification = @"[....]: This is an internal class.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.ChoiceTreeNode.#get_IncludeArgument()", Justification = @"[....]: The setter is used.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Design.MobileControls.CommandDesigner.#GetDesignTimeNormalHtml()", MessageId = "System.Web.UI.MobileControls.TextControl.set_Text(System.String)", Justification = @"[....]: brackets around string being displayed are not localized")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.DeviceFilterEditorDialog.#.ctor(System.ComponentModel.ISite)", Justification = @"[....]: called via reflection")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.DeviceFilterEditorDialog.#.ctor(System.ComponentModel.ISite,System.Web.UI.Design.MobileControls.Util.WebConfigManager)", Justification = @"[....]: We don't want to allow any exceptions to bubble up from this designer call, an error message will be rendered instead.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.DeviceFilterEditorDialog.#SaveFilters()", Justification = @"[....]: We don't want to allow any exceptions to bubble up from this designer call, an error message will be rendered instead.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Design.MobileControls.LabelDesigner.#GetDesignTimeNormalHtml()", MessageId = "System.Web.UI.MobileControls.TextControl.set_Text(System.String)", Justification = @"[....]: brackets around string are not localized")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Design.MobileControls.LinkDesigner.#GetDesignTimeNormalHtml()", MessageId = "System.Web.UI.MobileControls.TextControl.set_Text(System.String)", Justification = @"[....]: brackets around string are not localized")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1300:SpecifyMessageBoxOptions", Scope = "member", Target = "System.Web.UI.Design.MobileControls.ListComponentEditorPage.#OnAfterLabelEdit(System.Object,System.Windows.Forms.NodeLabelEditEventArgs)", Justification = @"[....]: RTL exclusion for mobile designer")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.ListGeneralPage.#SaveComponent()", Justification = @"[....]: We don't want to allow any exceptions to bubble up from this designtime dialog method, it's used to parse integers. A default number will be used instead.")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileContainerDesigner.#PreFilterProperties(System.Collections.IDictionary)", Justification = @"[....]: MobileContainerDesigner type demands UnmanagedCode security permission, therefore it's always fully-trusted.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileControlDesigner.#GetDesignTimeHtml()", Justification = @"[....]: We don't want to allow any exceptions to bubble up from this designer call. An error message will be rendered instead.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileControlPersister.#PersistControl(System.IO.TextWriter,System.Web.UI.Control)", Justification = @"[....]: called via reflection")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileControlPersister.#PersistControl(System.Web.UI.Control)", Justification = @"[....]: called via reflection")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileControlPersister.#PersistControl(System.Web.UI.Control,System.ComponentModel.Design.IDesignerHost)", Justification = @"[....]: called via reflection")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileTemplatedControlDesigner.#get_AppliedDeviceFilters()", Justification = @"[....]: called via reflection")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileTemplatedControlDesigner.#GetDesignTimeHtml()", Justification = @"[....]: We don't want to allow any exceptions to bubble up from this designer call, an error message will be rendered instead.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileTemplatedControlDesigner.#IsHTMLSchema(System.Web.UI.MobileControls.DeviceSpecificChoice)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileTemplatedControlDesigner.#get_PropertyOverrides()", Justification = @"[....]: called via reflection")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileUserControlDesigner.#.ctor()", Justification = @"[....]: legacy")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileUserControlDesigner.#GetDesignTimeHtml()", Justification = @"[....]: Safe.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods.#.ctor()", Justification = @"[....]: THese are needed for the native addresses.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods.#GetClientRect(System.IntPtr,System.Web.UI.Design.MobileControls.NativeMethods+RECT&)", Justification = @"[....]: called via reflection")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+COMRECT.#.ctor(System.Int32,System.Int32,System.Int32,System.Int32)", Justification = @"[....]: THese are needed to retrieve the native addresses.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+COMRECT.#FromXYWH(System.Int32,System.Int32,System.Int32,System.Int32)", Justification = @"[....]: THese are needed to retrieve the native addresses.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+DOCHOSTUIDBLCLICK", Justification = @"[....]: THese are needed for the native addresses.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+DOCHOSTUIFLAG", Justification = @"[....]: THese are needed to retrieve the native addresses.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+DOCHOSTUIINFO", Justification = @"[....]: THese are needed to retrieve the native addresses.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+FORMATETC", Justification = @"[....]: These types are needed for native addresses.")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+FORMATETC", Justification = @"[....]: These types are needed for native addresses.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+FORMATETC.#ptd", Justification = @"[....]: We don't really think this is a security issue. We might be leaking resources thru subclassing, but this will only affect designer in a minor way.")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+MSG", Justification = @"[....]: THese are needed for the native addresses.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+MSG.#hwnd", Justification = @"[....]: We don't really think this is a security issue. We might be leaking resources thru subclassing, but this will only affect designer in a minor way.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+MSG.#lParam", Justification = @"[....]: We don't really think this is a security issue. We might be leaking resources thru subclassing, but this will only affect designer in a minor way.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+MSG.#wParam", Justification = @"[....]: We don't really think this is a security issue. We might be leaking resources thru subclassing, but this will only affect designer in a minor way.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+OLECMD", Justification = @"[....]: THese are needed for the native addresses.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+POINT", Justification = @"[....]: THese are needed for the native addresses.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+RECT.#.ctor(System.Int32,System.Int32,System.Int32,System.Int32)", Justification = @"[....]: These are needed for native addresses.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+RECT.#FromXYWH(System.Int32,System.Int32,System.Int32,System.Int32)", Justification = @"[....]: These are needed for native addresses.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+STGMEDIUM", Justification = @"[....]: THese are needed to retrieve the native addresses.")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+STGMEDIUM", Justification = @"[....]: THese are needed to retrieve the native addresses.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+STGMEDIUM.#pUnkForRelease", Justification = @"[....]: We don't really think this is a security issue. We might be leaking resources thru subclassing, but this will only affect designer in a minor way.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+STGMEDIUM.#unionmember", Justification = @"[....]: We don't really think this is a security issue. We might be leaking resources thru subclassing, but this will only affect designer in a minor way.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+tagLOGPALETTE", Justification = @"[....]: These are needed for native addresses.")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+tagOIFI", Justification = @"[....]: THese are needed for the native addresses.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+tagOIFI.#hAccel", Justification = @"[....]: We don't really think this is a security issue. We might be leaking resources thru subclassing, but this will only affect designer in a minor way.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+tagOIFI.#hwndFrame", Justification = @"[....]: We don't really think this is a security issue. We might be leaking resources thru subclassing, but this will only affect designer in a minor way.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+tagOLEVERB", Justification = @"[....]: THese are needed for the native addresses.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+tagSIZE", Justification = @"[....]: These types are needed for native addresses.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+tagSIZEL", Justification = @"[....]: THese are needed for the native addresses.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.ObjectListGeneralPage.#SaveComponent()", Justification = @"[....]: We don't want to allow any exceptions to bubble up from this designtime dialog method, it's used to parse integers. A default number will be used instead.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Design.MobileControls.PhoneCallDesigner.#GetDesignTimeNormalHtml()", MessageId = "System.Web.UI.MobileControls.TextControl.set_Text(System.String)", Justification = @"[....]: brackets around string are not localized")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.PropertyOverridesCachedState.#FilterExistsInComboBox(System.Web.UI.Design.MobileControls.Util.DeviceFilterNode)", Justification = @"[....]: called via reflection")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Design.MobileControls.PropertyOverridesDialog.#.ctor(System.Web.UI.Design.MobileControls.IDeviceSpecificDesigner,System.Int32)", MessageId = "System.Web.UI.Design.MobileControls.InvalidChoiceException.#ctor(System.String)", Justification = @"[....]: '-' putting control id together not localized")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.AppliedDeviceFiltersDialog.#LoadAvailableFilters()", Justification = @"tinghaoy: We don't want to allow any exceptions to bubble up from this designer call, an debug assert will be used instead.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.AppliedFiltersCachedState.#get_AppliedFilters()", Justification = @"mattgi: called via reflection")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.AppliedFiltersCachedState.#ChoiceExistsInTreeView(System.Web.UI.Design.MobileControls.Util.DeviceFilterNode)", Justification = @"phuff: THese are needed for the native addresses.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1300:SpecifyMessageBoxOptions", Scope = "member", Target = "System.Web.UI.Design.MobileControls.BaseTemplatedMobileComponentEditor.#EditComponent(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Windows.Forms.IWin32Window)", Justification = @"mattgi: RTL exclusion for mobile designer")]
+[module: SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", Scope = "member", Target = "System.Web.UI.Design.MobileControls.ChoicePropertyFilter.#Dispose()", Justification = @"mattgi: underlying dispose method doesn't provide benefit")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.Design.MobileControls.ChoiceTreeNode.#.ctor(System.Web.UI.Design.MobileControls.Util.DeviceFilterNode,System.Web.UI.Design.MobileControls.IDeviceSpecificDesigner)", Justification = @"phuff: This is an internal class.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.Design.MobileControls.ChoiceTreeNode.#.ctor(System.Web.UI.Design.MobileControls.Util.DeviceFilterNode,System.Web.UI.MobileControls.DeviceSpecificChoice,System.Web.UI.Design.MobileControls.IDeviceSpecificDesigner)", Justification = @"phuff: This is an internal class.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.ChoiceTreeNode.#get_IncludeArgument()", Justification = @"phuff: The setter is used.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Design.MobileControls.CommandDesigner.#GetDesignTimeNormalHtml()", MessageId = "System.Web.UI.MobileControls.TextControl.set_Text(System.String)", Justification = @"mattgi: brackets around string being displayed are not localized")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.DeviceFilterEditorDialog.#.ctor(System.ComponentModel.ISite)", Justification = @"mattgi: called via reflection")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.DeviceFilterEditorDialog.#.ctor(System.ComponentModel.ISite,System.Web.UI.Design.MobileControls.Util.WebConfigManager)", Justification = @"tinghaoy: We don't want to allow any exceptions to bubble up from this designer call, an error message will be rendered instead.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.DeviceFilterEditorDialog.#SaveFilters()", Justification = @"tinghaoy: We don't want to allow any exceptions to bubble up from this designer call, an error message will be rendered instead.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Design.MobileControls.LabelDesigner.#GetDesignTimeNormalHtml()", MessageId = "System.Web.UI.MobileControls.TextControl.set_Text(System.String)", Justification = @"mattgi: brackets around string are not localized")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Design.MobileControls.LinkDesigner.#GetDesignTimeNormalHtml()", MessageId = "System.Web.UI.MobileControls.TextControl.set_Text(System.String)", Justification = @"mattgi: brackets around string are not localized")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1300:SpecifyMessageBoxOptions", Scope = "member", Target = "System.Web.UI.Design.MobileControls.ListComponentEditorPage.#OnAfterLabelEdit(System.Object,System.Windows.Forms.NodeLabelEditEventArgs)", Justification = @"mattgi: RTL exclusion for mobile designer")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.ListGeneralPage.#SaveComponent()", Justification = @"tinghaoy: We don't want to allow any exceptions to bubble up from this designtime dialog method, it's used to parse integers. A default number will be used instead.")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileContainerDesigner.#PreFilterProperties(System.Collections.IDictionary)", Justification = @"tinghaoy: MobileContainerDesigner type demands UnmanagedCode security permission, therefore it's always fully-trusted.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileControlDesigner.#GetDesignTimeHtml()", Justification = @"tinghaoy: We don't want to allow any exceptions to bubble up from this designer call. An error message will be rendered instead.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileControlPersister.#PersistControl(System.IO.TextWriter,System.Web.UI.Control)", Justification = @"mattgi: called via reflection")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileControlPersister.#PersistControl(System.Web.UI.Control)", Justification = @"mattgi: called via reflection")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileControlPersister.#PersistControl(System.Web.UI.Control,System.ComponentModel.Design.IDesignerHost)", Justification = @"mattgi: called via reflection")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileTemplatedControlDesigner.#get_AppliedDeviceFilters()", Justification = @"mattgi: called via reflection")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileTemplatedControlDesigner.#GetDesignTimeHtml()", Justification = @"tinghaoy: We don't want to allow any exceptions to bubble up from this designer call, an error message will be rendered instead.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileTemplatedControlDesigner.#IsHTMLSchema(System.Web.UI.MobileControls.DeviceSpecificChoice)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileTemplatedControlDesigner.#get_PropertyOverrides()", Justification = @"mattgi: called via reflection")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileUserControlDesigner.#.ctor()", Justification = @"mattgi: legacy")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.UI.Design.MobileControls.MobileUserControlDesigner.#GetDesignTimeHtml()", Justification = @"phuff: Safe.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods.#.ctor()", Justification = @"phuff: THese are needed for the native addresses.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods.#GetClientRect(System.IntPtr,System.Web.UI.Design.MobileControls.NativeMethods+RECT&)", Justification = @"mattgi: called via reflection")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+COMRECT.#.ctor(System.Int32,System.Int32,System.Int32,System.Int32)", Justification = @"phuff: THese are needed to retrieve the native addresses.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+COMRECT.#FromXYWH(System.Int32,System.Int32,System.Int32,System.Int32)", Justification = @"phuff: THese are needed to retrieve the native addresses.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+DOCHOSTUIDBLCLICK", Justification = @"phuff: THese are needed for the native addresses.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+DOCHOSTUIFLAG", Justification = @"phuff: THese are needed to retrieve the native addresses.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+DOCHOSTUIINFO", Justification = @"phuff: THese are needed to retrieve the native addresses.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+FORMATETC", Justification = @"phuff: These types are needed for native addresses.")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+FORMATETC", Justification = @"phuff: These types are needed for native addresses.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+FORMATETC.#ptd", Justification = @"tinghaoy: We don't really think this is a security issue. We might be leaking resources thru subclassing, but this will only affect designer in a minor way.")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+MSG", Justification = @"phuff: THese are needed for the native addresses.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+MSG.#hwnd", Justification = @"tinghaoy: We don't really think this is a security issue. We might be leaking resources thru subclassing, but this will only affect designer in a minor way.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+MSG.#lParam", Justification = @"tinghaoy: We don't really think this is a security issue. We might be leaking resources thru subclassing, but this will only affect designer in a minor way.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+MSG.#wParam", Justification = @"tinghaoy: We don't really think this is a security issue. We might be leaking resources thru subclassing, but this will only affect designer in a minor way.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+OLECMD", Justification = @"phuff: THese are needed for the native addresses.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+POINT", Justification = @"phuff: THese are needed for the native addresses.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+RECT.#.ctor(System.Int32,System.Int32,System.Int32,System.Int32)", Justification = @"phuff: These are needed for native addresses.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+RECT.#FromXYWH(System.Int32,System.Int32,System.Int32,System.Int32)", Justification = @"phuff: These are needed for native addresses.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+STGMEDIUM", Justification = @"phuff: THese are needed to retrieve the native addresses.")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+STGMEDIUM", Justification = @"phuff: THese are needed to retrieve the native addresses.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+STGMEDIUM.#pUnkForRelease", Justification = @"tinghaoy: We don't really think this is a security issue. We might be leaking resources thru subclassing, but this will only affect designer in a minor way.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+STGMEDIUM.#unionmember", Justification = @"tinghaoy: We don't really think this is a security issue. We might be leaking resources thru subclassing, but this will only affect designer in a minor way.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+tagLOGPALETTE", Justification = @"phuff: These are needed for native addresses.")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+tagOIFI", Justification = @"phuff: THese are needed for the native addresses.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+tagOIFI.#hAccel", Justification = @"tinghaoy: We don't really think this is a security issue. We might be leaking resources thru subclassing, but this will only affect designer in a minor way.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.Design.MobileControls.NativeMethods+tagOIFI.#hwndFrame", Justification = @"tinghaoy: We don't really think this is a security issue. We might be leaking resources thru subclassing, but this will only affect designer in a minor way.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+tagOLEVERB", Justification = @"phuff: THese are needed for the native addresses.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+tagSIZE", Justification = @"phuff: These types are needed for native addresses.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.NativeMethods+tagSIZEL", Justification = @"phuff: THese are needed for the native addresses.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.ObjectListGeneralPage.#SaveComponent()", Justification = @"tinghaoy: We don't want to allow any exceptions to bubble up from this designtime dialog method, it's used to parse integers. A default number will be used instead.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Design.MobileControls.PhoneCallDesigner.#GetDesignTimeNormalHtml()", MessageId = "System.Web.UI.MobileControls.TextControl.set_Text(System.String)", Justification = @"mattgi: brackets around string are not localized")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.PropertyOverridesCachedState.#FilterExistsInComboBox(System.Web.UI.Design.MobileControls.Util.DeviceFilterNode)", Justification = @"mattgi: called via reflection")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Design.MobileControls.PropertyOverridesDialog.#.ctor(System.Web.UI.Design.MobileControls.IDeviceSpecificDesigner,System.Int32)", MessageId = "System.Web.UI.Design.MobileControls.InvalidChoiceException.#ctor(System.String)", Justification = @"mattgi: '-' putting control id together not localized")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.PropertyOverridesDialog.#get_InExternalCacheEditMode()", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Design.MobileControls.PropertyOverridesDialog.#InitializeComponent()", MessageId = "System.Windows.Forms.Control.set_Text(System.String)", Justification = @"[....]: well-known name")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.Design.MobileControls.PropertyOverridesDialog.#RestoreState(System.String)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.SafeNativeMethods", Justification = @"[....]: These are needed for native addresses.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.SR", Justification = @"[....]: String Resource class")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1300:SpecifyMessageBoxOptions", Scope = "member", Target = "System.Web.UI.Design.MobileControls.StylesEditorDialog.#OnAfterLabelEdit(System.Object,System.Windows.Forms.NodeLabelEditEventArgs)", Justification = @"[....]: RTL exclusion for mobile designer")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1300:SpecifyMessageBoxOptions", Scope = "member", Target = "System.Web.UI.Design.MobileControls.StylesEditorDialog.#OnClickRemoveButton(System.Object,System.EventArgs)", Justification = @"[....]: RTL exclusion for mobile designer")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1300:SpecifyMessageBoxOptions", Scope = "member", Target = "System.Web.UI.Design.MobileControls.StyleSheetComponentEditor.#EditComponent(System.ComponentModel.ITypeDescriptorContext,System.Object)", Justification = @"[....]: RTL exclusion for mobile designer")]
-[module: SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", Scope = "member", Target = "System.Web.UI.Design.MobileControls.StyleSheetDesigner.#Dispose(System.Boolean)", MessageId = "_mergedUI", Justification = @"[....]: No time. Maybe next time...")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.Design.MobileControls.StyleSheetDesigner.#OnSelectedIndexChangedStylesComboBox(System.Object,System.EventArgs)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.Design.MobileControls.StyleSheetDesigner.#System.Web.UI.Design.MobileControls.IDeviceSpecificDesigner.get_CurrentDeviceSpecificID()", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Design.MobileControls.TextViewDesigner.#GetDesignTimeNormalHtml()", MessageId = "System.Web.UI.MobileControls.TextView.set_Text(System.String)", Justification = @"[....]: brackets around string are not localized")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerAdapterUtil.#GetMaxWidthToFit(System.Web.UI.MobileControls.MobileControl,System.Byte&)", Justification = @"[....]: We don't want to allow any exceptions to bubble up from this designer call, this will happen during view switching.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerAdRotatorAdapter.#.ctor()", Justification = @"[....]: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerCalendarAdapter.#.ctor()", Justification = @"[....]: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerCommandAdapter.#.ctor()", Justification = @"[....]: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerImageAdapter.#.ctor()", Justification = @"[....]: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerLabelAdapter.#.ctor()", Justification = @"[....]: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerLinkAdapter.#.ctor()", Justification = @"[....]: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerListAdapter.#.ctor()", Justification = @"[....]: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerObjectListAdapter.#.ctor()", Justification = @"[....]: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerSelectionListAdapter.#.ctor()", Justification = @"[....]: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerTextBoxAdapter.#.ctor()", Justification = @"[....]: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerTextViewAdapter", Justification = @"[....]: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerValidationSummaryAdapter.#.ctor()", Justification = @"[....]: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerValidatorAdapter.#.ctor()", Justification = @"[....]: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.ChoiceConverter.#.ctor()", Justification = @"[....]: Type instantiated by designer thru reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.DefaultCommandConverter.#.ctor()", Justification = @"[....]: Converters are instantiated thru reflection by designer.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.FontNameConverter.#.ctor()", Justification = @"[....]: Type instantiated by designer thru reflection.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.FontNameConverter.#GetStandardValues(System.ComponentModel.ITypeDescriptorContext)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.FormConverter.#.ctor()", Justification = @"[....]: Instantaited by designer thru reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.NavigateUrlConverter.#.ctor()", Justification = @"[....]: Converters are instantiated thru reflection by designer.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.StyleConverter.#.ctor()", Justification = @"[....]: Converters are instantiated thru reflection by designer.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.StyleReferenceConverter.#.ctor()", Justification = @"[....]: Converters are instantiated thru reflection by designer.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1807:AvoidUnnecessaryStringCreation", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.StyleReferenceConverter.#GetStyles(System.Object)", MessageId = "local10", Justification = @"[....]: Converters are instantiated thru reflection by designer.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.StyleReferenceConverter.#GetStyles(System.Object)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.ValidatedMobileControlConverter.#.ctor()", Justification = @"[....]: Converters are instantiated thru reflection by designer.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.Util.DesignerUtility", Justification = @"[....]: used via reflection")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.FileReader.#Read(System.Uri)", Justification = @"[....]: We don't want to allow any exceptions to bubble up from this designer call, a debug assert will be used instead.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.Util.ImageCreator", Justification = @"[....]: used via reflection")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.ImageCreator.#CreateBackgroundImage(System.Web.UI.Design.MobileControls.Util.TemporaryBitmapFile&,System.String,System.String,System.String,System.Boolean,System.Int32)", MessageId = "System.Web.UI.Design.MobileControls.Util.ImageCreator.GetHeight(System.String,System.Drawing.Font,System.Int32)", Justification = @"[....]: temporary variable")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.MSHTMLHost.#CreateTrident()", Justification = @"[....]: We don't want to allow any exceptions to bubble up from this designer call, a debug assert will be used instead.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.SimpleParser+TagStack.#Push(System.String)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.TridentSite.#ActivateDocument()", Justification = @"[....]: We don't want to allow any exceptions to bubble up from this designer call, a debug assert will be used instead.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.TridentSite.#CreateDocument()", Justification = @"[....]: We don't want to allow any exceptions to bubble up from this designer call, a debug assert will be used instead.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.UnsettableComboBox.#get_NotSetCompactText()", Justification = @"[....]: called via reflection")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.UnsettableComboBox.#set_NotSetCompactText(System.String)", Justification = @"[....]: called via reflection")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.UnsettableComboBox.#get_NotSetText()", Justification = @"[....]: called via reflection")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.Util.WbmpConverter", Justification = @"[....]: used via reflection")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.WebConfigManager.#LoadDocument()", Justification = @"[....]: A new exception will be thrown instead to hide the original XML error.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.MobileControls.AdRotator.#.ctor()", Justification = @"[....]: It's correct that the current code is not the best coding practice, but changing it would take a big risk of introducing breaking change because the timing of calling the virtual method is changed. And in fact, we do not expect the inheritor of the virtual method relies something on its constructor.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.AdRotator.#OnAdCreated(System.Web.UI.WebControls.AdCreatedEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.MobileControls.BaseValidator.#.ctor()", Justification = @"[....]: This would be a breaking change to change this current behavior.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.BaseValidator.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.BaseValidator.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.MobileControls.Calendar.#.ctor()", Justification = @"[....]: It's correct that the current code is not the best coding practice, but changing it would take a big risk of introducing breaking change because the timing of calling the virtual method is changed. And in fact, we do not expect the inheritor of the virtual method relies something on its constructor.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Calendar.#RaisePostBackEvent(System.String)", Justification = @"[....]: Need to keep this method for backward compat.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Calendar.#RaiseSelectionChangedEvent()", Justification = @"[....]: WebSelectionChanged event is raised from this method.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Command.#OnClick(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Command.#OnItemCommand(System.Web.UI.WebControls.CommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Command.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Command.#RaisePostBackEvent(System.String)", Justification = @"[....]: Implemnetation of IPostBackEventHandler")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Command.#RaisePostDataChangedEvent()", Justification = @"[....]: This is an interface implementation.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.ControlElement.#get_ElementProperty()", Justification = @"[....]: Classes we don't own or don't want to protect.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.ControlElement.#get_Properties()", Justification = @"[....]: Classes we don't own or don't want to protect.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.MobileControls.ControlElementCollection.#AllKeys", Justification = @"[....]: Breaking changes, can't fix.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.ControlElementCollection.#get_CollectionType()", Justification = @"[....]: Classes we don't own or don't want to protect.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.ControlElementCollection.#CreateNewElement()", Justification = @"[....]: Classes we don't own or don't want to protect.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.ControlElementCollection.#get_ElementName()", Justification = @"[....]: Classes we don't own or don't want to protect.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.ControlElementCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Classes we don't own or don't want to protect.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.ControlElementCollection.#get_ThrowOnDuplicate()", Justification = @"[....]: Classes we don't own or don't want to protect.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.DeviceElement.#get_ElementProperty()", Justification = @"[....]: Classes we don't own or don't want to protect.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.DeviceElement.#get_Properties()", Justification = @"[....]: Classes we don't own or don't want to protect.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.MobileControls.DeviceElementCollection.#AllKeys", Justification = @"[....]: Breaking changes, can't fix.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.DeviceElementCollection.#get_CollectionType()", Justification = @"[....]: Classes we don't own or don't want to protect.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.DeviceElementCollection.#CreateNewElement()", Justification = @"[....]: Classes we don't own or don't want to protect.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.DeviceElementCollection.#get_ElementName()", Justification = @"[....]: Classes we don't own or don't want to protect.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.DeviceElementCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Classes we don't own or don't want to protect.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.DeviceElementCollection.#get_ThrowOnDuplicate()", Justification = @"[....]: Classes we don't own or don't want to protect.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes", Scope = "type", Target = "System.Web.UI.MobileControls.DeviceOverridableAttribute", Justification = @"[....]: Breaking changes, can't fix.")]
-[module: SuppressMessage("Microsoft.Design", "CA1018:MarkAttributesWithAttributeUsage", Scope = "type", Target = "System.Web.UI.MobileControls.DeviceOverridableAttribute", Justification = @"[....]: Breaking changes, can't fix.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ErrorFormatterPage.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Form.#OnActivate(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Form.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Form.#OnDeactivate(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Form.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Form.#OnPaginated(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Form.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Form.#RaisePostBackEvent(System.String)", Justification = @"[....]: Implemnetation of IPostBackEventHandler")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.MobileControls.IControlAdapter.#LoadPostData(System.String,System.Collections.Specialized.NameValueCollection,System.Object,System.Boolean&)", MessageId = "3#", Justification = @"[....]: Breaking changes, can't fix.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.IControlAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.IControlAdapter.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.IControlAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.IControlAdapter.#OnUnload(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Image.#RaisePostBackEvent(System.String)", Justification = @"[....]: Implemnetation of IPostBackEventHandler")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.MobileControls.IndividualDeviceConfig+DeviceQualifiesDelegate.#.ctor(System.Object,System.IntPtr)", Justification = @"[....]: Called thru reflection.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Link.#RaisePostBackEvent(System.String)", Justification = @"[....]: Implemnetation of IPostBackEventHandler")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.List.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.List.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.List.#OnItemCommand(System.Web.UI.MobileControls.ListCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.List.#OnItemDataBind(System.Web.UI.MobileControls.ListDataBindEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.List.#OnLoadItems(System.Web.UI.MobileControls.LoadItemsEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.List.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.List.#RaisePostBackEvent(System.String)", Justification = @"[....]: Implemnetation of IPostBackEventHandler")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ListCommandEventArgs.#.ctor(System.Web.UI.MobileControls.MobileListItem,System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "2#", Justification = @"[....]: Reviewed.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Design.MobileControls.PropertyOverridesDialog.#InitializeComponent()", MessageId = "System.Windows.Forms.Control.set_Text(System.String)", Justification = @"mattgi: well-known name")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.Design.MobileControls.PropertyOverridesDialog.#RestoreState(System.String)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.SafeNativeMethods", Justification = @"phuff: These are needed for native addresses.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.SR", Justification = @"phuff: String Resource class")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1300:SpecifyMessageBoxOptions", Scope = "member", Target = "System.Web.UI.Design.MobileControls.StylesEditorDialog.#OnAfterLabelEdit(System.Object,System.Windows.Forms.NodeLabelEditEventArgs)", Justification = @"mattgi: RTL exclusion for mobile designer")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1300:SpecifyMessageBoxOptions", Scope = "member", Target = "System.Web.UI.Design.MobileControls.StylesEditorDialog.#OnClickRemoveButton(System.Object,System.EventArgs)", Justification = @"mattgi: RTL exclusion for mobile designer")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1300:SpecifyMessageBoxOptions", Scope = "member", Target = "System.Web.UI.Design.MobileControls.StyleSheetComponentEditor.#EditComponent(System.ComponentModel.ITypeDescriptorContext,System.Object)", Justification = @"mattgi: RTL exclusion for mobile designer")]
+[module: SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", Scope = "member", Target = "System.Web.UI.Design.MobileControls.StyleSheetDesigner.#Dispose(System.Boolean)", MessageId = "_mergedUI", Justification = @"phuff: No time. Maybe next time...")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.Design.MobileControls.StyleSheetDesigner.#OnSelectedIndexChangedStylesComboBox(System.Object,System.EventArgs)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.Design.MobileControls.StyleSheetDesigner.#System.Web.UI.Design.MobileControls.IDeviceSpecificDesigner.get_CurrentDeviceSpecificID()", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Design.MobileControls.TextViewDesigner.#GetDesignTimeNormalHtml()", MessageId = "System.Web.UI.MobileControls.TextView.set_Text(System.String)", Justification = @"mattgi: brackets around string are not localized")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerAdapterUtil.#GetMaxWidthToFit(System.Web.UI.MobileControls.MobileControl,System.Byte&)", Justification = @"tinghaoy: We don't want to allow any exceptions to bubble up from this designer call, this will happen during view switching.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerAdRotatorAdapter.#.ctor()", Justification = @"ftse: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerCalendarAdapter.#.ctor()", Justification = @"ftse: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerCommandAdapter.#.ctor()", Justification = @"ftse: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerImageAdapter.#.ctor()", Justification = @"ftse: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerLabelAdapter.#.ctor()", Justification = @"ftse: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerLinkAdapter.#.ctor()", Justification = @"ftse: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerListAdapter.#.ctor()", Justification = @"ftse: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerObjectListAdapter.#.ctor()", Justification = @"ftse: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerSelectionListAdapter.#.ctor()", Justification = @"ftse: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerTextBoxAdapter.#.ctor()", Justification = @"ftse: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerTextViewAdapter", Justification = @"ftse: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerValidationSummaryAdapter.#.ctor()", Justification = @"ftse: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Adapters.DesignerValidatorAdapter.#.ctor()", Justification = @"ftse: The class is invoked through reflection. It is specified as designer attribute on the corresponding control.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.ChoiceConverter.#.ctor()", Justification = @"tinghaoy: Type instantiated by designer thru reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.DefaultCommandConverter.#.ctor()", Justification = @"tinghaoy: Converters are instantiated thru reflection by designer.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.FontNameConverter.#.ctor()", Justification = @"tinghaoy: Type instantiated by designer thru reflection.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.FontNameConverter.#GetStandardValues(System.ComponentModel.ITypeDescriptorContext)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.FormConverter.#.ctor()", Justification = @"tinghaoy: Instantaited by designer thru reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.NavigateUrlConverter.#.ctor()", Justification = @"tinghaoy: Converters are instantiated thru reflection by designer.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.StyleConverter.#.ctor()", Justification = @"tinghaoy: Converters are instantiated thru reflection by designer.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.StyleReferenceConverter.#.ctor()", Justification = @"tinghaoy: Converters are instantiated thru reflection by designer.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1807:AvoidUnnecessaryStringCreation", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.StyleReferenceConverter.#GetStyles(System.Object)", MessageId = "local10", Justification = @"tinghaoy: Converters are instantiated thru reflection by designer.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.StyleReferenceConverter.#GetStyles(System.Object)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Converters.ValidatedMobileControlConverter.#.ctor()", Justification = @"tinghaoy: Converters are instantiated thru reflection by designer.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.Util.DesignerUtility", Justification = @"mattgi: used via reflection")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.FileReader.#Read(System.Uri)", Justification = @"tinghaoy: We don't want to allow any exceptions to bubble up from this designer call, a debug assert will be used instead.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.Util.ImageCreator", Justification = @"mattgi: used via reflection")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.ImageCreator.#CreateBackgroundImage(System.Web.UI.Design.MobileControls.Util.TemporaryBitmapFile&,System.String,System.String,System.String,System.Boolean,System.Int32)", MessageId = "System.Web.UI.Design.MobileControls.Util.ImageCreator.GetHeight(System.String,System.Drawing.Font,System.Int32)", Justification = @"mattgi: temporary variable")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.MSHTMLHost.#CreateTrident()", Justification = @"tinghaoy: We don't want to allow any exceptions to bubble up from this designer call, a debug assert will be used instead.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.SimpleParser+TagStack.#Push(System.String)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.TridentSite.#ActivateDocument()", Justification = @"tinghaoy: We don't want to allow any exceptions to bubble up from this designer call, a debug assert will be used instead.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.TridentSite.#CreateDocument()", Justification = @"tinghaoy: We don't want to allow any exceptions to bubble up from this designer call, a debug assert will be used instead.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.UnsettableComboBox.#get_NotSetCompactText()", Justification = @"mattgi: called via reflection")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.UnsettableComboBox.#set_NotSetCompactText(System.String)", Justification = @"mattgi: called via reflection")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.UnsettableComboBox.#get_NotSetText()", Justification = @"mattgi: called via reflection")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.Design.MobileControls.Util.WbmpConverter", Justification = @"mattgi: used via reflection")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Design.MobileControls.Util.WebConfigManager.#LoadDocument()", Justification = @"tinghaoy: A new exception will be thrown instead to hide the original XML error.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.MobileControls.AdRotator.#.ctor()", Justification = @"ftse: It's correct that the current code is not the best coding practice, but changing it would take a big risk of introducing breaking change because the timing of calling the virtual method is changed. And in fact, we do not expect the inheritor of the virtual method relies something on its constructor.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.AdRotator.#OnAdCreated(System.Web.UI.WebControls.AdCreatedEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.MobileControls.BaseValidator.#.ctor()", Justification = @"tinghaoy: This would be a breaking change to change this current behavior.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.BaseValidator.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.BaseValidator.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.MobileControls.Calendar.#.ctor()", Justification = @"ftse: It's correct that the current code is not the best coding practice, but changing it would take a big risk of introducing breaking change because the timing of calling the virtual method is changed. And in fact, we do not expect the inheritor of the virtual method relies something on its constructor.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Calendar.#RaisePostBackEvent(System.String)", Justification = @"tinghaoy: Need to keep this method for backward compat.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Calendar.#RaiseSelectionChangedEvent()", Justification = @"tinghaoy: WebSelectionChanged event is raised from this method.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Command.#OnClick(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Command.#OnItemCommand(System.Web.UI.WebControls.CommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Command.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Command.#RaisePostBackEvent(System.String)", Justification = @"tinghaoy: Implemnetation of IPostBackEventHandler")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Command.#RaisePostDataChangedEvent()", Justification = @"tinghaoy: This is an interface implementation.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.ControlElement.#get_ElementProperty()", Justification = @"phuff: Classes we don't own or don't want to protect.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.ControlElement.#get_Properties()", Justification = @"phuff: Classes we don't own or don't want to protect.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.MobileControls.ControlElementCollection.#AllKeys", Justification = @"phuff: Breaking changes, can't fix.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.ControlElementCollection.#get_CollectionType()", Justification = @"phuff: Classes we don't own or don't want to protect.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.ControlElementCollection.#CreateNewElement()", Justification = @"phuff: Classes we don't own or don't want to protect.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.ControlElementCollection.#get_ElementName()", Justification = @"phuff: Classes we don't own or don't want to protect.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.ControlElementCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Classes we don't own or don't want to protect.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.ControlElementCollection.#get_ThrowOnDuplicate()", Justification = @"phuff: Classes we don't own or don't want to protect.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.DeviceElement.#get_ElementProperty()", Justification = @"phuff: Classes we don't own or don't want to protect.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.DeviceElement.#get_Properties()", Justification = @"phuff: Classes we don't own or don't want to protect.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.MobileControls.DeviceElementCollection.#AllKeys", Justification = @"phuff: Breaking changes, can't fix.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.DeviceElementCollection.#get_CollectionType()", Justification = @"phuff: Classes we don't own or don't want to protect.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.DeviceElementCollection.#CreateNewElement()", Justification = @"phuff: Classes we don't own or don't want to protect.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.DeviceElementCollection.#get_ElementName()", Justification = @"phuff: Classes we don't own or don't want to protect.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.DeviceElementCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Classes we don't own or don't want to protect.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.MobileControls.DeviceElementCollection.#get_ThrowOnDuplicate()", Justification = @"phuff: Classes we don't own or don't want to protect.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes", Scope = "type", Target = "System.Web.UI.MobileControls.DeviceOverridableAttribute", Justification = @"phuff: Breaking changes, can't fix.")]
+[module: SuppressMessage("Microsoft.Design", "CA1018:MarkAttributesWithAttributeUsage", Scope = "type", Target = "System.Web.UI.MobileControls.DeviceOverridableAttribute", Justification = @"phuff: Breaking changes, can't fix.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ErrorFormatterPage.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Form.#OnActivate(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Form.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Form.#OnDeactivate(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Form.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Form.#OnPaginated(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Form.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Form.#RaisePostBackEvent(System.String)", Justification = @"tinghaoy: Implemnetation of IPostBackEventHandler")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.MobileControls.IControlAdapter.#LoadPostData(System.String,System.Collections.Specialized.NameValueCollection,System.Object,System.Boolean&)", MessageId = "3#", Justification = @"phuff: Breaking changes, can't fix.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.IControlAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.IControlAdapter.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.IControlAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.IControlAdapter.#OnUnload(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Image.#RaisePostBackEvent(System.String)", Justification = @"tinghaoy: Implemnetation of IPostBackEventHandler")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.MobileControls.IndividualDeviceConfig+DeviceQualifiesDelegate.#.ctor(System.Object,System.IntPtr)", Justification = @"tinghaoy: Called thru reflection.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Link.#RaisePostBackEvent(System.String)", Justification = @"tinghaoy: Implemnetation of IPostBackEventHandler")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.List.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.List.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.List.#OnItemCommand(System.Web.UI.MobileControls.ListCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.List.#OnItemDataBind(System.Web.UI.MobileControls.ListDataBindEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.List.#OnLoadItems(System.Web.UI.MobileControls.LoadItemsEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.List.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.List.#RaisePostBackEvent(System.String)", Justification = @"tinghaoy: Implemnetation of IPostBackEventHandler")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ListCommandEventArgs.#.ctor(System.Web.UI.MobileControls.MobileListItem,System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "2#", Justification = @"phuff: Reviewed.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.MobileControls.ListCommandEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.MobileControls.ListDataBindEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.LiteralTextParser.#TagNameToType(System.String)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.LiteralTextParser.#TagNameToType(System.String)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.MobileControls.LoadItemsEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.MobileControls.MobileCategoryAttribute.#get_DeviceSpecific()", Justification = @"[....]: Used by designer to specify category.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobileControl.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobileControl.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.MobileControl.#OnLoad(System.EventArgs)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobileControl.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobileControl.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobileControl.#OnUnload(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobileListItem.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.MobileListItemCollection.#SetAll(System.Web.UI.MobileControls.MobileListItem[])", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#OnDeviceCustomize(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#OnError(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#OnPreInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#OnUnload(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#OnViewStateExpire(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#RaisePostBackEvent(System.Web.UI.IPostBackEventHandler,System.String)", Justification = @"[....]: Implementation of IPostBackEventHandler")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#OnItemCommand(System.Web.UI.MobileControls.ObjectListCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#OnItemDataBind(System.Web.UI.MobileControls.ObjectListDataBindEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#OnItemSelect(System.Web.UI.MobileControls.ObjectListSelectEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#OnLoadItems(System.Web.UI.MobileControls.LoadItemsEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#OnShowItemCommands(System.Web.UI.MobileControls.ObjectListShowCommandsEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#RaiseDefaultItemEvent(System.Int32)", Justification = @"[....]: Implementation of IPostBackEventHandler")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#RaisePostBackEvent(System.String)", Justification = @"[....]: Implemnetation of IPostBackEventHandler")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectListCommandEventArgs.#.ctor(System.Web.UI.MobileControls.ObjectListItem,System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "2#", Justification = @"[....]: Reviewed.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.MobileControls.MobileCategoryAttribute.#get_DeviceSpecific()", Justification = @"tinghaoy: Used by designer to specify category.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobileControl.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobileControl.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.MobileControl.#OnLoad(System.EventArgs)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobileControl.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobileControl.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobileControl.#OnUnload(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobileListItem.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.MobileListItemCollection.#SetAll(System.Web.UI.MobileControls.MobileListItem[])", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#OnDeviceCustomize(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#OnError(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#OnPreInit(System.EventArgs)", MessageId = "0#", Justification = @"tinghaoy: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#OnUnload(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#OnViewStateExpire(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.MobilePage.#RaisePostBackEvent(System.Web.UI.IPostBackEventHandler,System.String)", Justification = @"tinghaoy: Implementation of IPostBackEventHandler")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#OnItemCommand(System.Web.UI.MobileControls.ObjectListCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#OnItemDataBind(System.Web.UI.MobileControls.ObjectListDataBindEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#OnItemSelect(System.Web.UI.MobileControls.ObjectListSelectEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#OnLoadItems(System.Web.UI.MobileControls.LoadItemsEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#OnShowItemCommands(System.Web.UI.MobileControls.ObjectListShowCommandsEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#RaiseDefaultItemEvent(System.Int32)", Justification = @"tinghaoy: Implementation of IPostBackEventHandler")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectList.#RaisePostBackEvent(System.String)", Justification = @"tinghaoy: Implemnetation of IPostBackEventHandler")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectListCommandEventArgs.#.ctor(System.Web.UI.MobileControls.ObjectListItem,System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "2#", Justification = @"phuff: Reviewed.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.MobileControls.ObjectListCommandEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.MobileControls.ObjectListDataBindEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectListItem.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ObjectListItem.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Reviewed.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.MobileControls.ObjectListSelectEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.MobileControls.ObjectListShowCommandsEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.PagedControl.#OnLoadItems(System.Web.UI.MobileControls.LoadItemsEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.PagedControl.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2233:OperationsShouldNotOverflow", Scope = "member", Target = "System.Web.UI.MobileControls.PagerStyle.#GetNextPageText(System.Int32)", MessageId = "currentPageIndex+1", Justification = @"[....]: This code is used just to display the link text.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2233:OperationsShouldNotOverflow", Scope = "member", Target = "System.Web.UI.MobileControls.PagerStyle.#GetPreviousPageText(System.Int32)", MessageId = "currentPageIndex-1", Justification = @"[....]: This code is used just to display the link text.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Panel.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.MobileControls.PersistNameAttribute.#Default", Justification = @"[....]: PersistNameAttribute is immutable.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.PersistNameAttribute.#GetHashCode()", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.PhoneCall.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.PhoneCall.#RaisePostBackEvent(System.String)", Justification = @"[....]: Implemnetation of IPostBackEventHandler")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.MobileControls.RangeValidator+WebBaseCompareValidator.#.ctor()", Justification = @"[....]: The class is there for exposing a static method for RangeValidator to be used. Details are already described as comment in RangeValidator source file.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.SelectionList.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.SelectionList.#OnItemDataBind(System.Web.UI.MobileControls.ListDataBindEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.SelectionList.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.SelectionList.#OnSelectedIndexChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.SelectionList.#RaisePostDataChangedEvent()", Justification = @"[....]: Implemnetation of IPostBackEventHandler")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.MobileControls.SR", Justification = @"[....]: By design. This class exists solely to make the class SR available members of this namespace. It delegates completely to System.Web.Mobile.SR.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.StyleSheet.#AddParsedSubObject(System.Object)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.StyleSheet.#get_Item(System.String)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.StyleSheet.#set_Item(System.String,System.Web.UI.MobileControls.Style)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.StyleSheet.#LoadViewState(System.Object)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.StyleSheetControlBuilder.#GetChildControlType(System.String,System.Collections.IDictionary)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.TextBox.#OnTextChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.TextBox.#RaisePostDataChangedEvent()", Justification = @"[....]: OnTextChanged is invoked with this method.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.MobileControls.ValidationSummary.#.ctor()", Justification = @"[....]: It's correct that the current code is not the best coding practice, but changing it would take a big risk of introducing breaking change because the timing of calling the virtual method is changed. And in fact, we do not expect the inheritor of the virtual method relies something on its constructor.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ValidationSummary.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.ChtmlCalendarAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.ChtmlCalendarAdapter.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.ChtmlCalendarAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.ControlAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.ControlAdapter.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.ControlAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.ControlAdapter.#OnUnload(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.DivStyleTag.#get_AlignmentWritten()", Justification = @"[....]: This is indeed being used within the same file.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.HtmlFormAdapter.#Render(System.Web.UI.MobileControls.Adapters.HtmlMobileTextWriter)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.HtmlMobileTextWriter.#get_ShouldEnsureStyle()", Justification = @"[....]: The setter is called, and we shouldn't remove the getter and leave the setter.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.HtmlObjectListAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.HtmlObjectListAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.HtmlPanelAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.HtmlSelectionListAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.HtmlTextBoxAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.HtmlValidationSummaryAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.SR.#XhtmlCssHandler_IdNotPresent", Justification = @"[....]: They are sesource string ID's that have been in the resource files for long time and the resources should have been localized already. It is too costly to change the ID names now.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.SR.#XhtmlCssHandler_StylesheetNotFound", Justification = @"[....]: They are sesource string ID's that have been in the resource files for long time and the resources should have been localized already. It is too costly to change the ID names now.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.SR.#XhtmlMobileTextWriter_CacheKeyNotSet", Justification = @"[....]: They are sesource string ID's that have been in the resource files for long time and the resources should have been localized already. It is too costly to change the ID names now.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.SR.#XhtmlMobileTextWriter_SessionKeyNotSet", Justification = @"[....]: They are sesource string ID's that have been in the resource files for long time and the resources should have been localized already. It is too costly to change the ID names now.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.SR.#XhtmlObjectListAdapter_InvalidPostedData", Justification = @"[....]: They are sesource string ID's that have been in the resource files for long time and the resources should have been localized already. It is too costly to change the ID names now.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.UpWmlMobileTextWriter.#RenderText(System.String,System.Boolean,System.Boolean)", MessageId = "System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter.RenderText(System.String,System.Boolean,System.Boolean)", Justification = @"[....]: The literal is culture independent, no need to be retrieved from resource")]
-[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.UpWmlMobileTextWriter.#RenderText(System.String,System.Boolean,System.Boolean)", MessageId = "nbsp", Justification = @"[....]: It is a non-breaking space character in markup. It is by design.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlCalendarAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlCalendarAdapter.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlCalendarAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlCalendarAdapter.#Render(System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter)", MessageId = "System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter.RenderText(System.String)", Justification = @"[....]: The literal is culture independent, no need to be retrieved from resource")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlControlAdapter.#GetPostBackValue()", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlListAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1807:AvoidUnnecessaryStringCreation", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter.#NameConflicts(System.String)", MessageId = "name", Justification = @"[....]: It might be more efficient to convert to lower-cases once because the lower-cased string is checked against 3 different lower-case strings.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1807:AvoidUnnecessaryStringCreation", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter.#NameConflicts(System.String)", MessageId = "stack0", Justification = @"[....]: The code is intended to check if a string variable itself has all lowercase letters. Also this code is in a Debug.Assert(), so it doesn't hurt actual performance.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter.#NameConflicts(System.String)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlObjectListAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlSelectionListAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlSelectionListAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlTextBoxAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlValidationSummaryAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.Doctype", MessageId = "Doctype", Justification = @"[....]: The namings have been established since Everett DU's. Changing the names might create confusion when users are migrating from Everett to Whidbey. Hence just keep them as they are.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlCalendarAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: It is part of the overall adapter model to provide such similar lifecycle methods to match the corresponding ones in controls. This method does not invoke any event handler method, so the security concern described in the rule does not apply in this case.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlCalendarAdapter.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: It is part of the overall adapter model to provide such similar lifecycle methods to match the corresponding ones in controls. This method does not invoke any event handler method, so the security concern described in the rule does not apply in this case.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlCalendarAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: It is part of the overall adapter model to provide such similar lifecycle methods to match the corresponding ones in controls. This method does not invoke any event handler method, so the security concern described in the rule does not apply in this case.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#ConditionalEnterFormat(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter,System.Web.UI.MobileControls.Style)", Justification = @"[....]: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#ConditionalEnterLayout(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter,System.Web.UI.MobileControls.Style)", Justification = @"[....]: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#ConditionalExitFormat(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter,System.Web.UI.MobileControls.Style)", Justification = @"[....]: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#ConditionalExitLayout(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter,System.Web.UI.MobileControls.Style)", Justification = @"[....]: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#ConditionalRenderCustomAttribute(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter,System.String,System.String)", Justification = @"[....]: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#GetCustomAttributeValue(System.Web.UI.MobileControls.MobileControl,System.String)", Justification = @"[....]: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#PreprocessQueryString(System.String)", MessageId = "0#", Justification = @"[....]: It is a well-known name that we need to keep the same spelling.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#Render(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter)", Justification = @"[....]: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#RenderEndLink(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter)", Justification = @"[....]: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlFormatStyleClass.#.ctor(System.Web.UI.MobileControls.Style,System.Web.UI.MobileControls.Adapters.XhtmlAdapters.StyleFilter)", Justification = @"[....]: It's correct that the current code is not the best coding practice, but changing it would take a big risk of introducing breaking change because the timing of calling the virtual method is changed. And in fact, we do not expect the inheritor of the virtual method relies something on its constructor.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlImageAdapter.#RenderImage(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter)", Justification = @"[....]: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlLayoutStyleClass.#.ctor(System.Web.UI.MobileControls.Style,System.Web.UI.MobileControls.Adapters.XhtmlAdapters.StyleFilter)", Justification = @"[....]: It's correct that the current code is not the best coding practice, but changing it would take a big risk of introducing breaking change because the timing of calling the virtual method is changed. And in fact, we do not expect the inheritor of the virtual method relies something on its constructor.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#AddOnEnterForwardSetVar(System.String)", Justification = @"[....]: The names are specified as they are intended to be. Changing them might confuse users who migrate applications from Everett DU's to Whidbey as those are the names used in Everett DU's.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#AddOnEnterForwardSetVar(System.String,System.String)", Justification = @"[....]: The names are specified as they are intended to be. Changing them might confuse users who migrate applications from Everett DU's to Whidbey as those are the names used in Everett DU's.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1807:AvoidUnnecessaryStringCreation", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#IsBlockElement(System.String)", MessageId = "tag", Justification = @"[....]: Actually the current code might be more efficient because it compares to many strings for matching. It might be better to convert to a lower case string once.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#IsBlockElement(System.String)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#SetBodyStyle(System.Web.UI.MobileControls.Style)", Justification = @"[....]: The names are specified as they are intended to be. Changing them might confuse users who migrate applications from Everett DU's to Whidbey as those are the names used in Everett DU's.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#SetCacheKey(System.Web.Caching.Cache)", Justification = @"[....]: The names are specified as they are intended to be. Changing them might confuse users who migrate applications from Everett DU's to Whidbey as those are the names used in Everett DU's.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#SetSessionKey(System.Web.SessionState.HttpSessionState)", Justification = @"[....]: The names are specified as they are intended to be. Changing them might confuse users who migrate applications from Everett DU's to Whidbey as those are the names used in Everett DU's.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#UseDivsForBreaks", MessageId = "Divs", Justification = @"[....]: The namings have been established since Everett DU's. Changing the names might create confusion when users are migrating from Everett to Whidbey. Hence just keep them as they are.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#WriteDoctypeDeclaration(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.Doctype)", MessageId = "Doctype", Justification = @"[....]: The namings have been established since Everett DU's. Changing the names might create confusion when users are migrating from Everett to Whidbey. Hence just keep them as they are.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlObjectListAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: It is part of the overall adapter model to provide such similar lifecycle methods to match the corresponding ones in controls. This method does not invoke any event handler method, so the security concern described in the rule does not apply in this case.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlPageAdapter.#CookielessDataDictionary", Justification = @"[....]: The current code has this property being set in MobilePage.cs, so it is by design.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlPageAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: It is part of the overall adapter model to provide such similar lifecycle methods to match the corresponding ones in controls. This method does not invoke any event handler method, so the security concern described in the rule does not apply in this case.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlStyleClass.#BuildStyleClassAlignment(System.Text.StringBuilder)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlStyleClass.#BuildStyleClassBackgroundColor(System.Text.StringBuilder)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlStyleClass.#BuildStyleClassForegroundColor(System.Text.StringBuilder)", Justification = @"[....]: Code reviewed by [....]- no security issues. Not fixing to reduce churn.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlTextBoxAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: It is part of the overall adapter model to provide such similar lifecycle methods to match the corresponding ones in controls. This method does not invoke any event handler method, so the security concern described in the rule does not apply in this case.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlValidationSummaryAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: It is part of the overall adapter model to provide such similar lifecycle methods to match the corresponding ones in controls. This method does not invoke any event handler method, so the security concern described in the rule does not apply in this case.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "autogenerated", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "Cloneable.", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "databound", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "databound.", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "datasource.", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "directkey", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "newline", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "postback", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "Prev", Justification = @"[....]: By-design.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "softkey", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "softkeys", Justification = @"[....]: softkeys is the accepted spelling")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "softkeys.", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "templating", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "Templating", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "validator.", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "viewstate", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "Viewstate", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "Yy", Justification = @"[....]: By-design.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "Zz", Justification = @"[....]: By-design.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.UI.MobileControls.Adapters.resources", MessageId = "databound", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.UI.MobileControls.Adapters.resources", MessageId = "postback", Justification = @"[....]: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.PagedControl.#OnLoadItems(System.Web.UI.MobileControls.LoadItemsEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.PagedControl.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2233:OperationsShouldNotOverflow", Scope = "member", Target = "System.Web.UI.MobileControls.PagerStyle.#GetNextPageText(System.Int32)", MessageId = "currentPageIndex+1", Justification = @"tinghaoy: This code is used just to display the link text.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2233:OperationsShouldNotOverflow", Scope = "member", Target = "System.Web.UI.MobileControls.PagerStyle.#GetPreviousPageText(System.Int32)", MessageId = "currentPageIndex-1", Justification = @"tinghaoy: This code is used just to display the link text.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Panel.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.MobileControls.PersistNameAttribute.#Default", Justification = @"tinghaoy: PersistNameAttribute is immutable.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.PersistNameAttribute.#GetHashCode()", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.PhoneCall.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.PhoneCall.#RaisePostBackEvent(System.String)", Justification = @"tinghaoy: Implemnetation of IPostBackEventHandler")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.MobileControls.RangeValidator+WebBaseCompareValidator.#.ctor()", Justification = @"ftse: The class is there for exposing a static method for RangeValidator to be used. Details are already described as comment in RangeValidator source file.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.SelectionList.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.SelectionList.#OnItemDataBind(System.Web.UI.MobileControls.ListDataBindEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.SelectionList.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.SelectionList.#OnSelectedIndexChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.SelectionList.#RaisePostDataChangedEvent()", Justification = @"tinghaoy: Implemnetation of IPostBackEventHandler")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.MobileControls.SR", Justification = @"tinghaoy: By design. This class exists solely to make the class SR available members of this namespace. It delegates completely to System.Web.Mobile.SR.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.StyleSheet.#AddParsedSubObject(System.Object)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.StyleSheet.#get_Item(System.String)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.StyleSheet.#set_Item(System.String,System.Web.UI.MobileControls.Style)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.StyleSheet.#LoadViewState(System.Object)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.StyleSheetControlBuilder.#GetChildControlType(System.String,System.Collections.IDictionary)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.TextBox.#OnTextChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.TextBox.#RaisePostDataChangedEvent()", Justification = @"tinghaoy: OnTextChanged is invoked with this method.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.MobileControls.ValidationSummary.#.ctor()", Justification = @"ftse: It's correct that the current code is not the best coding practice, but changing it would take a big risk of introducing breaking change because the timing of calling the virtual method is changed. And in fact, we do not expect the inheritor of the virtual method relies something on its constructor.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.ValidationSummary.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.ChtmlCalendarAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.ChtmlCalendarAdapter.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.ChtmlCalendarAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.ControlAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.ControlAdapter.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.ControlAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.ControlAdapter.#OnUnload(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.DivStyleTag.#get_AlignmentWritten()", Justification = @"ftse: This is indeed being used within the same file.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.HtmlFormAdapter.#Render(System.Web.UI.MobileControls.Adapters.HtmlMobileTextWriter)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.HtmlMobileTextWriter.#get_ShouldEnsureStyle()", Justification = @"phuff: The setter is called, and we shouldn't remove the getter and leave the setter.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.HtmlObjectListAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.HtmlObjectListAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.HtmlPanelAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.HtmlSelectionListAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.HtmlTextBoxAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.HtmlValidationSummaryAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.SR.#XhtmlCssHandler_IdNotPresent", Justification = @"ftse: They are sesource string ID's that have been in the resource files for long time and the resources should have been localized already. It is too costly to change the ID names now.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.SR.#XhtmlCssHandler_StylesheetNotFound", Justification = @"ftse: They are sesource string ID's that have been in the resource files for long time and the resources should have been localized already. It is too costly to change the ID names now.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.SR.#XhtmlMobileTextWriter_CacheKeyNotSet", Justification = @"ftse: They are sesource string ID's that have been in the resource files for long time and the resources should have been localized already. It is too costly to change the ID names now.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.SR.#XhtmlMobileTextWriter_SessionKeyNotSet", Justification = @"ftse: They are sesource string ID's that have been in the resource files for long time and the resources should have been localized already. It is too costly to change the ID names now.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.SR.#XhtmlObjectListAdapter_InvalidPostedData", Justification = @"ftse: They are sesource string ID's that have been in the resource files for long time and the resources should have been localized already. It is too costly to change the ID names now.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.UpWmlMobileTextWriter.#RenderText(System.String,System.Boolean,System.Boolean)", MessageId = "System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter.RenderText(System.String,System.Boolean,System.Boolean)", Justification = @"ftse: The literal is culture independent, no need to be retrieved from resource")]
+[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.UpWmlMobileTextWriter.#RenderText(System.String,System.Boolean,System.Boolean)", MessageId = "nbsp", Justification = @"ftse: It is a non-breaking space character in markup. It is by design.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlCalendarAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlCalendarAdapter.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlCalendarAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlCalendarAdapter.#Render(System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter)", MessageId = "System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter.RenderText(System.String)", Justification = @"ftse: The literal is culture independent, no need to be retrieved from resource")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlControlAdapter.#GetPostBackValue()", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlListAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1807:AvoidUnnecessaryStringCreation", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter.#NameConflicts(System.String)", MessageId = "name", Justification = @"ftse: It might be more efficient to convert to lower-cases once because the lower-cased string is checked against 3 different lower-case strings.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1807:AvoidUnnecessaryStringCreation", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter.#NameConflicts(System.String)", MessageId = "stack0", Justification = @"ftse: The code is intended to check if a string variable itself has all lowercase letters. Also this code is in a Debug.Assert(), so it doesn't hurt actual performance.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter.#NameConflicts(System.String)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlObjectListAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlSelectionListAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlSelectionListAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlTextBoxAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.WmlValidationSummaryAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.Doctype", MessageId = "Doctype", Justification = @"ftse: The namings have been established since Everett DU's. Changing the names might create confusion when users are migrating from Everett to Whidbey. Hence just keep them as they are.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlCalendarAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"ftse: It is part of the overall adapter model to provide such similar lifecycle methods to match the corresponding ones in controls. This method does not invoke any event handler method, so the security concern described in the rule does not apply in this case.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlCalendarAdapter.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"ftse: It is part of the overall adapter model to provide such similar lifecycle methods to match the corresponding ones in controls. This method does not invoke any event handler method, so the security concern described in the rule does not apply in this case.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlCalendarAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"ftse: It is part of the overall adapter model to provide such similar lifecycle methods to match the corresponding ones in controls. This method does not invoke any event handler method, so the security concern described in the rule does not apply in this case.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#ConditionalEnterFormat(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter,System.Web.UI.MobileControls.Style)", Justification = @"ftse: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#ConditionalEnterLayout(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter,System.Web.UI.MobileControls.Style)", Justification = @"ftse: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#ConditionalExitFormat(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter,System.Web.UI.MobileControls.Style)", Justification = @"ftse: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#ConditionalExitLayout(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter,System.Web.UI.MobileControls.Style)", Justification = @"ftse: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#ConditionalRenderCustomAttribute(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter,System.String,System.String)", Justification = @"ftse: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#GetCustomAttributeValue(System.Web.UI.MobileControls.MobileControl,System.String)", Justification = @"ftse: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#PreprocessQueryString(System.String)", MessageId = "0#", Justification = @"ftse: It is a well-known name that we need to keep the same spelling.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#Render(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter)", Justification = @"ftse: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlControlAdapter.#RenderEndLink(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter)", Justification = @"ftse: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlFormatStyleClass.#.ctor(System.Web.UI.MobileControls.Style,System.Web.UI.MobileControls.Adapters.XhtmlAdapters.StyleFilter)", Justification = @"ftse: It's correct that the current code is not the best coding practice, but changing it would take a big risk of introducing breaking change because the timing of calling the virtual method is changed. And in fact, we do not expect the inheritor of the virtual method relies something on its constructor.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlImageAdapter.#RenderImage(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter)", Justification = @"ftse: The design pattern is to use the corresponding writer for a particular markup. So we should keep it consistent that Xhtml control adapters use XhtmlMobileTextWriter as the input parameter in their method signatures.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlLayoutStyleClass.#.ctor(System.Web.UI.MobileControls.Style,System.Web.UI.MobileControls.Adapters.XhtmlAdapters.StyleFilter)", Justification = @"ftse: It's correct that the current code is not the best coding practice, but changing it would take a big risk of introducing breaking change because the timing of calling the virtual method is changed. And in fact, we do not expect the inheritor of the virtual method relies something on its constructor.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#AddOnEnterForwardSetVar(System.String)", Justification = @"ftse: The names are specified as they are intended to be. Changing them might confuse users who migrate applications from Everett DU's to Whidbey as those are the names used in Everett DU's.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#AddOnEnterForwardSetVar(System.String,System.String)", Justification = @"ftse: The names are specified as they are intended to be. Changing them might confuse users who migrate applications from Everett DU's to Whidbey as those are the names used in Everett DU's.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1807:AvoidUnnecessaryStringCreation", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#IsBlockElement(System.String)", MessageId = "tag", Justification = @"ftse: Actually the current code might be more efficient because it compares to many strings for matching. It might be better to convert to a lower case string once.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#IsBlockElement(System.String)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#SetBodyStyle(System.Web.UI.MobileControls.Style)", Justification = @"ftse: The names are specified as they are intended to be. Changing them might confuse users who migrate applications from Everett DU's to Whidbey as those are the names used in Everett DU's.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#SetCacheKey(System.Web.Caching.Cache)", Justification = @"ftse: The names are specified as they are intended to be. Changing them might confuse users who migrate applications from Everett DU's to Whidbey as those are the names used in Everett DU's.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#SetSessionKey(System.Web.SessionState.HttpSessionState)", Justification = @"ftse: The names are specified as they are intended to be. Changing them might confuse users who migrate applications from Everett DU's to Whidbey as those are the names used in Everett DU's.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#UseDivsForBreaks", MessageId = "Divs", Justification = @"ftse: The namings have been established since Everett DU's. Changing the names might create confusion when users are migrating from Everett to Whidbey. Hence just keep them as they are.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlMobileTextWriter.#WriteDoctypeDeclaration(System.Web.UI.MobileControls.Adapters.XhtmlAdapters.Doctype)", MessageId = "Doctype", Justification = @"ftse: The namings have been established since Everett DU's. Changing the names might create confusion when users are migrating from Everett to Whidbey. Hence just keep them as they are.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlObjectListAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"ftse: It is part of the overall adapter model to provide such similar lifecycle methods to match the corresponding ones in controls. This method does not invoke any event handler method, so the security concern described in the rule does not apply in this case.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlPageAdapter.#CookielessDataDictionary", Justification = @"ftse: The current code has this property being set in MobilePage.cs, so it is by design.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlPageAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"ftse: It is part of the overall adapter model to provide such similar lifecycle methods to match the corresponding ones in controls. This method does not invoke any event handler method, so the security concern described in the rule does not apply in this case.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlStyleClass.#BuildStyleClassAlignment(System.Text.StringBuilder)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlStyleClass.#BuildStyleClassBackgroundColor(System.Text.StringBuilder)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlStyleClass.#BuildStyleClassForegroundColor(System.Text.StringBuilder)", Justification = @"phuff: Code reviewed by TingHaoy- no security issues. Not fixing to reduce churn.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlTextBoxAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"ftse: It is part of the overall adapter model to provide such similar lifecycle methods to match the corresponding ones in controls. This method does not invoke any event handler method, so the security concern described in the rule does not apply in this case.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.MobileControls.Adapters.XhtmlAdapters.XhtmlValidationSummaryAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"ftse: It is part of the overall adapter model to provide such similar lifecycle methods to match the corresponding ones in controls. This method does not invoke any event handler method, so the security concern described in the rule does not apply in this case.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "autogenerated", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "Cloneable.", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "databound", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "databound.", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "datasource.", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "directkey", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "newline", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "postback", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "Prev", Justification = @"tinghaoy: By-design.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "softkey", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "softkeys", Justification = @"mattgi: softkeys is the accepted spelling")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "softkeys.", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "templating", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "Templating", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "validator.", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "viewstate", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "Viewstate", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "Yy", Justification = @"tinghaoy: By-design.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Mobile.resources", MessageId = "Zz", Justification = @"tinghaoy: By-design.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.UI.MobileControls.Adapters.resources", MessageId = "databound", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.UI.MobileControls.Adapters.resources", MessageId = "postback", Justification = @"phuff: Spellings ok")]
#endregion
#region $/DevDiv/Dev11/pu/MQAspNet/ddsuites/src/FxCop/Excludes/EverettBreaking/System.Web.Mobile.dll-breaking.xml
diff --git a/mcs/class/referencesource/System.Web.Mobile/Mobile/UrlPath.cs b/mcs/class/referencesource/System.Web.Mobile/Mobile/UrlPath.cs
index 01a24eb4bf8..408bf43925a 100644
--- a/mcs/class/referencesource/System.Web.Mobile/Mobile/UrlPath.cs
+++ b/mcs/class/referencesource/System.Web.Mobile/Mobile/UrlPath.cs
@@ -85,7 +85,7 @@ namespace System.Web.Mobile
{
String path;
- // Make sure the relative path is not a physical path (bug 73641)
+ // Make sure the relative path is not a physical path (
FailIfPhysicalPath(relative);
if (IsRooted(relative))
@@ -99,7 +99,7 @@ namespace System.Web.Mobile
else
{
// If the relative path starts with "~/" or "~\", treat it as app root
- // relative (bug 68628)
+ // relative (
if (relative.Length >=3 && relative[0] == appRelativeCharacter && (relative[1] == '/' || relative[1] == '\\'))
{
String appPath = HttpRuntime.AppDomainAppVirtualPath;
diff --git a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Adapters/XhtmlAdapters/XhtmlBasicObjectListAdapter.cs b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Adapters/XhtmlAdapters/XhtmlBasicObjectListAdapter.cs
index 0da12925751..51781d64166 100644
--- a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Adapters/XhtmlAdapters/XhtmlBasicObjectListAdapter.cs
+++ b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Adapters/XhtmlAdapters/XhtmlBasicObjectListAdapter.cs
@@ -409,7 +409,7 @@ namespace System.Web.UI.MobileControls.Adapters.XhtmlAdapters
Style labelStyle = Control.LabelStyle;
Color foreColor = (Color)style[Style.ForeColorKey, true];
- // Note: table width is not supported in DTD (the text of the rec says it's supported; a bug in the rec).
+ // Note: table width is not supported in DTD (the text of the rec says it's supported; a
ClearPendingBreakIfDeviceBreaksOnBlockLevel(writer); // we are writing a block level element in all cases.
ConditionalEnterLayout(writer, Style);
RenderOpeningListTag(writer, "table");
diff --git a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/AppliedDeviceFiltersDialog.cs b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/AppliedDeviceFiltersDialog.cs
index 7ef342bd429..36cd8f5632f 100644
--- a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/AppliedDeviceFiltersDialog.cs
+++ b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/AppliedDeviceFiltersDialog.cs
@@ -1115,7 +1115,7 @@ namespace System.Web.UI.Design.MobileControls
Debug.Assert(
(_choicePropertyFilter == null)
|| (_runtimeChoice == _choicePropertyFilter.RuntimeChoice),
- "Local runtime choice object out of [....]."
+ "Local runtime choice object out of sync."
);
return _runtimeChoice;
}
diff --git a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/ListComponentEditorPage.cs b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/ListComponentEditorPage.cs
index 7c5228de431..b4d35c7c1dc 100644
--- a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/ListComponentEditorPage.cs
+++ b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/ListComponentEditorPage.cs
@@ -150,7 +150,7 @@ namespace System.Web.UI.Design.MobileControls
Debug.Assert(e.CancelEdit == false);
// this happens when the label is unchanged after entering and exiting
- // label editing mode - bizarre behavior. this may be a bug in treeview
+ // label editing mode - bizarre behavior. this may be a
if (null == e.Label)
{
return;
diff --git a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/StylesEditorDialog.cs b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/StylesEditorDialog.cs
index 5eb1668d181..da99d706bec 100644
--- a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/StylesEditorDialog.cs
+++ b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/StylesEditorDialog.cs
@@ -674,7 +674,7 @@ namespace System.Web.UI.Design.MobileControls
Debug.Assert(e.CancelEdit == false);
// this happens when the label is unchanged after entering and exiting
- // label editing mode - bizarre behavior. this may be a bug in treeview
+ // label editing mode - bizarre behavior. this may be a
if (null == e.Label)
{
return;
diff --git a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/Util/GenericUI.cs b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/Util/GenericUI.cs
index 86ee1f1ab2b..ca56237cd55 100644
--- a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/Util/GenericUI.cs
+++ b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/Util/GenericUI.cs
@@ -168,7 +168,7 @@ namespace System.Web.UI.Design.MobileControls.Util
}
}
- // Copied from ndp\fx\src\Designer\[....]\System\[....]\Design\RTLAwareMessageBox.cs
+ // Copied from ndp\fx\src\Designer\Microsoft\System\Microsoft\Design\RTLAwareMessageBox.cs
[Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
internal sealed class RTLAwareMessageBox {
diff --git a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/Util/InterchangeableLists.cs b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/Util/InterchangeableLists.cs
index 5d76164de89..28f745fc7c3 100644
--- a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/Util/InterchangeableLists.cs
+++ b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/Util/InterchangeableLists.cs
@@ -45,7 +45,7 @@ namespace System.Web.UI.Design.MobileControls.Util
// This call is required by the Windows.Forms Form Designer.
InitializeComponent();
- //
+ // TODO: Add any initialization after the InitForm call
_downButton.Image = GenericUI.SortDownIcon;
_upButton.Image = GenericUI.SortUpIcon;
UpdateButtonEnabling();
@@ -337,4 +337,4 @@ namespace System.Web.UI.Design.MobileControls.Util
}
}
}
-#endif
+#endif \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/Util/MSHTMLHost.cs b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/Util/MSHTMLHost.cs
index f8d091ccb54..c44549c4dd3 100644
--- a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/Util/MSHTMLHost.cs
+++ b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/Design/Util/MSHTMLHost.cs
@@ -6,7 +6,7 @@
// MSHTMLHost.cs
//
-// 12/17/98: Created: [....]
+// 12/17/98: Created: Microsoft
//
namespace System.Web.UI.Design.MobileControls.Util {
@@ -210,7 +210,7 @@ namespace System.Web.UI.Design.MobileControls.Util {
}
public virtual void OnUIDeactivate(int fUndoable) {
- // NOTE, [....], 7/99: Don't return E_NOTIMPL. Somehow doing nothing and returning S_OK
+ // NOTE, Microsoft, 7/99: Don't return E_NOTIMPL. Somehow doing nothing and returning S_OK
// fixes trident hosting in Win2000.
}
@@ -245,7 +245,7 @@ namespace System.Web.UI.Design.MobileControls.Util {
}
public virtual void SetActiveObject(NativeMethods.IOleInPlaceActiveObject pActiveObject, string pszObjName) {
- // NOTE, [....], 7/99: Don't return E_NOTIMPL. Somehow doing nothing and returning S_OK
+ // NOTE, Microsoft, 7/99: Don't return E_NOTIMPL. Somehow doing nothing and returning S_OK
// fixes trident hosting in Win2000.
// throw new COMException(String.Empty, NativeMethods.E_NOTIMPL);
}
diff --git a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/MobilePage.cs b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/MobilePage.cs
index afa31dc9541..26d2ff6ddfe 100644
--- a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/MobilePage.cs
+++ b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/MobilePage.cs
@@ -1290,7 +1290,7 @@ namespace System.Web.UI.MobileControls
}
}
- // NOTE: Make sure this stays in [....] with Page.PageRegisteredControlsThatRequirePostBackKey
+ // NOTE: Make sure this stays in sync with Page.PageRegisteredControlsThatRequirePostBackKey
private const string PageRegisteredControlsThatRequirePostBackKey = "__ControlsRequirePostBackKey__";
private bool CheckEmptyViewState(Object viewState)
{
@@ -1441,7 +1441,7 @@ namespace System.Web.UI.MobileControls
private byte[] GetMacKeyModifier()
{
- //NOTE: duplicate of the version in objectstateformatter.cs, keep in [....]
+ //NOTE: duplicate of the version in objectstateformatter.cs, keep in sync
// Use the page's directory and class name as part of the key (ASURT 64044)
// We need to make sure that the hash is case insensitive, since the file system
diff --git a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/ObjectList.cs b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/ObjectList.cs
index 656537ad4d1..d0fae603e93 100644
--- a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/ObjectList.cs
+++ b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/ObjectList.cs
@@ -948,7 +948,7 @@ namespace System.Web.UI.MobileControls
if (IsTrackingViewState)
{
_items = null;
- // avoid view state being out of [....] with fields.
+ // avoid view state being out of sync with fields.
_ignoreFieldsItemsViewModeViewState = true;
if (fieldAddedOrRemoved)
{
diff --git a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/SessionViewState.cs b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/SessionViewState.cs
index faba8d30920..da3b9fbc600 100644
--- a/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/SessionViewState.cs
+++ b/mcs/class/referencesource/System.Web.Mobile/UI/MobileControls/SessionViewState.cs
@@ -27,7 +27,7 @@ namespace System.Web.UI.MobileControls
* arise. The core issue behind most of these is how to handle the user
* clicking the Back button. When the user does this, there is no corresponding
* notification to the server, and the client and server session state are thrown
- * out of [....].
+ * out of sync.
*
* This class attempts to alleviate this by storing a small history of view states
* in session data.
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Configuration/Protocols.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Configuration/Protocols.cs
index 4e4279c6b38..f54892bf82e 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Configuration/Protocols.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Configuration/Protocols.cs
@@ -19,4 +19,4 @@ namespace System.Web.Services.Configuration
// composite flag
AnyHttpSoap = 0x21,
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Description/SoapProtocolImporter.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Description/SoapProtocolImporter.cs
index 687a920cf30..5ae94501893 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Description/SoapProtocolImporter.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Description/SoapProtocolImporter.cs
@@ -374,7 +374,7 @@ namespace System.Web.Services.Description {
foreach (XmlMembersMapping member in soapMembers)
soapExporter.ExportMembersMapping(member);
- // NOTE, [....], we are sharing the SoapInclude and XmlInclude attributes of the
+ // NOTE, Microsoft, we are sharing the SoapInclude and XmlInclude attributes of the
// class among ALL classes generated, This is probably OK, since doing to per
// class would probably result in the same set of includes if the user
// has object as a return value (meaning 'all' types are OK).
@@ -1076,7 +1076,7 @@ namespace System.Web.Services.Description {
return true;
}
else if (soapBindingStyle == SoapBindingStyle.Document) {
- // NOTE, [....]. WSDL doesn't really let us figure out whether a document is
+ // NOTE, Microsoft. WSDL doesn't really let us figure out whether a document is
// in fact a struct containing parameters, so we apply a little heuristic here
// in order to produce the appropriate programming model.
hasWrapper = (parts.Length == 1 && string.Compare(parts[0].Name, "parameters", StringComparison.Ordinal) == 0);
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DiscoveryDocument.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DiscoveryDocument.cs
index 48bfca053d8..30527d5c5ad 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DiscoveryDocument.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DiscoveryDocument.cs
@@ -36,7 +36,7 @@ namespace System.Web.Services.Discovery {
public DiscoveryDocument() {
}
- // NOTE, [....]: This property is not really ignored by the xml serializer. Instead,
+ // NOTE, Microsoft: This property is not really ignored by the xml serializer. Instead,
// the attributes that would go here are configured in WebServicesConfiguration's
// DiscoveryDocumentSerializer property.
/// <include file='doc\DiscoveryDocument.uex' path='docs/doc[@for="DiscoveryDocument.References"]/*' />
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DiscoveryDocumentReference.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DiscoveryDocumentReference.cs
index f97304c06c1..097e2133728 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DiscoveryDocumentReference.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DiscoveryDocumentReference.cs
@@ -66,7 +66,7 @@ namespace System.Web.Services.Discovery {
public override string DefaultFilename {
get {
string filename = FilenameFromUrl(Url);
- return Path.ChangeExtension(filename, ".disco"); // [[....]] change default extension
+ return Path.ChangeExtension(filename, ".disco"); // [Microsoft] change default extension
}
}
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DiscoveryRequestHandler.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DiscoveryRequestHandler.cs
index 4d6c3ff0862..50ae58825a9 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DiscoveryRequestHandler.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DiscoveryRequestHandler.cs
@@ -81,7 +81,7 @@ namespace System.Web.Services.Discovery {
// Determine start url path for search
DynamicDiscoSearcher searcher;
Uri searchStartUrl = context.Request.Url;
- string escapedUri = Uri.EscapeUriString(searchStartUrl.ToString()).Replace("#", "%23");
+ string escapedUri = RuntimeUtils.EscapeUri(searchStartUrl);
string searchStartUrlDir = GetDirPartOfPath( escapedUri ); // URL path without file name
string strLocalPath = GetDirPartOfPath(searchStartUrl.LocalPath);
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DynamicVirtualDiscoSearcher.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DynamicVirtualDiscoSearcher.cs
index 17f47054745..863998aafd3 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DynamicVirtualDiscoSearcher.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Discovery/DynamicVirtualDiscoSearcher.cs
@@ -140,7 +140,7 @@ namespace System.Web.Services.Discovery {
// -------------------------------------------------------------------------------
- // Calculate root ADSI virtual directory name (func by '[....]').
+ // Calculate root ADSI virtual directory name (func by 'Microsoft').
private string GetWebServerForUrl(string url) {
Uri uri = new Uri(url);
DirectoryEntry w3Service = new DirectoryEntry("IIS://" + uri.Host + "/W3SVC");
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/NativeMethods.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/NativeMethods.cs
index c13cc27aceb..a7748c42bdb 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/NativeMethods.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/NativeMethods.cs
@@ -24,4 +24,4 @@ namespace System.Web.Services {
internal static extern int GetModuleHandle(String modName);
}
}
-#endif
+#endif \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/ClientProtocol.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/ClientProtocol.cs
index 671183a28c6..f06508a76d3 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/ClientProtocol.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/ClientProtocol.cs
@@ -90,7 +90,7 @@ namespace System.Web.Services.Protocols {
/// <para>[To be supplied.]</para>
/// </devdoc>
protected WebClientProtocol() {
- this.timeout = 100000; // should be kept in [....] with HttpWebRequest.Timeout default (see private WebRequest.DefaultTimeout)
+ this.timeout = 100000; // should be kept in sync with HttpWebRequest.Timeout default (see private WebRequest.DefaultTimeout)
}
internal WebClientProtocol(WebClientProtocol protocol) {
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/DiscoveryServerProtocol.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/DiscoveryServerProtocol.cs
index 2c5dbfdcae0..80582549c75 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/DiscoveryServerProtocol.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/DiscoveryServerProtocol.cs
@@ -238,7 +238,7 @@ namespace System.Web.Services.Protocols {
// if not create a new DiscoveryServerType and cache it
//
bool excludeSchemeHostPortFromCachingKey = this.IsCacheUnderPressure(typeof(DiscoveryServerProtocol), Type);
- string escapedUri = Uri.EscapeUriString(Request.Url.ToString()).Replace("#", "%23");
+ string escapedUri = RuntimeUtils.EscapeUri(Request.Url);
serverType = new DiscoveryServerType(Type, escapedUri, excludeSchemeHostPortFromCachingKey);
AddToCache(typeof(DiscoveryServerProtocol), Type, serverType, excludeSchemeHostPortFromCachingKey);
}
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/DocumentationServerProtocol.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/DocumentationServerProtocol.cs
index 20d424cf6d9..f8fb6d44a5b 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/DocumentationServerProtocol.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/DocumentationServerProtocol.cs
@@ -119,7 +119,7 @@ namespace System.Web.Services.Protocols {
//
//
bool excludeSchemeHostPortFromCachingKey = this.IsCacheUnderPressure(typeof(DocumentationServerProtocol), Type);
- string escapedUri = Uri.EscapeUriString(Request.Url.ToString()).Replace("#", "%23");
+ string escapedUri = RuntimeUtils.EscapeUri(Request.Url);
serverType = new DocumentationServerType(Type, escapedUri, excludeSchemeHostPortFromCachingKey);
AddToCache(typeof(DocumentationServerProtocol), Type, serverType, excludeSchemeHostPortFromCachingKey);
}
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/LogicalMethodInfo.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/LogicalMethodInfo.cs
index 1b21ea69dcd..1e3cb1b68c4 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/LogicalMethodInfo.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/LogicalMethodInfo.cs
@@ -20,7 +20,7 @@ namespace System.Web.Services.Protocols {
/// <para>[To be supplied.]</para>
/// </devdoc>
public enum LogicalMethodTypes {
- /// <include file='doc\LogicalMethodInfo.uex' path='docs/doc[@for="LogicalMethodTypes.[....]"]/*' />
+ /// <include file='doc\LogicalMethodInfo.uex' path='docs/doc[@for="LogicalMethodTypes.Sync"]/*' />
/// <devdoc>
/// <para>[To be supplied.]</para>
/// </devdoc>
@@ -362,7 +362,7 @@ namespace System.Web.Services.Protocols {
/// <para>[To be supplied.]</para>
/// </devdoc>
public ICustomAttributeProvider CustomAttributeProvider {
- // Custom attributes are always on the XXX ([....]) or BeginXXX (async) method.
+ // Custom attributes are always on the XXX (sync) or BeginXXX (async) method.
get { return methodInfo; }
}
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/RuntimeUtils.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/RuntimeUtils.cs
index 90342b65ffd..f2ed4a2f164 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/RuntimeUtils.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/RuntimeUtils.cs
@@ -86,5 +86,13 @@ namespace System.Web.Services.Protocols {
return true;
return false;
}
+
+ internal static string EscapeUri(Uri uri) {
+ if (null == uri) {
+ throw new ArgumentNullException("uri");
+ }
+
+ return uri.GetComponents(UriComponents.SerializationInfoString, UriFormat.UriEscaped).Replace("#", "%23");
+ }
}
}
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/Scalars.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/Scalars.cs
index 846bd630e3d..0d388dd5e64 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/Scalars.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/Scalars.cs
@@ -107,7 +107,7 @@ namespace System.Web.Services.Protocols {
}
/*
- // [....]: adapted from UrlEscapeStringUnicode below
+ // Microsoft: adapted from UrlEscapeStringUnicode below
internal static string EscapeStringUnicode(string s) {
int l = s.Length;
StringBuilder sb = new StringBuilder(l);
@@ -126,7 +126,7 @@ namespace System.Web.Services.Protocols {
}
*/
- // [....]: copied from System.Web.HttpUtility
+ // Microsoft: copied from System.Web.HttpUtility
internal static string UrlEscapeStringUnicode(string s) {
int l = s.Length;
StringBuilder sb = new StringBuilder(l);
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/ScatterGatherStream.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/ScatterGatherStream.cs
index abb1f1b12de..8f27b78ecfb 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/ScatterGatherStream.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/ScatterGatherStream.cs
@@ -368,4 +368,4 @@ namespace System.Web.Services.Protocols {
}
}
}
-#endif
+#endif \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/SoapException.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/SoapException.cs
index 1e77558f94d..f3c23b9359e 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/SoapException.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/SoapException.cs
@@ -59,7 +59,7 @@ namespace System.Web.Services.Protocols {
/// <devdoc>
/// <para>[To be supplied.]</para>
/// </devdoc>
- // NOTE, [....]: The SOAP 1.1 is unclear on whether the detail element can or should be qualified.
+ // NOTE, Microsoft: The SOAP 1.1 is unclear on whether the detail element can or should be qualified.
// Based on consensus about the intent, we will not qualify it.
public static readonly XmlQualifiedName DetailElementName = new XmlQualifiedName(Soap.Element.FaultDetail, "");
@@ -191,9 +191,9 @@ namespace System.Web.Services.Protocols {
actor = (string)list["actor"];
role = (string)list["role"];
- // Bug: 323493: XmlNode is not serializable, and I don't think we want to really want to create
- // an XmlDocument just to read a XmlNode from string to get the deserialized instance back.
- // detail = (XmlNode)list["detail"];
+ //
+
+
subCode = (SoapFaultSubCode)list["subCode"];
lang = (string)list["lang"];
@@ -280,9 +280,9 @@ namespace System.Web.Services.Protocols {
list["actor"] = Actor;
list["role"] = Role;
- // Bug: 323493: XmlNode is not serializable, and I don't think we want to really want to create
- // an XmlDocument just to read a XmlNode from string to get the deserialized instance back.
- // list["detail"] = Detail;
+ //
+
+
list["subCode"] = SubCode;
list["lang"] = Lang;
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/SoapServerMessage.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/SoapServerMessage.cs
index 0f24a7100b1..39d0dd2ae7e 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/SoapServerMessage.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/SoapServerMessage.cs
@@ -58,7 +58,7 @@ namespace System.Web.Services.Protocols {
/// <para>[To be supplied.]</para>
/// </devdoc>
public override string Url {
- get { return Uri.EscapeUriString(protocol.Request.Url.ToString()).Replace("#", "%23"); }
+ get { return RuntimeUtils.EscapeUri(protocol.Request.Url); }
}
/// <include file='doc\SoapServerMessage.uex' path='docs/doc[@for="SoapServerMessage.Action"]/*' />
diff --git a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/SoapServiceRoutingStyle.cs b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/SoapServiceRoutingStyle.cs
index 194e68e41d7..0614e69cd12 100644
--- a/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/SoapServiceRoutingStyle.cs
+++ b/mcs/class/referencesource/System.Web.Services/System/Web/Services/Protocols/SoapServiceRoutingStyle.cs
@@ -14,4 +14,4 @@ namespace System.Web.Services.Protocols {
RequestElement,
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web/Abstractions/HttpContextWrapper.cs b/mcs/class/referencesource/System.Web/Abstractions/HttpContextWrapper.cs
index 45b0e533ff8..c9320500e03 100644
--- a/mcs/class/referencesource/System.Web/Abstractions/HttpContextWrapper.cs
+++ b/mcs/class/referencesource/System.Web/Abstractions/HttpContextWrapper.cs
@@ -125,7 +125,7 @@ namespace System.Web {
public override bool IsPostNotification {
get {
- return _context.IsDebuggingEnabled;
+ return _context.IsPostNotification;
}
}
diff --git a/mcs/class/referencesource/System.Web/Abstractions/HttpRequestBase.cs b/mcs/class/referencesource/System.Web/Abstractions/HttpRequestBase.cs
index 5942b4f5202..5c20e85e253 100644
--- a/mcs/class/referencesource/System.Web/Abstractions/HttpRequestBase.cs
+++ b/mcs/class/referencesource/System.Web/Abstractions/HttpRequestBase.cs
@@ -247,6 +247,12 @@ namespace System.Web {
}
}
+ public virtual ITlsTokenBindingInfo TlsTokenBindingInfo {
+ get {
+ throw new NotImplementedException();
+ }
+ }
+
public virtual int TotalBytes {
get {
throw new NotImplementedException();
diff --git a/mcs/class/referencesource/System.Web/Abstractions/HttpRequestWrapper.cs b/mcs/class/referencesource/System.Web/Abstractions/HttpRequestWrapper.cs
index c7b67b4f6af..63072b5fe4f 100644
--- a/mcs/class/referencesource/System.Web/Abstractions/HttpRequestWrapper.cs
+++ b/mcs/class/referencesource/System.Web/Abstractions/HttpRequestWrapper.cs
@@ -258,6 +258,12 @@ namespace System.Web {
}
}
+ public override ITlsTokenBindingInfo TlsTokenBindingInfo {
+ get {
+ return _httpRequest.TlsTokenBindingInfo;
+ }
+ }
+
public override int TotalBytes {
get {
return _httpRequest.TotalBytes;
@@ -331,7 +337,7 @@ namespace System.Web {
public override Stream GetBufferlessInputStream(bool disableMaxRequestLength) {
return _httpRequest.GetBufferlessInputStream(disableMaxRequestLength);
}
-
+
public override void InsertEntityBody() {
_httpRequest.InsertEntityBody();
}
diff --git a/mcs/class/referencesource/System.Web/Abstractions/HttpResponseBase.cs b/mcs/class/referencesource/System.Web/Abstractions/HttpResponseBase.cs
index f7bebb6de94..3d0639d182d 100644
--- a/mcs/class/referencesource/System.Web/Abstractions/HttpResponseBase.cs
+++ b/mcs/class/referencesource/System.Web/Abstractions/HttpResponseBase.cs
@@ -13,6 +13,7 @@ namespace System.Web {
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading;
+ using System.Threading.Tasks;
using System.Web.Caching;
using System.Web.Routing;
@@ -361,6 +362,10 @@ namespace System.Web {
throw new NotImplementedException();
}
+ public virtual Task FlushAsync() {
+ throw new NotImplementedException();
+ }
+
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly",
Justification = "Matches HttpResponse class")]
public virtual void Pics(String value) {
@@ -504,5 +509,13 @@ namespace System.Web {
public virtual void WriteSubstitution(HttpResponseSubstitutionCallback callback) {
throw new NotImplementedException();
}
+
+ public virtual void PushPromise(string path) {
+ throw new NotImplementedException();
+ }
+
+ public virtual void PushPromise(string path, string method, NameValueCollection headers) {
+ throw new NotImplementedException();
+ }
}
}
diff --git a/mcs/class/referencesource/System.Web/Abstractions/HttpResponseWrapper.cs b/mcs/class/referencesource/System.Web/Abstractions/HttpResponseWrapper.cs
index 165e96e3ec0..ea862607c4a 100644
--- a/mcs/class/referencesource/System.Web/Abstractions/HttpResponseWrapper.cs
+++ b/mcs/class/referencesource/System.Web/Abstractions/HttpResponseWrapper.cs
@@ -12,6 +12,7 @@ namespace System.Web {
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading;
+ using System.Threading.Tasks;
using System.Web.Caching;
using System.Web.Routing;
@@ -356,6 +357,10 @@ namespace System.Web {
_httpResponse.Flush();
}
+ public override Task FlushAsync() {
+ return _httpResponse.FlushAsync();
+ }
+
public override void Pics(string value) {
_httpResponse.Pics(value);
}
@@ -471,5 +476,13 @@ namespace System.Web {
public override void WriteSubstitution(HttpResponseSubstitutionCallback callback) {
_httpResponse.WriteSubstitution(callback);
}
+
+ public override void PushPromise(string path) {
+ _httpResponse.PushPromise(path);
+ }
+
+ public override void PushPromise(string path, string method, NameValueCollection headers) {
+ _httpResponse.PushPromise(path, method, headers);
+ }
}
}
diff --git a/mcs/class/referencesource/System.Web/AspNetEventSource.cs b/mcs/class/referencesource/System.Web/AspNetEventSource.cs
index 47ceee67bd5..8a2756ec6c8 100644
--- a/mcs/class/referencesource/System.Web/AspNetEventSource.cs
+++ b/mcs/class/referencesource/System.Web/AspNetEventSource.cs
@@ -91,7 +91,7 @@ namespace System.Web {
// Overload used only for deducing ETW parameters; use the public entry point instead.
//
// !! WARNING !!
- // The logic in RequestEnteredAspNetPipelineImpl must be kept in [....] with these parameters, otherwise
+ // The logic in RequestEnteredAspNetPipelineImpl must be kept in sync with these parameters, otherwise
// type safety violations could occur.
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "ETW looks at this method using reflection.")]
[Event((int)Events.RequestEnteredAspNetPipeline, Level = EventLevel.Informational, Task = (EventTask)Tasks.Request, Opcode = EventOpcode.Send, Version = 1)]
@@ -118,7 +118,7 @@ namespace System.Web {
fixed (char* pHttpVerb = httpVerb) {
// !! WARNING !!
- // This logic must be kept in [....] with the ETW-deduced parameters in RequestStarted,
+ // This logic must be kept in sync with the ETW-deduced parameters in RequestStarted,
// otherwise type safety violations could occur.
const int EVENTDATA_COUNT = 3;
EventData* pEventData = stackalloc EventData[EVENTDATA_COUNT];
@@ -141,7 +141,7 @@ namespace System.Web {
// Overload used only for deducing ETW parameters; use the public entry point instead.
//
// !! WARNING !!
- // The logic in RequestStartedImpl must be kept in [....] with these parameters, otherwise
+ // The logic in RequestStartedImpl must be kept in sync with these parameters, otherwise
// type safety violations could occur.
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "ETW looks at this method using reflection.")]
[Event((int)Events.RequestStarted, Level = EventLevel.Informational, Task = (EventTask)Tasks.Request, Opcode = EventOpcode.Start, Version = 1)]
diff --git a/mcs/class/referencesource/System.Web/AspNetSynchronizationContext.cs b/mcs/class/referencesource/System.Web/AspNetSynchronizationContext.cs
index 05da4054b6e..f402d77d87f 100644
--- a/mcs/class/referencesource/System.Web/AspNetSynchronizationContext.cs
+++ b/mcs/class/referencesource/System.Web/AspNetSynchronizationContext.cs
@@ -10,6 +10,7 @@ namespace System.Web {
using System.Diagnostics.CodeAnalysis;
using System.Runtime.ExceptionServices;
using System.Threading;
+ using System.Threading.Tasks;
using System.Web.Util;
internal sealed class AspNetSynchronizationContext : AspNetSynchronizationContextBase {
@@ -116,11 +117,11 @@ namespace System.Web {
Interlocked.Increment(ref _state.VoidAsyncOutstandingOperationCount);
}
- // Dev11 Bug 70908: Race condition involving SynchronizationContext allows ASP.NET requests to be abandoned in the pipeline
- //
- // When the last completion occurs, the _pendingCount is decremented and then the _lastCompletionCallbackLock is acquired to get
- // the _lastCompletionCallback. If the _lastCompletionCallback is non-null, then the last completion will invoke the callback;
- // otherwise, the caller of PendingCompletion will handle the completion.
+ // Dev11
+
+
+
+
internal override bool PendingCompletion(WaitCallback callback) {
return _state.Helper.TrySetCompletionContinuation(() => callback(null));
}
@@ -129,6 +130,11 @@ namespace System.Web {
_state.Helper.QueueAsynchronous(() => callback(state));
}
+ // The method is used to post async func.
+ internal void PostAsync(Func<object, Task> callback, Object state) {
+ _state.Helper.QueueAsynchronousAsync(callback, state);
+ }
+
internal override void ProhibitVoidAsyncOperations() {
_state.AllowVoidAsyncOperations = false;
diff --git a/mcs/class/referencesource/System.Web/BufferAllocator.cs b/mcs/class/referencesource/System.Web/BufferAllocator.cs
index 4981c68ab36..cc768f8aa4b 100644
--- a/mcs/class/referencesource/System.Web/BufferAllocator.cs
+++ b/mcs/class/referencesource/System.Web/BufferAllocator.cs
@@ -12,6 +12,7 @@
namespace System.Web {
using System.Collections;
+ using System.Collections.Generic;
using System.IO;
using System.Globalization;
@@ -20,10 +21,31 @@ namespace System.Web {
//////////////////////////////////////////////////////////////////////////////
// Generic buffer recycling
+ internal interface IBufferAllocator {
+ object GetBuffer();
+ void ReuseBuffer(object buffer);
+ void ReleaseAllBuffers();
+ int BufferSize { get; }
+ }
+
+ internal interface IBufferAllocator<T> : IBufferAllocator {
+ new T[] GetBuffer();
+ T[] GetBuffer(int minSize);
+ void ReuseBuffer(T[] buffer);
+ }
+
+ internal interface IAllocatorProvider {
+ IBufferAllocator<char> CharBufferAllocator { get; }
+ IBufferAllocator<int> IntBufferAllocator { get; }
+ IBufferAllocator<IntPtr> IntPtrBufferAllocator { get; }
+
+ void TrimMemory();
+ }
+
/*
* Base class for allocator doing buffer recycling
*/
- internal abstract class BufferAllocator {
+ internal abstract class BufferAllocator : IBufferAllocator {
private int _maxFree;
private int _numFree;
private Stack _buffers;
@@ -46,7 +68,7 @@ namespace System.Web {
_maxFree = maxFree * s_ProcsFudgeFactor;
}
- internal void ReleaseAllBuffers() {
+ public void ReleaseAllBuffers() {
if (_numFree > 0) {
lock (this) {
_buffers.Clear();
@@ -55,7 +77,7 @@ namespace System.Web {
}
}
- internal /*public*/ Object GetBuffer() {
+ public object GetBuffer() {
Object buffer = null;
if (_numFree > 0) {
@@ -73,7 +95,7 @@ namespace System.Web {
return buffer;
}
- internal void ReuseBuffer(Object buffer) {
+ public void ReuseBuffer(object buffer) {
if (_numFree < _maxFree) {
lock(this) {
if (_numFree < _maxFree) {
@@ -88,6 +110,7 @@ namespace System.Web {
* To be implemented by a derived class
*/
abstract protected Object AllocBuffer();
+ abstract public int BufferSize { get; }
}
/*
@@ -103,6 +126,12 @@ namespace System.Web {
protected override Object AllocBuffer() {
return new byte[_bufferSize];
}
+
+ public override int BufferSize {
+ get {
+ return _bufferSize;
+ }
+ }
}
/*
@@ -120,6 +149,12 @@ namespace System.Web {
protected override Object AllocBuffer() {
return new char[_bufferSize];
}
+
+ public override int BufferSize {
+ get {
+ return _bufferSize;
+ }
+ }
}
/*
@@ -137,6 +172,12 @@ namespace System.Web {
protected override Object AllocBuffer() {
return new int[_arraySize];
}
+
+ public override int BufferSize {
+ get {
+ return _arraySize;
+ }
+ }
}
/*
@@ -154,6 +195,231 @@ namespace System.Web {
protected override Object AllocBuffer() {
return new IntPtr[_arraySize];
}
+
+ public override int BufferSize {
+ get {
+ return _arraySize;
+ }
+ }
+ }
+
+
+
+ /*
+ * Simple Buffer Allocator - Reusable buffers pool
+ * Thread UNSAFE! Lock free. Caller must guarantee non-concurent access.
+ * Use as member of already pooled instances (like HttpApplication) that prohibit concurent access to avoid taking locks
+ */
+ internal class SimpleBufferAllocator<T> : IBufferAllocator<T> {
+ private Stack<T[]> _buffers;
+ private readonly int _bufferSize;
+
+ public SimpleBufferAllocator(int bufferSize) {
+ if (bufferSize <= 0) {
+ throw new ArgumentOutOfRangeException("bufferSize");
+ }
+
+ _buffers = new Stack<T[]>();
+ _bufferSize = bufferSize;
+ }
+
+ public T[] GetBuffer() {
+ return GetBufferImpl();
+ }
+
+ public T[] GetBuffer(int minSize) {
+ if (minSize < 0) {
+ throw new ArgumentOutOfRangeException("minSize");
+ }
+
+ T[] buffer = null;
+
+ if (minSize <= BufferSize) {
+ // Get from the pool
+ buffer = GetBufferImpl();
+ }
+ else {
+ // Allocate a new buffer. It will not be reused later
+ buffer = AllocBuffer(minSize);
+ }
+
+ return buffer;
+ }
+
+ object IBufferAllocator.GetBuffer() {
+ return GetBufferImpl();
+ }
+
+ public void ReuseBuffer(T[] buffer) {
+ ReuseBufferImpl(buffer);
+ }
+
+ void IBufferAllocator.ReuseBuffer(object buffer) {
+ ReuseBufferImpl((T[]) buffer);
+ }
+
+ public void ReleaseAllBuffers() {
+ _buffers.Clear();
+ }
+
+ public int BufferSize {
+ get {
+ return _bufferSize;
+ }
+ }
+
+ private T[] GetBufferImpl() {
+ T[] buffer = null;
+
+ if (_buffers.Count > 0) {
+ // Get an exisitng buffer
+ buffer = _buffers.Pop();
+ }
+ else {
+ // Create a new buffer
+ buffer = AllocBuffer(BufferSize);
+ }
+
+ return buffer;
+ }
+
+ private void ReuseBufferImpl(T[] buffer) {
+ // Accept back only buffers that match the orirignal buffer size
+ if (buffer != null && buffer.Length == BufferSize) {
+ _buffers.Push(buffer);
+ }
+ }
+
+ private static T[] AllocBuffer(int size) {
+ return new T[size];
+ }
}
+
+ /*
+ * Adapter to convert IBufferAllocator to generic IBufferAllocator<>
+ */
+ class BufferAllocatorWrapper<T> : IBufferAllocator<T> {
+ private IBufferAllocator _allocator;
+
+ public BufferAllocatorWrapper(IBufferAllocator allocator) {
+ Debug.Assert(allocator != null);
+
+ _allocator = allocator;
+ }
+
+ public T[] GetBuffer() {
+ return (T[])_allocator.GetBuffer();
+ }
+
+ public T[] GetBuffer(int minSize) {
+ if (minSize < 0) {
+ throw new ArgumentOutOfRangeException("minSize");
+ }
+
+ T[] buffer = null;
+
+ if (minSize <= BufferSize) {
+ // Get from the allocator
+ buffer = (T[])_allocator.GetBuffer();
+ }
+ else {
+ // Allocate a new buffer. It will not be reused later
+ buffer = new T[minSize];
+ }
+
+ return buffer;
+ }
+
+ public void ReuseBuffer(T[] buffer) {
+ // Accept back only buffers that match the orirignal buffer size
+ if (buffer != null && buffer.Length == BufferSize) {
+ _allocator.ReuseBuffer(buffer);
+ }
+ }
+
+ object IBufferAllocator.GetBuffer() {
+ return _allocator.GetBuffer();
+ }
+
+ void IBufferAllocator.ReuseBuffer(object buffer) {
+ ReuseBuffer((T[])buffer);
+ }
+
+ public void ReleaseAllBuffers() {
+ _allocator.ReleaseAllBuffers();
+ }
+
+ public int BufferSize {
+ get {
+ return _allocator.BufferSize;
+ }
+ }
+ }
+
+
+ /*
+ * Provider for different buffer allocators
+ */
+ internal class AllocatorProvider : IAllocatorProvider {
+ private IBufferAllocator<char> _charAllocator = null;
+ private IBufferAllocator<int> _intAllocator = null;
+ private IBufferAllocator<IntPtr> _intPtrAllocator = null;
+
+ public IBufferAllocator<char> CharBufferAllocator {
+ get {
+ return _charAllocator;
+ }
+
+ set {
+ if (value == null) {
+ throw new ArgumentNullException("value");
+ }
+
+ _charAllocator = value;
+ }
+ }
+
+ public IBufferAllocator<int> IntBufferAllocator {
+ get {
+ return _intAllocator;
+ }
+
+ set {
+ if (value == null) {
+ throw new ArgumentNullException("value");
+ }
+
+ _intAllocator = value;
+ }
+ }
+
+ public IBufferAllocator<IntPtr> IntPtrBufferAllocator {
+ get {
+ return _intPtrAllocator;
+ }
+
+ set {
+ if (value == null) {
+ throw new ArgumentNullException("value");
+ }
+
+ _intPtrAllocator = value;
+ }
+ }
+
+ public void TrimMemory() {
+ if (_charAllocator != null) {
+ _charAllocator.ReleaseAllBuffers();
+ }
+
+ if (_intAllocator != null) {
+ _intAllocator.ReleaseAllBuffers();
+ }
+
+ if (_intPtrAllocator != null) {
+ _intPtrAllocator.ReleaseAllBuffers();
+ }
+ }
+ }
}
diff --git a/mcs/class/referencesource/System.Web/Cache/SqlCacheDependency.cs b/mcs/class/referencesource/System.Web/Cache/SqlCacheDependency.cs
index 32b120a22eb..a0e40fb6478 100644
--- a/mcs/class/referencesource/System.Web/Cache/SqlCacheDependency.cs
+++ b/mcs/class/referencesource/System.Web/Cache/SqlCacheDependency.cs
@@ -111,7 +111,7 @@ namespace System.Web.Caching {
// Prevent a conflict between using SQL9 outputcache and an explicit
// SQL9 SqlCacheDependency at the same time. See VSWhidey 396429 and
- // the attached email in the bug.
+ // the attached email in the
if (context != null && context.SqlDependencyCookie != null && // That means We have already setup SQL9 dependency for output cache
sqlCmd.NotificationAutoEnlist) { // This command will auto-enlist in that output cache dependency
throw new HttpException(SR.GetString(SR.SqlCacheDependency_OutputCache_Conflict));
@@ -868,7 +868,7 @@ namespace System.Web.Caching {
if (obj == null) {
Debug.Assert(!dbState._tables.ContainsKey(tableName),
- "DatabaseNotifStae._tables and internal cache keys should be in-[....]");
+ "DatabaseNotifStae._tables and internal cache keys should be in-sync");
Debug.Trace("SqlCacheDependencyManagerPolling",
"Add Database=" + dbState._database+ "; tableName=" + tableName + "; changeId=" + changeId);
@@ -881,7 +881,7 @@ namespace System.Web.Caching {
}
else if (changeId != (int)obj) {
Debug.Assert(dbState._tables.ContainsKey(tableName),
- "DatabaseNotifStae._tables and internal cache keys should be in-[....]");
+ "DatabaseNotifStae._tables and internal cache keys should be in-sync");
Debug.Trace("SqlCacheDependencyManagerPolling",
"Change Database=" + dbState._database+ "; tableName=" + tableName + "; old=" + (int)obj + "; new=" + changeId);
diff --git a/mcs/class/referencesource/System.Web/Compilation/BaseResourcesBuildProvider.cs b/mcs/class/referencesource/System.Web/Compilation/BaseResourcesBuildProvider.cs
index 0b92b722dc5..845412d74cc 100644
--- a/mcs/class/referencesource/System.Web/Compilation/BaseResourcesBuildProvider.cs
+++ b/mcs/class/referencesource/System.Web/Compilation/BaseResourcesBuildProvider.cs
@@ -115,7 +115,7 @@ internal abstract class BaseResourcesBuildProvider : BuildProvider {
}
finally {
// Put the assignment in a finally block to avoid a ThreadAbortException from
- // causing the created stream to not get assigned and become leaked (Dev10 bug 844463)
+ // causing the created stream to not get assigned and become leaked (Dev10
outputStream = assemblyBuilder.CreateEmbeddedResource(this, resourceFileName);
}
}
@@ -141,7 +141,7 @@ internal abstract class BaseResourcesBuildProvider : BuildProvider {
}
finally {
// Always close the stream to avoid a ThreadAbortException from causing the stream
- // to be leaked (Dev10 bug 844463)
+ // to be leaked (Dev10
if (outputStream != null) {
outputStream.Close();
}
diff --git a/mcs/class/referencesource/System.Web/Compilation/BaseTemplateCodeDomTreeGenerator.cs b/mcs/class/referencesource/System.Web/Compilation/BaseTemplateCodeDomTreeGenerator.cs
index edd1461f5e5..d416cb1d024 100644
--- a/mcs/class/referencesource/System.Web/Compilation/BaseTemplateCodeDomTreeGenerator.cs
+++ b/mcs/class/referencesource/System.Web/Compilation/BaseTemplateCodeDomTreeGenerator.cs
@@ -510,12 +510,12 @@ namespace System.Web.Compilation {
// if ((this.__Template_TestTemplate != null)) {
// // For 2.0:
// this.__Template_TestTemplate.InstantiateIn(__ctrl);
- // // For 4.0, use a new method. This is for fixing Dev10 bug 776195.
- // this.InstantiateInContentPlaceHolder(__ctrl, this.__Template_TestTemplate);
- // }
- // else {
- // // normal sub control building code
- // }
+ // // For 4.0, use a new method. This is for fixing Dev10
+
+
+
+
+
if (MultiTargetingUtil.IsTargetFramework40OrAbove) {
instantiateTemplateExpr = new CodeMethodInvokeExpression(new CodeThisReferenceExpression(), "InstantiateInContentPlaceHolder");
instantiateTemplateExpr.Parameters.Add(ctrlRefExpr);
@@ -1105,11 +1105,11 @@ namespace System.Web.Compilation {
BuildExtractStatementsRecursive(controlBuilder.SubBuilders, statements, topLevelStatements, linePragma, tableVarName, containerVarName);
}
- // Dev10 bug 525267
- // When a control defines a DefaultProperty in its ParseChildren attribute, its subBuilders are appended
- // to the DefaultProperty's subbuilders, and the DefaultProperty itself is added
- // as a ComplexProperty or a TemplateProperty (and not as a suBbuilder). Thus we
- // also need to go through these properties as well.
+ // Dev10
+
+
+
+
ArrayList list = new ArrayList();
AddEntryBuildersToList(controlBuilder.ComplexPropertyEntries, list);
AddEntryBuildersToList(controlBuilder.TemplatePropertyEntries, list);
diff --git a/mcs/class/referencesource/System.Web/Compilation/BrowserCapabilitiesCompiler.cs b/mcs/class/referencesource/System.Web/Compilation/BrowserCapabilitiesCompiler.cs
index 44dad1c5c54..6525a6bef83 100644
--- a/mcs/class/referencesource/System.Web/Compilation/BrowserCapabilitiesCompiler.cs
+++ b/mcs/class/referencesource/System.Web/Compilation/BrowserCapabilitiesCompiler.cs
@@ -48,7 +48,7 @@ namespace System.Web.Compilation {
string version;
// If we are targeting previous versions, try loading the 2.0 version of ASP.BrowserCapsFactory
- // (Dev10 bug 795509)
+ // (Dev10
if (MultiTargetingUtil.IsTargetFramework40OrAbove) {
version = ThisAssembly.Version;
} else {
@@ -389,7 +389,7 @@ namespace System.Web.Compilation {
// If not, then we need to use the type BrowserCapabilitiesFactory35 that contains code
// from the 2.0 version of BrowserCapabilitiesFactory. This is because "baseType" is the 4.0 type
// that contains the new 4.0 definitions.
- // (Dev10 bug 795509)
+ // (Dev10
if (MultiTargetingUtil.IsTargetFramework40OrAbove ||
baseType.Assembly == BrowserCapabilitiesCompiler.AspBrowserCapsFactoryAssembly) {
_baseInstance = (BrowserCapabilitiesFactoryBase)Activator.CreateInstance(baseType);
diff --git a/mcs/class/referencesource/System.Web/Compilation/BuildManager.cs b/mcs/class/referencesource/System.Web/Compilation/BuildManager.cs
index 9f26b6ed449..fcd72276beb 100644
--- a/mcs/class/referencesource/System.Web/Compilation/BuildManager.cs
+++ b/mcs/class/referencesource/System.Web/Compilation/BuildManager.cs
@@ -779,7 +779,7 @@ namespace System.Web.Compilation {
}
}
- // this method requires global lock as the part of the fix of DevDiv bug 501777
+ // this method requires global lock as the part of the fix of DevDiv
private static ISet<string> CallPreStartInitMethods(string preStartInitListPath, out bool isRefAssemblyLoaded) {
Debug.Assert(PreStartInitStage == Compilation.PreStartInitStage.BeforePreStartInit);
isRefAssemblyLoaded = false;
@@ -793,8 +793,8 @@ namespace System.Web.Compilation {
if (methods == null) {
// In case of ctlr-f5 scenario, two processes (VS and IisExpress) will start compilation simultaneously.
// GetPreStartInitMethodsFromReferencedAssemblies() will load all referenced assemblies
- // If shallow copy is enabled, one process may fail due race condition in copying assemblies (DevDiv bug 501777)
- // to fix it, put GetPreStartInitMethodsFromReferencedAssemblies() under the global lock
+ // If shallow copy is enabled, one process may fail due race condition in copying assemblies (DevDiv
+
bool gotLock = false;
try {
CompilationLock.GetLock(ref gotLock);
@@ -832,7 +832,7 @@ namespace System.Web.Compilation {
return null;
}
- // this method requires global lock as the part of the fix of DevDiv bug 501777
+ // this method requires global lock as the part of the fix of DevDiv
internal static void SavePreStartInitAssembliesToFile(string path, ISet<string> assemblies) {
Debug.Assert(assemblies != null);
Debug.Assert(!String.IsNullOrEmpty(path));
@@ -933,7 +933,7 @@ namespace System.Web.Compilation {
}
catch {
// GetCustomAttributes invokes the constructors of the attributes, so it is possible that they might throw unexpected exceptions.
- // (Dev10 bug 831981)
+ // (Dev10
}
if (attributes == null || !attributes.Any()) {
@@ -1844,7 +1844,7 @@ namespace System.Web.Compilation {
_localResourcesAssemblies[virtualDir] = resourceAssembly;
}
- // VSWhidbey Bug 560521
+ // VSWhidbey
private void EnsureFirstTimeDirectoryInitForDependencies(ICollection dependencies) {
foreach (String dependency in dependencies) {
VirtualPath dependencyPath = VirtualPath.Create(dependency);
@@ -2324,11 +2324,11 @@ namespace System.Web.Compilation {
// There might be changes in local resources for dependencies,
// so we need to make sure EnsureFirstTimeDirectoryInit gets called
// for them even when we already have a cache result.
- // VSWhidbey Bug 560521
+ // VSWhidbey
if (result != null) {
// We should only process the local resources folder after the top level files have been compiled,
- // so that any custom VPP can be registered first. (Dev10 bug 890796)
+ // so that any custom VPP can be registered first. (Dev10
if (_compilationStage == CompilationStage.AfterTopLevelFiles && result.VirtualPathDependencies != null) {
EnsureFirstTimeDirectoryInitForDependencies(result.VirtualPathDependencies);
}
@@ -2942,8 +2942,8 @@ namespace System.Web.Compilation {
bool createdDirectory = false;
foreach (FileData fileData in FileEnumerator.Create(fromDir)) {
- // Windows OS Bug 1981578
- // Create a new directory only if there is something in the directory.
+ // Windows OS
+
if (!createdDirectory)
Directory.CreateDirectory(toDir);
createdDirectory = true;
@@ -2966,7 +2966,7 @@ namespace System.Web.Compilation {
continue;
// Do not copy the file to the target folder if it has been already
- // marked for deletion - Dev10 bug 676794
+ // marked for deletion - Dev10
if (DiskBuildResultCache.HasDotDeleteFile(fileData.FullName)) {
continue;
}
diff --git a/mcs/class/referencesource/System.Web/Compilation/BuildManagerHost.cs b/mcs/class/referencesource/System.Web/Compilation/BuildManagerHost.cs
index 121ee730af7..5f1591c4ea1 100644
--- a/mcs/class/referencesource/System.Web/Compilation/BuildManagerHost.cs
+++ b/mcs/class/referencesource/System.Web/Compilation/BuildManagerHost.cs
@@ -666,7 +666,7 @@ internal class BuildManagerHost : MarshalByRefObject, IRegisteredObject {
hashCodeCombiner = new HashCodeCombiner();
}
- hashCodeCombiner.AddInt(_stringDictionary[virtualDependency].GetHashCode());
+ hashCodeCombiner.AddInt(StringUtil.GetNonRandomizedHashCode((string)_stringDictionary[virtualDependency]));
continue;
}
diff --git a/mcs/class/referencesource/System.Web/Compilation/BuildProvidersCompiler.cs b/mcs/class/referencesource/System.Web/Compilation/BuildProvidersCompiler.cs
index 4de6d695484..c1b0d99dab0 100644
--- a/mcs/class/referencesource/System.Web/Compilation/BuildProvidersCompiler.cs
+++ b/mcs/class/referencesource/System.Web/Compilation/BuildProvidersCompiler.cs
@@ -765,10 +765,10 @@ internal class WebDirectoryBatchCompiler {
}
else {
- // devdiv bug 666936: ASP.NET compilation related deadlock in Antares scenario.
- // The main (current) thread holds a global compilation lock. CacheAssemblyResults and CacheCompileErrors may
- // also require the global compilation lock in case of removing old data and thus may lead to deadlock.
- // Fix: using dictionaries to collect the build results from parallel threads and do caching in the main thread.
+ // devdiv
+
+
+
ConcurrentDictionary<AssemblyBuilder, CompilerResults> buildResults = new ConcurrentDictionary<AssemblyBuilder, CompilerResults>();
ConcurrentDictionary<AssemblyBuilder, CompilerResults> buildErrors = new ConcurrentDictionary<AssemblyBuilder, CompilerResults>();
diff --git a/mcs/class/referencesource/System.Web/Compilation/BuildResult.cs b/mcs/class/referencesource/System.Web/Compilation/BuildResult.cs
index c3b929cb1f1..a47485862c8 100644
--- a/mcs/class/referencesource/System.Web/Compilation/BuildResult.cs
+++ b/mcs/class/referencesource/System.Web/Compilation/BuildResult.cs
@@ -341,7 +341,7 @@ internal abstract class BuildResult {
// Don't check more than every two seconds
DateTime now = DateTime.Now;
- // Due to bug 214038, CBM can be called multiple times in a very short time.
+ // Due to
if (now < _nextUpToDateCheck && !BuildManagerHost.InClientBuildManager) {
Debug.Trace("BuildResult", "IsUpToDate: true since called less than 2 seconds ago. "
+ _nextUpToDateCheck + "," + now);
@@ -503,11 +503,11 @@ internal abstract class BuildResultCompiledAssemblyBase: BuildResult {
}
}
- // DevDiv Bug 98735
- // Go through the assembly and all references (including deeper levels) to make sure that
- // each referenced assembly exists and does not have a dot delete.
- // If any referenced assembly is removed or marked for deletion,
- // we invalidate the base assembly by throwing an InvalidOperationException
+ // DevDiv
+
+
+
+
private static void CheckAssemblyIsValid(Assembly a, Hashtable checkedAssemblies) {
// Keep track of which assemblies we already checked so we can skip them
@@ -1036,9 +1036,9 @@ internal abstract class BuildResultNoCompileTemplateControl : BuildResult, IType
try {
// Create the control tree
- // DevDiv Bug 59351
- // Lock during the first time we initialize the control builder with the object,
- // to prevent concurrency issues.
+ // DevDiv
+
+
if (!_initialized) {
lock (this) {
_rootBuilder.InitObject(templateControl);
diff --git a/mcs/class/referencesource/System.Web/Compilation/BuildResultCache.cs b/mcs/class/referencesource/System.Web/Compilation/BuildResultCache.cs
index 700233c7097..8bf8c7a889f 100644
--- a/mcs/class/referencesource/System.Web/Compilation/BuildResultCache.cs
+++ b/mcs/class/referencesource/System.Web/Compilation/BuildResultCache.cs
@@ -372,7 +372,7 @@ internal class MemoryBuildResultCache: BuildResultCache {
// run into a situation where the dependency has changed just
// when the cache item is about to get inserted, resulting in
// the callback deleting only the dll file and leaving behind the
- // pdb file. (Dev10 bug 846606)
+ // pdb file. (Dev10
var pdbPath = Path.ChangeExtension(f.FullName, ".pdb");
if (File.Exists(pdbPath)) {
DiskBuildResultCache.TryDeleteFile(new FileInfo(pdbPath));
@@ -456,7 +456,10 @@ internal abstract class DiskBuildResultCache: BuildResultCache {
// as it will not be used in future.
if (HostingEnvironment.ShutdownInitiated) {
BuildResultCompiledAssemblyBase compiledResult = result as BuildResultCompiledAssemblyBase;
- if (compiledResult != null)
+
+ // DevDiv2 880034: check if ResultAssembly is null before calling GetName().
+ // UsesExistingAssembly could be true in updatable compilation scenarios.
+ if (compiledResult != null && compiledResult.ResultAssembly != null && !compiledResult.UsesExistingAssembly)
MarkAssemblyAndRelatedFilesForDeletion(compiledResult.ResultAssembly.GetName().Name);
return;
}
diff --git a/mcs/class/referencesource/System.Web/Compilation/CompilationLock.cs b/mcs/class/referencesource/System.Web/Compilation/CompilationLock.cs
index 7ed6960eeda..6e271ae7022 100644
--- a/mcs/class/referencesource/System.Web/Compilation/CompilationLock.cs
+++ b/mcs/class/referencesource/System.Web/Compilation/CompilationLock.cs
@@ -169,7 +169,8 @@ internal static class CompilationLock {
// Create the mutex (or just get it if another process created it).
// Make the mutex unique per application
- int hashCode = ("CompilationLock" + HttpRuntime.AppDomainAppId.ToLower(CultureInfo.InvariantCulture)).GetHashCode();
+ int hashCode = StringUtil.GetNonRandomizedHashCode("CompilationLock" + HttpRuntime.AppDomainAppId.ToLower(CultureInfo.InvariantCulture));
+
_mutex = new CompilationMutex(
"CL" + hashCode.ToString("x", CultureInfo.InvariantCulture),
@@ -187,7 +188,7 @@ internal static class CompilationLock {
// Always take the BuildManager lock *before* taking the mutex, to avoid possible
// deadlock situations (VSWhidbey 530732)
#pragma warning disable 0618
- //@TODO: This overload of Monitor.Enter is obsolete. Please change this to use Monitor.Enter(ref bool), and remove the pragmas -- [....]
+ //@TODO: This overload of Monitor.Enter is obsolete. Please change this to use Monitor.Enter(ref bool), and remove the pragmas -- Microsoft
Monitor.Enter(BuildManager.TheBuildManager);
#pragma warning restore 0618
_mutex.WaitOne();
diff --git a/mcs/class/referencesource/System.Web/Compilation/CompilationUtil.cs b/mcs/class/referencesource/System.Web/Compilation/CompilationUtil.cs
index a11707af7b1..b36f63f94a0 100644
--- a/mcs/class/referencesource/System.Web/Compilation/CompilationUtil.cs
+++ b/mcs/class/referencesource/System.Web/Compilation/CompilationUtil.cs
@@ -333,7 +333,7 @@ namespace System.Web.Compilation {
return buildProviders.GetBuildProviderTypes(appliesTo);
}
- // In partial trust, do not allow the CompilerDirectoryPath provider option in codedom settings (Dev10 bug 462348)
+ // In partial trust, do not allow the CompilerDirectoryPath provider option in codedom settings (Dev10
internal static void CheckCompilerDirectoryPathAllowed(IDictionary<string, string> providerOptions) {
if (providerOptions == null) {
return;
@@ -445,10 +445,10 @@ namespace System.Web.Compilation {
return t;
}
- // Devdiv Bug 57600
- // We need to use the constructor with ProviderOptions to get the v3.5/v4.0 compiler that was possibly set in config.
- // We first check if there is any providerOptions and invoke the constructor if so.
- // Otherwise, we fall back to the default constructor.
+ // Devdiv
+
+
+
internal static CodeDomProvider CreateCodeDomProvider(Type codeDomProviderType) {
CodeDomProvider codeDomProvider = CreateCodeDomProviderWithPropertyOptions(codeDomProviderType);
if (codeDomProvider != null) {
@@ -493,7 +493,7 @@ namespace System.Web.Compilation {
// We need to explicitly set to v3.5, as it is possible for the
// user to only have specified it for one compiler but not
// the other.
- // Dev10 bug 809212
+ // Dev10
providerOptions["CompilerVersion"] = "v3.5";
}
else {
@@ -523,7 +523,7 @@ namespace System.Web.Compilation {
provider = CodeDomProvider.CreateProvider(language, providerOptions);
}
// Restore the provider options if we previously manually added the compilerDirectoryPath.
- // Otherwise, we might incorrectly invalidate the compilerDirectoryPath in medium trust (Dev10 bug 550299).
+ // Otherwise, we might incorrectly invalidate the compilerDirectoryPath in medium trust (Dev10
if (addedCompilerDirectoryPath) {
providerOptions.Remove(CompilerDirectoryPath);
}
diff --git a/mcs/class/referencesource/System.Web/Compilation/MultiTargetingUtil.cs b/mcs/class/referencesource/System.Web/Compilation/MultiTargetingUtil.cs
index f60717c5094..09ca000d3c8 100644
--- a/mcs/class/referencesource/System.Web/Compilation/MultiTargetingUtil.cs
+++ b/mcs/class/referencesource/System.Web/Compilation/MultiTargetingUtil.cs
@@ -359,7 +359,7 @@ namespace System.Web.Compilation {
private static void ValidateCompilerVersionFor40AndAbove() {
// Since the root web.config already specifies 4.0, we need to make sure both compilerVersions
// are actually greater than or equal to 4.0, in case the user only sets compilerVersion=3.5
- // for one language. (Dev10 bug 738202)
+ // for one language. (Dev10
ValidateCompilerVersionFor40AndAbove(GetCSharpCompilerVersion());
ValidateCompilerVersionFor40AndAbove(GetVisualBasicCompilerVersion());
}
diff --git a/mcs/class/referencesource/System.Web/Compilation/PreservationFileReader.cs b/mcs/class/referencesource/System.Web/Compilation/PreservationFileReader.cs
index ebcce1503c3..956ea7082a2 100644
--- a/mcs/class/referencesource/System.Web/Compilation/PreservationFileReader.cs
+++ b/mcs/class/referencesource/System.Web/Compilation/PreservationFileReader.cs
@@ -145,7 +145,7 @@ internal class PreservationFileReader {
// under the same lock so to avoid bad interleaving where one process
// deletes the .compiled file that another process just created, orphaning
// the files generated by the other process.
- // (Dev10 bug 791299)
+ // (Dev10
CompilationLock.GetLock(ref gotLock);
// Give the BuildResult a chance to do some cleanup
diff --git a/mcs/class/referencesource/System.Web/Compilation/XsdBuildProvider.cs b/mcs/class/referencesource/System.Web/Compilation/XsdBuildProvider.cs
index 7802a250b56..5d58d0f1c29 100644
--- a/mcs/class/referencesource/System.Web/Compilation/XsdBuildProvider.cs
+++ b/mcs/class/referencesource/System.Web/Compilation/XsdBuildProvider.cs
@@ -49,8 +49,8 @@ internal class XsdBuildProvider: BuildProvider {
CodeNamespace codeNamespace = new CodeNamespace(ns);
codeCompileUnit.Namespaces.Add(codeNamespace);
- // Devdiv 18365, Dev10 bug 444516
- // Call a different Generate method if compiler version is v3.5 or above
+ // Devdiv 18365, Dev10
+
bool isVer35OrAbove = CompilationUtil.IsCompilerVersion35OrAbove(assemblyBuilder.CodeDomProvider.GetType());
if (isVer35OrAbove) {
@@ -72,8 +72,8 @@ internal class XsdBuildProvider: BuildProvider {
if (isVer35) {
var aName = a.GetName();
if (aName.Name == "System.Data.DataSetExtensions") {
- // Dev10 Bug 861688 - We need to specify v3.5 version so that the build system knows to use the v3.5 version
- // because the loaded assembly here is always v4.0
+ // Dev10
+
aName.Version = new Version(3, 5, 0, 0);
CompilationSection.RecordAssembly(aName.FullName, a);
}
diff --git a/mcs/class/referencesource/System.Web/Configuration/BrowserCapabilitiesCodeGenerator.cs b/mcs/class/referencesource/System.Web/Configuration/BrowserCapabilitiesCodeGenerator.cs
index 5dd5d4b54fd..1b1ce790aef 100644
--- a/mcs/class/referencesource/System.Web/Configuration/BrowserCapabilitiesCodeGenerator.cs
+++ b/mcs/class/referencesource/System.Web/Configuration/BrowserCapabilitiesCodeGenerator.cs
@@ -133,7 +133,7 @@ namespace System.Web.Configuration {
else {
// If we are targeting pre-4.0, we should be using version 2.0 of the assembly
// ASP.BrowserCapsFactory, so we need to read the token file from the 2.0 path.
- // (Dev10 bug 795509)
+ // (Dev10
string subPath = @"config\browsers\" + _publicKeyTokenFileName;
publicKeyTokenFile = ToolLocationHelper.GetPathToDotNetFrameworkFile(subPath, TargetDotNetFrameworkVersion.Version20);
}
diff --git a/mcs/class/referencesource/System.Web/Configuration/BuildProvider.cs b/mcs/class/referencesource/System.Web/Configuration/BuildProvider.cs
index 76cc4b645f6..f19c19721b3 100644
--- a/mcs/class/referencesource/System.Web/Configuration/BuildProvider.cs
+++ b/mcs/class/referencesource/System.Web/Configuration/BuildProvider.cs
@@ -70,7 +70,7 @@ namespace System.Web.Configuration {
return (o != null && StringUtil.EqualsIgnoreCase(Extension, o.Extension) && Type == o.Type);
}
public override int GetHashCode() {
- return HashCodeCombiner.CombineHashCodes(Extension.ToLower(CultureInfo.InvariantCulture).GetHashCode(),
+ return HashCodeCombiner.CombineHashCodes(StringUtil.GetNonRandomizedHashCode(Extension.ToLower(CultureInfo.InvariantCulture)),
Type.GetHashCode());
}
diff --git a/mcs/class/referencesource/System.Web/Configuration/FolderLevelBuildProvider.cs b/mcs/class/referencesource/System.Web/Configuration/FolderLevelBuildProvider.cs
index 8d7d681ac66..bec2a0d62a5 100644
--- a/mcs/class/referencesource/System.Web/Configuration/FolderLevelBuildProvider.cs
+++ b/mcs/class/referencesource/System.Web/Configuration/FolderLevelBuildProvider.cs
@@ -61,7 +61,7 @@ namespace System.Web.Configuration {
return (o != null && StringUtil.EqualsIgnoreCase(Name, o.Name) && Type == o.Type);
}
public override int GetHashCode() {
- return HashCodeCombiner.CombineHashCodes(Name.ToLower(CultureInfo.InvariantCulture).GetHashCode(),
+ return HashCodeCombiner.CombineHashCodes(StringUtil.GetNonRandomizedHashCode(Name.ToLower(CultureInfo.InvariantCulture)),
Type.GetHashCode());
}
diff --git a/mcs/class/referencesource/System.Web/Configuration/MachineKeySection.cs b/mcs/class/referencesource/System.Web/Configuration/MachineKeySection.cs
index ec0608ac24c..11d89243109 100644
--- a/mcs/class/referencesource/System.Web/Configuration/MachineKeySection.cs
+++ b/mcs/class/referencesource/System.Web/Configuration/MachineKeySection.cs
@@ -106,8 +106,8 @@ namespace System.Web.Configuration
internal byte[] ValidationKeyInternal { get { RuntimeDataInitialize(); return (byte[])_ValidationKey.Clone(); } }
internal byte[] DecryptionKeyInternal { get { RuntimeDataInitialize(); return (byte[])_DecryptionKey.Clone(); } }
- internal static int HashSize { get { s_config.RuntimeDataInitialize(); return _HashSize; } }
- internal static int ValidationKeySize { get { s_config.RuntimeDataInitialize(); return _AutoGenValidationKeySize; } }
+ internal static int HashSize { get { EnsureConfig(); s_config.RuntimeDataInitialize(); return _HashSize; } }
+ internal static int ValidationKeySize { get { EnsureConfig(); s_config.RuntimeDataInitialize(); return _AutoGenValidationKeySize; } }
static MachineKeySection()
{
@@ -369,7 +369,7 @@ namespace System.Web.Configuration
}
if (fAppSpecific)
{
- int dwCode = StringComparer.InvariantCultureIgnoreCase.GetHashCode( appName );
+ int dwCode = StringUtil.GetNonRandomizedStringComparerHashCode(appName);
_ValidationKey[0] = (byte)(dwCode & 0xff);
_ValidationKey[1] = (byte)((dwCode & 0xff00) >> 8);
_ValidationKey[2] = (byte)((dwCode & 0xff0000) >> 16);
@@ -377,7 +377,7 @@ namespace System.Web.Configuration
}
if (fAppIdSpecific)
{
- int dwCode = StringComparer.InvariantCultureIgnoreCase.GetHashCode( appId );
+ int dwCode = StringUtil.GetNonRandomizedStringComparerHashCode(appId);
_ValidationKey[4] = (byte)(dwCode & 0xff);
_ValidationKey[5] = (byte)((dwCode & 0xff00) >> 8);
_ValidationKey[6] = (byte)((dwCode & 0xff0000) >> 16);
@@ -425,7 +425,7 @@ namespace System.Web.Configuration
}
if (fAppSpecific)
{
- int dwCode = StringComparer.InvariantCultureIgnoreCase.GetHashCode(appName);
+ int dwCode = StringUtil.GetNonRandomizedStringComparerHashCode(appName);
_DecryptionKey[0] = (byte)(dwCode & 0xff);
_DecryptionKey[1] = (byte)((dwCode & 0xff00) >> 8);
_DecryptionKey[2] = (byte)((dwCode & 0xff0000) >> 16);
@@ -433,7 +433,7 @@ namespace System.Web.Configuration
}
if (fAppIdSpecific)
{
- int dwCode = StringComparer.InvariantCultureIgnoreCase.GetHashCode(appId);
+ int dwCode = StringUtil.GetNonRandomizedStringComparerHashCode(appId);
_DecryptionKey[4] = (byte)(dwCode & 0xff);
_DecryptionKey[5] = (byte)((dwCode & 0xff00) >> 8);
_DecryptionKey[6] = (byte)((dwCode & 0xff0000) >> 16);
diff --git a/mcs/class/referencesource/System.Web/Configuration/MetabaseServerConfig.cs b/mcs/class/referencesource/System.Web/Configuration/MetabaseServerConfig.cs
index d3727195d65..2b1c78a28ff 100644
--- a/mcs/class/referencesource/System.Web/Configuration/MetabaseServerConfig.cs
+++ b/mcs/class/referencesource/System.Web/Configuration/MetabaseServerConfig.cs
@@ -233,7 +233,7 @@ namespace System.Web.Configuration {
cacheInfo = new MapPathCacheInfo();
// Add to the cache.
// No need to have a lock here. UtcAdd will add the entry if it doesn't exist.
- // If it does exist, the existing value will be returned (Dev10 Bug 755034).
+ // If it does exist, the existing value will be returned (Dev10
object existingEntry = HttpRuntime.CacheInternal.UtcAdd(
cacheKey, cacheInfo, null, Cache.NoAbsoluteExpiration, slidingExpiration, CacheItemPriority.Default, null);
if (existingEntry != null) {
diff --git a/mcs/class/referencesource/System.Web/Configuration/ProcessHostMapPath.cs b/mcs/class/referencesource/System.Web/Configuration/ProcessHostMapPath.cs
index 39dccac1a52..b095d7c557b 100644
--- a/mcs/class/referencesource/System.Web/Configuration/ProcessHostMapPath.cs
+++ b/mcs/class/referencesource/System.Web/Configuration/ProcessHostMapPath.cs
@@ -231,7 +231,7 @@ namespace System.Web.Configuration {
cacheInfo = new MapPathCacheInfo();
// Add to the cache.
// No need to have a lock here. UtcAdd will add the entry if it doesn't exist.
- // If it does exist, the existing value will be returned (Dev10 Bug 755034).
+ // If it does exist, the existing value will be returned (Dev10
object existingEntry = HttpRuntime.CacheInternal.UtcAdd(
cacheKey, cacheInfo, null, Cache.NoAbsoluteExpiration, slidingExpiration, CacheItemPriority.Default, null);
if (existingEntry != null) {
diff --git a/mcs/class/referencesource/System.Web/Configuration/RuntimeConfig.cs b/mcs/class/referencesource/System.Web/Configuration/RuntimeConfig.cs
index 165eb0320ce..71507e51489 100644
--- a/mcs/class/referencesource/System.Web/Configuration/RuntimeConfig.cs
+++ b/mcs/class/referencesource/System.Web/Configuration/RuntimeConfig.cs
@@ -59,7 +59,6 @@ namespace System.Web.Configuration {
// For config implemented with IConfigurationSectionHandler, this
// may return null, non-null, or throw an exception.
//
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
static internal RuntimeConfig GetConfig(HttpContext context) {
if (!HttpConfigurationSystem.UseHttpConfigurationSystem) {
return GetClientRuntimeConfig();
@@ -359,7 +358,6 @@ namespace System.Web.Configuration {
}
internal PagesSection Pages {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
return (PagesSection) GetSection("system.web/pages", typeof(PagesSection), ResultsIndex.Pages);
}
diff --git a/mcs/class/referencesource/System.Web/Configuration/SessionStateSection.cs b/mcs/class/referencesource/System.Web/Configuration/SessionStateSection.cs
index c09da8b62e6..03df7959452 100644
--- a/mcs/class/referencesource/System.Web/Configuration/SessionStateSection.cs
+++ b/mcs/class/referencesource/System.Web/Configuration/SessionStateSection.cs
@@ -392,7 +392,7 @@ namespace System.Web.Configuration {
return (string)base[_propLockAttributes];
}
set {
- // base.LockedAttributes.SetFromList(value); // keep the internal list in [....]
+ // base.LockedAttributes.SetFromList(value); // keep the internal list in sync
base[_propLockAttributes] = value;
}
}
diff --git a/mcs/class/referencesource/System.Web/Configuration/TicketCompatibilityMode.cs b/mcs/class/referencesource/System.Web/Configuration/TicketCompatibilityMode.cs
index 98dde741110..167e0fdaf81 100644
--- a/mcs/class/referencesource/System.Web/Configuration/TicketCompatibilityMode.cs
+++ b/mcs/class/referencesource/System.Web/Configuration/TicketCompatibilityMode.cs
@@ -9,4 +9,4 @@ namespace System.Web.Configuration {
Framework20 = 0,
Framework40 = 1,
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web/Configuration/WebConfigurationHost.cs b/mcs/class/referencesource/System.Web/Configuration/WebConfigurationHost.cs
index 143b9eca9dd..7c7f605996a 100644
--- a/mcs/class/referencesource/System.Web/Configuration/WebConfigurationHost.cs
+++ b/mcs/class/referencesource/System.Web/Configuration/WebConfigurationHost.cs
@@ -476,9 +476,9 @@ namespace System.Web.Configuration {
// with these characters. We fallback to the default GetStreamName failure behavior which is to
// return null.
- // Dev10 Bug 835901: '?' (%3F), '*' (%2A), and ':' (%3A) are valid in a URL. We need to return null
- // if the path contains one of these characters. Instead of explicitly checking for these characters,
- // we will rely on Path.Combine and Path.GetFullPath to throw when the path is invalid.
+ // Dev10
+
+
return CombineAndValidatePath(directory, baseName);
}
diff --git a/mcs/class/referencesource/System.Web/ErrorFormatter.cs b/mcs/class/referencesource/System.Web/ErrorFormatter.cs
index 7e3585ba61c..da1e84b81ce 100644
--- a/mcs/class/referencesource/System.Web/ErrorFormatter.cs
+++ b/mcs/class/referencesource/System.Web/ErrorFormatter.cs
@@ -1851,6 +1851,7 @@ namespace System.Web {
protected string _message;
private Exception _e;
private StringCollection _adaptiveMiscContent = new StringCollection();
+ private bool _allowSourceCode;
internal ConfigErrorFormatter(System.Configuration.ConfigurationException e)
: base(null /*virtualPath*/, e.Filename, null, e.Line) {
@@ -1861,6 +1862,11 @@ namespace System.Web {
_adaptiveMiscContent.Add(_message);
}
+ public bool AllowSourceCode {
+ get { return _allowSourceCode; }
+ set { _allowSourceCode = value; }
+ }
+
protected override Encoding SourceFileEncoding {
get { return Encoding.UTF8; }
}
@@ -1892,6 +1898,16 @@ namespace System.Web {
protected override StringCollection AdaptiveMiscContent {
get { return _adaptiveMiscContent;}
}
+
+ protected override string ColoredSquareContent {
+ get {
+ if (!AllowSourceCode) {
+ return SR.GetString(SR.Generic_Err_Remote_Desc);
+ }
+
+ return base.ColoredSquareContent;
+ }
+ }
}
/*
diff --git a/mcs/class/referencesource/System.Web/EtwTrace.cs b/mcs/class/referencesource/System.Web/EtwTrace.cs
index cfbe331a355..8a5b641c7e0 100644
--- a/mcs/class/referencesource/System.Web/EtwTrace.cs
+++ b/mcs/class/referencesource/System.Web/EtwTrace.cs
@@ -185,7 +185,6 @@ namespace System.Web {
return verbosity;
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
internal static bool IsTraceEnabled(int level, int flag) {
if (level < _traceLevel && ((flag & _traceFlags) != EtwTraceFlags.None))
return true;
diff --git a/mcs/class/referencesource/System.Web/FileChangesMonitor.cs b/mcs/class/referencesource/System.Web/FileChangesMonitor.cs
index e4b03d4752a..5691656cb24 100644
--- a/mcs/class/referencesource/System.Web/FileChangesMonitor.cs
+++ b/mcs/class/referencesource/System.Web/FileChangesMonitor.cs
@@ -149,7 +149,7 @@ namespace System.Web {
}
[SuppressMessage("Microsoft.Interoperability", "CA1404:CallGetLastErrorImmediatelyAfterPInvoke",
- Justification="[....]: Call to GetLastWin32Error() does follow P/Invoke call that is outside the if/else block.")]
+ Justification="Microsoft: Call to GetLastWin32Error() does follow P/Invoke call that is outside the if/else block.")]
static internal byte[] GetDacl(string filename) {
// DevDiv #322858 - allow skipping DACL step for perf gain
if (HostingEnvironment.FcnSkipReadAndCacheDacls) {
@@ -305,7 +305,7 @@ namespace System.Web {
}
else {
#if DBG
- // Needs the lock to [....] with DebugDescription
+ // Needs the lock to sync with DebugDescription
lock (_targets) {
#endif
_targets.Add(callback.Target, new FileMonitorTarget(callback, alias));
@@ -330,7 +330,7 @@ namespace System.Web {
#endif
if (target != null && target.Release() == 0) {
#if DBG
- // Needs the lock to [....] with DebugDescription
+ // Needs the lock to sync with DebugDescription
lock (_targets) {
#endif
_targets.Remove(callbackTarget);
@@ -1574,7 +1574,7 @@ namespace System.Web {
}
}
}
- // Dev10 Bug 663511: Deletes, moves, and renames of the App_LocalResources folder may be ignored
+ // Dev10
if (dirName.IndexOf(HttpRuntime.LocalResourcesDirectoryName, StringComparison.OrdinalIgnoreCase) > -1) {
return true;
}
diff --git a/mcs/class/referencesource/System.Web/GlobalSuppressions.cs b/mcs/class/referencesource/System.Web/GlobalSuppressions.cs
index 06e9d1dc4fa..a08a78cade2 100644
--- a/mcs/class/referencesource/System.Web/GlobalSuppressions.cs
+++ b/mcs/class/referencesource/System.Web/GlobalSuppressions.cs
@@ -13,3872 +13,3872 @@ using System.Diagnostics.CodeAnalysis;
// These suppressions were automatically migrated from the FxCop baseline files.
#region $/DevDiv/Dev11/pu/MQAspNet/ddsuites/src/FxCop/Excludes/Triaged/System.Web.dll.FxCop
-[module: SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "namespace", Target = "System.Web.Administration", Justification = @"[....]: Our namespaces have approval.")]
-[module: SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "namespace", Target = "System.Web.DataAccess", Justification = @"[....]: Our namespaces have approval.")]
-[module: SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "namespace", Target = "System.Web.Management", Justification = @"[....]: Our namespaces have approval.")]
-[module: SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "namespace", Target = "System.Web.Profile", Justification = @"[....]: Our namespaces have approval.")]
-[module: SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "namespace", Target = "System.Web.UI.Adapters", Justification = @"[....]: Our namespaces have approval.")]
-[module: SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "namespace", Target = "System.Web.UI.WebControls.Adapters", Justification = @"[....]: Our namespaces have approval.")]
-[module: SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "namespace", Target = "System.Web.UI.WebControls.WebParts", Justification = @"[....]: Our namespaces have approval.")]
-[module: SuppressMessage("Microsoft.Design", "CA2210:AssembliesShouldHaveValidStrongNames", Scope = "module", Target = "system.web.dll", Justification = @"[....]: We're not going to change the name of System.Web")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = ".AssemblyRef", Justification = @"[....]: These classes are used in assembly generation.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = ".FXAssembly", Justification = @"[....]: This is a generated class containing just the version")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = ".ThisAssembly", Justification = @"[....]: These classes are used in assembly generation.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.ApplicationImpersonationContext.#.ctor()", Justification = @"[....]: Config should not be protected by link demands.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.ApplicationShutdownReason.#ChangeInGlobalAsax", MessageId = "Asax", Justification = @"[....]: Spelling ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.ApplicationShutdownReason.#ChangeInSecurityPolicyFile", MessageId = "InSecurity", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.AspNetSynchronizationContext.#CallCallbackPossiblyUnderLock(System.Threading.SendOrPostCallback,System.Object)", Justification = @"[....]: No security issues= non-ClsCompliant exceptions are ok to bubble up here.")]
+[module: SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "namespace", Target = "System.Web.Administration", Justification = @"phuff: Our namespaces have approval.")]
+[module: SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "namespace", Target = "System.Web.DataAccess", Justification = @"phuff: Our namespaces have approval.")]
+[module: SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "namespace", Target = "System.Web.Management", Justification = @"phuff: Our namespaces have approval.")]
+[module: SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "namespace", Target = "System.Web.Profile", Justification = @"phuff: Our namespaces have approval.")]
+[module: SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "namespace", Target = "System.Web.UI.Adapters", Justification = @"phuff: Our namespaces have approval.")]
+[module: SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "namespace", Target = "System.Web.UI.WebControls.Adapters", Justification = @"phuff: Our namespaces have approval.")]
+[module: SuppressMessage("Microsoft.MSInternal", "CA905:SystemAndMicrosoftNamespacesRequireApproval", Scope = "namespace", Target = "System.Web.UI.WebControls.WebParts", Justification = @"phuff: Our namespaces have approval.")]
+[module: SuppressMessage("Microsoft.Design", "CA2210:AssembliesShouldHaveValidStrongNames", Scope = "module", Target = "system.web.dll", Justification = @"phuff: We're not going to change the name of System.Web")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = ".AssemblyRef", Justification = @"phuff: These classes are used in assembly generation.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = ".FXAssembly", Justification = @"rodneyk: This is a generated class containing just the version")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = ".ThisAssembly", Justification = @"phuff: These classes are used in assembly generation.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.ApplicationImpersonationContext.#.ctor()", Justification = @"phuff: Config should not be protected by link demands.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.ApplicationShutdownReason.#ChangeInGlobalAsax", MessageId = "Asax", Justification = @"phuff: Spelling ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.ApplicationShutdownReason.#ChangeInSecurityPolicyFile", MessageId = "InSecurity", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.AspNetSynchronizationContext.#CallCallbackPossiblyUnderLock(System.Threading.SendOrPostCallback,System.Object)", Justification = @"phuff: No security issues= non-ClsCompliant exceptions are ok to bubble up here.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.BeginEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Performance", "CA1807:AvoidUnnecessaryStringCreation", Scope = "member", Target = "System.Web.CachedPathData.#CreateKey(System.String)", MessageId = "stack0", Justification = @"[....]: The 'stack0' variable is only used in a Debug statement. Excluding since it's a debug only false alarm.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.CachedPathData.#GetApplicationPathData()", Justification = @"[....]: Config should not be protected by a link demand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.CachedPathData.#GetConfigPathData(System.String)", Justification = @"[....]: Config should not be protected by a link demand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.CachedPathData.#GetVirtualPathData(System.Web.VirtualPath,System.Boolean)", Justification = @"[....]: Config should not be protected by a link demand.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.DefaultHttpHandler", Justification = @"[....]: Don't know where these come from. Will check with Polita.")]
-[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.DefaultHttpHandler.#OverrideExecuteUrlPath()", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.DictionaryEntryCaseInsensitiveComparer.#.ctor()", Justification = @"[....]: Invoked via reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.DirectoryMonitor.#DebugDescription(System.String)", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.DirectoryMonitor.#FireNotifications()", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.DirectoryMonitor.#OnFileChange(System.Web.FileAction,System.String,System.DateTime)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.DirMonCompletion.#.ctor(System.Web.DirectoryMonitor,System.String,System.Boolean,System.UInt32)", Justification = @"[....]: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.DirMonCompletion.#_ndirMonCompletionHandle", Justification = @"[....]: _ndirMonCompletionPtr and _ndirmonCompletionHandle are pointer and handle to an internally created native object. DirmonCompletion.Dispose has code to release that resource. Don't need a need to use SafeHandle here.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.DirMonCompletion.#_ndirMonCompletionPtr", Justification = @"[....]: _ndirMonCompletionPtr and _ndirmonCompletionHandle are pointer and handle to an internally created native object. DirmonCompletion.Dispose has code to release that resource. Don't need a need to use SafeHandle here.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.DirMonCompletion.#DebugDescription(System.String)", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Security", "CA2115:CallGCKeepAliveWhenUsingNativeResources", Scope = "member", Target = "System.Web.DirMonCompletion.#OnFileChange(System.Web.FileAction,System.String,System.Int64)", Justification = @"[....]: The IntPtr isn't finalized, so GC.KeepAlive is not needed.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1807:AvoidUnnecessaryStringCreation", Scope = "member", Target = "System.Web.CachedPathData.#CreateKey(System.String)", MessageId = "stack0", Justification = @"fabioy: The 'stack0' variable is only used in a Debug statement. Excluding since it's a debug only false alarm.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.CachedPathData.#GetApplicationPathData()", Justification = @"phuff: Config should not be protected by a link demand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.CachedPathData.#GetConfigPathData(System.String)", Justification = @"phuff: Config should not be protected by a link demand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.CachedPathData.#GetVirtualPathData(System.Web.VirtualPath,System.Boolean)", Justification = @"phuff: Config should not be protected by a link demand.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.DefaultHttpHandler", Justification = @"bleroy: Don't know where these come from. Will check with Polita.")]
+[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.DefaultHttpHandler.#OverrideExecuteUrlPath()", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.DictionaryEntryCaseInsensitiveComparer.#.ctor()", Justification = @"adams: Invoked via reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.DirectoryMonitor.#DebugDescription(System.String)", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.DirectoryMonitor.#FireNotifications()", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.DirectoryMonitor.#OnFileChange(System.Web.FileAction,System.String,System.DateTime)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.DirMonCompletion.#.ctor(System.Web.DirectoryMonitor,System.String,System.Boolean,System.UInt32)", Justification = @"erikols: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.DirMonCompletion.#_ndirMonCompletionHandle", Justification = @"patng: _ndirMonCompletionPtr and _ndirmonCompletionHandle are pointer and handle to an internally created native object. DirmonCompletion.Dispose has code to release that resource. Don't need a need to use SafeHandle here.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.DirMonCompletion.#_ndirMonCompletionPtr", Justification = @"patng: _ndirMonCompletionPtr and _ndirmonCompletionHandle are pointer and handle to an internally created native object. DirmonCompletion.Dispose has code to release that resource. Don't need a need to use SafeHandle here.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.DirMonCompletion.#DebugDescription(System.String)", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Security", "CA2115:CallGCKeepAliveWhenUsingNativeResources", Scope = "member", Target = "System.Web.DirMonCompletion.#OnFileChange(System.Web.FileAction,System.String,System.Int64)", Justification = @"adams: The IntPtr isn't finalized, so GC.KeepAlive is not needed.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.EndEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.ErrorFormatter.#CreateBreakLiteral()", MessageId = "System.Web.UI.WebControls.Literal.set_Text(System.String)", Justification = @"[....]: The break tag literal is culture independent and does not need to be retrieved from resource.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.ErrorFormatter.#GetHtmlErrorMessage(System.Boolean)", Justification = @"[....]: This usage has been carefully reviewed.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.EtwTrace", Justification = @"[....]: code may be used for debug purposes and through reflection")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.EtwTrace.#TraceEnableCheck(System.Web.EtwTraceConfigType,System.IntPtr)", Justification = @"[....]: ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.FileChangesMonitor.#CreateFileMonitoringException(System.Int32,System.String)", Justification = @"[....]: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.FileChangesMonitor.#DebugDescription(System.String)", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.FileChangesMonitor.#GetFullPath(System.String)", Justification = @"[....]: PipelineRuntime instances not given out to user code. If this assumption changes, we need to change this")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.FileSecurity", Justification = @"[....]: Internal HttpModule only instantiated through reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.FileSecurity.#.ctor()", Justification = @"[....]: Error in violation")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.FileSecurity.#GetDacl(System.String)", Justification = @"[....]: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.FormatterWithFileInfo.#GetSourceFileLines(System.String,System.Text.Encoding,System.String,System.Int32)", Justification = @"[....]: It's fine here to catch all exceptions.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnAcquireRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnAcquireRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnAuthenticateRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnAuthenticateRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnAuthorizeRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnAuthorizeRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnBeginRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnBeginRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnEndRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnEndRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnLogRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: Reviewed and excluded in beta2lhsd, based on parity with existing pattern")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnLogRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: Reviewed and excluded in beta2lhsd, based on parity with existing pattern")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnMapRequestHandlerAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: Reviewed and excluded in beta2lhsd, based on parity with existing pattern")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnMapRequestHandlerAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: Reviewed and excluded in beta2lhsd, based on parity with existing pattern")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAcquireRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "0#", Justification = @"[....]: these new methods have the same parameter names as the existing public ones that cannot be changed (breaking change) - i think we should keep consistent names")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAcquireRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "bh", Justification = @"[....]: This is for consistency with existing methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAcquireRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAcquireRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAuthenticateRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "0#", Justification = @"[....]: these new methods have the same parameter names as the existing public ones that cannot be changed (breaking change) - i think we should keep consistent names")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAuthenticateRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "bh", Justification = @"[....]: This is for consistency with existing methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAuthenticateRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAuthenticateRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAuthorizeRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "0#", Justification = @"[....]: these new methods have the same parameter names as the existing public ones that cannot be changed (breaking change) - i think we should keep consistent names")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAuthorizeRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "bh", Justification = @"[....]: This is for consistency with existing methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAuthorizeRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAuthorizeRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostLogRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: Reviewed and excluded in beta2lhsd, based on parity with existing pattern")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostLogRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: Reviewed and excluded in beta2lhsd, based on parity with existing pattern")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostMapRequestHandlerAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "0#", Justification = @"[....]: these new methods have the same parameter names as the existing public ones that cannot be changed (breaking change) - i think we should keep consistent names")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostMapRequestHandlerAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "bh", Justification = @"[....]: This is for consistency with existing methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostMapRequestHandlerAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostMapRequestHandlerAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostReleaseRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "0#", Justification = @"[....]: these new methods have the same parameter names as the existing public ones that cannot be changed (breaking change) - i think we should keep consistent names")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostReleaseRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "bh", Justification = @"[....]: This is for consistency with existing methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostReleaseRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostReleaseRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostRequestHandlerExecuteAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostRequestHandlerExecuteAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostResolveRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "0#", Justification = @"[....]: these new methods have the same parameter names as the existing public ones that cannot be changed (breaking change) - i think we should keep consistent names")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostResolveRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "bh", Justification = @"[....]: This is for consistency with existing methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostResolveRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostResolveRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostUpdateRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "0#", Justification = @"[....]: these new methods have the same parameter names as the existing public ones that cannot be changed (breaking change) - i think we should keep consistent names")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostUpdateRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "bh", Justification = @"[....]: This is for consistency with existing methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostUpdateRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostUpdateRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPreRequestHandlerExecuteAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPreRequestHandlerExecuteAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnReleaseRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnReleaseRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnResolveRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnResolveRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnUpdateRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnUpdateRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", Scope = "member", Target = "System.Web.HttpApplication.#Dispose()", Justification = @"[....]: it does call _events.Dispose in the finally block contained in the Dispose method")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication.#DisposeInternal()", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication.#DisposeInternal()", Justification = @"[....]: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpApplication.#remove_DefaultAuthentication(System.EventHandler)", Justification = @"[....]: events have to have both add_ and remove_")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication.#ExecuteStep(System.Web.HttpApplication+IExecutionStep,System.Boolean&)", Justification = @"[....]: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication.#InitInternal(System.Web.HttpContext,System.Web.HttpApplicationState,System.Reflection.MethodInfo[])", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication.#InitInternal(System.Web.HttpContext,System.Web.HttpApplicationState,System.Reflection.MethodInfo[])", Justification = @"[....]: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication.#ProcessSpecialRequest(System.Web.HttpContext,System.Reflection.MethodInfo,System.Int32,System.Object,System.EventArgs,System.Web.SessionState.HttpSessionState)", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication.#ProcessSpecialRequest(System.Web.HttpContext,System.Reflection.MethodInfo,System.Int32,System.Object,System.EventArgs,System.Web.SessionState.HttpSessionState)", Justification = @"[....]: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication.#RaiseOnError()", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication.#RaiseOnError()", Justification = @"[....]: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#RaiseOnError()", Justification = @"[....]: RaiseOnError is a private method to fire an event")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication.#RaiseOnPreSendRequestContent()", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication.#RaiseOnPreSendRequestContent()", Justification = @"[....]: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication.#RaiseOnPreSendRequestHeaders()", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication.#RaiseOnPreSendRequestHeaders()", Justification = @"[....]: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication.#ResumeSteps(System.Exception)", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication.#ResumeSteps(System.Exception)", Justification = @"[....]: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.HttpApplication.#System.Web.IHttpAsyncHandler.BeginProcessRequest(System.Web.HttpContext,System.AsyncCallback,System.Object)", Justification = @"[....]: HttpApplication cannot be sealed - classes compiled from GLOBAL.ASAX are derived from it")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.HttpApplication.#System.Web.IHttpAsyncHandler.EndProcessRequest(System.IAsyncResult)", Justification = @"[....]: HttpApplication cannot be sealed - it is the base class for GLOBAL.ASAX")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.HttpApplication.#System.Web.IHttpHandler.get_IsReusable()", Justification = @"[....]: HttpApplication cannot be sealed because it is used as base for GLOBAL.ASAX")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.HttpApplication.#System.Web.IHttpHandler.ProcessRequest(System.Web.HttpContext)", Justification = @"[....]: HttpApplication cannot be sealed - it is the base class for GLOBAL.ASAX")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication+AsyncEventExecutionStep.#OnAsyncEventCompletion(System.IAsyncResult)", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication+AsyncEventExecutionStep.#OnAsyncEventCompletion(System.IAsyncResult)", Justification = @"[....]: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication+CallHandlerExecutionStep.#OnAsyncHandlerCompletion(System.IAsyncResult)", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication+CallHandlerExecutionStep.#OnAsyncHandlerCompletion(System.IAsyncResult)", Justification = @"[....]: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.ThreadContext.#DisassociateFromCurrentThread()", Justification = @"[....]: Reviewed, no PipelineRuntime instances handed out")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#CompileApplication()", Justification = @"[....]: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#EnsureAppStartCalled(System.Web.HttpContext)", Justification = @"[....]: Reviewed, no pipeline runtime instances handed out")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#FireApplicationOnStart(System.Web.HttpContext)", Justification = @"[....]: Reviewed, no pipeline runtime instances handed out")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#GetApplicationFile()", Justification = @"[....]: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#GetApplicationInstance(System.Web.HttpContext)", Justification = @"[....]: Reviewed, no pipeline runtime instances handed out")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#GetAppStateByParsingGlobalAsax()", Justification = @"[....]: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#GetNormalApplicationInstance(System.Web.HttpContext)", Justification = @"[....]: Reviewed, no pipeline runtime instances handed out")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#GetSpecialApplicationInstance(System.IntPtr,System.Web.HttpContext)", Justification = @"[....]: Method signature changed.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpApplicationFactory.#OnAppFileChange(System.Object,System.Web.FileChangeEvent)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: The message in only used for debugging purposes.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#SetupChangesMonitor()", Justification = @"[....]: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
-[module: SuppressMessage("Microsoft.Usage", "CA2237:MarkISerializableTypesWithSerializable", Scope = "type", Target = "System.Web.HttpApplicationState", Justification = @"[....]: The two underlying HttpStaticObjectsCollection aren't serializable.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.HttpApplicationStateBase.#UnLock()", MessageId = "Member", Justification = @"[....]: legacy")]
-[module: SuppressMessage("Microsoft.Security", "CA2110:SecureGetObjectDataOverrides", Scope = "member", Target = "System.Web.HttpApplicationStateWrapper.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"[....]: already fixed")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetETag(System.String)", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetExpires(System.DateTime)", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetLastModified(System.DateTime)", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetMaxAge(System.TimeSpan)", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetOmitVaryStar(System.Boolean)", Justification = @"[....]: The naming of methods on this class follows an established pattern for cache control policy (i.e. HttpCachePolicy), and is thus excluded.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetProxyMaxAge(System.TimeSpan)", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetRevalidation(System.Web.HttpCacheRevalidation)", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetSlidingExpiration(System.Boolean)", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetValidUntilExpires(System.Boolean)", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetVaryByCustom(System.String)", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.ErrorFormatter.#CreateBreakLiteral()", MessageId = "System.Web.UI.WebControls.Literal.set_Text(System.String)", Justification = @"ftse: The break tag literal is culture independent and does not need to be retrieved from resource.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.ErrorFormatter.#GetHtmlErrorMessage(System.Boolean)", Justification = @"adams: This usage has been carefully reviewed.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.EtwTrace", Justification = @"mattgi: code may be used for debug purposes and through reflection")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.EtwTrace.#TraceEnableCheck(System.Web.EtwTraceConfigType,System.IntPtr)", Justification = @"tmarq: ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.FileChangesMonitor.#CreateFileMonitoringException(System.Int32,System.String)", Justification = @"erikols: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.FileChangesMonitor.#DebugDescription(System.String)", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.FileChangesMonitor.#GetFullPath(System.String)", Justification = @"erikols: PipelineRuntime instances not given out to user code. If this assumption changes, we need to change this")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.FileSecurity", Justification = @"adams: Internal HttpModule only instantiated through reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.FileSecurity.#.ctor()", Justification = @"adams: Error in violation")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.FileSecurity.#GetDacl(System.String)", Justification = @"erikols: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.FormatterWithFileInfo.#GetSourceFileLines(System.String,System.Text.Encoding,System.String,System.Int32)", Justification = @"davidebb: It's fine here to catch all exceptions.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnAcquireRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnAcquireRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnAuthenticateRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnAuthenticateRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnAuthorizeRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnAuthorizeRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnBeginRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnBeginRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnEndRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnEndRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnLogRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"erikols: Reviewed and excluded in beta2lhsd, based on parity with existing pattern")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnLogRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"erikols: Reviewed and excluded in beta2lhsd, based on parity with existing pattern")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnMapRequestHandlerAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"erikols: Reviewed and excluded in beta2lhsd, based on parity with existing pattern")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnMapRequestHandlerAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"erikols: Reviewed and excluded in beta2lhsd, based on parity with existing pattern")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAcquireRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "0#", Justification = @"dmitryr: these new methods have the same parameter names as the existing public ones that cannot be changed (breaking change) - i think we should keep consistent names")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAcquireRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "bh", Justification = @"davidebb: This is for consistency with existing methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAcquireRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAcquireRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAuthenticateRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "0#", Justification = @"dmitryr: these new methods have the same parameter names as the existing public ones that cannot be changed (breaking change) - i think we should keep consistent names")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAuthenticateRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "bh", Justification = @"davidebb: This is for consistency with existing methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAuthenticateRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAuthenticateRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAuthorizeRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "0#", Justification = @"dmitryr: these new methods have the same parameter names as the existing public ones that cannot be changed (breaking change) - i think we should keep consistent names")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAuthorizeRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "bh", Justification = @"davidebb: This is for consistency with existing methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAuthorizeRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostAuthorizeRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostLogRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"erikols: Reviewed and excluded in beta2lhsd, based on parity with existing pattern")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostLogRequestAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"erikols: Reviewed and excluded in beta2lhsd, based on parity with existing pattern")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostMapRequestHandlerAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "0#", Justification = @"dmitryr: these new methods have the same parameter names as the existing public ones that cannot be changed (breaking change) - i think we should keep consistent names")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostMapRequestHandlerAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "bh", Justification = @"davidebb: This is for consistency with existing methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostMapRequestHandlerAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostMapRequestHandlerAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostReleaseRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "0#", Justification = @"dmitryr: these new methods have the same parameter names as the existing public ones that cannot be changed (breaking change) - i think we should keep consistent names")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostReleaseRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "bh", Justification = @"davidebb: This is for consistency with existing methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostReleaseRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostReleaseRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostRequestHandlerExecuteAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostRequestHandlerExecuteAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostResolveRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "0#", Justification = @"dmitryr: these new methods have the same parameter names as the existing public ones that cannot be changed (breaking change) - i think we should keep consistent names")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostResolveRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "bh", Justification = @"davidebb: This is for consistency with existing methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostResolveRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostResolveRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostUpdateRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "0#", Justification = @"dmitryr: these new methods have the same parameter names as the existing public ones that cannot be changed (breaking change) - i think we should keep consistent names")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostUpdateRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", MessageId = "bh", Justification = @"davidebb: This is for consistency with existing methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostUpdateRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPostUpdateRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPreRequestHandlerExecuteAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnPreRequestHandlerExecuteAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnReleaseRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnReleaseRequestStateAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnResolveRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnResolveRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnUpdateRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: These are not true events, but asynchronous ones, they require Begin and End delegates, not simple event handler. This pattern is in place since v1.0")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#AddOnUpdateRequestCacheAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", Scope = "member", Target = "System.Web.HttpApplication.#Dispose()", Justification = @"mattgi: it does call _events.Dispose in the finally block contained in the Dispose method")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication.#DisposeInternal()", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication.#DisposeInternal()", Justification = @"dmitryr: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpApplication.#remove_DefaultAuthentication(System.EventHandler)", Justification = @"dmitryr: events have to have both add_ and remove_")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication.#ExecuteStep(System.Web.HttpApplication+IExecutionStep,System.Boolean&)", Justification = @"dmitryr: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication.#InitInternal(System.Web.HttpContext,System.Web.HttpApplicationState,System.Reflection.MethodInfo[])", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication.#InitInternal(System.Web.HttpContext,System.Web.HttpApplicationState,System.Reflection.MethodInfo[])", Justification = @"dmitryr: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication.#ProcessSpecialRequest(System.Web.HttpContext,System.Reflection.MethodInfo,System.Int32,System.Object,System.EventArgs,System.Web.SessionState.HttpSessionState)", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication.#ProcessSpecialRequest(System.Web.HttpContext,System.Reflection.MethodInfo,System.Int32,System.Object,System.EventArgs,System.Web.SessionState.HttpSessionState)", Justification = @"dmitryr: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication.#RaiseOnError()", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication.#RaiseOnError()", Justification = @"dmitryr: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.HttpApplication.#RaiseOnError()", Justification = @"dmitryr: RaiseOnError is a private method to fire an event")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication.#RaiseOnPreSendRequestContent()", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication.#RaiseOnPreSendRequestContent()", Justification = @"dmitryr: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication.#RaiseOnPreSendRequestHeaders()", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication.#RaiseOnPreSendRequestHeaders()", Justification = @"dmitryr: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication.#ResumeSteps(System.Exception)", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication.#ResumeSteps(System.Exception)", Justification = @"dmitryr: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.HttpApplication.#System.Web.IHttpAsyncHandler.BeginProcessRequest(System.Web.HttpContext,System.AsyncCallback,System.Object)", Justification = @"dmitryr: HttpApplication cannot be sealed - classes compiled from GLOBAL.ASAX are derived from it")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.HttpApplication.#System.Web.IHttpAsyncHandler.EndProcessRequest(System.IAsyncResult)", Justification = @"dmitryr: HttpApplication cannot be sealed - it is the base class for GLOBAL.ASAX")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.HttpApplication.#System.Web.IHttpHandler.get_IsReusable()", Justification = @"dmitryr: HttpApplication cannot be sealed because it is used as base for GLOBAL.ASAX")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.HttpApplication.#System.Web.IHttpHandler.ProcessRequest(System.Web.HttpContext)", Justification = @"dmitryr: HttpApplication cannot be sealed - it is the base class for GLOBAL.ASAX")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication+AsyncEventExecutionStep.#OnAsyncEventCompletion(System.IAsyncResult)", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication+AsyncEventExecutionStep.#OnAsyncEventCompletion(System.IAsyncResult)", Justification = @"dmitryr: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpApplication+CallHandlerExecutionStep.#OnAsyncHandlerCompletion(System.IAsyncResult)", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpApplication+CallHandlerExecutionStep.#OnAsyncHandlerCompletion(System.IAsyncResult)", Justification = @"dmitryr: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.ThreadContext.#DisassociateFromCurrentThread()", Justification = @"erikols: Reviewed, no PipelineRuntime instances handed out")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#CompileApplication()", Justification = @"erikols: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#EnsureAppStartCalled(System.Web.HttpContext)", Justification = @"erikols: Reviewed, no pipeline runtime instances handed out")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#FireApplicationOnStart(System.Web.HttpContext)", Justification = @"erikols: Reviewed, no pipeline runtime instances handed out")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#GetApplicationFile()", Justification = @"erikols: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#GetApplicationInstance(System.Web.HttpContext)", Justification = @"erikols: Reviewed, no pipeline runtime instances handed out")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#GetAppStateByParsingGlobalAsax()", Justification = @"erikols: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#GetNormalApplicationInstance(System.Web.HttpContext)", Justification = @"erikols: Reviewed, no pipeline runtime instances handed out")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#GetSpecialApplicationInstance(System.IntPtr,System.Web.HttpContext)", Justification = @"manuva: Method signature changed.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpApplicationFactory.#OnAppFileChange(System.Object,System.Web.FileChangeEvent)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"davidebb: The message in only used for debugging purposes.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpApplicationFactory.#SetupChangesMonitor()", Justification = @"erikols: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
+[module: SuppressMessage("Microsoft.Usage", "CA2237:MarkISerializableTypesWithSerializable", Scope = "type", Target = "System.Web.HttpApplicationState", Justification = @"patng: The two underlying HttpStaticObjectsCollection aren't serializable.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.HttpApplicationStateBase.#UnLock()", MessageId = "Member", Justification = @"tmarq: legacy")]
+[module: SuppressMessage("Microsoft.Security", "CA2110:SecureGetObjectDataOverrides", Scope = "member", Target = "System.Web.HttpApplicationStateWrapper.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"tmarq: already fixed")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetETag(System.String)", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetExpires(System.DateTime)", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetLastModified(System.DateTime)", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetMaxAge(System.TimeSpan)", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetOmitVaryStar(System.Boolean)", Justification = @"fabioy: The naming of methods on this class follows an established pattern for cache control policy (i.e. HttpCachePolicy), and is thus excluded.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetProxyMaxAge(System.TimeSpan)", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetRevalidation(System.Web.HttpCacheRevalidation)", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetSlidingExpiration(System.Boolean)", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetValidUntilExpires(System.Boolean)", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpCachePolicy.#SetVaryByCustom(System.String)", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.HttpCacheValidateHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Usage", "CA2237:MarkISerializableTypesWithSerializable", Scope = "type", Target = "System.Web.HttpClientCertificate", Justification = @"[....]: this collection is not intended to be serialized")]
-[module: SuppressMessage("Microsoft.Performance", "CA1807:AvoidUnnecessaryStringCreation", Scope = "member", Target = "System.Web.HttpClientCertificate.#Get(System.String)", MessageId = "field", Justification = @"[....]: ToLower is called to make the switch statement work.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpCompileException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.HttpCompileException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"[....]: Classes we don't own can't be changed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpContext.#get_Current()", Justification = @"[....]: HttpContext is only non-null when the LinkDemand for AspNetHostingPermission would be satisfied.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpContext.#GetConfig(System.String)", Justification = @"[....]: HttpContext is only non-null when the LinkDemand for AspNetHostingPermission would be satisfied.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpContext.#GetRuntimeConfig()", Justification = @"[....]: HttpContext is only non-null when the LinkDemand for AspNetHostingPermission would be satisfied.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpContext.#GetSection(System.String)", Justification = @"[....]: HttpContext is only non-null when the LinkDemand for AspNetHostingPermission would be satisfied.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpContext.#get_IsCustomErrorEnabled()", Justification = @"[....]: This is just a helper method that calls into CustomErrorsSection, which does not have the AspNetHostingPermission LinkDemand. So it is safe to expose the IsCustomErrorEnabled() method to user code.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpContext.#get_IsDebuggingEnabled()", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpContext.#get_Request()", Justification = @"[....]: HttpContext is only non-null when the LinkDemand for AspNetHostingPermission would be satisfied.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpContext.#get_Response()", Justification = @"[....]: HttpContext is only non-null when the LinkDemand for AspNetHostingPermission would be satisfied.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.HttpContext.#RewritePath(System.String,System.String,System.String)", MessageId = "2#", Justification = @"[....]: Breaking changes")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.HttpContext.#RewritePath(System.String,System.String,System.String,System.Boolean)", MessageId = "2#", Justification = @"[....]: Added a method overload with the same parameter names.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpContext.#SendEmptyResponse()", Justification = @"[....]: code may be used for debug purposes and through reflection")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpContext.#set_SkipAuthorization(System.Boolean)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpContext.#get_Timeout()", Justification = @"[....]: HttpContext is only non-null when the LinkDemand for AspNetHostingPermission would be satisfied.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpContext.#set_User(System.Security.Principal.IPrincipal)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2237:MarkISerializableTypesWithSerializable", Scope = "type", Target = "System.Web.HttpCookieCollection", Justification = @"[....]: this collection is not intended to be serialized")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpException.#.ctor(System.Int32,System.String)", Justification = @"[....]: RuntimeConfig.GetAppConfig only accesseses the System.Web configuration system when the LinkDemand for AspNetHostingPermission would be satisfied.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpException.#.ctor(System.String)", Justification = @"[....]: The HttpException is caught as rethrown as ConfigurationErrorsException, the original exception is not exposed externally.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpException.#GetHtmlErrorMessage()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpException.#GetHttpCode()", Justification = @"[....]: This occurs only for DBG builds.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpException.#GetHttpCode()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"[....]: Seems fine here")]
-[module: SuppressMessage("Microsoft.Usage", "CA2237:MarkISerializableTypesWithSerializable", Scope = "type", Target = "System.Web.HttpFileCollection", Justification = @"[....]: this collection is not intended to be serialized")]
-[module: SuppressMessage("Microsoft.Security", "CA2110:SecureGetObjectDataOverrides", Scope = "member", Target = "System.Web.HttpFileCollectionWrapper.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"[....]: it's already fixed")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.HttpFileResponseElement", Justification = @"[....]: This is an internal class (since v1.0), it's lifetime is controlled by ASP.NET")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.HttpForbiddenHandler", Justification = @"[....]: usable via machine.config")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpForbiddenHandler.#.ctor()", Justification = @"[....]: The class is referenced via config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.HttpMethodNotAllowedHandler", Justification = @"[....]: usable via machine.config")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpMethodNotAllowedHandler.#.ctor()", Justification = @"[....]: The class is referenced via config.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2237:MarkISerializableTypesWithSerializable", Scope = "type", Target = "System.Web.HttpModuleCollection", Justification = @"[....]: this is an old v1.x class and we don't care if it is serializable")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.HttpNotFoundHandler", Justification = @"[....]: usable via machine.config")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpNotFoundHandler.#.ctor()", Justification = @"[....]: The class is referenced via config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.HttpNotImplementedHandler", Justification = @"[....]: usable via machine.config")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpNotImplementedHandler.#.ctor()", Justification = @"[....]: The class is referenced via config.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpParseException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.HttpParseException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"[....]: Classes we don't own can't be changed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRawUploadedContent+TempFile.#.ctor()", Justification = @"[....]: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRawUploadedContent+TempFile.#Dispose()", Justification = @"[....]: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.HttpRequest.#.ctor(System.String,System.String,System.String)", MessageId = "2#", Justification = @"[....]: Breaking changes")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.HttpRequest.#AnonymousID", Justification = @"[....]: ID approved acronym.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRequest.#get_ContentLength()", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRequest.#FillInFormCollection()", Justification = @"[....]: No security issues= non-ClsCompliant exceptions are ok to bubble up here.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRequest.#GetEncodingFromHeaders()", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRequest.#MapImageCoordinates(System.String)", Justification = @"[....]: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Usage", "CA2237:MarkISerializableTypesWithSerializable", Scope = "type", Target = "System.Web.HttpClientCertificate", Justification = @"dmitryr: this collection is not intended to be serialized")]
+[module: SuppressMessage("Microsoft.Performance", "CA1807:AvoidUnnecessaryStringCreation", Scope = "member", Target = "System.Web.HttpClientCertificate.#Get(System.String)", MessageId = "field", Justification = @"adams: ToLower is called to make the switch statement work.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpCompileException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.HttpCompileException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"phuff: Classes we don't own can't be changed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpContext.#get_Current()", Justification = @"adams: HttpContext is only non-null when the LinkDemand for AspNetHostingPermission would be satisfied.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpContext.#GetConfig(System.String)", Justification = @"adams: HttpContext is only non-null when the LinkDemand for AspNetHostingPermission would be satisfied.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpContext.#GetRuntimeConfig()", Justification = @"adams: HttpContext is only non-null when the LinkDemand for AspNetHostingPermission would be satisfied.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpContext.#GetSection(System.String)", Justification = @"tinghaoy: HttpContext is only non-null when the LinkDemand for AspNetHostingPermission would be satisfied.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpContext.#get_IsCustomErrorEnabled()", Justification = @"mharder: This is just a helper method that calls into CustomErrorsSection, which does not have the AspNetHostingPermission LinkDemand. So it is safe to expose the IsCustomErrorEnabled() method to user code.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpContext.#get_IsDebuggingEnabled()", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpContext.#get_Request()", Justification = @"adams: HttpContext is only non-null when the LinkDemand for AspNetHostingPermission would be satisfied.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpContext.#get_Response()", Justification = @"adams: HttpContext is only non-null when the LinkDemand for AspNetHostingPermission would be satisfied.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.HttpContext.#RewritePath(System.String,System.String,System.String)", MessageId = "2#", Justification = @"phuff: Breaking changes")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.HttpContext.#RewritePath(System.String,System.String,System.String,System.Boolean)", MessageId = "2#", Justification = @"manuva: Added a method overload with the same parameter names.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpContext.#SendEmptyResponse()", Justification = @"mattgi: code may be used for debug purposes and through reflection")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpContext.#set_SkipAuthorization(System.Boolean)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpContext.#get_Timeout()", Justification = @"adams: HttpContext is only non-null when the LinkDemand for AspNetHostingPermission would be satisfied.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpContext.#set_User(System.Security.Principal.IPrincipal)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2237:MarkISerializableTypesWithSerializable", Scope = "type", Target = "System.Web.HttpCookieCollection", Justification = @"dmitryr: this collection is not intended to be serialized")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpException.#.ctor(System.Int32,System.String)", Justification = @"adams: RuntimeConfig.GetAppConfig only accesseses the System.Web configuration system when the LinkDemand for AspNetHostingPermission would be satisfied.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpException.#.ctor(System.String)", Justification = @"tinghaoy: The HttpException is caught as rethrown as ConfigurationErrorsException, the original exception is not exposed externally.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpException.#GetHtmlErrorMessage()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpException.#GetHttpCode()", Justification = @"adams: This occurs only for DBG builds.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpException.#GetHttpCode()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"davidebb: Seems fine here")]
+[module: SuppressMessage("Microsoft.Usage", "CA2237:MarkISerializableTypesWithSerializable", Scope = "type", Target = "System.Web.HttpFileCollection", Justification = @"dmitryr: this collection is not intended to be serialized")]
+[module: SuppressMessage("Microsoft.Security", "CA2110:SecureGetObjectDataOverrides", Scope = "member", Target = "System.Web.HttpFileCollectionWrapper.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"tmarq: it's already fixed")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.HttpFileResponseElement", Justification = @"dmitryr: This is an internal class (since v1.0), it's lifetime is controlled by ASP.NET")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.HttpForbiddenHandler", Justification = @"dmitryr: usable via machine.config")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpForbiddenHandler.#.ctor()", Justification = @"davidebb: The class is referenced via config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.HttpMethodNotAllowedHandler", Justification = @"dmitryr: usable via machine.config")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpMethodNotAllowedHandler.#.ctor()", Justification = @"davidebb: The class is referenced via config.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2237:MarkISerializableTypesWithSerializable", Scope = "type", Target = "System.Web.HttpModuleCollection", Justification = @"dmitryr: this is an old v1.x class and we don't care if it is serializable")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.HttpNotFoundHandler", Justification = @"dmitryr: usable via machine.config")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpNotFoundHandler.#.ctor()", Justification = @"davidebb: The class is referenced via config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.HttpNotImplementedHandler", Justification = @"dmitryr: usable via machine.config")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpNotImplementedHandler.#.ctor()", Justification = @"davidebb: The class is referenced via config.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpParseException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.HttpParseException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"phuff: Classes we don't own can't be changed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRawUploadedContent+TempFile.#.ctor()", Justification = @"dmitryr: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRawUploadedContent+TempFile.#Dispose()", Justification = @"dmitryr: we've decided not to try to catch specific exceptions - in many cases it is unknown what they are and in some cases there is no outer catch block to report the error to the client nicely")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.HttpRequest.#.ctor(System.String,System.String,System.String)", MessageId = "2#", Justification = @"phuff: Breaking changes")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.HttpRequest.#AnonymousID", Justification = @"phuff: ID approved acronym.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRequest.#get_ContentLength()", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRequest.#FillInFormCollection()", Justification = @"phuff: No security issues= non-ClsCompliant exceptions are ok to bubble up here.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRequest.#GetEncodingFromHeaders()", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRequest.#MapImageCoordinates(System.String)", Justification = @"mattgi: general exception catching is OK")]
[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpRequest.#SetSkipAuthorization(System.Boolean)", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Usage", "CA2234:PassSystemUriObjectsInsteadOfStrings", Scope = "member", Target = "System.Web.HttpRequest.#get_UrlReferrer()", Justification = @"[....]: This looks fine.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.HttpRequestBase.#AnonymousID", MessageId = "Member", Justification = @"[....]: already fixed")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.HttpResourceResponseElement", Justification = @"[....]: this class does not allocate unmanaged resource")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.HttpResourceResponseElement.#_data", Justification = @"[....]: this is a pointer to unmanaged buffer (ASP.NET controls the buffer pool from unmanaged code)")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.HttpResponse.#AppendHeader(System.String,System.String)", Justification = @"[....]: although unlikely, the content length string could be passed using the current culture")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpResponse.#GenerateResponseHeaders(System.Boolean)", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpResponse.#SetCookie(System.Web.HttpCookie)", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.HttpResponse.#TransmitFile(System.String,System.Int64,System.Int64)", MessageId = "filename", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpResponse.#WriteFile(System.IntPtr,System.Int64,System.Int64)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpResponseStreamFilterSink.#get_Filtering()", Justification = @"[....]: code may be used for debug purposes and through reflection")]
+[module: SuppressMessage("Microsoft.Usage", "CA2234:PassSystemUriObjectsInsteadOfStrings", Scope = "member", Target = "System.Web.HttpRequest.#get_UrlReferrer()", Justification = @"davidebb: This looks fine.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.HttpRequestBase.#AnonymousID", MessageId = "Member", Justification = @"tmarq: already fixed")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.HttpResourceResponseElement", Justification = @"dmitryr: this class does not allocate unmanaged resource")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.HttpResourceResponseElement.#_data", Justification = @"dmitryr: this is a pointer to unmanaged buffer (ASP.NET controls the buffer pool from unmanaged code)")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.HttpResponse.#AppendHeader(System.String,System.String)", Justification = @"mattgi: although unlikely, the content length string could be passed using the current culture")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpResponse.#GenerateResponseHeaders(System.Boolean)", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpResponse.#SetCookie(System.Web.HttpCookie)", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.HttpResponse.#TransmitFile(System.String,System.Int64,System.Int64)", MessageId = "filename", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpResponse.#WriteFile(System.IntPtr,System.Int64,System.Int64)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpResponseStreamFilterSink.#get_Filtering()", Justification = @"mattgi: code may be used for debug purposes and through reflection")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.HttpResponseSubstitutionCallback", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.HttpResponseUnmanagedBufferElement", Justification = @"[....]: ASP.NET controls the lifetime of this internal class")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.HttpResponseUnmanagedBufferElement.#_data", Justification = @"[....]: this IntPtr is not an OS handler")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.HttpResponseUnmanagedBufferElement.#s_Pool", Justification = @"[....]: this IntPtr is not an OS handler")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#.cctor()", MessageId = "System.Web.HttpRuntime.AddAppDomainTraceMessage(System.String)", Justification = @"[....]: the string is for internal instrumentation only - it does not get to the customer")]
-[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpRuntime.#.cctor()", MessageId = "cctor", Justification = @"[....]: the string is for internal instrumentation only - it does not get to the customer")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpRuntime.#.ctor()", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#AddAppDomainTraceMessage(System.String)", Justification = @"[....]: There's a full demand on the ctor of ISAPIRuntime and the object is well-protected so a user should never get an instance, so these should not be a vulnerability. [....] did the security review.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#get_AppDomainAppPathInternal()", Justification = @"[....]: These do not present a security problem - the data called is never exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#get_AppDomainAppVirtualPath()", Justification = @"[....]: If ASP.NET is not hosted, and thus the link demand not satisifed, this code path is not followed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#get_AppDomainAppVirtualPathObject()", Justification = @"[....]: This is fine.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#get_AppDomainAppVirtualPathString()", Justification = @"[....]: This is fine.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#get_AppDomainIdInternal()", Justification = @"[....]: This was excluded before, but a small method change made it pop up again.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#AppDomainShutdownTimerCallback(System.Object)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: the string is for internal instrumentation only - it does not get to the customer")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#get_CacheInternal()", Justification = @"[....]: WebConfigurationManager only invokes the HttpConfigurationSystem when the LinkDemand for AspNetHostingPermission would be satisfied.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#Close()", MessageId = "System.Web.HttpRuntime.SetShutdownReason(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: the string is for internal instrumentation only - it does not get to the customer")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpRuntime.#Close()", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#CoalesceNotifications()", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#get_CodegenDirInternal()", Justification = @"[....]: This is used only in debug build for debugging purpose.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#Dispose()", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpRuntime.#remove_AppDomainShutdown(System.Web.Compilation.BuildManagerHostUnloadEventHandler)", Justification = @"[....]: Internal event field.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#FailIfNoAPTCABit(System.Type,System.Configuration.ElementInformation,System.String)", Justification = @"[....]: No problem here.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#FinishPipelineRequest(System.Web.HttpContext)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRuntime.#FinishRequest(System.Web.HttpWorkerRequest,System.Web.HttpContext,System.Exception)", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#FinishRequest(System.Web.HttpWorkerRequest,System.Web.HttpContext,System.Exception)", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#FinishRequest(System.Web.HttpWorkerRequest,System.Web.HttpContext,System.Exception)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: The message in only used for debugging purposes.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRuntime.#FirstRequestInit(System.Web.HttpContext)", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#FirstRequestInit(System.Web.HttpContext)", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#FirstRequestInit(System.Web.HttpContext)", MessageId = "System.Web.HttpRuntime.AddAppDomainTraceMessage(System.String)", Justification = @"[....]: the string is for internal instrumentation only - it does not get to the customer")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#ForceStaticInit()", Justification = @"[....]: I have added a Demand for UnmanagedCode permissions to the RemoteWebServer, so that is only used via DCOM.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpRuntime.#GetNamedPermissionSet()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#GetSafePath(System.String)", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#HasFilePermission(System.String)", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Scope = "member", Target = "System.Web.HttpRuntime.#HasFilePermission(System.String,System.Boolean)", Justification = @"[....]: Ok, since string is immutable")]
-[module: SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Scope = "member", Target = "System.Web.HttpRuntime.#HasWebPermission(System.Uri)", Justification = @"[....]: Looks fine, since strings are immutable.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRuntime.#HostingInit(System.Web.Hosting.HostingEnvironmentFlags)", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRuntime.#Init()", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#Init()", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#InitHttpConfiguration()", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2003:DoNotTreatFibersAsThreads", Scope = "member", Target = "System.Web.HttpRuntime.#InitHttpConfiguration()", Justification = @"[....]: we know we're working with managed threads")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpRuntime.#get_IsFullTrust()", Justification = @"[....]: code may be used for debug purposes and through reflection")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#OnAppOfflineFileChange(System.Object,System.Web.FileChangeEvent)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: literal used for internal instrumentation only")]
-[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpRuntime.#OnAppOfflineFileChange(System.Object,System.Web.FileChangeEvent)", MessageId = "htm", Justification = @"[....]: the literal is spelled correctly -- .htm is file extension")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#OnConfigChange()", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: the string is for internal instrumentation only - it does not get to the customer")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRuntime.#OnHandlerCompletion(System.IAsyncResult)", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#OnHandlerCompletion(System.IAsyncResult)", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#OnSecurityPolicyFileChange(System.Object,System.Web.FileChangeEvent)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: The message in only used for debugging purposes.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#PreloadAssembliesFromBin()", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "member", Target = "System.Web.HttpRuntime.#PreloadAssembliesFromBinRecursive(System.IO.DirectoryInfo)", MessageId = "System.Reflection.Assembly.LoadFrom", Justification = @"[....]: This is what we want.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRuntime.#ProcessRequestInternal(System.Web.HttpWorkerRequest)", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#ProcessRequestInternal(System.Web.HttpWorkerRequest)", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#RecoverFromUnexceptedAppDomainUnload()", MessageId = "System.Web.HttpRuntime.AddAppDomainTraceMessage(System.String)", Justification = @"[....]: the string is for internal instrumentation only - it does not get to the customer")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRuntime.#RejectRequestInternal(System.Web.HttpWorkerRequest,System.Boolean)", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRuntime.#ReleaseResourcesAndUnloadAppDomain(System.Object)", Justification = @"[....]: Non-CLSExceptions are ok to bubble up here- no security issues.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#ReleaseResourcesAndUnloadAppDomain(System.Object)", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#ReleaseResourcesAndUnloadAppDomain(System.Object)", MessageId = "System.Web.HttpRuntime.AddAppDomainTraceMessage(System.String)", Justification = @"[....]: the string is for internal instrumentation only - it does not get to the customer")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: There's a full demand on the ctor of ISAPIRuntime and the object is well-protected so a user should never get an instance, so these should not be a vulnerability. [....] did the security review.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#StaticInit()", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#StaticInit()", MessageId = "System.Web.HttpRuntime.AddAppDomainTraceMessage(System.String)", Justification = @"[....]: the string is for internal instrumentation only - it does not get to the customer")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#UnloadAppDomain()", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: the string is for internal instrumentation only - it does not get to the customer")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpRuntime.#UnloadAppDomain()", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpServerUtility.#CreateObject(System.String)", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpServerUtility.#CreateObject(System.String)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpServerUtility.#CreateObject(System.Type)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpServerUtility.#CreateObjectFromClsid(System.String)", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpServerUtility.#CreateObjectFromClsid(System.String)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpServerUtility.#Execute(System.String,System.IO.TextWriter,System.Boolean)", Justification = @"[....]: No security issues= non-ClsCompliant exceptions are ok to bubble up here.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpServerUtility.#GetLastError()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpServerUtility.#GetMachineNameInternal()", Justification = @"[....]: Reviewed for security vulnerabilities, none found.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpServerUtility.#UrlTokenEncode(System.Byte[])", Justification = @"[....]: RolePrincipal.ToEncryptedTicket should work in partial trust")]
-[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.HttpServerUtility.#UrlTokenEncode(System.Byte[])", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.HttpServerUtilityBase.#CreateObject(System.String)", MessageId = "0#", Justification = @"[....]: it's already fixed")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.HttpSessionStateBase.#SessionID", MessageId = "Member", Justification = @"[....]: legacy")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.HttpUtility.#FormatPlainTextAsHtml(System.String)", Justification = @"[....]: culture behavior derived from thread")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.HttpUtility.#FormatPlainTextSpacesAsHtml(System.String)", Justification = @"[....]: culture behavior derived from thread")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.HttpUtility.#HtmlDecode(System.String)", Justification = @"[....]: culture behavior derived from thread")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.HttpUtility.#HtmlDecode(System.String,System.IO.TextWriter)", Justification = @"[....]: culture behavior derived from thread")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpUtility.#HtmlEncode(System.String)", Justification = @"[....]: Designer needs to call HtmlEncode and returns proper error message. The designer assembly does require full trust.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.HttpUtility.#HtmlEncode(System.String)", Justification = @"[....]: culture behavior derived from thread")]
-[module: SuppressMessage("Microsoft.Design", "CA1012:AbstractTypesShouldNotHaveConstructors", Scope = "type", Target = "System.Web.HttpWorkerRequest", Justification = @"[....]: excluded for breaking change")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpWorkerRequest.#.ctor()", Justification = @"[....]: There's a full demand on the ctor of ISAPIRuntime and the object is well-protected so a user should never get an instance, so these should not be a vulnerability. [....] did the security review.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetAppPath()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetAppPathTranslated()", Justification = @"[....]: There's a full demand on the ctor of ISAPIRuntime and the object is well-protected so a user should never get an instance, so these should not be a vulnerability. [....] did the security review.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetAppPathTranslated()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetAppPoolID()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetBytesRead()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetClientCertificateEncoding()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetClientCertificateValidFrom()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetClientCertificateValidUntil()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetConnectionID()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetFilePath()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetFilePathTranslated()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetHttpVerbName()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetHttpVersion()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetLocalAddress()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetLocalPort()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetPathInfo()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetPreloadedEntityBodyLength()", Justification = @"[....]: this is consistent with other members of HttpWorkerRequest class")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetProtocol()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetQueryString()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetRawUrl()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetRemoteAddress()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetRemoteName()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetRemotePort()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetRequestReason()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetServerName()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetTotalEntityBodyLength()", Justification = @"[....]: this is consistent with other members of HttpWorkerRequest class")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetUriPath()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetUrlContextID()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetUserToken()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetVirtualPathToken()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.HttpResponseUnmanagedBufferElement", Justification = @"dmitryr: ASP.NET controls the lifetime of this internal class")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.HttpResponseUnmanagedBufferElement.#_data", Justification = @"dmitryr: this IntPtr is not an OS handler")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.HttpResponseUnmanagedBufferElement.#s_Pool", Justification = @"dmitryr: this IntPtr is not an OS handler")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#.cctor()", MessageId = "System.Web.HttpRuntime.AddAppDomainTraceMessage(System.String)", Justification = @"dmitryr: the string is for internal instrumentation only - it does not get to the customer")]
+[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpRuntime.#.cctor()", MessageId = "cctor", Justification = @"dmitryr: the string is for internal instrumentation only - it does not get to the customer")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpRuntime.#.ctor()", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#AddAppDomainTraceMessage(System.String)", Justification = @"phuff: There's a full demand on the ctor of ISAPIRuntime and the object is well-protected so a user should never get an instance, so these should not be a vulnerability. DmitryR did the security review.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#get_AppDomainAppPathInternal()", Justification = @"adams: These do not present a security problem - the data called is never exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#get_AppDomainAppVirtualPath()", Justification = @"adams: If ASP.NET is not hosted, and thus the link demand not satisifed, this code path is not followed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#get_AppDomainAppVirtualPathObject()", Justification = @"davidebb: This is fine.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#get_AppDomainAppVirtualPathString()", Justification = @"davidebb: This is fine.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#get_AppDomainIdInternal()", Justification = @"davidebb: This was excluded before, but a small method change made it pop up again.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#AppDomainShutdownTimerCallback(System.Object)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"dmitryr: the string is for internal instrumentation only - it does not get to the customer")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#get_CacheInternal()", Justification = @"adams: WebConfigurationManager only invokes the HttpConfigurationSystem when the LinkDemand for AspNetHostingPermission would be satisfied.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#Close()", MessageId = "System.Web.HttpRuntime.SetShutdownReason(System.Web.ApplicationShutdownReason,System.String)", Justification = @"dmitryr: the string is for internal instrumentation only - it does not get to the customer")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpRuntime.#Close()", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#CoalesceNotifications()", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#get_CodegenDirInternal()", Justification = @"tinghaoy: This is used only in debug build for debugging purpose.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#Dispose()", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpRuntime.#remove_AppDomainShutdown(System.Web.Compilation.BuildManagerHostUnloadEventHandler)", Justification = @"tinghaoy: Internal event field.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#FailIfNoAPTCABit(System.Type,System.Configuration.ElementInformation,System.String)", Justification = @"davidebb: No problem here.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#FinishPipelineRequest(System.Web.HttpContext)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"tmarq: ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRuntime.#FinishRequest(System.Web.HttpWorkerRequest,System.Web.HttpContext,System.Exception)", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#FinishRequest(System.Web.HttpWorkerRequest,System.Web.HttpContext,System.Exception)", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#FinishRequest(System.Web.HttpWorkerRequest,System.Web.HttpContext,System.Exception)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"davidebb: The message in only used for debugging purposes.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRuntime.#FirstRequestInit(System.Web.HttpContext)", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#FirstRequestInit(System.Web.HttpContext)", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#FirstRequestInit(System.Web.HttpContext)", MessageId = "System.Web.HttpRuntime.AddAppDomainTraceMessage(System.String)", Justification = @"dmitryr: the string is for internal instrumentation only - it does not get to the customer")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#ForceStaticInit()", Justification = @"adams: I have added a Demand for UnmanagedCode permissions to the RemoteWebServer, so that is only used via DCOM.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpRuntime.#GetNamedPermissionSet()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#GetSafePath(System.String)", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#HasFilePermission(System.String)", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Scope = "member", Target = "System.Web.HttpRuntime.#HasFilePermission(System.String,System.Boolean)", Justification = @"davidebb: Ok, since string is immutable")]
+[module: SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Scope = "member", Target = "System.Web.HttpRuntime.#HasWebPermission(System.Uri)", Justification = @"davidebb: Looks fine, since strings are immutable.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRuntime.#HostingInit(System.Web.Hosting.HostingEnvironmentFlags)", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRuntime.#Init()", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#Init()", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#InitHttpConfiguration()", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2003:DoNotTreatFibersAsThreads", Scope = "member", Target = "System.Web.HttpRuntime.#InitHttpConfiguration()", Justification = @"mattgi: we know we're working with managed threads")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.HttpRuntime.#get_IsFullTrust()", Justification = @"mattgi: code may be used for debug purposes and through reflection")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#OnAppOfflineFileChange(System.Object,System.Web.FileChangeEvent)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"dmitryr: literal used for internal instrumentation only")]
+[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.HttpRuntime.#OnAppOfflineFileChange(System.Object,System.Web.FileChangeEvent)", MessageId = "htm", Justification = @"dmitryr: the literal is spelled correctly -- .htm is file extension")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#OnConfigChange()", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"dmitryr: the string is for internal instrumentation only - it does not get to the customer")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRuntime.#OnHandlerCompletion(System.IAsyncResult)", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#OnHandlerCompletion(System.IAsyncResult)", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#OnSecurityPolicyFileChange(System.Object,System.Web.FileChangeEvent)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"davidebb: The message in only used for debugging purposes.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#PreloadAssembliesFromBin()", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "member", Target = "System.Web.HttpRuntime.#PreloadAssembliesFromBinRecursive(System.IO.DirectoryInfo)", MessageId = "System.Reflection.Assembly.LoadFrom", Justification = @"davidebb: This is what we want.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRuntime.#ProcessRequestInternal(System.Web.HttpWorkerRequest)", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#ProcessRequestInternal(System.Web.HttpWorkerRequest)", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#RecoverFromUnexceptedAppDomainUnload()", MessageId = "System.Web.HttpRuntime.AddAppDomainTraceMessage(System.String)", Justification = @"dmitryr: the string is for internal instrumentation only - it does not get to the customer")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRuntime.#RejectRequestInternal(System.Web.HttpWorkerRequest,System.Boolean)", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpRuntime.#ReleaseResourcesAndUnloadAppDomain(System.Object)", Justification = @"phuff: Non-CLSExceptions are ok to bubble up here- no security issues.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#ReleaseResourcesAndUnloadAppDomain(System.Object)", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#ReleaseResourcesAndUnloadAppDomain(System.Object)", MessageId = "System.Web.HttpRuntime.AddAppDomainTraceMessage(System.String)", Justification = @"dmitryr: the string is for internal instrumentation only - it does not get to the customer")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpRuntime.#ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"phuff: There's a full demand on the ctor of ISAPIRuntime and the object is well-protected so a user should never get an instance, so these should not be a vulnerability. DmitryR did the security review.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpRuntime.#StaticInit()", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#StaticInit()", MessageId = "System.Web.HttpRuntime.AddAppDomainTraceMessage(System.String)", Justification = @"dmitryr: the string is for internal instrumentation only - it does not get to the customer")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.HttpRuntime.#UnloadAppDomain()", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"dmitryr: the string is for internal instrumentation only - it does not get to the customer")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpRuntime.#UnloadAppDomain()", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpServerUtility.#CreateObject(System.String)", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpServerUtility.#CreateObject(System.String)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpServerUtility.#CreateObject(System.Type)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.HttpServerUtility.#CreateObjectFromClsid(System.String)", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.HttpServerUtility.#CreateObjectFromClsid(System.String)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.HttpServerUtility.#Execute(System.String,System.IO.TextWriter,System.Boolean)", Justification = @"phuff: No security issues= non-ClsCompliant exceptions are ok to bubble up here.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpServerUtility.#GetLastError()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpServerUtility.#GetMachineNameInternal()", Justification = @"adams: Reviewed for security vulnerabilities, none found.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpServerUtility.#UrlTokenEncode(System.Byte[])", Justification = @"manuva: RolePrincipal.ToEncryptedTicket should work in partial trust")]
+[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.HttpServerUtility.#UrlTokenEncode(System.Byte[])", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.HttpServerUtilityBase.#CreateObject(System.String)", MessageId = "0#", Justification = @"tmarq: it's already fixed")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.HttpSessionStateBase.#SessionID", MessageId = "Member", Justification = @"tmarq: legacy")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.HttpUtility.#FormatPlainTextAsHtml(System.String)", Justification = @"mattgi: culture behavior derived from thread")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.HttpUtility.#FormatPlainTextSpacesAsHtml(System.String)", Justification = @"mattgi: culture behavior derived from thread")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.HttpUtility.#HtmlDecode(System.String)", Justification = @"mattgi: culture behavior derived from thread")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.HttpUtility.#HtmlDecode(System.String,System.IO.TextWriter)", Justification = @"mattgi: culture behavior derived from thread")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpUtility.#HtmlEncode(System.String)", Justification = @"tinghaoy: Designer needs to call HtmlEncode and returns proper error message. The designer assembly does require full trust.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.HttpUtility.#HtmlEncode(System.String)", Justification = @"mattgi: culture behavior derived from thread")]
+[module: SuppressMessage("Microsoft.Design", "CA1012:AbstractTypesShouldNotHaveConstructors", Scope = "type", Target = "System.Web.HttpWorkerRequest", Justification = @"mattgi: excluded for breaking change")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpWorkerRequest.#.ctor()", Justification = @"phuff: There's a full demand on the ctor of ISAPIRuntime and the object is well-protected so a user should never get an instance, so these should not be a vulnerability. DmitryR did the security review.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetAppPath()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetAppPathTranslated()", Justification = @"phuff: There's a full demand on the ctor of ISAPIRuntime and the object is well-protected so a user should never get an instance, so these should not be a vulnerability. DmitryR did the security review.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetAppPathTranslated()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetAppPoolID()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetBytesRead()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetClientCertificateEncoding()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetClientCertificateValidFrom()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetClientCertificateValidUntil()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetConnectionID()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetFilePath()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetFilePathTranslated()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetHttpVerbName()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetHttpVersion()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetLocalAddress()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetLocalPort()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetPathInfo()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetPreloadedEntityBodyLength()", Justification = @"dmitryr: this is consistent with other members of HttpWorkerRequest class")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetProtocol()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetQueryString()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetRawUrl()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetRemoteAddress()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetRemoteName()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetRemotePort()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetRequestReason()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetServerName()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetTotalEntityBodyLength()", Justification = @"dmitryr: this is consistent with other members of HttpWorkerRequest class")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetUriPath()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetUrlContextID()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetUserToken()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.HttpWorkerRequest.#GetVirtualPathToken()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.HttpWorkerRequest+EndOfSendNotification", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Design", "CA1025:ReplaceRepetitiveArgumentsWithParamsArray", Scope = "member", Target = "System.Web.IHttpHandlerFactory.#GetHandler(System.Web.HttpContext,System.String,System.String,System.String)", Justification = @"[....]: distinct string arguments not being replaced with array of strings.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.IisTraceListener.#TraceData(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Object)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.IisTraceListener.#TraceData(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Object[])", Justification = @"[....]: okay")]
+[module: SuppressMessage("Microsoft.Design", "CA1025:ReplaceRepetitiveArgumentsWithParamsArray", Scope = "member", Target = "System.Web.IHttpHandlerFactory.#GetHandler(System.Web.HttpContext,System.String,System.String,System.String)", Justification = @"mattgi: distinct string arguments not being replaced with array of strings.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.IisTraceListener.#TraceData(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Object)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.IisTraceListener.#TraceData(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Object[])", Justification = @"tmarq: okay")]
[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.IisTraceListener.#TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String)", MessageId = "System.String.Concat(System.Object[])", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.IisTraceListener.#TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.IisTraceListener.#TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String,System.Object[])", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.IisTraceListener.#Write(System.String)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.IisTraceListener.#Write(System.String,System.String)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.IisTraceListener.#WriteLine(System.String)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.IisTraceListener.#WriteLine(System.String,System.String)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.ImpersonationContext.#_savedToken", Justification = @"[....]: finalizer is good enough here")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.ImpersonationContext.#GetCurrentToken()", Justification = @"[....]: Config should not be protected by link demands.")]
-[module: SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Scope = "member", Target = "System.Web.InternalSecurityPermissions.#FileWriteAccess(System.String)", Justification = @"[....]: We need to allow buildproviders to write to only specific files in the codegen folder.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.InternalSecurityPermissions.#get_Reflection()", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.ModName", Justification = @"[....]: Contains string constants that are used.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.NativeMethods", Justification = @"[....]: Don't know why the constructor is there, but since the constructor is private, it won't hurt.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.NativeMethods.#CreateAssemblyCache(System.Web.Configuration.IAssemblyCache&,System.UInt32)", Justification = @"[....]: Fusion.dll is there")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.PartitionManager.#GetPartition(System.Web.IPartitionResolver,System.String)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.PerfCounters.#_global", Justification = @"[....]: This IntPtr points to a memory blob, not a handle")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.PerfCounters.#_instance", Justification = @"[....]: This IntPtr points to a memory blob, not a handle")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.PerfCounters.#_stateService", Justification = @"[....]: The usage of the _stateService pointer is safe as is. The perf counter memory block is created in unmanaged (and references kept to it), so it can be properly cleaned up at worker process shutdown.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.PerfCounters.#OpenCounter(System.String)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.ProcessModelInfo.#GetCurrentProcessInfo()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1714:FlagsEnumsShouldHavePluralNames", Scope = "type", Target = "System.Web.RequestNotification", Justification = @"[....]: reviewed and excluded from beta2lhsd")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.SafeStringResource", Justification = @"[....]: This violation is by design.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.SafeStringResource.#_stringResourcePointer", Justification = @"[....]: This IntPtr is to a handle to a memory resource. We never want to unload it since it's par tof a loaded assembly. I think we're better off leaving things as they are rather than take the chance to make a change.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.SiteMap", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.SiteMap.#SiteMapResolve", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1009:DeclareEventHandlersCorrectly", Scope = "member", Target = "System.Web.SiteMap.#SiteMapResolve", Justification = @"[....]: Each registered event is called separately, we do not lose the result.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.SiteMapNode", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.SiteMapNode.#.ctor(System.Web.SiteMapProvider,System.String,System.String)", MessageId = "2#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.SiteMapNode.#.ctor(System.Web.SiteMapProvider,System.String,System.String,System.String)", MessageId = "2#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.SiteMapNode.#.ctor(System.Web.SiteMapProvider,System.String,System.String,System.String,System.String)", MessageId = "2#", Justification = @"[....]: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.IisTraceListener.#TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.IisTraceListener.#TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String,System.Object[])", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.IisTraceListener.#Write(System.String)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.IisTraceListener.#Write(System.String,System.String)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.IisTraceListener.#WriteLine(System.String)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.IisTraceListener.#WriteLine(System.String,System.String)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.ImpersonationContext.#_savedToken", Justification = @"dmitryr: finalizer is good enough here")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.ImpersonationContext.#GetCurrentToken()", Justification = @"phuff: Config should not be protected by link demands.")]
+[module: SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Scope = "member", Target = "System.Web.InternalSecurityPermissions.#FileWriteAccess(System.String)", Justification = @"honglim: We need to allow buildproviders to write to only specific files in the codegen folder.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.InternalSecurityPermissions.#get_Reflection()", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.ModName", Justification = @"adams: Contains string constants that are used.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.NativeMethods", Justification = @"patng: Don't know why the constructor is there, but since the constructor is private, it won't hurt.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.NativeMethods.#CreateAssemblyCache(System.Web.Configuration.IAssemblyCache&,System.UInt32)", Justification = @"patng: Fusion.dll is there")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.PartitionManager.#GetPartition(System.Web.IPartitionResolver,System.String)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.PerfCounters.#_global", Justification = @"manuva: This IntPtr points to a memory blob, not a handle")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.PerfCounters.#_instance", Justification = @"manuva: This IntPtr points to a memory blob, not a handle")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.PerfCounters.#_stateService", Justification = @"fabioy: The usage of the _stateService pointer is safe as is. The perf counter memory block is created in unmanaged (and references kept to it), so it can be properly cleaned up at worker process shutdown.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.PerfCounters.#OpenCounter(System.String)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.ProcessModelInfo.#GetCurrentProcessInfo()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1714:FlagsEnumsShouldHavePluralNames", Scope = "type", Target = "System.Web.RequestNotification", Justification = @"erikols: reviewed and excluded from beta2lhsd")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.SafeStringResource", Justification = @"phuff: This violation is by design.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.SafeStringResource.#_stringResourcePointer", Justification = @"davidebb: This IntPtr is to a handle to a memory resource. We never want to unload it since it's par tof a loaded assembly. I think we're better off leaving things as they are rather than take the chance to make a change.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.SiteMap", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.SiteMap.#SiteMapResolve", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1009:DeclareEventHandlersCorrectly", Scope = "member", Target = "System.Web.SiteMap.#SiteMapResolve", Justification = @"tinghaoy: Each registered event is called separately, we do not lose the result.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.SiteMapNode", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.SiteMapNode.#.ctor(System.Web.SiteMapProvider,System.String,System.String)", MessageId = "2#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.SiteMapNode.#.ctor(System.Web.SiteMapProvider,System.String,System.String,System.String)", MessageId = "2#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.SiteMapNode.#.ctor(System.Web.SiteMapProvider,System.String,System.String,System.String,System.String)", MessageId = "2#", Justification = @"phuff: Urls ok as strings")]
[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.SiteMapNode.#.ctor(System.Web.SiteMapProvider,System.String,System.String,System.String,System.String,System.Collections.IList,System.Collections.Specialized.NameValueCollection,System.Collections.Specialized.NameValueCollection,System.String)", MessageId = "2#", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.SiteMapNode.#Attributes", Justification = @"[....]: This is intentional, providers need to have a way to change the collection entirely.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.SiteMapNode.#ChildNodes", Justification = @"[....]: This is intentional, providers need to have a way to change the collection entirely.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.SiteMapNode.#GetAllNodes()", Justification = @"[....]: An expensive call should be a method.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.SiteMapNode.#GetHierarchicalDataSourceView()", Justification = @"[....]: These are all according to the spec.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.SiteMapNode.#Roles", Justification = @"[....]: This is intentional, providers need to have a way to change the collection entirely.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNode.#System.ICloneable.Clone()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.IHierarchyData.GetChildren()", Justification = @"[....]: This explicitly implemented interface method GetChildren() simply returns a virtual property ChildNodes defined on SiteMapNodeItem.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.IHierarchyData.GetParent()", Justification = @"[....]: This will not be overridden by derived classes.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.IHierarchyData.get_HasChildren()", Justification = @"[....]: IHierarchyData.HasChildren property already calls the virtual HasChildNodes property on the SiteMapNode.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.IHierarchyData.get_Item()", Justification = @"[....]: IHierarchyData.Item property simply returns a reference to itself, does not require a virtual property.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.IHierarchyData.get_Path()", Justification = @"[....]: IHierarchyData.Path property already calls the virtual Url property on the SiteMapNode.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.IHierarchyData.get_Type()", Justification = @"[....]: IHierarchyData.Type property simply returns a const string, plus it does not make sense to declare a property directly on the SiteMapNode type.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.INavigateUIData.get_Name()", Justification = @"[....]: INavigateUIData.Name property simply returns the virtual Title property defined on SiteMapNode.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.INavigateUIData.get_NavigateUrl()", Justification = @"[....]: INavigateUIData.NavigateUrl property already calls the virtual Url property on the SiteMapNode.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.INavigateUIData.get_Value()", Justification = @"[....]: INavigateUIData.Value property simply returns the virtual Title property defined on SiteMapNode.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNode.#ToString()", Justification = @"[....]: Assigned to [....]")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.SiteMapNode.#Url", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.SiteMapNodeCollection", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#Clear()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#get_Count()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#GetEnumerator()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#GetHierarchicalDataSourceView()", Justification = @"[....]: These are all according to the spec.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#get_IsFixedSize()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#get_IsReadOnly()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#get_IsSynchronized()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#RemoveAt(System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#get_SyncRoot()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.ICollection.get_Count()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.ICollection.get_IsSynchronized()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.ICollection.get_SyncRoot()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IEnumerable.GetEnumerator()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.Add(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.Clear()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.Contains(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.IndexOf(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.Insert(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.get_IsFixedSize()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.get_IsReadOnly()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.get_Item(System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.set_Item(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.Remove(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.RemoveAt(System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.SiteMapProvider", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.SiteMapProvider.#SiteMapResolve", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1009:DeclareEventHandlersCorrectly", Scope = "member", Target = "System.Web.SiteMapProvider.#SiteMapResolve", Justification = @"[....]: Each event handler is called separately, the result is not lost.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.SiteMapProvider.#FindSiteMapNode(System.String)", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.SiteMapProvider.#FindSiteMapNode(System.String)", MessageId = "0#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.SiteMapProvider.#FindSiteMapNode(System.Web.HttpContext)", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.SiteMapProvider.#FindSiteMapNodeFromKey(System.String)", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.SiteMapProvider.#GetRootNodeCore()", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapProvider.#Initialize(System.String,System.Collections.Specialized.NameValueCollection)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.SiteMapProvider.#ResolveSiteMapNode(System.Web.HttpContext)", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.SiteMapProviderCollection", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapProviderCollection.#Add(System.Configuration.Provider.ProviderBase)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.SiteMapResolveEventArgs", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.SiteMapResolveEventHandler", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.SR.#GetObject(System.String)", Justification = @"[....]: These violations are ok.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.SR.#get_Resources()", Justification = @"[....]: These violations are ok.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.StaticErrorFormatterHelper", Justification = @"[....]: The class contains only constants.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.StaticFileHandler", Justification = @"[....]: It's referenced via config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.StaticFileHandler.#.ctor()", Justification = @"[....]: The class is referenced via config.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.StaticFileHandler.#ProcessRequestInternal(System.Web.HttpContext)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.StaticSiteMapProvider", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.StaticSiteMapProvider.#BuildSiteMap()", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.StaticSiteMapProvider.#FindSiteMapNode(System.String)", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.StaticSiteMapProvider.#FindSiteMapNodeFromKey(System.String)", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1404:CallGetLastErrorImmediatelyAfterPInvoke", Scope = "member", Target = "System.Web.StringResourceManager.#ReadSafeStringResource(System.Type)", Justification = @"[....]: This looks fine.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.TraceContext.#InitRequest()", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.TraceContext.#InitRequest()", Justification = @"[....]: culture behavior derived from thread")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#AppDomainRestart(System.String)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#AppDomainRestart(System.String)", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#AspCompatIsApartmentComponent(System.Object)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#AspCompatOnPageStart(System.Object)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#AspCompatProcessRequest(System.Web.Util.AspCompatCallback,System.Object,System.Boolean,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#AspCompatProcessRequest(System.Web.Util.AspCompatCallback,System.Object,System.Boolean,System.Int32)", Justification = @"[....]: BestFitMapping is already disabled")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#AttachDebugger(System.String,System.String,System.IntPtr)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#BufferPoolGetBuffer(System.IntPtr)", Justification = @"[....]: fxcop fails to load aspnet_isapi.dll")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#BufferPoolGetPool(System.Int32,System.Int32)", Justification = @"[....]: fxcop fails to load aspnet_isapi.dll")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.SiteMapNode.#Attributes", Justification = @"tinghaoy: This is intentional, providers need to have a way to change the collection entirely.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.SiteMapNode.#ChildNodes", Justification = @"tinghaoy: This is intentional, providers need to have a way to change the collection entirely.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.SiteMapNode.#GetAllNodes()", Justification = @"tinghaoy: An expensive call should be a method.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.SiteMapNode.#GetHierarchicalDataSourceView()", Justification = @"elipton: These are all according to the spec.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.SiteMapNode.#Roles", Justification = @"tinghaoy: This is intentional, providers need to have a way to change the collection entirely.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNode.#System.ICloneable.Clone()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.IHierarchyData.GetChildren()", Justification = @"tinghaoy: This explicitly implemented interface method GetChildren() simply returns a virtual property ChildNodes defined on SiteMapNodeItem.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.IHierarchyData.GetParent()", Justification = @"elipton: This will not be overridden by derived classes.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.IHierarchyData.get_HasChildren()", Justification = @"tinghaoy: IHierarchyData.HasChildren property already calls the virtual HasChildNodes property on the SiteMapNode.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.IHierarchyData.get_Item()", Justification = @"tinghaoy: IHierarchyData.Item property simply returns a reference to itself, does not require a virtual property.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.IHierarchyData.get_Path()", Justification = @"tinghaoy: IHierarchyData.Path property already calls the virtual Url property on the SiteMapNode.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.IHierarchyData.get_Type()", Justification = @"tinghaoy: IHierarchyData.Type property simply returns a const string, plus it does not make sense to declare a property directly on the SiteMapNode type.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.INavigateUIData.get_Name()", Justification = @"tinghaoy: INavigateUIData.Name property simply returns the virtual Title property defined on SiteMapNode.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.INavigateUIData.get_NavigateUrl()", Justification = @"tinghaoy: INavigateUIData.NavigateUrl property already calls the virtual Url property on the SiteMapNode.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.SiteMapNode.#System.Web.UI.INavigateUIData.get_Value()", Justification = @"tinghaoy: INavigateUIData.Value property simply returns the virtual Title property defined on SiteMapNode.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNode.#ToString()", Justification = @"phuff: Assigned to tinghaoy")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.SiteMapNode.#Url", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.SiteMapNodeCollection", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#Clear()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#get_Count()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#GetEnumerator()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#GetHierarchicalDataSourceView()", Justification = @"elipton: These are all according to the spec.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#get_IsFixedSize()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#get_IsReadOnly()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#get_IsSynchronized()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#RemoveAt(System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#get_SyncRoot()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.ICollection.get_Count()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.ICollection.get_IsSynchronized()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.ICollection.get_SyncRoot()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IEnumerable.GetEnumerator()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.Add(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.Clear()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.Contains(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.IndexOf(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.Insert(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.get_IsFixedSize()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.get_IsReadOnly()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.get_Item(System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.set_Item(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.Remove(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapNodeCollection.#System.Collections.IList.RemoveAt(System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.SiteMapProvider", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.SiteMapProvider.#SiteMapResolve", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1009:DeclareEventHandlersCorrectly", Scope = "member", Target = "System.Web.SiteMapProvider.#SiteMapResolve", Justification = @"tinghaoy: Each event handler is called separately, the result is not lost.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.SiteMapProvider.#FindSiteMapNode(System.String)", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.SiteMapProvider.#FindSiteMapNode(System.String)", MessageId = "0#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.SiteMapProvider.#FindSiteMapNode(System.Web.HttpContext)", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.SiteMapProvider.#FindSiteMapNodeFromKey(System.String)", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.SiteMapProvider.#GetRootNodeCore()", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapProvider.#Initialize(System.String,System.Collections.Specialized.NameValueCollection)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.SiteMapProvider.#ResolveSiteMapNode(System.Web.HttpContext)", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.SiteMapProviderCollection", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SiteMapProviderCollection.#Add(System.Configuration.Provider.ProviderBase)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.SiteMapResolveEventArgs", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.SiteMapResolveEventHandler", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.SR.#GetObject(System.String)", Justification = @"phuff: These violations are ok.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.SR.#get_Resources()", Justification = @"phuff: These violations are ok.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.StaticErrorFormatterHelper", Justification = @"davidebb: The class contains only constants.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.StaticFileHandler", Justification = @"davidebb: It's referenced via config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.StaticFileHandler.#.ctor()", Justification = @"davidebb: The class is referenced via config.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.StaticFileHandler.#ProcessRequestInternal(System.Web.HttpContext)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.StaticSiteMapProvider", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.StaticSiteMapProvider.#BuildSiteMap()", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.StaticSiteMapProvider.#FindSiteMapNode(System.String)", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.StaticSiteMapProvider.#FindSiteMapNodeFromKey(System.String)", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1404:CallGetLastErrorImmediatelyAfterPInvoke", Scope = "member", Target = "System.Web.StringResourceManager.#ReadSafeStringResource(System.Type)", Justification = @"davidebb: This looks fine.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.TraceContext.#InitRequest()", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.TraceContext.#InitRequest()", Justification = @"mattgi: culture behavior derived from thread")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#AppDomainRestart(System.String)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#AppDomainRestart(System.String)", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#AspCompatIsApartmentComponent(System.Object)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#AspCompatOnPageStart(System.Object)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#AspCompatProcessRequest(System.Web.Util.AspCompatCallback,System.Object,System.Boolean,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#AspCompatProcessRequest(System.Web.Util.AspCompatCallback,System.Object,System.Boolean,System.Int32)", Justification = @"patng: BestFitMapping is already disabled")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#AttachDebugger(System.String,System.String,System.IntPtr)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#BufferPoolGetBuffer(System.IntPtr)", Justification = @"dmitryr: fxcop fails to load aspnet_isapi.dll")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#BufferPoolGetPool(System.Int32,System.Int32)", Justification = @"dmitryr: fxcop fails to load aspnet_isapi.dll")]
[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#ChangeAccessToKeyContainer(System.String,System.String,System.String,System.Int32)", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#CloseHandle(System.IntPtr)", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#CreateUserToken(System.String,System.String,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#CreateUserToken(System.String,System.String,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#DeleteShadowCache(System.String,System.String)", Justification = @"[....]: The CodeAssemblies are used here in order to compile GlobalAsax type, they are not exposed externally.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#DirMonClose(System.Runtime.InteropServices.HandleRef)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#CloseHandle(System.IntPtr)", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#CreateUserToken(System.String,System.String,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#CreateUserToken(System.String,System.String,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#DeleteShadowCache(System.String,System.String)", Justification = @"tinghaoy: The CodeAssemblies are used here in order to compile GlobalAsax type, they are not exposed externally.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#DirMonClose(System.Runtime.InteropServices.HandleRef)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#DoesKeyContainerExist(System.String,System.String,System.Int32)", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbAppendLogParameter(System.IntPtr,System.String)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbAppendLogParameter(System.IntPtr,System.String)", Justification = @"[....]: BestFitMapping is already disabled")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbCallISAPI(System.IntPtr,System.Web.UnsafeNativeMethods+CallISAPIFunc,System.Byte[],System.Int32,System.Byte[],System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbCloseConnection(System.IntPtr)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetAdditionalPostedContent(System.IntPtr,System.Byte[],System.Int32,System.Int32)", Justification = @"[....]: FxCop failure to load aspnet_isapi.dll")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetBasics(System.IntPtr,System.Byte[],System.Int32,System.Int32[])", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetBasicsContentInfo(System.IntPtr,System.Int32[])", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetClientCertificate(System.IntPtr,System.Byte[],System.Int32,System.Int32[],System.Int64[])", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetImpersonationToken(System.IntPtr,System.IntPtr)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetPreloadedPostedContent(System.IntPtr,System.Byte[],System.Int32,System.Int32)", Justification = @"[....]: FxCop failure to load aspnet_isapi.dll")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetQueryString(System.IntPtr,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetQueryString(System.IntPtr,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: BestFitMapping is already disabled")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetQueryStringRawBytes(System.IntPtr,System.Byte[],System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetServerVariable(System.IntPtr,System.String,System.Byte[],System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetServerVariable(System.IntPtr,System.String,System.Byte[],System.Int32)", Justification = @"[....]: BestFitMapping is already disabled")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetTraceContextId(System.IntPtr,System.Guid&)", Justification = @"[....]: fxcopy should be updated to ignore pinvokes for aspnet_isapi and aspnet_wp")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetTraceContextId(System.IntPtr,System.Guid&)", Justification = @"[....]: There's a full demand on the ctor of ISAPIRuntime and the object is well-protected so a user should never get an instance, so these should not be a vulnerability. [....] did the security review.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetTraceFlags(System.IntPtr,System.Int32[])", Justification = @"[....]: ok")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetUnicodeServerVariable(System.IntPtr,System.String,System.IntPtr,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetUnicodeServerVariable(System.IntPtr,System.String,System.IntPtr,System.Int32)", Justification = @"[....]: BestFitMapping is already disabled")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetUnicodeServerVariableByIndex(System.IntPtr,System.Int32,System.IntPtr,System.Int32)", Justification = @"[....]: fxcop should be reconfigured")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetVersion(System.IntPtr)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetVersion(System.IntPtr)", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetVirtualPathToken(System.IntPtr,System.IntPtr)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbIsClientConnected(System.IntPtr)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbMapUrlToPath(System.IntPtr,System.String,System.Byte[],System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbMapUrlToPath(System.IntPtr,System.String,System.Byte[],System.Int32)", Justification = @"[....]: BestFitMapping is already disabled")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#FindClose(System.IntPtr)", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting changes")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#FindFirstFile(System.String,System.Web.UnsafeNativeMethods+WIN32_FIND_DATA&)", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting changes")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#FreeFileSecurityDescriptor(System.IntPtr)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetCredentialFromRegistry(System.String,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetCredentialFromRegistry(System.String,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetCurrentThread()", Justification = @"[....]: internal impersonation code calling pinvoke methods protected by link demands is ok - all public impersonation APIs are protected")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetEcb(System.IntPtr)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetEtwValues(System.Int32&,System.Int32&)", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetFileAttributesEx(System.String,System.Int32,System.Web.UnsafeNativeMethods+WIN32_FILE_ATTRIBUTE_DATA&)", Justification = @"[....]: Reviewed, no security issues found.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetFileHandleForTransmitFile(System.String)", Justification = @"[....]: I don't understand this rule.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetFileSecurity(System.String,System.Int32,System.Byte[],System.Int32,System.Int32&)", Justification = @"[....]: Reviewed for security vulnerabilities, none found.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetFileSecurityDescriptor(System.String)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetGroupsForUser(System.IntPtr,System.Text.StringBuilder,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetHMACSHA1Hash(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32,System.Byte[],System.Int32,System.Byte[],System.Int32,System.Byte[],System.Int32)", Justification = @"[....]: The call-stack is permitted in low trust scenarios")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetModuleFileName(System.IntPtr,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetModuleHandle(System.String)", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetSHA1Hash(System.Byte[],System.Int32,System.Byte[],System.Int32)", Justification = @"[....]: The call-stack is permitted in low trust scenarios")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetW3WPMemoryLimitInKB()", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InitializeHealthMonitor(System.Int32,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InitializeLibrary()", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InitializeWmiManager()", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InstrumentedMutexCreate(System.String)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InstrumentedMutexDelete(System.Runtime.InteropServices.HandleRef)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InstrumentedMutexGetLock(System.Runtime.InteropServices.HandleRef,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InstrumentedMutexReleaseLock(System.Runtime.InteropServices.HandleRef)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InstrumentedMutexSetState(System.Runtime.InteropServices.HandleRef,System.Int32)", Justification = @"[....]: Called by CompilationMutex")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InstrumentedMutexSetState(System.Runtime.InteropServices.HandleRef,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#INVALID_HANDLE_VALUE", Justification = @"[....]: It's not a real handle. Instead it's a constant for invalid handle value.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InvalidateKernelCache(System.String)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#IsAccessToFileAllowed(System.IntPtr,System.IntPtr,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#IsapiAppHostGetSiteId(System.String,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: The entry point exists, fxcop cannot load ASPNET_ISAPI.DLL.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#IsapiAppHostGetSiteName(System.String,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#IsapiAppHostGetUncUser(System.String,System.Text.StringBuilder,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#IsapiAppHostMapPath(System.String,System.String,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#IsUserInRole(System.IntPtr,System.String,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#IsValidResource(System.IntPtr,System.IntPtr,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#LogonUser(System.String,System.String,System.String,System.Int32,System.Int32,System.IntPtr&)", Justification = @"[....]: These violations are ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#OpenThreadToken(System.IntPtr,System.Int32,System.Boolean,System.IntPtr&)", Justification = @"[....]: internal impersonation code calling pinvoke methods protected by link demands is ok - all public impersonation APIs are protected")]
-[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#OpenThreadToken(System.IntPtr,System.Int32,System.Boolean,System.IntPtr&)", Justification = @"[....]: BestFitMapping is already disabled")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportAuthURL(System.IntPtr,System.String,System.Int32,System.Int32,System.String,System.Int32,System.String,System.Int32,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportAuthURL2(System.IntPtr,System.String,System.Int32,System.Int32,System.String,System.Int32,System.String,System.Int32,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportCreate(System.String,System.String,System.String,System.String,System.String,System.Text.StringBuilder,System.Text.StringBuilder,System.Int32,System.IntPtr&)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportCreateHttpRaw(System.String,System.String,System.Int32,System.Text.StringBuilder,System.Int32,System.IntPtr&)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportCrypt(System.Int32,System.String,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportCryptIsValid()", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportCryptPut(System.Int32,System.String)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportDestroy(System.IntPtr)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportDomainFromMemberName(System.IntPtr,System.String,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetCurrentConfig(System.IntPtr,System.String,System.Object&)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetDomainAttribute(System.IntPtr,System.String,System.Int32,System.String,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetError(System.IntPtr)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetFromNetworkServer(System.IntPtr)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetHasSavedPassword(System.IntPtr)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetLoginChallenge(System.IntPtr,System.String,System.Int32,System.Int32,System.String,System.Int32,System.String,System.Int32,System.Int32,System.Object,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetOption(System.IntPtr,System.String,System.Object&)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetProfile(System.IntPtr,System.String,System.Object&)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetTicketAge(System.IntPtr)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetTimeSinceSignIn(System.IntPtr)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportHasConsent(System.IntPtr,System.Int32,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportHasFlag(System.IntPtr,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportHasProfile(System.IntPtr,System.String)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportHasTicket(System.IntPtr)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportHexPUID(System.IntPtr,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportIsAuthenticated(System.IntPtr,System.Int32,System.Int32,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportLogoTag(System.IntPtr,System.String,System.Int32,System.Int32,System.String,System.Int32,System.Int32,System.String,System.Int32,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportLogoTag2(System.IntPtr,System.String,System.Int32,System.Int32,System.String,System.Int32,System.Int32,System.String,System.Int32,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportLogoutURL(System.IntPtr,System.String,System.String,System.Int32,System.String,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportSetOption(System.IntPtr,System.String,System.Object)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportTicket(System.IntPtr,System.String,System.Object&)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportVersion()", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfCloseAppCounters(System.IntPtr)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfCloseAppCounters(System.IntPtr)", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfDecrementCounter(System.IntPtr,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfDecrementCounter(System.IntPtr,System.Int32)", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting changes")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfGetCounter(System.IntPtr,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfIncrementCounter(System.IntPtr,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfIncrementCounter(System.IntPtr,System.Int32)", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfIncrementCounterEx(System.IntPtr,System.Int32,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfIncrementCounterEx(System.IntPtr,System.Int32,System.Int32)", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfOpenGlobalCounters()", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfOpenStateCounters()", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfSetCounter(System.IntPtr,System.Int32,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PMAppendLogParameter(System.IntPtr,System.String)", Justification = @"[....]: BestFitMapping is already disabled")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PMCallISAPI(System.IntPtr,System.Web.UnsafeNativeMethods+CallISAPIFunc,System.Byte[],System.Int32,System.Byte[],System.Int32)", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PMGetQueryString(System.IntPtr,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"[....]: BestFitMapping is already disabled")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PMGetTraceContextId(System.IntPtr,System.Guid&)", Justification = @"[....]: There's a full demand on the ctor of ISAPIRuntime and the object is well-protected so a user should never get an instance, so these should not be a vulnerability. [....] did the security review.")]
-[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PMMapUrlToPath(System.IntPtr,System.String,System.Byte[],System.Int32)", Justification = @"[....]: BestFitMapping is already disabled")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PMTraceRaiseEvent(System.Int32,System.IntPtr,System.String,System.String,System.String,System.String)", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PostThreadPoolWorkItem(System.Web.Util.WorkItemCallback)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#RaiseFileMonitoringEventlogEvent(System.String,System.String,System.String,System.Int32)", Justification = @"[....]: bogus warning")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#RaiseFileMonitoringEventlogEvent(System.String,System.String,System.String,System.Int32)", Justification = @"[....]: CodeAssemblies are accessed here in order to compile the globalasax type, they are not exposed externally.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#ReportUnhandledException(System.String)", Justification = @"[....]: This is a bug in FxCop")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#ReportUnhandledException(System.String)", Justification = @"[....]: There's a full demand on the ctor of ISAPIRuntime and the object is well-protected so a user should never get an instance, so these should not be a vulnerability. [....] did the security review.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#RevertToSelf()", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#SessionNDCloseConnection(System.Runtime.InteropServices.HandleRef)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#SessionNDConnectToService(System.String)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbAppendLogParameter(System.IntPtr,System.String)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbAppendLogParameter(System.IntPtr,System.String)", Justification = @"patng: BestFitMapping is already disabled")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbCallISAPI(System.IntPtr,System.Web.UnsafeNativeMethods+CallISAPIFunc,System.Byte[],System.Int32,System.Byte[],System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbCloseConnection(System.IntPtr)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetAdditionalPostedContent(System.IntPtr,System.Byte[],System.Int32,System.Int32)", Justification = @"dmitryr: FxCop failure to load aspnet_isapi.dll")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetBasics(System.IntPtr,System.Byte[],System.Int32,System.Int32[])", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetBasicsContentInfo(System.IntPtr,System.Int32[])", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetClientCertificate(System.IntPtr,System.Byte[],System.Int32,System.Int32[],System.Int64[])", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetImpersonationToken(System.IntPtr,System.IntPtr)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetPreloadedPostedContent(System.IntPtr,System.Byte[],System.Int32,System.Int32)", Justification = @"dmitryr: FxCop failure to load aspnet_isapi.dll")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetQueryString(System.IntPtr,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetQueryString(System.IntPtr,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"patng: BestFitMapping is already disabled")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetQueryStringRawBytes(System.IntPtr,System.Byte[],System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetServerVariable(System.IntPtr,System.String,System.Byte[],System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetServerVariable(System.IntPtr,System.String,System.Byte[],System.Int32)", Justification = @"patng: BestFitMapping is already disabled")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetTraceContextId(System.IntPtr,System.Guid&)", Justification = @"tmarq: fxcopy should be updated to ignore pinvokes for aspnet_isapi and aspnet_wp")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetTraceContextId(System.IntPtr,System.Guid&)", Justification = @"phuff: There's a full demand on the ctor of ISAPIRuntime and the object is well-protected so a user should never get an instance, so these should not be a vulnerability. DmitryR did the security review.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetTraceFlags(System.IntPtr,System.Int32[])", Justification = @"tmarq: ok")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetUnicodeServerVariable(System.IntPtr,System.String,System.IntPtr,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetUnicodeServerVariable(System.IntPtr,System.String,System.IntPtr,System.Int32)", Justification = @"patng: BestFitMapping is already disabled")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetUnicodeServerVariableByIndex(System.IntPtr,System.Int32,System.IntPtr,System.Int32)", Justification = @"tmarq: fxcop should be reconfigured")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetVersion(System.IntPtr)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetVersion(System.IntPtr)", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbGetVirtualPathToken(System.IntPtr,System.IntPtr)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbIsClientConnected(System.IntPtr)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbMapUrlToPath(System.IntPtr,System.String,System.Byte[],System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#EcbMapUrlToPath(System.IntPtr,System.String,System.Byte[],System.Int32)", Justification = @"patng: BestFitMapping is already disabled")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#FindClose(System.IntPtr)", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting changes")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#FindFirstFile(System.String,System.Web.UnsafeNativeMethods+WIN32_FIND_DATA&)", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting changes")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#FreeFileSecurityDescriptor(System.IntPtr)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetCredentialFromRegistry(System.String,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetCredentialFromRegistry(System.String,System.Text.StringBuilder,System.Int32)", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetCurrentThread()", Justification = @"dmitryr: internal impersonation code calling pinvoke methods protected by link demands is ok - all public impersonation APIs are protected")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetEcb(System.IntPtr)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetEtwValues(System.Int32&,System.Int32&)", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetFileAttributesEx(System.String,System.Int32,System.Web.UnsafeNativeMethods+WIN32_FILE_ATTRIBUTE_DATA&)", Justification = @"adams: Reviewed, no security issues found.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetFileHandleForTransmitFile(System.String)", Justification = @"tmarq: I don't understand this rule.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetFileSecurity(System.String,System.Int32,System.Byte[],System.Int32,System.Int32&)", Justification = @"adams: Reviewed for security vulnerabilities, none found.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetFileSecurityDescriptor(System.String)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetGroupsForUser(System.IntPtr,System.Text.StringBuilder,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetHMACSHA1Hash(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32,System.Byte[],System.Int32,System.Byte[],System.Int32,System.Byte[],System.Int32)", Justification = @"manuva: The call-stack is permitted in low trust scenarios")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetModuleFileName(System.IntPtr,System.Text.StringBuilder,System.Int32)", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetModuleHandle(System.String)", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetSHA1Hash(System.Byte[],System.Int32,System.Byte[],System.Int32)", Justification = @"manuva: The call-stack is permitted in low trust scenarios")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#GetW3WPMemoryLimitInKB()", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InitializeHealthMonitor(System.Int32,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InitializeLibrary()", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InitializeWmiManager()", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InstrumentedMutexCreate(System.String)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InstrumentedMutexDelete(System.Runtime.InteropServices.HandleRef)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InstrumentedMutexGetLock(System.Runtime.InteropServices.HandleRef,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InstrumentedMutexReleaseLock(System.Runtime.InteropServices.HandleRef)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InstrumentedMutexSetState(System.Runtime.InteropServices.HandleRef,System.Int32)", Justification = @"patng: Called by CompilationMutex")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InstrumentedMutexSetState(System.Runtime.InteropServices.HandleRef,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#INVALID_HANDLE_VALUE", Justification = @"patng: It's not a real handle. Instead it's a constant for invalid handle value.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#InvalidateKernelCache(System.String)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#IsAccessToFileAllowed(System.IntPtr,System.IntPtr,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#IsapiAppHostGetSiteId(System.String,System.Text.StringBuilder,System.Int32)", Justification = @"adams: The entry point exists, fxcop cannot load ASPNET_ISAPI.DLL.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#IsapiAppHostGetSiteName(System.String,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#IsapiAppHostGetUncUser(System.String,System.Text.StringBuilder,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#IsapiAppHostMapPath(System.String,System.String,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#IsUserInRole(System.IntPtr,System.String,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#IsValidResource(System.IntPtr,System.IntPtr,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#LogonUser(System.String,System.String,System.String,System.Int32,System.Int32,System.IntPtr&)", Justification = @"phuff: These violations are ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#OpenThreadToken(System.IntPtr,System.Int32,System.Boolean,System.IntPtr&)", Justification = @"dmitryr: internal impersonation code calling pinvoke methods protected by link demands is ok - all public impersonation APIs are protected")]
+[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#OpenThreadToken(System.IntPtr,System.Int32,System.Boolean,System.IntPtr&)", Justification = @"patng: BestFitMapping is already disabled")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportAuthURL(System.IntPtr,System.String,System.Int32,System.Int32,System.String,System.Int32,System.String,System.Int32,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportAuthURL2(System.IntPtr,System.String,System.Int32,System.Int32,System.String,System.Int32,System.String,System.Int32,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportCreate(System.String,System.String,System.String,System.String,System.String,System.Text.StringBuilder,System.Text.StringBuilder,System.Int32,System.IntPtr&)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportCreateHttpRaw(System.String,System.String,System.Int32,System.Text.StringBuilder,System.Int32,System.IntPtr&)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportCrypt(System.Int32,System.String,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportCryptIsValid()", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportCryptPut(System.Int32,System.String)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportDestroy(System.IntPtr)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportDomainFromMemberName(System.IntPtr,System.String,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetCurrentConfig(System.IntPtr,System.String,System.Object&)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetDomainAttribute(System.IntPtr,System.String,System.Int32,System.String,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetError(System.IntPtr)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetFromNetworkServer(System.IntPtr)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetHasSavedPassword(System.IntPtr)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetLoginChallenge(System.IntPtr,System.String,System.Int32,System.Int32,System.String,System.Int32,System.String,System.Int32,System.Int32,System.Object,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetOption(System.IntPtr,System.String,System.Object&)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetProfile(System.IntPtr,System.String,System.Object&)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetTicketAge(System.IntPtr)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportGetTimeSinceSignIn(System.IntPtr)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportHasConsent(System.IntPtr,System.Int32,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportHasFlag(System.IntPtr,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportHasProfile(System.IntPtr,System.String)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportHasTicket(System.IntPtr)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportHexPUID(System.IntPtr,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportIsAuthenticated(System.IntPtr,System.Int32,System.Int32,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportLogoTag(System.IntPtr,System.String,System.Int32,System.Int32,System.String,System.Int32,System.Int32,System.String,System.Int32,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportLogoTag2(System.IntPtr,System.String,System.Int32,System.Int32,System.String,System.Int32,System.Int32,System.String,System.Int32,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportLogoutURL(System.IntPtr,System.String,System.String,System.Int32,System.String,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportSetOption(System.IntPtr,System.String,System.Object)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportTicket(System.IntPtr,System.String,System.Object&)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PassportVersion()", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfCloseAppCounters(System.IntPtr)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfCloseAppCounters(System.IntPtr)", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfDecrementCounter(System.IntPtr,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfDecrementCounter(System.IntPtr,System.Int32)", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting changes")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfGetCounter(System.IntPtr,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfIncrementCounter(System.IntPtr,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfIncrementCounter(System.IntPtr,System.Int32)", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfIncrementCounterEx(System.IntPtr,System.Int32,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfIncrementCounterEx(System.IntPtr,System.Int32,System.Int32)", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfOpenGlobalCounters()", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfOpenStateCounters()", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PerfSetCounter(System.IntPtr,System.Int32,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PMAppendLogParameter(System.IntPtr,System.String)", Justification = @"patng: BestFitMapping is already disabled")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PMCallISAPI(System.IntPtr,System.Web.UnsafeNativeMethods+CallISAPIFunc,System.Byte[],System.Int32,System.Byte[],System.Int32)", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PMGetQueryString(System.IntPtr,System.Int32,System.Text.StringBuilder,System.Int32)", Justification = @"patng: BestFitMapping is already disabled")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PMGetTraceContextId(System.IntPtr,System.Guid&)", Justification = @"phuff: There's a full demand on the ctor of ISAPIRuntime and the object is well-protected so a user should never get an instance, so these should not be a vulnerability. DmitryR did the security review.")]
+[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PMMapUrlToPath(System.IntPtr,System.String,System.Byte[],System.Int32)", Justification = @"patng: BestFitMapping is already disabled")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PMTraceRaiseEvent(System.Int32,System.IntPtr,System.String,System.String,System.String,System.String)", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#PostThreadPoolWorkItem(System.Web.Util.WorkItemCallback)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#RaiseFileMonitoringEventlogEvent(System.String,System.String,System.String,System.Int32)", Justification = @"patng: bogus warning")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#RaiseFileMonitoringEventlogEvent(System.String,System.String,System.String,System.Int32)", Justification = @"tinghaoy: CodeAssemblies are accessed here in order to compile the globalasax type, they are not exposed externally.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#ReportUnhandledException(System.String)", Justification = @"tmarq: This is a bug in FxCop")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#ReportUnhandledException(System.String)", Justification = @"phuff: There's a full demand on the ctor of ISAPIRuntime and the object is well-protected so a user should never get an instance, so these should not be a vulnerability. DmitryR did the security review.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#RevertToSelf()", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#SessionNDCloseConnection(System.Runtime.InteropServices.HandleRef)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#SessionNDConnectToService(System.String)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#SessionNDMakeRequest(System.Runtime.InteropServices.HandleRef,System.String,System.Int32,System.Int32,System.Web.UnsafeNativeMethods+StateProtocolVerb,System.String,System.Web.UnsafeNativeMethods+StateProtocolExclusive,System.Int32,System.Int32,System.Int32,System.Byte[],System.Int32,System.Boolean,System.Web.UnsafeNativeMethods+SessionNDMakeRequestResults&)", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#SessionNDMakeRequest(System.Runtime.InteropServices.HandleRef,System.String,System.Int32,System.Int32,System.Web.UnsafeNativeMethods+StateProtocolVerb,System.String,System.Web.UnsafeNativeMethods+StateProtocolExclusive,System.Int32,System.Int32,System.Int32,System.Byte[],System.Int32,System.Boolean,System.Web.UnsafeNativeMethods+SessionNDMakeRequestResults&)", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#SetDoneWithSessionCalled(System.IntPtr)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#SetThreadToken(System.IntPtr,System.IntPtr)", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#STWNDGetLocalAddress(System.IntPtr,System.Text.StringBuilder)", Justification = @"[....]: BestFitMapping is already disabled")]
-[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#STWNDGetRemoteAddress(System.IntPtr,System.Text.StringBuilder)", Justification = @"[....]: BestFitMapping is already disabled")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#TraceRaiseEventMgdHandler(System.Int32,System.IntPtr,System.String,System.String,System.String,System.String)", Justification = @"[....]: ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#TraceRaiseEventWithEcb(System.Int32,System.IntPtr,System.String,System.String,System.String,System.String)", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#TransactManagedCallback(System.Web.Util.TransactedExecCallback,System.Int32)", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#UpdateLastActivityTimeForHealthMonitor()", Justification = @"[....]: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UnsafeNativeMethods+SessionNDMakeRequestResults", Justification = @"[....]: These violations are ok.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UnsafeNativeMethods+SessionNDMakeRequestResults.#content", Justification = @"[....]: SessionNDMakeRequestResults.content is a memory pointer used internally between ssdirect.cxx and outofprocstateclientmanager.cs, and we control its lifetime.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UnsafeNativeMethods+SessionNDMakeRequestResults.#socket", Justification = @"[....]: socket is a winsock that's used internally between ssdirect.cxx and outofprocstateclientmanage.cs, and we control its lifetime.")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UnsafeNativeMethods+SYSTEM_INFO", Justification = @"[....]: These violations are ok.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UnsafeNativeMethods+SYSTEM_INFO.#dwActiveProcessorMask", Justification = @"[....]: The field is defined because it's part of the win32 struct. The field itself is not used in managed code.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UnsafeNativeMethods+SYSTEM_INFO.#lpMaximumApplicationAddress", Justification = @"[....]: The field is defined because it's part of the win32 struct. The field itself is not used in managed code.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UnsafeNativeMethods+SYSTEM_INFO.#lpMinimumApplicationAddress", Justification = @"[....]: The field is defined because it's part of the win32 struct. The field itself is not used in managed code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.VirtualPath.#GetDirectory()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.VirtualPath.#get_IsWithinAppRoot()", Justification = @"[....]: Config should not be protected by a link demand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.VirtualPath.#LookUpRegForVerCompat()", Justification = @"[....]: ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.VirtualPath.#MapPathInternal(System.Boolean)", Justification = @"[....]: Config should not be protected by a link demand.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.VirtualPath.#System.IComparable.CompareTo(System.Object)", Justification = @"[....]: Deliberate. Unlikely case, not worth the cost of a localized message.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.VirtualPath.#get_VirtualPathString()", Justification = @"[....]: Config should not be protected by a link demand.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.WebPageTraceListener", MessageId = "WebPage", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.WebPageTraceListener.#TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String)", Justification = @"[....]: I think this should be firing the OverrideLinkDemands rule instead because TraceListener doesn't have a link demand, but both WebPageTraceListener and HttpContext do. This is safe.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.WebPageTraceListener.#TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.WebPageTraceListener.#TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String,System.Object[])", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.WebPageTraceListener.#Write(System.String)", Justification = @"[....]: I think this should be firing the OverrideLinkDemands rule instead because TraceListener doesn't have a link demand, but both WebPageTraceListener and HttpContext do. This is safe.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.WebPageTraceListener.#Write(System.String)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.WebPageTraceListener.#Write(System.String,System.String)", Justification = @"[....]: I think this should be firing the OverrideLinkDemands rule instead because TraceListener doesn't have a link demand, but both WebPageTraceListener and HttpContext do. This is safe.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.WebPageTraceListener.#Write(System.String,System.String)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.WebPageTraceListener.#WriteLine(System.String)", Justification = @"[....]: I think this should be firing the OverrideLinkDemands rule instead because TraceListener doesn't have a link demand, but both WebPageTraceListener and HttpContext do. This is safe.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.WebPageTraceListener.#WriteLine(System.String)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.WebPageTraceListener.#WriteLine(System.String,System.String)", Justification = @"[....]: I think this should be firing the OverrideLinkDemands rule instead because TraceListener doesn't have a link demand, but both WebPageTraceListener and HttpContext do. This is safe.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.WebPageTraceListener.#WriteLine(System.String,System.String)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.WebSysDefaultValueAttribute.#get_Value()", Justification = @"[....]: We want to catch everything that can go wrong here")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.XmlSiteMapProvider", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.XmlSiteMapProvider.#BuildSiteMap()", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.XmlSiteMapProvider.#BuildSiteMap()", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.XmlSiteMapProvider.#Dispose()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.XmlSiteMapProvider.#FindSiteMapNode(System.String)", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.XmlSiteMapProvider.#FindSiteMapNodeFromKey(System.String)", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", Scope = "member", Target = "System.Web.XmlSiteMapProvider.#ValidateResource(System.String,System.String)", MessageId = "System.Web.HttpContext.GetGlobalResourceObject(System.String,System.String)", Justification = @"[....]: By not specifying the culture, the current culture will be used.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Administration.WebAdminConfigurationHelper", Justification = @"[....]: The type in question is being instantiated through the Hosting api.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Administration.WebAdminConfigurationHelper.#CallMembershipProviderMethod(System.String,System.Object[],System.Type[])", Justification = @"[....]: called by the webadmin site thru reflection.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.Administration.WebAdminConfigurationHelper.#CallMembershipProviderMethod(System.String,System.Object[],System.Type[])", Justification = @"[....]: this was revied as needed.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Administration.WebAdminConfigurationHelper.#CallRoleProviderMethod(System.String,System.Object[],System.Type[])", Justification = @"[....]: called by the webadmin site thru reflection.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.Administration.WebAdminConfigurationHelper.#CallRoleProviderMethod(System.String,System.Object[],System.Type[])", Justification = @"[....]: this was revied as needed.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Administration.WebAdminConfigurationHelper.#GetMembershipProviderProperty(System.String)", Justification = @"[....]: called by the webadmin site thru reflection.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.Administration.WebAdminConfigurationHelper.#GetMembershipProviderProperty(System.String)", Justification = @"[....]: this was revied as needed.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Administration.WebAdminConfigurationHelper.#GetVirtualDirectory(System.String)", Justification = @"[....]: called by the webadmin site thru reflection.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.Administration.WebAdminConfigurationHelper.#GetVirtualDirectory(System.String)", Justification = @"[....]: this was revied as needed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Caching.Cache.#.ctor()", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.Caching.CacheCommon.#AdjustTimer()", MessageId = "System.Threading.Timer.Change(System.Int32,System.Int32)", Justification = @"[....]: we do not care about the return value")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "member", Target = "System.Web.Caching.CacheCommon.#GcCollect()", MessageId = "System.GC.Collect", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor()", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String)", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String,System.DateTime)", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String[])", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String[],System.DateTime)", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String[],System.String[])", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String[],System.String[])", Justification = @"[....]: WebConfigurationManager only invokes the HttpConfigurationSystem when the LinkDemand for AspNetHostingPermission would be satisfied.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String[],System.String[],System.DateTime)", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String[],System.String[],System.Web.Caching.CacheDependency)", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String[],System.String[],System.Web.Caching.CacheDependency,System.DateTime)", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.String)", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.String,System.DateTime)", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.String[])", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.String[],System.DateTime)", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.String[],System.String[])", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.String[],System.String[],System.DateTime)", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.String[],System.String[],System.Web.Caching.CacheDependency)", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.String[],System.String[],System.Web.Caching.CacheDependency,System.DateTime)", Justification = @"[....]: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Caching.CacheDependency.#Dispose()", Justification = @"[....]: WebConfigurationManager only invokes the HttpConfigurationSystem when the LinkDemand for AspNetHostingPermission would be satisfied.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Caching.CacheDependency.#GetUniqueID()", Justification = @"[....]: ID approved acronym.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Caching.CacheDependency.#GetUniqueID()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.Caching.CacheDependency.#NotifyDependencyChanged(System.Object,System.EventArgs)", Justification = @"[....]: Reviewed for dangerous usage.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Caching.CacheDependency.#SetUtcLastModified(System.DateTime)", MessageId = "0#", Justification = @"[....]: Utc is used as an abbreviation throughout the BCL.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Caching.CacheDependency.#SetUtcLastModified(System.DateTime)", Justification = @"[....]: The naming of this property follows already established pattern for cache policy (i.e. HttpCachePolicy). Excluding it.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Caching.CacheEntry.#CallCacheItemRemovedCallback(System.Web.Caching.CacheItemRemovedCallback,System.Web.Caching.CacheItemRemovedReason)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.CacheEntry.#DebugDescription(System.String)", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.CacheExpires.#DebugDescription(System.String)", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.CacheExpires.#DebugValidate()", Justification = @"[....]: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#SetDoneWithSessionCalled(System.IntPtr)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#SetThreadToken(System.IntPtr,System.IntPtr)", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#STWNDGetLocalAddress(System.IntPtr,System.Text.StringBuilder)", Justification = @"patng: BestFitMapping is already disabled")]
+[module: SuppressMessage("Microsoft.Security", "CA2101:SpecifyMarshalingForPInvokeStringArguments", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#STWNDGetRemoteAddress(System.IntPtr,System.Text.StringBuilder)", Justification = @"patng: BestFitMapping is already disabled")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#TraceRaiseEventMgdHandler(System.Int32,System.IntPtr,System.String,System.String,System.String,System.String)", Justification = @"tmarq: ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#TraceRaiseEventWithEcb(System.Int32,System.IntPtr,System.String,System.String,System.String,System.String)", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#TransactManagedCallback(System.Web.Util.TransactedExecCallback,System.Int32)", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1400:PInvokeEntryPointsShouldExist", Scope = "member", Target = "System.Web.UnsafeNativeMethods.#UpdateLastActivityTimeForHealthMonitor()", Justification = @"patng: aspnet_isapi.dll is part of the setup and will be present when system.web.dll is running. If not, many other things will break too.")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UnsafeNativeMethods+SessionNDMakeRequestResults", Justification = @"phuff: These violations are ok.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UnsafeNativeMethods+SessionNDMakeRequestResults.#content", Justification = @"patng: SessionNDMakeRequestResults.content is a memory pointer used internally between ssdirect.cxx and outofprocstateclientmanager.cs, and we control its lifetime.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UnsafeNativeMethods+SessionNDMakeRequestResults.#socket", Justification = @"patng: socket is a winsock that's used internally between ssdirect.cxx and outofprocstateclientmanage.cs, and we control its lifetime.")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UnsafeNativeMethods+SYSTEM_INFO", Justification = @"phuff: These violations are ok.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UnsafeNativeMethods+SYSTEM_INFO.#dwActiveProcessorMask", Justification = @"patng: The field is defined because it's part of the win32 struct. The field itself is not used in managed code.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UnsafeNativeMethods+SYSTEM_INFO.#lpMaximumApplicationAddress", Justification = @"patng: The field is defined because it's part of the win32 struct. The field itself is not used in managed code.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UnsafeNativeMethods+SYSTEM_INFO.#lpMinimumApplicationAddress", Justification = @"patng: The field is defined because it's part of the win32 struct. The field itself is not used in managed code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.VirtualPath.#GetDirectory()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.VirtualPath.#get_IsWithinAppRoot()", Justification = @"phuff: Config should not be protected by a link demand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.VirtualPath.#LookUpRegForVerCompat()", Justification = @"tmarq: ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.VirtualPath.#MapPathInternal(System.Boolean)", Justification = @"phuff: Config should not be protected by a link demand.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.VirtualPath.#System.IComparable.CompareTo(System.Object)", Justification = @"davidebb: Deliberate. Unlikely case, not worth the cost of a localized message.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.VirtualPath.#get_VirtualPathString()", Justification = @"phuff: Config should not be protected by a link demand.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.WebPageTraceListener", MessageId = "WebPage", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.WebPageTraceListener.#TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String)", Justification = @"phuff: I think this should be firing the OverrideLinkDemands rule instead because TraceListener doesn't have a link demand, but both WebPageTraceListener and HttpContext do. This is safe.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.WebPageTraceListener.#TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.WebPageTraceListener.#TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String,System.Object[])", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.WebPageTraceListener.#Write(System.String)", Justification = @"phuff: I think this should be firing the OverrideLinkDemands rule instead because TraceListener doesn't have a link demand, but both WebPageTraceListener and HttpContext do. This is safe.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.WebPageTraceListener.#Write(System.String)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.WebPageTraceListener.#Write(System.String,System.String)", Justification = @"phuff: I think this should be firing the OverrideLinkDemands rule instead because TraceListener doesn't have a link demand, but both WebPageTraceListener and HttpContext do. This is safe.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.WebPageTraceListener.#Write(System.String,System.String)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.WebPageTraceListener.#WriteLine(System.String)", Justification = @"phuff: I think this should be firing the OverrideLinkDemands rule instead because TraceListener doesn't have a link demand, but both WebPageTraceListener and HttpContext do. This is safe.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.WebPageTraceListener.#WriteLine(System.String)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.WebPageTraceListener.#WriteLine(System.String,System.String)", Justification = @"phuff: I think this should be firing the OverrideLinkDemands rule instead because TraceListener doesn't have a link demand, but both WebPageTraceListener and HttpContext do. This is safe.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.WebPageTraceListener.#WriteLine(System.String,System.String)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.WebSysDefaultValueAttribute.#get_Value()", Justification = @"bleroy: We want to catch everything that can go wrong here")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.XmlSiteMapProvider", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.XmlSiteMapProvider.#BuildSiteMap()", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.XmlSiteMapProvider.#BuildSiteMap()", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.XmlSiteMapProvider.#Dispose()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.XmlSiteMapProvider.#FindSiteMapNode(System.String)", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.XmlSiteMapProvider.#FindSiteMapNodeFromKey(System.String)", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", Scope = "member", Target = "System.Web.XmlSiteMapProvider.#ValidateResource(System.String,System.String)", MessageId = "System.Web.HttpContext.GetGlobalResourceObject(System.String,System.String)", Justification = @"elipton: By not specifying the culture, the current culture will be used.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Administration.WebAdminConfigurationHelper", Justification = @"scottim: The type in question is being instantiated through the Hosting api.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Administration.WebAdminConfigurationHelper.#CallMembershipProviderMethod(System.String,System.Object[],System.Type[])", Justification = @"aaronl: called by the webadmin site thru reflection.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.Administration.WebAdminConfigurationHelper.#CallMembershipProviderMethod(System.String,System.Object[],System.Type[])", Justification = @"aaronl: this was revied as needed.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Administration.WebAdminConfigurationHelper.#CallRoleProviderMethod(System.String,System.Object[],System.Type[])", Justification = @"aaronl: called by the webadmin site thru reflection.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.Administration.WebAdminConfigurationHelper.#CallRoleProviderMethod(System.String,System.Object[],System.Type[])", Justification = @"aaronl: this was revied as needed.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Administration.WebAdminConfigurationHelper.#GetMembershipProviderProperty(System.String)", Justification = @"aaronl: called by the webadmin site thru reflection.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.Administration.WebAdminConfigurationHelper.#GetMembershipProviderProperty(System.String)", Justification = @"aaronl: this was revied as needed.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Administration.WebAdminConfigurationHelper.#GetVirtualDirectory(System.String)", Justification = @"aaronl: called by the webadmin site thru reflection.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.Administration.WebAdminConfigurationHelper.#GetVirtualDirectory(System.String)", Justification = @"aaronl: this was revied as needed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Caching.Cache.#.ctor()", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.Caching.CacheCommon.#AdjustTimer()", MessageId = "System.Threading.Timer.Change(System.Int32,System.Int32)", Justification = @"tmarq: we do not care about the return value")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "member", Target = "System.Web.Caching.CacheCommon.#GcCollect()", MessageId = "System.GC.Collect", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor()", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String)", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String,System.DateTime)", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String[])", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String[],System.DateTime)", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String[],System.String[])", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String[],System.String[])", Justification = @"adams: WebConfigurationManager only invokes the HttpConfigurationSystem when the LinkDemand for AspNetHostingPermission would be satisfied.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String[],System.String[],System.DateTime)", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String[],System.String[],System.Web.Caching.CacheDependency)", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.Int32,System.String[],System.String[],System.Web.Caching.CacheDependency,System.DateTime)", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.String)", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.String,System.DateTime)", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.String[])", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.String[],System.DateTime)", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.String[],System.String[])", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.String[],System.String[],System.DateTime)", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.String[],System.String[],System.Web.Caching.CacheDependency)", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Caching.CacheDependency.#.ctor(System.String[],System.String[],System.Web.Caching.CacheDependency,System.DateTime)", Justification = @"patng: DependencyDispose won't be called until DERIVED_INIT is set, which is set in Dispose() or FinishInit().")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Caching.CacheDependency.#Dispose()", Justification = @"adams: WebConfigurationManager only invokes the HttpConfigurationSystem when the LinkDemand for AspNetHostingPermission would be satisfied.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Caching.CacheDependency.#GetUniqueID()", Justification = @"phuff: ID approved acronym.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Caching.CacheDependency.#GetUniqueID()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.Caching.CacheDependency.#NotifyDependencyChanged(System.Object,System.EventArgs)", Justification = @"adams: Reviewed for dangerous usage.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Caching.CacheDependency.#SetUtcLastModified(System.DateTime)", MessageId = "0#", Justification = @"adams: Utc is used as an abbreviation throughout the BCL.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Caching.CacheDependency.#SetUtcLastModified(System.DateTime)", Justification = @"fabioy: The naming of this property follows already established pattern for cache policy (i.e. HttpCachePolicy). Excluding it.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Caching.CacheEntry.#CallCacheItemRemovedCallback(System.Web.Caching.CacheItemRemovedCallback,System.Web.Caching.CacheItemRemovedReason)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.CacheEntry.#DebugDescription(System.String)", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.CacheExpires.#DebugDescription(System.String)", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.CacheExpires.#DebugValidate()", Justification = @"mattgi: already excluded, accidental duplication in merge")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Caching.CacheItemRemovedCallback", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.CacheUsage.#DebugDescription(System.String)", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.CacheUsage.#DebugValidate()", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", Scope = "member", Target = "System.Web.Caching.DatabaseNotifState.#Dispose()", Justification = @"[....]: MSDN doc says SqlCommand.Dispose shouldn't be called by user.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.ExpiresBucket.#DebugDescription(System.String)", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.Caching.ExpiresBucket.#DebugDescription(System.String)", MessageId = "System.String.Concat(System.String,System.String)", Justification = @"[....]: Excluding since it's a debug only false alarm.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.ExpiresBucket.#DebugValidate()", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Portability", "CA1900:ValueTypeFieldsShouldBePortable", Scope = "type", Target = "System.Web.Caching.ExpiresEntry", MessageId = "_cacheEntry", Justification = @"[....]: This is a generated class.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.ExpiresEntryRef.#op_Inequality(System.Web.Caching.ExpiresEntryRef,System.Web.Caching.ExpiresEntryRef)", Justification = @"[....]: Class overrides op_Equality (which is used) and can't remove this method, else compiler complaints.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Caching.IOutputCacheEntry.#HeaderElements", Justification = @"[....]: by design")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Caching.IOutputCacheEntry.#ResponseElements", Justification = @"[....]: by design")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Caching.MemoryResponseElement.#Buffer", Justification = @"[....]: by design")]
-[module: SuppressMessage("Microsoft.Design", "CA1053:StaticHolderTypesShouldNotHaveConstructors", Scope = "type", Target = "System.Web.Caching.OutputCache", Justification = @"[....]: @!?")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Caching.OutputCacheModule", Justification = @"[....]: Internal HttpModule only instantiated through reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.OutputCacheModule.#.ctor()", Justification = @"[....]: A false alarm, the object is created via reflection.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Caching.OutputCacheModule.#CreateOutputCachedItemKey(System.String,System.Web.HttpVerb,System.Web.HttpContext,System.Web.Caching.CachedVary)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Caching.OutputCacheModule.#CreateOutputCachedItemKey(System.String,System.Web.HttpVerb,System.Web.HttpContext,System.Web.Caching.CachedVary)", Justification = @"[....]: We want to catch all exceptions in this case.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Caching.OutputCacheModule.#OnEnter(System.Object,System.EventArgs)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Caching.OutputCacheProviderCollection.#Add(System.Configuration.Provider.ProviderBase)", Justification = @"[....]: by design")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Caching.SqlCacheDependency.#ParseSql7OutputCacheDependency(System.String)", Justification = @"[....]: from [....]: We have a higher level caller that catch ArgumentException and re-throw with a better exception message.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Caching.SqlCacheDependency.#VerifyAndRemoveEscapeCharacters(System.String)", Justification = @"[....]: from [....]: We have a higher level caller that catch ArgumentException and re-throw with a better exception message.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#DisableNotifications(System.String)", MessageId = "0#", Justification = @"[....]: connectionString is okay")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#DisableTableForNotifications(System.String,System.String)", MessageId = "0#", Justification = @"[....]: connectionString is okay")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#DisableTableForNotifications(System.String,System.String[])", MessageId = "0#", Justification = @"[....]: connectionString is okay")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#EnableNotifications(System.String)", MessageId = "0#", Justification = @"[....]: connectionString is okay")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#EnableTableForNotifications(System.String,System.String)", MessageId = "0#", Justification = @"[....]: connectionString is okay")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#EnableTableForNotifications(System.String,System.String[])", MessageId = "0#", Justification = @"[....]: connectionString is okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#GetEnabledTables(System.String)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#GetTablesEnabledForNotifications(System.String)", MessageId = "0#", Justification = @"[....]: connectionString is okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#SetupNotifications(System.Int32,System.String,System.String)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyManager.#PollDatabaseForChanges(System.Web.Caching.DatabaseNotifState,System.Boolean)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.UsageBucket.#DebugDescription(System.String)", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.UsageBucket.#DebugValidate()", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Portability", "CA1900:ValueTypeFieldsShouldBePortable", Scope = "type", Target = "System.Web.Caching.UsageEntry", MessageId = "_cacheEntry", Justification = @"[....]: This is a generated class.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.ApplicationBrowserCapabilitiesBuildProvider.#.ctor()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.ApplicationBrowserCapabilitiesBuildProvider.#AddFile(System.String)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.ApplicationBrowserCapabilitiesCodeGenerator.#.ctor(System.Web.Compilation.BuildProvider)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Compilation.AssemblyBuilder.#AddBuildProvider(System.Web.Compilation.BuildProvider)", Justification = @"[....]: It's fine in this case not to catch non Exception objects")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.AssemblyResolver.#CheckOutOfRangeDependencies(System.String,Microsoft.Build.Framework.ITaskItem)", Justification = @"[....]: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.AssemblyResolver.#GetPathToReferenceAssemblies(Microsoft.Build.Utilities.FrameworkName)", Justification = @"[....]: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.AssemblyResolver.#ResolveAssembly(System.String,System.Collections.Generic.IList`1<System.String>,System.Collections.Generic.IList`1<System.String>)", Justification = @"[....]: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.BaseResourcesBuildProvider.#.ctor()", Justification = @"[....]: Internal type instantiated by config.")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.BaseResourcesBuildProvider.#GenerateStronglyTypedClass(System.Web.Compilation.AssemblyBuilder,System.Resources.IResourceReader)", Justification = @"[....]: Should be fine to call StronglyTypedResourceBuilder here.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.BrowserCapabilitiesCompiler.#GetBrowserCapabilitiesType()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Compilation.BrowserCapabilitiesCompiler.#GetBrowserCapabilitiesType()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Compilation.BuildManager.#EnsureTopLevelFilesCompiled()", Justification = @"[....]: It's fine in this case not to catch non Exception objects")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.BuildManager.#GetType(System.String,System.Boolean,System.Boolean)", Justification = @"[....]: No way to pass arbitrary types.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Compilation.BuildManager.#InitializeBuildManager()", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Compilation.BuildManager.#OnWebHashFileChange(System.Object,System.Web.FileChangeEvent)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: This is for debug trace message only, does not need to be localized.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.BuildManagerHost", Justification = @"[....]: Created via appManager.CreateObject")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.BuildManagerHost.#.ctor()", Justification = @"[....]: Created by CBM")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "member", Target = "System.Web.Compilation.BuildManagerHost.#ResolveAssembly(System.Object,System.ResolveEventArgs)", MessageId = "System.Reflection.Assembly.LoadFrom", Justification = @"[....]: By-design.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Compilation.BuildManagerHost.#UnloadAppDomain()", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: Internal trace only message doesn't have to be localized.")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Compilation.BuildManagerHostUnloadEventHandler", Justification = @"[....]: No unmanaged resource allocated")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.BuildProvider.#GetCodeCompileUnit(System.Collections.IDictionary&)", MessageId = "0#", Justification = @"[....]: ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.BuildProvider.#GetCodeCompileUnit(System.Collections.IDictionary&)", MessageId = "Pragmas", Justification = @"[....]: ok")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.CacheUsage.#DebugDescription(System.String)", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.CacheUsage.#DebugValidate()", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", Scope = "member", Target = "System.Web.Caching.DatabaseNotifState.#Dispose()", Justification = @"patng: MSDN doc says SqlCommand.Dispose shouldn't be called by user.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.ExpiresBucket.#DebugDescription(System.String)", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.Caching.ExpiresBucket.#DebugDescription(System.String)", MessageId = "System.String.Concat(System.String,System.String)", Justification = @"fabioy: Excluding since it's a debug only false alarm.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.ExpiresBucket.#DebugValidate()", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Portability", "CA1900:ValueTypeFieldsShouldBePortable", Scope = "type", Target = "System.Web.Caching.ExpiresEntry", MessageId = "_cacheEntry", Justification = @"phuff: This is a generated class.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.ExpiresEntryRef.#op_Inequality(System.Web.Caching.ExpiresEntryRef,System.Web.Caching.ExpiresEntryRef)", Justification = @"fabioy: Class overrides op_Equality (which is used) and can't remove this method, else compiler complaints.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Caching.IOutputCacheEntry.#HeaderElements", Justification = @"asplab: by design")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Caching.IOutputCacheEntry.#ResponseElements", Justification = @"asplab: by design")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Caching.MemoryResponseElement.#Buffer", Justification = @"asplab: by design")]
+[module: SuppressMessage("Microsoft.Design", "CA1053:StaticHolderTypesShouldNotHaveConstructors", Scope = "type", Target = "System.Web.Caching.OutputCache", Justification = @"asplab: @!?")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Caching.OutputCacheModule", Justification = @"adams: Internal HttpModule only instantiated through reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.OutputCacheModule.#.ctor()", Justification = @"fabioy: A false alarm, the object is created via reflection.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Caching.OutputCacheModule.#CreateOutputCachedItemKey(System.String,System.Web.HttpVerb,System.Web.HttpContext,System.Web.Caching.CachedVary)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Caching.OutputCacheModule.#CreateOutputCachedItemKey(System.String,System.Web.HttpVerb,System.Web.HttpContext,System.Web.Caching.CachedVary)", Justification = @"adams: We want to catch all exceptions in this case.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Caching.OutputCacheModule.#OnEnter(System.Object,System.EventArgs)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Caching.OutputCacheProviderCollection.#Add(System.Configuration.Provider.ProviderBase)", Justification = @"asplab: by design")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Caching.SqlCacheDependency.#ParseSql7OutputCacheDependency(System.String)", Justification = @"bleroy: from Patng: We have a higher level caller that catch ArgumentException and re-throw with a better exception message.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Caching.SqlCacheDependency.#VerifyAndRemoveEscapeCharacters(System.String)", Justification = @"bleroy: from Patng: We have a higher level caller that catch ArgumentException and re-throw with a better exception message.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#DisableNotifications(System.String)", MessageId = "0#", Justification = @"patng: connectionString is okay")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#DisableTableForNotifications(System.String,System.String)", MessageId = "0#", Justification = @"patng: connectionString is okay")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#DisableTableForNotifications(System.String,System.String[])", MessageId = "0#", Justification = @"patng: connectionString is okay")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#EnableNotifications(System.String)", MessageId = "0#", Justification = @"patng: connectionString is okay")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#EnableTableForNotifications(System.String,System.String)", MessageId = "0#", Justification = @"patng: connectionString is okay")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#EnableTableForNotifications(System.String,System.String[])", MessageId = "0#", Justification = @"patng: connectionString is okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#GetEnabledTables(System.String)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#GetTablesEnabledForNotifications(System.String)", MessageId = "0#", Justification = @"patng: connectionString is okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyAdmin.#SetupNotifications(System.Int32,System.String,System.String)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Caching.SqlCacheDependencyManager.#PollDatabaseForChanges(System.Web.Caching.DatabaseNotifState,System.Boolean)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.UsageBucket.#DebugDescription(System.String)", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Caching.UsageBucket.#DebugValidate()", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Portability", "CA1900:ValueTypeFieldsShouldBePortable", Scope = "type", Target = "System.Web.Caching.UsageEntry", MessageId = "_cacheEntry", Justification = @"phuff: This is a generated class.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.ApplicationBrowserCapabilitiesBuildProvider.#.ctor()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.ApplicationBrowserCapabilitiesBuildProvider.#AddFile(System.String)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.ApplicationBrowserCapabilitiesCodeGenerator.#.ctor(System.Web.Compilation.BuildProvider)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Compilation.AssemblyBuilder.#AddBuildProvider(System.Web.Compilation.BuildProvider)", Justification = @"davidebb: It's fine in this case not to catch non Exception objects")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.AssemblyResolver.#CheckOutOfRangeDependencies(System.String,Microsoft.Build.Framework.ITaskItem)", Justification = @"honglim: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.AssemblyResolver.#GetPathToReferenceAssemblies(Microsoft.Build.Utilities.FrameworkName)", Justification = @"honglim: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.AssemblyResolver.#ResolveAssembly(System.String,System.Collections.Generic.IList`1<System.String>,System.Collections.Generic.IList`1<System.String>)", Justification = @"honglim: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.BaseResourcesBuildProvider.#.ctor()", Justification = @"tinghaoy: Internal type instantiated by config.")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.BaseResourcesBuildProvider.#GenerateStronglyTypedClass(System.Web.Compilation.AssemblyBuilder,System.Resources.IResourceReader)", Justification = @"davidebb: Should be fine to call StronglyTypedResourceBuilder here.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.BrowserCapabilitiesCompiler.#GetBrowserCapabilitiesType()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Compilation.BrowserCapabilitiesCompiler.#GetBrowserCapabilitiesType()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Compilation.BuildManager.#EnsureTopLevelFilesCompiled()", Justification = @"davidebb: It's fine in this case not to catch non Exception objects")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.BuildManager.#GetType(System.String,System.Boolean,System.Boolean)", Justification = @"davidebb: No way to pass arbitrary types.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Compilation.BuildManager.#InitializeBuildManager()", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Compilation.BuildManager.#OnWebHashFileChange(System.Object,System.Web.FileChangeEvent)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"tinghaoy: This is for debug trace message only, does not need to be localized.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.BuildManagerHost", Justification = @"davidebb: Created via appManager.CreateObject")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.BuildManagerHost.#.ctor()", Justification = @"tinghaoy: Created by CBM")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "member", Target = "System.Web.Compilation.BuildManagerHost.#ResolveAssembly(System.Object,System.ResolveEventArgs)", MessageId = "System.Reflection.Assembly.LoadFrom", Justification = @"tinghaoy: By-design.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Compilation.BuildManagerHost.#UnloadAppDomain()", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"tinghaoy: Internal trace only message doesn't have to be localized.")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Compilation.BuildManagerHostUnloadEventHandler", Justification = @"tinghaoy: No unmanaged resource allocated")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.BuildProvider.#GetCodeCompileUnit(System.Collections.IDictionary&)", MessageId = "0#", Justification = @"tmarq: ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.BuildProvider.#GetCodeCompileUnit(System.Collections.IDictionary&)", MessageId = "Pragmas", Justification = @"tmarq: ok")]
[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Compilation.BuildProvider.#GetDefaultCompilerType()", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Naming", "CA1714:FlagsEnumsShouldHavePluralNames", Scope = "type", Target = "System.Web.Compilation.FolderLevelBuildProviderAppliesTo", Justification = @"[....]: Following existing BuildProviderAppliesTo naming convention.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1714:FlagsEnumsShouldHavePluralNames", Scope = "type", Target = "System.Web.Compilation.BuildProviderAppliesTo", Justification = @"[....]: Already existed in config namespace")]
-[module: SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "type", Target = "System.Web.Compilation.BuildProviderResultFlags", Justification = @"[....]: Rule errors.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix", Scope = "type", Target = "System.Web.Compilation.BuildProviderResultFlags", Justification = @"[....]: Rule errors.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.BuildProvidersCompiler.#.ctor(System.Web.VirtualPath,System.Boolean,System.String)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.BuildProvidersCompiler.#PerformBuild()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.BuildProvidersCompiler.#ProcessBuildProviders()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Compilation.BuildResultMainCodeAssembly.#.ctor(System.Reflection.Assembly)", Justification = @"[....]: Fine in this case.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#CreateHost()", Justification = @"[....]: It's fine in this case not to catch non Exception objects")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCode(System.String,System.String,System.Collections.IDictionary&)", MessageId = "2#", Justification = @"[....]: New api consistent with other existing naming pattern.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCode(System.String,System.String,System.Collections.IDictionary&)", MessageId = "1#", Justification = @"[....]: New api consistent with other existing naming pattern.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCode(System.String,System.String,System.Collections.IDictionary&)", MessageId = "Pragmas", Justification = @"[....]: New api consistent with other existing naming pattern.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "2#", Justification = @"[....]: These methods are fine, used by ClientBuildManager")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "3#", Justification = @"[....]: These methods are fine, used by ClientBuildManager")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "4#", Justification = @"[....]: These methods are fine, used by ClientBuildManager")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "1#", Justification = @"[....]: Type names are fine.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "4#", Justification = @"[....]: Param names are fine.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "Pragmas", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "1#", Justification = @"[....]: We decided that using an out param was ok in the CBM.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "2#", Justification = @"[....]: We decided that using an out param was ok in the CBM.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "3#", Justification = @"[....]: We decided that using an out param was ok in the CBM.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "3#", Justification = @"[....]: The name is fine")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "Pragmas", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GetBrowserDefinitions()", Justification = @"[....]: An expensive call should be a method.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GetCodeDirectoryInformation(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.String&)", MessageId = "1#", Justification = @"[....]: We decided that using an out param was ok in the CBM.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GetCodeDirectoryInformation(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.String&)", MessageId = "2#", Justification = @"[....]: We decided that using an out param was ok in the CBM.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GetCodeDirectoryInformation(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.String&)", MessageId = "3#", Justification = @"[....]: Assigned to [....]")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GetCompiledType(System.String)", MessageId = "System.Reflection.Assembly.LoadFrom", Justification = @"[....]: By-design.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GetCompilerParameters(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&)", MessageId = "1#", Justification = @"[....]: We decided that using an out param was ok in the CBM.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GetCompilerParameters(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&)", MessageId = "2#", Justification = @"[....]: We decided that using an out param was ok in the CBM.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#PrecompileApplication()", Justification = @"[....]: 'Precompile' sounds like a word to me!")]
+[module: SuppressMessage("Microsoft.Naming", "CA1714:FlagsEnumsShouldHavePluralNames", Scope = "type", Target = "System.Web.Compilation.FolderLevelBuildProviderAppliesTo", Justification = @"honglim: Following existing BuildProviderAppliesTo naming convention.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1714:FlagsEnumsShouldHavePluralNames", Scope = "type", Target = "System.Web.Compilation.BuildProviderAppliesTo", Justification = @"davidebb: Already existed in config namespace")]
+[module: SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "type", Target = "System.Web.Compilation.BuildProviderResultFlags", Justification = @"phuff: Rule errors.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix", Scope = "type", Target = "System.Web.Compilation.BuildProviderResultFlags", Justification = @"phuff: Rule errors.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.BuildProvidersCompiler.#.ctor(System.Web.VirtualPath,System.Boolean,System.String)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.BuildProvidersCompiler.#PerformBuild()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.BuildProvidersCompiler.#ProcessBuildProviders()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.Compilation.BuildResultMainCodeAssembly.#.ctor(System.Reflection.Assembly)", Justification = @"davidebb: Fine in this case.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#CreateHost()", Justification = @"davidebb: It's fine in this case not to catch non Exception objects")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCode(System.String,System.String,System.Collections.IDictionary&)", MessageId = "2#", Justification = @"tinghaoy: New api consistent with other existing naming pattern.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCode(System.String,System.String,System.Collections.IDictionary&)", MessageId = "1#", Justification = @"tinghaoy: New api consistent with other existing naming pattern.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCode(System.String,System.String,System.Collections.IDictionary&)", MessageId = "Pragmas", Justification = @"tinghaoy: New api consistent with other existing naming pattern.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "2#", Justification = @"tinghaoy: These methods are fine, used by ClientBuildManager")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "3#", Justification = @"tinghaoy: These methods are fine, used by ClientBuildManager")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "4#", Justification = @"tinghaoy: These methods are fine, used by ClientBuildManager")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "1#", Justification = @"tinghaoy: Type names are fine.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "4#", Justification = @"tinghaoy: Param names are fine.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "Pragmas", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "1#", Justification = @"davidebb: We decided that using an out param was ok in the CBM.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "2#", Justification = @"davidebb: We decided that using an out param was ok in the CBM.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "3#", Justification = @"davidebb: We decided that using an out param was ok in the CBM.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "3#", Justification = @"davidebb: The name is fine")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GenerateCodeCompileUnit(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.Collections.IDictionary&)", MessageId = "Pragmas", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GetBrowserDefinitions()", Justification = @"tinghaoy: An expensive call should be a method.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GetCodeDirectoryInformation(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.String&)", MessageId = "1#", Justification = @"davidebb: We decided that using an out param was ok in the CBM.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GetCodeDirectoryInformation(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.String&)", MessageId = "2#", Justification = @"davidebb: We decided that using an out param was ok in the CBM.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GetCodeDirectoryInformation(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&,System.String&)", MessageId = "3#", Justification = @"phuff: Assigned to davidebb")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GetCompiledType(System.String)", MessageId = "System.Reflection.Assembly.LoadFrom", Justification = @"tinghaoy: By-design.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GetCompilerParameters(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&)", MessageId = "1#", Justification = @"davidebb: We decided that using an out param was ok in the CBM.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#GetCompilerParameters(System.String,System.Type&,System.CodeDom.Compiler.CompilerParameters&)", MessageId = "2#", Justification = @"davidebb: We decided that using an out param was ok in the CBM.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#PrecompileApplication()", Justification = @"davidebb: 'Precompile' sounds like a word to me!")]
[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#PrecompileApplication(System.Web.Compilation.ClientBuildManagerCallback)", MessageId = "Precompile", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#PrecompileApplication(System.Web.Compilation.ClientBuildManagerCallback,System.Boolean)", MessageId = "Precompile", Justification = @"[....]: Same namingconvention as other PrecompileApplication methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManagerParameter.#PrecompilationFlags", MessageId = "Precompilation", Justification = @"[....]: Apllings ok.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Compilation.CompilationMutex.#_mutexHandle", Justification = @"[....]: I think IntPtr is fine here.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.CompilationMutex.#get_MutexDebugName()", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Compilation.ConnectionStringsExpressionBuilder.#GetConnectionString(System.String)", MessageId = "0#", Justification = @"[....]: This is really the correct name for this")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Compilation.ConnectionStringsExpressionBuilder.#GetConnectionStringProviderName(System.String)", MessageId = "0#", Justification = @"[....]: This is really the correct name for this")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Compilation.DesignTimeResourceProviderFactoryAttribute.#IsDefaultAttribute()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Compilation.DiskBuildResultCache.#RemoveAssembly(System.IO.FileInfo)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: Literal for internal trace only")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Compilation.DiskBuildResultCache.#RemoveAssemblyAndRelatedFiles(System.String)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: Used for internal trace only.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Compilation.DiskBuildResultCache.#ShutdownCallBack(System.Object)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: This string is internal only, and does not need to be localized")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.ExpressionBuilder.#GetExpressionBuilder(System.String,System.Web.VirtualPath,System.ComponentModel.Design.IDesignerHost)", Justification = @"[....]: Was already excluded before, but reappeared due to signature change.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.ExpressionEditorAttribute.#get_EditorTypeName()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Compilation.ExpressionEditorAttribute.#Equals(System.Object)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Compilation.ExpressionEditorAttribute.#GetHashCode()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.ExpressionPrefixAttribute.#get_ExpressionPrefix()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.ForceCopyBuildProvider.#.ctor()", Justification = @"[....]: Used from config.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.Compilation.IAssemblyPostProcessor", MessageId = "PostProcessor", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.IgnoreFileBuildProvider.#.ctor()", Justification = @"[....]: It's used from config.")]
-[module: SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "member", Target = "System.Web.Compilation.ImplicitResourceKey.#Filter", Justification = @"[....]: These were previously excluded but the class changed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "member", Target = "System.Web.Compilation.ImplicitResourceKey.#KeyPrefix", Justification = @"[....]: These were previously excluded but the class changed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "member", Target = "System.Web.Compilation.ImplicitResourceKey.#Property", Justification = @"[....]: These were previously excluded but the class changed.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.InstantiateObject.#.ctor(System.Object,System.IntPtr)", Justification = @"[....]: This ctor is called through Delegate.CreateDelegate.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.IResourceProvider.#GetObject(System.String,System.Globalization.CultureInfo)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.MasterPageBuildProvider", Justification = @"[....]: This type is late bound instantiated during parse time.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.MasterPageBuildProvider.#.ctor()", Justification = @"[....]: Instantiated from config.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Compilation.MemoryBuildResultCache.#OnCacheItemRemoved(System.String,System.Object,System.Web.Caching.CacheItemRemovedReason)", MessageId = "System.Web.HttpRuntime.SetShutdownReason(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: This is only used internally.")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.MultiTargetingUtil.#CreateFrameworkName(System.String)", Justification = @"[....]: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.MultiTargetingUtil.#FrameworkNamesAreEqual(Microsoft.Build.Utilities.FrameworkName,Microsoft.Build.Utilities.FrameworkName)", Justification = @"[....]: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.MultiTargetingUtil.#GetLatestCompilerDirectoryPath()", Justification = @"[....]: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.MultiTargetingUtil.#InitializeTargetFrameworkName()", Justification = @"[....]: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.MultiTargetingUtil.#ValidateTargetFrameworkMoniker(System.String)", Justification = @"[....]: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.PageBuildProvider", Justification = @"[....]: It's referenced via config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.PageBuildProvider.#.ctor()", Justification = @"[....]: Instantiated from config.")]
-[module: SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "type", Target = "System.Web.Compilation.PrecompilationFlags", Justification = @"[....]: Rule errors.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.Compilation.PrecompilationFlags", MessageId = "Precompilation", Justification = @"[....]: Apllings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix", Scope = "type", Target = "System.Web.Compilation.PrecompilationFlags", Justification = @"[....]: Rule errors.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.ResourceExpressionBuilder.#ParseExpression(System.String)", Justification = @"[....]: Designer only code path")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.ResourceExpressionFields.#get_ClassKey()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.ResourceExpressionFields.#get_ResourceKey()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.ResourcesBuildProvider", Justification = @"[....]: It's referenced via config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.ResourcesBuildProvider.#.ctor()", Justification = @"[....]: Instantiated from config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.ResXBuildProvider", Justification = @"[....]: It's referenced via config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.ResXBuildProvider.#.ctor()", Justification = @"[....]: Instantiated from config.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.RouteUrlExpressionBuilder.#TryParseRouteExpression(System.String,System.Web.Routing.RouteValueDictionary,System.String&)", MessageId = "Params", Justification = @"[....]: by design")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.SimpleHandlerBuildProvider.#.ctor()", Justification = @"[....]: Instantiated from config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.SourceFileBuildProvider", Justification = @"[....]: It's referenced via config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.SourceFileBuildProvider.#.ctor()", Justification = @"[....]: Instantiated from config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.TemplateControlBuildProvider.#.ctor()", Justification = @"[....]: Instantiated from config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.UserControlBuildProvider.#.ctor()", Justification = @"[....]: Instantiated from config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.WebHandlerBuildProvider", Justification = @"[....]: It's referenced via config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.WebHandlerBuildProvider.#.ctor()", Justification = @"[....]: Instantiated from config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1807:AvoidUnnecessaryStringCreation", Scope = "member", Target = "System.Web.Compilation.WebReferencesBuildProvider.#GenerateCode(System.Web.Compilation.AssemblyBuilder)", MessageId = "local9", Justification = @"[....]: No big deal. Not worth changing.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.WebServiceBuildProvider", Justification = @"[....]: It's referenced via config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.WebServiceBuildProvider.#.ctor()", Justification = @"[....]: Instantiated from config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.WsdlBuildProvider", Justification = @"[....]: It's referenced via config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.WsdlBuildProvider.#.ctor()", Justification = @"[....]: Used by buildmanager")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.XsdBuildProvider", Justification = @"[....]: It's referenced via config.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.XsdBuildProvider.#.ctor()", Justification = @"[....]: Instantiated from config.")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.XsdBuildProvider.#GenerateCode(System.Web.Compilation.AssemblyBuilder)", Justification = @"[....]: Should be fine to call the TypedDataSetGenerator here.")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.AdapterDictionary", Justification = @"[....]: ICollection interface acquired through inheritance, a string strongly typed CopyTo is basically worthless for this simply convenience type.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.AnonymousIdentificationSection.#CookieRequireSSL", Justification = @"[....]: These are legacy public methods which would cause a break in customer's code if changed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.AnonymousIdentificationSection.#get_CookieRequireSSL()", Justification = @"[....]: These are legacy public methods which would cause a break in customer's code if changed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.AnonymousIdentificationSection.#set_CookieRequireSSL(System.Boolean)", Justification = @"[....]: These are legacy public methods which would cause a break in customer's code if changed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.AssemblyCollection", Justification = @"[....]: The base type is used to determine the strong type.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AssemblyCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AssemblyCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AssemblyInfo.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#Equals(System.Object)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#ExpandName(System.String)", Justification = @"[....]: Config should not be protected by link demands.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#GetHashCode()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#IsModified()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#IsTheUserInAnyRole(System.Collections.Specialized.StringCollection,System.Security.Principal.IPrincipal)", Justification = @"[....]: See bug 428265 for detail.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#PostDeserialize()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#PreSerialize(System.Xml.XmlWriter)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#Reset(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#ResetModified()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#SerializeElement(System.Xml.XmlWriter,System.Boolean)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#SetReadOnly()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#Unmerge(System.Configuration.ConfigurationElement,System.Configuration.ConfigurationElement,System.Configuration.ConfigurationSaveMode)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.AuthorizationRuleCollection", Justification = @"[....]: The base type is used to determine the strong type.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRuleCollection.#get_CollectionType()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRuleCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRuleCollection.#CreateNewElement(System.String)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRuleCollection.#get_ElementName()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRuleCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRuleCollection.#IsElementName(System.String)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesCodeGenerator.#Create()", Justification = @"[....]: The Methods require strong CAS permission than the type, therefore this is a false-positive.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesCodeGenerator.#GenerateProcessMethod(System.Web.Configuration.BrowserDefinition,System.CodeDom.CodeTypeDeclaration,System.String)", Justification = @"[....]: rule in error? String.Empty is used, but for assignment only")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesCodeGenerator.#RestartW3SVCIfNecessary()", Justification = @"[....]: This method demands Unmanaged access, therefore should be secured.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesCodeGenerator.#RestartW3SVCIfNecessary()", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesCodeGenerator.#Uninstall()", Justification = @"[....]: The Methods require strong CAS permission than the type, therefore this is a false-positive.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AlavProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Alav", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AlavProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AlazProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Alaz", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AlazProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AumicProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Aumic", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AumicProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: device identifiers")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AuspalmProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Auspalm", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AuspalmProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AvantgoProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Avantgo", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AvantgoProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#BenqathenaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Benqathena", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#BenqathenaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Benqathena", Justification = @"[....]: Generated browsercap methods.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#CasiopeiaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Casiopeia", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#CasiopeiaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#CharsetProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Charset", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#CharsetProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#DefaultXhtmlmpProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Xhtmlmp", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#DocomodefaultrenderingsizeProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Docomodefaultrenderingsize", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#DocomodefaultrenderingsizeProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: This is the correct name.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#DocomoProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Docomo", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#DocomoProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#DocomorenderingsizeProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Docomorenderingsize", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#DocomorenderingsizeProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Docomorenderingsize", Justification = @"[....]: browsercap generated methods.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#EudorawebmsieProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Eudorawebmsie", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#EudorawebmsieProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#EudorawebProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Eudoraweb", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#EudorawebProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#EzwapProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Ezwap", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#EzwapProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GatablefalseProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Gatablefalse", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GatablefalseProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GatableProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Gatable", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GatableProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GatabletrueProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Gatabletrue", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GatabletrueProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GenericdownlevelProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Genericdownlevel", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GenericdownlevelProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericanonuprimProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Goamericanonuprim", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericanonuprimProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Goamericanonuprim", Justification = @"[....]: Generated BrowserCaps methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericapalmProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Goamericapalm", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericapalmProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Goamerica", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericarimProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Goamericarim", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericarimProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericaupProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Goamericaup", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericaupProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericawinceProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Goamericawince", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericawinceProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IeaolProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Ieaol", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IeaolProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IebetaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Iebeta", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IebetaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IeProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IeProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: browser ids have two letter non-capitalized acronyms")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IeupdateProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Ieupdate", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IeupdateProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IscolorfalseProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Iscolorfalse", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IscolorfalseProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IscolorProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Iscolor", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IscolorProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IscolortrueProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Iscolortrue", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IscolortrueProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JataayuppcProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jataayuppc", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JataayuppcProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JataayuProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jataayu", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JataayuProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonecoloriscolorProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonecoloriscolor", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonecoloriscolorProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonecolorProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonecolor", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonecolorProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonedensoProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonedenso", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonedensoProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonedisplayProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonedisplay", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonedisplayProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonekenwoodProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonekenwood", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonekenwoodProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonemitsubishiProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonemitsubishi", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonemitsubishiProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonenecProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonenec", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonenecProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonepanasonicProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonepanasonic", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonepanasonicProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonepioneerProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonepioneer", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonepioneerProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphoneProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphone", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphoneProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonesanyoProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonesanyo", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonesanyoProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonesharpProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonesharp", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonesharpProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonetoshibaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonetoshiba", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonetoshibaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JtelnateProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jtelnate", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JtelnateProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MaxpagesizeProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Maxpagesize", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MaxpagesizeProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MccaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mcca", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MccaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#McccProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mccc", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#McccProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmebenefonqProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mmebenefonq", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmebenefonqProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmecellphoneProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mmecellphone", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmecellphoneProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmegenericflipProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mmegenericflip", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmegenericflipProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmegenericlargeProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mmegenericlarge", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmegenericlargeProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmegenericsmallProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mmegenericsmall", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmegenericsmallProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmemobileexplorerProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mmemobileexplorer", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmemobileexplorerProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotafProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Motaf", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotafProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotbcProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Motbc", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotbcProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotcbProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Motcb", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotcbProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotcfProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Motcf", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotcfProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotdcProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Motdc", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotdcProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotpancProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Motpanc", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotpancProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillabetaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mozillabeta", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillabetaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillafirebirdProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mozillafirebird", Justification = @"[....]: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManager.#PrecompileApplication(System.Web.Compilation.ClientBuildManagerCallback,System.Boolean)", MessageId = "Precompile", Justification = @"tinghaoy: Same namingconvention as other PrecompileApplication methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.ClientBuildManagerParameter.#PrecompilationFlags", MessageId = "Precompilation", Justification = @"phuff: Apllings ok.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Compilation.CompilationMutex.#_mutexHandle", Justification = @"davidebb: I think IntPtr is fine here.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.CompilationMutex.#get_MutexDebugName()", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Compilation.ConnectionStringsExpressionBuilder.#GetConnectionString(System.String)", MessageId = "0#", Justification = @"rodneyk: This is really the correct name for this")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Compilation.ConnectionStringsExpressionBuilder.#GetConnectionStringProviderName(System.String)", MessageId = "0#", Justification = @"rodneyk: This is really the correct name for this")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Compilation.DesignTimeResourceProviderFactoryAttribute.#IsDefaultAttribute()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Compilation.DiskBuildResultCache.#RemoveAssembly(System.IO.FileInfo)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"tinghaoy: Literal for internal trace only")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Compilation.DiskBuildResultCache.#RemoveAssemblyAndRelatedFiles(System.String)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"tinghaoy: Used for internal trace only.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Compilation.DiskBuildResultCache.#ShutdownCallBack(System.Object)", MessageId = "System.Web.HttpRuntime.ShutdownAppDomain(System.Web.ApplicationShutdownReason,System.String)", Justification = @"tmarq: This string is internal only, and does not need to be localized")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.ExpressionBuilder.#GetExpressionBuilder(System.String,System.Web.VirtualPath,System.ComponentModel.Design.IDesignerHost)", Justification = @"davidebb: Was already excluded before, but reappeared due to signature change.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.ExpressionEditorAttribute.#get_EditorTypeName()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Compilation.ExpressionEditorAttribute.#Equals(System.Object)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Compilation.ExpressionEditorAttribute.#GetHashCode()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.ExpressionPrefixAttribute.#get_ExpressionPrefix()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.ForceCopyBuildProvider.#.ctor()", Justification = @"davidebb: Used from config.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.Compilation.IAssemblyPostProcessor", MessageId = "PostProcessor", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.IgnoreFileBuildProvider.#.ctor()", Justification = @"davidebb: It's used from config.")]
+[module: SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "member", Target = "System.Web.Compilation.ImplicitResourceKey.#Filter", Justification = @"elipton: These were previously excluded but the class changed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "member", Target = "System.Web.Compilation.ImplicitResourceKey.#KeyPrefix", Justification = @"elipton: These were previously excluded but the class changed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "member", Target = "System.Web.Compilation.ImplicitResourceKey.#Property", Justification = @"elipton: These were previously excluded but the class changed.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.InstantiateObject.#.ctor(System.Object,System.IntPtr)", Justification = @"phuff: This ctor is called through Delegate.CreateDelegate.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.IResourceProvider.#GetObject(System.String,System.Globalization.CultureInfo)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.MasterPageBuildProvider", Justification = @"tinghaoy: This type is late bound instantiated during parse time.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.MasterPageBuildProvider.#.ctor()", Justification = @"davidebb: Instantiated from config.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Compilation.MemoryBuildResultCache.#OnCacheItemRemoved(System.String,System.Object,System.Web.Caching.CacheItemRemovedReason)", MessageId = "System.Web.HttpRuntime.SetShutdownReason(System.Web.ApplicationShutdownReason,System.String)", Justification = @"tmarq: This is only used internally.")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.MultiTargetingUtil.#CreateFrameworkName(System.String)", Justification = @"honglim: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.MultiTargetingUtil.#FrameworkNamesAreEqual(Microsoft.Build.Utilities.FrameworkName,Microsoft.Build.Utilities.FrameworkName)", Justification = @"honglim: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.MultiTargetingUtil.#GetLatestCompilerDirectoryPath()", Justification = @"honglim: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.MultiTargetingUtil.#InitializeTargetFrameworkName()", Justification = @"honglim: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.MultiTargetingUtil.#ValidateTargetFrameworkMoniker(System.String)", Justification = @"honglim: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.PageBuildProvider", Justification = @"davidebb: It's referenced via config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.PageBuildProvider.#.ctor()", Justification = @"davidebb: Instantiated from config.")]
+[module: SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "type", Target = "System.Web.Compilation.PrecompilationFlags", Justification = @"phuff: Rule errors.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.Compilation.PrecompilationFlags", MessageId = "Precompilation", Justification = @"phuff: Apllings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix", Scope = "type", Target = "System.Web.Compilation.PrecompilationFlags", Justification = @"phuff: Rule errors.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.ResourceExpressionBuilder.#ParseExpression(System.String)", Justification = @"davidebb: Designer only code path")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.ResourceExpressionFields.#get_ClassKey()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Compilation.ResourceExpressionFields.#get_ResourceKey()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.ResourcesBuildProvider", Justification = @"davidebb: It's referenced via config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.ResourcesBuildProvider.#.ctor()", Justification = @"davidebb: Instantiated from config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.ResXBuildProvider", Justification = @"davidebb: It's referenced via config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.ResXBuildProvider.#.ctor()", Justification = @"davidebb: Instantiated from config.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Compilation.RouteUrlExpressionBuilder.#TryParseRouteExpression(System.String,System.Web.Routing.RouteValueDictionary,System.String&)", MessageId = "Params", Justification = @"tmarq: by design")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.SimpleHandlerBuildProvider.#.ctor()", Justification = @"davidebb: Instantiated from config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.SourceFileBuildProvider", Justification = @"davidebb: It's referenced via config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.SourceFileBuildProvider.#.ctor()", Justification = @"davidebb: Instantiated from config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.TemplateControlBuildProvider.#.ctor()", Justification = @"davidebb: Instantiated from config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.UserControlBuildProvider.#.ctor()", Justification = @"davidebb: Instantiated from config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.WebHandlerBuildProvider", Justification = @"davidebb: It's referenced via config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.WebHandlerBuildProvider.#.ctor()", Justification = @"davidebb: Instantiated from config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1807:AvoidUnnecessaryStringCreation", Scope = "member", Target = "System.Web.Compilation.WebReferencesBuildProvider.#GenerateCode(System.Web.Compilation.AssemblyBuilder)", MessageId = "local9", Justification = @"davidebb: No big deal. Not worth changing.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.WebServiceBuildProvider", Justification = @"davidebb: It's referenced via config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.WebServiceBuildProvider.#.ctor()", Justification = @"davidebb: Instantiated from config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.WsdlBuildProvider", Justification = @"davidebb: It's referenced via config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.WsdlBuildProvider.#.ctor()", Justification = @"tinghaoy: Used by buildmanager")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Compilation.XsdBuildProvider", Justification = @"davidebb: It's referenced via config.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Compilation.XsdBuildProvider.#.ctor()", Justification = @"davidebb: Instantiated from config.")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Compilation.XsdBuildProvider.#GenerateCode(System.Web.Compilation.AssemblyBuilder)", Justification = @"davidebb: Should be fine to call the TypedDataSetGenerator here.")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.AdapterDictionary", Justification = @"mattgi: ICollection interface acquired through inheritance, a string strongly typed CopyTo is basically worthless for this simply convenience type.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.AnonymousIdentificationSection.#CookieRequireSSL", Justification = @"rodneyk: These are legacy public methods which would cause a break in customer's code if changed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.AnonymousIdentificationSection.#get_CookieRequireSSL()", Justification = @"rodneyk: These are legacy public methods which would cause a break in customer's code if changed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.AnonymousIdentificationSection.#set_CookieRequireSSL(System.Boolean)", Justification = @"rodneyk: These are legacy public methods which would cause a break in customer's code if changed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.AssemblyCollection", Justification = @"rodneyk: The base type is used to determine the strong type.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AssemblyCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AssemblyCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AssemblyInfo.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#Equals(System.Object)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#ExpandName(System.String)", Justification = @"phuff: Config should not be protected by link demands.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#GetHashCode()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#IsModified()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#IsTheUserInAnyRole(System.Collections.Specialized.StringCollection,System.Security.Principal.IPrincipal)", Justification = @"minglu: See bug 428265 for detail.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#PostDeserialize()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#PreSerialize(System.Xml.XmlWriter)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#Reset(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#ResetModified()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#SerializeElement(System.Xml.XmlWriter,System.Boolean)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#SetReadOnly()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRule.#Unmerge(System.Configuration.ConfigurationElement,System.Configuration.ConfigurationElement,System.Configuration.ConfigurationSaveMode)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.AuthorizationRuleCollection", Justification = @"rodneyk: The base type is used to determine the strong type.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRuleCollection.#get_CollectionType()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRuleCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRuleCollection.#CreateNewElement(System.String)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRuleCollection.#get_ElementName()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRuleCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.AuthorizationRuleCollection.#IsElementName(System.String)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesCodeGenerator.#Create()", Justification = @"tinghaoy: The Methods require strong CAS permission than the type, therefore this is a false-positive.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesCodeGenerator.#GenerateProcessMethod(System.Web.Configuration.BrowserDefinition,System.CodeDom.CodeTypeDeclaration,System.String)", Justification = @"mattgi: rule in error? String.Empty is used, but for assignment only")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesCodeGenerator.#RestartW3SVCIfNecessary()", Justification = @"tinghaoy: This method demands Unmanaged access, therefore should be secured.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesCodeGenerator.#RestartW3SVCIfNecessary()", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesCodeGenerator.#Uninstall()", Justification = @"tinghaoy: The Methods require strong CAS permission than the type, therefore this is a false-positive.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AlavProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Alav", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AlavProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AlazProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Alaz", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AlazProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AumicProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Aumic", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AumicProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: device identifiers")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AuspalmProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Auspalm", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AuspalmProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AvantgoProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Avantgo", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#AvantgoProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#BenqathenaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Benqathena", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#BenqathenaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Benqathena", Justification = @"tinghaoy: Generated browsercap methods.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#CasiopeiaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Casiopeia", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#CasiopeiaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#CharsetProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Charset", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#CharsetProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#DefaultXhtmlmpProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Xhtmlmp", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#DocomodefaultrenderingsizeProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Docomodefaultrenderingsize", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#DocomodefaultrenderingsizeProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"andlin: This is the correct name.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#DocomoProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Docomo", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#DocomoProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#DocomorenderingsizeProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Docomorenderingsize", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#DocomorenderingsizeProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Docomorenderingsize", Justification = @"tinghaoy: browsercap generated methods.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#EudorawebmsieProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Eudorawebmsie", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#EudorawebmsieProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"tinghaoy: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#EudorawebProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Eudoraweb", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#EudorawebProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#EzwapProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Ezwap", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#EzwapProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"tinghaoy: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GatablefalseProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Gatablefalse", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GatablefalseProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GatableProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Gatable", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GatableProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GatabletrueProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Gatabletrue", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GatabletrueProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GenericdownlevelProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Genericdownlevel", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GenericdownlevelProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericanonuprimProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Goamericanonuprim", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericanonuprimProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Goamericanonuprim", Justification = @"tinghaoy: Generated BrowserCaps methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericapalmProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Goamericapalm", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericapalmProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Goamerica", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericarimProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Goamericarim", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericarimProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericaupProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Goamericaup", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericaupProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"tinghaoy: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericawinceProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Goamericawince", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#GoamericawinceProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IeaolProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Ieaol", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IeaolProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IebetaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Iebeta", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IebetaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IeProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IeProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: browser ids have two letter non-capitalized acronyms")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IeupdateProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Ieupdate", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IeupdateProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IscolorfalseProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Iscolorfalse", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IscolorfalseProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IscolorProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Iscolor", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IscolorProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IscolortrueProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Iscolortrue", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#IscolortrueProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JataayuppcProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jataayuppc", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JataayuppcProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"tinghaoy: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JataayuProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jataayu", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JataayuProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"tinghaoy: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonecoloriscolorProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonecoloriscolor", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonecoloriscolorProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonecolorProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonecolor", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonecolorProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonedensoProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonedenso", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonedensoProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonedisplayProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonedisplay", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonedisplayProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonekenwoodProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonekenwood", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonekenwoodProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonemitsubishiProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonemitsubishi", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonemitsubishiProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonenecProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonenec", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonenecProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonepanasonicProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonepanasonic", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonepanasonicProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonepioneerProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonepioneer", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonepioneerProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphoneProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphone", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphoneProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonesanyoProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonesanyo", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonesanyoProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonesharpProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonesharp", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonesharpProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonetoshibaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jphonetoshiba", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JphonetoshibaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JtelnateProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Jtelnate", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#JtelnateProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"tinghaoy: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MaxpagesizeProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Maxpagesize", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MaxpagesizeProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MccaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mcca", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MccaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#McccProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mccc", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#McccProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmebenefonqProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mmebenefonq", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmebenefonqProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmecellphoneProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mmecellphone", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmecellphoneProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmegenericflipProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mmegenericflip", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmegenericflipProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmegenericlargeProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mmegenericlarge", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmegenericlargeProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmegenericsmallProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mmegenericsmall", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmegenericsmallProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmemobileexplorerProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mmemobileexplorer", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MmemobileexplorerProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotafProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Motaf", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotafProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotbcProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Motbc", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotbcProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotcbProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Motcb", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotcbProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotcfProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Motcf", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotcfProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotdcProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Motdc", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotdcProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotpancProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Motpanc", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MotpancProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillabetaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mozillabeta", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillabetaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillafirebirdProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mozillafirebird", Justification = @"tinghaoy: BrowserCap generated code.")]
[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillafirebirdProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mozillafirebird", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillafirefoxProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mozillafirefox", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillafirefoxProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mozillafirefox", Justification = @"[....]: Spelling ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillagoldProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mozillagold", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillagoldProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mozilla", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillarvProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mozillarv", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillarvProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MspieProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mspie", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MspieProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MypalmProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mypalm", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MypalmProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NetfrontProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Netfront", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NetfrontProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: device identifiers")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NetscapebetaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Netscapebeta", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NetscapebetaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiablueprintProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Nokiablueprint", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiablueprintProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiagatewayProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Nokiagateway", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiagatewayProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiamobilebrowserProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Nokiamobilebrowser", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiamobilebrowserProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiamobilebrowserrainbowProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Nokiamobilebrowserrainbow", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiamobilebrowserrainbowProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiawapsimulatorProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Nokiawapsimulator", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiawapsimulatorProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#OperamobilebrowserProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Operamobilebrowser", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#OperamobilebrowserProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Operamobilebrowser", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#OperamobileProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Operamobile", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#OperamobileProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Operamobile", Justification = @"[....]: Method names auto-generated by BrowserCaps")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#OperapsionProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Operapsion", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#OperapsionProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#OpwvsdkProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Opwvsdk", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#OpwvsdkProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PalmscapeProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Palmscape", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PalmscapeProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PalmscapeversionProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Palmscapeversion", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PalmscapeversionProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PalmwebproProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Palmwebpro", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PalmwebproProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids, not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PanasonicexchangesupporteddeviceProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Panasonicexchangesupporteddevice", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PanasonicexchangesupporteddeviceProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PdqbrowserProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Pdqbrowser", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PdqbrowserProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PienodeviceidProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Pienodeviceid", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PienodeviceidProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PieppcProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Pieppc", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PieppcProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PiescreenbitdepthProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Piescreenbitdepth", Justification = @"[....]: These are browsercap generated methods.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PiescreenbitdepthProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Piescreenbitdepth", Justification = @"[....]: These are browsercap generated methods.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PiesmartphoneProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Piesmartphone", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PiesmartphoneProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformmacppcProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Platformmacppc", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformmacppcProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformunixProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Platformunix", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformunixProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwebtvProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Platformwebtv", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwebtvProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwinceProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Platformwince", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwinceProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1302:DoNotHardcodeLocaleSpecificStrings", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwinntProcess(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "WinNT", Justification = @"[....]: Platform string for generated browser caps factory.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwinntProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Platformwinnt", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwinntProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwinxpProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Platformwinxp", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwinxpProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PowerbrowserProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Powerbrowser", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PowerbrowserProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PpatProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Ppat", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PpatProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SharppdaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sharppda", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SharppdaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#ShProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sh", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#ShProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#ShProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#ShProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: browser ids have two letter non-capitalized acronyms")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicescolordepthProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicescolordepth", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicescolordepthProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicescolordepth", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesericssonProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesericsson", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesericssonProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesericsson", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdeviceshanhwaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdeviceshanhwa", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdeviceshanhwaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdeviceshanhwa", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdeviceshyundaiProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdeviceshyundai", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdeviceshyundaiProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdeviceshyundai", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesiscolorProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesiscolor", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesiscolorProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesiscolor", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesjtelProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesjtel", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesjtelProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesjtel", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdeviceslgProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdeviceslg", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdeviceslgProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdeviceslg", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesmotorolaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesmotorola", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesmotorolaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesmotorola", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesnokiaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesnokia", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesnokiaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesnokia", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevices", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevices", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicessamsungProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicessamsung", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicessamsungProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicessamsung", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesscreencolumnProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesscreencolumn", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesscreencolumnProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesscreencolumn", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesscreenheightProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesscreenheight", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesscreenheightProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesscreenheight", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesscreenrowProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesscreenrow", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesscreenrowProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesscreenrow", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesscreenwidthProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesscreenwidth", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesscreenwidthProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesscreenwidth", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesskttProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicessktt", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesskttProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicessktt", Justification = @"[....]: BrowserCap generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SonyericssonProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sonyericsson", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SonyericssonProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#TmobilesidekickProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Tmobilesidekick", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#TmobilesidekickProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids, not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpdefaultscreencharactersProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Updefaultscreencharacters", Justification = @"[....]: browsercaps generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpdefaultscreencharactersProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Updefaultscreencharacters", Justification = @"[....]: browsercaps generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpdefaultscreenpixelsProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Updefaultscreenpixels", Justification = @"[....]: browsercaps generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpdefaultscreenpixelsProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Updefaultscreenpixels", Justification = @"[....]: browsercaps generated methods")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpgatewayProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upgateway", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpgatewayProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpmaxpduProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upmaxpdu", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpmaxpduProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upmaxpdu", Justification = @"[....]: browsercap generated methods.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpmsizeProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upmsize", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpmsizeProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upmsize", Justification = @"[....]: BrowserCap generated methods.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpnongogatewayProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upnongogateway", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpnongogatewayProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpnumsoftkeysProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upnumsoftkeys", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpnumsoftkeysProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upnumsoftkeys", Justification = @"[....]: browsercap generated methods.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpscreencharsProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upscreenchars", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpscreencharsProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upscreenchars", Justification = @"[....]: browsercap generated methods.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpscreendepthProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upscreendepth", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpscreendepthProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upscreendepth", Justification = @"[....]: BrowserCap generated methods.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpscreenpixelsProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upscreenpixels", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpscreenpixelsProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upscreenpixels", Justification = @"[....]: browsercap generated methods.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpsoftkeysizeProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upsoftkeysize", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpsoftkeysizeProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upsoftkeysize", Justification = @"[....]: BrowserCap generated methods.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpversionProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upversion", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpversionProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#VrnaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Vrna", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#VrnaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: device identifiers")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#WebtvbetaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Webtvbeta", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#WebtvbetaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#WinwapProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Winwap", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#WinwapProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#XeniumProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Xenium", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#XeniumProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#XiinoProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Xiino", Justification = @"[....]: BrowserCap generated code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#XiinoProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"[....]: methods are generated from browser ids and are not in the dictionary")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.BrowserDefinitionCollection", Justification = @"[....]: The base type determines the strong type")]
-[module: SuppressMessage("Microsoft.Design", "CA1039:ListsAreStronglyTyped", Scope = "type", Target = "System.Web.Configuration.BrowserDefinitionCollection", Justification = @"[....]: The base type is used to determine the strong type")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BufferModesCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BufferModesCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BufferModeSettings.#get_ElementProperty()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BufferModeSettings.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BuildProvider.#Equals(System.Object)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BuildProvider.#GetHashCode()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BuildProvider.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.BuildProviderCollection", Justification = @"[....]: The base type is used to determine the strong type.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BuildProviderCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BuildProviderCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.Configuration.CheckPair.#.ctor(System.String,System.String)", MessageId = "System.Text.RegularExpressions.Regex", Justification = @"[....]: A Regex is constructed for the side effect of checking the validity of the match string.")]
-[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.Configuration.CheckPair.#.ctor(System.String,System.String,System.Boolean)", MessageId = "System.Text.RegularExpressions.Regex", Justification = @"[....]: Create an instance of Regex to validate the parameters at parse time.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ClientTarget.#get_Properties()", Justification = @"[....]: Classes we don't own can't be changed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.ClientTargetCollection.#Add(System.Web.Configuration.ClientTarget)", MessageId = "0#", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.ClientTargetCollection.#AllKeys", Justification = @"[....]: These return an array from the base class, which is copied fresh with each call.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ClientTargetCollection.#CreateNewElement()", Justification = @"[....]: Classes we don't own can't be changed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ClientTargetCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Classes we don't own can't be changed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.ClientTargetCollection.#Remove(System.Web.Configuration.ClientTarget)", MessageId = "0#", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Configuration.COAUTHIDENTITY", Justification = @"[....]: will be used later")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.COAUTHINFO.#authidentitydata", Justification = @"[....]: COM Interop definitions")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.COAUTHINFO_X64.#authidentitydata", Justification = @"[....]: Excluding for checkin to unblock BMB until Manu has a chance to look at them, and either fix or update the exlusion reason.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.Configuration.CodeSubDirectoriesCollection", MessageId = "SubDirectories", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.CodeSubDirectoriesCollection.#Add(System.Web.Configuration.CodeSubDirectory)", MessageId = "SubDirectory", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CodeSubDirectoriesCollection.#get_CollectionType()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CodeSubDirectoriesCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CodeSubDirectoriesCollection.#get_ElementName()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CodeSubDirectoriesCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.Configuration.CodeSubDirectory", MessageId = "SubDirectory", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CodeSubDirectory.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.CompilationSection.#AssemblyPostProcessorType", MessageId = "PostProcessor", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.CompilationSection.#CodeSubDirectories", MessageId = "SubDirectories", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.CompilationSection.#EnsureReferenceSet()", Justification = @"[....]: Config should not be protected by link demands.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CompilationSection.#GetRuntimeObject()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.CompilationSection.#LoadAssemblyHelper(System.String,System.Boolean)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.CompilationSection.#NumRecompilesBeforeAppRestart", MessageId = "Num", Justification = @"[....]: 'Num' must be preserved for back compat with Everett.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.CompilationSection.#UrlLinePragmas", Justification = @"[....]: ""Pragmas"" is spelled correctly.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1724:TypeNamesShouldNotMatchNamespaces", Scope = "type", Target = "System.Web.Configuration.Compiler", Justification = @"[....]: Too large of a breaking change.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.Compiler.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.CompilerCollection", Justification = @"[....]: The base type is used to determine the strong type.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.CompilerCollection.#AllKeys", Justification = @"[....]: This is designed behavior mimicking AllKeys in other collections")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CompilerCollection.#get_CollectionType()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CompilerCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CompilerCollection.#get_ElementName()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CompilerCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Configuration.ConfigsHelper", Justification = @"[....]: It's a helper class")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.ConfigUtil.#GetType(System.String,System.String,System.Configuration.ConfigurationElement)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.COSERVERINFO.#authinfo", Justification = @"[....]: COM Interop definitions")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.COSERVERINFO_X64.#authinfo", Justification = @"[....]: Excluding for checkin to unblock BMB until Manu has a chance to look at them, and either fix or update the exlusion reason.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CustomError.#Equals(System.Object)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CustomError.#GetHashCode()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CustomError.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.CustomErrorCollection", Justification = @"[....]: The base type is used to determine the strong type.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.CustomErrorCollection.#AllKeys", Justification = @"[....]: This is the designed behavior.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CustomErrorCollection.#get_CollectionType()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CustomErrorCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CustomErrorCollection.#get_ElementName()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CustomErrorCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CustomErrorsSection.#DeserializeSection(System.Xml.XmlReader)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.EventMappingSettings.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.EventMappingSettingsCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.EventMappingSettingsCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ExpressionBuilder.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ExpressionBuilderCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ExpressionBuilderCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationConfiguration.#DefaultUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationConfiguration.#get_ElementProperty()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationConfiguration.#LoginUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationConfiguration.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationConfiguration.#RequireSSL", Justification = @"[....]: Previously excluded but the class name changed")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationConfiguration.#get_RequireSSL()", Justification = @"[....]: This was previously excluded but the class name changed")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationConfiguration.#set_RequireSSL(System.Boolean)", Justification = @"[....]: This was previously excluded. The class name changed")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationConfiguration.#Validate(System.Object)", Justification = @"[....]: The parameter name 'value' is not helpful to the consumer of the message. The name of the section or element that 'value' represents is much more helpful.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationCredentials.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationUser.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.FormsAuthenticationUserCollection", Justification = @"[....]: The base type is used to determine the strong type.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationUserCollection.#AllKeys", Justification = @"[....]: This is designed behavior mimicking AllKeys in other collections")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationUserCollection.#get_CollectionType()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationUserCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationUserCollection.#get_ElementName()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationUserCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationUserCollection.#get_ThrowOnDuplicate()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.Configuration.GlobalizationSection.#CheckCulture(System.String)", MessageId = "System.Globalization.CultureInfo", Justification = @"[....]: An object is created for its side effect of throwing an exception if the object is invalid. Nothing need be done with the object.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.HandlerBase.#GetAndRemoveIntegerAttributeInternal(System.Xml.XmlNode,System.String,System.Boolean,System.Int32&)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.HandlerBase.#GetAndRemoveTypeAttributeInternal(System.Xml.XmlNode,System.String,System.Boolean,System.Type&)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "member", Target = "System.Web.Configuration.HealthMonitoringSectionHelper.#_cachedMatchedRules", Justification = @"[....]: We want to use a fixed size multidimensional table to lookup results.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "member", Target = "System.Web.Configuration.HealthMonitoringSectionHelper.#FindFiringRuleInfos(System.Type,System.Int32)", Justification = @"[....]: Multi-dimensional array is intentionally used for performance.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.HealthMonitoringSectionHelper.#InitCustomEvaluator(System.Web.Configuration.HealthMonitoringSectionHelper+RuleInfo)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#Adapters", Justification = @"[....]: This is the designed intent to allow the caller to provide its own collection")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#AOL", Justification = @"[....]: These are legacy public methods which would cause a break in customer's code if changed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#get_AOL()", Justification = @"[....]: These are legacy public methods which would cause a break in customer's code if changed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#CanRenderOneventAndPrevElementsTogether", Justification = @"[....]: browser capabilities not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#CanRenderSetvarZeroWithMultiSelectionList", Justification = @"[....]: browser capabilities not in the dictionary")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#Capabilities", Justification = @"[....]: This is the designed intent to allow the user to provide its own collection.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#CDF", Justification = @"[....]: These are legacy public methods which would cause a break in customer's code if changed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#get_CDF()", Justification = @"[....]: These are legacy public methods which would cause a break in customer's code if changed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#EcmaScriptVersion", Justification = @"[....]: browser capabilities not in the dictionary")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#GetConfigCapabilities(System.String,System.Web.HttpRequest)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#GetConfigCapabilities(System.String,System.Web.HttpRequest)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#GetConfigCapabilities(System.String,System.Web.HttpRequest)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#HidesRightAlignedMultiselectScrollbars", MessageId = "Scrollbars", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#HidesRightAlignedMultiselectScrollbars", Justification = @"[....]: browser capabilities not in the dictionary")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#get_Id()", Justification = @"[....]: Id only accessed when HttpContext is available, which is only in our the LinkDemand would succeed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#get_Item(System.String)", Justification = @"[....]: Item is only accessed when HttpContext is available, which is the same set of conditions as when the LinkDemand is present.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#get_MaximumRenderedPageSize()", Justification = @"[....]: IFormatProviders not passed for parsing browserCaps params from config")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#MaximumSoftkeyLabelLength", MessageId = "Softkey", Justification = @"[....]: Spelling ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#NumberOfSoftkeys", MessageId = "Softkeys", Justification = @"[....]: Spelling ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#RequiresDBCSCharacter", Justification = @"[....]: These are legacy public methods which would cause a break in customer's code if changed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#get_RequiresDBCSCharacter()", Justification = @"[....]: These are legacy public methods which would cause a break in customer's code if changed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#RequiresPhoneNumbersAsPlainText", MessageId = "PlainText", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#RequiresUniqueHtmlCheckboxNames", MessageId = "Checkbox", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#RequiresUrlEncodedPostfieldValues", Justification = @"[....]: browser capabilities not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#SupportsAccesskeyAttribute", Justification = @"[....]: browser capabilities not in the dictionary")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#SupportsJPhoneMultiMediaAttributes", MessageId = "MultiMedia", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#System.Web.UI.IFilterResolutionService.CompareFilters(System.String,System.String)", Justification = @"[....]: These are not meant to be overridden.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#System.Web.UI.IFilterResolutionService.EvaluateFilter(System.String)", Justification = @"[....]: These are not meant to be overridden.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#get_TagWriter()", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Configuration.HttpCapabilitiesSectionHandler", Justification = @"[....]: Config section handlers are used.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesSectionHandler.#.ctor()", Justification = @"[....]: An instance of this class is created via reflection.")]
-[module: SuppressMessage("Microsoft.Design", "CA1059:MembersShouldNotExposeCertainConcreteTypes", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesSectionHandler.#Create(System.Object,System.Object,System.Xml.XmlNode)", MessageId = "System.Xml.XmlNode", Justification = @"[....]: Breaking change")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesSectionHandler.#Create(System.Object,System.Object,System.Xml.XmlNode)", Justification = @"[....]: Classes we don't own can't be changed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesSectionHandler.#ResolveFiles(System.Web.Configuration.HttpCapabilitiesSectionHandler+ParseState,System.Object)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesSectionHandler.#RuleFromElement(System.Web.Configuration.HttpCapabilitiesSectionHandler+ParseState,System.Xml.XmlNode)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.HttpConfigurationSystem.#GetSection(System.String)", Justification = @"[....]: Config should not be protected by a link demand.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCookiesSection.#RequireSSL", Justification = @"[....]: These are legacy public methods which would cause a break in customer's code if changed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCookiesSection.#get_RequireSSL()", Justification = @"[....]: These are legacy public methods which would cause a break in customer's code if changed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCookiesSection.#set_RequireSSL(System.Boolean)", Justification = @"[....]: These are legacy public methods which would cause a break in customer's code if changed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpHandlerAction.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpHandlerActionCollection.#get_CollectionType()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpHandlerActionCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpHandlerActionCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpHandlerActionCollection.#get_ThrowOnDuplicate()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpModuleAction.#get_ElementProperty()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpModuleAction.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpModuleAction.#Validate(System.Object)", Justification = @"[....]: The parameter name 'value' is not helpful to the consumer of the message. The name of the section or element that 'value' represents is much more helpful.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpModuleActionCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpModuleActionCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpModuleActionCollection.#IsElementRemovable(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpRuntimeSection.#UseFullyQualifiedRedirectUrl", MessageId = "UseFully", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2221:FinalizersShouldBeProtected", Scope = "member", Target = "System.Web.Configuration.IAssemblyName.#Finalize()", Justification = @"[....]: This is com interface, not actual implementation.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetAppPathForPath(System.String,System.String)", MessageId = "0#", Justification = @"[....]: reviewed and excluded in beta2lhsd")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetDefaultSiteNameAndID(System.String&,System.String&)", MessageId = "0#", Justification = @"[....]: These are interfaces that interop with COM classic. Out params are easier.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetDefaultSiteNameAndID(System.String&,System.String&)", MessageId = "1#", Justification = @"[....]: These are interfaces that interop with COM classic. Out params are easier.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetDefaultSiteNameAndID(System.String&,System.String&)", Justification = @"[....]: In System.Web, we use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetDefaultSiteNameAndID(System.String&,System.String&)", MessageId = "1#", Justification = @"[....]: In System.Web, we use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetMachineConfigFilename()", MessageId = "Filename", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting that change to rtmlhs")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetMachineConfigFilename()", Justification = @"[....]: This interface has a native counterpart, so using a method here is better.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetPathConfigFilename(System.String,System.String,System.String&,System.String&)", MessageId = "2#", Justification = @"[....]: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetPathConfigFilename(System.String,System.String,System.String&,System.String&)", MessageId = "3#", Justification = @"[....]: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetPathConfigFilename(System.String,System.String,System.String&,System.String&)", MessageId = "Filename", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting that change to rtmlhs")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetPathConfigFilename(System.String,System.String,System.String&,System.String&)", MessageId = "0#", Justification = @"[....]: reviewed and excluded in beta2lhsd")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetRootWebConfigFilename()", MessageId = "Filename", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting that change to rtmlhs")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetRootWebConfigFilename()", Justification = @"[....]: This interface is exposed to COM, so it is more consistent across native and managed code to have a single method name.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#MapPath(System.String,System.String)", MessageId = "0#", Justification = @"[....]: reviewed and excluded in beta2lhsd")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#ResolveSiteArgument(System.String,System.String&,System.String&)", MessageId = "1#", Justification = @"[....]: These are interfaces that interop with COM classic. Out params are easier.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#ResolveSiteArgument(System.String,System.String&,System.String&)", MessageId = "2#", Justification = @"[....]: These are interfaces that interop with COM classic. Out params are easier.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#ResolveSiteArgument(System.String,System.String&,System.String&)", MessageId = "2#", Justification = @"[....]: In System.Web, we use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.IdentitySection.#GetRuntimeObject()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Configuration.IdentitySection.#ValidateCredentials()", MessageId = "System.Configuration.ConfigurationPropertyException.#ctor(System.String,System.String,System.String,System.Int32)", Justification = @"[....]: literal is a parameter name and will not be localized")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.ImpersonateTokenRef.#_handle", Justification = @"[....]: This class was moved verbatum to the Section API file. I am leaving it exactly as I encounted it to minimize any impact in the conversion to using the Management API.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillafirefoxProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mozillafirefox", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillafirefoxProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mozillafirefox", Justification = @"phuff: Spelling ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillagoldProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mozillagold", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillagoldProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mozilla", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillarvProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mozillarv", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MozillarvProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"tinghaoy: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MspieProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mspie", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MspieProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MypalmProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Mypalm", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#MypalmProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NetfrontProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Netfront", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NetfrontProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: device identifiers")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NetscapebetaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Netscapebeta", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NetscapebetaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiablueprintProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Nokiablueprint", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiablueprintProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiagatewayProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Nokiagateway", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiagatewayProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiamobilebrowserProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Nokiamobilebrowser", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiamobilebrowserProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiamobilebrowserrainbowProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Nokiamobilebrowserrainbow", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiamobilebrowserrainbowProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiawapsimulatorProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Nokiawapsimulator", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#NokiawapsimulatorProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#OperamobilebrowserProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Operamobilebrowser", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#OperamobilebrowserProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Operamobilebrowser", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#OperamobileProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Operamobile", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#OperamobileProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Operamobile", Justification = @"ftse: Method names auto-generated by BrowserCaps")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#OperapsionProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Operapsion", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#OperapsionProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"tinghaoy: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#OpwvsdkProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Opwvsdk", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#OpwvsdkProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"tinghaoy: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PalmscapeProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Palmscape", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PalmscapeProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PalmscapeversionProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Palmscapeversion", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PalmscapeversionProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PalmwebproProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Palmwebpro", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PalmwebproProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"tinghaoy: methods are generated from browser ids, not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PanasonicexchangesupporteddeviceProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Panasonicexchangesupporteddevice", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PanasonicexchangesupporteddeviceProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"tinghaoy: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PdqbrowserProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Pdqbrowser", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PdqbrowserProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PienodeviceidProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Pienodeviceid", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PienodeviceidProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PieppcProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Pieppc", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PieppcProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PiescreenbitdepthProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Piescreenbitdepth", Justification = @"tinghaoy: These are browsercap generated methods.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PiescreenbitdepthProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Piescreenbitdepth", Justification = @"tinghaoy: These are browsercap generated methods.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PiesmartphoneProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Piesmartphone", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PiesmartphoneProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformmacppcProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Platformmacppc", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformmacppcProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformunixProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Platformunix", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformunixProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwebtvProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Platformwebtv", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwebtvProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwinceProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Platformwince", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwinceProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1302:DoNotHardcodeLocaleSpecificStrings", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwinntProcess(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "WinNT", Justification = @"phuff: Platform string for generated browser caps factory.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwinntProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Platformwinnt", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwinntProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwinxpProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Platformwinxp", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PlatformwinxpProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PowerbrowserProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Powerbrowser", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PowerbrowserProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PpatProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Ppat", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#PpatProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SharppdaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sharppda", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SharppdaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#ShProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sh", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#ShProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#ShProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#ShProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: browser ids have two letter non-capitalized acronyms")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicescolordepthProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicescolordepth", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicescolordepthProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicescolordepth", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesericssonProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesericsson", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesericssonProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesericsson", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdeviceshanhwaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdeviceshanhwa", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdeviceshanhwaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdeviceshanhwa", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdeviceshyundaiProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdeviceshyundai", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdeviceshyundaiProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdeviceshyundai", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesiscolorProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesiscolor", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesiscolorProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesiscolor", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesjtelProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesjtel", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesjtelProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesjtel", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdeviceslgProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdeviceslg", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdeviceslgProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdeviceslg", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesmotorolaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesmotorola", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesmotorolaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesmotorola", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesnokiaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesnokia", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesnokiaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesnokia", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevices", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevices", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicessamsungProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicessamsung", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicessamsungProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicessamsung", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesscreencolumnProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesscreencolumn", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesscreencolumnProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesscreencolumn", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesscreenheightProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesscreenheight", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesscreenheightProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesscreenheight", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesscreenrowProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesscreenrow", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesscreenrowProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesscreenrow", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesscreenwidthProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesscreenwidth", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesscreenwidthProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicesscreenwidth", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesskttProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicessktt", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SktdevicesskttProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sktdevicessktt", Justification = @"tinghaoy: BrowserCap generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SonyericssonProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Sonyericsson", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#SonyericssonProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"tinghaoy: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#TmobilesidekickProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Tmobilesidekick", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#TmobilesidekickProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"tinghaoy: methods are generated from browser ids, not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpdefaultscreencharactersProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Updefaultscreencharacters", Justification = @"tinghaoy: browsercaps generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpdefaultscreencharactersProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Updefaultscreencharacters", Justification = @"tinghaoy: browsercaps generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpdefaultscreenpixelsProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Updefaultscreenpixels", Justification = @"tinghaoy: browsercaps generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpdefaultscreenpixelsProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Updefaultscreenpixels", Justification = @"tinghaoy: browsercaps generated methods")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpgatewayProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upgateway", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpgatewayProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpmaxpduProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upmaxpdu", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpmaxpduProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upmaxpdu", Justification = @"tinghaoy: browsercap generated methods.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpmsizeProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upmsize", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpmsizeProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upmsize", Justification = @"tinghaoy: BrowserCap generated methods.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpnongogatewayProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upnongogateway", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpnongogatewayProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpnumsoftkeysProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upnumsoftkeys", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpnumsoftkeysProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upnumsoftkeys", Justification = @"tinghaoy: browsercap generated methods.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpscreencharsProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upscreenchars", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpscreencharsProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upscreenchars", Justification = @"tinghaoy: browsercap generated methods.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpscreendepthProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upscreendepth", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpscreendepthProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upscreendepth", Justification = @"tinghaoy: BrowserCap generated methods.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpscreenpixelsProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upscreenpixels", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpscreenpixelsProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upscreenpixels", Justification = @"tinghaoy: browsercap generated methods.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpsoftkeysizeProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upsoftkeysize", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpsoftkeysizeProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upsoftkeysize", Justification = @"tinghaoy: BrowserCap generated methods.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpversionProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Upversion", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#UpversionProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#VrnaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Vrna", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#VrnaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: device identifiers")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#WebtvbetaProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Webtvbeta", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#WebtvbetaProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#WinwapProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Winwap", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#WinwapProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"tinghaoy: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#XeniumProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Xenium", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#XeniumProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#XiinoProcessBrowsers(System.Boolean,System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", MessageId = "Xiino", Justification = @"tinghaoy: BrowserCap generated code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.BrowserCapabilitiesFactory.#XiinoProcessGateways(System.Collections.Specialized.NameValueCollection,System.Web.HttpBrowserCapabilities)", Justification = @"mattgi: methods are generated from browser ids and are not in the dictionary")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.BrowserDefinitionCollection", Justification = @"rodneyk: The base type determines the strong type")]
+[module: SuppressMessage("Microsoft.Design", "CA1039:ListsAreStronglyTyped", Scope = "type", Target = "System.Web.Configuration.BrowserDefinitionCollection", Justification = @"rodneyk: The base type is used to determine the strong type")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BufferModesCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BufferModesCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BufferModeSettings.#get_ElementProperty()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BufferModeSettings.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BuildProvider.#Equals(System.Object)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BuildProvider.#GetHashCode()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BuildProvider.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.BuildProviderCollection", Justification = @"rodneyk: The base type is used to determine the strong type.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BuildProviderCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.BuildProviderCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.Configuration.CheckPair.#.ctor(System.String,System.String)", MessageId = "System.Text.RegularExpressions.Regex", Justification = @"adams: A Regex is constructed for the side effect of checking the validity of the match string.")]
+[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.Configuration.CheckPair.#.ctor(System.String,System.String,System.Boolean)", MessageId = "System.Text.RegularExpressions.Regex", Justification = @"tinghaoy: Create an instance of Regex to validate the parameters at parse time.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ClientTarget.#get_Properties()", Justification = @"phuff: Classes we don't own can't be changed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.ClientTargetCollection.#Add(System.Web.Configuration.ClientTarget)", MessageId = "0#", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.ClientTargetCollection.#AllKeys", Justification = @"phuff: These return an array from the base class, which is copied fresh with each call.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ClientTargetCollection.#CreateNewElement()", Justification = @"phuff: Classes we don't own can't be changed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ClientTargetCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Classes we don't own can't be changed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.ClientTargetCollection.#Remove(System.Web.Configuration.ClientTarget)", MessageId = "0#", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Configuration.COAUTHIDENTITY", Justification = @"manuva: will be used later")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.COAUTHINFO.#authidentitydata", Justification = @"manuva: COM Interop definitions")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.COAUTHINFO_X64.#authidentitydata", Justification = @"cachille: Excluding for checkin to unblock BMB until Manu has a chance to look at them, and either fix or update the exlusion reason.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.Configuration.CodeSubDirectoriesCollection", MessageId = "SubDirectories", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.CodeSubDirectoriesCollection.#Add(System.Web.Configuration.CodeSubDirectory)", MessageId = "SubDirectory", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CodeSubDirectoriesCollection.#get_CollectionType()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CodeSubDirectoriesCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CodeSubDirectoriesCollection.#get_ElementName()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CodeSubDirectoriesCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.Configuration.CodeSubDirectory", MessageId = "SubDirectory", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CodeSubDirectory.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.CompilationSection.#AssemblyPostProcessorType", MessageId = "PostProcessor", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.CompilationSection.#CodeSubDirectories", MessageId = "SubDirectories", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.CompilationSection.#EnsureReferenceSet()", Justification = @"phuff: Config should not be protected by link demands.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CompilationSection.#GetRuntimeObject()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.CompilationSection.#LoadAssemblyHelper(System.String,System.Boolean)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.CompilationSection.#NumRecompilesBeforeAppRestart", MessageId = "Num", Justification = @"adams: 'Num' must be preserved for back compat with Everett.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.CompilationSection.#UrlLinePragmas", Justification = @"fabioy: ""Pragmas"" is spelled correctly.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1724:TypeNamesShouldNotMatchNamespaces", Scope = "type", Target = "System.Web.Configuration.Compiler", Justification = @"adams: Too large of a breaking change.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.Compiler.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.CompilerCollection", Justification = @"rodneyk: The base type is used to determine the strong type.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.CompilerCollection.#AllKeys", Justification = @"rodneyk: This is designed behavior mimicking AllKeys in other collections")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CompilerCollection.#get_CollectionType()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CompilerCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CompilerCollection.#get_ElementName()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CompilerCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Configuration.ConfigsHelper", Justification = @"patng: It's a helper class")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.ConfigUtil.#GetType(System.String,System.String,System.Configuration.ConfigurationElement)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.COSERVERINFO.#authinfo", Justification = @"manuva: COM Interop definitions")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.COSERVERINFO_X64.#authinfo", Justification = @"cachille: Excluding for checkin to unblock BMB until Manu has a chance to look at them, and either fix or update the exlusion reason.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CustomError.#Equals(System.Object)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CustomError.#GetHashCode()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CustomError.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.CustomErrorCollection", Justification = @"rodneyk: The base type is used to determine the strong type.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.CustomErrorCollection.#AllKeys", Justification = @"rodneyk: This is the designed behavior.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CustomErrorCollection.#get_CollectionType()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CustomErrorCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CustomErrorCollection.#get_ElementName()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CustomErrorCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.CustomErrorsSection.#DeserializeSection(System.Xml.XmlReader)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.EventMappingSettings.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.EventMappingSettingsCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.EventMappingSettingsCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ExpressionBuilder.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ExpressionBuilderCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ExpressionBuilderCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationConfiguration.#DefaultUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationConfiguration.#get_ElementProperty()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationConfiguration.#LoginUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationConfiguration.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationConfiguration.#RequireSSL", Justification = @"rodneyk: Previously excluded but the class name changed")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationConfiguration.#get_RequireSSL()", Justification = @"rodneyk: This was previously excluded but the class name changed")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationConfiguration.#set_RequireSSL(System.Boolean)", Justification = @"rodneyk: This was previously excluded. The class name changed")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationConfiguration.#Validate(System.Object)", Justification = @"adams: The parameter name 'value' is not helpful to the consumer of the message. The name of the section or element that 'value' represents is much more helpful.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationCredentials.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationUser.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.FormsAuthenticationUserCollection", Justification = @"rodneyk: The base type is used to determine the strong type.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationUserCollection.#AllKeys", Justification = @"rodneyk: This is designed behavior mimicking AllKeys in other collections")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationUserCollection.#get_CollectionType()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationUserCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationUserCollection.#get_ElementName()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationUserCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.FormsAuthenticationUserCollection.#get_ThrowOnDuplicate()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.Configuration.GlobalizationSection.#CheckCulture(System.String)", MessageId = "System.Globalization.CultureInfo", Justification = @"adams: An object is created for its side effect of throwing an exception if the object is invalid. Nothing need be done with the object.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.HandlerBase.#GetAndRemoveIntegerAttributeInternal(System.Xml.XmlNode,System.String,System.Boolean,System.Int32&)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.HandlerBase.#GetAndRemoveTypeAttributeInternal(System.Xml.XmlNode,System.String,System.Boolean,System.Type&)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "member", Target = "System.Web.Configuration.HealthMonitoringSectionHelper.#_cachedMatchedRules", Justification = @"adams: We want to use a fixed size multidimensional table to lookup results.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "member", Target = "System.Web.Configuration.HealthMonitoringSectionHelper.#FindFiringRuleInfos(System.Type,System.Int32)", Justification = @"patng: Multi-dimensional array is intentionally used for performance.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.HealthMonitoringSectionHelper.#InitCustomEvaluator(System.Web.Configuration.HealthMonitoringSectionHelper+RuleInfo)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#Adapters", Justification = @"rodneyk: This is the designed intent to allow the caller to provide its own collection")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#AOL", Justification = @"rodneyk: These are legacy public methods which would cause a break in customer's code if changed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#get_AOL()", Justification = @"rodneyk: These are legacy public methods which would cause a break in customer's code if changed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#CanRenderOneventAndPrevElementsTogether", Justification = @"mattgi: browser capabilities not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#CanRenderSetvarZeroWithMultiSelectionList", Justification = @"mattgi: browser capabilities not in the dictionary")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#Capabilities", Justification = @"rodneyk: This is the designed intent to allow the user to provide its own collection.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#CDF", Justification = @"rodneyk: These are legacy public methods which would cause a break in customer's code if changed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#get_CDF()", Justification = @"rodneyk: These are legacy public methods which would cause a break in customer's code if changed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#EcmaScriptVersion", Justification = @"mattgi: browser capabilities not in the dictionary")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#GetConfigCapabilities(System.String,System.Web.HttpRequest)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#GetConfigCapabilities(System.String,System.Web.HttpRequest)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#GetConfigCapabilities(System.String,System.Web.HttpRequest)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#HidesRightAlignedMultiselectScrollbars", MessageId = "Scrollbars", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#HidesRightAlignedMultiselectScrollbars", Justification = @"mattgi: browser capabilities not in the dictionary")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#get_Id()", Justification = @"adams: Id only accessed when HttpContext is available, which is only in our the LinkDemand would succeed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#get_Item(System.String)", Justification = @"adams: Item is only accessed when HttpContext is available, which is the same set of conditions as when the LinkDemand is present.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#get_MaximumRenderedPageSize()", Justification = @"mattgi: IFormatProviders not passed for parsing browserCaps params from config")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#MaximumSoftkeyLabelLength", MessageId = "Softkey", Justification = @"phuff: Spelling ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#NumberOfSoftkeys", MessageId = "Softkeys", Justification = @"phuff: Spelling ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#RequiresDBCSCharacter", Justification = @"rodneyk: These are legacy public methods which would cause a break in customer's code if changed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#get_RequiresDBCSCharacter()", Justification = @"rodneyk: These are legacy public methods which would cause a break in customer's code if changed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#RequiresPhoneNumbersAsPlainText", MessageId = "PlainText", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#RequiresUniqueHtmlCheckboxNames", MessageId = "Checkbox", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#RequiresUrlEncodedPostfieldValues", Justification = @"mattgi: browser capabilities not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#SupportsAccesskeyAttribute", Justification = @"mattgi: browser capabilities not in the dictionary")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#SupportsJPhoneMultiMediaAttributes", MessageId = "MultiMedia", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#System.Web.UI.IFilterResolutionService.CompareFilters(System.String,System.String)", Justification = @"andlin: These are not meant to be overridden.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#System.Web.UI.IFilterResolutionService.EvaluateFilter(System.String)", Justification = @"andlin: These are not meant to be overridden.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesBase.#get_TagWriter()", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Configuration.HttpCapabilitiesSectionHandler", Justification = @"phuff: Config section handlers are used.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesSectionHandler.#.ctor()", Justification = @"adams: An instance of this class is created via reflection.")]
+[module: SuppressMessage("Microsoft.Design", "CA1059:MembersShouldNotExposeCertainConcreteTypes", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesSectionHandler.#Create(System.Object,System.Object,System.Xml.XmlNode)", MessageId = "System.Xml.XmlNode", Justification = @"phuff: Breaking change")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesSectionHandler.#Create(System.Object,System.Object,System.Xml.XmlNode)", Justification = @"phuff: Classes we don't own can't be changed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesSectionHandler.#ResolveFiles(System.Web.Configuration.HttpCapabilitiesSectionHandler+ParseState,System.Object)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.HttpCapabilitiesSectionHandler.#RuleFromElement(System.Web.Configuration.HttpCapabilitiesSectionHandler+ParseState,System.Xml.XmlNode)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.HttpConfigurationSystem.#GetSection(System.String)", Justification = @"phuff: Config should not be protected by a link demand.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCookiesSection.#RequireSSL", Justification = @"rodneyk: These are legacy public methods which would cause a break in customer's code if changed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCookiesSection.#get_RequireSSL()", Justification = @"rodneyk: These are legacy public methods which would cause a break in customer's code if changed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.HttpCookiesSection.#set_RequireSSL(System.Boolean)", Justification = @"rodneyk: These are legacy public methods which would cause a break in customer's code if changed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpHandlerAction.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpHandlerActionCollection.#get_CollectionType()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpHandlerActionCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpHandlerActionCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpHandlerActionCollection.#get_ThrowOnDuplicate()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpModuleAction.#get_ElementProperty()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpModuleAction.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpModuleAction.#Validate(System.Object)", Justification = @"adams: The parameter name 'value' is not helpful to the consumer of the message. The name of the section or element that 'value' represents is much more helpful.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpModuleActionCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpModuleActionCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.HttpModuleActionCollection.#IsElementRemovable(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.HttpRuntimeSection.#UseFullyQualifiedRedirectUrl", MessageId = "UseFully", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2221:FinalizersShouldBeProtected", Scope = "member", Target = "System.Web.Configuration.IAssemblyName.#Finalize()", Justification = @"tinghaoy: This is com interface, not actual implementation.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetAppPathForPath(System.String,System.String)", MessageId = "0#", Justification = @"erikols: reviewed and excluded in beta2lhsd")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetDefaultSiteNameAndID(System.String&,System.String&)", MessageId = "0#", Justification = @"adams: These are interfaces that interop with COM classic. Out params are easier.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetDefaultSiteNameAndID(System.String&,System.String&)", MessageId = "1#", Justification = @"adams: These are interfaces that interop with COM classic. Out params are easier.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetDefaultSiteNameAndID(System.String&,System.String&)", Justification = @"adams: In System.Web, we use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetDefaultSiteNameAndID(System.String&,System.String&)", MessageId = "1#", Justification = @"adams: In System.Web, we use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetMachineConfigFilename()", MessageId = "Filename", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting that change to rtmlhs")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetMachineConfigFilename()", Justification = @"adams: This interface has a native counterpart, so using a method here is better.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetPathConfigFilename(System.String,System.String,System.String&,System.String&)", MessageId = "2#", Justification = @"erikols: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetPathConfigFilename(System.String,System.String,System.String&,System.String&)", MessageId = "3#", Justification = @"erikols: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetPathConfigFilename(System.String,System.String,System.String&,System.String&)", MessageId = "Filename", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting that change to rtmlhs")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetPathConfigFilename(System.String,System.String,System.String&,System.String&)", MessageId = "0#", Justification = @"erikols: reviewed and excluded in beta2lhsd")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetRootWebConfigFilename()", MessageId = "Filename", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting that change to rtmlhs")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#GetRootWebConfigFilename()", Justification = @"adams: This interface is exposed to COM, so it is more consistent across native and managed code to have a single method name.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#MapPath(System.String,System.String)", MessageId = "0#", Justification = @"erikols: reviewed and excluded in beta2lhsd")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#ResolveSiteArgument(System.String,System.String&,System.String&)", MessageId = "1#", Justification = @"adams: These are interfaces that interop with COM classic. Out params are easier.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#ResolveSiteArgument(System.String,System.String&,System.String&)", MessageId = "2#", Justification = @"adams: These are interfaces that interop with COM classic. Out params are easier.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.IConfigMapPath.#ResolveSiteArgument(System.String,System.String&,System.String&)", MessageId = "2#", Justification = @"adams: In System.Web, we use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.IdentitySection.#GetRuntimeObject()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Configuration.IdentitySection.#ValidateCredentials()", MessageId = "System.Configuration.ConfigurationPropertyException.#ctor(System.String,System.String,System.String,System.Int32)", Justification = @"erikols: literal is a parameter name and will not be localized")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.ImpersonateTokenRef.#_handle", Justification = @"rodneyk: This class was moved verbatum to the Section API file. I am leaving it exactly as I encounted it to minimize any impact in the conversion to using the Management API.")]
[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Configuration.IRemoteWebConfigurationHostServer.#DoEncryptOrDecrypt(System.Boolean,System.String,System.String,System.String,System.String[],System.String[])", MessageId = "1#", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IRemoteWebConfigurationHostServer.#GetData(System.String,System.Boolean,System.Int64&)", MessageId = "2#", Justification = @"[....]: GetData is an internal method used in remote config. It's okay to have an out param.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IRemoteWebConfigurationHostServer.#GetData(System.String,System.Boolean,System.Int64&)", MessageId = "2#", Justification = @"patng: GetData is an internal method used in remote config. It's okay to have an out param.")]
[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IRemoteWebConfigurationHostServer.#GetFileDetails(System.String,System.Boolean&,System.Int64&,System.Int64&,System.Int64&)", MessageId = "1#", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IRemoteWebConfigurationHostServer.#GetFileDetails(System.String,System.Boolean&,System.Int64&,System.Int64&,System.Int64&)", MessageId = "2#", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IRemoteWebConfigurationHostServer.#GetFileDetails(System.String,System.Boolean&,System.Int64&,System.Int64&,System.Int64&)", MessageId = "3#", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.IRemoteWebConfigurationHostServer.#GetFileDetails(System.String,System.Boolean&,System.Int64&,System.Int64&,System.Int64&)", MessageId = "4#", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.Configuration.LowerCaseStringConverter", MessageId = "LowerCase", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.LowerCaseStringConverter.#CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)", Justification = @"[....]: We don't own TypeConverter.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.LowerCaseStringConverter.#CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)", Justification = @"[....]: We don't own TypeConverter.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.LowerCaseStringConverter.#ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)", Justification = @"[....]: We don't own TypeConverter.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.LowerCaseStringConverter.#ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)", Justification = @"[....]: We don't own TypeConverter.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.MachineKeySection.#SetKeyOnSymAlgorithm(System.Security.Cryptography.SymmetricAlgorithm,System.Byte[])", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.MachineKeyValidation.#AES", Justification = @"[....]: AES is a common abbreviation.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.MachineKeyValidation.#TripleDES", Justification = @"[....]: These are legacy public methods which would cause a break in customer's code if changed.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.MULTI_QI.#piid", Justification = @"[....]: COM Interop definitions")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.MULTI_QI.#pItf", Justification = @"[....]: COM Interop definitions")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.MULTI_QI_X64.#piid", Justification = @"[....]: Excluding for checkin to unblock BMB until Manu has a chance to look at them, and either fix or update the exlusion reason.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.MULTI_QI_X64.#pItf", Justification = @"[....]: Excluding for checkin to unblock BMB until Manu has a chance to look at them, and either fix or update the exlusion reason.")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.NamespaceCollection", Justification = @"[....]: The base type is used to determine the strong type.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.NamespaceCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.NamespaceCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.NamespaceInfo.#Equals(System.Object)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.NamespaceInfo.#GetHashCode()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.NamespaceInfo.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.OutputCacheProfile.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.OutputCacheProfile.#VaryByParam", MessageId = "Param", Justification = @"[....]: Spelling ok (V1 precedence)")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.OutputCacheProfileCollection.#AllKeys", Justification = @"[....]: This mimics other usages of AllKeys in the code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.OutputCacheProfileCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.OutputCacheProfileCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.PagesSection.#AutoEventWireup", Justification = @"[....]: The rule break is to support the legacy name with the same casing as previous versions of the property. This comes directly from Defect report 178939 where Shanku and Bobbyv approved the FXCOP break to make the name match legacy code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.PagesSection.#DeserializeSection(System.Xml.XmlReader)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.PassportAuthentication.#get_ElementProperty()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.PassportAuthentication.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Configuration.PassportAuthentication.#RedirectUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.PassportAuthentication.#Validate(System.Object)", Justification = @"[....]: The parameter name 'value' is not helpful to the consumer of the message. The name of the section or element that 'value' represents is much more helpful.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.ProcessModelComAuthenticationLevel.#Pkt", Justification = @"[....]: These match legacy values used in previous version of the config.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.ProcessModelComAuthenticationLevel.#PktIntegrity", Justification = @"[....]: These match legacy values used in previous version of the config.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.ProcessModelComAuthenticationLevel.#PktPrivacy", Justification = @"[....]: These match legacy values used in previous version of the config.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileGroupSettings.#Equals(System.Object)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileGroupSettings.#GetHashCode()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileGroupSettings.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.ProfileGroupSettingsCollection.#AllKeys", Justification = @"[....]: This is designed behavior mimicking AllKeys in other collections")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileGroupSettingsCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileGroupSettingsCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileGroupSettingsCollection.#IsModified()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileGroupSettingsCollection.#ResetModified()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfilePropertySettings.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.ProfilePropertySettingsCollection.#AllKeys", Justification = @"[....]: This is designed behavior mimicking AllKeys in other collections")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfilePropertySettingsCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfilePropertySettingsCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfilePropertySettingsCollection.#OnDeserializeUnrecognizedElement(System.String,System.Xml.XmlReader)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfilePropertySettingsCollection.#get_ThrowOnDuplicate()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileSettings.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileSettingsCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileSettingsCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.ProtocolCollection.#AllKeys", Justification = @"[....]: reviewed and excluded in beta2lhsd")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProtocolCollection.#CreateNewElement()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProtocolCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProtocolElement.#PostDeserialize()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProtocolElement.#get_Properties()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProtocolsConfigurationHandler.#Create(System.Object,System.Object,System.Xml.XmlNode)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Configuration.ProvidersHelper", Justification = @"[....]: Class will be used in near future. File was checked in to unblock another dev.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Configuration.ProvidersHelper.#InstantiateProvider(System.Configuration.ProviderSettings,System.Type)", Justification = @"[....]: Class will be used in near future. File was checked in to unblock another dev.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.ProvidersHelper.#InstantiateProvider(System.Configuration.ProviderSettings,System.Type)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Configuration.ProvidersHelper.#InstantiateProviders(System.Configuration.ProviderSettingsCollection,System.Configuration.Provider.ProviderCollection,System.Type)", Justification = @"[....]: Class will be used in near future. File was checked in to unblock another dev.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.RegexWorker.#Lookup(System.String)", Justification = @"[....]: Config should not be protected by link demands.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Configuration.RemoteWebConfigurationHost", Justification = @"[....]: Instantiated via reflection.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.Configuration.LowerCaseStringConverter", MessageId = "LowerCase", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.LowerCaseStringConverter.#CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)", Justification = @"phuff: We don't own TypeConverter.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.LowerCaseStringConverter.#CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)", Justification = @"phuff: We don't own TypeConverter.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.LowerCaseStringConverter.#ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)", Justification = @"phuff: We don't own TypeConverter.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.LowerCaseStringConverter.#ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)", Justification = @"phuff: We don't own TypeConverter.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.MachineKeySection.#SetKeyOnSymAlgorithm(System.Security.Cryptography.SymmetricAlgorithm,System.Byte[])", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.MachineKeyValidation.#AES", Justification = @"adams: AES is a common abbreviation.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.MachineKeyValidation.#TripleDES", Justification = @"rodneyk: These are legacy public methods which would cause a break in customer's code if changed.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.MULTI_QI.#piid", Justification = @"manuva: COM Interop definitions")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.MULTI_QI.#pItf", Justification = @"manuva: COM Interop definitions")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.MULTI_QI_X64.#piid", Justification = @"cachille: Excluding for checkin to unblock BMB until Manu has a chance to look at them, and either fix or update the exlusion reason.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Configuration.MULTI_QI_X64.#pItf", Justification = @"cachille: Excluding for checkin to unblock BMB until Manu has a chance to look at them, and either fix or update the exlusion reason.")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.NamespaceCollection", Justification = @"rodneyk: The base type is used to determine the strong type.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.NamespaceCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.NamespaceCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.NamespaceInfo.#Equals(System.Object)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.NamespaceInfo.#GetHashCode()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.NamespaceInfo.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.OutputCacheProfile.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.OutputCacheProfile.#VaryByParam", MessageId = "Param", Justification = @"phuff: Spelling ok (V1 precedence)")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.OutputCacheProfileCollection.#AllKeys", Justification = @"rodneyk: This mimics other usages of AllKeys in the code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.OutputCacheProfileCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.OutputCacheProfileCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.PagesSection.#AutoEventWireup", Justification = @"rodneyk: The rule break is to support the legacy name with the same casing as previous versions of the property. This comes directly from Defect report 178939 where Shanku and Bobbyv approved the FXCOP break to make the name match legacy code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.PagesSection.#DeserializeSection(System.Xml.XmlReader)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.PassportAuthentication.#get_ElementProperty()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.PassportAuthentication.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Configuration.PassportAuthentication.#RedirectUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.PassportAuthentication.#Validate(System.Object)", Justification = @"adams: The parameter name 'value' is not helpful to the consumer of the message. The name of the section or element that 'value' represents is much more helpful.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.ProcessModelComAuthenticationLevel.#Pkt", Justification = @"rodneyk: These match legacy values used in previous version of the config.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.ProcessModelComAuthenticationLevel.#PktIntegrity", Justification = @"rodneyk: These match legacy values used in previous version of the config.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.ProcessModelComAuthenticationLevel.#PktPrivacy", Justification = @"rodneyk: These match legacy values used in previous version of the config.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileGroupSettings.#Equals(System.Object)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileGroupSettings.#GetHashCode()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileGroupSettings.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.ProfileGroupSettingsCollection.#AllKeys", Justification = @"rodneyk: This is designed behavior mimicking AllKeys in other collections")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileGroupSettingsCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileGroupSettingsCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileGroupSettingsCollection.#IsModified()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileGroupSettingsCollection.#ResetModified()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfilePropertySettings.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.ProfilePropertySettingsCollection.#AllKeys", Justification = @"rodneyk: This is designed behavior mimicking AllKeys in other collections")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfilePropertySettingsCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfilePropertySettingsCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfilePropertySettingsCollection.#OnDeserializeUnrecognizedElement(System.String,System.Xml.XmlReader)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfilePropertySettingsCollection.#get_ThrowOnDuplicate()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileSettings.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileSettingsCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProfileSettingsCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.ProtocolCollection.#AllKeys", Justification = @"erikols: reviewed and excluded in beta2lhsd")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProtocolCollection.#CreateNewElement()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProtocolCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProtocolElement.#PostDeserialize()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProtocolElement.#get_Properties()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.ProtocolsConfigurationHandler.#Create(System.Object,System.Object,System.Xml.XmlNode)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Configuration.ProvidersHelper", Justification = @"fabioy: Class will be used in near future. File was checked in to unblock another dev.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Configuration.ProvidersHelper.#InstantiateProvider(System.Configuration.ProviderSettings,System.Type)", Justification = @"fabioy: Class will be used in near future. File was checked in to unblock another dev.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.ProvidersHelper.#InstantiateProvider(System.Configuration.ProviderSettings,System.Type)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Configuration.ProvidersHelper.#InstantiateProviders(System.Configuration.ProviderSettingsCollection,System.Configuration.Provider.ProviderCollection,System.Type)", Justification = @"fabioy: Class will be used in near future. File was checked in to unblock another dev.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.RegexWorker.#Lookup(System.String)", Justification = @"phuff: Config should not be protected by link demands.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Configuration.RemoteWebConfigurationHost", Justification = @"adams: Instantiated via reflection.")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Configuration.RemoteWebConfigurationHost.#GetDomainFromFullName(System.String)", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Configuration.RemoteWebConfigurationHost.#GetUserNameFromFullName(System.String)", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Configuration.RemoteWebConfigurationHost.#Init(System.Configuration.Internal.IInternalConfigRoot,System.Object[])", MessageId = "System.InvalidOperationException.#ctor(System.String)", Justification = @"[....]: A literal is not passed, fxcop is confused.")]
-[module: SuppressMessage("Microsoft.Security", "CA2124:WrapVulnerableFinallyClausesInOuterTry", Scope = "member", Target = "System.Web.Configuration.RemoteWebConfigurationHost.#InitForConfiguration(System.String&,System.String&,System.String&,System.Configuration.Internal.IInternalConfigRoot,System.Object[])", Justification = @"[....]: The wrapping is done, fxcop is confused.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Configuration.RemoteWebConfigurationHostServer", Justification = @"[....]: Called via reflection")]
-[module: SuppressMessage("Microsoft.Interoperability", "CA1408:DoNotUseAutoDualClassInterfaceType", Scope = "type", Target = "System.Web.Configuration.RemoteWebConfigurationHostServer", Justification = @"[....]: will remove later")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Configuration.RemoteWebConfigurationHost.#Init(System.Configuration.Internal.IInternalConfigRoot,System.Object[])", MessageId = "System.InvalidOperationException.#ctor(System.String)", Justification = @"adams: A literal is not passed, fxcop is confused.")]
+[module: SuppressMessage("Microsoft.Security", "CA2124:WrapVulnerableFinallyClausesInOuterTry", Scope = "member", Target = "System.Web.Configuration.RemoteWebConfigurationHost.#InitForConfiguration(System.String&,System.String&,System.String&,System.Configuration.Internal.IInternalConfigRoot,System.Object[])", Justification = @"adams: The wrapping is done, fxcop is confused.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Configuration.RemoteWebConfigurationHostServer", Justification = @"manuva: Called via reflection")]
+[module: SuppressMessage("Microsoft.Interoperability", "CA1408:DoNotUseAutoDualClassInterfaceType", Scope = "type", Target = "System.Web.Configuration.RemoteWebConfigurationHostServer", Justification = @"manuva: will remove later")]
[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Configuration.RemoteWebConfigurationHostServer.#DoEncryptOrDecrypt(System.Boolean,System.String,System.String,System.String,System.String[],System.String[])", MessageId = "1#", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.RemoteWebConfigurationHostServer.#WriteData(System.String,System.String,System.Byte[],System.Int64&)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.RoleManagerSection.#CookieRequireSSL", Justification = @"[....]: These are legacy public methods which would cause a break in customer's code if changed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.RoleManagerSection.#get_CookieRequireSSL()", Justification = @"[....]: These are legacy public methods which would cause a break in customer's code if changed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.RoleManagerSection.#set_CookieRequireSSL(System.Boolean)", Justification = @"[....]: These are legacy public methods which would cause a break in customer's code if changed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.RuleSettings.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.RuleSettingsCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.RuleSettingsCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Configuration.RuntimeConfig.#GetSectionObject(System.String)", Justification = @"[....]: RolePrincipal.ToEncryptedTicket should work in partial trust")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.Configuration.SessionPageStateSection", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Performance", "CA1803:AvoidCostlyCallsWherePossible", Scope = "member", Target = "System.Web.Configuration.SessionStateSection.#ConvertToCookieMode(System.String)", Justification = @"[....]: By design because we want to map ""true"" and ""false"" into one of the enum values as well. So we must first check if the incoming string is part of the enum or not.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.SessionStateSection.#SessionIDManagerType", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.SessionStateSection.#Validate(System.Object)", Justification = @"[....]: The parameter name 'value' is not helpful to the consumer of the message. The name of the section or element that 'value' represents is much more helpful.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.Configuration.SiteMapSection", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencyDatabase.#.ctor(System.String,System.String)", MessageId = "1#", Justification = @"[....]: By design.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencyDatabase.#.ctor(System.String,System.String,System.Int32)", MessageId = "1#", Justification = @"[....]: By design.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencyDatabase.#get_ElementProperty()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencyDatabase.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencyDatabase.#Validate(System.Object)", Justification = @"[....]: The parameter name 'value' is not helpful to the consumer of the message. The name of the section or element that 'value' represents is much more helpful.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencyDatabaseCollection.#AllKeys", Justification = @"[....]: This is designed behavior mimicking AllKeys in other collections")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencyDatabaseCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencyDatabaseCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencySection.#Databases", Justification = @"[....]: Config property must be settable.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencySection.#Validate(System.Object)", Justification = @"[....]: The parameter name 'value' is not helpful to the consumer of the message. The name of the section or element that 'value' represents is much more helpful.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.SystemWebSectionGroup.#SiteMap", MessageId = "SiteMap", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagMapCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagMapCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.TagMapCollection.#get_TagTypeMappingInternal()", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagMapInfo.#Equals(System.Object)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagMapInfo.#GetHashCode()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagMapInfo.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagMapInfo.#SerializeElement(System.Xml.XmlWriter,System.Boolean)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.TagPrefixCollection", Justification = @"[....]: The base type is used to determine the strong type.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixCollection.#get_CollectionType()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixCollection.#get_ElementName()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixCollection.#get_ThrowOnDuplicate()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.TagPrefixInfo.#.ctor(System.String,System.String,System.String,System.String,System.String)", MessageId = "nameSpace", Justification = @"[....]: namespace is a reserved keyword. Use nameSpace instead.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixInfo.#get_ElementProperty()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixInfo.#Equals(System.Object)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixInfo.#GetHashCode()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixInfo.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.TagPrefixInfo.#Validate(System.Object)", Justification = @"[....]: The parameter name 'value' is not helpful to the consumer of the message. The name of the section or element that 'value' represents is much more helpful.")]
-[module: SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "type", Target = "System.Web.Configuration.TraceDisplayMode", Justification = @"[....]: Everett enum")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TransformerInfo.#Equals(System.Object)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TransformerInfo.#GetHashCode()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TransformerInfo.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TransformerInfoCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TransformerInfoCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.TransformerInfoCollection.#GetTransformerEntries()", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TrustLevel.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.TrustLevelCollection", Justification = @"[....]: The base type is used to determine the strong type.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TrustLevelCollection.#get_CollectionType()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TrustLevelCollection.#CreateNewElement()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TrustLevelCollection.#get_ElementName()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TrustLevelCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TrustLevelCollection.#IsElementName(System.String)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TrustLevelCollection.#get_ThrowOnDuplicate()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Configuration.TrustSection.#OriginUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.Configuration.UrlMapping.#.ctor(System.String,System.String)", MessageId = "0#", Justification = @"[....]: Our url properties are commonly strings.")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.Configuration.UrlMapping.#.ctor(System.String,System.String)", MessageId = "1#", Justification = @"[....]: Our url properties are commonly strings.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Configuration.UrlMapping.#MappedUrl", Justification = @"[....]: Our url properties are commonly strings.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.UrlMapping.#get_Properties()", Justification = @"[....]: Classes we don't own can't be changed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Configuration.UrlMapping.#Url", Justification = @"[....]: Our url properties are commonly strings.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.UrlMappingCollection.#Add(System.Web.Configuration.UrlMapping)", MessageId = "0#", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.UrlMappingCollection.#AllKeys", Justification = @"[....]: These return an array from the base class, which is copied fresh with each call.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.UrlMappingCollection.#CreateNewElement()", Justification = @"[....]: Classes we don't own can't be changed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.UrlMappingCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"[....]: Classes we don't own can't be changed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.UrlMappingCollection.#Remove(System.Web.Configuration.UrlMapping)", MessageId = "0#", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.VirtualDirectoryMapping.#set_ConfigFileBaseName(System.String)", Justification = @"[....]: The exception is correctly instantiated, fxcop is confused by HttpRuntime.FormatResourceString")]
-[module: SuppressMessage("Microsoft.Usage", "CA2237:MarkISerializableTypesWithSerializable", Scope = "type", Target = "System.Web.Configuration.VirtualDirectoryMappingCollection", Justification = @"[....]: Class is marked as Serializable, fxcop is confused.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Configuration.VirtualDirectoryMappingCollection.#Add(System.String,System.Web.Configuration.VirtualDirectoryMapping)", MessageId = "System.ArgumentException.#ctor(System.String)", Justification = @"[....]: A literal is not passed, fxcop is confused by HttpFormatString as part of the argument.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Configuration.VirtualDirectoryMappingCollection.#Add(System.String,System.Web.Configuration.VirtualDirectoryMapping)", MessageId = "System.InvalidOperationException.#ctor(System.String)", Justification = @"[....]: A literal is not passed, fxcop is confused by HttpFormatString as part of the argument.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.VirtualDirectoryMappingCollection.#Add(System.String,System.Web.Configuration.VirtualDirectoryMapping)", Justification = @"[....]: The exception is correctly instantiated, fxcop is confused by HttpRuntime.FormatResourceString")]
-[module: SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "type", Target = "System.Web.Configuration.WebApplicationLevel", Justification = @"[....]: This was a conscious decision by [....] because there's no reasonable default value. The expectation is that there may be new interspersed values in the future.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Configuration.WebBaseEventKeyComparer.#Compare(System.Object,System.Object)", Justification = @"[....]: It's used by HealthMonitoringSectionHelper.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.WebConfigurationFileMap.#Clone()", Justification = @"[....]: Classes we don't own can't be changed.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Configuration.WebConfigurationHost", Justification = @"[....]: WebConfigurationHost is instantiated by System.dll through reflection. It is not referenced directly in order to avoid loading System.Web.dll every time System.dll is loaded.")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Configuration.WebConfigurationHost.#get_ConfigurationFactory()", Justification = @"[....]: We're creating a hardcoded class that lives in system.configuration.dll. It's safe.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.WebConfigurationHost.#InitForConfiguration(System.String&,System.String&,System.String&,System.Configuration.Internal.IInternalConfigRoot,System.Object[])", Justification = @"[....]: The 'site' argument is provided in an order params array. The original public method responsible for the argument has an argument named 'site'.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Configuration.WebConfigurationHost.#IsDefinitionAllowed(System.String,System.Configuration.ConfigurationAllowDefinition,System.Configuration.ConfigurationAllowExeDefinition)", MessageId = "System.InvalidOperationException.#ctor(System.String)", Justification = @"[....]: A literal is not passed, fxcop is confused by HttpFormatString as part of the argument.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Configuration.WebConfigurationHost.#VerifyDefinitionAllowed(System.String,System.Configuration.ConfigurationAllowDefinition,System.Configuration.ConfigurationAllowExeDefinition,System.Configuration.Internal.IConfigErrorInfo)", MessageId = "System.InvalidOperationException.#ctor(System.String)", Justification = @"[....]: A literal is not passed, fxcop is confused by HttpFormatString as part of the argument.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Configuration.WebConfigurationManager.#OpenMachineConfiguration(System.String,System.String,System.IntPtr)", Justification = @"[....]: ok")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.Configuration.WebConfigurationManager.#OpenMappedWebConfiguration(System.Web.Configuration.WebConfigurationFileMap,System.String)", Justification = @"[....]: The intention appears to be to force this to be a WebConfigurationFileMap.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.Configuration.WebConfigurationManager.#OpenMappedWebConfiguration(System.Web.Configuration.WebConfigurationFileMap,System.String,System.String)", Justification = @"[....]: The intention appears to be to force this to be a WebConfigurationFileMap.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.Configuration.WebConfigurationManager.#OpenMappedWebConfiguration(System.Web.Configuration.WebConfigurationFileMap,System.String,System.String,System.String)", Justification = @"[....]: The intention appears to be to force this to be a WebConfigurationFileMap.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Configuration.WebConfigurationManager.#OpenWebConfiguration(System.String,System.String,System.String,System.String,System.IntPtr)", Justification = @"[....]: ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.WebConfigurationManager.#OpenWebConfigurationImpl(System.Web.Configuration.WebLevel,System.Configuration.ConfigurationFileMap,System.String,System.String,System.String,System.String,System.String,System.String,System.IntPtr)", Justification = @"[....]: Config should not be protected by link demands.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.WebControlsSection.#GetRuntimeObject()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.WebPartsPersonalization.#get_Properties()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.WebPartsPersonalizationAuthorization.#get_Properties()", Justification = @"[....]: Classes we don't own can't be changed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.WebPartsSection.#GetRuntimeObject()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.MSInternal", "CA903:InternalNamespaceShouldNotContainPublicTypes", Scope = "type", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost", Justification = @"[....]: This interface is public so other assemblies can get to it, but no one outside of Microsoft should ever use it. This is the alternative to reflecting on the assembly to get the interface.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost.#GetConfigPathFromSiteIDAndVPath(System.String,System.String)", MessageId = "vpath", Justification = @"[....]: Apllings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost.#GetConfigPathFromSiteIDAndVPath(System.String,System.String)", Justification = @"[....]: ID approved acronym.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost.#GetConfigPathFromSiteIDAndVPath(System.String,System.String)", MessageId = "0#", Justification = @"[....]: ID approved acronym.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost.#GetSiteIDAndVPathFromConfigPath(System.String,System.String&,System.String&)", MessageId = "1#", Justification = @"[....]: Already using a return parameter or more than one out parameter.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost.#GetSiteIDAndVPathFromConfigPath(System.String,System.String&,System.String&)", MessageId = "2#", Justification = @"[....]: Already using a return parameter or more than one out parameter.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost.#GetSiteIDAndVPathFromConfigPath(System.String,System.String&,System.String&)", MessageId = "vpath", Justification = @"[....]: Apllings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost.#GetSiteIDAndVPathFromConfigPath(System.String,System.String&,System.String&)", Justification = @"[....]: ID approved acronym.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost.#GetSiteIDAndVPathFromConfigPath(System.String,System.String&,System.String&)", MessageId = "1#", Justification = @"[....]: ID approved acronym.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.DataAccess.DataConnectionHelper.#GetCurrentName()", Justification = @"[....]: This comes out of the security code review.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Handlers.AssemblyResourceLoader.#GetAssemblyInfoWithAssertInternal(System.Reflection.Assembly)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Handlers.AssemblyResourceLoader.#GetDiskResourcePath(System.String)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#.ctor()", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#CreateControlTable(System.Data.DataTable)", MessageId = "System.Web.Handlers.TraceHandler.AddCell(System.Web.UI.WebControls.TableRow,System.String)", Justification = @"[....]: HTML strings")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#CreateControlTable(System.Data.DataTable)", MessageId = "System.Web.Handlers.TraceHandler.AddHeaderCell(System.Web.UI.WebControls.TableRow,System.String)", Justification = @"[....]: html strings")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#CreateDetailsTable(System.Data.DataTable)", MessageId = "System.Web.Handlers.TraceHandler.AddHeaderCell(System.Web.UI.WebControls.TableRow,System.String)", Justification = @"[....]: html strings")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#CreateTable(System.Data.DataTable,System.Boolean)", MessageId = "System.Web.Handlers.TraceHandler.AddCell(System.Web.UI.WebControls.TableRow,System.String)", Justification = @"[....]: HTML strings")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#CreateTable(System.Data.DataTable,System.Boolean)", MessageId = "System.Web.Handlers.TraceHandler.AddHeaderCell(System.Web.UI.WebControls.TableRow,System.String)", Justification = @"[....]: html strings")]
-[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#CreateTable(System.Data.DataTable,System.Boolean)", MessageId = "nbsp", Justification = @"[....]: HTML strings")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#CreateTraceTable(System.Data.DataTable)", MessageId = "System.Web.Handlers.TraceHandler.AddHeaderCell(System.Web.UI.WebControls.TableRow,System.String)", Justification = @"[....]: html strings")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#ShowRequests(System.Collections.IList)", MessageId = "System.Web.Handlers.TraceHandler.AddCell(System.Web.UI.WebControls.TableRow,System.String)", Justification = @"[....]: html strings")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#ShowRequests(System.Collections.IList)", MessageId = "System.Web.Handlers.TraceHandler.AddHeaderCell(System.Web.UI.WebControls.TableRow,System.String)", Justification = @"[....]: html strings")]
-[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#ShowRequests(System.Collections.IList)", MessageId = "axd", Justification = @"[....]: html strings")]
-[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#ShowRequests(System.Collections.IList)", MessageId = "nbsp", Justification = @"[....]: html strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix", Scope = "type", Target = "System.Web.Hosting.AppDomainInfoEnum", Justification = @"[....]: reviewed and exluded in beta2lhsd")]
-[module: SuppressMessage("Microsoft.Security", "CA2126:TypeLinkDemandsRequireInheritanceDemands", Scope = "type", Target = "System.Web.Hosting.AppDomainProtocolHandler", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.AppDomainProtocolHandler.#InitializeLifetimeService()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.AppDomainProtocolHandler.#InitializeLifetimeService()", Justification = @"[....]: Reviewed and exluded in beta2lhsd")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationHost.#CreateApplicationHost(System.Type,System.String,System.String)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Hosting.ApplicationHost.#CreateApplicationHost(System.Type,System.String,System.String)", Justification = @"[....]: ToString() is used to generate string IDs for internal use, it is not displayed to the user")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Hosting.ApplicationInfo.#ID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#Close()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#ConstructAppDomainId(System.String)", Justification = @"[....]: ToString() is used to generate string IDs for internal use, it is not displayed to the user")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#CreateAppDomainWithHostingEnvironment(System.String,System.Web.Hosting.IApplicationHost,System.Web.Hosting.HostingEnvironmentParameters)", Justification = @"[....]: No security issues= non-ClsCompliant exceptions are ok to bubble up here.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#CreateAppDomainWithHostingEnvironmentAndReportErrors(System.String,System.Web.Hosting.IApplicationHost,System.Web.Hosting.HostingEnvironmentParameters)", Justification = @"[....]: No security issues= non-ClsCompliant exceptions are ok to bubble up here.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#CreateObject(System.String,System.Type,System.String,System.String,System.Boolean)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#CreateObject(System.String,System.Type,System.String,System.String,System.Boolean,System.Boolean)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#CreateObject(System.Web.Hosting.IApplicationHost,System.Type)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#CreateObjectInternal(System.String,System.Type,System.Web.Hosting.IApplicationHost,System.Boolean)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#CreateObjectWithDefaultAppHostAndAppId(System.String,System.String,System.Type,System.String&)", Justification = @"[....]: new method, will be used by web admin")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#CreateObjectWithDefaultAppHostAndAppId(System.String,System.Web.VirtualPath,System.Type,System.String&)", Justification = @"[....]: Called by reflection.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#GetAppDomainInfos()", Justification = @"[....]: reviewed")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#GetApplicationManager()", Justification = @"[....]: per spec")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#GetObject(System.String,System.Type)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#GetRunningApplications()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#HostingEnvironmentShutdownInitiated(System.String,System.Web.Hosting.HostingEnvironment)", Justification = @"[....]: ignore")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#InitializeLifetimeService()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#Open()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#ShutdownAll()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#ShutdownApplication(System.String)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#StopObject(System.String,System.Type)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Hosting.AppManagerAppDomainFactory.#Create(System.String,System.String)", Justification = @"[....]: No security issues= non-ClsCompliant exceptions are ok to bubble up here.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Hosting.ContextBase", Justification = @"[....]: static methods are used")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.ContextBase.#SwitchContext(System.Object)", Justification = @"[....]: from whidbey")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Hosting.HostingEnvironment", Justification = @"[....]: HostingEnvironment has the lifetime of app domain and is never disposed before app domain is gone")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#.ctor()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#_configToken", Justification = @"[....]: HostingEnvironment (which is never GC'd) controls the lifetime of this handle")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_AppConfigPath()", Justification = @"[....]: If ASP.NET is not hosted, and thus the link demand not satisifed, this code path is not followed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_AppDomainsCount()", Justification = @"[....]: AspNet Link Demand is on all public classes in System.Web")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_ApplicationHost()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#ApplicationID", Justification = @"[....]: ID ok for ASP.NET (from Phuffs comments on similar rules)")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_ApplicationIdentityToken()", Justification = @"[....]: config system classes don't have the demand for apsnethostingpermisiion but still calls into impersonation code - this is ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_ApplicationVirtualPath()", Justification = @"[....]: In cases where HostingEnvironment methods are called and the LinkDemand is not satisfied, the methods return null or 0.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#Impersonate()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#Impersonate(System.IntPtr)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#Impersonate(System.IntPtr,System.String)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#Initialize(System.Web.Hosting.ApplicationManager,System.Web.Hosting.IApplicationHost,System.Web.Configuration.IConfigMapPathFactory,System.Web.Hosting.HostingEnvironmentParameters)", Justification = @"[....]: No security issues= non-ClsCompliant exceptions are ok to bubble up here.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#InitializeLifetimeService()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#InitiateShutdown()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#InitiateShutdownInternal()", MessageId = "System.Web.HttpRuntime.SetShutdownReason(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: This is only used internally.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_IsHosted()", Justification = @"[....]: In cases where HostingEnvironment methods are called and the LinkDemand is not satisfied, the methods return null or 0.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#MapPathInternal(System.String)", Justification = @"[....]: AspNet Link Demand is on all public classes in System.Web")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#MapPathInternal(System.String,System.Boolean)", Justification = @"[....]: When the LinkDemand is not satisfied, the method returns either null or the value passed in, so there is no security vulnerability.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#MapPathInternal(System.Web.VirtualPath,System.Boolean)", Justification = @"[....]: This was already excluded but popped up again because of small signature change.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#RegisterObject(System.Web.Hosting.IRegisteredObject)", Justification = @"[....]: AspNet Link Demand is on all public classes in System.Web")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#RegisterObject(System.Web.Hosting.IRegisteredObject)", Justification = @"[....]: The method security is a full demand of the same permission the class's link demand covers.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_SiteID()", Justification = @"[....]: In cases where HostingEnvironment methods are called and the LinkDemand is not satisfied, the methods return null or 0.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_SiteName()", Justification = @"[....]: AspNet Link Demand is on all public classes in System.Web")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_SiteNameNoDemand()", Justification = @"[....]: In cases where HostingEnvironment methods are called and the LinkDemand is not satisfied, the methods return null or 0.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#UnregisterObject(System.Web.Hosting.IRegisteredObject)", Justification = @"[....]: AspNet Link Demand is on all public classes in System.Web")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#UnregisterObject(System.Web.Hosting.IRegisteredObject)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Usage", "CA2235:MarkAllNonSerializableFields", Scope = "member", Target = "System.Web.Hosting.HostingEnvironmentParameters.#_hostingFlags", Justification = @"[....]: This is an fxcop bug (403281). The field noted above actually is serializable because it's an enum.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.Hosting.IAdphManager", MessageId = "Adph", Justification = @"[....]: Reviewed and excluded from beta2lhsd")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IAppDomainInfo.#GetId()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IAppDomainInfo.#GetPhysicalPath()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IAppDomainInfo.#GetSiteId()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IAppDomainInfo.#GetVirtualPath()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
-[module: SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix", Scope = "type", Target = "System.Web.Hosting.IAppDomainInfoEnum", Justification = @"[....]: reviewed and exluded in beta2lhsd")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IAppDomainInfoEnum.#GetData()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IApplicationHost.#GetConfigMapPathFactory()", Justification = @"[....]: This interface has a native counterpart, so using a method here is better.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IApplicationHost.#GetConfigToken()", Justification = @"[....]: This WebHost interface is used to Interop only - it is implemented by IIS in unmanaged code")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IApplicationHost.#GetPhysicalPath()", Justification = @"[....]: This WebHost interface is used to Interop only - it is implemented by IIS in unmanaged code")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Hosting.IApplicationHost.#GetSiteID()", Justification = @"[....]: In System.Web, we use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IApplicationHost.#GetSiteID()", Justification = @"[....]: In System.Web, we use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IApplicationHost.#GetSiteName()", Justification = @"[....]: This WebHost interface is used to Interop only - it is implemented by IIS in unmanaged code")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IApplicationHost.#GetVirtualPath()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.IIS7WorkerRequest.#InitAppVars()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Hosting.IListenerChannelCallback.#GetBlob(System.Byte[],System.Int32&)", MessageId = "0#", Justification = @"[....]: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IListenerChannelCallback.#GetBlobLength()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IListenerChannelCallback.#GetId()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IPipelineRuntime.#GetDisposeDelegate()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IPipelineRuntime.#GetExecuteDelegate()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IPipelineRuntime.#GetRoleDelegate()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.Hosting.IPphManager", MessageId = "Pph", Justification = @"[....]: Reviewed and excluded from beta2lhsd")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Hosting.IProcessHost.#EnumerateAppDomains(System.Web.Hosting.IAppDomainInfoEnum&)", MessageId = "0#", Justification = @"[....]: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Hosting.IProcessHost.#StartApplication(System.String,System.String,System.Object&)", MessageId = "2#", Justification = @"[....]: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "type", Target = "System.Web.Hosting.IProcessHostSupportFunctions", Justification = @"[....]: We need to use unmanaged code to access native configuration APIs.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetAppHostConfigFilename()", MessageId = "Filename", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting that change to rtmlhs")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetAppHostConfigFilename()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetApplicationProperties(System.String,System.String&,System.String&,System.String&,System.String&)", MessageId = "1#", Justification = @"[....]: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetApplicationProperties(System.String,System.String&,System.String&,System.String&,System.String&)", MessageId = "2#", Justification = @"[....]: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetApplicationProperties(System.String,System.String&,System.String&,System.String&,System.String&)", MessageId = "3#", Justification = @"[....]: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetApplicationProperties(System.String,System.String&,System.String&,System.String&,System.String&)", MessageId = "4#", Justification = @"[....]: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetNativeConfigurationSystem()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetRootWebConfigFilename()", MessageId = "Filename", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting that change to rtmlhs")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetRootWebConfigFilename()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#MapPath(System.String,System.String,System.String&)", MessageId = "2#", Justification = @"[....]: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Hosting.ISAPIApplicationHost.#System.Web.Hosting.IApplicationHost.GetConfigToken()", Justification = @"[....]: no outer catch around the code to display the nice error to the client (would lead to server unavailable)")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "member", Target = "System.Web.Hosting.ISAPIRuntime.#DoGCCollect()", MessageId = "System.GC.Collect", Justification = @"[....]: Required by partners using the API so it's present in spite of risks.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.ISAPIRuntime.#InitializeLifetimeService()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.ISAPIRuntime.#System.Web.Hosting.IRegisteredObject.Stop(System.Boolean)", Justification = @"[....]: These paths were verified by [....].")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.ISAPIRuntime.#System.Web.Hosting.IRegisteredObject.Stop(System.Boolean)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Hosting.ISAPIWorkerRequest", Justification = @"[....]: The lifetime of this object is managed explicitly and is tied to the request object. Adding IDisposable isn't viable for Whidbey.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#.ctor(System.IntPtr)", Justification = @"[....]: These paths were verified by [....].")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#_ecb", Justification = @"[....]: this is not an OS resource handle, but a pointer to a structure supplied by IIS. IIS controls its lifetime, ASP.NET neither allocate nor free it.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#_token", Justification = @"[....]: This handle comes from IIS and IIS does its lifetime management. Potentially we could've duplicated it and stored as a SafeHandle (a little risky) but there is already a public API that exposes it as IntPtr.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#CallEndOfRequestCallbackOnceAfterAllIoComplete()", Justification = @"[....]: no outer catch")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#GetKnownRequestHeader(System.Int32)", Justification = @"[....]: the default behavior is the desired one")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#GetLocalPort()", Justification = @"[....]: the incoming string is from IIS and it does not contain anything but digits")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#SendCalculatedContentLength(System.Int32)", Justification = @"[....]: the default behavior is the desired one")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#SendStatus(System.Int32,System.String)", Justification = @"[....]: the default behavior is the desired one")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#UnlockCachedResponseBytesOnceAfterIoComplete()", Justification = @"[....]: no outer catch")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6", Justification = @"[....]: this is by design")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6.#_entity", Justification = @"[....]: this is by design")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Hosting.MemoryBytes", Justification = @"[....]: The lifetime of this object is managed explicitly and is tied to the request object. Adding IDisposable isn't viable for Whidbey.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Hosting.MemoryBytes.#_fileHandle", Justification = @"[....]: Dmitry did not want HandleRef to be used here.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Hosting.MemoryBytes.#_intptrData", Justification = @"[....]: this is not an OS resource handle, but an memory address of unmanaged memory. It is neither allocated nor freed in managed code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#DisposeHandler(System.IntPtr)", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#GetDisposeDelegate()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#GetExecuteDelegate()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#GetRoleDelegate()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#RemoveThisAppDomainFromUnmanagedTable()", MessageId = "System.Web.HttpRuntime.AddAppDomainTraceMessage(System.String)", Justification = @"[....]: this is for internal use")]
-[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#RemoveThisAppDomainFromUnmanagedTable()", MessageId = "Mgd", Justification = @"[....]: this if for internal use")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#StopProcessing()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#StopProcessing()", MessageId = "System.Web.HttpRuntime.SetShutdownReason(System.Web.ApplicationShutdownReason,System.String)", Justification = @"[....]: ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#UnwrapContext(System.IntPtr)", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#InitializeLifetimeService()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#InitializeLifetimeService()", Justification = @"[....]: Reviewed and exluded in beta2lhsd")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#Shutdown()", Justification = @"[....]: The goal of these locks is for cross-app domain synchronization. May need further review but excluding for now")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#StartAppDomainProtocolListenerChannel(System.String,System.String,System.Web.Hosting.IListenerChannelCallback)", Justification = @"[....]: The goal of these locks is for cross-app domain synchronization. May need further review but excluding for now")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#StartApplication(System.String,System.String,System.Object&)", Justification = @"[....]: The goal of these locks is for cross-app domain synchronization. May need further review but excluding for now")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#StartProcessProtocolListenerChannel(System.String,System.Web.Hosting.IListenerChannelCallback)", Justification = @"[....]: The goal of these locks is for cross-app domain synchronization. May need further review but excluding for now")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#StopAppDomainProtocol(System.String,System.String,System.Boolean)", Justification = @"[....]: The goal of these locks is for cross-app domain synchronization. May need further review but excluding for now")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#StopAppDomainProtocolListenerChannel(System.String,System.String,System.Int32,System.Boolean)", Justification = @"[....]: The goal of these locks is for cross-app domain synchronization. May need further review but excluding for now")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#StopProcessProtocol(System.String,System.Boolean)", Justification = @"[....]: The goal of these locks is for cross-app domain synchronization. May need further review but excluding for now")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#StopProcessProtocolListenerChannel(System.String,System.Int32,System.Boolean)", Justification = @"[....]: The goal of these locks is for cross-app domain synchronization. May need further review but excluding for now")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ProcessHostFactoryHelper.#InitializeLifetimeService()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.ProcessHostFactoryHelper.#InitializeLifetimeService()", Justification = @"[....]: Reviewed and exluded in beta2lhsd")]
-[module: SuppressMessage("Microsoft.Security", "CA2126:TypeLinkDemandsRequireInheritanceDemands", Scope = "type", Target = "System.Web.Hosting.ProcessProtocolHandler", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ProcessProtocolHandler.#InitializeLifetimeService()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.ProcessProtocolHandler.#InitializeLifetimeService()", Justification = @"[....]: Reviewed and exluded in beta2lhsd")]
-[module: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Hosting.ProcessProtocolHandler.#StartListenerChannel(System.Web.Hosting.IListenerChannelCallback,System.Web.Hosting.IAdphManager)", MessageId = "1#", Justification = @"[....]: Reviewed and excluded from beta2lhsd")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Hosting.ProcessProtocolHandler.#StartListenerChannel(System.Web.Hosting.IListenerChannelCallback,System.Web.Hosting.IAdphManager)", MessageId = "Adph", Justification = @"[....]: Reviewed and excluded from beta2lhsd")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Hosting.RecyclableArrayHelper", Justification = @"[....]: BAD RULE: the class has static methods that are called")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Hosting.ServerVarCharBuffer", Justification = @"[....]: The lifetime of this object is managed explicitly and is tied to the request object. Adding IDisposable isn't viable for Whidbey.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Hosting.ServerVarCharBuffer.#_pinnedAddr", Justification = @"[....]: this is not an OS resource handle, but an memory address of a pinned object (the duration of pinning is controlled ASP.NET)")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.ServerVarCharBuffer.#Dispose()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.ServerVarCharBuffer.#get_PinnedAddress()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.SimpleApplicationHost.#InitializeLifetimeService()", Justification = @"[....]: Reviewed and exluded in beta2lhsd")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.Hosting.SimpleApplicationHost.#System.Web.Hosting.IApplicationHost.GetConfigToken()", Justification = @"[....]: We expose corresponding protected properties to derived classes.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.Hosting.SimpleApplicationHost.#System.Web.Hosting.IApplicationHost.GetPhysicalPath()", Justification = @"[....]: We expose corresponding protected properties to derived classes.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.Hosting.SimpleApplicationHost.#System.Web.Hosting.IApplicationHost.GetSiteID()", Justification = @"[....]: Following the pattern of GetSiteName.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.Hosting.SimpleApplicationHost.#System.Web.Hosting.IApplicationHost.GetSiteName()", Justification = @"[....]: We expose corresponding protected properties to derived classes.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.SimpleWorkerRequest.#.ctor(System.String,System.String,System.IO.TextWriter)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.SimpleWorkerRequest.#.ctor(System.String,System.String,System.String,System.String,System.IO.TextWriter)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Hosting.UnsafeIISMethods.#MgdEtwGetTraceConfig(System.IntPtr,System.Boolean&,System.Int32&,System.Int32&)", Justification = @"[....]: ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Hosting.UnsafeIISMethods.#MgdGetApplicationInfo(System.IntPtr,System.IntPtr&,System.Int32&,System.IntPtr&,System.Int32&)", Justification = @"[....]: reviewed")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Hosting.UnsafeIISMethods.#MgdGetCurrentModuleIndex(System.IntPtr)", Justification = @"[....]: reviewed as per other pipeline runtime entry points")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Hosting.UnsafeIISMethods.#MgdGetCurrentNotification(System.IntPtr)", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting changes")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Hosting.UnsafeIISMethods.#MgdGetNextNotification(System.IntPtr,System.Web.RequestNotificationStatus)", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting changes")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Hosting.UnsafeIISMethods.#MgdGetRequestTraceGuid(System.IntPtr,System.Guid&)", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting changes")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Hosting.UnsafeIISMethods.#MgdIsCurrentNotificationPost(System.IntPtr)", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting changes")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Hosting.UnsafeIISMethods.#MgdRegisterEventSubscription(System.IntPtr,System.String,System.Web.RequestNotification,System.Web.RequestNotification,System.String,System.String,System.IntPtr,System.Boolean)", Justification = @"[....]: k")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.VirtualFileBase.#InitializeLifetimeService()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.VirtualPathProvider.#InitializeLifetimeService()", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1025:ReplaceRepetitiveArgumentsWithParamsArray", Scope = "member", Target = "System.Web.Mail.SmtpMail.#Send(System.String,System.String,System.String,System.String)", Justification = @"[....]: Method is more usable with named parameters than a string array. Also would be a breaking change.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Mail.SmtpMail+LateBoundAccessHelper.#CallMethod(System.Object,System.String,System.Object[])", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Mail.SmtpMail+LateBoundAccessHelper.#GetProp(System.Object,System.String)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Mail.SmtpMail+LateBoundAccessHelper.#get_LateBoundType()", Justification = @"[....]: Per DmityrR, we should exclude all violations of this rule since the framework makes no guarantee about what exceptions may be thrown.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Mail.SmtpMail+LateBoundAccessHelper.#SetProp(System.Object,System.String,System.Object)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Mail.SmtpMail+LateBoundAccessHelper.#SetProp(System.Object,System.String,System.Object,System.Object)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Mail.SmtpMail+LateBoundAccessHelper.#SetProp(System.Type,System.Object,System.String,System.Object)", Justification = @"[....]: ok")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Mail.SmtpMail+LateBoundAccessHelper.#SetProp(System.Type,System.Object,System.String,System.Object,System.Object)", Justification = @"[....]: ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.EventNotificationType.#Unbuffered", Justification = @"[....]: The word 'unbuffered' is used frequently in other computer document. E.g. there are 79 occurence of this word in MSDN library. Will ask PM to think of a better name, if possible.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.Management.IRegiisUtility", Justification = @"[....]: This was excluded before the namespace change")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Management.IRegiisUtility.#ProtectedConfigAction(System.Int64,System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.IntPtr&)", MessageId = "8#", Justification = @"[....]: These shipped in Whidbey and we are simply reverting them to their original state.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.IRegiisUtility.#ProtectedConfigAction(System.Int64,System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.IntPtr&)", MessageId = "csp", Justification = @"[....]: These shipped in Whidbey and we are simply reverting them to their original state.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Management.IRegiisUtility.#RegisterAsnetMmcAssembly(System.Int32,System.String,System.String,System.IntPtr&)", MessageId = "3#", Justification = @"[....]: IRegiisUtility is an internal interface used by aspnet_regiis.exe and Asp.net MMC")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.IRegiisUtility.#RegisterAsnetMmcAssembly(System.Int32,System.String,System.String,System.IntPtr&)", MessageId = "Asnet", Justification = @"[....]: IRegiisUtility is an internal interface used by aspnet_regiis.exe and Asp.net MMC")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.IRegiisUtility.#RegisterAsnetMmcAssembly(System.Int32,System.String,System.String,System.IntPtr&)", MessageId = "Mmc", Justification = @"[....]: IRegiisUtility is an internal interface used by aspnet_regiis.exe and Asp.net MMC")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Management.IRegiisUtility.#RegisterSystemWebAssembly(System.Int32,System.IntPtr&)", MessageId = "1#", Justification = @"[....]: IRegiisUtility is an internal interface used by aspnet_regiis.exe and Asp.net MMC")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Management.IRegiisUtility.#RemoveBrowserCaps(System.IntPtr&)", MessageId = "0#", Justification = @"[....]: It's an ""internal"" method used by aspnet_regiis. The 'out' param is needed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Management.MailWebEventProvider.#SendMail(System.Net.Mail.MailMessage)", Justification = @"[....]: It is okay to not catch non compliant exceptions in this case (No security implications)")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Management.MailWebEventProvider.#SendMail(System.Net.Mail.MailMessage)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.Management.RegiisUtility", Justification = @"[....]: This was excluded before the namespace change")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Management.RegiisUtility.#RegisterAsnetMmcAssembly(System.Int32,System.String,System.String,System.IntPtr&)", Justification = @"[....]: It is okay to not catch non compliant exceptions. There is no security clean up involved and the whole purpose for catching the exception if just to get the exception info to return to caller.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Management.RegiisUtility.#RegisterAsnetMmcAssembly(System.Int32,System.String,System.String,System.IntPtr&)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Management.RegiisUtility.#RegisterSystemWebAssembly(System.Int32,System.IntPtr&)", Justification = @"[....]: It is fine to not catch non compliant exceptions, it does not present a security risk")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Management.RegiisUtility.#RemoveBrowserCaps(System.IntPtr&)", Justification = @"[....]: It is fine to not catch non compliant exceptions in this case. There is no security clean up involved.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Management.SqlExecutionException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Usage", "CA2217:DoNotMarkEnumsWithFlags", Scope = "type", Target = "System.Web.Management.SqlFeatures", Justification = @"[....]: This was excluded before the namespace change")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Management.SqlServices.#get_ApplicationServiceTables()", Justification = @"[....]: called by suite")]
-[module: SuppressMessage("Microsoft.Security", "CA2100:ReviewSqlQueriesForSecurityVulnerabilities", Scope = "member", Target = "System.Web.Management.SqlServices.#ExecuteFile(System.String,System.String,System.String,System.String,System.Data.SqlClient.SqlConnection,System.Boolean,System.Boolean,System.Web.Management.SessionStateType)", Justification = @"[....]: No user input")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Management.SqlServices.#GetSqlConnection(System.String,System.String,System.String,System.Boolean,System.String)", Justification = @"[....]: It is okay to not catch non compliant exceptions. There is no security clean up involved and the whole purpose for catching the exception if just to get the exception info to return to caller.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Management.SqlServices.#Install(System.String,System.String,System.String)", Justification = @"[....]: The callstack it contains is incorrect.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Management.SqlServices.#Install(System.String,System.Web.Management.SqlFeatures,System.String)", MessageId = "2#", Justification = @"[....]: This was excluded before the namespace change")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Management.SqlServices.#InstallSessionState(System.String,System.Web.Management.SessionStateType,System.String)", MessageId = "2#", Justification = @"[....]: This was excluded before the namespace change")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Management.SqlServices.#Uninstall(System.String,System.Web.Management.SqlFeatures,System.String)", MessageId = "2#", Justification = @"[....]: This was excluded before the namespace change")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Management.SqlServices.#UninstallSessionState(System.String,System.Web.Management.SessionStateType,System.String)", MessageId = "2#", Justification = @"[....]: This was excluded before the namespace change")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Management.SqlWebEventProvider.#WriteToSQL(System.Web.Management.WebBaseEventCollection,System.Int32,System.DateTime)", Justification = @"[....]: It is okay to not catch non compliant exceptions. There is no security clean up involved and the whole purpose for catching the exception if just to get the exception info to return to caller.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Management.SqlWebEventProvider.#WriteToSQL(System.Web.Management.WebBaseEventCollection,System.Int32,System.DateTime)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Management.WebApplicationInformation.#GetMachineNameWithAssert()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Design", "CA1052:StaticHolderTypesShouldBeSealed", Scope = "type", Target = "System.Web.Management.WebApplicationLifetimeEvent", Justification = @"[....]: This was excluded before the namespace change")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebApplicationLifetimeEvent.#IncrementPerfCounters()", MessageId = "Perf", Justification = @"[....]: IncrementPerfCounters is an internal method.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebBaseErrorEvent.#IncrementPerfCounters()", MessageId = "Perf", Justification = @"[....]: IncrementPerfCounters is an internal method.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#EventID", Justification = @"[....]: ID ok for ASP.NET (from Phuffs comments on similar rules)")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.RemoteWebConfigurationHostServer.#WriteData(System.String,System.String,System.Byte[],System.Int64&)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.RoleManagerSection.#CookieRequireSSL", Justification = @"rodneyk: These are legacy public methods which would cause a break in customer's code if changed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.RoleManagerSection.#get_CookieRequireSSL()", Justification = @"rodneyk: These are legacy public methods which would cause a break in customer's code if changed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Configuration.RoleManagerSection.#set_CookieRequireSSL(System.Boolean)", Justification = @"rodneyk: These are legacy public methods which would cause a break in customer's code if changed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.RuleSettings.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.RuleSettingsCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.RuleSettingsCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Configuration.RuntimeConfig.#GetSectionObject(System.String)", Justification = @"manuva: RolePrincipal.ToEncryptedTicket should work in partial trust")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.Configuration.SessionPageStateSection", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Performance", "CA1803:AvoidCostlyCallsWherePossible", Scope = "member", Target = "System.Web.Configuration.SessionStateSection.#ConvertToCookieMode(System.String)", Justification = @"patng: By design because we want to map ""true"" and ""false"" into one of the enum values as well. So we must first check if the incoming string is part of the enum or not.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.SessionStateSection.#SessionIDManagerType", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.SessionStateSection.#Validate(System.Object)", Justification = @"adams: The parameter name 'value' is not helpful to the consumer of the message. The name of the section or element that 'value' represents is much more helpful.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.Configuration.SiteMapSection", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencyDatabase.#.ctor(System.String,System.String)", MessageId = "1#", Justification = @"patng: By design.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencyDatabase.#.ctor(System.String,System.String,System.Int32)", MessageId = "1#", Justification = @"patng: By design.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencyDatabase.#get_ElementProperty()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencyDatabase.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencyDatabase.#Validate(System.Object)", Justification = @"adams: The parameter name 'value' is not helpful to the consumer of the message. The name of the section or element that 'value' represents is much more helpful.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencyDatabaseCollection.#AllKeys", Justification = @"rodneyk: This is designed behavior mimicking AllKeys in other collections")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencyDatabaseCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencyDatabaseCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencySection.#Databases", Justification = @"fabioy: Config property must be settable.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.SqlCacheDependencySection.#Validate(System.Object)", Justification = @"adams: The parameter name 'value' is not helpful to the consumer of the message. The name of the section or element that 'value' represents is much more helpful.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.SystemWebSectionGroup.#SiteMap", MessageId = "SiteMap", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagMapCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagMapCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.TagMapCollection.#get_TagTypeMappingInternal()", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagMapInfo.#Equals(System.Object)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagMapInfo.#GetHashCode()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagMapInfo.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagMapInfo.#SerializeElement(System.Xml.XmlWriter,System.Boolean)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.TagPrefixCollection", Justification = @"rodneyk: The base type is used to determine the strong type.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixCollection.#get_CollectionType()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixCollection.#get_ElementName()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixCollection.#get_ThrowOnDuplicate()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.TagPrefixInfo.#.ctor(System.String,System.String,System.String,System.String,System.String)", MessageId = "nameSpace", Justification = @"tinghaoy: namespace is a reserved keyword. Use nameSpace instead.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixInfo.#get_ElementProperty()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixInfo.#Equals(System.Object)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixInfo.#GetHashCode()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TagPrefixInfo.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.TagPrefixInfo.#Validate(System.Object)", Justification = @"adams: The parameter name 'value' is not helpful to the consumer of the message. The name of the section or element that 'value' represents is much more helpful.")]
+[module: SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "type", Target = "System.Web.Configuration.TraceDisplayMode", Justification = @"haok: Everett enum")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TransformerInfo.#Equals(System.Object)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TransformerInfo.#GetHashCode()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TransformerInfo.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TransformerInfoCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TransformerInfoCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Configuration.TransformerInfoCollection.#GetTransformerEntries()", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TrustLevel.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Configuration.TrustLevelCollection", Justification = @"rodneyk: The base type is used to determine the strong type.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TrustLevelCollection.#get_CollectionType()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TrustLevelCollection.#CreateNewElement()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TrustLevelCollection.#get_ElementName()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TrustLevelCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TrustLevelCollection.#IsElementName(System.String)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.TrustLevelCollection.#get_ThrowOnDuplicate()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Configuration.TrustSection.#OriginUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.Configuration.UrlMapping.#.ctor(System.String,System.String)", MessageId = "0#", Justification = @"phuff: Our url properties are commonly strings.")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.Configuration.UrlMapping.#.ctor(System.String,System.String)", MessageId = "1#", Justification = @"phuff: Our url properties are commonly strings.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Configuration.UrlMapping.#MappedUrl", Justification = @"phuff: Our url properties are commonly strings.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.UrlMapping.#get_Properties()", Justification = @"phuff: Classes we don't own can't be changed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Configuration.UrlMapping.#Url", Justification = @"phuff: Our url properties are commonly strings.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.UrlMappingCollection.#Add(System.Web.Configuration.UrlMapping)", MessageId = "0#", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.Configuration.UrlMappingCollection.#AllKeys", Justification = @"phuff: These return an array from the base class, which is copied fresh with each call.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.UrlMappingCollection.#CreateNewElement()", Justification = @"phuff: Classes we don't own can't be changed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.UrlMappingCollection.#GetElementKey(System.Configuration.ConfigurationElement)", Justification = @"phuff: Classes we don't own can't be changed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Configuration.UrlMappingCollection.#Remove(System.Web.Configuration.UrlMapping)", MessageId = "0#", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.VirtualDirectoryMapping.#set_ConfigFileBaseName(System.String)", Justification = @"adams: The exception is correctly instantiated, fxcop is confused by HttpRuntime.FormatResourceString")]
+[module: SuppressMessage("Microsoft.Usage", "CA2237:MarkISerializableTypesWithSerializable", Scope = "type", Target = "System.Web.Configuration.VirtualDirectoryMappingCollection", Justification = @"adams: Class is marked as Serializable, fxcop is confused.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Configuration.VirtualDirectoryMappingCollection.#Add(System.String,System.Web.Configuration.VirtualDirectoryMapping)", MessageId = "System.ArgumentException.#ctor(System.String)", Justification = @"adams: A literal is not passed, fxcop is confused by HttpFormatString as part of the argument.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Configuration.VirtualDirectoryMappingCollection.#Add(System.String,System.Web.Configuration.VirtualDirectoryMapping)", MessageId = "System.InvalidOperationException.#ctor(System.String)", Justification = @"adams: A literal is not passed, fxcop is confused by HttpFormatString as part of the argument.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.VirtualDirectoryMappingCollection.#Add(System.String,System.Web.Configuration.VirtualDirectoryMapping)", Justification = @"adams: The exception is correctly instantiated, fxcop is confused by HttpRuntime.FormatResourceString")]
+[module: SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "type", Target = "System.Web.Configuration.WebApplicationLevel", Justification = @"phuff: This was a conscious decision by adams because there's no reasonable default value. The expectation is that there may be new interspersed values in the future.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Configuration.WebBaseEventKeyComparer.#Compare(System.Object,System.Object)", Justification = @"patng: It's used by HealthMonitoringSectionHelper.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.WebConfigurationFileMap.#Clone()", Justification = @"phuff: Classes we don't own can't be changed.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Configuration.WebConfigurationHost", Justification = @"adams: WebConfigurationHost is instantiated by System.dll through reflection. It is not referenced directly in order to avoid loading System.Web.dll every time System.dll is loaded.")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Configuration.WebConfigurationHost.#get_ConfigurationFactory()", Justification = @"patng: We're creating a hardcoded class that lives in system.configuration.dll. It's safe.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Configuration.WebConfigurationHost.#InitForConfiguration(System.String&,System.String&,System.String&,System.Configuration.Internal.IInternalConfigRoot,System.Object[])", Justification = @"adams: The 'site' argument is provided in an order params array. The original public method responsible for the argument has an argument named 'site'.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Configuration.WebConfigurationHost.#IsDefinitionAllowed(System.String,System.Configuration.ConfigurationAllowDefinition,System.Configuration.ConfigurationAllowExeDefinition)", MessageId = "System.InvalidOperationException.#ctor(System.String)", Justification = @"adams: A literal is not passed, fxcop is confused by HttpFormatString as part of the argument.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Configuration.WebConfigurationHost.#VerifyDefinitionAllowed(System.String,System.Configuration.ConfigurationAllowDefinition,System.Configuration.ConfigurationAllowExeDefinition,System.Configuration.Internal.IConfigErrorInfo)", MessageId = "System.InvalidOperationException.#ctor(System.String)", Justification = @"adams: A literal is not passed, fxcop is confused by HttpFormatString as part of the argument.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Configuration.WebConfigurationManager.#OpenMachineConfiguration(System.String,System.String,System.IntPtr)", Justification = @"tmarq: ok")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.Configuration.WebConfigurationManager.#OpenMappedWebConfiguration(System.Web.Configuration.WebConfigurationFileMap,System.String)", Justification = @"phuff: The intention appears to be to force this to be a WebConfigurationFileMap.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.Configuration.WebConfigurationManager.#OpenMappedWebConfiguration(System.Web.Configuration.WebConfigurationFileMap,System.String,System.String)", Justification = @"phuff: The intention appears to be to force this to be a WebConfigurationFileMap.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.Configuration.WebConfigurationManager.#OpenMappedWebConfiguration(System.Web.Configuration.WebConfigurationFileMap,System.String,System.String,System.String)", Justification = @"phuff: The intention appears to be to force this to be a WebConfigurationFileMap.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Configuration.WebConfigurationManager.#OpenWebConfiguration(System.String,System.String,System.String,System.String,System.IntPtr)", Justification = @"tmarq: ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Configuration.WebConfigurationManager.#OpenWebConfigurationImpl(System.Web.Configuration.WebLevel,System.Configuration.ConfigurationFileMap,System.String,System.String,System.String,System.String,System.String,System.String,System.IntPtr)", Justification = @"phuff: Config should not be protected by link demands.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.WebControlsSection.#GetRuntimeObject()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.WebPartsPersonalization.#get_Properties()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.WebPartsPersonalizationAuthorization.#get_Properties()", Justification = @"phuff: Classes we don't own can't be changed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Configuration.WebPartsSection.#GetRuntimeObject()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.MSInternal", "CA903:InternalNamespaceShouldNotContainPublicTypes", Scope = "type", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost", Justification = @"phuff: This interface is public so other assemblies can get to it, but no one outside of Microsoft should ever use it. This is the alternative to reflecting on the assembly to get the interface.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost.#GetConfigPathFromSiteIDAndVPath(System.String,System.String)", MessageId = "vpath", Justification = @"phuff: Apllings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost.#GetConfigPathFromSiteIDAndVPath(System.String,System.String)", Justification = @"phuff: ID approved acronym.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost.#GetConfigPathFromSiteIDAndVPath(System.String,System.String)", MessageId = "0#", Justification = @"phuff: ID approved acronym.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost.#GetSiteIDAndVPathFromConfigPath(System.String,System.String&,System.String&)", MessageId = "1#", Justification = @"phuff: Already using a return parameter or more than one out parameter.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost.#GetSiteIDAndVPathFromConfigPath(System.String,System.String&,System.String&)", MessageId = "2#", Justification = @"phuff: Already using a return parameter or more than one out parameter.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost.#GetSiteIDAndVPathFromConfigPath(System.String,System.String&,System.String&)", MessageId = "vpath", Justification = @"phuff: Apllings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost.#GetSiteIDAndVPathFromConfigPath(System.String,System.String&,System.String&)", Justification = @"phuff: ID approved acronym.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Configuration.Internal.IInternalConfigWebHost.#GetSiteIDAndVPathFromConfigPath(System.String,System.String&,System.String&)", MessageId = "1#", Justification = @"phuff: ID approved acronym.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.DataAccess.DataConnectionHelper.#GetCurrentName()", Justification = @"minglu: This comes out of the security code review.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Handlers.AssemblyResourceLoader.#GetAssemblyInfoWithAssertInternal(System.Reflection.Assembly)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Handlers.AssemblyResourceLoader.#GetDiskResourcePath(System.String)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#.ctor()", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#CreateControlTable(System.Data.DataTable)", MessageId = "System.Web.Handlers.TraceHandler.AddCell(System.Web.UI.WebControls.TableRow,System.String)", Justification = @"haok: HTML strings")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#CreateControlTable(System.Data.DataTable)", MessageId = "System.Web.Handlers.TraceHandler.AddHeaderCell(System.Web.UI.WebControls.TableRow,System.String)", Justification = @"haok: html strings")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#CreateDetailsTable(System.Data.DataTable)", MessageId = "System.Web.Handlers.TraceHandler.AddHeaderCell(System.Web.UI.WebControls.TableRow,System.String)", Justification = @"haok: html strings")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#CreateTable(System.Data.DataTable,System.Boolean)", MessageId = "System.Web.Handlers.TraceHandler.AddCell(System.Web.UI.WebControls.TableRow,System.String)", Justification = @"haok: HTML strings")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#CreateTable(System.Data.DataTable,System.Boolean)", MessageId = "System.Web.Handlers.TraceHandler.AddHeaderCell(System.Web.UI.WebControls.TableRow,System.String)", Justification = @"haok: html strings")]
+[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#CreateTable(System.Data.DataTable,System.Boolean)", MessageId = "nbsp", Justification = @"haok: HTML strings")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#CreateTraceTable(System.Data.DataTable)", MessageId = "System.Web.Handlers.TraceHandler.AddHeaderCell(System.Web.UI.WebControls.TableRow,System.String)", Justification = @"haok: html strings")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#ShowRequests(System.Collections.IList)", MessageId = "System.Web.Handlers.TraceHandler.AddCell(System.Web.UI.WebControls.TableRow,System.String)", Justification = @"haok: html strings")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#ShowRequests(System.Collections.IList)", MessageId = "System.Web.Handlers.TraceHandler.AddHeaderCell(System.Web.UI.WebControls.TableRow,System.String)", Justification = @"haok: html strings")]
+[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#ShowRequests(System.Collections.IList)", MessageId = "axd", Justification = @"haok: html strings")]
+[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Handlers.TraceHandler.#ShowRequests(System.Collections.IList)", MessageId = "nbsp", Justification = @"haok: html strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix", Scope = "type", Target = "System.Web.Hosting.AppDomainInfoEnum", Justification = @"erikols: reviewed and exluded in beta2lhsd")]
+[module: SuppressMessage("Microsoft.Security", "CA2126:TypeLinkDemandsRequireInheritanceDemands", Scope = "type", Target = "System.Web.Hosting.AppDomainProtocolHandler", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.AppDomainProtocolHandler.#InitializeLifetimeService()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.AppDomainProtocolHandler.#InitializeLifetimeService()", Justification = @"erikols: Reviewed and exluded in beta2lhsd")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationHost.#CreateApplicationHost(System.Type,System.String,System.String)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Hosting.ApplicationHost.#CreateApplicationHost(System.Type,System.String,System.String)", Justification = @"dmitryr: ToString() is used to generate string IDs for internal use, it is not displayed to the user")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Hosting.ApplicationInfo.#ID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#Close()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#ConstructAppDomainId(System.String)", Justification = @"dmitryr: ToString() is used to generate string IDs for internal use, it is not displayed to the user")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#CreateAppDomainWithHostingEnvironment(System.String,System.Web.Hosting.IApplicationHost,System.Web.Hosting.HostingEnvironmentParameters)", Justification = @"phuff: No security issues= non-ClsCompliant exceptions are ok to bubble up here.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#CreateAppDomainWithHostingEnvironmentAndReportErrors(System.String,System.Web.Hosting.IApplicationHost,System.Web.Hosting.HostingEnvironmentParameters)", Justification = @"phuff: No security issues= non-ClsCompliant exceptions are ok to bubble up here.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#CreateObject(System.String,System.Type,System.String,System.String,System.Boolean)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#CreateObject(System.String,System.Type,System.String,System.String,System.Boolean,System.Boolean)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#CreateObject(System.Web.Hosting.IApplicationHost,System.Type)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#CreateObjectInternal(System.String,System.Type,System.Web.Hosting.IApplicationHost,System.Boolean)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#CreateObjectWithDefaultAppHostAndAppId(System.String,System.String,System.Type,System.String&)", Justification = @"dmitryr: new method, will be used by web admin")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#CreateObjectWithDefaultAppHostAndAppId(System.String,System.Web.VirtualPath,System.Type,System.String&)", Justification = @"davidebb: Called by reflection.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#GetAppDomainInfos()", Justification = @"erikols: reviewed")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#GetApplicationManager()", Justification = @"dmitryr: per spec")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#GetObject(System.String,System.Type)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#GetRunningApplications()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#HostingEnvironmentShutdownInitiated(System.String,System.Web.Hosting.HostingEnvironment)", Justification = @"tmarq: ignore")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#InitializeLifetimeService()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#Open()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#ShutdownAll()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#ShutdownApplication(System.String)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ApplicationManager.#StopObject(System.String,System.Type)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Hosting.AppManagerAppDomainFactory.#Create(System.String,System.String)", Justification = @"phuff: No security issues= non-ClsCompliant exceptions are ok to bubble up here.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Hosting.ContextBase", Justification = @"dmitryr: static methods are used")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.ContextBase.#SwitchContext(System.Object)", Justification = @"erikols: from whidbey")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Hosting.HostingEnvironment", Justification = @"dmitryr: HostingEnvironment has the lifetime of app domain and is never disposed before app domain is gone")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#.ctor()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#_configToken", Justification = @"dmitryr: HostingEnvironment (which is never GC'd) controls the lifetime of this handle")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_AppConfigPath()", Justification = @"adams: If ASP.NET is not hosted, and thus the link demand not satisifed, this code path is not followed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_AppDomainsCount()", Justification = @"dmitryr: AspNet Link Demand is on all public classes in System.Web")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_ApplicationHost()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#ApplicationID", Justification = @"rodneyk: ID ok for ASP.NET (from Phuffs comments on similar rules)")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_ApplicationIdentityToken()", Justification = @"dmitryr: config system classes don't have the demand for apsnethostingpermisiion but still calls into impersonation code - this is ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_ApplicationVirtualPath()", Justification = @"adams: In cases where HostingEnvironment methods are called and the LinkDemand is not satisfied, the methods return null or 0.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#Impersonate()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#Impersonate(System.IntPtr)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#Impersonate(System.IntPtr,System.String)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#Initialize(System.Web.Hosting.ApplicationManager,System.Web.Hosting.IApplicationHost,System.Web.Configuration.IConfigMapPathFactory,System.Web.Hosting.HostingEnvironmentParameters)", Justification = @"phuff: No security issues= non-ClsCompliant exceptions are ok to bubble up here.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#InitializeLifetimeService()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#InitiateShutdown()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#InitiateShutdownInternal()", MessageId = "System.Web.HttpRuntime.SetShutdownReason(System.Web.ApplicationShutdownReason,System.String)", Justification = @"tmarq: This is only used internally.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_IsHosted()", Justification = @"adams: In cases where HostingEnvironment methods are called and the LinkDemand is not satisfied, the methods return null or 0.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#MapPathInternal(System.String)", Justification = @"dmitryr: AspNet Link Demand is on all public classes in System.Web")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#MapPathInternal(System.String,System.Boolean)", Justification = @"adams: When the LinkDemand is not satisfied, the method returns either null or the value passed in, so there is no security vulnerability.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#MapPathInternal(System.Web.VirtualPath,System.Boolean)", Justification = @"davidebb: This was already excluded but popped up again because of small signature change.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#RegisterObject(System.Web.Hosting.IRegisteredObject)", Justification = @"dmitryr: AspNet Link Demand is on all public classes in System.Web")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#RegisterObject(System.Web.Hosting.IRegisteredObject)", Justification = @"phuff: The method security is a full demand of the same permission the class's link demand covers.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_SiteID()", Justification = @"adams: In cases where HostingEnvironment methods are called and the LinkDemand is not satisfied, the methods return null or 0.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_SiteName()", Justification = @"dmitryr: AspNet Link Demand is on all public classes in System.Web")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#get_SiteNameNoDemand()", Justification = @"adams: In cases where HostingEnvironment methods are called and the LinkDemand is not satisfied, the methods return null or 0.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#UnregisterObject(System.Web.Hosting.IRegisteredObject)", Justification = @"dmitryr: AspNet Link Demand is on all public classes in System.Web")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.HostingEnvironment.#UnregisterObject(System.Web.Hosting.IRegisteredObject)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Usage", "CA2235:MarkAllNonSerializableFields", Scope = "member", Target = "System.Web.Hosting.HostingEnvironmentParameters.#_hostingFlags", Justification = @"erikols: This is an fxcop bug (403281). The field noted above actually is serializable because it's an enum.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.Hosting.IAdphManager", MessageId = "Adph", Justification = @"erikols: Reviewed and excluded from beta2lhsd")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IAppDomainInfo.#GetId()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IAppDomainInfo.#GetPhysicalPath()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IAppDomainInfo.#GetSiteId()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IAppDomainInfo.#GetVirtualPath()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
+[module: SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix", Scope = "type", Target = "System.Web.Hosting.IAppDomainInfoEnum", Justification = @"erikols: reviewed and exluded in beta2lhsd")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IAppDomainInfoEnum.#GetData()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IApplicationHost.#GetConfigMapPathFactory()", Justification = @"adams: This interface has a native counterpart, so using a method here is better.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IApplicationHost.#GetConfigToken()", Justification = @"dmitryr: This WebHost interface is used to Interop only - it is implemented by IIS in unmanaged code")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IApplicationHost.#GetPhysicalPath()", Justification = @"dmitryr: This WebHost interface is used to Interop only - it is implemented by IIS in unmanaged code")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Hosting.IApplicationHost.#GetSiteID()", Justification = @"adams: In System.Web, we use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IApplicationHost.#GetSiteID()", Justification = @"adams: In System.Web, we use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IApplicationHost.#GetSiteName()", Justification = @"dmitryr: This WebHost interface is used to Interop only - it is implemented by IIS in unmanaged code")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IApplicationHost.#GetVirtualPath()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.IIS7WorkerRequest.#InitAppVars()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Hosting.IListenerChannelCallback.#GetBlob(System.Byte[],System.Int32&)", MessageId = "0#", Justification = @"erikols: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IListenerChannelCallback.#GetBlobLength()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IListenerChannelCallback.#GetId()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IPipelineRuntime.#GetDisposeDelegate()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IPipelineRuntime.#GetExecuteDelegate()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IPipelineRuntime.#GetRoleDelegate()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.Hosting.IPphManager", MessageId = "Pph", Justification = @"erikols: Reviewed and excluded from beta2lhsd")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Hosting.IProcessHost.#EnumerateAppDomains(System.Web.Hosting.IAppDomainInfoEnum&)", MessageId = "0#", Justification = @"erikols: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Hosting.IProcessHost.#StartApplication(System.String,System.String,System.Object&)", MessageId = "2#", Justification = @"erikols: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "type", Target = "System.Web.Hosting.IProcessHostSupportFunctions", Justification = @"andlin: We need to use unmanaged code to access native configuration APIs.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetAppHostConfigFilename()", MessageId = "Filename", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting that change to rtmlhs")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetAppHostConfigFilename()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetApplicationProperties(System.String,System.String&,System.String&,System.String&,System.String&)", MessageId = "1#", Justification = @"erikols: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetApplicationProperties(System.String,System.String&,System.String&,System.String&,System.String&)", MessageId = "2#", Justification = @"erikols: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetApplicationProperties(System.String,System.String&,System.String&,System.String&,System.String&)", MessageId = "3#", Justification = @"erikols: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetApplicationProperties(System.String,System.String&,System.String&,System.String&,System.String&)", MessageId = "4#", Justification = @"erikols: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetNativeConfigurationSystem()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetRootWebConfigFilename()", MessageId = "Filename", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting that change to rtmlhs")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#GetRootWebConfigFilename()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, interfaces used with native COM clients, methods preferred after review")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Hosting.IProcessHostSupportFunctions.#MapPath(System.String,System.String,System.String&)", MessageId = "2#", Justification = @"erikols: Reviewed and excluded in beta2lhsd, for efficient marshalling with native code")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Hosting.ISAPIApplicationHost.#System.Web.Hosting.IApplicationHost.GetConfigToken()", Justification = @"dmitryr: no outer catch around the code to display the nice error to the client (would lead to server unavailable)")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", Scope = "member", Target = "System.Web.Hosting.ISAPIRuntime.#DoGCCollect()", MessageId = "System.GC.Collect", Justification = @"erikols: Required by partners using the API so it's present in spite of risks.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.ISAPIRuntime.#InitializeLifetimeService()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.ISAPIRuntime.#System.Web.Hosting.IRegisteredObject.Stop(System.Boolean)", Justification = @"phuff: These paths were verified by TMarq.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.ISAPIRuntime.#System.Web.Hosting.IRegisteredObject.Stop(System.Boolean)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Hosting.ISAPIWorkerRequest", Justification = @"erikols: The lifetime of this object is managed explicitly and is tied to the request object. Adding IDisposable isn't viable for Whidbey.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#.ctor(System.IntPtr)", Justification = @"phuff: These paths were verified by TMarq.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#_ecb", Justification = @"dmitryr: this is not an OS resource handle, but a pointer to a structure supplied by IIS. IIS controls its lifetime, ASP.NET neither allocate nor free it.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#_token", Justification = @"dmitryr: This handle comes from IIS and IIS does its lifetime management. Potentially we could've duplicated it and stored as a SafeHandle (a little risky) but there is already a public API that exposes it as IntPtr.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#CallEndOfRequestCallbackOnceAfterAllIoComplete()", Justification = @"dmitryr: no outer catch")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#GetKnownRequestHeader(System.Int32)", Justification = @"dmitryr: the default behavior is the desired one")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#GetLocalPort()", Justification = @"dmitryr: the incoming string is from IIS and it does not contain anything but digits")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#SendCalculatedContentLength(System.Int32)", Justification = @"dmitryr: the default behavior is the desired one")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#SendStatus(System.Int32,System.String)", Justification = @"dmitryr: the default behavior is the desired one")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequest.#UnlockCachedResponseBytesOnceAfterIoComplete()", Justification = @"dmitryr: no outer catch")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6", Justification = @"tmarq: this is by design")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6.#_entity", Justification = @"tmarq: this is by design")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Hosting.MemoryBytes", Justification = @"erikols: The lifetime of this object is managed explicitly and is tied to the request object. Adding IDisposable isn't viable for Whidbey.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Hosting.MemoryBytes.#_fileHandle", Justification = @"tmarq: Dmitry did not want HandleRef to be used here.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Hosting.MemoryBytes.#_intptrData", Justification = @"dmitryr: this is not an OS resource handle, but an memory address of unmanaged memory. It is neither allocated nor freed in managed code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#DisposeHandler(System.IntPtr)", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#GetDisposeDelegate()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#GetExecuteDelegate()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#GetRoleDelegate()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#RemoveThisAppDomainFromUnmanagedTable()", MessageId = "System.Web.HttpRuntime.AddAppDomainTraceMessage(System.String)", Justification = @"tmarq: this is for internal use")]
+[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#RemoveThisAppDomainFromUnmanagedTable()", MessageId = "Mgd", Justification = @"tmarq: this if for internal use")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#StopProcessing()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#StopProcessing()", MessageId = "System.Web.HttpRuntime.SetShutdownReason(System.Web.ApplicationShutdownReason,System.String)", Justification = @"tmarq: ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.PipelineRuntime.#UnwrapContext(System.IntPtr)", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#InitializeLifetimeService()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#InitializeLifetimeService()", Justification = @"erikols: Reviewed and exluded in beta2lhsd")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#Shutdown()", Justification = @"erikols: The goal of these locks is for cross-app domain synchronization. May need further review but excluding for now")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#StartAppDomainProtocolListenerChannel(System.String,System.String,System.Web.Hosting.IListenerChannelCallback)", Justification = @"erikols: The goal of these locks is for cross-app domain synchronization. May need further review but excluding for now")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#StartApplication(System.String,System.String,System.Object&)", Justification = @"erikols: The goal of these locks is for cross-app domain synchronization. May need further review but excluding for now")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#StartProcessProtocolListenerChannel(System.String,System.Web.Hosting.IListenerChannelCallback)", Justification = @"erikols: The goal of these locks is for cross-app domain synchronization. May need further review but excluding for now")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#StopAppDomainProtocol(System.String,System.String,System.Boolean)", Justification = @"erikols: The goal of these locks is for cross-app domain synchronization. May need further review but excluding for now")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#StopAppDomainProtocolListenerChannel(System.String,System.String,System.Int32,System.Boolean)", Justification = @"erikols: The goal of these locks is for cross-app domain synchronization. May need further review but excluding for now")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#StopProcessProtocol(System.String,System.Boolean)", Justification = @"erikols: The goal of these locks is for cross-app domain synchronization. May need further review but excluding for now")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2002:DoNotLockOnObjectsWithWeakIdentity", Scope = "member", Target = "System.Web.Hosting.ProcessHost.#StopProcessProtocolListenerChannel(System.String,System.Int32,System.Boolean)", Justification = @"erikols: The goal of these locks is for cross-app domain synchronization. May need further review but excluding for now")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ProcessHostFactoryHelper.#InitializeLifetimeService()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.ProcessHostFactoryHelper.#InitializeLifetimeService()", Justification = @"erikols: Reviewed and exluded in beta2lhsd")]
+[module: SuppressMessage("Microsoft.Security", "CA2126:TypeLinkDemandsRequireInheritanceDemands", Scope = "type", Target = "System.Web.Hosting.ProcessProtocolHandler", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.ProcessProtocolHandler.#InitializeLifetimeService()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.ProcessProtocolHandler.#InitializeLifetimeService()", Justification = @"erikols: Reviewed and exluded in beta2lhsd")]
+[module: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Hosting.ProcessProtocolHandler.#StartListenerChannel(System.Web.Hosting.IListenerChannelCallback,System.Web.Hosting.IAdphManager)", MessageId = "1#", Justification = @"erikols: Reviewed and excluded from beta2lhsd")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Hosting.ProcessProtocolHandler.#StartListenerChannel(System.Web.Hosting.IListenerChannelCallback,System.Web.Hosting.IAdphManager)", MessageId = "Adph", Justification = @"erikols: Reviewed and excluded from beta2lhsd")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Hosting.RecyclableArrayHelper", Justification = @"dmitryr: BAD RULE: the class has static methods that are called")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Hosting.ServerVarCharBuffer", Justification = @"erikols: The lifetime of this object is managed explicitly and is tied to the request object. Adding IDisposable isn't viable for Whidbey.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Hosting.ServerVarCharBuffer.#_pinnedAddr", Justification = @"dmitryr: this is not an OS resource handle, but an memory address of a pinned object (the duration of pinning is controlled ASP.NET)")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.ServerVarCharBuffer.#Dispose()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Hosting.ServerVarCharBuffer.#get_PinnedAddress()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.SimpleApplicationHost.#InitializeLifetimeService()", Justification = @"erikols: Reviewed and exluded in beta2lhsd")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.Hosting.SimpleApplicationHost.#System.Web.Hosting.IApplicationHost.GetConfigToken()", Justification = @"tinghaoy: We expose corresponding protected properties to derived classes.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.Hosting.SimpleApplicationHost.#System.Web.Hosting.IApplicationHost.GetPhysicalPath()", Justification = @"tinghaoy: We expose corresponding protected properties to derived classes.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.Hosting.SimpleApplicationHost.#System.Web.Hosting.IApplicationHost.GetSiteID()", Justification = @"adams: Following the pattern of GetSiteName.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.Hosting.SimpleApplicationHost.#System.Web.Hosting.IApplicationHost.GetSiteName()", Justification = @"tinghaoy: We expose corresponding protected properties to derived classes.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.SimpleWorkerRequest.#.ctor(System.String,System.String,System.IO.TextWriter)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Hosting.SimpleWorkerRequest.#.ctor(System.String,System.String,System.String,System.String,System.IO.TextWriter)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Hosting.UnsafeIISMethods.#MgdEtwGetTraceConfig(System.IntPtr,System.Boolean&,System.Int32&,System.Int32&)", Justification = @"tmarq: ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Hosting.UnsafeIISMethods.#MgdGetApplicationInfo(System.IntPtr,System.IntPtr&,System.Int32&,System.IntPtr&,System.Int32&)", Justification = @"erikols: reviewed")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Hosting.UnsafeIISMethods.#MgdGetCurrentModuleIndex(System.IntPtr)", Justification = @"erikols: reviewed as per other pipeline runtime entry points")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Hosting.UnsafeIISMethods.#MgdGetCurrentNotification(System.IntPtr)", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting changes")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Hosting.UnsafeIISMethods.#MgdGetNextNotification(System.IntPtr,System.Web.RequestNotificationStatus)", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting changes")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Hosting.UnsafeIISMethods.#MgdGetRequestTraceGuid(System.IntPtr,System.Guid&)", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting changes")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Hosting.UnsafeIISMethods.#MgdIsCurrentNotificationPost(System.IntPtr)", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting changes")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Hosting.UnsafeIISMethods.#MgdRegisterEventSubscription(System.IntPtr,System.String,System.Web.RequestNotification,System.Web.RequestNotification,System.String,System.String,System.IntPtr,System.Boolean)", Justification = @"tmarq: k")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.VirtualFileBase.#InitializeLifetimeService()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Hosting.VirtualPathProvider.#InitializeLifetimeService()", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1025:ReplaceRepetitiveArgumentsWithParamsArray", Scope = "member", Target = "System.Web.Mail.SmtpMail.#Send(System.String,System.String,System.String,System.String)", Justification = @"mharder: Method is more usable with named parameters than a string array. Also would be a breaking change.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Mail.SmtpMail+LateBoundAccessHelper.#CallMethod(System.Object,System.String,System.Object[])", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Mail.SmtpMail+LateBoundAccessHelper.#GetProp(System.Object,System.String)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Mail.SmtpMail+LateBoundAccessHelper.#get_LateBoundType()", Justification = @"mharder: Per DmityrR, we should exclude all violations of this rule since the framework makes no guarantee about what exceptions may be thrown.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Mail.SmtpMail+LateBoundAccessHelper.#SetProp(System.Object,System.String,System.Object)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Mail.SmtpMail+LateBoundAccessHelper.#SetProp(System.Object,System.String,System.Object,System.Object)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Mail.SmtpMail+LateBoundAccessHelper.#SetProp(System.Type,System.Object,System.String,System.Object)", Justification = @"tmarq: ok")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Mail.SmtpMail+LateBoundAccessHelper.#SetProp(System.Type,System.Object,System.String,System.Object,System.Object)", Justification = @"tmarq: ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.EventNotificationType.#Unbuffered", Justification = @"patng: The word 'unbuffered' is used frequently in other computer document. E.g. there are 79 occurence of this word in MSDN library. Will ask PM to think of a better name, if possible.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.Management.IRegiisUtility", Justification = @"rodneyk: This was excluded before the namespace change")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Management.IRegiisUtility.#ProtectedConfigAction(System.Int64,System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.IntPtr&)", MessageId = "8#", Justification = @"andlin: These shipped in Whidbey and we are simply reverting them to their original state.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.IRegiisUtility.#ProtectedConfigAction(System.Int64,System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.IntPtr&)", MessageId = "csp", Justification = @"andlin: These shipped in Whidbey and we are simply reverting them to their original state.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Management.IRegiisUtility.#RegisterAsnetMmcAssembly(System.Int32,System.String,System.String,System.IntPtr&)", MessageId = "3#", Justification = @"patng: IRegiisUtility is an internal interface used by aspnet_regiis.exe and Asp.net MMC")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.IRegiisUtility.#RegisterAsnetMmcAssembly(System.Int32,System.String,System.String,System.IntPtr&)", MessageId = "Asnet", Justification = @"patng: IRegiisUtility is an internal interface used by aspnet_regiis.exe and Asp.net MMC")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.IRegiisUtility.#RegisterAsnetMmcAssembly(System.Int32,System.String,System.String,System.IntPtr&)", MessageId = "Mmc", Justification = @"patng: IRegiisUtility is an internal interface used by aspnet_regiis.exe and Asp.net MMC")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Management.IRegiisUtility.#RegisterSystemWebAssembly(System.Int32,System.IntPtr&)", MessageId = "1#", Justification = @"patng: IRegiisUtility is an internal interface used by aspnet_regiis.exe and Asp.net MMC")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Management.IRegiisUtility.#RemoveBrowserCaps(System.IntPtr&)", MessageId = "0#", Justification = @"patng: It's an ""internal"" method used by aspnet_regiis. The 'out' param is needed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Management.MailWebEventProvider.#SendMail(System.Net.Mail.MailMessage)", Justification = @"rodneyk: It is okay to not catch non compliant exceptions in this case (No security implications)")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Management.MailWebEventProvider.#SendMail(System.Net.Mail.MailMessage)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.Management.RegiisUtility", Justification = @"rodneyk: This was excluded before the namespace change")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Management.RegiisUtility.#RegisterAsnetMmcAssembly(System.Int32,System.String,System.String,System.IntPtr&)", Justification = @"rodneyk: It is okay to not catch non compliant exceptions. There is no security clean up involved and the whole purpose for catching the exception if just to get the exception info to return to caller.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Management.RegiisUtility.#RegisterAsnetMmcAssembly(System.Int32,System.String,System.String,System.IntPtr&)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Management.RegiisUtility.#RegisterSystemWebAssembly(System.Int32,System.IntPtr&)", Justification = @"rodneyk: It is fine to not catch non compliant exceptions, it does not present a security risk")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Management.RegiisUtility.#RemoveBrowserCaps(System.IntPtr&)", Justification = @"rodneyk: It is fine to not catch non compliant exceptions in this case. There is no security clean up involved.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Management.SqlExecutionException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Usage", "CA2217:DoNotMarkEnumsWithFlags", Scope = "type", Target = "System.Web.Management.SqlFeatures", Justification = @"rodneyk: This was excluded before the namespace change")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Management.SqlServices.#get_ApplicationServiceTables()", Justification = @"patng: called by suite")]
+[module: SuppressMessage("Microsoft.Security", "CA2100:ReviewSqlQueriesForSecurityVulnerabilities", Scope = "member", Target = "System.Web.Management.SqlServices.#ExecuteFile(System.String,System.String,System.String,System.String,System.Data.SqlClient.SqlConnection,System.Boolean,System.Boolean,System.Web.Management.SessionStateType)", Justification = @"haok: No user input")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Management.SqlServices.#GetSqlConnection(System.String,System.String,System.String,System.Boolean,System.String)", Justification = @"rodneyk: It is okay to not catch non compliant exceptions. There is no security clean up involved and the whole purpose for catching the exception if just to get the exception info to return to caller.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Management.SqlServices.#Install(System.String,System.String,System.String)", Justification = @"patng: The callstack it contains is incorrect.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Management.SqlServices.#Install(System.String,System.Web.Management.SqlFeatures,System.String)", MessageId = "2#", Justification = @"rodneyk: This was excluded before the namespace change")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Management.SqlServices.#InstallSessionState(System.String,System.Web.Management.SessionStateType,System.String)", MessageId = "2#", Justification = @"rodneyk: This was excluded before the namespace change")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Management.SqlServices.#Uninstall(System.String,System.Web.Management.SqlFeatures,System.String)", MessageId = "2#", Justification = @"rodneyk: This was excluded before the namespace change")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Management.SqlServices.#UninstallSessionState(System.String,System.Web.Management.SessionStateType,System.String)", MessageId = "2#", Justification = @"rodneyk: This was excluded before the namespace change")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Management.SqlWebEventProvider.#WriteToSQL(System.Web.Management.WebBaseEventCollection,System.Int32,System.DateTime)", Justification = @"rodneyk: It is okay to not catch non compliant exceptions. There is no security clean up involved and the whole purpose for catching the exception if just to get the exception info to return to caller.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Management.SqlWebEventProvider.#WriteToSQL(System.Web.Management.WebBaseEventCollection,System.Int32,System.DateTime)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Management.WebApplicationInformation.#GetMachineNameWithAssert()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Design", "CA1052:StaticHolderTypesShouldBeSealed", Scope = "type", Target = "System.Web.Management.WebApplicationLifetimeEvent", Justification = @"rodneyk: This was excluded before the namespace change")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebApplicationLifetimeEvent.#IncrementPerfCounters()", MessageId = "Perf", Justification = @"patng: IncrementPerfCounters is an internal method.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebBaseErrorEvent.#IncrementPerfCounters()", MessageId = "Perf", Justification = @"patng: IncrementPerfCounters is an internal method.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#EventID", Justification = @"rodneyk: ID ok for ASP.NET (from Phuffs comments on similar rules)")]
[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#FormatResourceStringWithCache(System.String,System.String)", MessageId = "System.String.Format(System.String,System.Object)", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#GetSystemEventTypeInfo(System.Int32,System.Int32,System.Int32,System.Web.Management.WebBaseEvent+SystemEventTypeInfo&,System.Web.Management.WebBaseEvent+SystemEventType&)", Justification = @"[....]: Multi-dimensional arrays are needed here for perf.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#IncrementPerfCounters()", MessageId = "Perf", Justification = @"[....]: IncrementPerfCounters is an internal method.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#Raise()", Justification = @"[....]: This was excluded before the namespace change")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#Raise(System.Web.Management.WebBaseEvent)", Justification = @"[....]: This was excluded before the namespace change")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#RaiseInternal(System.Web.Management.WebBaseEvent,System.Collections.ArrayList,System.Int32,System.Int32)", Justification = @"[....]: It is okay to not catch non compliant exceptions. There is no security clean up involved and the whole purpose for catching the exception if just to get the exception info to return to caller.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#GetSystemEventTypeInfo(System.Int32,System.Int32,System.Int32,System.Web.Management.WebBaseEvent+SystemEventTypeInfo&,System.Web.Management.WebBaseEvent+SystemEventType&)", Justification = @"patng: Multi-dimensional arrays are needed here for perf.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#IncrementPerfCounters()", MessageId = "Perf", Justification = @"patng: IncrementPerfCounters is an internal method.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#Raise()", Justification = @"rodneyk: This was excluded before the namespace change")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#Raise(System.Web.Management.WebBaseEvent)", Justification = @"rodneyk: This was excluded before the namespace change")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#RaiseInternal(System.Web.Management.WebBaseEvent,System.Collections.ArrayList,System.Int32,System.Int32)", Justification = @"rodneyk: It is okay to not catch non compliant exceptions. There is no security clean up involved and the whole purpose for catching the exception if just to get the exception info to return to caller.")]
[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#RaiseSystemEventInternal(System.String,System.Object,System.Int32,System.Int32,System.Exception,System.String)", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#s_eventCodeOccurrence", Justification = @"[....]: Multi-dimensional arrays are needed here for perf.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#s_eventCodeToSystemEventTypeMappings", Justification = @"[....]: Multi-dimensional arrays are needed here for perf.")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Management.WebBaseEventCollection", Justification = @"[....]: This was excluded before the namespace change")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebErrorEvent.#IncrementPerfCounters()", MessageId = "Perf", Justification = @"[....]: IncrementPerfCounters is an internal method.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Management.WebEventBuffer.#PrintTime(System.DateTime)", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.Management.WebEventCodes", Justification = @"[....]: WebEventCodes.ApplicationCodeBase is just a ""public const int"" to be used by caller. We don't care if it's protected by LinkDemands or Demands.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebEventCodes.#ApplicationShutdownChangeInGlobalAsax", MessageId = "Asax", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Management.WebEventCodes.#ApplicationShutdownChangeInSecurityPolicyFile", MessageId = "InSecurity", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Design", "CA1053:StaticHolderTypesShouldNotHaveConstructors", Scope = "type", Target = "System.Web.Management.WebEventManager", Justification = @"[....]: This was excluded before the namespace change")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Management.WebEventManager.#Flush()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Management.WebEventManager.#Flush(System.String)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebFailureAuditEvent.#IncrementPerfCounters()", MessageId = "Perf", Justification = @"[....]: IncrementPerfCounters is an internal method.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Management.WebProcessInformation.#ProcessID", Justification = @"[....]: ID ok for ASP.NET (from Phuffs comments on similar rules)")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebRequestErrorEvent.#IncrementPerfCounters()", MessageId = "Perf", Justification = @"[....]: IncrementPerfCounters is an internal method.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebRequestEvent.#IncrementPerfCounters()", MessageId = "Perf", Justification = @"[....]: IncrementPerfCounters is an internal method.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Management.WebRequestInformation.#RequestUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebSuccessAuditEvent.#IncrementPerfCounters()", MessageId = "Perf", Justification = @"[....]: IncrementPerfCounters is an internal method.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Management.WebThreadInformation.#ThreadID", Justification = @"[....]: ID ok for ASP.NET (from Phuffs comments on similar rules)")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Management.WmiWebEventProvider.#ProcessEvent(System.Web.Management.WebBaseEvent)", Justification = @"[....]: The catch is in debug code only and does not present a security risk.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.CustomProviderDataAttribute.#IsDefaultAttribute()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Profile.ProfileBase.#AddPropertySettingsFromConfig(System.Type,System.Boolean,System.Boolean,System.Web.Configuration.ProfilePropertySettingsCollection,System.String)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Profile.ProfileBase.#GetInternal(System.String)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Profile.ProfileBase.#GetPropType(System.String)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Profile.ProfileBase.#InitializeStatic()", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileBase.#get_Item(System.String)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.Profile.ProfileBase.#get_Item(System.String)", Justification = @"[....]: Done for VSWhidbey 427541")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Profile.ProfileBase.#get_Item(System.String)", Justification = @"[....]: non-full-trust code is allowed to call these APIs.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileBase.#set_Item(System.String,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.Profile.ProfileBase.#set_Item(System.String,System.Object)", Justification = @"[....]: Done for VSWhidbey 427541")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Profile.ProfileBase.#set_Item(System.String,System.Object)", Justification = @"[....]: non-full-trust code is allowed to call these APIs.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileBase.#Save()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.Profile.ProfileBase.#Save()", Justification = @"[....]: Done for VSWhidbey 427541")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Profile.ProfileBase.#Save()", Justification = @"[....]: non-full-trust code is allowed to call these APIs.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Profile.ProfileBase.#SaveWithAssert()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Profile.ProfileBase.#SetInternal(System.String,System.Object)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Profile.ProfileEventHandler", Justification = @"[....]: Same as other Event handlers")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileInfoCollection.#CopyTo(System.Array,System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileInfoCollection.#get_Count()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileInfoCollection.#GetEnumerator()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileInfoCollection.#get_IsSynchronized()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileInfoCollection.#get_SyncRoot()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Profile.ProfileManager.#FindInactiveProfilesByUserName(System.Web.Profile.ProfileAuthenticationOption,System.String,System.DateTime,System.Int32,System.Int32,System.Int32&)", MessageId = "5#", Justification = @"[....]: as per spec")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Profile.ProfileManager.#FindProfilesByUserName(System.Web.Profile.ProfileAuthenticationOption,System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "4#", Justification = @"[....]: as per spec")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Profile.ProfileManager.#GetAllInactiveProfiles(System.Web.Profile.ProfileAuthenticationOption,System.DateTime,System.Int32,System.Int32,System.Int32&)", MessageId = "4#", Justification = @"[....]: as per spec")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Profile.ProfileManager.#GetAllProfiles(System.Web.Profile.ProfileAuthenticationOption,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"[....]: as per spec")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Profile.ProfileManager.#Initialize(System.Boolean)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Profile.ProfileMigrateEventArgs.#AnonymousID", Justification = @"[....]: ID ok for ASP.NET (from Phuffs comments on similar rules)")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Profile.ProfileMigrateEventHandler", Justification = @"[....]: Same as other Event handlers")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Profile.ProfileModule.#.ctor()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Profile.ProfileModule.#ParseDataFromDB(System.String[],System.String,System.Byte[],System.Configuration.SettingsPropertyValueCollection)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Profile.ProfileModule.#PrepareDataForSaving(System.String&,System.String&,System.Byte[]&,System.Boolean,System.Configuration.SettingsPropertyValueCollection,System.Boolean)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Profile.ProfileProvider.#FindInactiveProfilesByUserName(System.Web.Profile.ProfileAuthenticationOption,System.String,System.DateTime,System.Int32,System.Int32,System.Int32&)", MessageId = "5#", Justification = @"[....]: as per spec")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Profile.ProfileProvider.#FindProfilesByUserName(System.Web.Profile.ProfileAuthenticationOption,System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "4#", Justification = @"[....]: as per spec")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Profile.ProfileProvider.#GetAllInactiveProfiles(System.Web.Profile.ProfileAuthenticationOption,System.DateTime,System.Int32,System.Int32,System.Int32&)", MessageId = "4#", Justification = @"[....]: as per spec")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Profile.ProfileProvider.#GetAllProfiles(System.Web.Profile.ProfileAuthenticationOption,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"[....]: as per spec")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileProviderCollection.#Add(System.Configuration.Provider.ProviderBase)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.SettingsAllowAnonymousAttribute.#IsDefaultAttribute()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_ApplicationName()", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#set_ApplicationName(System.String)", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#ChangePassword(System.String,System.String,System.String)", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#ChangePasswordQuestionAndAnswer(System.String,System.String,System.String,System.String)", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#CreateUser(System.String,System.String,System.String,System.String,System.String,System.Boolean,System.Object,System.Web.Security.MembershipCreateStatus&)", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#DeleteUser(System.String,System.Boolean)", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_EnablePasswordReset()", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_EnablePasswordRetrieval()", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#FindUsersByEmail(System.String,System.Int32,System.Int32,System.Int32&)", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#FindUsersByName(System.String,System.Int32,System.Int32,System.Int32&)", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#GetAllUsers(System.Int32,System.Int32,System.Int32&)", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#GetNumberOfUsersOnline()", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#GetPassword(System.String,System.String)", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#GetUser(System.Object,System.Boolean)", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#GetUser(System.String,System.Boolean)", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#GetUserNameByEmail(System.String)", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#Initialize(System.String,System.Collections.Specialized.NameValueCollection)", MessageId = "System.Text.RegularExpressions.Regex", Justification = @"[....]: We want to do a sanity check on the regular expression configuration property.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_MaxInvalidPasswordAttempts()", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_MinRequiredNonAlphanumericCharacters()", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_MinRequiredPasswordLength()", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_PasswordAttemptWindow()", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_PasswordFormat()", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_PasswordStrengthRegularExpression()", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_RequiresQuestionAndAnswer()", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_RequiresUniqueEmail()", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#ResetPassword(System.String,System.String)", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#UnlockUser(System.String)", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#UpdateUser(System.Web.Security.MembershipUser)", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#ValidateUser(System.String,System.String)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#ValidateUser(System.String,System.String)", Justification = @"[....]: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Security.AnonymousIdentificationEventArgs.#AnonymousID", Justification = @"[....]: ID ok for ASP.NET (from Phuffs comments on similar rules)")]
+[module: SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#s_eventCodeOccurrence", Justification = @"patng: Multi-dimensional arrays are needed here for perf.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", Scope = "member", Target = "System.Web.Management.WebBaseEvent.#s_eventCodeToSystemEventTypeMappings", Justification = @"patng: Multi-dimensional arrays are needed here for perf.")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.Management.WebBaseEventCollection", Justification = @"rodneyk: This was excluded before the namespace change")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebErrorEvent.#IncrementPerfCounters()", MessageId = "Perf", Justification = @"patng: IncrementPerfCounters is an internal method.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Management.WebEventBuffer.#PrintTime(System.DateTime)", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.Management.WebEventCodes", Justification = @"patng: WebEventCodes.ApplicationCodeBase is just a ""public const int"" to be used by caller. We don't care if it's protected by LinkDemands or Demands.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebEventCodes.#ApplicationShutdownChangeInGlobalAsax", MessageId = "Asax", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.Management.WebEventCodes.#ApplicationShutdownChangeInSecurityPolicyFile", MessageId = "InSecurity", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Design", "CA1053:StaticHolderTypesShouldNotHaveConstructors", Scope = "type", Target = "System.Web.Management.WebEventManager", Justification = @"rodneyk: This was excluded before the namespace change")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Management.WebEventManager.#Flush()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Management.WebEventManager.#Flush(System.String)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebFailureAuditEvent.#IncrementPerfCounters()", MessageId = "Perf", Justification = @"patng: IncrementPerfCounters is an internal method.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Management.WebProcessInformation.#ProcessID", Justification = @"rodneyk: ID ok for ASP.NET (from Phuffs comments on similar rules)")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebRequestErrorEvent.#IncrementPerfCounters()", MessageId = "Perf", Justification = @"patng: IncrementPerfCounters is an internal method.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebRequestEvent.#IncrementPerfCounters()", MessageId = "Perf", Justification = @"patng: IncrementPerfCounters is an internal method.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Management.WebRequestInformation.#RequestUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.Management.WebSuccessAuditEvent.#IncrementPerfCounters()", MessageId = "Perf", Justification = @"patng: IncrementPerfCounters is an internal method.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Management.WebThreadInformation.#ThreadID", Justification = @"rodneyk: ID ok for ASP.NET (from Phuffs comments on similar rules)")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Management.WmiWebEventProvider.#ProcessEvent(System.Web.Management.WebBaseEvent)", Justification = @"rodneyk: The catch is in debug code only and does not present a security risk.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.CustomProviderDataAttribute.#IsDefaultAttribute()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Profile.ProfileBase.#AddPropertySettingsFromConfig(System.Type,System.Boolean,System.Boolean,System.Web.Configuration.ProfilePropertySettingsCollection,System.String)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Profile.ProfileBase.#GetInternal(System.String)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Profile.ProfileBase.#GetPropType(System.String)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Profile.ProfileBase.#InitializeStatic()", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileBase.#get_Item(System.String)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.Profile.ProfileBase.#get_Item(System.String)", Justification = @"haok: Done for VSWhidbey 427541")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Profile.ProfileBase.#get_Item(System.String)", Justification = @"manuva: non-full-trust code is allowed to call these APIs.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileBase.#set_Item(System.String,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.Profile.ProfileBase.#set_Item(System.String,System.Object)", Justification = @"haok: Done for VSWhidbey 427541")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Profile.ProfileBase.#set_Item(System.String,System.Object)", Justification = @"manuva: non-full-trust code is allowed to call these APIs.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileBase.#Save()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.Profile.ProfileBase.#Save()", Justification = @"haok: Done for VSWhidbey 427541")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Profile.ProfileBase.#Save()", Justification = @"manuva: non-full-trust code is allowed to call these APIs.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Profile.ProfileBase.#SaveWithAssert()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Profile.ProfileBase.#SetInternal(System.String,System.Object)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Profile.ProfileEventHandler", Justification = @"manuva: Same as other Event handlers")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileInfoCollection.#CopyTo(System.Array,System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileInfoCollection.#get_Count()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileInfoCollection.#GetEnumerator()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileInfoCollection.#get_IsSynchronized()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileInfoCollection.#get_SyncRoot()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Profile.ProfileManager.#FindInactiveProfilesByUserName(System.Web.Profile.ProfileAuthenticationOption,System.String,System.DateTime,System.Int32,System.Int32,System.Int32&)", MessageId = "5#", Justification = @"manuva: as per spec")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Profile.ProfileManager.#FindProfilesByUserName(System.Web.Profile.ProfileAuthenticationOption,System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "4#", Justification = @"manuva: as per spec")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Profile.ProfileManager.#GetAllInactiveProfiles(System.Web.Profile.ProfileAuthenticationOption,System.DateTime,System.Int32,System.Int32,System.Int32&)", MessageId = "4#", Justification = @"manuva: as per spec")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Profile.ProfileManager.#GetAllProfiles(System.Web.Profile.ProfileAuthenticationOption,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"manuva: as per spec")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Profile.ProfileManager.#Initialize(System.Boolean)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Profile.ProfileMigrateEventArgs.#AnonymousID", Justification = @"rodneyk: ID ok for ASP.NET (from Phuffs comments on similar rules)")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Profile.ProfileMigrateEventHandler", Justification = @"manuva: Same as other Event handlers")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Profile.ProfileModule.#.ctor()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Profile.ProfileModule.#ParseDataFromDB(System.String[],System.String,System.Byte[],System.Configuration.SettingsPropertyValueCollection)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Profile.ProfileModule.#PrepareDataForSaving(System.String&,System.String&,System.Byte[]&,System.Boolean,System.Configuration.SettingsPropertyValueCollection,System.Boolean)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Profile.ProfileProvider.#FindInactiveProfilesByUserName(System.Web.Profile.ProfileAuthenticationOption,System.String,System.DateTime,System.Int32,System.Int32,System.Int32&)", MessageId = "5#", Justification = @"manuva: as per spec")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Profile.ProfileProvider.#FindProfilesByUserName(System.Web.Profile.ProfileAuthenticationOption,System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "4#", Justification = @"manuva: as per spec")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Profile.ProfileProvider.#GetAllInactiveProfiles(System.Web.Profile.ProfileAuthenticationOption,System.DateTime,System.Int32,System.Int32,System.Int32&)", MessageId = "4#", Justification = @"manuva: as per spec")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Profile.ProfileProvider.#GetAllProfiles(System.Web.Profile.ProfileAuthenticationOption,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"manuva: as per spec")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.ProfileProviderCollection.#Add(System.Configuration.Provider.ProviderBase)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Profile.SettingsAllowAnonymousAttribute.#IsDefaultAttribute()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_ApplicationName()", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#set_ApplicationName(System.String)", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#ChangePassword(System.String,System.String,System.String)", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#ChangePasswordQuestionAndAnswer(System.String,System.String,System.String,System.String)", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#CreateUser(System.String,System.String,System.String,System.String,System.String,System.Boolean,System.Object,System.Web.Security.MembershipCreateStatus&)", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#DeleteUser(System.String,System.Boolean)", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_EnablePasswordReset()", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_EnablePasswordRetrieval()", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#FindUsersByEmail(System.String,System.Int32,System.Int32,System.Int32&)", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#FindUsersByName(System.String,System.Int32,System.Int32,System.Int32&)", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#GetAllUsers(System.Int32,System.Int32,System.Int32&)", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#GetNumberOfUsersOnline()", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#GetPassword(System.String,System.String)", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#GetUser(System.Object,System.Boolean)", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#GetUser(System.String,System.Boolean)", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#GetUserNameByEmail(System.String)", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#Initialize(System.String,System.Collections.Specialized.NameValueCollection)", MessageId = "System.Text.RegularExpressions.Regex", Justification = @"minglu: We want to do a sanity check on the regular expression configuration property.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_MaxInvalidPasswordAttempts()", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_MinRequiredNonAlphanumericCharacters()", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_MinRequiredPasswordLength()", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_PasswordAttemptWindow()", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_PasswordFormat()", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_PasswordStrengthRegularExpression()", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_RequiresQuestionAndAnswer()", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#get_RequiresUniqueEmail()", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#ResetPassword(System.String,System.String)", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#UnlockUser(System.String)", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#UpdateUser(System.Web.Security.MembershipUser)", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#ValidateUser(System.String,System.String)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.ActiveDirectoryMembershipProvider.#ValidateUser(System.String,System.String)", Justification = @"phuff: These methods all have full declarative demands for the DirectoryServicesPermission, so they are covered.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.Security.AnonymousIdentificationEventArgs.#AnonymousID", Justification = @"rodneyk: ID ok for ASP.NET (from Phuffs comments on similar rules)")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Security.AnonymousIdentificationEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.AnonymousIdentificationModule.#.ctor()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#get_CacheRefreshInterval()", Justification = @"[....]: I believe this does not apply anymore with my last checkin.")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#CallMethod(System.Object,System.String,System.Object[])", Justification = @"[....]: This should apply anymore.")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#CallProperty(System.Object,System.String,System.Object[])", Justification = @"[....]: This should apply anymore.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#GetAllRoles()", Justification = @"[....]: I believe this does not apply anymore.")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#GetAllRoles()", Justification = @"[....]: This should apply anymore.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#GetRole(System.String)", Justification = @"[....]: I believe this does not apply anymore with my last checkin.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#GetUsersInRole(System.String)", Justification = @"[....]: I believe this does not apply anymore.")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#GetUsersInRole(System.String)", Justification = @"[....]: This should apply anymore.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#GetWindowsTokenWithAssert(System.String)", Justification = @"[....]: Method is required to get the current user token.")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#InitApp()", Justification = @"[....]: This should apply anymore.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Security.CookieProtectionHelper", Justification = @"[....]: Has static methods called by different classes.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.CookieProtectionHelper.#Encode(System.Web.Security.CookieProtection,System.Byte[],System.Int32)", Justification = @"[....]: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.AnonymousIdentificationModule.#.ctor()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#get_CacheRefreshInterval()", Justification = @"minglu: I believe this does not apply anymore with my last checkin.")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#CallMethod(System.Object,System.String,System.Object[])", Justification = @"minglu: This should apply anymore.")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#CallProperty(System.Object,System.String,System.Object[])", Justification = @"minglu: This should apply anymore.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#GetAllRoles()", Justification = @"minglu: I believe this does not apply anymore.")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#GetAllRoles()", Justification = @"minglu: This should apply anymore.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#GetRole(System.String)", Justification = @"minglu: I believe this does not apply anymore with my last checkin.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#GetUsersInRole(System.String)", Justification = @"minglu: I believe this does not apply anymore.")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#GetUsersInRole(System.String)", Justification = @"minglu: This should apply anymore.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#GetWindowsTokenWithAssert(System.String)", Justification = @"manuva: Method is required to get the current user token.")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Security.AuthorizationStoreRoleProvider.#InitApp()", Justification = @"minglu: This should apply anymore.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Security.CookieProtectionHelper", Justification = @"manuva: Has static methods called by different classes.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.CookieProtectionHelper.#Encode(System.Web.Security.CookieProtection,System.Byte[],System.Int32)", Justification = @"tmarq: okay")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Security.DefaultAuthenticationEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.DefaultAuthenticationModule.#.ctor()", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.FileAuthorizationModule.#.ctor()", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.FileAuthorizationModule.#CheckFileAccessForUser(System.String,System.IntPtr,System.String)", Justification = @"[....]: Added the security check per security code review.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Security.FileSecurityDescriptorWrapper.#_securityDescriptor", Justification = @"[....]: Its a memory block, not a handle")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Security.FormsAuthentication.#DefaultUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Security.FormsAuthentication.#LoginUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Security.FormsAuthentication.#RedirectToLoginPage(System.String)", MessageId = "0#", Justification = @"[....]: QueryString is well defined in web")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.FormsAuthenticationEventArgs.#set_User(System.Security.Principal.IPrincipal)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.DefaultAuthenticationModule.#.ctor()", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.FileAuthorizationModule.#.ctor()", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.FileAuthorizationModule.#CheckFileAccessForUser(System.String,System.IntPtr,System.String)", Justification = @"minglu: Added the security check per security code review.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Security.FileSecurityDescriptorWrapper.#_securityDescriptor", Justification = @"manuva: Its a memory block, not a handle")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Security.FormsAuthentication.#DefaultUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.Security.FormsAuthentication.#LoginUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.Security.FormsAuthentication.#RedirectToLoginPage(System.String)", MessageId = "0#", Justification = @"manuva: QueryString is well defined in web")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.FormsAuthenticationEventArgs.#set_User(System.Security.Principal.IPrincipal)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Security.FormsAuthenticationEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.FormsAuthenticationModule.#.ctor()", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_ApplicationName()", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#set_ApplicationName(System.String)", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.Membership.#CreateUser(System.String,System.String,System.String,System.String,System.String,System.Boolean,System.Object,System.Web.Security.MembershipCreateStatus&)", MessageId = "7#", Justification = @"[....]: This is by design. We can't make changes to the API at this late stage.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#CreateUser(System.String,System.String,System.String,System.String,System.String,System.Boolean,System.Object,System.Web.Security.MembershipCreateStatus&)", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.Membership.#CreateUser(System.String,System.String,System.String,System.String,System.String,System.Boolean,System.Web.Security.MembershipCreateStatus&)", MessageId = "6#", Justification = @"[....]: By Design, as per PM")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#DeleteUser(System.String)", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#DeleteUser(System.String,System.Boolean)", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#add_ValidatingPassword(System.Web.Security.MembershipValidatePasswordEventHandler)", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#remove_ValidatingPassword(System.Web.Security.MembershipValidatePasswordEventHandler)", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_EnablePasswordReset()", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_EnablePasswordRetrieval()", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.Membership.#FindUsersByEmail(System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"[....]: as per spec")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#FindUsersByEmail(System.String,System.Int32,System.Int32,System.Int32&)", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#FindUsersByName(System.String)", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.Membership.#FindUsersByName(System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"[....]: Per spec")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#FindUsersByName(System.String,System.Int32,System.Int32,System.Int32&)", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Security.Membership.#GetAllUsers()", Justification = @"[....]: Implemented as per spec")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.Membership.#GetAllUsers(System.Int32,System.Int32,System.Int32&)", MessageId = "2#", Justification = @"[....]: as per spec")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#GetAllUsers(System.Int32,System.Int32,System.Int32&)", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#GetCurrentUserName()", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#GetNumberOfUsersOnline()", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Security.Membership.#GetNumberOfUsersOnline()", Justification = @"[....]: Implemented as per spec")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Security.Membership.#GetUser()", Justification = @"[....]: Implemented as per spec")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#GetUser(System.Object,System.Boolean)", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#GetUser(System.String,System.Boolean)", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#GetUserNameByEmail(System.String)", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Security.Membership.#Initialize()", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#Initialize()", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_MaxInvalidPasswordAttempts()", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_MinRequiredNonAlphanumericCharacters()", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_MinRequiredPasswordLength()", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_PasswordAttemptWindow()", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_PasswordStrengthRegularExpression()", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_RequiresQuestionAndAnswer()", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#UpdateUser(System.Web.Security.MembershipUser)", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#ValidateUser(System.String,System.String)", Justification = @"[....]: excluding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2126:TypeLinkDemandsRequireInheritanceDemands", Scope = "type", Target = "System.Web.Security.MembershipCreateUserException", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.MembershipCreateUserException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.MembershipCreateUserException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"[....]: The Exception class doesn't get the ASPNetHostingPermission link demand.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.MembershipProvider.#CreateUser(System.String,System.String,System.String,System.String,System.String,System.Boolean,System.Object,System.Web.Security.MembershipCreateStatus&)", MessageId = "7#", Justification = @"[....]: This is by design. We can't make changes to the API at this late stage.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.MembershipProvider.#FindUsersByEmail(System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"[....]: as per spec")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.MembershipProvider.#FindUsersByName(System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"[....]: Result of changing Provider interface to ABC.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.MembershipProvider.#GetAllUsers(System.Int32,System.Int32,System.Int32&)", MessageId = "2#", Justification = @"[....]: as per spec")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Security.MembershipProvider.#GetNumberOfUsersOnline()", Justification = @"[....]: Result of changing Provider interface to ABC.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.Security.MembershipProvider.#OnValidatingPassword(System.Web.Security.ValidatePasswordEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.MembershipProviderCollection.#Add(System.Configuration.Provider.ProviderBase)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Security.MembershipUser.#GetPassword()", Justification = @"[....]: Implemented as per spec")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.MembershipUserCollection.#get_Count()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.MembershipUserCollection.#GetEnumerator()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.MembershipUserCollection.#get_IsSynchronized()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.MembershipUserCollection.#get_SyncRoot()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.MembershipUserCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Portability", "CA1901:PInvokeDeclarationsShouldBePortable", Scope = "member", Target = "System.Web.Security.NativeMethods.#FormatMessageW(System.Int32,System.Int32,System.Int32,System.Int32,System.Text.StringBuilder,System.Int32,System.Int32)", MessageId = "1", Justification = @"[....]: These are native methods for pinvokes.")]
-[module: SuppressMessage("Microsoft.Portability", "CA1901:PInvokeDeclarationsShouldBePortable", Scope = "member", Target = "System.Web.Security.NativeMethods.#FormatMessageW(System.Int32,System.Int32,System.Int32,System.Int32,System.Text.StringBuilder,System.Int32,System.Int32)", MessageId = "6", Justification = @"[....]: These are native methods for pinvokes.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.PassportAuthenticationEventArgs.#set_User(System.Security.Principal.IPrincipal)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.FormsAuthenticationModule.#.ctor()", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_ApplicationName()", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#set_ApplicationName(System.String)", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.Membership.#CreateUser(System.String,System.String,System.String,System.String,System.String,System.Boolean,System.Object,System.Web.Security.MembershipCreateStatus&)", MessageId = "7#", Justification = @"minglu: This is by design. We can't make changes to the API at this late stage.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#CreateUser(System.String,System.String,System.String,System.String,System.String,System.Boolean,System.Object,System.Web.Security.MembershipCreateStatus&)", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.Membership.#CreateUser(System.String,System.String,System.String,System.String,System.String,System.Boolean,System.Web.Security.MembershipCreateStatus&)", MessageId = "6#", Justification = @"manuva: By Design, as per PM")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#DeleteUser(System.String)", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#DeleteUser(System.String,System.Boolean)", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#add_ValidatingPassword(System.Web.Security.MembershipValidatePasswordEventHandler)", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#remove_ValidatingPassword(System.Web.Security.MembershipValidatePasswordEventHandler)", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_EnablePasswordReset()", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_EnablePasswordRetrieval()", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.Membership.#FindUsersByEmail(System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"manuva: as per spec")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#FindUsersByEmail(System.String,System.Int32,System.Int32,System.Int32&)", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#FindUsersByName(System.String)", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.Membership.#FindUsersByName(System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"manuva: Per spec")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#FindUsersByName(System.String,System.Int32,System.Int32,System.Int32&)", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Security.Membership.#GetAllUsers()", Justification = @"manuva: Implemented as per spec")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.Membership.#GetAllUsers(System.Int32,System.Int32,System.Int32&)", MessageId = "2#", Justification = @"manuva: as per spec")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#GetAllUsers(System.Int32,System.Int32,System.Int32&)", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#GetCurrentUserName()", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#GetNumberOfUsersOnline()", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Security.Membership.#GetNumberOfUsersOnline()", Justification = @"manuva: Implemented as per spec")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Security.Membership.#GetUser()", Justification = @"manuva: Implemented as per spec")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#GetUser(System.Object,System.Boolean)", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#GetUser(System.String,System.Boolean)", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#GetUserNameByEmail(System.String)", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Security.Membership.#Initialize()", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#Initialize()", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_MaxInvalidPasswordAttempts()", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_MinRequiredNonAlphanumericCharacters()", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_MinRequiredPasswordLength()", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_PasswordAttemptWindow()", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_PasswordStrengthRegularExpression()", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#get_RequiresQuestionAndAnswer()", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#UpdateUser(System.Web.Security.MembershipUser)", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Membership.#ValidateUser(System.String,System.String)", Justification = @"tmarq: excluding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2126:TypeLinkDemandsRequireInheritanceDemands", Scope = "type", Target = "System.Web.Security.MembershipCreateUserException", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.MembershipCreateUserException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.MembershipCreateUserException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"phuff: The Exception class doesn't get the ASPNetHostingPermission link demand.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.MembershipProvider.#CreateUser(System.String,System.String,System.String,System.String,System.String,System.Boolean,System.Object,System.Web.Security.MembershipCreateStatus&)", MessageId = "7#", Justification = @"minglu: This is by design. We can't make changes to the API at this late stage.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.MembershipProvider.#FindUsersByEmail(System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"manuva: as per spec")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.MembershipProvider.#FindUsersByName(System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"manuva: Result of changing Provider interface to ABC.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.MembershipProvider.#GetAllUsers(System.Int32,System.Int32,System.Int32&)", MessageId = "2#", Justification = @"manuva: as per spec")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Security.MembershipProvider.#GetNumberOfUsersOnline()", Justification = @"manuva: Result of changing Provider interface to ABC.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.Security.MembershipProvider.#OnValidatingPassword(System.Web.Security.ValidatePasswordEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.MembershipProviderCollection.#Add(System.Configuration.Provider.ProviderBase)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Security.MembershipUser.#GetPassword()", Justification = @"manuva: Implemented as per spec")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.MembershipUserCollection.#get_Count()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.MembershipUserCollection.#GetEnumerator()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.MembershipUserCollection.#get_IsSynchronized()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.MembershipUserCollection.#get_SyncRoot()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.MembershipUserCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Portability", "CA1901:PInvokeDeclarationsShouldBePortable", Scope = "member", Target = "System.Web.Security.NativeMethods.#FormatMessageW(System.Int32,System.Int32,System.Int32,System.Int32,System.Text.StringBuilder,System.Int32,System.Int32)", MessageId = "1", Justification = @"phuff: These are native methods for pinvokes.")]
+[module: SuppressMessage("Microsoft.Portability", "CA1901:PInvokeDeclarationsShouldBePortable", Scope = "member", Target = "System.Web.Security.NativeMethods.#FormatMessageW(System.Int32,System.Int32,System.Int32,System.Int32,System.Text.StringBuilder,System.Int32,System.Int32)", MessageId = "6", Justification = @"phuff: These are native methods for pinvokes.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.PassportAuthenticationEventArgs.#set_User(System.Security.Principal.IPrincipal)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Security.PassportAuthenticationEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.PassportAuthenticationModule.#.ctor()", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.PassportIdentity.#.ctor()", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Security.PassportIdentity.#_iPassport", Justification = @"[....]: I've review the code and i am pretty confident that we won't leak anything here.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.PassportIdentity.#System.IDisposable.Dispose()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.PassportAuthenticationModule.#.ctor()", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.PassportIdentity.#.ctor()", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Security.PassportIdentity.#_iPassport", Justification = @"minglu: I've review the code and i am pretty confident that we won't leak anything here.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.PassportIdentity.#System.IDisposable.Dispose()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Security.RoleManagerEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.RoleManagerModule.#.ctor()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Usage", "CA2235:MarkAllNonSerializableFields", Scope = "member", Target = "System.Web.Security.RolePrincipal.#_Identity", Justification = @"[....]: This is by design. See bug 436540.")]
-[module: SuppressMessage("Microsoft.Security", "CA2110:SecureGetObjectDataOverrides", Scope = "member", Target = "System.Web.Security.RolePrincipal.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"[....]: This exclusion is required due to Dev10 bug 790444, as a security demand would break Cassini and IIS scenarios.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.RolePrincipal.#get_Identity()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.RolePrincipal.#IsInRole(System.String)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.RolePrincipal.#System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"[....]: Can't change the link demand on the base")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.RolePrincipal.#ToEncryptedTicket()", Justification = @"[....]: RolePrincipal.ToEncryptedTicket should work in partial trust")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Security.RolePrincipal.#ToEncryptedTicket()", Justification = @"[....]: RolePrincipal.ToEncryptedTicket should work in partial trust")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.RoleProviderCollection.#Add(System.Configuration.Provider.ProviderBase)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#AddUsersToRole(System.String[],System.String)", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#AddUsersToRoles(System.String[],System.String[])", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#AddUserToRole(System.String,System.String)", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#AddUserToRoles(System.String,System.String[])", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#get_ApplicationName()", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#set_ApplicationName(System.String)", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#get_CookieProtectionValue()", Justification = @"[....]: RolePrincipal.ToEncryptedTicket should work in partial trust")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Security.Roles.#CookieRequireSSL", Justification = @"[....]: Implemented as per spec")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Security.Roles.#get_CookieRequireSSL()", Justification = @"[....]: Implemented as per spec")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#CreateRole(System.String)", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#DeleteCookie()", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#DeleteRole(System.String,System.Boolean)", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#get_Enabled()", Justification = @"[....]: RolePrincipal.ToEncryptedTicket should work in partial trust")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#FindUsersInRole(System.String,System.String)", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#GetAllRoles()", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#GetCurrentUser()", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#GetRolesForUser(System.String)", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#GetUsersInRole(System.String)", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Security.Roles.#Initialize()", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#Initialize()", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#IsUserInRole(System.String,System.String)", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#get_MaxCachedResults()", Justification = @"[....]: RolePrincipal.ToEncryptedTicket should work in partial trust")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#RemoveUserFromRole(System.String,System.String)", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#RemoveUserFromRoles(System.String,System.String[])", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#RemoveUsersFromRole(System.String[],System.String)", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#RemoveUsersFromRoles(System.String[],System.String[])", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#RoleExists(System.String)", Justification = @"[....]: exlcuding fxcop errors for DevDiv Bugs 31461")]
-[module: SuppressMessage("Microsoft.Design", "CA1025:ReplaceRepetitiveArgumentsWithParamsArray", Scope = "member", Target = "System.Web.Security.SqlMembershipProvider.#ChangePasswordQuestionAndAnswer(System.String,System.String,System.String,System.String)", Justification = @"[....]: Implemented as per spec")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.SqlMembershipProvider.#FindUsersByName(System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"[....]: As per spec")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Security.SqlMembershipProvider.#GetNumberOfUsersOnline()", Justification = @"[....]: Implemented as per spec")]
-[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.Security.SqlMembershipProvider.#Initialize(System.String,System.Collections.Specialized.NameValueCollection)", MessageId = "System.Text.RegularExpressions.Regex", Justification = @"[....]: We want to do a sanity check on the regular expression configuration property.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.UrlAuthorizationModule.#.ctor()", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.UrlAuthorizationModule.#CheckUrlAccessForPrincipal(System.String,System.Security.Principal.IPrincipal,System.String)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.WindowsAuthenticationEventArgs.#set_User(System.Security.Principal.IPrincipal)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.RoleManagerModule.#.ctor()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Usage", "CA2235:MarkAllNonSerializableFields", Scope = "member", Target = "System.Web.Security.RolePrincipal.#_Identity", Justification = @"minglu: This is by design. See bug 436540.")]
+[module: SuppressMessage("Microsoft.Security", "CA2110:SecureGetObjectDataOverrides", Scope = "member", Target = "System.Web.Security.RolePrincipal.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"honglim: This exclusion is required due to Dev10 bug 790444, as a security demand would break Cassini and IIS scenarios.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.RolePrincipal.#get_Identity()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.RolePrincipal.#IsInRole(System.String)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.RolePrincipal.#System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"manuva: Can't change the link demand on the base")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.RolePrincipal.#ToEncryptedTicket()", Justification = @"manuva: RolePrincipal.ToEncryptedTicket should work in partial trust")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Security.RolePrincipal.#ToEncryptedTicket()", Justification = @"manuva: RolePrincipal.ToEncryptedTicket should work in partial trust")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.Security.RoleProviderCollection.#Add(System.Configuration.Provider.ProviderBase)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#AddUsersToRole(System.String[],System.String)", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#AddUsersToRoles(System.String[],System.String[])", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#AddUserToRole(System.String,System.String)", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#AddUserToRoles(System.String,System.String[])", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#get_ApplicationName()", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#set_ApplicationName(System.String)", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#get_CookieProtectionValue()", Justification = @"manuva: RolePrincipal.ToEncryptedTicket should work in partial trust")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Security.Roles.#CookieRequireSSL", Justification = @"manuva: Implemented as per spec")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.Security.Roles.#get_CookieRequireSSL()", Justification = @"manuva: Implemented as per spec")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#CreateRole(System.String)", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#DeleteCookie()", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#DeleteRole(System.String,System.Boolean)", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#get_Enabled()", Justification = @"manuva: RolePrincipal.ToEncryptedTicket should work in partial trust")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#FindUsersInRole(System.String,System.String)", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#GetAllRoles()", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#GetCurrentUser()", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#GetRolesForUser(System.String)", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#GetUsersInRole(System.String)", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Security.Roles.#Initialize()", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#Initialize()", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#IsUserInRole(System.String,System.String)", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#get_MaxCachedResults()", Justification = @"manuva: RolePrincipal.ToEncryptedTicket should work in partial trust")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#RemoveUserFromRole(System.String,System.String)", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#RemoveUserFromRoles(System.String,System.String[])", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#RemoveUsersFromRole(System.String[],System.String)", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#RemoveUsersFromRoles(System.String[],System.String[])", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Security.Roles.#RoleExists(System.String)", Justification = @"tmarq: exlcuding fxcop errors for DevDiv Bugs 31461")]
+[module: SuppressMessage("Microsoft.Design", "CA1025:ReplaceRepetitiveArgumentsWithParamsArray", Scope = "member", Target = "System.Web.Security.SqlMembershipProvider.#ChangePasswordQuestionAndAnswer(System.String,System.String,System.String,System.String)", Justification = @"manuva: Implemented as per spec")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.Security.SqlMembershipProvider.#FindUsersByName(System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"manuva: As per spec")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.Security.SqlMembershipProvider.#GetNumberOfUsersOnline()", Justification = @"manuva: Implemented as per spec")]
+[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.Security.SqlMembershipProvider.#Initialize(System.String,System.Collections.Specialized.NameValueCollection)", MessageId = "System.Text.RegularExpressions.Regex", Justification = @"minglu: We want to do a sanity check on the regular expression configuration property.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.UrlAuthorizationModule.#.ctor()", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.UrlAuthorizationModule.#CheckUrlAccessForPrincipal(System.String,System.Security.Principal.IPrincipal,System.String)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.WindowsAuthenticationEventArgs.#set_User(System.Security.Principal.IPrincipal)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Security.WindowsAuthenticationEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.WindowsAuthenticationModule.#.ctor()", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.SessionState.CachedContent", Justification = @"[....]: The native content is owned by the native part of aspnet_state.exe.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.SessionState.CachedContent.#_stateItem", Justification = @"[....]: _stateItem is a pointer to a native StateItem object, and is used between the managed and native sides of State Server. It's safe to use IntPtr here.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SessionState.HttpSessionState.#CopyTo(System.Array,System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SessionState.HttpSessionState.#get_Count()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SessionState.HttpSessionState.#get_IsSynchronized()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.SessionState.HttpSessionState.#LCID", Justification = @"[....]: Can't change it because it was named like this since V1.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.SessionState.HttpSessionState.#SessionID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SessionState.HttpSessionState.#get_SyncRoot()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.SessionState.IHttpSessionState.#LCID", Justification = @"[....]: This interface should map almost identical to the v1 class HttpSessionState, which already uses LCID as the name.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.SessionState.IHttpSessionState.#get_LCID()", Justification = @"[....]: This interface should map almost identical to the v1 class HttpSessionState, which already uses LCID as the name.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.SessionState.IHttpSessionState.#set_LCID(System.Int32)", Justification = @"[....]: This interface should map almost identical to the v1 class HttpSessionState, which already uses LCID as the name.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.SessionState.IHttpSessionState.#SessionID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "type", Target = "System.Web.SessionState.ISessionIDManager", Justification = @"[....]: ID approved acronym.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.SessionState.ISessionIDManager.#CreateSessionID(System.Web.HttpContext)", Justification = @"[....]: ID approved acronym.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.SessionState.ISessionIDManager.#GetSessionID(System.Web.HttpContext)", Justification = @"[....]: ID approved acronym.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.ISessionIDManager.#InitializeRequest(System.Web.HttpContext,System.Boolean,System.Boolean&)", MessageId = "2#", Justification = @"[....]: Already using a return parameter or more than one out parameter.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.SessionState.ISessionIDManager.#InitializeRequest(System.Web.HttpContext,System.Boolean,System.Boolean&)", MessageId = "2#", Justification = @"[....]: ID approved acronym.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.SessionState.ISessionIDManager.#RemoveSessionID(System.Web.HttpContext)", Justification = @"[....]: ID approved acronym.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.ISessionIDManager.#SaveSessionID(System.Web.HttpContext,System.String,System.Boolean&,System.Boolean&)", MessageId = "2#", Justification = @"[....]: Both return values needed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.ISessionIDManager.#SaveSessionID(System.Web.HttpContext,System.String,System.Boolean&,System.Boolean&)", MessageId = "3#", Justification = @"[....]: Both return values needed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.SessionState.ISessionIDManager.#SaveSessionID(System.Web.HttpContext,System.String,System.Boolean&,System.Boolean&)", Justification = @"[....]: ID approved acronym.")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.SessionState.IStateRuntime.#ProcessRequest(System.IntPtr,System.Int32,System.String,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.IntPtr)", MessageId = "2#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.SessionState.OutOfProcSessionStateStore.#CreatePartitionInfo(System.String)", MessageId = "System.ArgumentException.#ctor(System.String)", Justification = @"[....]: This exception is only used to trigger an outer catch, the string/message is never used.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.SessionState.OutOfProcSessionStateStore.#CreatePartitionInfo(System.String)", Justification = @"[....]: This exception is only used to trigger an outer catch, the string/message is never used.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.SessionState.OutOfProcSessionStateStore.#INVALID_SOCKET", Justification = @"[....]: INVALID_SOCKET isn't a real resource. It's a marker for an invalid socket.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.SessionState.OutOfProcSessionStateStore.#MakeRequest(System.Web.UnsafeNativeMethods+StateProtocolVerb,System.String,System.Web.UnsafeNativeMethods+StateProtocolExclusive,System.Int32,System.Int32,System.Int32,System.Byte[],System.Int32,System.Int32,System.Web.UnsafeNativeMethods+SessionNDMakeRequestResults&)", MessageId = "System.String.Format(System.String,System.Object)", Justification = @"[....]: Debug-only trace code")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.SessionState.OutOfProcSessionStateStore+OutOfProcConnection.#_socketHandle", Justification = @"[....]: _socketHandler is a winsock handle used between ssdirect.cxx and outofprocstateclientmanager.cs. Its lifetime is controlled by both the managed code and the native code. It's okay to use IntPtr.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "type", Target = "System.Web.SessionState.SessionIDManager", Justification = @"[....]: ID approved acronym.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.SessionState.SessionIDManager.#SessionIDMaxLength", Justification = @"[....]: ID approved acronym.")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.SessionState.SessionStateItemCollection", Justification = @"[....]: Items stored are generic objects")]
-[module: SuppressMessage("Microsoft.Usage", "CA2237:MarkISerializableTypesWithSerializable", Scope = "type", Target = "System.Web.SessionState.SessionStateItemCollection", Justification = @"[....]: This collection isn't intended to be serialized.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.SessionState.SessionStateItemCollection.#DeserializeItem(System.String,System.Boolean)", Justification = @"[....]: Needed to sandbox deserialization for Session")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SessionState.SessionStateItemCollection.#GetEnumerator()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SessionState.SessionStateItemCollection.#get_Keys()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.SessionState.SessionStateItemCollection.#ReadValueFromStreamWithAssert()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.SessionState.SessionStateItemCollection.#Serialize(System.IO.BinaryWriter)", Justification = @"[....]: Fix for 491458")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.SessionState.SessionStateItemCollection.#WriteValueToStreamWithAssert(System.Object,System.IO.BinaryWriter)", Justification = @"[....]: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Security.WindowsAuthenticationModule.#.ctor()", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.SessionState.CachedContent", Justification = @"patng: The native content is owned by the native part of aspnet_state.exe.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.SessionState.CachedContent.#_stateItem", Justification = @"patng: _stateItem is a pointer to a native StateItem object, and is used between the managed and native sides of State Server. It's safe to use IntPtr here.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SessionState.HttpSessionState.#CopyTo(System.Array,System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SessionState.HttpSessionState.#get_Count()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SessionState.HttpSessionState.#get_IsSynchronized()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.SessionState.HttpSessionState.#LCID", Justification = @"patng: Can't change it because it was named like this since V1.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.SessionState.HttpSessionState.#SessionID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SessionState.HttpSessionState.#get_SyncRoot()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.SessionState.IHttpSessionState.#LCID", Justification = @"patng: This interface should map almost identical to the v1 class HttpSessionState, which already uses LCID as the name.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.SessionState.IHttpSessionState.#get_LCID()", Justification = @"patng: This interface should map almost identical to the v1 class HttpSessionState, which already uses LCID as the name.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.SessionState.IHttpSessionState.#set_LCID(System.Int32)", Justification = @"patng: This interface should map almost identical to the v1 class HttpSessionState, which already uses LCID as the name.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.SessionState.IHttpSessionState.#SessionID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "type", Target = "System.Web.SessionState.ISessionIDManager", Justification = @"phuff: ID approved acronym.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.SessionState.ISessionIDManager.#CreateSessionID(System.Web.HttpContext)", Justification = @"phuff: ID approved acronym.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.SessionState.ISessionIDManager.#GetSessionID(System.Web.HttpContext)", Justification = @"phuff: ID approved acronym.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.ISessionIDManager.#InitializeRequest(System.Web.HttpContext,System.Boolean,System.Boolean&)", MessageId = "2#", Justification = @"phuff: Already using a return parameter or more than one out parameter.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.SessionState.ISessionIDManager.#InitializeRequest(System.Web.HttpContext,System.Boolean,System.Boolean&)", MessageId = "2#", Justification = @"phuff: ID approved acronym.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.SessionState.ISessionIDManager.#RemoveSessionID(System.Web.HttpContext)", Justification = @"phuff: ID approved acronym.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.ISessionIDManager.#SaveSessionID(System.Web.HttpContext,System.String,System.Boolean&,System.Boolean&)", MessageId = "2#", Justification = @"phuff: Both return values needed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.ISessionIDManager.#SaveSessionID(System.Web.HttpContext,System.String,System.Boolean&,System.Boolean&)", MessageId = "3#", Justification = @"phuff: Both return values needed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.SessionState.ISessionIDManager.#SaveSessionID(System.Web.HttpContext,System.String,System.Boolean&,System.Boolean&)", Justification = @"phuff: ID approved acronym.")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.SessionState.IStateRuntime.#ProcessRequest(System.IntPtr,System.Int32,System.String,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.IntPtr)", MessageId = "2#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.SessionState.OutOfProcSessionStateStore.#CreatePartitionInfo(System.String)", MessageId = "System.ArgumentException.#ctor(System.String)", Justification = @"haok: This exception is only used to trigger an outer catch, the string/message is never used.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.SessionState.OutOfProcSessionStateStore.#CreatePartitionInfo(System.String)", Justification = @"haok: This exception is only used to trigger an outer catch, the string/message is never used.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.SessionState.OutOfProcSessionStateStore.#INVALID_SOCKET", Justification = @"patng: INVALID_SOCKET isn't a real resource. It's a marker for an invalid socket.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.SessionState.OutOfProcSessionStateStore.#MakeRequest(System.Web.UnsafeNativeMethods+StateProtocolVerb,System.String,System.Web.UnsafeNativeMethods+StateProtocolExclusive,System.Int32,System.Int32,System.Int32,System.Byte[],System.Int32,System.Int32,System.Web.UnsafeNativeMethods+SessionNDMakeRequestResults&)", MessageId = "System.String.Format(System.String,System.Object)", Justification = @"patng: Debug-only trace code")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.SessionState.OutOfProcSessionStateStore+OutOfProcConnection.#_socketHandle", Justification = @"patng: _socketHandler is a winsock handle used between ssdirect.cxx and outofprocstateclientmanager.cs. Its lifetime is controlled by both the managed code and the native code. It's okay to use IntPtr.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "type", Target = "System.Web.SessionState.SessionIDManager", Justification = @"phuff: ID approved acronym.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.SessionState.SessionIDManager.#SessionIDMaxLength", Justification = @"phuff: ID approved acronym.")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.SessionState.SessionStateItemCollection", Justification = @"patng: Items stored are generic objects")]
+[module: SuppressMessage("Microsoft.Usage", "CA2237:MarkISerializableTypesWithSerializable", Scope = "type", Target = "System.Web.SessionState.SessionStateItemCollection", Justification = @"patng: This collection isn't intended to be serialized.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.SessionState.SessionStateItemCollection.#DeserializeItem(System.String,System.Boolean)", Justification = @"haok: Needed to sandbox deserialization for Session")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SessionState.SessionStateItemCollection.#GetEnumerator()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.SessionState.SessionStateItemCollection.#get_Keys()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.SessionState.SessionStateItemCollection.#ReadValueFromStreamWithAssert()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.SessionState.SessionStateItemCollection.#Serialize(System.IO.BinaryWriter)", Justification = @"haok: Fix for 491458")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.SessionState.SessionStateItemCollection.#WriteValueToStreamWithAssert(System.Object,System.IO.BinaryWriter)", Justification = @"tmarq: okay")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.SessionState.SessionStateItemExpireCallback", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.SessionState.SessionStateModule.#.ctor()", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.SessionState.SessionStateModule.#LookUpRegForPollInterval()", Justification = @"[....]: this is necessary in order to read a config setting in the registry")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SessionStateModule.#PollLockedSessionCallback(System.Object)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.SessionState.SessionStateModule.#PollLockedSessionCallback(System.Object)", Justification = @"[....]: We want to catch all error because we will pass the exception to an HttpAsyncResult object.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.SessionState.SessionStateModule.#RaiseOnStart(System.EventArgs)", Justification = @"[....]: Internal method.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.SessionState.SessionStateModule.#ResetPollTimer()", Justification = @"[....]: Called by PollLockedSessionCallback()")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItem(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "2#", Justification = @"[....]: By-design")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItem(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "3#", Justification = @"[....]: By-design")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItem(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "4#", Justification = @"[....]: By-design")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItem(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "5#", Justification = @"[....]: By-design")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItem(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "lockAge", Justification = @"[....]: By-design. What we mean is ""lock age"".")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItemExclusive(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "2#", Justification = @"[....]: By-design")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItemExclusive(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "3#", Justification = @"[....]: By-design")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItemExclusive(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "4#", Justification = @"[....]: By-design")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItemExclusive(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "5#", Justification = @"[....]: By-design")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItemExclusive(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "lockAge", Justification = @"[....]: By-design. What we mean is ""lock age"".")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.SessionState.SessionStateUtility.#RaiseSessionEnd(System.Web.SessionState.IHttpSessionState,System.Object,System.EventArgs)", MessageId = "2#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.SessionState.SessionStateUtility.#RaiseSessionEnd(System.Web.SessionState.IHttpSessionState,System.Object,System.EventArgs)", Justification = @"[....]: Assigned to [....]")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore.#CreatePartitionInfo(System.String)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore.#CreateUninitializedItem(System.Web.HttpContext,System.String,System.Int32)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore.#DoGet(System.Web.HttpContext,System.String,System.Boolean,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore.#ReleaseItemExclusive(System.Web.HttpContext,System.String,System.Object)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore.#RemoveItem(System.Web.HttpContext,System.String,System.Object,System.Web.SessionState.SessionStateStoreData)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore.#ResetItemTimeout(System.Web.HttpContext,System.String)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore.#SetAndReleaseItemExclusive(System.Web.HttpContext,System.String,System.Web.SessionState.SessionStateStoreData,System.Object,System.Boolean)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore+SqlPartitionInfo.#GetServerSupportOptions(System.Data.SqlClient.SqlConnection)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore+SqlStateConnection.#.ctor(System.Web.SessionState.SqlSessionStateStore+SqlPartitionInfo)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore+SqlStateConnection.#Dispose()", Justification = @"[....]: The doc of SqlCommand.IDispose.Dispose said ""This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.""")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.SessionState.StateHttpWorkerRequest", Justification = @"[....]: The lifetime of all the native resources ownd by StateHttpWorkerRequest is controlled by the native aspnet_state.exe.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.SessionState.StateHttpWorkerRequest.#_tracker", Justification = @"[....]: _tracker is a pointer to a Tracker object in native StateServer code, and its lifetime is controlled by the native side.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.SessionState.StateHttpWorkerRequest.#_unmanagedState", Justification = @"[....]: _unmanagedState is a pointer to a StateItem native object and is used internally between the managed side and native side of the State Server. It's safe to use IntPtr here.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.ApplicationFileParser.#.ctor()", Justification = @"[....]: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.AttributeCollection.#set_Item(System.String,System.String)", Justification = @"[....]: Designers run in full trust.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", Scope = "member", Target = "System.Web.UI.BasePartialCachingControl.#Dispose()", Justification = @"[....]: David Ebbo reviewed and feels that it's dangerous to dispose of ""_cachedCtrl"" here since this object is not the owner of it. That object will be disposed at a later point.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.BasePartialCachingControl.#Render(System.Web.UI.HtmlTextWriter)", MessageId = "System.IO.StringWriter.#ctor", Justification = @"[....]: This is correct. It would be wrong here to specify neutral culture.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.BaseTemplateParser.#GetDesignTimeUserControlType(System.String,System.String)", Justification = @"[....]: It's fine here to catch all exceptions.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.BoundPropertyEntry.#ControlID", Justification = @"[....]: We use ID in our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.SessionState.SessionStateModule.#.ctor()", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.SessionState.SessionStateModule.#LookUpRegForPollInterval()", Justification = @"tmarq: this is necessary in order to read a config setting in the registry")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SessionStateModule.#PollLockedSessionCallback(System.Object)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.SessionState.SessionStateModule.#PollLockedSessionCallback(System.Object)", Justification = @"patng: We want to catch all error because we will pass the exception to an HttpAsyncResult object.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.SessionState.SessionStateModule.#RaiseOnStart(System.EventArgs)", Justification = @"patng: Internal method.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.SessionState.SessionStateModule.#ResetPollTimer()", Justification = @"patng: Called by PollLockedSessionCallback()")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItem(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "2#", Justification = @"patng: By-design")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItem(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "3#", Justification = @"patng: By-design")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItem(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "4#", Justification = @"patng: By-design")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItem(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "5#", Justification = @"patng: By-design")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItem(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "lockAge", Justification = @"patng: By-design. What we mean is ""lock age"".")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItemExclusive(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "2#", Justification = @"patng: By-design")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItemExclusive(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "3#", Justification = @"patng: By-design")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItemExclusive(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "4#", Justification = @"patng: By-design")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItemExclusive(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "5#", Justification = @"patng: By-design")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.SessionState.SessionStateStoreProviderBase.#GetItemExclusive(System.Web.HttpContext,System.String,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", MessageId = "lockAge", Justification = @"patng: By-design. What we mean is ""lock age"".")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.SessionState.SessionStateUtility.#RaiseSessionEnd(System.Web.SessionState.IHttpSessionState,System.Object,System.EventArgs)", MessageId = "2#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.SessionState.SessionStateUtility.#RaiseSessionEnd(System.Web.SessionState.IHttpSessionState,System.Object,System.EventArgs)", Justification = @"patng: Assigned to patng")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore.#CreatePartitionInfo(System.String)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore.#CreateUninitializedItem(System.Web.HttpContext,System.String,System.Int32)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore.#DoGet(System.Web.HttpContext,System.String,System.Boolean,System.Boolean&,System.TimeSpan&,System.Object&,System.Web.SessionState.SessionStateActions&)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore.#ReleaseItemExclusive(System.Web.HttpContext,System.String,System.Object)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore.#RemoveItem(System.Web.HttpContext,System.String,System.Object,System.Web.SessionState.SessionStateStoreData)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore.#ResetItemTimeout(System.Web.HttpContext,System.String)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore.#SetAndReleaseItemExclusive(System.Web.HttpContext,System.String,System.Web.SessionState.SessionStateStoreData,System.Object,System.Boolean)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore+SqlPartitionInfo.#GetServerSupportOptions(System.Data.SqlClient.SqlConnection)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore+SqlStateConnection.#.ctor(System.Web.SessionState.SqlSessionStateStore+SqlPartitionInfo)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", Scope = "member", Target = "System.Web.SessionState.SqlSessionStateStore+SqlStateConnection.#Dispose()", Justification = @"patng: The doc of SqlCommand.IDispose.Dispose said ""This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.""")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.SessionState.StateHttpWorkerRequest", Justification = @"patng: The lifetime of all the native resources ownd by StateHttpWorkerRequest is controlled by the native aspnet_state.exe.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.SessionState.StateHttpWorkerRequest.#_tracker", Justification = @"patng: _tracker is a pointer to a Tracker object in native StateServer code, and its lifetime is controlled by the native side.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.SessionState.StateHttpWorkerRequest.#_unmanagedState", Justification = @"patng: _unmanagedState is a pointer to a StateItem native object and is used internally between the managed side and native side of the State Server. It's safe to use IntPtr here.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.ApplicationFileParser.#.ctor()", Justification = @"erikols: Reviewed and exluded in beta2lhsd, porting that to rtmlhs")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.AttributeCollection.#set_Item(System.String,System.String)", Justification = @"phuff: Designers run in full trust.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", Scope = "member", Target = "System.Web.UI.BasePartialCachingControl.#Dispose()", Justification = @"fabioy: David Ebbo reviewed and feels that it's dangerous to dispose of ""_cachedCtrl"" here since this object is not the owner of it. That object will be disposed at a later point.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.BasePartialCachingControl.#Render(System.Web.UI.HtmlTextWriter)", MessageId = "System.IO.StringWriter.#ctor", Justification = @"davidebb: This is correct. It would be wrong here to specify neutral culture.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.BaseTemplateParser.#GetDesignTimeUserControlType(System.String,System.String)", Justification = @"davidebb: It's fine here to catch all exceptions.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.BoundPropertyEntry.#ControlID", Justification = @"phuff: We use ID in our code.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.BuildMethod", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.BuildTemplateMethod", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.ChtmlTextWriter.#.ctor(System.IO.TextWriter,System.String)", MessageId = "1#", Justification = @"[....]: This parameter name (""tabString"") was used in V1 in the HtmlTextWriter constructor. Better to maintain the parameter name for consistency with HtmlTextWriter in V1.")]
-[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.ClientScriptManager.#GetWebResourceUrl(System.Type,System.String)", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.ClientScriptManager.#RegisterClientScriptInclude(System.String,System.String)", MessageId = "1#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.ClientScriptManager.#RegisterClientScriptInclude(System.Type,System.String,System.String)", MessageId = "2#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.Control.#ClientIDSeparator", Justification = @"[....]: ID approved acronym.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.Control.#get_Controls()", Justification = @"[....]: The designer needs to use ControlsCollection, since it requires full trust, this is not a security issue.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.Control.#DataBind()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", Scope = "member", Target = "System.Web.UI.Control.#Dispose()", Justification = @"[....]: bug 148739 for follow-up")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Control.#EnableTheming", MessageId = "Theming", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.Control.#EnsureID()", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.Control.#GetDesignModeState()", Justification = @"[....]: The method security attribute is more restrictive than type attribute. The LinkDemand is not required.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.Control.#GetDesignModeState()", Justification = @"[....]: The method security attribute is more restrictive than type attribute. The LinkDemand is not required.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.Control.#GetDesignModeState()", Justification = @"[....]: This method implies non-trivial work, so it is a method.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Control.#GetRareFieldStatistics(System.Int32&,System.Int32&,System.Int32&)", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.Control.#get_ID()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.Control.#set_ID(System.String)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.Control.#LoadViewStateByID", Justification = @"[....]: ID approved acronym.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Control.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Control.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Control.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Control.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Control.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Control.#OnUnload(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Control.#RaiseBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.Control.#RaiseBubbleEvent(System.Object,System.EventArgs)", Justification = @"[....]: legacy event exposure")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Control.#ResetVisible()", Justification = @"[....]: code may be used for debug purposes and through reflection")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Control.#ShouldSerializeVisible()", Justification = @"[....]: code may be used for debug purposes and through reflection")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.Control.#get_Site()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.Control.#set_Site(System.ComponentModel.ISite)", Justification = @"[....]: Designers are run in full-trust, so this will always be okay.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.Control.#SkinID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.Control.#System.Web.UI.IControlBuilderAccessor.get_ControlBuilder()", Justification = @"[....]: explicit implementations by design for information hiding")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.Control.#System.Web.UI.IControlDesignerAccessor.SetOwnerControl(System.Web.UI.Control)", Justification = @"[....]: By design")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.Control.#System.Web.UI.IControlDesignerAccessor.get_UserData()", Justification = @"[....]: This is not meant to be overidden.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.Control.#System.Web.UI.IDataBindingsAccessor.get_DataBindings()", Justification = @"[....]: explicit implementations by design for information hiding")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.Control.#System.Web.UI.IDataBindingsAccessor.get_HasDataBindings()", Justification = @"[....]: explicit implementations by design for information hiding")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.Control.#System.Web.UI.IExpressionsAccessor.get_Expressions()", Justification = @"[....]: Don't know where these come from. Will check with Polita.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.Control.#System.Web.UI.IExpressionsAccessor.get_HasExpressions()", Justification = @"[....]: Don't know where these come from. Will check with Polita.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.ControlBuilder", Justification = @"[....]: Needed by system.design.")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.UI.ControlBuilder.#AttachTypeDescriptionProvider(System.Object)", Justification = @"[....]: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ControlBuilder.#GetObjectPersistData()", Justification = @"[....]: methods are preferred here")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ControlBuilder.#GetResourceKey()", Justification = @"[....]: The method name is correct.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ControlBuilder.#InitBoundProperty(System.Object,System.Web.UI.BoundPropertyEntry,System.Web.UI.DataBindingCollection&,System.Web.UI.IAttributeAccessor&)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ControlBuilder.#InitCollectionsComplexProperties(System.Object)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ControlBuilder.#InitComplexProperties(System.Object)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ControlBuilder.#InitTemplateProperties(System.Object)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ControlBuilder.#SetResourceKey(System.String)", Justification = @"[....]: We want to keep these setters separate from the getters since they can have side effects.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ControlBuilder.#SetServiceProvider(System.IServiceProvider)", Justification = @"[....]: We want to keep these setters separate from the getters since they can have side effects.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ControlBuilder.#SetSimpleProperty(System.Web.UI.SimplePropertyEntry,System.Object)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.ControlBuilderAttribute.#Default", Justification = @"[....]: the properties of the referenced types are also not settable")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ControlCachePolicy.#SetExpires(System.DateTime)", Justification = @"[....]: The naming of methods on this class follows an established pattern for cache control policy (i.e. HttpCachePolicy), and is thus excluded.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ControlCachePolicy.#SetSlidingExpiration(System.Boolean)", Justification = @"[....]: The naming of methods on this class follows an established pattern for cache control policy (i.e. HttpCachePolicy), and is thus excluded.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ControlCachePolicy.#SetVaryByCustom(System.String)", Justification = @"[....]: The naming of methods on this class follows an established pattern for cache control policy (i.e. HttpCachePolicy), and is thus excluded.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.ControlCachePolicy.#VaryByParams", Justification = @"[....]: This is the name as speced.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.ControlCollection.#get_Item(System.Int32)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix", Scope = "type", Target = "System.Web.UI.ControlSkinDelegate", Justification = @"[....]: This is a delegate.")]
-[module: SuppressMessage("Microsoft.Design", "CA1019:DefineAccessorsForAttributeArguments", Scope = "type", Target = "System.Web.UI.ControlValuePropertyAttribute", Justification = @"[....]: The Type parameter in the constructor is just a hint for parsing, it has no other use.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ControlValuePropertyAttribute.#Equals(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ControlValuePropertyAttribute.#GetHashCode()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.ControlValuePropertyAttribute.#get_Name()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.CssStyleCollection.#BuildString()", Justification = @"[....]: We don't do culture-sensitive conversions.")]
-[module: SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers", Scope = "member", Target = "System.Web.UI.CssStyleCollection.#Item[System.Web.UI.HtmlTextWriterStyle]", Justification = @"[....]: This is a v1 API.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.CssTextWriter.#.ctor(System.IO.TextWriter)", Justification = @"[....]: We don't do culture-sensitive conversions.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.DataBinder.#Eval(System.Object,System.String,System.String)", MessageId = "System.String.Format(System.String,System.Object)", Justification = @"[....]: These calls should use the default current culture.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.DataBinder.#GetDataItem(System.Object,System.Boolean&)", MessageId = "1#", Justification = @"[....]: The out parameter is required to help differentiate between the DataItem found and was null vs. the DataItem was not found at all cases")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.DataBinder.#GetIndexedPropertyValue(System.Object,System.String,System.String)", MessageId = "System.String.Format(System.String,System.Object)", Justification = @"[....]: These calls should use the default current culture.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.DataBinder.#GetPropertyValue(System.Object,System.String,System.String)", MessageId = "System.String.Format(System.String,System.Object)", Justification = @"[....]: These calls should use the default current culture.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.DataBinding.#.ctor(System.String,System.Type,System.String)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.DataBinding.#get_Expression()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.DataBinding.#set_Expression(System.String)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.DataBindingCollection.#Add(System.Web.UI.DataBinding)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.DataBindingCollection.#get_Item(System.String)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.DataBindingCollection.#Remove(System.String)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.DataBindingHandlerAttribute.#Default", Justification = @"[....]: This is appropriate for attributes")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.DataBindingHandlerAttribute.#Equals(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.DataBindingHandlerAttribute.#GetHashCode()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.DataSourceControl.#remove_DataSourceChangedInternal(System.EventHandler)", Justification = @"[....]: This is definitely callable.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.DataSourceControl.#System.Web.UI.IDataSource.add_DataSourceChanged(System.EventHandler)", Justification = @"[....]: Components should only use these events through the IDataSource and IHierarchicalDataSource interfaces.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.DataSourceControl.#System.Web.UI.IDataSource.remove_DataSourceChanged(System.EventHandler)", Justification = @"[....]: Components should only use these events through the IDataSource and IHierarchicalDataSource interfaces.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.DataSourceControl.#GetViewNames()", Justification = @"[....]: This is a potentially expensive operation so it is a method instead of a property")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.DataSourceControl.#RaiseDataSourceChangedEvent(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.DataSourceControl.#RaiseDataSourceChangedEvent(System.EventArgs)", Justification = @"[....]: By design - this calls multiple event delegates.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.DataSourceControl.#System.ComponentModel.IListSource.get_ContainsListCollection()", Justification = @"[....]: These would never need to be overridden by a derived class. They are mostly just there for v1 controls to use.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.DataSourceControl.#System.ComponentModel.IListSource.get_ContainsListCollection()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.DataSourceControl.#System.ComponentModel.IListSource.GetList()", Justification = @"[....]: These would never need to be overridden by a derived class. They are mostly just there for v1 controls to use.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.DataSourceControl.#System.ComponentModel.IListSource.GetList()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.DataSourceSelectArguments", Justification = @"[....]: Empty is a static readonly.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.DataSourceSelectArguments.#Empty", Justification = @"[....]: The type is immutable.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.DataSourceSelectArguments.#RaiseUnsupportedCapabilitiesError(System.Web.UI.DataSourceView)", Justification = @"[....]: This is a better design for this instance so that the base class can take care of most errors.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.DataSourceView.#Delete(System.Collections.IDictionary,System.Collections.IDictionary,System.Web.UI.DataSourceViewOperationCallback)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.DataSourceView.#Insert(System.Collections.IDictionary,System.Web.UI.DataSourceViewOperationCallback)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.DataSourceView.#OnDataSourceViewChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.DataSourceView.#RaiseUnsupportedCapabilityError(System.Web.UI.DataSourceCapabilities)", Justification = @"[....]: This model works best for this API.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.DataSourceView.#Update(System.Collections.IDictionary,System.Collections.IDictionary,System.Collections.IDictionary,System.Web.UI.DataSourceViewOperationCallback)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2003:DoNotTreatFibersAsThreads", Scope = "member", Target = "System.Web.UI.DependencyParser.#GetVirtualPathDependencies()", Justification = @"[....]: That's what we want here.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.DesignTimeTemplateParser.#ParseControlsInternal(System.Web.UI.DesignTimeParseData,System.Boolean)", Justification = @"[....]: No issue here")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.DesignTimeTemplateParser.#ParseTemplate(System.Web.UI.DesignTimeParseData)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.DesignTimeTemplateParser.#ParseTheme(System.ComponentModel.Design.IDesignerHost,System.String,System.String)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ExpressionBindingCollection.#CopyTo(System.Array,System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ExpressionBindingCollection.#get_Count()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ExpressionBindingCollection.#GetEnumerator()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ExpressionBindingCollection.#get_IsSynchronized()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ExpressionBindingCollection.#get_SyncRoot()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.ExtractTemplateValuesMethod", Justification = @"[....]: Don't know where these come from. Will check with Polita.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.FileLevelControlBuilderAttribute", Justification = @"[....]: It is ok to expose these static readonly fields even though the LinkDemand does not apply to them.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.FileLevelControlBuilderAttribute.#Default", Justification = @"[....]: This is fine, and fxcop complains about something else if I change it as it suggests...")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.FileLevelControlBuilderAttribute.#Equals(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.FileLevelControlBuilderAttribute.#GetHashCode()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.FileLevelControlBuilderAttribute.#IsDefaultAttribute()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.FilterableAttribute", Justification = @"[....]: It is ok to expose these static readonly fields even though the LinkDemand does not apply to them.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.FilterableAttribute.#Default", Justification = @"[....]: These are immutable.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.FilterableAttribute.#Equals(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.FilterableAttribute.#GetHashCode()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.FilterableAttribute.#IsDefaultAttribute()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.FilterableAttribute.#IsPropertyFilterable(System.ComponentModel.PropertyDescriptor)", Justification = @"[....]: FilterableAttribute only applies to Properties therefore using PropertyDescriptor is correct.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.FilterableAttribute.#No", Justification = @"[....]: These are immutable.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.FilterableAttribute.#Yes", Justification = @"[....]: These are immutable.")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.UI.FilteredAttributeDictionary", Justification = @"[....]: This takes objects as values, so we can't make a strongly typed version.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.UI.FilteredAttributeDictionary.#System.Collections.IDictionary.Add(System.Object,System.Object)", Justification = @"[....]: The string parameters (1st is error message and 2nd is param name) are set correctly for the ArgumentException construction in the code.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.UI.FilteredAttributeDictionary.#System.Collections.IDictionary.Contains(System.Object)", Justification = @"[....]: The string parameters (1st is error message and 2nd is param name) are set correctly for the ArgumentException construction in the code.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.UI.FilteredAttributeDictionary.#System.Collections.IDictionary.get_Item(System.Object)", Justification = @"[....]: The string parameters (1st is error message and 2nd is param name) are set correctly for the ArgumentException construction in the code.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.UI.FilteredAttributeDictionary.#System.Collections.IDictionary.set_Item(System.Object,System.Object)", Justification = @"[....]: The string parameters (1st is error message and 2nd is param name) are set correctly for the ArgumentException construction in the code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.HiddenFieldPageStatePersister", MessageId = "Persister", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.HiddenFieldPageStatePersister.#Load()", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.HierarchicalDataSourceControl.#System.Web.UI.IHierarchicalDataSource.add_DataSourceChanged(System.EventHandler)", Justification = @"[....]: Components should only use these events through the IDataSource and IHierarchicalDataSource interfaces.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.HierarchicalDataSourceControl.#System.Web.UI.IHierarchicalDataSource.remove_DataSourceChanged(System.EventHandler)", Justification = @"[....]: Components should only use these events through the IDataSource and IHierarchicalDataSource interfaces.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HierarchicalDataSourceControl.#OnDataSourceChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.Html32TextWriter.#.ctor(System.IO.TextWriter,System.String)", MessageId = "1#", Justification = @"[....]: Breaking changes")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#.ctor(System.IO.TextWriter,System.String)", MessageId = "1#", Justification = @"[....]: Breaking changes")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#AddAttribute(System.String,System.String,System.Boolean)", MessageId = "Endode", Justification = @"[....]: must use fEndode bad spelling for backwards compat")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Close()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#EncodeUrl(System.String)", MessageId = "0#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#EncodeUrl(System.String)", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Flush()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#IsAttributeDefined(System.Web.UI.HtmlTextWriterAttribute,System.String&)", MessageId = "1#", Justification = @"[....]: legacy names")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#IsStyleAttributeDefined(System.Web.UI.HtmlTextWriterStyle,System.String&)", MessageId = "1#", Justification = @"[....]: legacy names")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.Boolean)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.Char)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.Char[])", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.Double)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.Int64)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.Single)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.String)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteEncodedUrl(System.String)", MessageId = "0#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteEncodedUrlParameter(System.String)", MessageId = "0#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.Boolean)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.Char)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.Char[])", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.Double)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.Int64)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.Single)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.String)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.UInt32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.HtmlTextWriterAttribute.#Abbr", Justification = @"[....]: We have to make this enum member name the same as the attribute name.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.HtmlTextWriterAttribute.#Coords", Justification = @"[....]: HtmlTextWriterAttribute enum names come from html attributes. (We can't change this anyway, since it was this way in V1.)")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.HtmlTextWriterAttribute.#Longdesc", Justification = @"[....]: HtmlTextWriterAttribute enum names come from html attributes. (We can't change this anyway, since it was this way in V1.)")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.HtmlTextWriterAttribute.#Rel", Justification = @"[....]: HtmlTextWriterAttribute enum names come from html attributes. (We can't change this anyway, since it was this way in V1.)")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.HtmlTextWriterAttribute.#Usemap", Justification = @"[....]: HtmlTextWriterAttribute enum names come from html attributes. (We can't change this anyway, since it was this way in V1.)")]
-[module: SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix", Scope = "type", Target = "System.Web.UI.ICallbackEventHandler", Justification = @"[....]: Decided to keep the name")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ICallbackEventHandler.#GetCallbackResult()", Justification = @"[....]: Naming is appropriate for this interface")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.ICallbackEventHandler.#RaiseCallbackEvent(System.String)", Justification = @"[....]: Naming is appropriate for this interface")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.IControlDesignerAccessor.#GetDesignModeState()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.IControlDesignerAccessor.#GetDesignModeState()", Justification = @"[....]: This method implies non-trivial work, so it is a method.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.IControlDesignerAccessor.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.IControlDesignerAccessor.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"[....]: A method is the logical choice here.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.IControlDesignerAccessor.#SetOwnerControl(System.Web.UI.Control)", Justification = @"[....]: A method is the logical choice here.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.IDataSource.#GetViewNames()", Justification = @"[....]: This is a potentially expensive operation so it is a method instead of a property")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "type", Target = "System.Web.UI.IDReferencePropertyAttribute", Justification = @"[....]: We use ID in our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.IDReferencePropertyAttribute.#Equals(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.IDReferencePropertyAttribute.#GetHashCode()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "type", Target = "System.Web.UI.IHierarchicalEnumerable", Justification = @"[....]: This is bogus, it doesn't implement ICollection.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.IHierarchyData.#GetChildren()", Justification = @"[....]: These are methods to imply that they do more than trivial work.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.IHierarchyData.#GetParent()", Justification = @"[....]: This is a signature change of an old excluded method. The operation can be expensive.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.ChtmlTextWriter.#.ctor(System.IO.TextWriter,System.String)", MessageId = "1#", Justification = @"scottim: This parameter name (""tabString"") was used in V1 in the HtmlTextWriter constructor. Better to maintain the parameter name for consistency with HtmlTextWriter in V1.")]
+[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.ClientScriptManager.#GetWebResourceUrl(System.Type,System.String)", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.ClientScriptManager.#RegisterClientScriptInclude(System.String,System.String)", MessageId = "1#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.ClientScriptManager.#RegisterClientScriptInclude(System.Type,System.String,System.String)", MessageId = "2#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.Control.#ClientIDSeparator", Justification = @"phuff: ID approved acronym.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.Control.#get_Controls()", Justification = @"tinghaoy: The designer needs to use ControlsCollection, since it requires full trust, this is not a security issue.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.Control.#DataBind()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", Scope = "member", Target = "System.Web.UI.Control.#Dispose()", Justification = @"mattgi: bug 148739 for follow-up")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Control.#EnableTheming", MessageId = "Theming", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.Control.#EnsureID()", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.Control.#GetDesignModeState()", Justification = @"tinghaoy: The method security attribute is more restrictive than type attribute. The LinkDemand is not required.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.Control.#GetDesignModeState()", Justification = @"tinghaoy: The method security attribute is more restrictive than type attribute. The LinkDemand is not required.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.Control.#GetDesignModeState()", Justification = @"andlin: This method implies non-trivial work, so it is a method.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Control.#GetRareFieldStatistics(System.Int32&,System.Int32&,System.Int32&)", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.Control.#get_ID()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.Control.#set_ID(System.String)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.Control.#LoadViewStateByID", Justification = @"phuff: ID approved acronym.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Control.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Control.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Control.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Control.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Control.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Control.#OnUnload(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Control.#RaiseBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.Control.#RaiseBubbleEvent(System.Object,System.EventArgs)", Justification = @"mattgi: legacy event exposure")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Control.#ResetVisible()", Justification = @"mattgi: code may be used for debug purposes and through reflection")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Control.#ShouldSerializeVisible()", Justification = @"mattgi: code may be used for debug purposes and through reflection")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.Control.#get_Site()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.Control.#set_Site(System.ComponentModel.ISite)", Justification = @"andlin: Designers are run in full-trust, so this will always be okay.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.Control.#SkinID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.Control.#System.Web.UI.IControlBuilderAccessor.get_ControlBuilder()", Justification = @"mattgi: explicit implementations by design for information hiding")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.Control.#System.Web.UI.IControlDesignerAccessor.SetOwnerControl(System.Web.UI.Control)", Justification = @"elipton: By design")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.Control.#System.Web.UI.IControlDesignerAccessor.get_UserData()", Justification = @"andlin: This is not meant to be overidden.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.Control.#System.Web.UI.IDataBindingsAccessor.get_DataBindings()", Justification = @"mattgi: explicit implementations by design for information hiding")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.Control.#System.Web.UI.IDataBindingsAccessor.get_HasDataBindings()", Justification = @"mattgi: explicit implementations by design for information hiding")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.Control.#System.Web.UI.IExpressionsAccessor.get_Expressions()", Justification = @"bleroy: Don't know where these come from. Will check with Polita.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.Control.#System.Web.UI.IExpressionsAccessor.get_HasExpressions()", Justification = @"bleroy: Don't know where these come from. Will check with Polita.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.ControlBuilder", Justification = @"phuff: Needed by system.design.")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.UI.ControlBuilder.#AttachTypeDescriptionProvider(System.Object)", Justification = @"honglim: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ControlBuilder.#GetObjectPersistData()", Justification = @"mattgi: methods are preferred here")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ControlBuilder.#GetResourceKey()", Justification = @"andlin: The method name is correct.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ControlBuilder.#InitBoundProperty(System.Object,System.Web.UI.BoundPropertyEntry,System.Web.UI.DataBindingCollection&,System.Web.UI.IAttributeAccessor&)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ControlBuilder.#InitCollectionsComplexProperties(System.Object)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ControlBuilder.#InitComplexProperties(System.Object)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ControlBuilder.#InitTemplateProperties(System.Object)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ControlBuilder.#SetResourceKey(System.String)", Justification = @"elipton: We want to keep these setters separate from the getters since they can have side effects.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ControlBuilder.#SetServiceProvider(System.IServiceProvider)", Justification = @"elipton: We want to keep these setters separate from the getters since they can have side effects.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ControlBuilder.#SetSimpleProperty(System.Web.UI.SimplePropertyEntry,System.Object)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.ControlBuilderAttribute.#Default", Justification = @"mattgi: the properties of the referenced types are also not settable")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ControlCachePolicy.#SetExpires(System.DateTime)", Justification = @"fabioy: The naming of methods on this class follows an established pattern for cache control policy (i.e. HttpCachePolicy), and is thus excluded.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ControlCachePolicy.#SetSlidingExpiration(System.Boolean)", Justification = @"fabioy: The naming of methods on this class follows an established pattern for cache control policy (i.e. HttpCachePolicy), and is thus excluded.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ControlCachePolicy.#SetVaryByCustom(System.String)", Justification = @"fabioy: The naming of methods on this class follows an established pattern for cache control policy (i.e. HttpCachePolicy), and is thus excluded.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.ControlCachePolicy.#VaryByParams", Justification = @"davidebb: This is the name as speced.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.ControlCollection.#get_Item(System.Int32)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix", Scope = "type", Target = "System.Web.UI.ControlSkinDelegate", Justification = @"phuff: This is a delegate.")]
+[module: SuppressMessage("Microsoft.Design", "CA1019:DefineAccessorsForAttributeArguments", Scope = "type", Target = "System.Web.UI.ControlValuePropertyAttribute", Justification = @"elipton: The Type parameter in the constructor is just a hint for parsing, it has no other use.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ControlValuePropertyAttribute.#Equals(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ControlValuePropertyAttribute.#GetHashCode()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.ControlValuePropertyAttribute.#get_Name()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.CssStyleCollection.#BuildString()", Justification = @"mharder: We don't do culture-sensitive conversions.")]
+[module: SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers", Scope = "member", Target = "System.Web.UI.CssStyleCollection.#Item[System.Web.UI.HtmlTextWriterStyle]", Justification = @"mharder: This is a v1 API.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.CssTextWriter.#.ctor(System.IO.TextWriter)", Justification = @"mharder: We don't do culture-sensitive conversions.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.DataBinder.#Eval(System.Object,System.String,System.String)", MessageId = "System.String.Format(System.String,System.Object)", Justification = @"elipton: These calls should use the default current culture.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.DataBinder.#GetDataItem(System.Object,System.Boolean&)", MessageId = "1#", Justification = @"elipton: The out parameter is required to help differentiate between the DataItem found and was null vs. the DataItem was not found at all cases")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.DataBinder.#GetIndexedPropertyValue(System.Object,System.String,System.String)", MessageId = "System.String.Format(System.String,System.Object)", Justification = @"elipton: These calls should use the default current culture.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.DataBinder.#GetPropertyValue(System.Object,System.String,System.String)", MessageId = "System.String.Format(System.String,System.Object)", Justification = @"elipton: These calls should use the default current culture.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.DataBinding.#.ctor(System.String,System.Type,System.String)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.DataBinding.#get_Expression()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.DataBinding.#set_Expression(System.String)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.DataBindingCollection.#Add(System.Web.UI.DataBinding)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.DataBindingCollection.#get_Item(System.String)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.DataBindingCollection.#Remove(System.String)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.DataBindingHandlerAttribute.#Default", Justification = @"elipton: This is appropriate for attributes")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.DataBindingHandlerAttribute.#Equals(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.DataBindingHandlerAttribute.#GetHashCode()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.DataSourceControl.#remove_DataSourceChangedInternal(System.EventHandler)", Justification = @"elipton: This is definitely callable.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.DataSourceControl.#System.Web.UI.IDataSource.add_DataSourceChanged(System.EventHandler)", Justification = @"elipton: Components should only use these events through the IDataSource and IHierarchicalDataSource interfaces.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.DataSourceControl.#System.Web.UI.IDataSource.remove_DataSourceChanged(System.EventHandler)", Justification = @"elipton: Components should only use these events through the IDataSource and IHierarchicalDataSource interfaces.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.DataSourceControl.#GetViewNames()", Justification = @"elipton: This is a potentially expensive operation so it is a method instead of a property")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.DataSourceControl.#RaiseDataSourceChangedEvent(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.DataSourceControl.#RaiseDataSourceChangedEvent(System.EventArgs)", Justification = @"elipton: By design - this calls multiple event delegates.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.DataSourceControl.#System.ComponentModel.IListSource.get_ContainsListCollection()", Justification = @"elipton: These would never need to be overridden by a derived class. They are mostly just there for v1 controls to use.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.DataSourceControl.#System.ComponentModel.IListSource.get_ContainsListCollection()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.DataSourceControl.#System.ComponentModel.IListSource.GetList()", Justification = @"elipton: These would never need to be overridden by a derived class. They are mostly just there for v1 controls to use.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.DataSourceControl.#System.ComponentModel.IListSource.GetList()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.DataSourceSelectArguments", Justification = @"phuff: Empty is a static readonly.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.DataSourceSelectArguments.#Empty", Justification = @"phuff: The type is immutable.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.DataSourceSelectArguments.#RaiseUnsupportedCapabilitiesError(System.Web.UI.DataSourceView)", Justification = @"phuff: This is a better design for this instance so that the base class can take care of most errors.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.DataSourceView.#Delete(System.Collections.IDictionary,System.Collections.IDictionary,System.Web.UI.DataSourceViewOperationCallback)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.DataSourceView.#Insert(System.Collections.IDictionary,System.Web.UI.DataSourceViewOperationCallback)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.DataSourceView.#OnDataSourceViewChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.DataSourceView.#RaiseUnsupportedCapabilityError(System.Web.UI.DataSourceCapabilities)", Justification = @"phuff: This model works best for this API.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.DataSourceView.#Update(System.Collections.IDictionary,System.Collections.IDictionary,System.Collections.IDictionary,System.Web.UI.DataSourceViewOperationCallback)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2003:DoNotTreatFibersAsThreads", Scope = "member", Target = "System.Web.UI.DependencyParser.#GetVirtualPathDependencies()", Justification = @"davidebb: That's what we want here.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.DesignTimeTemplateParser.#ParseControlsInternal(System.Web.UI.DesignTimeParseData,System.Boolean)", Justification = @"davidebb: No issue here")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.DesignTimeTemplateParser.#ParseTemplate(System.Web.UI.DesignTimeParseData)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.DesignTimeTemplateParser.#ParseTheme(System.ComponentModel.Design.IDesignerHost,System.String,System.String)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ExpressionBindingCollection.#CopyTo(System.Array,System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ExpressionBindingCollection.#get_Count()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ExpressionBindingCollection.#GetEnumerator()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ExpressionBindingCollection.#get_IsSynchronized()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ExpressionBindingCollection.#get_SyncRoot()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.ExtractTemplateValuesMethod", Justification = @"bleroy: Don't know where these come from. Will check with Polita.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.FileLevelControlBuilderAttribute", Justification = @"bleroy: It is ok to expose these static readonly fields even though the LinkDemand does not apply to them.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.FileLevelControlBuilderAttribute.#Default", Justification = @"davidebb: This is fine, and fxcop complains about something else if I change it as it suggests...")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.FileLevelControlBuilderAttribute.#Equals(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.FileLevelControlBuilderAttribute.#GetHashCode()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.FileLevelControlBuilderAttribute.#IsDefaultAttribute()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.FilterableAttribute", Justification = @"bleroy: It is ok to expose these static readonly fields even though the LinkDemand does not apply to them.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.FilterableAttribute.#Default", Justification = @"andlin: These are immutable.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.FilterableAttribute.#Equals(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.FilterableAttribute.#GetHashCode()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.FilterableAttribute.#IsDefaultAttribute()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.FilterableAttribute.#IsPropertyFilterable(System.ComponentModel.PropertyDescriptor)", Justification = @"tinghaoy: FilterableAttribute only applies to Properties therefore using PropertyDescriptor is correct.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.FilterableAttribute.#No", Justification = @"andlin: These are immutable.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.FilterableAttribute.#Yes", Justification = @"andlin: These are immutable.")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.UI.FilteredAttributeDictionary", Justification = @"andlin: This takes objects as values, so we can't make a strongly typed version.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.UI.FilteredAttributeDictionary.#System.Collections.IDictionary.Add(System.Object,System.Object)", Justification = @"ftse: The string parameters (1st is error message and 2nd is param name) are set correctly for the ArgumentException construction in the code.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.UI.FilteredAttributeDictionary.#System.Collections.IDictionary.Contains(System.Object)", Justification = @"ftse: The string parameters (1st is error message and 2nd is param name) are set correctly for the ArgumentException construction in the code.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.UI.FilteredAttributeDictionary.#System.Collections.IDictionary.get_Item(System.Object)", Justification = @"ftse: The string parameters (1st is error message and 2nd is param name) are set correctly for the ArgumentException construction in the code.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.UI.FilteredAttributeDictionary.#System.Collections.IDictionary.set_Item(System.Object,System.Object)", Justification = @"ftse: The string parameters (1st is error message and 2nd is param name) are set correctly for the ArgumentException construction in the code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.HiddenFieldPageStatePersister", MessageId = "Persister", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.HiddenFieldPageStatePersister.#Load()", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.HierarchicalDataSourceControl.#System.Web.UI.IHierarchicalDataSource.add_DataSourceChanged(System.EventHandler)", Justification = @"elipton: Components should only use these events through the IDataSource and IHierarchicalDataSource interfaces.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.HierarchicalDataSourceControl.#System.Web.UI.IHierarchicalDataSource.remove_DataSourceChanged(System.EventHandler)", Justification = @"elipton: Components should only use these events through the IDataSource and IHierarchicalDataSource interfaces.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HierarchicalDataSourceControl.#OnDataSourceChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.Html32TextWriter.#.ctor(System.IO.TextWriter,System.String)", MessageId = "1#", Justification = @"phuff: Breaking changes")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#.ctor(System.IO.TextWriter,System.String)", MessageId = "1#", Justification = @"phuff: Breaking changes")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#AddAttribute(System.String,System.String,System.Boolean)", MessageId = "Endode", Justification = @"mattgi: must use fEndode bad spelling for backwards compat")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Close()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#EncodeUrl(System.String)", MessageId = "0#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#EncodeUrl(System.String)", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Flush()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#IsAttributeDefined(System.Web.UI.HtmlTextWriterAttribute,System.String&)", MessageId = "1#", Justification = @"mattgi: legacy names")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#IsStyleAttributeDefined(System.Web.UI.HtmlTextWriterStyle,System.String&)", MessageId = "1#", Justification = @"mattgi: legacy names")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.Boolean)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.Char)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.Char[])", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.Double)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.Int64)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.Single)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#Write(System.String)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteEncodedUrl(System.String)", MessageId = "0#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteEncodedUrlParameter(System.String)", MessageId = "0#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.Boolean)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.Char)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.Char[])", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.Double)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.Int64)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.Single)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.String)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.HtmlTextWriter.#WriteLine(System.UInt32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.HtmlTextWriterAttribute.#Abbr", Justification = @"scottim: We have to make this enum member name the same as the attribute name.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.HtmlTextWriterAttribute.#Coords", Justification = @"scottim: HtmlTextWriterAttribute enum names come from html attributes. (We can't change this anyway, since it was this way in V1.)")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.HtmlTextWriterAttribute.#Longdesc", Justification = @"scottim: HtmlTextWriterAttribute enum names come from html attributes. (We can't change this anyway, since it was this way in V1.)")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.HtmlTextWriterAttribute.#Rel", Justification = @"scottim: HtmlTextWriterAttribute enum names come from html attributes. (We can't change this anyway, since it was this way in V1.)")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.HtmlTextWriterAttribute.#Usemap", Justification = @"scottim: HtmlTextWriterAttribute enum names come from html attributes. (We can't change this anyway, since it was this way in V1.)")]
+[module: SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix", Scope = "type", Target = "System.Web.UI.ICallbackEventHandler", Justification = @"haok: Decided to keep the name")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ICallbackEventHandler.#GetCallbackResult()", Justification = @"phuff: Naming is appropriate for this interface")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.ICallbackEventHandler.#RaiseCallbackEvent(System.String)", Justification = @"phuff: Naming is appropriate for this interface")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.IControlDesignerAccessor.#GetDesignModeState()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.IControlDesignerAccessor.#GetDesignModeState()", Justification = @"andlin: This method implies non-trivial work, so it is a method.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.IControlDesignerAccessor.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.IControlDesignerAccessor.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"elipton: A method is the logical choice here.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.IControlDesignerAccessor.#SetOwnerControl(System.Web.UI.Control)", Justification = @"elipton: A method is the logical choice here.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.IDataSource.#GetViewNames()", Justification = @"elipton: This is a potentially expensive operation so it is a method instead of a property")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "type", Target = "System.Web.UI.IDReferencePropertyAttribute", Justification = @"phuff: We use ID in our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.IDReferencePropertyAttribute.#Equals(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.IDReferencePropertyAttribute.#GetHashCode()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "type", Target = "System.Web.UI.IHierarchicalEnumerable", Justification = @"andlin: This is bogus, it doesn't implement ICollection.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.IHierarchyData.#GetChildren()", Justification = @"andlin: These are methods to imply that they do more than trivial work.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.IHierarchyData.#GetParent()", Justification = @"elipton: This is a signature change of an old excluded method. The operation can be expensive.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.ImageClickEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.INavigateUIData.#NavigateUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.IPostBackDataHandler.#RaisePostDataChangedEvent()", Justification = @"[....]: These are not events but methods that raise events.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.IPostBackEventHandler.#RaisePostBackEvent(System.String)", Justification = @"[....]: These are not events but methods that raise events.")]
-[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.IResourceUrlGenerator.#GetResourceUrl(System.Type,System.String)", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.IThemeResolutionService.#GetStylesheetThemeProvider()", Justification = @"[....]: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.INavigateUIData.#NavigateUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.IPostBackDataHandler.#RaisePostDataChangedEvent()", Justification = @"bleroy: These are not events but methods that raise events.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.IPostBackEventHandler.#RaisePostBackEvent(System.String)", Justification = @"bleroy: These are not events but methods that raise events.")]
+[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.IResourceUrlGenerator.#GetResourceUrl(System.Type,System.String)", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.IThemeResolutionService.#GetStylesheetThemeProvider()", Justification = @"phuff: System.Design is not APTCA.")]
[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.IThemeResolutionService.#GetStylesheetThemeProvider()", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.IThemeResolutionService.#GetThemeProvider()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.IThemeResolutionService.#GetThemeProvider()", Justification = @"[....]: This is meant to be a method.")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.IUrlResolutionService.#ResolveClientUrl(System.String)", MessageId = "0#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.IUrlResolutionService.#ResolveClientUrl(System.String)", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.MainTagNameToTypeMapper.#ProcessTagNamespaceRegistration(System.Collections.ArrayList)", Justification = @"[....]: It's fine in this case not to catch non Exception objects")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.MainTagNameToTypeMapper.#TryUserControlRegisterDirectives(System.String)", Justification = @"[....]: It's fine in this case not to catch non Exception objects")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.MasterPage.#ContentPlaceHolders", MessageId = "PlaceHolders", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.MasterPage.#InstantiateInContentPlaceHolder(System.Web.UI.Control,System.Web.UI.ITemplate)", MessageId = "PlaceHolder", Justification = @"[....]: ContentPlaceHolder is the name of the existing public class.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.MinimizableAttributeTypeConverter", Justification = @"[....]: This is used as a TypeConverter in metadata.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.MinimizableAttributeTypeConverter.#.ctor()", Justification = @"[....]: This method is called thru reflection when the attributed management code is invoked.")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.UI.NamespaceTagNameToTypeMapper.#GetControlType(System.String,System.Collections.IDictionary,System.Boolean)", Justification = @"[....]: Only happens in designer, which is always full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.NonVisualControlAttribute", Justification = @"[....]: It is ok to expose these static readonly fields even though the LinkDemand does not apply to them.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.NonVisualControlAttribute.#Default", Justification = @"[....]: Fields are not mutable")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.NonVisualControlAttribute.#Equals(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.NonVisualControlAttribute.#GetHashCode()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.NonVisualControlAttribute.#IsDefaultAttribute()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.NonVisualControlAttribute.#NonVisual", Justification = @"[....]: Fields are not mutable")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.NonVisualControlAttribute.#Visual", Justification = @"[....]: Fields are not mutable")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#Deserialize(System.IO.Stream)", Justification = @"[....]: No security issues if non-CLSCompliant exceptions bubble up here.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#Deserialize(System.IO.Stream)", Justification = @"[....]: We're keeping track of the exception object, so it's fine.")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#Deserialize(System.IO.Stream)", Justification = @"[....]: These asserts are here because we run under PermitOnly, which won't permit creation of the BinaryReader and Writer. Calling this method through another method is safe.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#Deserialize(System.String)", MessageId = "0#", Justification = @"[....]: This is fine")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#Deserialize(System.String)", Justification = @"[....]: No security issues if non-CLSCompliant exceptions bubble up here.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#DeserializeType(System.Web.UI.ObjectStateFormatter+SerializerBinaryReader)", Justification = @"[....]: No security issues if non-CLSCompliant exceptions bubble up here.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#DeserializeValue(System.Web.UI.ObjectStateFormatter+SerializerBinaryReader)", Justification = @"[....]: No security issues if non-CLSCompliant exceptions bubble up here.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#DeserializeWithAssert(System.IO.Stream)", Justification = @"[....]: These are internal methods, so the LinkDemand from the class does not apply.")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#Serialize(System.IO.Stream,System.Object)", Justification = @"[....]: These asserts are here because we run under PermitOnly, which won't permit creation of the BinaryReader and Writer. Calling this method through another method is safe.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#SerializeValue(System.Web.UI.ObjectStateFormatter+SerializerBinaryWriter,System.Object)", Justification = @"[....]: No security issues if non-CLSCompliant exceptions bubble up here.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#SerializeWithAssert(System.IO.Stream,System.Object)", Justification = @"[....]: These are internal methods, so the LinkDemand from the class does not apply.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#System.Runtime.Serialization.IFormatter.get_Binder()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#System.Runtime.Serialization.IFormatter.set_Binder(System.Runtime.Serialization.SerializationBinder)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#System.Runtime.Serialization.IFormatter.get_Context()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#System.Runtime.Serialization.IFormatter.set_Context(System.Runtime.Serialization.StreamingContext)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#System.Runtime.Serialization.IFormatter.Deserialize(System.IO.Stream)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#System.Runtime.Serialization.IFormatter.Serialize(System.IO.Stream,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#System.Runtime.Serialization.IFormatter.get_SurrogateSelector()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#System.Runtime.Serialization.IFormatter.set_SurrogateSelector(System.Runtime.Serialization.ISurrogateSelector)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.ObjectTag", Justification = @"[....]: It's huge to hookup the ControlBuilder")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.OutputCacheParameters.#VaryByParam", MessageId = "Param", Justification = @"[....]: Consistent with V1 page directive.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.Page", Justification = @"[....]: Breaking change")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.Page.#.ctor()", Justification = @"[....]: virtual ID called from constructor")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.Page.#AddOnPreRenderCompleteAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"[....]: the is async 'event', not a true event")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.Page.#AddOnPreRenderCompleteAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"[....]: this is an 'async' event which does not fit the standard event pattern")]
-[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#AspCompatMode", Justification = @"[....]: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
-[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#AsyncMode", Justification = @"[....]: pattern similar to other code-generated page properties")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Page.#AsyncPageBeginProcessRequest(System.Web.HttpContext,System.AsyncCallback,System.Object)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#Buffer", Justification = @"[....]: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
-[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#CodePage", Justification = @"[....]: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
-[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#ContentType", Justification = @"[....]: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Page.#CreateHtmlTextWriterFromType(System.IO.TextWriter,System.Type)", MessageId = "0#", Justification = @"[....]: legacy name")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Page.#CreateHtmlTextWriterFromType(System.IO.TextWriter,System.Type)", MessageId = "tw", Justification = @"[....]: consistent with v1")]
-[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#Culture", Justification = @"[....]: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Page.#DisplayRareFieldStatistics()", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.Page.#PreLoad", MessageId = "PreLoad", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#FileDependencies", Justification = @"[....]: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.Page.#GetDataItem()", Justification = @"[....]: This is a complex operation that should be a method, not a property.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.Page.#GetTypeHashCode()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Page.#GetValidators(System.String)", Justification = @"[....]: browser capabilities not in the dictionary")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.Page.#HandleError(System.Exception)", Justification = @"[....]: culture behavior derived from thread")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Page.#InitOutputCache(System.Int32,System.String,System.String,System.String,System.Web.UI.OutputCacheLocation,System.String)", MessageId = "Param", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Page.#get_IsAsync()", Justification = @"[....]: pattern similar to other code-generated page properties")]
-[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#LCID", Justification = @"[....]: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
-[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.UI.Page.#get_LCID()", Justification = @"[....]: LCID setter already exists, getter is grandfathered in")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Page.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Page.#OnInitComplete(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Page.#OnLoadComplete(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Page.#OnPreInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.Page.#OnPreLoad(System.EventArgs)", MessageId = "PreLoad", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Page.#OnPreLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Page.#OnPreRenderComplete(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Page.#OnSaveStateComplete(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Page.#PageStatePersister", MessageId = "Persister", Justification = @"[....]: Apllings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.UI.Page.#ProcessRequest(System.Web.HttpContext)", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.Page.#ProcessRequestMain()", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Page.#ProcessRequestMain(System.Boolean,System.Boolean)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Page.#ProcessRequestMain(System.Boolean,System.Boolean)", MessageId = "System.Web.TraceContext.Write(System.String,System.String)", Justification = @"[....]: non localized tracing string")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Page.#ProcessRequestTransacted()", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.Page.#ProcessRequestWithAssert(System.Web.HttpContext)", Justification = @"[....]: The method is a private non-virtual method. Rule error.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.Page.#RaisePostBackEvent(System.Collections.Specialized.NameValueCollection)", Justification = @"[....]: legacy event exposure")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.Page.#RaisePostBackEvent(System.Web.UI.IPostBackEventHandler,System.String)", Justification = @"[....]: legacy event exposure")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Page.#get_RequestViewStateString()", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#ResponseEncoding", Justification = @"[....]: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.Page.#get_Session()", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2003:DoNotTreatFibersAsThreads", Scope = "member", Target = "System.Web.UI.Page.#SetCulture(System.Threading.Thread,System.Globalization.CultureInfo,System.Globalization.CultureInfo)", Justification = @"[....]: we know we're working with managed threads")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2003:DoNotTreatFibersAsThreads", Scope = "member", Target = "System.Web.UI.Page.#SetCultureWithAssert(System.Threading.Thread,System.Globalization.CultureInfo,System.Globalization.CultureInfo)", Justification = @"[....]: we know we're working with managed threads")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.Page.#SetFocus(System.String)", MessageId = "0#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#TraceEnabled", Justification = @"[....]: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
-[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#TraceModeValue", Justification = @"[....]: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
-[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#TransactionMode", Justification = @"[....]: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
-[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#UICulture", Justification = @"[....]: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
-[module: SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods", Scope = "member", Target = "System.Web.UI.Page.#Validators", Justification = @"[....]: GetValidators takes a validatorGroup, which filters down the collection returned.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.Page.#WalkViewState(System.Object,System.Web.UI.Control,System.Int32)", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Page+PageAsyncInfo.#CallHandlers(System.Boolean)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Page+PageAsyncInfo.#CallHandlersPossiblyUnderLock(System.Boolean)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Page+PageAsyncInfo.#OnAsyncHandlerCompletion(System.IAsyncResult)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.PageAsyncTask.#CompleteTask(System.Boolean)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.PageAsyncTask.#Start(System.Web.UI.PageAsyncTaskManager,System.Object,System.EventArgs)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.PageHandlerFactory", Justification = @"[....]: It's referenced via config.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.PageParser.#GetCompiledPageInstance(System.String,System.String,System.Web.HttpContext)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.PageParserFilter.#GetNoCompileUserControlType()", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.PageStatePersister", Justification = @"[....]: Persister is fine")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.PageTheme.#CreateSkinKey(System.Type,System.String)", MessageId = "1#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PageTheme.#Eval(System.String)", Justification = @"[....]: This conform to V1 naming conventions and V2 specs")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PageTheme.#Eval(System.String,System.String)", Justification = @"[....]: This conform to V1 naming conventions and V2 specs")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.PageTheme.#LinkedStyleSheets", Justification = @"[....]: This property is only meant to be accessed internally and it's cheaper to use an array.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PageTheme.#XPath(System.String)", MessageId = "x", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PageTheme.#XPath(System.String,System.String)", MessageId = "x", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PageTheme.#XPath(System.String,System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PageTheme.#XPath(System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PageTheme.#XPathSelect(System.String)", MessageId = "x", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PageTheme.#XPathSelect(System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.ParseChildrenAttribute.#Default", Justification = @"[....]: the properties of the referenced types are also not settable")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.ParseChildrenAttribute.#ParseAsChildren", Justification = @"[....]: the properties of the referenced types are also not settable")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.ParseChildrenAttribute.#ParseAsProperties", Justification = @"[....]: the properties of the referenced types are also not settable")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.UI.ParsedAttributeCollection", Justification = @"[....]: This takes objects so there can't be a strongly-typed version.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "type", Target = "System.Web.UI.ParsedAttributeCollection", Justification = @"[....]: breaking change to rename class with Dictionary suffix")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ParsedAttributeCollection.#GetFilteredAttributeDictionaries()", Justification = @"[....]: methods are preferred here")]
-[module: SuppressMessage("Microsoft.Design", "CA1025:ReplaceRepetitiveArgumentsWithParamsArray", Scope = "member", Target = "System.Web.UI.PartialCachingAttribute.#.ctor(System.Int32,System.String,System.String,System.String)", Justification = @"[....]: The 3 different string parameters are unique.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PartialCachingAttribute.#.ctor(System.Int32,System.String,System.String,System.String,System.String,System.Boolean)", MessageId = "1#", Justification = @"[....]: Params is used as an abbreviation throughout the caching apis.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PartialCachingAttribute.#.ctor(System.Int32,System.String,System.String,System.String,System.String,System.Boolean)", MessageId = "Params", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PartialCachingAttribute.#.ctor(System.Int32,System.String,System.String,System.String,System.String,System.String,System.Boolean)", MessageId = "Params", Justification = @"[....]: legacy")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.PersistChildrenAttribute.#Default", Justification = @"[....]: the properties of the referenced types are also not settable")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.PersistChildrenAttribute.#No", Justification = @"[....]: the properties of the referenced types are also not settable")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.PersistChildrenAttribute.#Yes", Justification = @"[....]: the properties of the referenced types are also not settable")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.PersistenceModeAttribute.#Attribute", Justification = @"[....]: the properties of the referenced types are also not settable")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.PersistenceModeAttribute.#Default", Justification = @"[....]: the properties of the referenced types are also not settable")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.PersistenceModeAttribute.#EncodedInnerDefaultProperty", Justification = @"[....]: the properties of the referenced types are also not settable")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.PersistenceModeAttribute.#InnerDefaultProperty", Justification = @"[....]: the properties of the referenced types are also not settable")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.PersistenceModeAttribute.#InnerProperty", Justification = @"[....]: the properties of the referenced types are also not settable")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.PostBackOptions.#.ctor(System.Web.UI.Control,System.String,System.String,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.String)", MessageId = "2#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.PostBackOptions.#ActionUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.PropertyConverter.#EnumFromString(System.Type,System.String)", Justification = @"[....]: general exception catching is OK")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.PropertyConverter.#EnumToString(System.Type,System.Object)", Justification = @"[....]: This class is safe for external use.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.PropertyConverter.#ObjectFromString(System.Type,System.Reflection.MemberInfo,System.String)", Justification = @"[....]: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.IThemeResolutionService.#GetThemeProvider()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.IThemeResolutionService.#GetThemeProvider()", Justification = @"andlin: This is meant to be a method.")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.IUrlResolutionService.#ResolveClientUrl(System.String)", MessageId = "0#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.IUrlResolutionService.#ResolveClientUrl(System.String)", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.MainTagNameToTypeMapper.#ProcessTagNamespaceRegistration(System.Collections.ArrayList)", Justification = @"davidebb: It's fine in this case not to catch non Exception objects")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.MainTagNameToTypeMapper.#TryUserControlRegisterDirectives(System.String)", Justification = @"davidebb: It's fine in this case not to catch non Exception objects")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.MasterPage.#ContentPlaceHolders", MessageId = "PlaceHolders", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.MasterPage.#InstantiateInContentPlaceHolder(System.Web.UI.Control,System.Web.UI.ITemplate)", MessageId = "PlaceHolder", Justification = @"honglim: ContentPlaceHolder is the name of the existing public class.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.MinimizableAttributeTypeConverter", Justification = @"andlin: This is used as a TypeConverter in metadata.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.MinimizableAttributeTypeConverter.#.ctor()", Justification = @"rodneyk: This method is called thru reflection when the attributed management code is invoked.")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.UI.NamespaceTagNameToTypeMapper.#GetControlType(System.String,System.Collections.IDictionary,System.Boolean)", Justification = @"davidebb: Only happens in designer, which is always full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.NonVisualControlAttribute", Justification = @"bleroy: It is ok to expose these static readonly fields even though the LinkDemand does not apply to them.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.NonVisualControlAttribute.#Default", Justification = @"nikhilko: Fields are not mutable")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.NonVisualControlAttribute.#Equals(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.NonVisualControlAttribute.#GetHashCode()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.NonVisualControlAttribute.#IsDefaultAttribute()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.NonVisualControlAttribute.#NonVisual", Justification = @"nikhilko: Fields are not mutable")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.NonVisualControlAttribute.#Visual", Justification = @"nikhilko: Fields are not mutable")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#Deserialize(System.IO.Stream)", Justification = @"phuff: No security issues if non-CLSCompliant exceptions bubble up here.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#Deserialize(System.IO.Stream)", Justification = @"davidebb: We're keeping track of the exception object, so it's fine.")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#Deserialize(System.IO.Stream)", Justification = @"phuff: These asserts are here because we run under PermitOnly, which won't permit creation of the BinaryReader and Writer. Calling this method through another method is safe.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#Deserialize(System.String)", MessageId = "0#", Justification = @"davidebb: This is fine")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#Deserialize(System.String)", Justification = @"phuff: No security issues if non-CLSCompliant exceptions bubble up here.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#DeserializeType(System.Web.UI.ObjectStateFormatter+SerializerBinaryReader)", Justification = @"phuff: No security issues if non-CLSCompliant exceptions bubble up here.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#DeserializeValue(System.Web.UI.ObjectStateFormatter+SerializerBinaryReader)", Justification = @"phuff: No security issues if non-CLSCompliant exceptions bubble up here.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#DeserializeWithAssert(System.IO.Stream)", Justification = @"mharder: These are internal methods, so the LinkDemand from the class does not apply.")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#Serialize(System.IO.Stream,System.Object)", Justification = @"phuff: These asserts are here because we run under PermitOnly, which won't permit creation of the BinaryReader and Writer. Calling this method through another method is safe.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#SerializeValue(System.Web.UI.ObjectStateFormatter+SerializerBinaryWriter,System.Object)", Justification = @"phuff: No security issues if non-CLSCompliant exceptions bubble up here.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#SerializeWithAssert(System.IO.Stream,System.Object)", Justification = @"mharder: These are internal methods, so the LinkDemand from the class does not apply.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#System.Runtime.Serialization.IFormatter.get_Binder()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#System.Runtime.Serialization.IFormatter.set_Binder(System.Runtime.Serialization.SerializationBinder)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#System.Runtime.Serialization.IFormatter.get_Context()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#System.Runtime.Serialization.IFormatter.set_Context(System.Runtime.Serialization.StreamingContext)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#System.Runtime.Serialization.IFormatter.Deserialize(System.IO.Stream)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#System.Runtime.Serialization.IFormatter.Serialize(System.IO.Stream,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#System.Runtime.Serialization.IFormatter.get_SurrogateSelector()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ObjectStateFormatter.#System.Runtime.Serialization.IFormatter.set_SurrogateSelector(System.Runtime.Serialization.ISurrogateSelector)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.ObjectTag", Justification = @"davidebb: It's huge to hookup the ControlBuilder")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.OutputCacheParameters.#VaryByParam", MessageId = "Param", Justification = @"phuff: Consistent with V1 page directive.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.Page", Justification = @"phuff: Breaking change")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.Page.#.ctor()", Justification = @"mattgi: virtual ID called from constructor")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.Page.#AddOnPreRenderCompleteAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler)", Justification = @"dmitryr: the is async 'event', not a true event")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.Page.#AddOnPreRenderCompleteAsync(System.Web.BeginEventHandler,System.Web.EndEventHandler,System.Object)", Justification = @"dmitryr: this is an 'async' event which does not fit the standard event pattern")]
+[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#AspCompatMode", Justification = @"mattgi: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
+[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#AsyncMode", Justification = @"dmitryr: pattern similar to other code-generated page properties")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Page.#AsyncPageBeginProcessRequest(System.Web.HttpContext,System.AsyncCallback,System.Object)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#Buffer", Justification = @"mattgi: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
+[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#CodePage", Justification = @"mattgi: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
+[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#ContentType", Justification = @"mattgi: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Page.#CreateHtmlTextWriterFromType(System.IO.TextWriter,System.Type)", MessageId = "0#", Justification = @"mattgi: legacy name")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Page.#CreateHtmlTextWriterFromType(System.IO.TextWriter,System.Type)", MessageId = "tw", Justification = @"mattgi: consistent with v1")]
+[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#Culture", Justification = @"mattgi: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Page.#DisplayRareFieldStatistics()", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.Page.#PreLoad", MessageId = "PreLoad", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#FileDependencies", Justification = @"mattgi: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.Page.#GetDataItem()", Justification = @"phuff: This is a complex operation that should be a method, not a property.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.Page.#GetTypeHashCode()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Page.#GetValidators(System.String)", Justification = @"mattgi: browser capabilities not in the dictionary")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.Page.#HandleError(System.Exception)", Justification = @"mattgi: culture behavior derived from thread")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Page.#InitOutputCache(System.Int32,System.String,System.String,System.String,System.Web.UI.OutputCacheLocation,System.String)", MessageId = "Param", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Page.#get_IsAsync()", Justification = @"dmitryr: pattern similar to other code-generated page properties")]
+[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#LCID", Justification = @"mattgi: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
+[module: SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased", Scope = "member", Target = "System.Web.UI.Page.#get_LCID()", Justification = @"mattgi: LCID setter already exists, getter is grandfathered in")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Page.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Page.#OnInitComplete(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Page.#OnLoadComplete(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Page.#OnPreInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.Page.#OnPreLoad(System.EventArgs)", MessageId = "PreLoad", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Page.#OnPreLoad(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Page.#OnPreRenderComplete(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Page.#OnSaveStateComplete(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Page.#PageStatePersister", MessageId = "Persister", Justification = @"phuff: Apllings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.UI.Page.#ProcessRequest(System.Web.HttpContext)", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.Page.#ProcessRequestMain()", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Page.#ProcessRequestMain(System.Boolean,System.Boolean)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.Page.#ProcessRequestMain(System.Boolean,System.Boolean)", MessageId = "System.Web.TraceContext.Write(System.String,System.String)", Justification = @"mattgi: non localized tracing string")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Page.#ProcessRequestTransacted()", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.Page.#ProcessRequestWithAssert(System.Web.HttpContext)", Justification = @"phuff: The method is a private non-virtual method. Rule error.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.Page.#RaisePostBackEvent(System.Collections.Specialized.NameValueCollection)", Justification = @"mattgi: legacy event exposure")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.Page.#RaisePostBackEvent(System.Web.UI.IPostBackEventHandler,System.String)", Justification = @"mattgi: legacy event exposure")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Page.#get_RequestViewStateString()", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#ResponseEncoding", Justification = @"mattgi: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.Page.#get_Session()", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2003:DoNotTreatFibersAsThreads", Scope = "member", Target = "System.Web.UI.Page.#SetCulture(System.Threading.Thread,System.Globalization.CultureInfo,System.Globalization.CultureInfo)", Justification = @"mattgi: we know we're working with managed threads")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2003:DoNotTreatFibersAsThreads", Scope = "member", Target = "System.Web.UI.Page.#SetCultureWithAssert(System.Threading.Thread,System.Globalization.CultureInfo,System.Globalization.CultureInfo)", Justification = @"mattgi: we know we're working with managed threads")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.Page.#SetFocus(System.String)", MessageId = "0#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#TraceEnabled", Justification = @"mattgi: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
+[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#TraceModeValue", Justification = @"mattgi: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
+[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#TransactionMode", Justification = @"mattgi: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
+[module: SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Scope = "member", Target = "System.Web.UI.Page.#UICulture", Justification = @"mattgi: bug 148739 for follow-up, suggestion to add setters to page directive related properties")]
+[module: SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods", Scope = "member", Target = "System.Web.UI.Page.#Validators", Justification = @"phuff: GetValidators takes a validatorGroup, which filters down the collection returned.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.Page.#WalkViewState(System.Object,System.Web.UI.Control,System.Int32)", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Page+PageAsyncInfo.#CallHandlers(System.Boolean)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Page+PageAsyncInfo.#CallHandlersPossiblyUnderLock(System.Boolean)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Page+PageAsyncInfo.#OnAsyncHandlerCompletion(System.IAsyncResult)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.PageAsyncTask.#CompleteTask(System.Boolean)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.PageAsyncTask.#Start(System.Web.UI.PageAsyncTaskManager,System.Object,System.EventArgs)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.PageHandlerFactory", Justification = @"davidebb: It's referenced via config.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.PageParser.#GetCompiledPageInstance(System.String,System.String,System.Web.HttpContext)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.PageParserFilter.#GetNoCompileUserControlType()", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.PageStatePersister", Justification = @"davidebb: Persister is fine")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.PageTheme.#CreateSkinKey(System.Type,System.String)", MessageId = "1#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PageTheme.#Eval(System.String)", Justification = @"elipton: This conform to V1 naming conventions and V2 specs")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PageTheme.#Eval(System.String,System.String)", Justification = @"elipton: This conform to V1 naming conventions and V2 specs")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.PageTheme.#LinkedStyleSheets", Justification = @"tinghaoy: This property is only meant to be accessed internally and it's cheaper to use an array.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PageTheme.#XPath(System.String)", MessageId = "x", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PageTheme.#XPath(System.String,System.String)", MessageId = "x", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PageTheme.#XPath(System.String,System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PageTheme.#XPath(System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PageTheme.#XPathSelect(System.String)", MessageId = "x", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PageTheme.#XPathSelect(System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.ParseChildrenAttribute.#Default", Justification = @"mattgi: the properties of the referenced types are also not settable")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.ParseChildrenAttribute.#ParseAsChildren", Justification = @"mattgi: the properties of the referenced types are also not settable")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.ParseChildrenAttribute.#ParseAsProperties", Justification = @"mattgi: the properties of the referenced types are also not settable")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.UI.ParsedAttributeCollection", Justification = @"andlin: This takes objects so there can't be a strongly-typed version.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "type", Target = "System.Web.UI.ParsedAttributeCollection", Justification = @"mattgi: breaking change to rename class with Dictionary suffix")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.ParsedAttributeCollection.#GetFilteredAttributeDictionaries()", Justification = @"mattgi: methods are preferred here")]
+[module: SuppressMessage("Microsoft.Design", "CA1025:ReplaceRepetitiveArgumentsWithParamsArray", Scope = "member", Target = "System.Web.UI.PartialCachingAttribute.#.ctor(System.Int32,System.String,System.String,System.String)", Justification = @"adams: The 3 different string parameters are unique.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PartialCachingAttribute.#.ctor(System.Int32,System.String,System.String,System.String,System.String,System.Boolean)", MessageId = "1#", Justification = @"adams: Params is used as an abbreviation throughout the caching apis.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PartialCachingAttribute.#.ctor(System.Int32,System.String,System.String,System.String,System.String,System.Boolean)", MessageId = "Params", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.PartialCachingAttribute.#.ctor(System.Int32,System.String,System.String,System.String,System.String,System.String,System.Boolean)", MessageId = "Params", Justification = @"asplab: legacy")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.PersistChildrenAttribute.#Default", Justification = @"mattgi: the properties of the referenced types are also not settable")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.PersistChildrenAttribute.#No", Justification = @"mattgi: the properties of the referenced types are also not settable")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.PersistChildrenAttribute.#Yes", Justification = @"mattgi: the properties of the referenced types are also not settable")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.PersistenceModeAttribute.#Attribute", Justification = @"mattgi: the properties of the referenced types are also not settable")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.PersistenceModeAttribute.#Default", Justification = @"mattgi: the properties of the referenced types are also not settable")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.PersistenceModeAttribute.#EncodedInnerDefaultProperty", Justification = @"mattgi: the properties of the referenced types are also not settable")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.PersistenceModeAttribute.#InnerDefaultProperty", Justification = @"mattgi: the properties of the referenced types are also not settable")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.PersistenceModeAttribute.#InnerProperty", Justification = @"mattgi: the properties of the referenced types are also not settable")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.PostBackOptions.#.ctor(System.Web.UI.Control,System.String,System.String,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.String)", MessageId = "2#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.PostBackOptions.#ActionUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.PropertyConverter.#EnumFromString(System.Type,System.String)", Justification = @"mattgi: general exception catching is OK")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.PropertyConverter.#EnumToString(System.Type,System.Object)", Justification = @"phuff: This class is safe for external use.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.PropertyConverter.#ObjectFromString(System.Type,System.Reflection.MemberInfo,System.String)", Justification = @"mattgi: general exception catching is OK")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.RenderMethod", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.ResourceBasedLiteralControl.#.ctor(System.Web.UI.TemplateControl,System.Int32,System.Int32,System.Boolean)", Justification = @"[....]: Technically not correct, but safe in this case. Not worth taking the risk to change it.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.UI.ResourceBasedLiteralControl.#.ctor(System.Web.UI.TemplateControl,System.Int32,System.Int32,System.Boolean)", Justification = @"[....]: Very unlikely case. No need for a special message.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.SessionPageStatePersister", Justification = @"[....]: Give me a break, Persister is a word! :-)")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.SessionPageStatePersister.#.ctor(System.Web.UI.Page)", Justification = @"[....]: It's fine here to catch all exceptions.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.SessionPageStatePersister.#Load()", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.SimpleHandlerFactory", Justification = @"[....]: code may be used for debug purposes and through reflection")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.SimpleHandlerFactory.#.ctor()", Justification = @"[....]: Instantiated via config.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.SimpleWebHandlerParser.#.ctor(System.Web.HttpContext,System.String,System.String)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.SimpleWebHandlerParser.#GetCompiledTypeFromCache()", Justification = @"[....]: This existed in v1.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.SimpleWebHandlerParser.#GetType(System.String)", Justification = @"[....]: No need for a generic catch in this case.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.SimpleWebHandlerParser.#GetTypeToCache(System.Reflection.Assembly)", Justification = @"[....]: No need for a generic catch in this case.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.SimpleWebHandlerParser.#ParseReader()", Justification = @"[....]: No need for a generic catch in this case.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.SimpleWebHandlerParser.#System.Web.UI.IAssemblyDependencyParser.get_AssemblyDependencies()", Justification = @"[....]: IAssemblyDependencyParser is an internal interface, the property is not meant to be overriden.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.StateBag.#SetDirty(System.Boolean)", Justification = @"[....]: SetDirty is accepted pattern for method name")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateBag.#System.Collections.ICollection.get_IsSynchronized()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateBag.#System.Collections.ICollection.get_SyncRoot()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateBag.#System.Collections.IDictionary.get_IsFixedSize()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateBag.#System.Collections.IDictionary.get_IsReadOnly()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateBag.#System.Collections.IDictionary.get_Item(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateBag.#System.Collections.IDictionary.set_Item(System.Object,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#CopyTo(System.Array,System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#get_Count()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#GetEnumerator()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#SetDirtyObject(System.Object)", Justification = @"[....]: A method is the logical choice here.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.ICollection.get_Count()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.ICollection.get_IsSynchronized()", Justification = @"[....]: Derived classes should never need to override these methods, and they should only be called via the interfaces.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.ICollection.get_IsSynchronized()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.ICollection.get_SyncRoot()", Justification = @"[....]: Derived classes should never need to override these methods, and they should only be called via the interfaces.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.ICollection.get_SyncRoot()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IEnumerable.GetEnumerator()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Add(System.Object)", Justification = @"[....]: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Add(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Clear()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Contains(System.Object)", Justification = @"[....]: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Contains(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.IndexOf(System.Object)", Justification = @"[....]: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.IndexOf(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Insert(System.Int32,System.Object)", Justification = @"[....]: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Insert(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.get_IsFixedSize()", Justification = @"[....]: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.get_IsFixedSize()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.get_IsReadOnly()", Justification = @"[....]: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.get_IsReadOnly()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.get_Item(System.Int32)", Justification = @"[....]: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.get_Item(System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.set_Item(System.Int32,System.Object)", Justification = @"[....]: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.set_Item(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Remove(System.Object)", Justification = @"[....]: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Remove(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.RemoveAt(System.Int32)", Justification = @"[....]: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.RemoveAt(System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Web.UI.IStateManager.get_IsTrackingViewState()", Justification = @"[....]: Derived classes should never need to override these methods, and they should only be called via the interfaces.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Web.UI.IStateManager.LoadViewState(System.Object)", Justification = @"[....]: Derived classes should never need to override these methods, and they should only be called via the interfaces.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Web.UI.IStateManager.SaveViewState()", Justification = @"[....]: Derived classes should never need to override these methods, and they should only be called via the interfaces.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Web.UI.IStateManager.TrackViewState()", Justification = @"[....]: Derived classes should never need to override these methods, and they should only be called via the interfaces.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#.ctor(System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod,System.String)", MessageId = "Params", Justification = @"[....]: legacy")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#.ctor(System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod)", MessageId = "3#", Justification = @"[....]: parameter names not in the dictionary, but OK")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#.ctor(System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod)", MessageId = "Params", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#.ctor(System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod)", MessageId = "0#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#BuildCachedControl(System.Web.UI.Control,System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod,System.String)", Justification = @"[....]: legacy")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#BuildCachedControl(System.Web.UI.Control,System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod,System.String)", MessageId = "Params", Justification = @"[....]: legacy")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#BuildCachedControl(System.Web.UI.Control,System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod,System.String)", MessageId = "1#", Justification = @"[....]: legacy")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#BuildCachedControl(System.Web.UI.Control,System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod)", Justification = @"[....]: Method is an addition to an existing public method (excluded previously), so we should exclude this one as well.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#BuildCachedControl(System.Web.UI.Control,System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod)", MessageId = "4#", Justification = @"[....]: parameter names not in the dictionary, but OK")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#BuildCachedControl(System.Web.UI.Control,System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod)", MessageId = "Params", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#BuildCachedControl(System.Web.UI.Control,System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod)", MessageId = "1#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.UI.TargetFrameworkUtil.#GetTypeDescriptionProvider(System.Object)", Justification = @"[....]: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
-[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.UI.TargetFrameworkUtil.#GetTypeDescriptionProvider(System.Type)", Justification = @"[....]: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.TemplateControl.#.ctor()", Justification = @"[....]: I already excluded this earlier. Not sure why it's back on the list.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.TemplateControl.#_stringResourcePointer", Justification = @"[....]: I think IntPtr is fine here.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.TemplateControl.#AddStackContextToHashCode(System.Web.Util.HashCodeCombiner)", Justification = @"[....]: Seems like a bogus violation since the method is private")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.TemplateControl.#Eval(System.String)", MessageId = "Eval", Justification = @"[....]: Spelling ok (V1 precedence)")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.TemplateControl.#Eval(System.String,System.String)", MessageId = "Eval", Justification = @"[....]: Spelling ok (V1 precedence)")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.UI.TemplateControl.#FrameworkInitialize()", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.TemplateControl.#GetDelegateInformationWithAssert(System.Collections.IDictionary)", Justification = @"[....]: This is an internal method so linkdemand does not apply here.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.TemplateControl.#LoadControl(System.Type,System.Object[])", Justification = @"[....]: This is incorrect, there is no such call.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.TemplateControl.#OnAbortTransaction(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.TemplateControl.#OnCommitTransaction(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.TemplateControl.#OnError(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.TemplateControl.#System.Web.UI.IFilterResolutionService.CompareFilters(System.String,System.String)", Justification = @"[....]: These are not meant to be overridden.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.TemplateControl.#System.Web.UI.IFilterResolutionService.EvaluateFilter(System.String)", Justification = @"[....]: These are not meant to be overridden.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.TemplateControl.#XPath(System.String)", MessageId = "x", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.TemplateControl.#XPath(System.String,System.String)", MessageId = "x", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.TemplateControl.#XPath(System.String,System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"[....]: Apllings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.TemplateControl.#XPath(System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"[....]: Apllings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.TemplateControl.#XPathSelect(System.String)", MessageId = "x", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.TemplateControl.#XPathSelect(System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"[....]: Apllings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.TemplateControl+EventMethodInfo", Justification = @"[....]: Does not contain any unmanaged resources")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateControlParser.#ProcessMainDirective(System.Collections.IDictionary)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateControlParser.#ProcessUnknownMainDirectiveAttribute(System.String,System.String,System.String)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.TemplateInstanceAttribute", Justification = @"[....]: It is ok to expose these static readonly fields even though the LinkDemand does not apply to them.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.TemplateInstanceAttribute.#Default", Justification = @"[....]: These classes are immutable.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.TemplateInstanceAttribute.#Equals(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.TemplateInstanceAttribute.#GetHashCode()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.TemplateInstanceAttribute.#IsDefaultAttribute()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.TemplateInstanceAttribute.#Multiple", Justification = @"[....]: These classes are immutable.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.TemplateInstanceAttribute.#Single", Justification = @"[....]: These classes are immutable.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateParser.#MaybeTerminateControl(System.String,System.Int32)", Justification = @"[....]: It's fine in this case not to catch non Exception objects")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateParser.#ParseStringInternal(System.String,System.Text.Encoding)", Justification = @"[....]: It's fine in this case not to catch non Exception objects")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateParser.#PostProcessMainDirectiveAttributes(System.Collections.IDictionary)", Justification = @"[....]: It's fine in this case not to catch non Exception objects")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateParser.#ProcessAttributes(System.Text.RegularExpressions.Match,System.Web.UI.ParsedAttributeCollection&,System.Boolean,System.String&)", Justification = @"[....]: It's fine in this case not to catch non Exception objects")]
-[module: SuppressMessage("Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength", Scope = "member", Target = "System.Web.UI.TemplateParser.#ProcessAttributes(System.Text.RegularExpressions.Match,System.Web.UI.ParsedAttributeCollection&,System.Boolean,System.String&)", Justification = @"[....]: I changed it, but for some reaosn the violation remains...")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateParser.#ProcessBeginTag(System.Text.RegularExpressions.Match,System.String)", Justification = @"[....]: It's fine in this case not to catch non Exception objects")]
-[module: SuppressMessage("Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength", Scope = "member", Target = "System.Web.UI.TemplateParser.#ProcessDirective(System.String,System.Collections.IDictionary)", Justification = @"[....]: I changed it, but for some reaosn the violation remains...")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateParser.#ProcessLiteral()", Justification = @"[....]: It's fine in this case not to catch non Exception objects")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.TemplateParser.#ProcessLiteral()", MessageId = "System.Web.UI.TemplateParser.UpdateTypeHashCode(System.String)", Justification = @"[....]: Not a localizable string.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateParser.#ProcessMainDirective(System.Collections.IDictionary)", Justification = @"[....]: It's fine in this case not to catch non Exception objects")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateParser.#ProcessMainDirectiveAttribute(System.String,System.String,System.String,System.Collections.IDictionary)", Justification = @"[....]: It's fine in this case not to catch non Exception objects")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.TemplateParser.#System.Web.UI.IAssemblyDependencyParser.get_AssemblyDependencies()", Justification = @"[....]: IAssemblyDependencyParser is an internal interface, the property is not meant to be overriden.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.TemplateParser.#get_Text()", Justification = @"[....]: That's a mistake, it is used.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.ThemeableAttribute", MessageId = "Themeable", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.ThemeableAttribute", Justification = @"[....]: It is ok to expose these static readonly fields even though the LinkDemand does not apply to them.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#.ctor(System.Boolean)", MessageId = "themeable", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#Default", Justification = @"[....]: ThemeableAttribute is an immutal types, the object state cannot be changed after initialized.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#Equals(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#GetHashCode()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#IsDefaultAttribute()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#IsObjectThemeable(System.Object)", MessageId = "Themeable", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#IsTypeThemeable(System.Type)", MessageId = "Themeable", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#No", Justification = @"[....]: ThemeableAttribute is an immutal types, the object state cannot be changed after initialized.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#Themeable", MessageId = "Themeable", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#Yes", Justification = @"[....]: ThemeableAttribute is an immutal types, the object state cannot be changed after initialized.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.ThemeProvider.#GetSkinsForControl(System.Type)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.ToolboxDataAttribute.#Default", Justification = @"[....]: Field is not mutable")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.UrlPropertyAttribute.#Equals(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.UrlPropertyAttribute.#GetHashCode()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.UserControl.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.UserControl.#System.Web.UI.IAttributeAccessor.GetAttribute(System.String)", Justification = @"[....]: explicit implementations by design for information hiding")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.UserControl.#System.Web.UI.IAttributeAccessor.SetAttribute(System.String,System.String)", Justification = @"[....]: explicit implementations by design for information hiding")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.UserControl.#System.Web.UI.IUserControlDesignerAccessor.get_InnerText()", Justification = @"[....]: We don't want these to be overridden by anyone. They are strictly a design-time accessor used for internal purposes.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.UserControl.#System.Web.UI.IUserControlDesignerAccessor.set_InnerText(System.String)", Justification = @"[....]: We don't want these to be overridden by anyone. They are strictly a design-time accessor used for internal purposes.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.UserControl.#System.Web.UI.IUserControlDesignerAccessor.get_TagName()", Justification = @"[....]: We don't want these to be overridden by anyone. They are strictly a design-time accessor used for internal purposes.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.UserControl.#System.Web.UI.IUserControlDesignerAccessor.set_TagName(System.String)", Justification = @"[....]: We don't want these to be overridden by anyone. They are strictly a design-time accessor used for internal purposes.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.ResourceBasedLiteralControl.#.ctor(System.Web.UI.TemplateControl,System.Int32,System.Int32,System.Boolean)", Justification = @"davidebb: Technically not correct, but safe in this case. Not worth taking the risk to change it.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.UI.ResourceBasedLiteralControl.#.ctor(System.Web.UI.TemplateControl,System.Int32,System.Int32,System.Boolean)", Justification = @"davidebb: Very unlikely case. No need for a special message.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.SessionPageStatePersister", Justification = @"davidebb: Give me a break, Persister is a word! :-)")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.SessionPageStatePersister.#.ctor(System.Web.UI.Page)", Justification = @"davidebb: It's fine here to catch all exceptions.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.SessionPageStatePersister.#Load()", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.SimpleHandlerFactory", Justification = @"mattgi: code may be used for debug purposes and through reflection")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.SimpleHandlerFactory.#.ctor()", Justification = @"davidebb: Instantiated via config.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.SimpleWebHandlerParser.#.ctor(System.Web.HttpContext,System.String,System.String)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.SimpleWebHandlerParser.#GetCompiledTypeFromCache()", Justification = @"davidebb: This existed in v1.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.SimpleWebHandlerParser.#GetType(System.String)", Justification = @"davidebb: No need for a generic catch in this case.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.SimpleWebHandlerParser.#GetTypeToCache(System.Reflection.Assembly)", Justification = @"davidebb: No need for a generic catch in this case.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.SimpleWebHandlerParser.#ParseReader()", Justification = @"davidebb: No need for a generic catch in this case.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.SimpleWebHandlerParser.#System.Web.UI.IAssemblyDependencyParser.get_AssemblyDependencies()", Justification = @"tinghaoy: IAssemblyDependencyParser is an internal interface, the property is not meant to be overriden.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.StateBag.#SetDirty(System.Boolean)", Justification = @"mattgi: SetDirty is accepted pattern for method name")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateBag.#System.Collections.ICollection.get_IsSynchronized()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateBag.#System.Collections.ICollection.get_SyncRoot()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateBag.#System.Collections.IDictionary.get_IsFixedSize()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateBag.#System.Collections.IDictionary.get_IsReadOnly()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateBag.#System.Collections.IDictionary.get_Item(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateBag.#System.Collections.IDictionary.set_Item(System.Object,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#CopyTo(System.Array,System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#get_Count()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#GetEnumerator()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#SetDirtyObject(System.Object)", Justification = @"elipton: A method is the logical choice here.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.ICollection.get_Count()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.ICollection.get_IsSynchronized()", Justification = @"elipton: Derived classes should never need to override these methods, and they should only be called via the interfaces.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.ICollection.get_IsSynchronized()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.ICollection.get_SyncRoot()", Justification = @"elipton: Derived classes should never need to override these methods, and they should only be called via the interfaces.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.ICollection.get_SyncRoot()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IEnumerable.GetEnumerator()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Add(System.Object)", Justification = @"elipton: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Add(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Clear()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Contains(System.Object)", Justification = @"elipton: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Contains(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.IndexOf(System.Object)", Justification = @"elipton: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.IndexOf(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Insert(System.Int32,System.Object)", Justification = @"elipton: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Insert(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.get_IsFixedSize()", Justification = @"elipton: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.get_IsFixedSize()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.get_IsReadOnly()", Justification = @"elipton: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.get_IsReadOnly()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.get_Item(System.Int32)", Justification = @"elipton: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.get_Item(System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.set_Item(System.Int32,System.Object)", Justification = @"elipton: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.set_Item(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Remove(System.Object)", Justification = @"elipton: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.Remove(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.RemoveAt(System.Int32)", Justification = @"elipton: Derived collections should never need to change any of this functionality. Customization can be done via the OnXyz methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Collections.IList.RemoveAt(System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Web.UI.IStateManager.get_IsTrackingViewState()", Justification = @"elipton: Derived classes should never need to override these methods, and they should only be called via the interfaces.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Web.UI.IStateManager.LoadViewState(System.Object)", Justification = @"elipton: Derived classes should never need to override these methods, and they should only be called via the interfaces.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Web.UI.IStateManager.SaveViewState()", Justification = @"elipton: Derived classes should never need to override these methods, and they should only be called via the interfaces.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.StateManagedCollection.#System.Web.UI.IStateManager.TrackViewState()", Justification = @"elipton: Derived classes should never need to override these methods, and they should only be called via the interfaces.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#.ctor(System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod,System.String)", MessageId = "Params", Justification = @"asplab: legacy")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#.ctor(System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod)", MessageId = "3#", Justification = @"mattgi: parameter names not in the dictionary, but OK")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#.ctor(System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod)", MessageId = "Params", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#.ctor(System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod)", MessageId = "0#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#BuildCachedControl(System.Web.UI.Control,System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod,System.String)", Justification = @"asplab: legacy")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#BuildCachedControl(System.Web.UI.Control,System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod,System.String)", MessageId = "Params", Justification = @"asplab: legacy")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#BuildCachedControl(System.Web.UI.Control,System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod,System.String)", MessageId = "1#", Justification = @"asplab: legacy")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#BuildCachedControl(System.Web.UI.Control,System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod)", Justification = @"fabioy: Method is an addition to an existing public method (excluded previously), so we should exclude this one as well.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#BuildCachedControl(System.Web.UI.Control,System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod)", MessageId = "4#", Justification = @"mattgi: parameter names not in the dictionary, but OK")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#BuildCachedControl(System.Web.UI.Control,System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod)", MessageId = "Params", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.StaticPartialCachingControl.#BuildCachedControl(System.Web.UI.Control,System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.Web.UI.BuildMethod)", MessageId = "1#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.UI.TargetFrameworkUtil.#GetTypeDescriptionProvider(System.Object)", Justification = @"honglim: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Web.UI.TargetFrameworkUtil.#GetTypeDescriptionProvider(System.Type)", Justification = @"honglim: Calling this non-aptca method here does not seem to cause security vulnerabilities.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.TemplateControl.#.ctor()", Justification = @"davidebb: I already excluded this earlier. Not sure why it's back on the list.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.UI.TemplateControl.#_stringResourcePointer", Justification = @"davidebb: I think IntPtr is fine here.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.TemplateControl.#AddStackContextToHashCode(System.Web.Util.HashCodeCombiner)", Justification = @"davidebb: Seems like a bogus violation since the method is private")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.TemplateControl.#Eval(System.String)", MessageId = "Eval", Justification = @"phuff: Spelling ok (V1 precedence)")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.TemplateControl.#Eval(System.String,System.String)", MessageId = "Eval", Justification = @"phuff: Spelling ok (V1 precedence)")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.UI.TemplateControl.#FrameworkInitialize()", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.TemplateControl.#GetDelegateInformationWithAssert(System.Collections.IDictionary)", Justification = @"tinghaoy: This is an internal method so linkdemand does not apply here.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.TemplateControl.#LoadControl(System.Type,System.Object[])", Justification = @"davidebb: This is incorrect, there is no such call.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.TemplateControl.#OnAbortTransaction(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.TemplateControl.#OnCommitTransaction(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.TemplateControl.#OnError(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.TemplateControl.#System.Web.UI.IFilterResolutionService.CompareFilters(System.String,System.String)", Justification = @"andlin: These are not meant to be overridden.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.TemplateControl.#System.Web.UI.IFilterResolutionService.EvaluateFilter(System.String)", Justification = @"andlin: These are not meant to be overridden.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.TemplateControl.#XPath(System.String)", MessageId = "x", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.TemplateControl.#XPath(System.String,System.String)", MessageId = "x", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.TemplateControl.#XPath(System.String,System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"phuff: Apllings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.TemplateControl.#XPath(System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"phuff: Apllings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.TemplateControl.#XPathSelect(System.String)", MessageId = "x", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.TemplateControl.#XPathSelect(System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"phuff: Apllings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.TemplateControl+EventMethodInfo", Justification = @"tinghaoy: Does not contain any unmanaged resources")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateControlParser.#ProcessMainDirective(System.Collections.IDictionary)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateControlParser.#ProcessUnknownMainDirectiveAttribute(System.String,System.String,System.String)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.TemplateInstanceAttribute", Justification = @"bleroy: It is ok to expose these static readonly fields even though the LinkDemand does not apply to them.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.TemplateInstanceAttribute.#Default", Justification = @"nikhilko: These classes are immutable.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.TemplateInstanceAttribute.#Equals(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.TemplateInstanceAttribute.#GetHashCode()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.TemplateInstanceAttribute.#IsDefaultAttribute()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.TemplateInstanceAttribute.#Multiple", Justification = @"nikhilko: These classes are immutable.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.TemplateInstanceAttribute.#Single", Justification = @"nikhilko: These classes are immutable.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateParser.#MaybeTerminateControl(System.String,System.Int32)", Justification = @"davidebb: It's fine in this case not to catch non Exception objects")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateParser.#ParseStringInternal(System.String,System.Text.Encoding)", Justification = @"davidebb: It's fine in this case not to catch non Exception objects")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateParser.#PostProcessMainDirectiveAttributes(System.Collections.IDictionary)", Justification = @"davidebb: It's fine in this case not to catch non Exception objects")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateParser.#ProcessAttributes(System.Text.RegularExpressions.Match,System.Web.UI.ParsedAttributeCollection&,System.Boolean,System.String&)", Justification = @"davidebb: It's fine in this case not to catch non Exception objects")]
+[module: SuppressMessage("Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength", Scope = "member", Target = "System.Web.UI.TemplateParser.#ProcessAttributes(System.Text.RegularExpressions.Match,System.Web.UI.ParsedAttributeCollection&,System.Boolean,System.String&)", Justification = @"davidebb: I changed it, but for some reaosn the violation remains...")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateParser.#ProcessBeginTag(System.Text.RegularExpressions.Match,System.String)", Justification = @"davidebb: It's fine in this case not to catch non Exception objects")]
+[module: SuppressMessage("Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength", Scope = "member", Target = "System.Web.UI.TemplateParser.#ProcessDirective(System.String,System.Collections.IDictionary)", Justification = @"davidebb: I changed it, but for some reaosn the violation remains...")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateParser.#ProcessLiteral()", Justification = @"davidebb: It's fine in this case not to catch non Exception objects")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.TemplateParser.#ProcessLiteral()", MessageId = "System.Web.UI.TemplateParser.UpdateTypeHashCode(System.String)", Justification = @"davidebb: Not a localizable string.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateParser.#ProcessMainDirective(System.Collections.IDictionary)", Justification = @"davidebb: It's fine in this case not to catch non Exception objects")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.TemplateParser.#ProcessMainDirectiveAttribute(System.String,System.String,System.String,System.Collections.IDictionary)", Justification = @"davidebb: It's fine in this case not to catch non Exception objects")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.TemplateParser.#System.Web.UI.IAssemblyDependencyParser.get_AssemblyDependencies()", Justification = @"tinghaoy: IAssemblyDependencyParser is an internal interface, the property is not meant to be overriden.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.TemplateParser.#get_Text()", Justification = @"davidebb: That's a mistake, it is used.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.ThemeableAttribute", MessageId = "Themeable", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.ThemeableAttribute", Justification = @"bleroy: It is ok to expose these static readonly fields even though the LinkDemand does not apply to them.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#.ctor(System.Boolean)", MessageId = "themeable", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#Default", Justification = @"tinghaoy: ThemeableAttribute is an immutal types, the object state cannot be changed after initialized.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#Equals(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#GetHashCode()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#IsDefaultAttribute()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#IsObjectThemeable(System.Object)", MessageId = "Themeable", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#IsTypeThemeable(System.Type)", MessageId = "Themeable", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#No", Justification = @"tinghaoy: ThemeableAttribute is an immutal types, the object state cannot be changed after initialized.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#Themeable", MessageId = "Themeable", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.ThemeableAttribute.#Yes", Justification = @"tinghaoy: ThemeableAttribute is an immutal types, the object state cannot be changed after initialized.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.ThemeProvider.#GetSkinsForControl(System.Type)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.ToolboxDataAttribute.#Default", Justification = @"nikhilko: Field is not mutable")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.UrlPropertyAttribute.#Equals(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.UrlPropertyAttribute.#GetHashCode()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.UserControl.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.UserControl.#System.Web.UI.IAttributeAccessor.GetAttribute(System.String)", Justification = @"mattgi: explicit implementations by design for information hiding")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.UserControl.#System.Web.UI.IAttributeAccessor.SetAttribute(System.String,System.String)", Justification = @"mattgi: explicit implementations by design for information hiding")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.UserControl.#System.Web.UI.IUserControlDesignerAccessor.get_InnerText()", Justification = @"andlin: We don't want these to be overridden by anyone. They are strictly a design-time accessor used for internal purposes.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.UserControl.#System.Web.UI.IUserControlDesignerAccessor.set_InnerText(System.String)", Justification = @"andlin: We don't want these to be overridden by anyone. They are strictly a design-time accessor used for internal purposes.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.UserControl.#System.Web.UI.IUserControlDesignerAccessor.get_TagName()", Justification = @"andlin: We don't want these to be overridden by anyone. They are strictly a design-time accessor used for internal purposes.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.UserControl.#System.Web.UI.IUserControlDesignerAccessor.set_TagName(System.String)", Justification = @"andlin: We don't want these to be overridden by anyone. They are strictly a design-time accessor used for internal purposes.")]
[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.Util.#DeleteFileNoException(System.String)", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Util.#DumpArrayList(System.String,System.Collections.ArrayList)", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Util.#DumpDictionary(System.String,System.Collections.IDictionary)", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Util.#DumpString(System.String,System.String)", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.Util.#GetCurrentAccountName()", Justification = @"[....]: We want to catch everything that can go wrong here")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.Util.#HasWriteAccessToDirectory(System.String)", Justification = @"[....]: We want to catch everything that can go wrong here")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Util.#DumpArrayList(System.String,System.Collections.ArrayList)", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Util.#DumpDictionary(System.String,System.Collections.IDictionary)", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.Util.#DumpString(System.String,System.String)", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.Util.#GetCurrentAccountName()", Justification = @"bleroy: We want to catch everything that can go wrong here")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.Util.#HasWriteAccessToDirectory(System.String)", Justification = @"bleroy: We want to catch everything that can go wrong here")]
[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.Util.#IsNonEmptyDirectory(System.String)", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Util.#RemoveOrRenameFile(System.IO.FileInfo)", Justification = @"[....]: It's fine in this case not to catch non Exception objects")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.Util.#RemoveOrRenameFile(System.IO.FileInfo)", Justification = @"[....]: We want to catch everything that can go wrong here")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.VerificationAttribute.#.ctor(System.String,System.String,System.Web.UI.VerificationReportLevel,System.Int32,System.String,System.Web.UI.VerificationRule,System.String,System.Web.UI.VerificationConditionalOperator,System.String,System.String)", MessageId = "9#", Justification = @"[....]: Our url properties are commonly strings.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.VerificationAttribute.#GuidelineUrl", Justification = @"[....]: Our url properties are commonly strings.")]
-[module: SuppressMessage("Microsoft.Design", "CA1032:ImplementStandardExceptionConstructors", Scope = "type", Target = "System.Web.UI.ViewStateException", Justification = @"[....]: this exception can only be created internally")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.ViewStateException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"[....]: Interfaces and classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ViewStateException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"[....]: The AspNetHostingPermission link demand is applied only to AspNet classes.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ViewStateException.#get_Message()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.ViewStateException.#Referer", Justification = @"[....]: spelling is correct")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebServiceParser.#GetCompiledType(System.String,System.Web.HttpContext)", Justification = @"[....]: That's ok because the demand on the method is stronger than the ones on the type.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.XhtmlMobileDocType", Justification = @"[....]: Xhtml is a word.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.XhtmlTextWriter", Justification = @"[....]: Xhtml is a word.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.XhtmlTextWriter.#.ctor(System.IO.TextWriter,System.String)", MessageId = "1#", Justification = @"[....]: Parameter name is for consistency with corresponding HtmlTextWriter constructor parameter from V1.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.XhtmlTextWriter.#SetDocType(System.Web.UI.XhtmlMobileDocType)", Justification = @"[....]: explicit set action exposed as method instead of property by design")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.XPathBinder.#Eval(System.Object,System.String)", Justification = @"[....]: This conforms to the v1.0 naming convention of DataBinder.Eval")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.XPathBinder.#Eval(System.Object,System.String,System.String)", Justification = @"[....]: This conforms to the v1.0 naming convention of DataBinder.Eval")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.XPathBinder.#Eval(System.Object,System.String,System.String)", MessageId = "System.String.Format(System.String,System.Object)", Justification = @"[....]: The default current culture is supposed to be used here.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.XPathBinder.#Eval(System.Object,System.String,System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.XPathBinder.#Eval(System.Object,System.String,System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "Eval", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.XPathBinder.#Eval(System.Object,System.String,System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "System.String.Format(System.String,System.Object)", Justification = @"[....]: The default current culture is supposed to be used here.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.XPathBinder.#Eval(System.Object,System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.XPathBinder.#Eval(System.Object,System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "Eval", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.XPathBinder.#Select(System.Object,System.String)", MessageId = "x", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.XPathBinder.#Select(System.Object,System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Adapters.ControlAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Adapters.ControlAdapter.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Adapters.ControlAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Adapters.ControlAdapter.#OnUnload(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#CacheVaryByParams", Justification = @"[....]: name is consistent with already public members")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#GetStatePersister()", Justification = @"[....]: Persister is a word.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#GetStatePersister()", Justification = @"[....]: GetStatePersister() is specified as a method.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderBeginHyperlink(System.Web.UI.HtmlTextWriter,System.String,System.Boolean,System.String)", MessageId = "softkey", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderBeginHyperlink(System.Web.UI.HtmlTextWriter,System.String,System.Boolean,System.String)", MessageId = "1#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderBeginHyperlink(System.Web.UI.HtmlTextWriter,System.String,System.Boolean,System.String,System.String)", MessageId = "softkey", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderBeginHyperlink(System.Web.UI.HtmlTextWriter,System.String,System.Boolean,System.String,System.String)", MessageId = "1#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderPostBackEvent(System.Web.UI.HtmlTextWriter,System.String,System.String,System.String,System.String)", MessageId = "softkey", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderPostBackEvent(System.Web.UI.HtmlTextWriter,System.String,System.String,System.String,System.String,System.String,System.String)", MessageId = "softkey", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderPostBackEvent(System.Web.UI.HtmlTextWriter,System.String,System.String,System.String,System.String,System.String,System.String)", MessageId = "5#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderPostBackEvent(System.Web.UI.HtmlTextWriter,System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean)", MessageId = "softkey", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderPostBackEvent(System.Web.UI.HtmlTextWriter,System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean)", MessageId = "5#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlAnchor.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlAnchor.#OnServerClick(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlAnchor.#RaisePostBackEvent(System.String)", Justification = @"[....]: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlButton.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlButton.#OnServerClick(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlButton.#RaisePostBackEvent(System.String)", Justification = @"[....]: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
-[module: SuppressMessage("Microsoft.Design", "CA1012:AbstractTypesShouldNotHaveConstructors", Scope = "type", Target = "System.Web.UI.HtmlControls.HtmlContainerControl", Justification = @"[....]: excluded for breaking change")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlControl.#PreProcessRelativeReferenceAttribute(System.Web.UI.HtmlTextWriter,System.String)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlForm.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlForm.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlHead.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputButton.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputButton.#OnServerClick(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputButton.#RaisePostBackEvent(System.String)", Justification = @"[....]: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputCheckBox.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputCheckBox.#OnServerChange(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputCheckBox.#RaisePostDataChangedEvent()", Justification = @"[....]: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputFile.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputFile.#RaisePostDataChangedEvent()", Justification = @"[....]: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputHidden.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputHidden.#OnServerChange(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputHidden.#RaisePostDataChangedEvent()", Justification = @"[....]: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputImage.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputImage.#OnServerClick(System.Web.UI.ImageClickEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputImage.#RaisePostBackEvent(System.String)", Justification = @"[....]: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputImage.#RaisePostDataChangedEvent()", Justification = @"[....]: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputRadioButton.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputRadioButton.#OnServerChange(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputRadioButton.#RaisePostDataChangedEvent()", Justification = @"[....]: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputText.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputText.#OnServerChange(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputText.#RaisePostDataChangedEvent()", Justification = @"[....]: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#DataSourceID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#GetData()", Justification = @"[....]: These are all according to the spec.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#IsBoundUsingDataSourceID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#OnDataSourceViewChanged(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#OnServerChange(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#RaisePostDataChangedEvent()", Justification = @"[....]: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlTable+HtmlTableRowControlCollection.#Add(System.Web.UI.Control)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlTable+HtmlTableRowControlCollection.#AddAt(System.Int32,System.Web.UI.Control)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlTableRow+HtmlTableCellControlCollection.#Add(System.Web.UI.Control)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlTableRow+HtmlTableCellControlCollection.#AddAt(System.Int32,System.Web.UI.Control)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlTextArea.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlTextArea.#OnServerChange(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlTextArea.#RaisePostDataChangedEvent()", Justification = @"[....]: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.AccessDataSource.#.ctor(System.String,System.String)", Justification = @"[....]: These are just helper constructors, and it is unlikely that any bad behavior will result.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.Util.#RemoveOrRenameFile(System.IO.FileInfo)", Justification = @"davidebb: It's fine in this case not to catch non Exception objects")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.Util.#RemoveOrRenameFile(System.IO.FileInfo)", Justification = @"bleroy: We want to catch everything that can go wrong here")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.VerificationAttribute.#.ctor(System.String,System.String,System.Web.UI.VerificationReportLevel,System.Int32,System.String,System.Web.UI.VerificationRule,System.String,System.Web.UI.VerificationConditionalOperator,System.String,System.String)", MessageId = "9#", Justification = @"phuff: Our url properties are commonly strings.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.VerificationAttribute.#GuidelineUrl", Justification = @"phuff: Our url properties are commonly strings.")]
+[module: SuppressMessage("Microsoft.Design", "CA1032:ImplementStandardExceptionConstructors", Scope = "type", Target = "System.Web.UI.ViewStateException", Justification = @"tmarq: this exception can only be created internally")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.ViewStateException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"phuff: Interfaces and classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ViewStateException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification = @"phuff: The AspNetHostingPermission link demand is applied only to AspNet classes.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.ViewStateException.#get_Message()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.ViewStateException.#Referer", Justification = @"tmarq: spelling is correct")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebServiceParser.#GetCompiledType(System.String,System.Web.HttpContext)", Justification = @"davidebb: That's ok because the demand on the method is stronger than the ones on the type.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.XhtmlMobileDocType", Justification = @"scottim: Xhtml is a word.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.XhtmlTextWriter", Justification = @"scottim: Xhtml is a word.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.XhtmlTextWriter.#.ctor(System.IO.TextWriter,System.String)", MessageId = "1#", Justification = @"scottim: Parameter name is for consistency with corresponding HtmlTextWriter constructor parameter from V1.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.XhtmlTextWriter.#SetDocType(System.Web.UI.XhtmlMobileDocType)", Justification = @"mattgi: explicit set action exposed as method instead of property by design")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.XPathBinder.#Eval(System.Object,System.String)", Justification = @"elipton: This conforms to the v1.0 naming convention of DataBinder.Eval")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.XPathBinder.#Eval(System.Object,System.String,System.String)", Justification = @"elipton: This conforms to the v1.0 naming convention of DataBinder.Eval")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.XPathBinder.#Eval(System.Object,System.String,System.String)", MessageId = "System.String.Format(System.String,System.Object)", Justification = @"elipton: The default current culture is supposed to be used here.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.XPathBinder.#Eval(System.Object,System.String,System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.XPathBinder.#Eval(System.Object,System.String,System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "Eval", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.UI.XPathBinder.#Eval(System.Object,System.String,System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "System.String.Format(System.String,System.Object)", Justification = @"elipton: The default current culture is supposed to be used here.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.XPathBinder.#Eval(System.Object,System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.XPathBinder.#Eval(System.Object,System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "Eval", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.XPathBinder.#Select(System.Object,System.String)", MessageId = "x", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.XPathBinder.#Select(System.Object,System.String,System.Xml.IXmlNamespaceResolver)", MessageId = "x", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Adapters.ControlAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Adapters.ControlAdapter.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Adapters.ControlAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.Adapters.ControlAdapter.#OnUnload(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#CacheVaryByParams", Justification = @"mattgi: name is consistent with already public members")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#GetStatePersister()", Justification = @"scottim: Persister is a word.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#GetStatePersister()", Justification = @"scottim: GetStatePersister() is specified as a method.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderBeginHyperlink(System.Web.UI.HtmlTextWriter,System.String,System.Boolean,System.String)", MessageId = "softkey", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderBeginHyperlink(System.Web.UI.HtmlTextWriter,System.String,System.Boolean,System.String)", MessageId = "1#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderBeginHyperlink(System.Web.UI.HtmlTextWriter,System.String,System.Boolean,System.String,System.String)", MessageId = "softkey", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderBeginHyperlink(System.Web.UI.HtmlTextWriter,System.String,System.Boolean,System.String,System.String)", MessageId = "1#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderPostBackEvent(System.Web.UI.HtmlTextWriter,System.String,System.String,System.String,System.String)", MessageId = "softkey", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderPostBackEvent(System.Web.UI.HtmlTextWriter,System.String,System.String,System.String,System.String,System.String,System.String)", MessageId = "softkey", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderPostBackEvent(System.Web.UI.HtmlTextWriter,System.String,System.String,System.String,System.String,System.String,System.String)", MessageId = "5#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderPostBackEvent(System.Web.UI.HtmlTextWriter,System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean)", MessageId = "softkey", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.Adapters.PageAdapter.#RenderPostBackEvent(System.Web.UI.HtmlTextWriter,System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean)", MessageId = "5#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlAnchor.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlAnchor.#OnServerClick(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlAnchor.#RaisePostBackEvent(System.String)", Justification = @"scottim: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlButton.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlButton.#OnServerClick(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlButton.#RaisePostBackEvent(System.String)", Justification = @"scottim: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
+[module: SuppressMessage("Microsoft.Design", "CA1012:AbstractTypesShouldNotHaveConstructors", Scope = "type", Target = "System.Web.UI.HtmlControls.HtmlContainerControl", Justification = @"mattgi: excluded for breaking change")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlControl.#PreProcessRelativeReferenceAttribute(System.Web.UI.HtmlTextWriter,System.String)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlForm.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlForm.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlHead.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputButton.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputButton.#OnServerClick(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputButton.#RaisePostBackEvent(System.String)", Justification = @"scottim: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputCheckBox.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputCheckBox.#OnServerChange(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputCheckBox.#RaisePostDataChangedEvent()", Justification = @"scottim: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputFile.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputFile.#RaisePostDataChangedEvent()", Justification = @"scottim: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputHidden.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputHidden.#OnServerChange(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputHidden.#RaisePostDataChangedEvent()", Justification = @"scottim: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputImage.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputImage.#OnServerClick(System.Web.UI.ImageClickEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputImage.#RaisePostBackEvent(System.String)", Justification = @"scottim: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputImage.#RaisePostDataChangedEvent()", Justification = @"scottim: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputRadioButton.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputRadioButton.#OnServerChange(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputRadioButton.#RaisePostDataChangedEvent()", Justification = @"scottim: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputText.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputText.#OnServerChange(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlInputText.#RaisePostDataChangedEvent()", Justification = @"scottim: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#DataSourceID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#GetData()", Justification = @"elipton: These are all according to the spec.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#IsBoundUsingDataSourceID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#OnDataSourceViewChanged(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#OnServerChange(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlSelect.#RaisePostDataChangedEvent()", Justification = @"scottim: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlTable+HtmlTableRowControlCollection.#Add(System.Web.UI.Control)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlTable+HtmlTableRowControlCollection.#AddAt(System.Int32,System.Web.UI.Control)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlTableRow+HtmlTableCellControlCollection.#Add(System.Web.UI.Control)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlTableRow+HtmlTableCellControlCollection.#AddAt(System.Int32,System.Web.UI.Control)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlTextArea.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlTextArea.#OnServerChange(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.HtmlControls.HtmlTextArea.#RaisePostDataChangedEvent()", Justification = @"scottim: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.AccessDataSource.#.ctor(System.String,System.String)", Justification = @"elipton: These are just helper constructors, and it is unlikely that any bad behavior will result.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.AdCreatedEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.AdRotator.#GetFileData(System.String)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.AdRotator.#ImageUrlField", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.AdRotator.#LoadStream(System.IO.Stream)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.AdRotator.#NavigateUrlField", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.AdRotator.#OnAdCreated(System.Web.UI.WebControls.AdCreatedEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.AdRotator.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.AdRotator.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.AdRotator.#GetFileData(System.String)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.AdRotator.#ImageUrlField", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.AdRotator.#LoadStream(System.IO.Stream)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.AdRotator.#NavigateUrlField", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.AdRotator.#OnAdCreated(System.Web.UI.WebControls.AdCreatedEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.AdRotator.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.AdRotator.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.AuthenticateEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.AutoGeneratedField.#OnDataBindField(System.Object,System.EventArgs)", Justification = @"[....]: This method can be called at any time by anyone without a security risk.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.BaseCompareValidator.#Convert(System.String,System.Web.UI.WebControls.ValidationDataType,System.Boolean,System.Object&)", MessageId = "3#", Justification = @"[....]: This has been the design from V1 that we need to return a bool as well as the converted value.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.BaseCompareValidator.#Convert(System.String,System.Web.UI.WebControls.ValidationDataType,System.Object&)", MessageId = "2#", Justification = @"[....]: Breaking change")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.BaseCompareValidator.#GetDateElementOrder()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#get_DataSource()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#set_DataSource(System.Object)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#DataSourceID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#get_DataSourceID()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#set_DataSourceID(System.String)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#IsBoundUsingDataSourceID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#OnDataBound(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#OnPagePreLoad(System.Object,System.EventArgs)", MessageId = "PreLoad", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#OnPagePreLoad(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#DataSourceID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#GetData()", Justification = @"[....]: These are all according to the spec")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#IsBoundUsingDataSourceID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#OnDataSourceViewChanged(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#OnSelectedIndexChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.BaseValidator.#.ctor()", Justification = @"[....]: Do not expect this would be broken by derived classes. Also this code is from earlier version. If it is changed it would introduce breaking changes.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseValidator.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseValidator.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseValidator.#OnUnload(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.BoundField", Justification = @"[....]: thisExpr is not a security risk.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.BoundField.#GetDesignTimeValue()", Justification = @"[....]: GetDesignTimeHtml does an operation that makes more sense as a method.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.BoundField.#InitializeDataCell(System.Web.UI.WebControls.DataControlFieldCell,System.Web.UI.WebControls.DataControlRowState)", Justification = @"[....]: We want to enforce that this is instantiated inside a cell.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BoundField.#OnDataBindField(System.Object,System.EventArgs)", Justification = @"[....]: This method can be called at any time by anyone without a security risk.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.BulletedList.#BulletImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BulletedList.#OnClick(System.Web.UI.WebControls.BulletedListEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.BulletedList.#RaisePostBackEvent(System.String)", Justification = @"[....]: This method raises events, but is not an event.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.BulletedListDisplayMode.#HyperLink", MessageId = "HyperLink", Justification = @"[....]: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.AutoGeneratedField.#OnDataBindField(System.Object,System.EventArgs)", Justification = @"phuff: This method can be called at any time by anyone without a security risk.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.BaseCompareValidator.#Convert(System.String,System.Web.UI.WebControls.ValidationDataType,System.Boolean,System.Object&)", MessageId = "3#", Justification = @"ftse: This has been the design from V1 that we need to return a bool as well as the converted value.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.BaseCompareValidator.#Convert(System.String,System.Web.UI.WebControls.ValidationDataType,System.Object&)", MessageId = "2#", Justification = @"phuff: Breaking change")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.BaseCompareValidator.#GetDateElementOrder()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#get_DataSource()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#set_DataSource(System.Object)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#DataSourceID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#get_DataSourceID()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#set_DataSourceID(System.String)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#IsBoundUsingDataSourceID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#OnDataBound(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#OnPagePreLoad(System.Object,System.EventArgs)", MessageId = "PreLoad", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#OnPagePreLoad(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataBoundControl.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#DataSourceID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#GetData()", Justification = @"elipton: These are all according to the spec")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#IsBoundUsingDataSourceID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#OnDataSourceViewChanged(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseDataList.#OnSelectedIndexChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.BaseValidator.#.ctor()", Justification = @"ftse: Do not expect this would be broken by derived classes. Also this code is from earlier version. If it is changed it would introduce breaking changes.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseValidator.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseValidator.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BaseValidator.#OnUnload(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.BoundField", Justification = @"phuff: thisExpr is not a security risk.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.BoundField.#GetDesignTimeValue()", Justification = @"phuff: GetDesignTimeHtml does an operation that makes more sense as a method.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.BoundField.#InitializeDataCell(System.Web.UI.WebControls.DataControlFieldCell,System.Web.UI.WebControls.DataControlRowState)", Justification = @"phuff: We want to enforce that this is instantiated inside a cell.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BoundField.#OnDataBindField(System.Object,System.EventArgs)", Justification = @"phuff: This method can be called at any time by anyone without a security risk.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.BulletedList.#BulletImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.BulletedList.#OnClick(System.Web.UI.WebControls.BulletedListEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.BulletedList.#RaisePostBackEvent(System.String)", Justification = @"bleroy: This method raises events, but is not an event.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.BulletedListDisplayMode.#HyperLink", MessageId = "HyperLink", Justification = @"phuff: Spellings ok.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.BulletedListEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Button.#GetPostBackOptions()", Justification = @"[....]: This makes sense as a function because it's doing complex work.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Button.#OnClick(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Button.#OnCommand(System.Web.UI.WebControls.CommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Button.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed the method for trying to find security issues per the instructions of the FxCop rule. All this method does if to register client-side script if necessary. There is no security issue.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Button.#RaisePostBackEvent(System.String)", Justification = @"[....]: RaisePostBackEvent and RaiseDataChangedEvent are correctly following the .Net event model.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ButtonField.#ImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Calendar.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Calendar.#RaisePostBackEvent(System.String)", Justification = @"[....]: This is not an event, but raises events.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1803:AvoidCostlyCallsWherePossible", Scope = "member", Target = "System.Web.UI.WebControls.Calendar.#Render(System.Web.UI.HtmlTextWriter)", Justification = @"[....]: This rule fails to recognize System.Web.UI.WebControls.Unit which is a struct and has already overridden Object.Equals(bool). It still complains the usage in System.Web.UI.WebControls.Calendar.Render(HtmlTextWriter). I have reported this to FxCop bug report alias.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.ChangePassword", Justification = @"[....]: These are just public readonly strings.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#CancelButtonImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#CancelDestinationPageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#ChangePasswordButtonImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#ContinueButtonImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#ContinueDestinationPageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#CreateUserIconUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#CreateUserUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#EditProfileIconUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#EditProfileUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#HelpPageIconUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#HelpPageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#HyperLinkStyle", MessageId = "HyperLink", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnCancelButtonClick(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnChangedPassword(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnChangePasswordError(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnChangingPassword(System.Web.UI.WebControls.LoginCancelEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnContinueButtonClick(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnSendingMail(System.Web.UI.WebControls.MailMessageEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnSendMailError(System.Web.UI.WebControls.SendMailErrorEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#PasswordRecoveryIconUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#PasswordRecoveryUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#SuccessPageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword+DefaultChangePasswordTemplate.#LayoutControls(System.Web.UI.WebControls.ChangePassword+ChangePasswordContainer)", MessageId = "System.Web.UI.LiteralControl.set_Text(System.String)", Justification = @"[....]: html strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CheckBox.#OnCheckedChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CheckBox.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.CheckBox.#RaisePostDataChangedEvent()", Justification = @"[....]: RaisePostBackEvent and RaiseDataChangedEvent are correctly following the .Net event model.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CheckBoxField.#OnDataBindField(System.Object,System.EventArgs)", Justification = @"[....]: This method can be called at any time by anyone without a security risk.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.CheckBoxList.#.ctor()", Justification = @"[....]: I sealed the virtual property (Controls) that is called in the ctor.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CheckBoxList.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.CheckBoxList.#RaisePostDataChangedEvent()", Justification = @"[....]: RaisePostBackEvent and RaiseDataChangedEvent are correctly following the .Net event model.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.CircleHotSpot", MessageId = "HotSpot", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CommandEventArgs.#.ctor(System.Web.UI.WebControls.CommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Button.#GetPostBackOptions()", Justification = @"phuff: This makes sense as a function because it's doing complex work.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Button.#OnClick(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Button.#OnCommand(System.Web.UI.WebControls.CommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Button.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"ftse: Reviewed the method for trying to find security issues per the instructions of the FxCop rule. All this method does if to register client-side script if necessary. There is no security issue.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Button.#RaisePostBackEvent(System.String)", Justification = @"scottim: RaisePostBackEvent and RaiseDataChangedEvent are correctly following the .Net event model.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ButtonField.#ImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Calendar.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Calendar.#RaisePostBackEvent(System.String)", Justification = @"bleroy: This is not an event, but raises events.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1803:AvoidCostlyCallsWherePossible", Scope = "member", Target = "System.Web.UI.WebControls.Calendar.#Render(System.Web.UI.HtmlTextWriter)", Justification = @"ftse: This rule fails to recognize System.Web.UI.WebControls.Unit which is a struct and has already overridden Object.Equals(bool). It still complains the usage in System.Web.UI.WebControls.Calendar.Render(HtmlTextWriter). I have reported this to FxCop bug report alias.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.ChangePassword", Justification = @"haok: These are just public readonly strings.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#CancelButtonImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#CancelDestinationPageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#ChangePasswordButtonImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#ContinueButtonImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#ContinueDestinationPageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#CreateUserIconUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#CreateUserUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#EditProfileIconUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#EditProfileUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#HelpPageIconUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#HelpPageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#HyperLinkStyle", MessageId = "HyperLink", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnCancelButtonClick(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnChangedPassword(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnChangePasswordError(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnChangingPassword(System.Web.UI.WebControls.LoginCancelEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnContinueButtonClick(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnSendingMail(System.Web.UI.WebControls.MailMessageEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#OnSendMailError(System.Web.UI.WebControls.SendMailErrorEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#PasswordRecoveryIconUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#PasswordRecoveryUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"tinghaoy: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword.#SuccessPageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.ChangePassword+DefaultChangePasswordTemplate.#LayoutControls(System.Web.UI.WebControls.ChangePassword+ChangePasswordContainer)", MessageId = "System.Web.UI.LiteralControl.set_Text(System.String)", Justification = @"haok: html strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CheckBox.#OnCheckedChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CheckBox.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.CheckBox.#RaisePostDataChangedEvent()", Justification = @"scottim: RaisePostBackEvent and RaiseDataChangedEvent are correctly following the .Net event model.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CheckBoxField.#OnDataBindField(System.Object,System.EventArgs)", Justification = @"phuff: This method can be called at any time by anyone without a security risk.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.CheckBoxList.#.ctor()", Justification = @"phuff: I sealed the virtual property (Controls) that is called in the ctor.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CheckBoxList.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.CheckBoxList.#RaisePostDataChangedEvent()", Justification = @"scottim: RaisePostBackEvent and RaiseDataChangedEvent are correctly following the .Net event model.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.CircleHotSpot", MessageId = "HotSpot", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CommandEventArgs.#.ctor(System.Web.UI.WebControls.CommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.CommandEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#CancelImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#DeleteImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#EditImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#InitializeCell(System.Web.UI.WebControls.DataControlFieldCell,System.Web.UI.WebControls.DataControlCellType,System.Web.UI.WebControls.DataControlRowState,System.Int32)", MessageId = "System.Web.UI.LiteralControl.#ctor(System.String)", Justification = @"[....]: &nbsp; is an acceptable spelling and string for non-breaking space.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#InitializeCell(System.Web.UI.WebControls.DataControlFieldCell,System.Web.UI.WebControls.DataControlCellType,System.Web.UI.WebControls.DataControlRowState,System.Int32)", MessageId = "nbsp", Justification = @"[....]: &nbsp; is an acceptable spelling and string for non-breaking space.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#InsertImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#NewImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#SelectImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#get_ShowDeleteButton()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#get_ShowEditButton()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#get_ShowInsertButton()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#get_ShowSelectButton()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#UpdateImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.CompositeControl.#System.Web.UI.WebControls.ICompositeControlDesignerAccessor.RecreateChildControls()", Justification = @"[....]: This is an internal plumbing interface.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Content.#ContentPlaceHolderID", MessageId = "PlaceHolder", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Content.#ContentPlaceHolderID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.ContentPlaceHolder", MessageId = "PlaceHolder", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "type", Target = "System.Web.UI.WebControls.ControlIDConverter", Justification = @"[....]: We use ID in our code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.ControlParameter.#.ctor(System.String,System.String)", MessageId = "1#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.ControlParameter.#.ctor(System.String,System.String,System.String)", MessageId = "1#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.ControlParameter.#.ctor(System.String,System.TypeCode,System.String,System.String)", MessageId = "2#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.ControlParameter.#ControlID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.ControlParameter.#get_ControlID()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.ControlParameter.#get_PropertyName()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.CookieParameter.#get_CookieName()", Justification = @"[....]: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#CancelImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#DeleteImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#EditImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#InitializeCell(System.Web.UI.WebControls.DataControlFieldCell,System.Web.UI.WebControls.DataControlCellType,System.Web.UI.WebControls.DataControlRowState,System.Int32)", MessageId = "System.Web.UI.LiteralControl.#ctor(System.String)", Justification = @"phuff: &nbsp; is an acceptable spelling and string for non-breaking space.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#InitializeCell(System.Web.UI.WebControls.DataControlFieldCell,System.Web.UI.WebControls.DataControlCellType,System.Web.UI.WebControls.DataControlRowState,System.Int32)", MessageId = "nbsp", Justification = @"phuff: &nbsp; is an acceptable spelling and string for non-breaking space.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#InsertImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#NewImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#SelectImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#get_ShowDeleteButton()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#get_ShowEditButton()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#get_ShowInsertButton()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#get_ShowSelectButton()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CommandField.#UpdateImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.CompositeControl.#System.Web.UI.WebControls.ICompositeControlDesignerAccessor.RecreateChildControls()", Justification = @"andlin: This is an internal plumbing interface.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Content.#ContentPlaceHolderID", MessageId = "PlaceHolder", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Content.#ContentPlaceHolderID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.ContentPlaceHolder", MessageId = "PlaceHolder", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "type", Target = "System.Web.UI.WebControls.ControlIDConverter", Justification = @"phuff: We use ID in our code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.ControlParameter.#.ctor(System.String,System.String)", MessageId = "1#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.ControlParameter.#.ctor(System.String,System.String,System.String)", MessageId = "1#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.ControlParameter.#.ctor(System.String,System.TypeCode,System.String,System.String)", MessageId = "2#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.ControlParameter.#ControlID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.ControlParameter.#get_ControlID()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.ControlParameter.#get_PropertyName()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.CookieParameter.#get_CookieName()", Justification = @"phuff: System.Design is not APTCA.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.CreateUserErrorEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.CreateUserWizard", Justification = @"[....]: These are static readonly strings that do not expose any security threats.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#ContinueButtonImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#ContinueDestinationPageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#CreateUserButtonImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#DisplaySideBar", MessageId = "SideBar", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#EditProfileIconUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#EditProfileUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#GetDesignModeState()", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#HelpPageIconUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#HelpPageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#HyperLinkStyle", MessageId = "HyperLink", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnContinueButtonClick(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnCreatedUser(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnCreateUserError(System.Web.UI.WebControls.CreateUserErrorEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnCreatingUser(System.Web.UI.WebControls.LoginCancelEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnNextButtonClick(System.Web.UI.WebControls.WizardNavigationEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnSendingMail(System.Web.UI.WebControls.MailMessageEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnSendMailError(System.Web.UI.WebControls.SendMailErrorEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DataBoundControl.#get_DataMember()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DataBoundControl.#set_DataMember(System.String)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.DataBoundControl.#GetData()", Justification = @"[....]: These are all according to the spec")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.DataBoundControl.#GetDataSource()", Justification = @"[....]: These are all according to the spec")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataBoundControl.#OnDataSourceViewChanged(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataBoundControl.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.DataBoundControl.#OnPagePreLoad(System.Object,System.EventArgs)", MessageId = "PreLoad", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataBoundControl.#OnPagePreLoad(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.DataControlCommands", Justification = @"[....]: These fields are benign")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#get_FooterStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#HeaderImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#get_HeaderStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#get_HeaderText()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#InitializeCell(System.Web.UI.WebControls.DataControlFieldCell,System.Web.UI.WebControls.DataControlCellType,System.Web.UI.WebControls.DataControlRowState,System.Int32)", Justification = @"[....]: We want to enforce that this is instantiated inside a cell.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#get_ItemStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#System.Web.UI.IDataSourceViewSchemaAccessor.get_DataSourceViewSchema()", Justification = @"[....]: We don't want these to be overridable, so they are strictly privately implemented.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#System.Web.UI.IDataSourceViewSchemaAccessor.set_DataSourceViewSchema(System.Object)", Justification = @"[....]: We don't want these to be overridable, so they are strictly privately implemented.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#ToString()", Justification = @"[....]: Object::ToString() has no link demand, but our class does. Benign.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataControlFieldCollection.#CreateKnownType(System.Int32)", Justification = @"[....]: A sealed class does not need an Inheritance demand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataControlFieldCollection.#GetKnownTypes()", Justification = @"[....]: A sealed class does not need an Inheritance demand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DataControlFieldCollection.#get_Item(System.Int32)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataControlFieldCollection.#OnClearComplete()", Justification = @"[....]: A sealed class does not need an Inheritance demand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataControlFieldCollection.#OnInsertComplete(System.Int32,System.Object)", Justification = @"[....]: A sealed class does not need an Inheritance demand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataControlFieldCollection.#OnRemoveComplete(System.Int32,System.Object)", Justification = @"[....]: A sealed class does not need an Inheritance demand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataControlFieldCollection.#OnValidate(System.Object)", Justification = @"[....]: A sealed class does not need an Inheritance demand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataControlFieldCollection.#SetDirtyObject(System.Object)", Justification = @"[....]: A sealed class does not need an Inheritance demand.")]
-[module: SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "type", Target = "System.Web.UI.WebControls.DataControlRowState", Justification = @"[....]: Normal describes the state better than None.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1714:FlagsEnumsShouldHavePluralNames", Scope = "type", Target = "System.Web.UI.WebControls.DataControlRowState", Justification = @"[....]: Since it represents a state, I don't think this needs to be pluralized.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#InitializePager(System.Web.UI.WebControls.DataGridItem,System.Int32,System.Web.UI.WebControls.PagedDataSource)", MessageId = "System.Web.UI.LiteralControl.#ctor(System.String)", Justification = @"[....]: This is the correct spelling for non-breaking space, and not localized.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#InitializePager(System.Web.UI.WebControls.DataGridItem,System.Int32,System.Web.UI.WebControls.PagedDataSource)", MessageId = "System.Web.UI.WebControls.IButtonControl.set_Text(System.String)", Justification = @"[....]: The ""..."" is acceptable for all languages")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#InitializePager(System.Web.UI.WebControls.DataGridItem,System.Int32,System.Web.UI.WebControls.PagedDataSource)", MessageId = "System.Web.UI.WebControls.LinkButton.set_Text(System.String)", Justification = @"[....]: This is the correct spelling for non-breaking space, and not localized.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#InitializePager(System.Web.UI.WebControls.DataGridItem,System.Int32,System.Web.UI.WebControls.PagedDataSource)", MessageId = "nbsp", Justification = @"[....]: This is the correct spelling for non-breaking space.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnCancelCommand(System.Web.UI.WebControls.DataGridCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnDeleteCommand(System.Web.UI.WebControls.DataGridCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnEditCommand(System.Web.UI.WebControls.DataGridCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnItemCommand(System.Web.UI.WebControls.DataGridCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnItemCreated(System.Web.UI.WebControls.DataGridItemEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnItemDataBound(System.Web.UI.WebControls.DataGridItemEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnPageIndexChanged(System.Web.UI.WebControls.DataGridPageChangedEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnSortCommand(System.Web.UI.WebControls.DataGridSortCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnUpdateCommand(System.Web.UI.WebControls.DataGridCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGridCommandEventArgs.#.ctor(System.Web.UI.WebControls.DataGridItem,System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "2#", Justification = @"[....]: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.CreateUserWizard", Justification = @"tinghaoy: These are static readonly strings that do not expose any security threats.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#ContinueButtonImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#ContinueDestinationPageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#CreateUserButtonImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#DisplaySideBar", MessageId = "SideBar", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#EditProfileIconUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#EditProfileUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#GetDesignModeState()", Justification = @"tinghaoy: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#HelpPageIconUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#HelpPageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#HyperLinkStyle", MessageId = "HyperLink", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnContinueButtonClick(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnCreatedUser(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnCreateUserError(System.Web.UI.WebControls.CreateUserErrorEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnCreatingUser(System.Web.UI.WebControls.LoginCancelEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnNextButtonClick(System.Web.UI.WebControls.WizardNavigationEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnSendingMail(System.Web.UI.WebControls.MailMessageEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#OnSendMailError(System.Web.UI.WebControls.SendMailErrorEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.CreateUserWizard.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"tinghaoy: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DataBoundControl.#get_DataMember()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DataBoundControl.#set_DataMember(System.String)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.DataBoundControl.#GetData()", Justification = @"elipton: These are all according to the spec")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.DataBoundControl.#GetDataSource()", Justification = @"elipton: These are all according to the spec")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataBoundControl.#OnDataSourceViewChanged(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataBoundControl.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.DataBoundControl.#OnPagePreLoad(System.Object,System.EventArgs)", MessageId = "PreLoad", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataBoundControl.#OnPagePreLoad(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.DataControlCommands", Justification = @"phuff: These fields are benign")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#get_FooterStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#HeaderImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#get_HeaderStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#get_HeaderText()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#InitializeCell(System.Web.UI.WebControls.DataControlFieldCell,System.Web.UI.WebControls.DataControlCellType,System.Web.UI.WebControls.DataControlRowState,System.Int32)", Justification = @"phuff: We want to enforce that this is instantiated inside a cell.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#get_ItemStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#System.Web.UI.IDataSourceViewSchemaAccessor.get_DataSourceViewSchema()", Justification = @"andlin: We don't want these to be overridable, so they are strictly privately implemented.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#System.Web.UI.IDataSourceViewSchemaAccessor.set_DataSourceViewSchema(System.Object)", Justification = @"andlin: We don't want these to be overridable, so they are strictly privately implemented.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataControlField.#ToString()", Justification = @"phuff: Object::ToString() has no link demand, but our class does. Benign.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataControlFieldCollection.#CreateKnownType(System.Int32)", Justification = @"phuff: A sealed class does not need an Inheritance demand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataControlFieldCollection.#GetKnownTypes()", Justification = @"phuff: A sealed class does not need an Inheritance demand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DataControlFieldCollection.#get_Item(System.Int32)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataControlFieldCollection.#OnClearComplete()", Justification = @"phuff: A sealed class does not need an Inheritance demand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataControlFieldCollection.#OnInsertComplete(System.Int32,System.Object)", Justification = @"phuff: A sealed class does not need an Inheritance demand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataControlFieldCollection.#OnRemoveComplete(System.Int32,System.Object)", Justification = @"phuff: A sealed class does not need an Inheritance demand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataControlFieldCollection.#OnValidate(System.Object)", Justification = @"phuff: A sealed class does not need an Inheritance demand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataControlFieldCollection.#SetDirtyObject(System.Object)", Justification = @"phuff: A sealed class does not need an Inheritance demand.")]
+[module: SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue", Scope = "type", Target = "System.Web.UI.WebControls.DataControlRowState", Justification = @"phuff: Normal describes the state better than None.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1714:FlagsEnumsShouldHavePluralNames", Scope = "type", Target = "System.Web.UI.WebControls.DataControlRowState", Justification = @"phuff: Since it represents a state, I don't think this needs to be pluralized.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#InitializePager(System.Web.UI.WebControls.DataGridItem,System.Int32,System.Web.UI.WebControls.PagedDataSource)", MessageId = "System.Web.UI.LiteralControl.#ctor(System.String)", Justification = @"phuff: This is the correct spelling for non-breaking space, and not localized.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#InitializePager(System.Web.UI.WebControls.DataGridItem,System.Int32,System.Web.UI.WebControls.PagedDataSource)", MessageId = "System.Web.UI.WebControls.IButtonControl.set_Text(System.String)", Justification = @"phuff: The ""..."" is acceptable for all languages")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#InitializePager(System.Web.UI.WebControls.DataGridItem,System.Int32,System.Web.UI.WebControls.PagedDataSource)", MessageId = "System.Web.UI.WebControls.LinkButton.set_Text(System.String)", Justification = @"phuff: This is the correct spelling for non-breaking space, and not localized.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#InitializePager(System.Web.UI.WebControls.DataGridItem,System.Int32,System.Web.UI.WebControls.PagedDataSource)", MessageId = "nbsp", Justification = @"phuff: This is the correct spelling for non-breaking space.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnCancelCommand(System.Web.UI.WebControls.DataGridCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnDeleteCommand(System.Web.UI.WebControls.DataGridCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnEditCommand(System.Web.UI.WebControls.DataGridCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnItemCommand(System.Web.UI.WebControls.DataGridCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnItemCreated(System.Web.UI.WebControls.DataGridItemEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnItemDataBound(System.Web.UI.WebControls.DataGridItemEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnPageIndexChanged(System.Web.UI.WebControls.DataGridPageChangedEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnSortCommand(System.Web.UI.WebControls.DataGridSortCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGrid.#OnUpdateCommand(System.Web.UI.WebControls.DataGridCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGridCommandEventArgs.#.ctor(System.Web.UI.WebControls.DataGridItem,System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "2#", Justification = @"phuff: Reviewed.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.DataGridCommandEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGridItem.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.DataGridItem.#SetItemType(System.Web.UI.WebControls.ListItemType)", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataGridItem.#System.Web.UI.IDataItemContainer.get_DataItemIndex()", Justification = @"[....]: These are overridable by overriding properties on the control.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataGridItem.#System.Web.UI.IDataItemContainer.get_DisplayIndex()", Justification = @"[....]: These are overridable by overriding properties on the control.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGridItem.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.DataGridItem.#SetItemType(System.Web.UI.WebControls.ListItemType)", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataGridItem.#System.Web.UI.IDataItemContainer.get_DataItemIndex()", Justification = @"phuff: These are overridable by overriding properties on the control.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataGridItem.#System.Web.UI.IDataItemContainer.get_DisplayIndex()", Justification = @"phuff: These are overridable by overriding properties on the control.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.DataGridItemEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.DataGridPageChangedEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGridSortCommandEventArgs.#.ctor(System.Object,System.Web.UI.WebControls.DataGridCommandEventArgs)", MessageId = "1#", Justification = @"[....]: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataGridSortCommandEventArgs.#.ctor(System.Object,System.Web.UI.WebControls.DataGridCommandEventArgs)", MessageId = "1#", Justification = @"phuff: Reviewed.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.DataGridSortCommandEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "type", Target = "System.Web.UI.WebControls.DataKeyArray", Justification = @"[....]: Unfortunately, we already shipped a DataKeyCollection class, so we needed a new name.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataKeyArray.#get_Count()", Justification = @"[....]: Sealed classes do not require an inheritance demand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataKeyArray.#GetEnumerator()", Justification = @"[....]: Sealed classes do not require an inheritance demand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataKeyArray.#get_IsSynchronized()", Justification = @"[....]: Sealed classes do not require an inheritance demand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataKeyArray.#get_SyncRoot()", Justification = @"[....]: Sealed classes do not require an inheritance demand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataKeyArray.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnCancelCommand(System.Web.UI.WebControls.DataListCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnDeleteCommand(System.Web.UI.WebControls.DataListCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnEditCommand(System.Web.UI.WebControls.DataListCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnItemCommand(System.Web.UI.WebControls.DataListCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnItemCreated(System.Web.UI.WebControls.DataListItemEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnItemDataBound(System.Web.UI.WebControls.DataListItemEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnUpdateCommand(System.Web.UI.WebControls.DataListCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#System.Web.UI.WebControls.IRepeatInfoUser.GetItemStyle(System.Web.UI.WebControls.ListItemType,System.Int32)", Justification = @"[....]: We won't change DataList's OM.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#System.Web.UI.WebControls.IRepeatInfoUser.get_HasFooter()", Justification = @"[....]: We won't change DataList's OM.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#System.Web.UI.WebControls.IRepeatInfoUser.get_HasHeader()", Justification = @"[....]: We won't change DataList's OM.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#System.Web.UI.WebControls.IRepeatInfoUser.get_HasSeparators()", Justification = @"[....]: We won't change DataList's OM.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#System.Web.UI.WebControls.IRepeatInfoUser.RenderItem(System.Web.UI.WebControls.ListItemType,System.Int32,System.Web.UI.WebControls.RepeatInfo,System.Web.UI.HtmlTextWriter)", Justification = @"[....]: We won't change DataList's OM.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#System.Web.UI.WebControls.IRepeatInfoUser.get_RepeatedItemCount()", Justification = @"[....]: We won't change DataList's OM.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataListCommandEventArgs.#.ctor(System.Web.UI.WebControls.DataListItem,System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "2#", Justification = @"[....]: Reviewed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "type", Target = "System.Web.UI.WebControls.DataKeyArray", Justification = @"phuff: Unfortunately, we already shipped a DataKeyCollection class, so we needed a new name.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataKeyArray.#get_Count()", Justification = @"phuff: Sealed classes do not require an inheritance demand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataKeyArray.#GetEnumerator()", Justification = @"phuff: Sealed classes do not require an inheritance demand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataKeyArray.#get_IsSynchronized()", Justification = @"phuff: Sealed classes do not require an inheritance demand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataKeyArray.#get_SyncRoot()", Justification = @"phuff: Sealed classes do not require an inheritance demand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DataKeyArray.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnCancelCommand(System.Web.UI.WebControls.DataListCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnDeleteCommand(System.Web.UI.WebControls.DataListCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnEditCommand(System.Web.UI.WebControls.DataListCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnItemCommand(System.Web.UI.WebControls.DataListCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnItemCreated(System.Web.UI.WebControls.DataListItemEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnItemDataBound(System.Web.UI.WebControls.DataListItemEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#OnUpdateCommand(System.Web.UI.WebControls.DataListCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#System.Web.UI.WebControls.IRepeatInfoUser.GetItemStyle(System.Web.UI.WebControls.ListItemType,System.Int32)", Justification = @"phuff: We won't change DataList's OM.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#System.Web.UI.WebControls.IRepeatInfoUser.get_HasFooter()", Justification = @"phuff: We won't change DataList's OM.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#System.Web.UI.WebControls.IRepeatInfoUser.get_HasHeader()", Justification = @"phuff: We won't change DataList's OM.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#System.Web.UI.WebControls.IRepeatInfoUser.get_HasSeparators()", Justification = @"phuff: We won't change DataList's OM.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#System.Web.UI.WebControls.IRepeatInfoUser.RenderItem(System.Web.UI.WebControls.ListItemType,System.Int32,System.Web.UI.WebControls.RepeatInfo,System.Web.UI.HtmlTextWriter)", Justification = @"phuff: We won't change DataList's OM.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataList.#System.Web.UI.WebControls.IRepeatInfoUser.get_RepeatedItemCount()", Justification = @"phuff: We won't change DataList's OM.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataListCommandEventArgs.#.ctor(System.Web.UI.WebControls.DataListItem,System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "2#", Justification = @"phuff: Reviewed.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.DataListCommandEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataListItem.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.DataListItem.#SetItemType(System.Web.UI.WebControls.ListItemType)", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataListItem.#System.Web.UI.IDataItemContainer.get_DataItemIndex()", Justification = @"[....]: These are overridable by overriding the corresponding properties on the control.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataListItem.#System.Web.UI.IDataItemContainer.get_DisplayIndex()", Justification = @"[....]: These are overridable by overriding the corresponding properties on the control.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DataListItem.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.DataListItem.#SetItemType(System.Web.UI.WebControls.ListItemType)", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataListItem.#System.Web.UI.IDataItemContainer.get_DataItemIndex()", Justification = @"phuff: These are overridable by overriding the corresponding properties on the control.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DataListItem.#System.Web.UI.IDataItemContainer.get_DisplayIndex()", Justification = @"phuff: These are overridable by overriding the corresponding properties on the control.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.DataListItemEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.DayRenderEventArgs.#.ctor(System.Web.UI.WebControls.TableCell,System.Web.UI.WebControls.CalendarDay,System.String)", MessageId = "2#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.DayRenderEventArgs.#SelectUrl", Justification = @"[....]: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.DayRenderEventArgs.#.ctor(System.Web.UI.WebControls.TableCell,System.Web.UI.WebControls.CalendarDay,System.String)", MessageId = "2#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.DayRenderEventArgs.#SelectUrl", Justification = @"phuff: Urls ok as strings")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.DayRenderEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_AllowPaging()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_AlternatingRowStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_AutoGenerateDeleteButton()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_AutoGenerateEditButton()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_AutoGenerateInsertButton()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_AutoGenerateRows()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#set_AutoGenerateRows(System.Boolean)", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#BackImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#CreateNumericPager(System.Web.UI.WebControls.TableRow,System.Web.UI.WebControls.PagedDataSource,System.Boolean)", MessageId = "System.Web.UI.WebControls.IButtonControl.set_Text(System.String)", Justification = @"[....]: The ""..."" is acceptable for all languages")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#CreateNumericPager(System.Web.UI.WebControls.TableRow,System.Web.UI.WebControls.PagedDataSource,System.Boolean)", MessageId = "System.Web.UI.WebControls.LinkButton.set_Text(System.String)", Justification = @"[....]: We use ""..."", unlocalized.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_CurrentMode()", Justification = @"[....]: Designers run in full trust.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#DataKeyNames", Justification = @"[....]: Making these array properties lets you set them declaratively with a comma-separated list. We would use an immutable array if possible.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#DataKeyNames", Justification = @"[....]: Making these array properties lets you set them declaratively with a comma-separated list. We would use an immutable array if possible.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_DataKeyNames()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#set_DataKeyNames(System.String[])", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_EditRowStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_EmptyDataRowStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_Fields()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_FooterStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#GetCallbackResult()", Justification = @"[....]: Naming is appropriate for this interface")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_HeaderStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#InitializePager(System.Web.UI.WebControls.DetailsViewRow,System.Web.UI.WebControls.PagedDataSource)", Justification = @"[....]: We want to enforce the type of the row.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_InsertRowStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnBubbleEvent(System.Object,System.EventArgs)", Justification = @"[....]: DetailsView is just overriding Control's OnBubbleEvent.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnDataSourceViewChanged(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnItemCommand(System.Web.UI.WebControls.DetailsViewCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnItemCreated(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnItemDeleted(System.Web.UI.WebControls.DetailsViewDeletedEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnItemDeleting(System.Web.UI.WebControls.DetailsViewDeleteEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnItemInserted(System.Web.UI.WebControls.DetailsViewInsertedEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnItemInserting(System.Web.UI.WebControls.DetailsViewInsertEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnItemUpdated(System.Web.UI.WebControls.DetailsViewUpdatedEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnItemUpdating(System.Web.UI.WebControls.DetailsViewUpdateEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnModeChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnModeChanging(System.Web.UI.WebControls.DetailsViewModeEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnPageIndexChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnPageIndexChanging(System.Web.UI.WebControls.DetailsViewPageEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnPagePreLoad(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Safe handling of PagePreLoad. The event handler is protected,")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_PagerSettings()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_PagerStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#RaiseCallbackEvent(System.String)", Justification = @"[....]: Naming is appropriate for this interface")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#RaisePostBackEvent(System.String)", Justification = @"[....]: legacy pattern for exposting IPostbackEventHandler -[....]")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_Rows()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_RowStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#System.Web.UI.IDataItemContainer.get_DisplayIndex()", Justification = @"[....]: These are overridable by overriding the corresponding properties on the control.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#System.Web.UI.WebControls.ICallbackContainer.GetCallbackScript(System.Web.UI.WebControls.IButtonControl,System.String)", Justification = @"[....]: These interface implementations should only be overridden by controls that wish to completely take over the implementation. They should not be able to call our implementation any more. They can do this by explicitly reimplementing the interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#System.Web.UI.WebControls.IPostBackContainer.GetPostBackOptions(System.Web.UI.WebControls.IButtonControl)", Justification = @"[....]: Inheritors should reimplement the interface completely.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewCommandEventArgs.#.ctor(System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_AllowPaging()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_AlternatingRowStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_AutoGenerateDeleteButton()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_AutoGenerateEditButton()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_AutoGenerateInsertButton()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_AutoGenerateRows()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#set_AutoGenerateRows(System.Boolean)", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#BackImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#CreateNumericPager(System.Web.UI.WebControls.TableRow,System.Web.UI.WebControls.PagedDataSource,System.Boolean)", MessageId = "System.Web.UI.WebControls.IButtonControl.set_Text(System.String)", Justification = @"phuff: The ""..."" is acceptable for all languages")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#CreateNumericPager(System.Web.UI.WebControls.TableRow,System.Web.UI.WebControls.PagedDataSource,System.Boolean)", MessageId = "System.Web.UI.WebControls.LinkButton.set_Text(System.String)", Justification = @"phuff: We use ""..."", unlocalized.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_CurrentMode()", Justification = @"phuff: Designers run in full trust.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#DataKeyNames", Justification = @"phuff: Making these array properties lets you set them declaratively with a comma-separated list. We would use an immutable array if possible.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#DataKeyNames", Justification = @"phuff: Making these array properties lets you set them declaratively with a comma-separated list. We would use an immutable array if possible.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_DataKeyNames()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#set_DataKeyNames(System.String[])", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_EditRowStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_EmptyDataRowStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_Fields()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_FooterStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#GetCallbackResult()", Justification = @"phuff: Naming is appropriate for this interface")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_HeaderStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#InitializePager(System.Web.UI.WebControls.DetailsViewRow,System.Web.UI.WebControls.PagedDataSource)", Justification = @"phuff: We want to enforce the type of the row.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_InsertRowStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnBubbleEvent(System.Object,System.EventArgs)", Justification = @"phuff: DetailsView is just overriding Control's OnBubbleEvent.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnDataSourceViewChanged(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnItemCommand(System.Web.UI.WebControls.DetailsViewCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnItemCreated(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnItemDeleted(System.Web.UI.WebControls.DetailsViewDeletedEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnItemDeleting(System.Web.UI.WebControls.DetailsViewDeleteEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnItemInserted(System.Web.UI.WebControls.DetailsViewInsertedEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnItemInserting(System.Web.UI.WebControls.DetailsViewInsertEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnItemUpdated(System.Web.UI.WebControls.DetailsViewUpdatedEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnItemUpdating(System.Web.UI.WebControls.DetailsViewUpdateEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnModeChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnModeChanging(System.Web.UI.WebControls.DetailsViewModeEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnPageIndexChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnPageIndexChanging(System.Web.UI.WebControls.DetailsViewPageEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnPagePreLoad(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Safe handling of PagePreLoad. The event handler is protected,")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_PagerSettings()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_PagerStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#RaiseCallbackEvent(System.String)", Justification = @"phuff: Naming is appropriate for this interface")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#RaisePostBackEvent(System.String)", Justification = @"mattgi: legacy pattern for exposting IPostbackEventHandler -MattGi")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_Rows()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#get_RowStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#System.Web.UI.IDataItemContainer.get_DisplayIndex()", Justification = @"phuff: These are overridable by overriding the corresponding properties on the control.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#System.Web.UI.WebControls.ICallbackContainer.GetCallbackScript(System.Web.UI.WebControls.IButtonControl,System.String)", Justification = @"phuff: These interface implementations should only be overridden by controls that wish to completely take over the implementation. They should not be able to call our implementation any more. They can do this by explicitly reimplementing the interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DetailsView.#System.Web.UI.WebControls.IPostBackContainer.GetPostBackOptions(System.Web.UI.WebControls.IButtonControl)", Justification = @"phuff: Inheritors should reimplement the interface completely.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewCommandEventArgs.#.ctor(System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.DetailsViewCommandEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.DetailsViewDeleteEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.DetailsViewInsertEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.DetailsViewModeEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRow.#OnBubbleEvent(System.Object,System.EventArgs)", Justification = @"[....]: DetailsViewRow just overrides Control::OnBubbleEvent")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRowCollection.#get_Count()", Justification = @"[....]: Designers run in full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRowCollection.#get_Count()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRowCollection.#GetEnumerator()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRowCollection.#get_IsSynchronized()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRowCollection.#get_Item(System.Int32)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRowCollection.#get_SyncRoot()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRowCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"[....]: An inheritor should not have to override CopyTo on these collections.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRowCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRow.#OnBubbleEvent(System.Object,System.EventArgs)", Justification = @"phuff: DetailsViewRow just overrides Control::OnBubbleEvent")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRowCollection.#get_Count()", Justification = @"phuff: Designers run in full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRowCollection.#get_Count()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRowCollection.#GetEnumerator()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRowCollection.#get_IsSynchronized()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRowCollection.#get_Item(System.Int32)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRowCollection.#get_SyncRoot()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRowCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"phuff: An inheritor should not have to override CopyTo on these collections.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.DetailsViewRowCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.DetailsViewUpdateEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.DropDownList.#RaisePostDataChangedEvent()", Justification = @"[....]: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.EditCommandColumn.#InitializeCell(System.Web.UI.WebControls.TableCell,System.Int32,System.Web.UI.WebControls.ListItemType)", MessageId = "System.Web.UI.LiteralControl.#ctor(System.String)", Justification = @"[....]: &nbsp; is an acceptable spelling and string for non-breaking space.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.EditCommandColumn.#InitializeCell(System.Web.UI.WebControls.TableCell,System.Int32,System.Web.UI.WebControls.ListItemType)", MessageId = "nbsp", Justification = @"[....]: &nbsp; is an acceptable spelling and string for non-breaking space.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.DropDownList.#RaisePostDataChangedEvent()", Justification = @"scottim: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.EditCommandColumn.#InitializeCell(System.Web.UI.WebControls.TableCell,System.Int32,System.Web.UI.WebControls.ListItemType)", MessageId = "System.Web.UI.LiteralControl.#ctor(System.String)", Justification = @"phuff: &nbsp; is an acceptable spelling and string for non-breaking space.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.EditCommandColumn.#InitializeCell(System.Web.UI.WebControls.TableCell,System.Int32,System.Web.UI.WebControls.ListItemType)", MessageId = "nbsp", Justification = @"phuff: &nbsp; is an acceptable spelling and string for non-breaking space.")]
[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.UI.WebControls.EmbeddedMailObjectsCollection", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.EmbeddedMailObjectsCollection.#OnValidate(System.Object)", Justification = @"[....]: We can't do much here since we don't own the base class.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.FileUpload.#FileBytes", Justification = @"[....]: We made this a property so it could be set by a databinding statement in the persistance.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.WebControls.FileUpload.#get_FileName()", Justification = @"[....]: Per DmityrR, we should exclude all violations of this rule since the framework makes no guarantee about what exceptions may be thrown.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FileUpload.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ResetBold()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ResetItalic()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ResetOverline()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ResetStrikeout()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ResetUnderline()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ShouldSerializeBold()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ShouldSerializeItalic()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ShouldSerializeOverline()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ShouldSerializeStrikeout()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ShouldSerializeUnderline()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.FontUnit.#ToString(System.Globalization.CultureInfo)", Justification = @"[....]: Breaking changes")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FontUnit.#ToString(System.IFormatProvider)", Justification = @"[....]: Safe")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.FontUnitConverter.#CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormParameter.#get_FormField()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#BackImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#CreateNumericPager(System.Web.UI.WebControls.TableRow,System.Web.UI.WebControls.PagedDataSource,System.Boolean)", MessageId = "System.Web.UI.WebControls.IButtonControl.set_Text(System.String)", Justification = @"[....]: The ""..."" is acceptable for all languages")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#CreateNumericPager(System.Web.UI.WebControls.TableRow,System.Web.UI.WebControls.PagedDataSource,System.Boolean)", MessageId = "System.Web.UI.WebControls.LinkButton.set_Text(System.String)", Justification = @"[....]: We use ""..."", unlocalized.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_CurrentMode()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#DataKeyNames", Justification = @"[....]: Implemented this way to let the user declaratively set the data keys.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#DataKeyNames", Justification = @"[....]: Implemented this way to let the user declaratively set the data keys.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_DataKeyNames()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#set_DataKeyNames(System.String[])", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_EditItemTemplate()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_EditRowStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_EmptyDataRowStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_FooterStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_HeaderStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#InitializePager(System.Web.UI.WebControls.FormViewRow,System.Web.UI.WebControls.PagedDataSource)", Justification = @"[....]: We want to enforce the type of the row.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_InsertItemTemplate()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_InsertRowStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_ItemTemplate()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnItemCommand(System.Web.UI.WebControls.FormViewCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnItemCreated(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnItemDeleted(System.Web.UI.WebControls.FormViewDeletedEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnItemDeleting(System.Web.UI.WebControls.FormViewDeleteEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnItemInserted(System.Web.UI.WebControls.FormViewInsertedEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnItemInserting(System.Web.UI.WebControls.FormViewInsertEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnItemUpdated(System.Web.UI.WebControls.FormViewUpdatedEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnItemUpdating(System.Web.UI.WebControls.FormViewUpdateEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnModeChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnModeChanging(System.Web.UI.WebControls.FormViewModeEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnPageIndexChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnPageIndexChanging(System.Web.UI.WebControls.FormViewPageEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_PagerStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#RaisePostBackEvent(System.String)", Justification = @"[....]: legacy pattern for exposting IPostbackEventHandler - [....]")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_RowStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#System.Web.UI.IDataItemContainer.get_DisplayIndex()", Justification = @"[....]: These are overridable by overriding the corresponding properties on the control.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#System.Web.UI.WebControls.IPostBackContainer.GetPostBackOptions(System.Web.UI.WebControls.IButtonControl)", Justification = @"[....]: Inheritors should reimplement the interface completely.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormViewCommandEventArgs.#.ctor(System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormViewRow.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_AllowPaging()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_AllowSorting()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_AlternatingRowStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_AutoGenerateColumns()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#set_AutoGenerateColumns(System.Boolean)", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_AutoGenerateDeleteButton()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_AutoGenerateEditButton()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_AutoGenerateSelectButton()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#BackImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_Columns()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#CreateNumericPager(System.Web.UI.WebControls.TableRow,System.Web.UI.WebControls.PagedDataSource,System.Boolean)", MessageId = "System.Web.UI.WebControls.IButtonControl.set_Text(System.String)", Justification = @"[....]: The ""..."" is acceptable for all languages")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#CreateNumericPager(System.Web.UI.WebControls.TableRow,System.Web.UI.WebControls.PagedDataSource,System.Boolean)", MessageId = "System.Web.UI.WebControls.LinkButton.set_Text(System.String)", Justification = @"[....]: We use ""..."", unlocalized.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#DataKeyNames", Justification = @"[....]: Making these array properties lets you set them declaratively with a comma-separated list. We would use an immutable array if possible.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#DataKeyNames", Justification = @"[....]: Making these array properties lets you set them declaratively with a comma-separated list. We would use an immutable array if possible.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_DataKeyNames()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#set_DataKeyNames(System.String[])", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#add_RowDataBound(System.Web.UI.WebControls.GridViewRowEventHandler)", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#remove_RowDataBound(System.Web.UI.WebControls.GridViewRowEventHandler)", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_EditRowStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_EmptyDataRowStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_FooterRow()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_FooterStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#GetCallbackResult()", Justification = @"[....]: Naming is appropriate for this interface")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_HeaderRow()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_HeaderStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#LoadHiddenFieldState(System.String,System.String,System.String,System.String)", Justification = @"[....]: Rule in error?")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnBubbleEvent(System.Object,System.EventArgs)", Justification = @"[....]: GridView is just overriding Control's OnBubbleEvent.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnDataSourceViewChanged(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnPageIndexChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnPageIndexChanging(System.Web.UI.WebControls.GridViewPageEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnPagePreLoad(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Safe handling of PagePreLoad. The event handler is protected,")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowCancelingEdit(System.Web.UI.WebControls.GridViewCancelEditEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowCommand(System.Web.UI.WebControls.GridViewCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowCreated(System.Web.UI.WebControls.GridViewRowEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowDataBound(System.Web.UI.WebControls.GridViewRowEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowDeleted(System.Web.UI.WebControls.GridViewDeletedEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowDeleting(System.Web.UI.WebControls.GridViewDeleteEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowEditing(System.Web.UI.WebControls.GridViewEditEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowUpdated(System.Web.UI.WebControls.GridViewUpdatedEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowUpdating(System.Web.UI.WebControls.GridViewUpdateEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnSelectedIndexChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnSelectedIndexChanging(System.Web.UI.WebControls.GridViewSelectEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnSorted(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnSorting(System.Web.UI.WebControls.GridViewSortEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_PagerStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_PageSize()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#RaiseCallbackEvent(System.String)", Justification = @"[....]: Naming is appropriate for this interface")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#RaisePostBackEvent(System.String)", Justification = @"[....]: legacy pattern for exposting IPostbackEventHandler - [....]")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_Rows()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_RowStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#System.Web.UI.WebControls.ICallbackContainer.GetCallbackScript(System.Web.UI.WebControls.IButtonControl,System.String)", Justification = @"[....]: These interface implementations should only be overridden by controls that wish to completely take over the implementation. They should not be able to call our implementation any more. They can do this by explicitly reimplementing the interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#System.Web.UI.WebControls.IPostBackContainer.GetPostBackOptions(System.Web.UI.WebControls.IButtonControl)", Justification = @"[....]: Inheritors should reimplement the interface completely.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.EmbeddedMailObjectsCollection.#OnValidate(System.Object)", Justification = @"davidebb: We can't do much here since we don't own the base class.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.FileUpload.#FileBytes", Justification = @"phuff: We made this a property so it could be set by a databinding statement in the persistance.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.WebControls.FileUpload.#get_FileName()", Justification = @"mharder: Per DmityrR, we should exclude all violations of this rule since the framework makes no guarantee about what exceptions may be thrown.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FileUpload.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ResetBold()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ResetItalic()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ResetOverline()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ResetStrikeout()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ResetUnderline()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ShouldSerializeBold()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ShouldSerializeItalic()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ShouldSerializeOverline()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ShouldSerializeStrikeout()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.FontInfo.#ShouldSerializeUnderline()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.FontUnit.#ToString(System.Globalization.CultureInfo)", Justification = @"phuff: Breaking changes")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FontUnit.#ToString(System.IFormatProvider)", Justification = @"phuff: Safe")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.FontUnitConverter.#CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormParameter.#get_FormField()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#BackImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#CreateNumericPager(System.Web.UI.WebControls.TableRow,System.Web.UI.WebControls.PagedDataSource,System.Boolean)", MessageId = "System.Web.UI.WebControls.IButtonControl.set_Text(System.String)", Justification = @"phuff: The ""..."" is acceptable for all languages")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#CreateNumericPager(System.Web.UI.WebControls.TableRow,System.Web.UI.WebControls.PagedDataSource,System.Boolean)", MessageId = "System.Web.UI.WebControls.LinkButton.set_Text(System.String)", Justification = @"phuff: We use ""..."", unlocalized.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_CurrentMode()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#DataKeyNames", Justification = @"phuff: Implemented this way to let the user declaratively set the data keys.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#DataKeyNames", Justification = @"phuff: Implemented this way to let the user declaratively set the data keys.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_DataKeyNames()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#set_DataKeyNames(System.String[])", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_EditItemTemplate()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_EditRowStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_EmptyDataRowStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_FooterStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_HeaderStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#InitializePager(System.Web.UI.WebControls.FormViewRow,System.Web.UI.WebControls.PagedDataSource)", Justification = @"phuff: We want to enforce the type of the row.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_InsertItemTemplate()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_InsertRowStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_ItemTemplate()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnItemCommand(System.Web.UI.WebControls.FormViewCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnItemCreated(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnItemDeleted(System.Web.UI.WebControls.FormViewDeletedEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnItemDeleting(System.Web.UI.WebControls.FormViewDeleteEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnItemInserted(System.Web.UI.WebControls.FormViewInsertedEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnItemInserting(System.Web.UI.WebControls.FormViewInsertEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnItemUpdated(System.Web.UI.WebControls.FormViewUpdatedEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnItemUpdating(System.Web.UI.WebControls.FormViewUpdateEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnModeChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnModeChanging(System.Web.UI.WebControls.FormViewModeEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnPageIndexChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#OnPageIndexChanging(System.Web.UI.WebControls.FormViewPageEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_PagerStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#RaisePostBackEvent(System.String)", Justification = @"mattgi: legacy pattern for exposting IPostbackEventHandler - MattGi")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#get_RowStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#System.Web.UI.IDataItemContainer.get_DisplayIndex()", Justification = @"phuff: These are overridable by overriding the corresponding properties on the control.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.FormView.#System.Web.UI.WebControls.IPostBackContainer.GetPostBackOptions(System.Web.UI.WebControls.IButtonControl)", Justification = @"phuff: Inheritors should reimplement the interface completely.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormViewCommandEventArgs.#.ctor(System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.FormViewRow.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_AllowPaging()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_AllowSorting()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_AlternatingRowStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_AutoGenerateColumns()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#set_AutoGenerateColumns(System.Boolean)", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_AutoGenerateDeleteButton()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_AutoGenerateEditButton()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_AutoGenerateSelectButton()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#BackImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_Columns()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#CreateNumericPager(System.Web.UI.WebControls.TableRow,System.Web.UI.WebControls.PagedDataSource,System.Boolean)", MessageId = "System.Web.UI.WebControls.IButtonControl.set_Text(System.String)", Justification = @"phuff: The ""..."" is acceptable for all languages")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#CreateNumericPager(System.Web.UI.WebControls.TableRow,System.Web.UI.WebControls.PagedDataSource,System.Boolean)", MessageId = "System.Web.UI.WebControls.LinkButton.set_Text(System.String)", Justification = @"phuff: We use ""..."", unlocalized.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#DataKeyNames", Justification = @"phuff: Making these array properties lets you set them declaratively with a comma-separated list. We would use an immutable array if possible.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#DataKeyNames", Justification = @"phuff: Making these array properties lets you set them declaratively with a comma-separated list. We would use an immutable array if possible.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_DataKeyNames()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#set_DataKeyNames(System.String[])", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#add_RowDataBound(System.Web.UI.WebControls.GridViewRowEventHandler)", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#remove_RowDataBound(System.Web.UI.WebControls.GridViewRowEventHandler)", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_EditRowStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_EmptyDataRowStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_FooterRow()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_FooterStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#GetCallbackResult()", Justification = @"phuff: Naming is appropriate for this interface")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_HeaderRow()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_HeaderStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#LoadHiddenFieldState(System.String,System.String,System.String,System.String)", Justification = @"phuff: Rule in error?")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnBubbleEvent(System.Object,System.EventArgs)", Justification = @"phuff: GridView is just overriding Control's OnBubbleEvent.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnDataSourceViewChanged(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnPageIndexChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnPageIndexChanging(System.Web.UI.WebControls.GridViewPageEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnPagePreLoad(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Safe handling of PagePreLoad. The event handler is protected,")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowCancelingEdit(System.Web.UI.WebControls.GridViewCancelEditEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowCommand(System.Web.UI.WebControls.GridViewCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowCreated(System.Web.UI.WebControls.GridViewRowEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowDataBound(System.Web.UI.WebControls.GridViewRowEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowDeleted(System.Web.UI.WebControls.GridViewDeletedEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowDeleting(System.Web.UI.WebControls.GridViewDeleteEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowEditing(System.Web.UI.WebControls.GridViewEditEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowUpdated(System.Web.UI.WebControls.GridViewUpdatedEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnRowUpdating(System.Web.UI.WebControls.GridViewUpdateEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnSelectedIndexChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnSelectedIndexChanging(System.Web.UI.WebControls.GridViewSelectEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnSorted(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#OnSorting(System.Web.UI.WebControls.GridViewSortEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_PagerStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_PageSize()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#RaiseCallbackEvent(System.String)", Justification = @"phuff: Naming is appropriate for this interface")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#RaisePostBackEvent(System.String)", Justification = @"mattgi: legacy pattern for exposting IPostbackEventHandler - MattGi")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_Rows()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#get_RowStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#System.Web.UI.WebControls.ICallbackContainer.GetCallbackScript(System.Web.UI.WebControls.IButtonControl,System.String)", Justification = @"phuff: These interface implementations should only be overridden by controls that wish to completely take over the implementation. They should not be able to call our implementation any more. They can do this by explicitly reimplementing the interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.GridView.#System.Web.UI.WebControls.IPostBackContainer.GetPostBackOptions(System.Web.UI.WebControls.IButtonControl)", Justification = @"phuff: Inheritors should reimplement the interface completely.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.GridViewCancelEditEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridViewCommandEventArgs.#.ctor(System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridViewCommandEventArgs.#.ctor(System.Web.UI.WebControls.GridViewRow,System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "2#", Justification = @"[....]: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridViewCommandEventArgs.#.ctor(System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridViewCommandEventArgs.#.ctor(System.Web.UI.WebControls.GridViewRow,System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "2#", Justification = @"phuff: Our event handlers are purposely exposed.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.GridViewCommandEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.GridViewDeleteEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.GridViewEditEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.GridViewPageEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRow.#OnBubbleEvent(System.Object,System.EventArgs)", Justification = @"[....]: GridViewRow is overriding Control::OnBubbleEvent")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRow.#System.Web.UI.IDataItemContainer.get_DisplayIndex()", Justification = @"[....]: These are overridable by overriding the corresponding properties on the control.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#get_Count()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#get_Count()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#GetEnumerator()", Justification = @"[....]: Designers run under full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#GetEnumerator()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#get_IsSynchronized()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#get_Item(System.Int32)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#get_SyncRoot()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"[....]: An inheritor should not have to override CopyTo on these collections.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRow.#OnBubbleEvent(System.Object,System.EventArgs)", Justification = @"phuff: GridViewRow is overriding Control::OnBubbleEvent")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRow.#System.Web.UI.IDataItemContainer.get_DisplayIndex()", Justification = @"phuff: These are overridable by overriding the corresponding properties on the control.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#get_Count()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#get_Count()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#GetEnumerator()", Justification = @"phuff: Designers run under full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#GetEnumerator()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#get_IsSynchronized()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#get_Item(System.Int32)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#get_SyncRoot()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"phuff: An inheritor should not have to override CopyTo on these collections.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.GridViewRowCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.GridViewRowEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.GridViewSelectEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.GridViewSortEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.GridViewUpdateEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.HiddenField.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.HiddenField.#OnValueChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.HiddenField.#RaisePostDataChangedEvent()", Justification = @"[....]: This is not an event, but raises events.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.HierarchicalDataBoundControl.#GetDataSource()", Justification = @"[....]: These are all according to the spec")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.HierarchicalDataBoundControl.#OnDataSourceChanged(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.HierarchicalDataBoundControl.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.HierarchicalDataBoundControl.#OnPagePreLoad(System.Object,System.EventArgs)", MessageId = "PreLoad", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.HierarchicalDataBoundControl.#OnPagePreLoad(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.WebControls.HorizontalAlignConverter", Justification = @"[....]: Used as converters in attribites.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.HorizontalAlignConverter.#.ctor()", Justification = @"[....]: Called by reflection")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.HotSpot", MessageId = "HotSpot", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.HotSpot.#GetCoordinates()", Justification = @"[....]: Use of method is intentional. It formats the coordinates, which are specified by other properties. Various properties get/set would have order dependencies with the property get.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.HotSpot.#HotSpotMode", MessageId = "HotSpot", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.HotSpot.#NavigateUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.HotSpotCollection", MessageId = "HotSpot", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.UI.WebControls.HotSpotCollection", Justification = @"[....]: CopyTo is inherited from StateManagedCollection, and it is not for external use.")]
-[module: SuppressMessage("Microsoft.Design", "CA1039:ListsAreStronglyTyped", Scope = "type", Target = "System.Web.UI.WebControls.HotSpotCollection", Justification = @"[....]: IndexOf is inherited from StateManagedCollection, and it is not for external use.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.HotSpotMode", MessageId = "HotSpot", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.HyperLinkField", MessageId = "HyperLink", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.HyperLinkField.#DataNavigateUrlFields", Justification = @"[....]: This property is a string array because it's the only way we can make it declaratively settable.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.HyperLinkField.#DataNavigateUrlFields", Justification = @"[....]: This property is a string array because it's the only way we can make it declaratively settable.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.HyperLinkField.#DataNavigateUrlFormatString", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.HyperLinkField.#FormatDataNavigateUrlValue(System.Object[])", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.HyperLinkField.#NavigateUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.IButtonControl.#PostBackUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Image.#DescriptionUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.ImageButton.#System.Web.UI.WebControls.IButtonControl.add_Click(System.EventHandler)", Justification = @"[....]: IButtonControl Click event should not be overridable in derived classes. Explicit implementation is intentional here.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.ImageButton.#System.Web.UI.WebControls.IButtonControl.remove_Click(System.EventHandler)", Justification = @"[....]: IButtonControl Click event should not be overridable in derived classes. Explicit implementation is intentional here.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.ImageButton.#GetPostBackOptions()", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ImageButton.#OnClick(System.Web.UI.ImageClickEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ImageButton.#OnCommand(System.Web.UI.WebControls.CommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ImageButton.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.ImageButton.#RaisePostBackEvent(System.String)", Justification = @"[....]: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.ImageButton.#RaisePostDataChangedEvent()", Justification = @"[....]: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.ImageField", Justification = @"[....]: ThisExpression used for safe purposes. It's a readonly static.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ImageField.#DataImageUrlField", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ImageField.#DataImageUrlFormatString", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ImageField.#FormatImageUrlValue(System.Object)", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.ImageField.#GetDesignTimeValue()", Justification = @"[....]: This makes more sense as a function than as a property, since it may not be a simple property retrieve.")]
-[module: SuppressMessage("Microsoft.Design", "CA1045:DoNotPassTypesByReference", Scope = "member", Target = "System.Web.UI.WebControls.ImageField.#GetValue(System.Web.UI.Control,System.String,System.ComponentModel.PropertyDescriptor&)", MessageId = "2#", Justification = @"[....]: Need this to cache type descriptor")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.ImageField.#InitializeDataCell(System.Web.UI.WebControls.DataControlFieldCell,System.Web.UI.WebControls.DataControlRowState)", Justification = @"[....]: We want to enforce that this is instantiated inside a cell.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ImageField.#NullImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ImageField.#OnDataBindField(System.Object,System.EventArgs)", Justification = @"[....]: This method is used to override databinding on derived fields.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.ImageMap.#HotSpotMode", MessageId = "HotSpot", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.ImageMap.#HotSpots", MessageId = "HotSpots", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ImageMap.#OnClick(System.Web.UI.WebControls.ImageMapEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.ImageMap.#RaisePostBackEvent(System.String)", Justification = @"[....]: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.HiddenField.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.HiddenField.#OnValueChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.HiddenField.#RaisePostDataChangedEvent()", Justification = @"bleroy: This is not an event, but raises events.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.HierarchicalDataBoundControl.#GetDataSource()", Justification = @"elipton: These are all according to the spec")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.HierarchicalDataBoundControl.#OnDataSourceChanged(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.HierarchicalDataBoundControl.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.HierarchicalDataBoundControl.#OnPagePreLoad(System.Object,System.EventArgs)", MessageId = "PreLoad", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.HierarchicalDataBoundControl.#OnPagePreLoad(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.WebControls.HorizontalAlignConverter", Justification = @"phuff: Used as converters in attribites.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.HorizontalAlignConverter.#.ctor()", Justification = @"haok: Called by reflection")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.HotSpot", MessageId = "HotSpot", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.HotSpot.#GetCoordinates()", Justification = @"scottim: Use of method is intentional. It formats the coordinates, which are specified by other properties. Various properties get/set would have order dependencies with the property get.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.HotSpot.#HotSpotMode", MessageId = "HotSpot", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.HotSpot.#NavigateUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.HotSpotCollection", MessageId = "HotSpot", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.UI.WebControls.HotSpotCollection", Justification = @"scottim: CopyTo is inherited from StateManagedCollection, and it is not for external use.")]
+[module: SuppressMessage("Microsoft.Design", "CA1039:ListsAreStronglyTyped", Scope = "type", Target = "System.Web.UI.WebControls.HotSpotCollection", Justification = @"scottim: IndexOf is inherited from StateManagedCollection, and it is not for external use.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.HotSpotMode", MessageId = "HotSpot", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.HyperLinkField", MessageId = "HyperLink", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.HyperLinkField.#DataNavigateUrlFields", Justification = @"phuff: This property is a string array because it's the only way we can make it declaratively settable.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.HyperLinkField.#DataNavigateUrlFields", Justification = @"phuff: This property is a string array because it's the only way we can make it declaratively settable.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.HyperLinkField.#DataNavigateUrlFormatString", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.HyperLinkField.#FormatDataNavigateUrlValue(System.Object[])", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.HyperLinkField.#NavigateUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.IButtonControl.#PostBackUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Image.#DescriptionUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.ImageButton.#System.Web.UI.WebControls.IButtonControl.add_Click(System.EventHandler)", Justification = @"scottim: IButtonControl Click event should not be overridable in derived classes. Explicit implementation is intentional here.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.ImageButton.#System.Web.UI.WebControls.IButtonControl.remove_Click(System.EventHandler)", Justification = @"scottim: IButtonControl Click event should not be overridable in derived classes. Explicit implementation is intentional here.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.ImageButton.#GetPostBackOptions()", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ImageButton.#OnClick(System.Web.UI.ImageClickEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ImageButton.#OnCommand(System.Web.UI.WebControls.CommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ImageButton.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.ImageButton.#RaisePostBackEvent(System.String)", Justification = @"scottim: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.ImageButton.#RaisePostDataChangedEvent()", Justification = @"scottim: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.ImageField", Justification = @"phuff: ThisExpression used for safe purposes. It's a readonly static.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ImageField.#DataImageUrlField", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ImageField.#DataImageUrlFormatString", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ImageField.#FormatImageUrlValue(System.Object)", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.ImageField.#GetDesignTimeValue()", Justification = @"phuff: This makes more sense as a function than as a property, since it may not be a simple property retrieve.")]
+[module: SuppressMessage("Microsoft.Design", "CA1045:DoNotPassTypesByReference", Scope = "member", Target = "System.Web.UI.WebControls.ImageField.#GetValue(System.Web.UI.Control,System.String,System.ComponentModel.PropertyDescriptor&)", MessageId = "2#", Justification = @"phuff: Need this to cache type descriptor")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.ImageField.#InitializeDataCell(System.Web.UI.WebControls.DataControlFieldCell,System.Web.UI.WebControls.DataControlRowState)", Justification = @"phuff: We want to enforce that this is instantiated inside a cell.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.ImageField.#NullImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ImageField.#OnDataBindField(System.Object,System.EventArgs)", Justification = @"phuff: This method is used to override databinding on derived fields.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.ImageMap.#HotSpotMode", MessageId = "HotSpot", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.ImageMap.#HotSpots", MessageId = "HotSpots", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ImageMap.#OnClick(System.Web.UI.WebControls.ImageMapEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.ImageMap.#RaisePostBackEvent(System.String)", Justification = @"scottim: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.ImageMapEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Label.#AssociatedControlID", Justification = @"[....]: We use ID in our code.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.LinkButton.#GetPostBackOptions()", Justification = @"[....]: This makes sense as a function because it's doing complex work.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LinkButton.#OnClick(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LinkButton.#OnCommand(System.Web.UI.WebControls.CommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LinkButton.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.LinkButton.#RaisePostBackEvent(System.String)", Justification = @"[....]: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ListBox.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.ListBox.#RaisePostDataChangedEvent()", Justification = @"[....]: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
-[module: SuppressMessage("Microsoft.Design", "CA1012:AbstractTypesShouldNotHaveConstructors", Scope = "type", Target = "System.Web.UI.WebControls.ListControl", Justification = @"[....]: This ctor does something.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ListControl.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ListControl.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ListControl.#OnSelectedIndexChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ListControl.#OnTextChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.ListItem.#get_Dirty()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.WebControls.ListItem.#LoadViewState(System.Object)", Justification = @"[....]: by email thread, ignore this violation.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.ListItem.#ResetText()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.ListItem.#ResetValue()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.ListItem.#ShouldSerializeText()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.ListItem.#ShouldSerializeValue()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.ListItemCollection.#System.Collections.IList.get_IsFixedSize()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.ListItemCollection.#System.Collections.IList.get_Item(System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.ListItemCollection.#System.Collections.IList.set_Item(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.Login", Justification = @"[....]: These are just public readonly strings.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Login.#CreateUserIconUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Login.#CreateUserUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Login.#DestinationPageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Login.#HelpPageIconUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Login.#HelpPageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Login.#HyperLinkStyle", MessageId = "HyperLink", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Login.#LoginButtonImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Login.#OnAuthenticate(System.Web.UI.WebControls.AuthenticateEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Login.#OnBubbleEvent(System.Object,System.EventArgs)", Justification = @"[....]: OnBubbleEvent is defined as protected in Control, and was present in v1 so cannot be changed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Login.#OnLoggedIn(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Login.#OnLoggingIn(System.Web.UI.WebControls.LoginCancelEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Login.#OnLoginError(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Login.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Login.#PasswordRecoveryIconUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Login.#PasswordRecoveryUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.Login.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.Login+LoginTemplate.#LayoutHorizontalTextOnLeft(System.Web.UI.WebControls.Login+LoginContainer)", MessageId = "System.Web.UI.LiteralControl.set_Text(System.String)", Justification = @"[....]: html strings")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.Login+LoginTemplate.#LayoutHorizontalTextOnTop(System.Web.UI.WebControls.Login+LoginContainer)", MessageId = "System.Web.UI.LiteralControl.set_Text(System.String)", Justification = @"[....]: html strings")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.Login+LoginTemplate.#LayoutVerticalTextOnLeft(System.Web.UI.WebControls.Login+LoginContainer)", MessageId = "System.Web.UI.LiteralControl.set_Text(System.String)", Justification = @"[....]: html strings")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.Login+LoginTemplate.#LayoutVerticalTextOnTop(System.Web.UI.WebControls.Login+LoginContainer)", MessageId = "System.Web.UI.LiteralControl.set_Text(System.String)", Justification = @"[....]: html strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.LoginStatus.#LoginImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.LoginStatus.#LogoutImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.LoginStatus.#LogoutPageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LoginStatus.#OnLoggedOut(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LoginStatus.#OnLoggingOut(System.Web.UI.WebControls.LoginCancelEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LoginStatus.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.LoginStatus.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
-[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.UI.WebControls.LoginUtil.#SendPasswordMail(System.String,System.String,System.String,System.Web.UI.WebControls.MailDefinition,System.String,System.String,System.Web.UI.WebControls.LoginUtil+OnSendingMailDelegate,System.Web.UI.WebControls.LoginUtil+OnSendMailErrorDelegate,System.Web.UI.Control)", MessageId = "System.Net.Mail.MailAddress", Justification = @"[....]: We need to call the MailMessage() constructor with the email string to determine if the email address is a valid format. We do not need to use the MailMessage that is constructed.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.LoginUtil+GenericContainer`1.#FindControl(System.String,System.Boolean,System.String)", Justification = @"[....]: Rule error on generic types with generic methods.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.LoginUtil+GenericContainer`1.#FindOptionalControl(System.String)", Justification = @"[....]: Rule error on generic types with generic methods.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.LoginUtil+GenericContainer`1.#FindRequiredControl(System.String,System.String)", Justification = @"[....]: Rule error on generic types with generic methods.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.LoginUtil+GenericContainer`1.#VerifyControlNotPresent(System.String,System.String)", Justification = @"[....]: Rule error on generic types with generic methods.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Label.#AssociatedControlID", Justification = @"phuff: We use ID in our code.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.LinkButton.#GetPostBackOptions()", Justification = @"phuff: This makes sense as a function because it's doing complex work.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LinkButton.#OnClick(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LinkButton.#OnCommand(System.Web.UI.WebControls.CommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LinkButton.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.LinkButton.#RaisePostBackEvent(System.String)", Justification = @"scottim: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ListBox.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.ListBox.#RaisePostDataChangedEvent()", Justification = @"scottim: Events are being used correctly for RaisePostBackEvent and RaisePostDataChangedEvent.")]
+[module: SuppressMessage("Microsoft.Design", "CA1012:AbstractTypesShouldNotHaveConstructors", Scope = "type", Target = "System.Web.UI.WebControls.ListControl", Justification = @"phuff: This ctor does something.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ListControl.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ListControl.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ListControl.#OnSelectedIndexChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ListControl.#OnTextChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.ListItem.#get_Dirty()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.WebControls.ListItem.#LoadViewState(System.Object)", Justification = @"scottim: by email thread, ignore this violation.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.ListItem.#ResetText()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.ListItem.#ResetValue()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.ListItem.#ShouldSerializeText()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.ListItem.#ShouldSerializeValue()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.ListItemCollection.#System.Collections.IList.get_IsFixedSize()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.ListItemCollection.#System.Collections.IList.get_Item(System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.ListItemCollection.#System.Collections.IList.set_Item(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.Login", Justification = @"haok: These are just public readonly strings.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Login.#CreateUserIconUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Login.#CreateUserUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Login.#DestinationPageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Login.#HelpPageIconUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Login.#HelpPageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Login.#HyperLinkStyle", MessageId = "HyperLink", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Login.#LoginButtonImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Login.#OnAuthenticate(System.Web.UI.WebControls.AuthenticateEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Login.#OnBubbleEvent(System.Object,System.EventArgs)", Justification = @"mharder: OnBubbleEvent is defined as protected in Control, and was present in v1 so cannot be changed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Login.#OnLoggedIn(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Login.#OnLoggingIn(System.Web.UI.WebControls.LoginCancelEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Login.#OnLoginError(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Login.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Login.#PasswordRecoveryIconUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Login.#PasswordRecoveryUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.Login.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"tinghaoy: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.Login+LoginTemplate.#LayoutHorizontalTextOnLeft(System.Web.UI.WebControls.Login+LoginContainer)", MessageId = "System.Web.UI.LiteralControl.set_Text(System.String)", Justification = @"haok: html strings")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.Login+LoginTemplate.#LayoutHorizontalTextOnTop(System.Web.UI.WebControls.Login+LoginContainer)", MessageId = "System.Web.UI.LiteralControl.set_Text(System.String)", Justification = @"haok: html strings")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.Login+LoginTemplate.#LayoutVerticalTextOnLeft(System.Web.UI.WebControls.Login+LoginContainer)", MessageId = "System.Web.UI.LiteralControl.set_Text(System.String)", Justification = @"haok: html strings")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.Login+LoginTemplate.#LayoutVerticalTextOnTop(System.Web.UI.WebControls.Login+LoginContainer)", MessageId = "System.Web.UI.LiteralControl.set_Text(System.String)", Justification = @"haok: html strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.LoginStatus.#LoginImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.LoginStatus.#LogoutImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.LoginStatus.#LogoutPageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LoginStatus.#OnLoggedOut(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LoginStatus.#OnLoggingOut(System.Web.UI.WebControls.LoginCancelEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LoginStatus.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.LoginStatus.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"tinghaoy: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Scope = "member", Target = "System.Web.UI.WebControls.LoginUtil.#SendPasswordMail(System.String,System.String,System.String,System.Web.UI.WebControls.MailDefinition,System.String,System.String,System.Web.UI.WebControls.LoginUtil+OnSendingMailDelegate,System.Web.UI.WebControls.LoginUtil+OnSendMailErrorDelegate,System.Web.UI.Control)", MessageId = "System.Net.Mail.MailAddress", Justification = @"mharder: We need to call the MailMessage() constructor with the email string to determine if the email address is a valid format. We do not need to use the MailMessage that is constructed.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.LoginUtil+GenericContainer`1.#FindControl(System.String,System.Boolean,System.String)", Justification = @"phuff: Rule error on generic types with generic methods.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.LoginUtil+GenericContainer`1.#FindOptionalControl(System.String)", Justification = @"phuff: Rule error on generic types with generic methods.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.LoginUtil+GenericContainer`1.#FindRequiredControl(System.String,System.String)", Justification = @"phuff: Rule error on generic types with generic methods.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.LoginUtil+GenericContainer`1.#VerifyControlNotPresent(System.String,System.String)", Justification = @"phuff: Rule error on generic types with generic methods.")]
[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.LoginView.#EnableTheming", MessageId = "Theming", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LoginView.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LoginView.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LoginView.#OnViewChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LoginView.#OnViewChanging(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.LoginView.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.LoginView.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LoginView.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LoginView.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LoginView.#OnViewChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.LoginView.#OnViewChanging(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.LoginView.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"tinghaoy: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.LoginView.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"tinghaoy: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.MailMessageEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.Menu", Justification = @"[....]: It is ok to expose these static readonly fields even though the LinkDemand does not apply to them.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#DynamicBottomSeparatorImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#get_DynamicMenuStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#DynamicPopOutImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#DynamicTopSeparatorImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#GetDesignModeState()", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#get_Items()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#LevelSubMenuStyles", MessageId = "SubMenu", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#get_MaximumDynamicDisplayLevels()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#set_MaximumDynamicDisplayLevels(System.Int32)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#OnMenuItemClick(System.Web.UI.WebControls.MenuEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#OnMenuItemDataBound(System.Web.UI.WebControls.MenuEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#RaisePostBackEvent(System.String)", Justification = @"[....]: This is not an event, but is here to raise events.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#ScrollDownImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#ScrollUpImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#StaticBottomSeparatorImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#get_StaticDisplayLevels()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#get_StaticMenuStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#StaticPopOutImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#StaticSubMenuIndent", MessageId = "SubMenu", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#StaticTopSeparatorImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.MenuEventArgs.#.ctor(System.Web.UI.WebControls.MenuItem,System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "2#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#.ctor(System.String,System.String,System.String)", MessageId = "2#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "2#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "3#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#.ctor(System.String,System.String,System.String,System.String,System.String)", MessageId = "2#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#.ctor(System.String,System.String,System.String,System.String,System.String)", MessageId = "3#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#ImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#NavigateUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#PopOutImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#SeparatorImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#System.ICloneable.Clone()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#ImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#ImageUrlField", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#NavigateUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#NavigateUrlField", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#PopOutImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#PopOutImageUrlField", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#SeparatorImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#SeparatorImageUrlField", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#System.ICloneable.Clone()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemCollection.#Clear()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemCollection.#CopyTo(System.Array,System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemCollection.#get_Count()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemCollection.#get_Count()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemCollection.#GetEnumerator()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemCollection.#get_IsSynchronized()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemCollection.#get_SyncRoot()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemTemplateContainer.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Benign code in the handler.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.Menu", Justification = @"bleroy: It is ok to expose these static readonly fields even though the LinkDemand does not apply to them.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#DynamicBottomSeparatorImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#get_DynamicMenuStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#DynamicPopOutImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#DynamicTopSeparatorImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#GetDesignModeState()", Justification = @"tinghaoy: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#get_Items()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#LevelSubMenuStyles", MessageId = "SubMenu", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#get_MaximumDynamicDisplayLevels()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#set_MaximumDynamicDisplayLevels(System.Int32)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#OnMenuItemClick(System.Web.UI.WebControls.MenuEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#OnMenuItemDataBound(System.Web.UI.WebControls.MenuEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#RaisePostBackEvent(System.String)", Justification = @"bleroy: This is not an event, but is here to raise events.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#ScrollDownImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#ScrollUpImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"tinghaoy: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#StaticBottomSeparatorImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#get_StaticDisplayLevels()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#get_StaticMenuStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#StaticPopOutImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#StaticSubMenuIndent", MessageId = "SubMenu", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Menu.#StaticTopSeparatorImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.MenuEventArgs.#.ctor(System.Web.UI.WebControls.MenuItem,System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "2#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#.ctor(System.String,System.String,System.String)", MessageId = "2#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "2#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "3#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#.ctor(System.String,System.String,System.String,System.String,System.String)", MessageId = "2#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#.ctor(System.String,System.String,System.String,System.String,System.String)", MessageId = "3#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#ImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#NavigateUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#PopOutImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#SeparatorImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.MenuItem.#System.ICloneable.Clone()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#ImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#ImageUrlField", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#NavigateUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#NavigateUrlField", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#PopOutImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#PopOutImageUrlField", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#SeparatorImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#SeparatorImageUrlField", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemBinding.#System.ICloneable.Clone()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemCollection.#Clear()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemCollection.#CopyTo(System.Array,System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemCollection.#get_Count()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemCollection.#get_Count()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemCollection.#GetEnumerator()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemCollection.#get_IsSynchronized()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemCollection.#get_SyncRoot()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.MenuItemTemplateContainer.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"bleroy: Benign code in the handler.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.MonthChangedEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.MultiView", Justification = @"[....]: These are just public readonly strings.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.MultiView.#GetActiveView()", Justification = @"[....]: Replacing GetActiveView() with a property would create an order dependency between set_ActiveViewIndex and get_ActiveView.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.MultiView.#OnActiveViewChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.MultiView.#OnBubbleEvent(System.Object,System.EventArgs)", Justification = @"[....]: OnBubbleEvent is Inherited from Control, where it has been protected virtual since V1.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.MultiView.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.MultiView.#SetActiveView(System.Web.UI.WebControls.View)", Justification = @"[....]: SetActiveView is a MultiView/View only API.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.MultiView.#SetActiveView(System.Web.UI.WebControls.View)", Justification = @"[....]: By-design. We don't want to expose too many properties that do the same thing.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.MultiView.#SwitchViewByIDCommandName", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSource.#.ctor(System.String,System.String)", Justification = @"[....]: These are just helper constructors, and it is unlikely that any bad behavior will result.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSource.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceDisposingEventArgs.#.ctor(System.Object)", MessageId = "0#", Justification = @"[....]: Not a reference to the type name.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceEventArgs.#.ctor(System.Object)", MessageId = "0#", Justification = @"[....]: Incorrect error, this is by design.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#InvokeMethod(System.Web.UI.WebControls.ObjectDataSourceView+ObjectDataSourceMethod,System.Boolean,System.Object&)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnDeleted(System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnDeleting(System.Web.UI.WebControls.ObjectDataSourceMethodEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnFiltering(System.Web.UI.WebControls.ObjectDataSourceFilteringEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnInserted(System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnInserting(System.Web.UI.WebControls.ObjectDataSourceMethodEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnObjectCreated(System.Web.UI.WebControls.ObjectDataSourceEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnObjectCreating(System.Web.UI.WebControls.ObjectDataSourceEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnObjectDisposing(System.Web.UI.WebControls.ObjectDataSourceDisposingEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnSelected(System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnSelecting(System.Web.UI.WebControls.ObjectDataSourceSelectingEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnUpdated(System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnUpdating(System.Web.UI.WebControls.ObjectDataSourceMethodEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PagerSettings.#FirstPageImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PagerSettings.#LastPageImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PagerSettings.#NextPageImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.PagerSettings.#get_Position()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PagerSettings.#PreviousPageImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.PagerSettings.#ToString()", Justification = @"[....]: Object::ToString() does not have any link demands.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Panel.#get_Direction()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Panel.#get_GroupingText()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PanelStyle.#BackImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Parameter.#ConvertDbTypeToTypeCode(System.Data.DbType)", MessageId = "Member", Justification = @"[....]: Casing matches the associated System.Data.DbType enum")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Parameter.#ConvertTypeCodeToDbType(System.TypeCode)", MessageId = "Member", Justification = @"[....]: Casing matches the associated System.Data.DbType enum")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Parameter.#DbType", MessageId = "Member", Justification = @"[....]: Casing matches the associated System.Data.DbType enum")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Parameter.#get_DefaultValue()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Parameter.#GetDatabaseType()", Justification = @"[....]: GetDatabaseType is getting a value based on the settings of two other properties, DbType and Type. It is used to determine the DbType that should be used for a DbCommand and should not be confused with the DbType and Type properties that a typical user would interact with.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Parameter.#get_Name()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.Parameter.#System.ICloneable.Clone()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ParameterCollection.#OnParametersChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: This event handler is specifically visible so that people can override it to add functionality.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.PasswordRecovery", Justification = @"[....]: These are just public readonly strings.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#HelpPageIconUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#HelpPageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#HyperLinkStyle", MessageId = "HyperLink", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnAnswerLookupError(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnBubbleEvent(System.Object,System.EventArgs)", Justification = @"[....]: OnBubbleEvent is defined as protected in Control, and was present in v1 so cannot be changed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnSendingMail(System.Web.UI.WebControls.MailMessageEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnSendMailError(System.Web.UI.WebControls.SendMailErrorEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnUserLookupError(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnVerifyingAnswer(System.Web.UI.WebControls.LoginCancelEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnVerifyingUser(System.Web.UI.WebControls.LoginCancelEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#SubmitButtonImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#SuccessPageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.PolygonHotSpot", MessageId = "HotSpot", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods", Scope = "member", Target = "System.Web.UI.WebControls.PolygonHotSpot.#Coordinates", Justification = @"[....]: GetCoordinates is inherited. Need property get/set for property grid support.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.ProfileParameter.#get_PropertyName()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.WebControls.QueryStringParameter.#.ctor(System.String,System.Data.DbType,System.String)", MessageId = "2#", Justification = @"[....]: Parameter name matches existing constructors")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.WebControls.QueryStringParameter.#.ctor(System.String,System.String)", MessageId = "1#", Justification = @"[....]: This is not a reference to the type")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.WebControls.QueryStringParameter.#.ctor(System.String,System.TypeCode,System.String)", MessageId = "2#", Justification = @"[....]: This is not a reference to the type")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.QueryStringParameter.#get_QueryStringField()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.RadioButton.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.RadioButton.#RaisePostDataChangedEvent()", Justification = @"[....]: This method name is to match the interface IPostBackDataHandler's method. And its name is consistent across other controls.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.RadioButtonList.#RaisePostDataChangedEvent()", Justification = @"[....]: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.RectangleHotSpot", MessageId = "HotSpot", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.RegularExpressionValidator.#set_ValidationExpression(System.String)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#DataSourceID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#GetData()", Justification = @"[....]: These are all according to the spec")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#IsBoundUsingDataSourceID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnDataSourceViewChanged(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnItemCommand(System.Web.UI.WebControls.RepeaterCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnItemCreated(System.Web.UI.WebControls.RepeaterItemEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnItemDataBound(System.Web.UI.WebControls.RepeaterItemEventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.RepeaterCommandEventArgs.#.ctor(System.Web.UI.WebControls.RepeaterItem,System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "2#", Justification = @"[....]: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.MultiView", Justification = @"haok: These are just public readonly strings.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.MultiView.#GetActiveView()", Justification = @"scottim: Replacing GetActiveView() with a property would create an order dependency between set_ActiveViewIndex and get_ActiveView.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.MultiView.#OnActiveViewChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.MultiView.#OnBubbleEvent(System.Object,System.EventArgs)", Justification = @"scottim: OnBubbleEvent is Inherited from Control, where it has been protected virtual since V1.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.MultiView.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.MultiView.#SetActiveView(System.Web.UI.WebControls.View)", Justification = @"tinghaoy: SetActiveView is a MultiView/View only API.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.MultiView.#SetActiveView(System.Web.UI.WebControls.View)", Justification = @"tinghaoy: By-design. We don't want to expose too many properties that do the same thing.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.MultiView.#SwitchViewByIDCommandName", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSource.#.ctor(System.String,System.String)", Justification = @"elipton: These are just helper constructors, and it is unlikely that any bad behavior will result.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSource.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceDisposingEventArgs.#.ctor(System.Object)", MessageId = "0#", Justification = @"elipton: Not a reference to the type name.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceEventArgs.#.ctor(System.Object)", MessageId = "0#", Justification = @"elipton: Incorrect error, this is by design.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#InvokeMethod(System.Web.UI.WebControls.ObjectDataSourceView+ObjectDataSourceMethod,System.Boolean,System.Object&)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnDeleted(System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnDeleting(System.Web.UI.WebControls.ObjectDataSourceMethodEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnFiltering(System.Web.UI.WebControls.ObjectDataSourceFilteringEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnInserted(System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnInserting(System.Web.UI.WebControls.ObjectDataSourceMethodEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnObjectCreated(System.Web.UI.WebControls.ObjectDataSourceEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnObjectCreating(System.Web.UI.WebControls.ObjectDataSourceEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnObjectDisposing(System.Web.UI.WebControls.ObjectDataSourceDisposingEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnSelected(System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnSelecting(System.Web.UI.WebControls.ObjectDataSourceSelectingEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnUpdated(System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ObjectDataSourceView.#OnUpdating(System.Web.UI.WebControls.ObjectDataSourceMethodEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PagerSettings.#FirstPageImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PagerSettings.#LastPageImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PagerSettings.#NextPageImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.PagerSettings.#get_Position()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PagerSettings.#PreviousPageImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.PagerSettings.#ToString()", Justification = @"phuff: Object::ToString() does not have any link demands.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Panel.#get_Direction()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Panel.#get_GroupingText()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PanelStyle.#BackImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Parameter.#ConvertDbTypeToTypeCode(System.Data.DbType)", MessageId = "Member", Justification = @"chenriks: Casing matches the associated System.Data.DbType enum")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Parameter.#ConvertTypeCodeToDbType(System.TypeCode)", MessageId = "Member", Justification = @"chenriks: Casing matches the associated System.Data.DbType enum")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Parameter.#DbType", MessageId = "Member", Justification = @"chenriks: Casing matches the associated System.Data.DbType enum")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Parameter.#get_DefaultValue()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Parameter.#GetDatabaseType()", Justification = @"chenriks: GetDatabaseType is getting a value based on the settings of two other properties, DbType and Type. It is used to determine the DbType that should be used for a DbCommand and should not be confused with the DbType and Type properties that a typical user would interact with.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Parameter.#get_Name()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.Parameter.#System.ICloneable.Clone()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ParameterCollection.#OnParametersChanged(System.EventArgs)", MessageId = "0#", Justification = @"elipton: This event handler is specifically visible so that people can override it to add functionality.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.PasswordRecovery", Justification = @"haok: These are just public readonly strings.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#HelpPageIconUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#HelpPageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#HyperLinkStyle", MessageId = "HyperLink", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnAnswerLookupError(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnBubbleEvent(System.Object,System.EventArgs)", Justification = @"mharder: OnBubbleEvent is defined as protected in Control, and was present in v1 so cannot be changed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnSendingMail(System.Web.UI.WebControls.MailMessageEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnSendMailError(System.Web.UI.WebControls.SendMailErrorEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnUserLookupError(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnVerifyingAnswer(System.Web.UI.WebControls.LoginCancelEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#OnVerifyingUser(System.Web.UI.WebControls.LoginCancelEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"tinghaoy: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#SubmitButtonImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.PasswordRecovery.#SuccessPageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.PolygonHotSpot", MessageId = "HotSpot", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods", Scope = "member", Target = "System.Web.UI.WebControls.PolygonHotSpot.#Coordinates", Justification = @"scottim: GetCoordinates is inherited. Need property get/set for property grid support.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.ProfileParameter.#get_PropertyName()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.WebControls.QueryStringParameter.#.ctor(System.String,System.Data.DbType,System.String)", MessageId = "2#", Justification = @"chenriks: Parameter name matches existing constructors")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.WebControls.QueryStringParameter.#.ctor(System.String,System.String)", MessageId = "1#", Justification = @"elipton: This is not a reference to the type")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.WebControls.QueryStringParameter.#.ctor(System.String,System.TypeCode,System.String)", MessageId = "2#", Justification = @"elipton: This is not a reference to the type")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.QueryStringParameter.#get_QueryStringField()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.RadioButton.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.RadioButton.#RaisePostDataChangedEvent()", Justification = @"ftse: This method name is to match the interface IPostBackDataHandler's method. And its name is consistent across other controls.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.RadioButtonList.#RaisePostDataChangedEvent()", Justification = @"scottim: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.RectangleHotSpot", MessageId = "HotSpot", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.RegularExpressionValidator.#set_ValidationExpression(System.String)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#DataSourceID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#GetData()", Justification = @"elipton: These are all according to the spec")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#IsBoundUsingDataSourceID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnDataSourceViewChanged(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnItemCommand(System.Web.UI.WebControls.RepeaterCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnItemCreated(System.Web.UI.WebControls.RepeaterItemEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnItemDataBound(System.Web.UI.WebControls.RepeaterItemEventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Repeater.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.RepeaterCommandEventArgs.#.ctor(System.Web.UI.WebControls.RepeaterItem,System.Object,System.Web.UI.WebControls.CommandEventArgs)", MessageId = "2#", Justification = @"phuff: Reviewed.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.RepeaterCommandEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.RepeaterItem.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.RepeaterItem.#System.Web.UI.IDataItemContainer.get_DataItemIndex()", Justification = @"[....]: These are overridable by overriding properties on the control.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.RepeaterItem.#System.Web.UI.IDataItemContainer.get_DisplayIndex()", Justification = @"[....]: These are overridable by overriding properties on the control.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.RepeaterItem.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.RepeaterItem.#System.Web.UI.IDataItemContainer.get_DataItemIndex()", Justification = @"phuff: These are overridable by overriding properties on the control.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.RepeaterItem.#System.Web.UI.IDataItemContainer.get_DisplayIndex()", Justification = @"phuff: These are overridable by overriding properties on the control.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.RepeaterItemEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.RoleGroup.#Roles", Justification = @"[....]: These are read/write array properties so they can be set in the persistence format as a comma-separated list of strings.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.RoleGroup.#Roles", Justification = @"[....]: These are read/write array properties so they can be set in the persistence format as a comma-separated list of strings.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.RoleGroupCollection.#OnValidate(System.Object)", Justification = @"[....]: We don't own CollectionBase, so we can't protect it.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.RoleGroup.#Roles", Justification = @"mharder: These are read/write array properties so they can be set in the persistence format as a comma-separated list of strings.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.RoleGroup.#Roles", Justification = @"mharder: These are read/write array properties so they can be set in the persistence format as a comma-separated list of strings.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.RoleGroupCollection.#OnValidate(System.Object)", Justification = @"phuff: We don't own CollectionBase, so we can't protect it.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.SendMailErrorEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.ServerValidateEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.SessionParameter.#get_SessionField()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapDataSource", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#get_ContainsListCollection()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#System.Web.UI.IDataSource.add_DataSourceChanged(System.EventHandler)", Justification = @"[....]: Derived classes have other ways of extending these events")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#System.Web.UI.IDataSource.remove_DataSourceChanged(System.EventHandler)", Justification = @"[....]: Derived classes have other ways of extending these events")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#GetList()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#GetList()", Justification = @"[....]: An expensive call should be a method. This method is also consistent with the interface IListSource method.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#GetViewNames()", Justification = @"[....]: An expensive call should be a method. This method is also consistent with the interface IListSource method.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#SiteMapProvider", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#StartingNodeUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#System.ComponentModel.IListSource.get_ContainsListCollection()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#System.ComponentModel.IListSource.GetList()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapDataSourceView", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSourceView.#OnDataSourceViewChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapHierarchicalDataSourceView", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapNodeItem", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapNodeItem.#SetItemType(System.Web.UI.WebControls.SiteMapNodeItemType)", Justification = @"[....]: I looked at it with Ting together and he said that this is a set only action so due to coding guideline we should keep it as a method instead of a property.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapNodeItem.#SiteMapNode", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapNodeItem.#System.Web.UI.IDataItemContainer.get_DataItem()", Justification = @"[....]: This explicitly implemented interface property DataItem simply returns a virtual property SiteMapNode defined on SiteMapNodeItem.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapNodeItem.#System.Web.UI.IDataItemContainer.get_DataItemIndex()", Justification = @"[....]: These can be overridden by overriding their corresponding properties.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapNodeItem.#System.Web.UI.IDataItemContainer.get_DisplayIndex()", Justification = @"[....]: These can be overridden by overriding their corresponding properties.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapNodeItemEventArgs", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapNodeItemEventHandler", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.SessionParameter.#get_SessionField()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapDataSource", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#get_ContainsListCollection()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#System.Web.UI.IDataSource.add_DataSourceChanged(System.EventHandler)", Justification = @"elipton: Derived classes have other ways of extending these events")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#System.Web.UI.IDataSource.remove_DataSourceChanged(System.EventHandler)", Justification = @"elipton: Derived classes have other ways of extending these events")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#GetList()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#GetList()", Justification = @"tinghaoy: An expensive call should be a method. This method is also consistent with the interface IListSource method.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#GetViewNames()", Justification = @"tinghaoy: An expensive call should be a method. This method is also consistent with the interface IListSource method.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#SiteMapProvider", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#StartingNodeUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#System.ComponentModel.IListSource.get_ContainsListCollection()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSource.#System.ComponentModel.IListSource.GetList()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapDataSourceView", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapDataSourceView.#OnDataSourceViewChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapHierarchicalDataSourceView", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapNodeItem", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapNodeItem.#SetItemType(System.Web.UI.WebControls.SiteMapNodeItemType)", Justification = @"ftse: I looked at it with Ting together and he said that this is a set only action so due to coding guideline we should keep it as a method instead of a property.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapNodeItem.#SiteMapNode", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapNodeItem.#System.Web.UI.IDataItemContainer.get_DataItem()", Justification = @"tinghaoy: This explicitly implemented interface property DataItem simply returns a virtual property SiteMapNode defined on SiteMapNodeItem.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapNodeItem.#System.Web.UI.IDataItemContainer.get_DataItemIndex()", Justification = @"phuff: These can be overridden by overriding their corresponding properties.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapNodeItem.#System.Web.UI.IDataItemContainer.get_DisplayIndex()", Justification = @"phuff: These can be overridden by overriding their corresponding properties.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapNodeItemEventArgs", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapNodeItemEventHandler", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapNodeItemEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapNodeItemType", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapPath", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapPath.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapPath.#OnItemCreated(System.Web.UI.WebControls.SiteMapNodeItemEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapPath.#OnItemDataBound(System.Web.UI.WebControls.SiteMapNodeItemEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapPath.#SiteMapProvider", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSource.#.ctor(System.String,System.String)", MessageId = "0#", Justification = @"[....]: This is not a reference to the type")]
-[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSource.#.ctor(System.String,System.String,System.String)", MessageId = "1#", Justification = @"[....]: ConnectionString is perfectly valid, calling it just Connection is inappropriate.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSource.#GetDbProviderFactory()", Justification = @"[....]: This is consistent with ADO.net")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSource.#GetDbProviderFactory()", Justification = @"[....]: This is potentially expensive so it is a method")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSource.#LoadTotalRowCountFromCache()", Justification = @"[....]: This code is here because it will be used in the near future or it will be removed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSource.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapNodeItemType", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SiteMapPath", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapPath.#OnDataBinding(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapPath.#OnItemCreated(System.Web.UI.WebControls.SiteMapNodeItemEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapPath.#OnItemDataBound(System.Web.UI.WebControls.SiteMapNodeItemEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.SiteMapPath.#SiteMapProvider", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSource.#.ctor(System.String,System.String)", MessageId = "0#", Justification = @"elipton: This is not a reference to the type")]
+[module: SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSource.#.ctor(System.String,System.String,System.String)", MessageId = "1#", Justification = @"elipton: ConnectionString is perfectly valid, calling it just Connection is inappropriate.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSource.#GetDbProviderFactory()", Justification = @"elipton: This is consistent with ADO.net")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSource.#GetDbProviderFactory()", Justification = @"elipton: This is potentially expensive so it is a method")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSource.#LoadTotalRowCountFromCache()", Justification = @"phuff: This code is here because it will be used in the near future or it will be removed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSource.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.SqlDataSourceCommandEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.SqlDataSourceStatusEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#ExecuteDbCommand(System.Data.Common.DbCommand,System.Web.UI.DataSourceOperation)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#ExecuteSelect(System.Web.UI.DataSourceSelectArguments)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1306:SetLocaleForDataTypes", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#ExecuteSelect(System.Web.UI.DataSourceSelectArguments)", Justification = @"[....]: The locale of the server should be used, which is the default if no locale is specified.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnDeleted(System.Web.UI.WebControls.SqlDataSourceStatusEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnDeleting(System.Web.UI.WebControls.SqlDataSourceCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnFiltering(System.Web.UI.WebControls.SqlDataSourceFilteringEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnInserted(System.Web.UI.WebControls.SqlDataSourceStatusEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnInserting(System.Web.UI.WebControls.SqlDataSourceCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnSelected(System.Web.UI.WebControls.SqlDataSourceStatusEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnSelecting(System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnUpdated(System.Web.UI.WebControls.SqlDataSourceStatusEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnUpdating(System.Web.UI.WebControls.SqlDataSourceCommandEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#RaiseUnsupportedCapabilityError(System.Web.UI.DataSourceCapabilities)", Justification = @"[....]: This model works best for this API.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1306:SetLocaleForDataTypes", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#Select(System.Web.UI.DataSourceSelectArguments)", Justification = @"[....]: The locale property isn't needed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.StringArrayConverter.#CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)", Justification = @"[....]: We don't own TypeConverter")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.StringArrayConverter.#ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)", Justification = @"[....]: We don't own TypeConverter")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.StringArrayConverter.#ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)", Justification = @"[....]: We don't own TypeConverter")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Style.#.ctor()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.Style.#AddAttributesToRender(System.Web.UI.HtmlTextWriter,System.Web.UI.WebControls.WebControl)", Justification = @"[....]: Breaking changes")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.Style.#ClearBit(System.Int32)", Justification = @"[....]: Style.ClearBit is called by FontInfo methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Style.#CopyFrom(System.Web.UI.WebControls.Style)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Style.#get_Height()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Style.#set_Height(System.Web.UI.WebControls.Unit)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Style.#SetBit(System.Int32)", Justification = @"[....]: Reviewed, and these are appropriate uses of methods.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Style.#get_Width()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Style.#set_Width(System.Web.UI.WebControls.Unit)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.UI.WebControls.StyleCollection", Justification = @"[....]: ICollection and IList implementations are inherited from StateManagedCollection. ICollection.CopyTo() and IList.IndexOf() are for internal use only.")]
-[module: SuppressMessage("Microsoft.Design", "CA1039:ListsAreStronglyTyped", Scope = "type", Target = "System.Web.UI.WebControls.StyleCollection", Justification = @"[....]: ICollection and IList implementations are inherited from StateManagedCollection. ICollection.CopyTo() and IList.IndexOf() are for internal use only.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SubMenuStyle", MessageId = "SubMenu", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetAttributes()", Justification = @"[....]: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetAttributes()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetClassName()", Justification = @"[....]: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetClassName()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetComponentName()", Justification = @"[....]: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetComponentName()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetConverter()", Justification = @"[....]: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetConverter()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetDefaultEvent()", Justification = @"[....]: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetDefaultEvent()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetDefaultProperty()", Justification = @"[....]: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetDefaultProperty()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEditor(System.Type)", Justification = @"[....]: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEditor(System.Type)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEvents()", Justification = @"[....]: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEvents()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEvents(System.Attribute[])", Justification = @"[....]: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEvents(System.Attribute[])", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetProperties()", Justification = @"[....]: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetProperties()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetProperties(System.Attribute[])", Justification = @"[....]: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetProperties(System.Attribute[])", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetPropertyOwner(System.ComponentModel.PropertyDescriptor)", Justification = @"[....]: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetPropertyOwner(System.ComponentModel.PropertyDescriptor)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SubMenuStyleCollection", MessageId = "SubMenu", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.Substitution.#GetDelegate(System.Type,System.String)", Justification = @"[....]: The security action on the private method should not conflict with the one on the type-level. And we do intend to assert the reflection permission when getting delegate to support the control in partial trust apps.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Substitution.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Table.#RaisePostBackEvent(System.String)", Justification = @"[....]: RaisePostBackEvent is consistent across controls. Event model is being used correctly.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Table.#get_Rows()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Table+RowControlCollection.#Add(System.Web.UI.Control)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Table+RowControlCollection.#AddAt(System.Int32,System.Web.UI.Control)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.TableCell.#AssociatedHeaderCellID", Justification = @"[....]: The design was reviewed by [....] and others, and it is consistent with the design of other controls in asp.net (e.g. gridview).")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.TableCell.#AssociatedHeaderCellID", Justification = @"[....]: The design was reviewed by [....] and others, and it is consistent with the design of other controls in asp.net (e.g. gridview).")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.TableCell.#AssociatedHeaderCellID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TableCellCollection.#get_Count()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TableCellCollection.#GetEnumerator()", Justification = @"[....]: Designers run in full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TableCellCollection.#get_Item(System.Int32)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TableCellCollection.#System.Collections.IList.get_IsFixedSize()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TableCellCollection.#System.Collections.IList.get_Item(System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TableCellCollection.#System.Collections.IList.set_Item(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.TableHeaderCell.#CategoryText", Justification = @"[....]: The design was reviewed by [....] and others, and it is consistent with the design of other controls in asp.net (e.g. gridview).")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.TableHeaderCell.#CategoryText", Justification = @"[....]: The design was reviewed by [....] and others, and it is consistent with the design of other controls in asp.net (e.g. gridview).")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.TableItemStyle.#ResetWrap()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.TableItemStyle.#ShouldSerializeWrap()", Justification = @"[....]: Called by designer through reflection.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TableRow.#get_Cells()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TableRow+CellControlCollection.#Add(System.Web.UI.Control)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TableRow+CellControlCollection.#AddAt(System.Int32,System.Web.UI.Control)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TableRowCollection.#get_Count()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TableRowCollection.#get_Item(System.Int32)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TableRowCollection.#System.Collections.IList.get_IsFixedSize()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TableRowCollection.#System.Collections.IList.get_Item(System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TableRowCollection.#System.Collections.IList.set_Item(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.TemplateColumn.#InitializeCell(System.Web.UI.WebControls.TableCell,System.Int32,System.Web.UI.WebControls.ListItemType)", MessageId = "System.Web.UI.WebControls.TableCell.set_Text(System.String)", Justification = @"[....]: &nbsp; is an acceptable spelling and string for non-breaking space.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.TemplateColumn.#InitializeCell(System.Web.UI.WebControls.TableCell,System.Int32,System.Web.UI.WebControls.ListItemType)", MessageId = "nbsp", Justification = @"[....]: &nbsp; is an acceptable spelling and string for non-breaking space.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.TemplateField.#InitializeCell(System.Web.UI.WebControls.DataControlFieldCell,System.Web.UI.WebControls.DataControlCellType,System.Web.UI.WebControls.DataControlRowState,System.Int32)", MessageId = "System.Web.UI.WebControls.TableCell.set_Text(System.String)", Justification = @"[....]: &nbsp; is an acceptable spelling and string for non-breaking space.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.TemplateField.#InitializeCell(System.Web.UI.WebControls.DataControlFieldCell,System.Web.UI.WebControls.DataControlCellType,System.Web.UI.WebControls.DataControlRowState,System.Int32)", MessageId = "nbsp", Justification = @"[....]: &nbsp; is an acceptable spelling and string for non-breaking space.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TextBox.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TextBox.#OnTextChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.TextBox.#RaisePostDataChangedEvent()", Justification = @"[....]: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#.ctor(System.String,System.String,System.String)", MessageId = "2#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1025:ReplaceRepetitiveArgumentsWithParamsArray", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#.ctor(System.String,System.String,System.String,System.String,System.String)", Justification = @"[....]: These are distinct arguments.")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#.ctor(System.String,System.String,System.String,System.String,System.String)", MessageId = "2#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#.ctor(System.String,System.String,System.String,System.String,System.String)", MessageId = "3#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#get_ChildNodes()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#Clone()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#get_Depth()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#ImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#NavigateUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#RenderPreText(System.Web.UI.HtmlTextWriter)", MessageId = "PreText", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#System.ICloneable.Clone()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeBinding.#ImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeBinding.#ImageUrlField", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeBinding.#NavigateUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeBinding.#NavigateUrlField", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeBinding.#System.ICloneable.Clone()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeCollection.#Clear()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeCollection.#get_Count()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeCollection.#get_Count()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeCollection.#GetEnumerator()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeCollection.#GetEnumerator()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeCollection.#get_IsSynchronized()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeCollection.#get_SyncRoot()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#ExecuteDbCommand(System.Data.Common.DbCommand,System.Web.UI.DataSourceOperation)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#ExecuteSelect(System.Web.UI.DataSourceSelectArguments)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1306:SetLocaleForDataTypes", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#ExecuteSelect(System.Web.UI.DataSourceSelectArguments)", Justification = @"phuff: The locale of the server should be used, which is the default if no locale is specified.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnDeleted(System.Web.UI.WebControls.SqlDataSourceStatusEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnDeleting(System.Web.UI.WebControls.SqlDataSourceCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnFiltering(System.Web.UI.WebControls.SqlDataSourceFilteringEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnInserted(System.Web.UI.WebControls.SqlDataSourceStatusEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnInserting(System.Web.UI.WebControls.SqlDataSourceCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnSelected(System.Web.UI.WebControls.SqlDataSourceStatusEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnSelecting(System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnUpdated(System.Web.UI.WebControls.SqlDataSourceStatusEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#OnUpdating(System.Web.UI.WebControls.SqlDataSourceCommandEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#RaiseUnsupportedCapabilityError(System.Web.UI.DataSourceCapabilities)", Justification = @"phuff: This model works best for this API.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1306:SetLocaleForDataTypes", Scope = "member", Target = "System.Web.UI.WebControls.SqlDataSourceView.#Select(System.Web.UI.DataSourceSelectArguments)", Justification = @"phuff: The locale property isn't needed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.StringArrayConverter.#CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)", Justification = @"phuff: We don't own TypeConverter")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.StringArrayConverter.#ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)", Justification = @"phuff: We don't own TypeConverter")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.StringArrayConverter.#ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)", Justification = @"phuff: We don't own TypeConverter")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Style.#.ctor()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.Style.#AddAttributesToRender(System.Web.UI.HtmlTextWriter,System.Web.UI.WebControls.WebControl)", Justification = @"phuff: Breaking changes")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.Style.#ClearBit(System.Int32)", Justification = @"scottim: Style.ClearBit is called by FontInfo methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Style.#CopyFrom(System.Web.UI.WebControls.Style)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Style.#get_Height()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Style.#set_Height(System.Web.UI.WebControls.Unit)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Style.#SetBit(System.Int32)", Justification = @"phuff: Reviewed, and these are appropriate uses of methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Style.#get_Width()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Style.#set_Width(System.Web.UI.WebControls.Unit)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.UI.WebControls.StyleCollection", Justification = @"scottim: ICollection and IList implementations are inherited from StateManagedCollection. ICollection.CopyTo() and IList.IndexOf() are for internal use only.")]
+[module: SuppressMessage("Microsoft.Design", "CA1039:ListsAreStronglyTyped", Scope = "type", Target = "System.Web.UI.WebControls.StyleCollection", Justification = @"scottim: ICollection and IList implementations are inherited from StateManagedCollection. ICollection.CopyTo() and IList.IndexOf() are for internal use only.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SubMenuStyle", MessageId = "SubMenu", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetAttributes()", Justification = @"bleroy: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetAttributes()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetClassName()", Justification = @"bleroy: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetClassName()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetComponentName()", Justification = @"bleroy: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetComponentName()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetConverter()", Justification = @"bleroy: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetConverter()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetDefaultEvent()", Justification = @"bleroy: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetDefaultEvent()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetDefaultProperty()", Justification = @"bleroy: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetDefaultProperty()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEditor(System.Type)", Justification = @"bleroy: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEditor(System.Type)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEvents()", Justification = @"bleroy: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEvents()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEvents(System.Attribute[])", Justification = @"bleroy: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEvents(System.Attribute[])", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetProperties()", Justification = @"bleroy: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetProperties()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetProperties(System.Attribute[])", Justification = @"bleroy: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetProperties(System.Attribute[])", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetPropertyOwner(System.ComponentModel.PropertyDescriptor)", Justification = @"bleroy: Derived classes can still have their own implementation and there's nothing in the base class that they can't do. We do not want implicit implementation of this interface, and we don't want to seal.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.SubMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetPropertyOwner(System.ComponentModel.PropertyDescriptor)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.SubMenuStyleCollection", MessageId = "SubMenu", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.Substitution.#GetDelegate(System.Type,System.String)", Justification = @"ftse: The security action on the private method should not conflict with the one on the type-level. And we do intend to assert the reflection permission when getting delegate to support the control in partial trust apps.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Substitution.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Table.#RaisePostBackEvent(System.String)", Justification = @"scottim: RaisePostBackEvent is consistent across controls. Event model is being used correctly.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Table.#get_Rows()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Table+RowControlCollection.#Add(System.Web.UI.Control)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.Table+RowControlCollection.#AddAt(System.Int32,System.Web.UI.Control)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.TableCell.#AssociatedHeaderCellID", Justification = @"scottim: The design was reviewed by NikhilKo and others, and it is consistent with the design of other controls in asp.net (e.g. gridview).")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.TableCell.#AssociatedHeaderCellID", Justification = @"scottim: The design was reviewed by NikhilKo and others, and it is consistent with the design of other controls in asp.net (e.g. gridview).")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.TableCell.#AssociatedHeaderCellID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TableCellCollection.#get_Count()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TableCellCollection.#GetEnumerator()", Justification = @"phuff: Designers run in full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TableCellCollection.#get_Item(System.Int32)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TableCellCollection.#System.Collections.IList.get_IsFixedSize()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TableCellCollection.#System.Collections.IList.get_Item(System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TableCellCollection.#System.Collections.IList.set_Item(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.TableHeaderCell.#CategoryText", Justification = @"scottim: The design was reviewed by NikhilKo and others, and it is consistent with the design of other controls in asp.net (e.g. gridview).")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.TableHeaderCell.#CategoryText", Justification = @"scottim: The design was reviewed by NikhilKo and others, and it is consistent with the design of other controls in asp.net (e.g. gridview).")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.TableItemStyle.#ResetWrap()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.TableItemStyle.#ShouldSerializeWrap()", Justification = @"scottim: Called by designer through reflection.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TableRow.#get_Cells()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TableRow+CellControlCollection.#Add(System.Web.UI.Control)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TableRow+CellControlCollection.#AddAt(System.Int32,System.Web.UI.Control)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TableRowCollection.#get_Count()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TableRowCollection.#get_Item(System.Int32)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TableRowCollection.#System.Collections.IList.get_IsFixedSize()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TableRowCollection.#System.Collections.IList.get_Item(System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TableRowCollection.#System.Collections.IList.set_Item(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.TemplateColumn.#InitializeCell(System.Web.UI.WebControls.TableCell,System.Int32,System.Web.UI.WebControls.ListItemType)", MessageId = "System.Web.UI.WebControls.TableCell.set_Text(System.String)", Justification = @"phuff: &nbsp; is an acceptable spelling and string for non-breaking space.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.TemplateColumn.#InitializeCell(System.Web.UI.WebControls.TableCell,System.Int32,System.Web.UI.WebControls.ListItemType)", MessageId = "nbsp", Justification = @"phuff: &nbsp; is an acceptable spelling and string for non-breaking space.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.TemplateField.#InitializeCell(System.Web.UI.WebControls.DataControlFieldCell,System.Web.UI.WebControls.DataControlCellType,System.Web.UI.WebControls.DataControlRowState,System.Int32)", MessageId = "System.Web.UI.WebControls.TableCell.set_Text(System.String)", Justification = @"phuff: &nbsp; is an acceptable spelling and string for non-breaking space.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2204:LiteralsShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.TemplateField.#InitializeCell(System.Web.UI.WebControls.DataControlFieldCell,System.Web.UI.WebControls.DataControlCellType,System.Web.UI.WebControls.DataControlRowState,System.Int32)", MessageId = "nbsp", Justification = @"phuff: &nbsp; is an acceptable spelling and string for non-breaking space.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TextBox.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TextBox.#OnTextChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.TextBox.#RaisePostDataChangedEvent()", Justification = @"scottim: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#.ctor(System.String,System.String,System.String)", MessageId = "2#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1025:ReplaceRepetitiveArgumentsWithParamsArray", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#.ctor(System.String,System.String,System.String,System.String,System.String)", Justification = @"andlin: These are distinct arguments.")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#.ctor(System.String,System.String,System.String,System.String,System.String)", MessageId = "2#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#.ctor(System.String,System.String,System.String,System.String,System.String)", MessageId = "3#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#get_ChildNodes()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#Clone()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#get_Depth()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#ImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#NavigateUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#RenderPreText(System.Web.UI.HtmlTextWriter)", MessageId = "PreText", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TreeNode.#System.ICloneable.Clone()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeBinding.#ImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeBinding.#ImageUrlField", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeBinding.#NavigateUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeBinding.#NavigateUrlField", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeBinding.#System.ICloneable.Clone()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeCollection.#Clear()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeCollection.#get_Count()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeCollection.#get_Count()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeCollection.#GetEnumerator()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeCollection.#GetEnumerator()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeCollection.#get_IsSynchronized()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeCollection.#get_SyncRoot()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.TreeNodeEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeStyle.#ImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#set_AutoGenerateDataBindings(System.Boolean)", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#CollapseImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#ExpandAll()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#get_ExpandDepth()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#ExpandImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#GetCallbackResult()", Justification = @"[....]: Naming is appropriate for this interface")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#get_Nodes()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#NoExpandImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#OnSelectedNodeChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#OnTreeNodeCheckChanged(System.Web.UI.WebControls.TreeNodeEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#OnTreeNodeCollapsed(System.Web.UI.WebControls.TreeNodeEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#OnTreeNodeDataBound(System.Web.UI.WebControls.TreeNodeEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#OnTreeNodeExpanded(System.Web.UI.WebControls.TreeNodeEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#OnTreeNodePopulate(System.Web.UI.WebControls.TreeNodeEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#RaiseCallbackEvent(System.String)", Justification = @"[....]: Naming is appropriate for this interface")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#RaisePostBackEvent(System.String)", Justification = @"[....]: These methods are the methods that rise the actual events.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#RaisePostDataChangedEvent()", Justification = @"[....]: These methods are the methods that rise the actual events.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#System.Web.UI.IPostBackDataHandler.LoadPostData(System.String,System.Collections.Specialized.NameValueCollection)", Justification = @"[....]: These are used for error reporting, so they are supposed to catch all exceptions.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#System.Web.UI.IPostBackDataHandler.LoadPostData(System.String,System.Collections.Specialized.NameValueCollection)", Justification = @"[....]: These are not meant to be overridden by derived classes.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#System.Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent()", Justification = @"[....]: These are not meant to be overridden by derived classes.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(System.String)", Justification = @"[....]: These are not meant to be overridden by derived classes.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.TreeView+TreeViewExpandDepthConverter.#.ctor()", Justification = @"[....]: This private class is used as a type converter (thus only used from an attribute). So it is called, but by reflection, so fxcop can't see it.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.UnitConverter.#CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.ValidationSummary.#.ctor()", Justification = @"[....]: Do not expect this would be broken by derived classes. Also this code is from earlier version. If it is changed it would introduce breaking changes.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ValidationSummary.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Reviewed.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", Scope = "member", Target = "System.Web.UI.WebControls.ValidatorCompatibilityHelper.#RegisterArrayDeclaration(System.Web.UI.Control,System.String,System.String)", MessageId = "System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[])", Justification = @"[....]: The default is for the thread's culture to be used, which is fine.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", Scope = "member", Target = "System.Web.UI.WebControls.ValidatorCompatibilityHelper.#RegisterClientScriptResource(System.Web.UI.Control,System.Type,System.String)", MessageId = "System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[])", Justification = @"[....]: The default is for the thread's culture to be used, which is fine.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", Scope = "member", Target = "System.Web.UI.WebControls.ValidatorCompatibilityHelper.#RegisterExpandoAttribute(System.Web.UI.Control,System.String,System.String,System.String,System.Boolean)", MessageId = "System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[])", Justification = @"[....]: The default is for the thread's culture to be used, which is fine.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", Scope = "member", Target = "System.Web.UI.WebControls.ValidatorCompatibilityHelper.#RegisterOnSubmitStatement(System.Web.UI.Control,System.Type,System.String,System.String)", MessageId = "System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[])", Justification = @"[....]: The default is for the thread's culture to be used, which is fine.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", Scope = "member", Target = "System.Web.UI.WebControls.ValidatorCompatibilityHelper.#RegisterStartupScript(System.Web.UI.Control,System.Type,System.String,System.String,System.Boolean)", MessageId = "System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[])", Justification = @"[....]: The default is for the thread's culture to be used, which is fine.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.WebControls.VerticalAlignConverter", Justification = @"[....]: Used as converters in attribites.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.VerticalAlignConverter.#.ctor()", Justification = @"[....]: Called by reflection")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.View.#OnActivate(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.View.#OnDeactivate(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.UI.WebControls.ViewCollection", Justification = @"[....]: ICollection implementation is inherited from ControlCollection. CopyTo is for internal use only.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.WebControl.#get_Attributes()", Justification = @"[....]: Designers run in full trust.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.WebControl.#get_ControlStyle()", Justification = @"[....]: System.Design is not APTCA.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebControl.#System.Web.UI.IAttributeAccessor.GetAttribute(System.String)", Justification = @"[....]: Other uses of expando attributes on WebControl should go through the Attributes property, and not this interface. This interface is used by the parser and generated code.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebControl.#System.Web.UI.IAttributeAccessor.SetAttribute(System.String,System.String)", Justification = @"[....]: Other uses of expando attributes on WebControl should go through the Attributes property, and not this interface. This interface is used by the parser and generated code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.Wizard", Justification = @"[....]: These are static readonly strings that do not expose any security threats.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#CancelButtonID", Justification = @"[....]: We use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#CancelButtonImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#CancelDestinationPageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#CustomFinishButtonID", Justification = @"[....]: We use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#CustomNextButtonID", Justification = @"[....]: We use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#CustomPreviousButtonID", Justification = @"[....]: We use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#DataListID", Justification = @"[....]: We use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#DisplaySideBar", MessageId = "SideBar", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#SideBarButtonClick", MessageId = "SideBar", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#FinishButtonID", Justification = @"[....]: We use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#FinishCompleteButtonImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#FinishDestinationPageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#FinishPreviousButtonID", Justification = @"[....]: We use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#FinishPreviousButtonImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#GetDesignModeState()", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#GetHistory()", Justification = @"[....]: An expensive call should be a method.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnActiveStepChanged(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnCancelButtonClick(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnFinishButtonClick(System.Web.UI.WebControls.WizardNavigationEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnNextButtonClick(System.Web.UI.WebControls.WizardNavigationEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnPreviousButtonClick(System.Web.UI.WebControls.WizardNavigationEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnSideBarButtonClick(System.Web.UI.WebControls.WizardNavigationEventArgs)", MessageId = "OnSide", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnSideBarButtonClick(System.Web.UI.WebControls.WizardNavigationEventArgs)", MessageId = "SideBar", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnSideBarButtonClick(System.Web.UI.WebControls.WizardNavigationEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#SideBarButtonID", MessageId = "SideBar", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#SideBarButtonID", Justification = @"[....]: We use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#SideBarButtonStyle", MessageId = "SideBar", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#SideBarStyle", MessageId = "SideBar", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#SideBarTemplate", MessageId = "SideBar", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#StartNextButtonID", Justification = @"[....]: We use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#StartNextButtonImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#StepNextButtonID", Justification = @"[....]: We use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#StepNextButtonImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#StepPreviousButtonID", Justification = @"[....]: We use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#StepPreviousButtonImageUrl", Justification = @"[....]: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeNodeStyle.#ImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#set_AutoGenerateDataBindings(System.Boolean)", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#CollapseImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#ExpandAll()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#get_ExpandDepth()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#ExpandImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#GetCallbackResult()", Justification = @"phuff: Naming is appropriate for this interface")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#get_Nodes()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#NoExpandImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#OnSelectedNodeChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#OnTreeNodeCheckChanged(System.Web.UI.WebControls.TreeNodeEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#OnTreeNodeCollapsed(System.Web.UI.WebControls.TreeNodeEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#OnTreeNodeDataBound(System.Web.UI.WebControls.TreeNodeEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#OnTreeNodeExpanded(System.Web.UI.WebControls.TreeNodeEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#OnTreeNodePopulate(System.Web.UI.WebControls.TreeNodeEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#RaiseCallbackEvent(System.String)", Justification = @"phuff: Naming is appropriate for this interface")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#RaisePostBackEvent(System.String)", Justification = @"bleroy: These methods are the methods that rise the actual events.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#RaisePostDataChangedEvent()", Justification = @"bleroy: These methods are the methods that rise the actual events.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#System.Web.UI.IPostBackDataHandler.LoadPostData(System.String,System.Collections.Specialized.NameValueCollection)", Justification = @"andlin: These are used for error reporting, so they are supposed to catch all exceptions.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#System.Web.UI.IPostBackDataHandler.LoadPostData(System.String,System.Collections.Specialized.NameValueCollection)", Justification = @"andlin: These are not meant to be overridden by derived classes.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#System.Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent()", Justification = @"andlin: These are not meant to be overridden by derived classes.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.TreeView.#System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(System.String)", Justification = @"andlin: These are not meant to be overridden by derived classes.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.TreeView+TreeViewExpandDepthConverter.#.ctor()", Justification = @"bleroy: This private class is used as a type converter (thus only used from an attribute). So it is called, but by reflection, so fxcop can't see it.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.UnitConverter.#CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.ValidationSummary.#.ctor()", Justification = @"ftse: Do not expect this would be broken by derived classes. Also this code is from earlier version. If it is changed it would introduce breaking changes.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.ValidationSummary.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Reviewed.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", Scope = "member", Target = "System.Web.UI.WebControls.ValidatorCompatibilityHelper.#RegisterArrayDeclaration(System.Web.UI.Control,System.String,System.String)", MessageId = "System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[])", Justification = @"phuff: The default is for the thread's culture to be used, which is fine.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", Scope = "member", Target = "System.Web.UI.WebControls.ValidatorCompatibilityHelper.#RegisterClientScriptResource(System.Web.UI.Control,System.Type,System.String)", MessageId = "System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[])", Justification = @"phuff: The default is for the thread's culture to be used, which is fine.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", Scope = "member", Target = "System.Web.UI.WebControls.ValidatorCompatibilityHelper.#RegisterExpandoAttribute(System.Web.UI.Control,System.String,System.String,System.String,System.Boolean)", MessageId = "System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[])", Justification = @"phuff: The default is for the thread's culture to be used, which is fine.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", Scope = "member", Target = "System.Web.UI.WebControls.ValidatorCompatibilityHelper.#RegisterOnSubmitStatement(System.Web.UI.Control,System.Type,System.String,System.String)", MessageId = "System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[])", Justification = @"phuff: The default is for the thread's culture to be used, which is fine.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", Scope = "member", Target = "System.Web.UI.WebControls.ValidatorCompatibilityHelper.#RegisterStartupScript(System.Web.UI.Control,System.Type,System.String,System.String,System.Boolean)", MessageId = "System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[])", Justification = @"phuff: The default is for the thread's culture to be used, which is fine.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.UI.WebControls.VerticalAlignConverter", Justification = @"phuff: Used as converters in attribites.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.VerticalAlignConverter.#.ctor()", Justification = @"haok: Called by reflection")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.View.#OnActivate(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.View.#OnDeactivate(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1035:ICollectionImplementationsHaveStronglyTypedMembers", Scope = "type", Target = "System.Web.UI.WebControls.ViewCollection", Justification = @"scottim: ICollection implementation is inherited from ControlCollection. CopyTo is for internal use only.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.WebControl.#get_Attributes()", Justification = @"phuff: Designers run in full trust.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.UI.WebControls.WebControl.#get_ControlStyle()", Justification = @"phuff: System.Design is not APTCA.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebControl.#System.Web.UI.IAttributeAccessor.GetAttribute(System.String)", Justification = @"nikhilko: Other uses of expando attributes on WebControl should go through the Attributes property, and not this interface. This interface is used by the parser and generated code.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebControl.#System.Web.UI.IAttributeAccessor.SetAttribute(System.String,System.String)", Justification = @"nikhilko: Other uses of expando attributes on WebControl should go through the Attributes property, and not this interface. This interface is used by the parser and generated code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.Wizard", Justification = @"tinghaoy: These are static readonly strings that do not expose any security threats.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#CancelButtonID", Justification = @"phuff: We use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#CancelButtonImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#CancelDestinationPageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#CustomFinishButtonID", Justification = @"phuff: We use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#CustomNextButtonID", Justification = @"phuff: We use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#CustomPreviousButtonID", Justification = @"phuff: We use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#DataListID", Justification = @"phuff: We use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#DisplaySideBar", MessageId = "SideBar", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#SideBarButtonClick", MessageId = "SideBar", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#FinishButtonID", Justification = @"phuff: We use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#FinishCompleteButtonImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#FinishDestinationPageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#FinishPreviousButtonID", Justification = @"phuff: We use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#FinishPreviousButtonImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#GetDesignModeState()", Justification = @"tinghaoy: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#GetHistory()", Justification = @"tinghaoy: An expensive call should be a method.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnActiveStepChanged(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnBubbleEvent(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnCancelButtonClick(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnFinishButtonClick(System.Web.UI.WebControls.WizardNavigationEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnNextButtonClick(System.Web.UI.WebControls.WizardNavigationEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnPreviousButtonClick(System.Web.UI.WebControls.WizardNavigationEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnSideBarButtonClick(System.Web.UI.WebControls.WizardNavigationEventArgs)", MessageId = "OnSide", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnSideBarButtonClick(System.Web.UI.WebControls.WizardNavigationEventArgs)", MessageId = "SideBar", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#OnSideBarButtonClick(System.Web.UI.WebControls.WizardNavigationEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#SideBarButtonID", MessageId = "SideBar", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#SideBarButtonID", Justification = @"phuff: We use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#SideBarButtonStyle", MessageId = "SideBar", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#SideBarStyle", MessageId = "SideBar", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#SideBarTemplate", MessageId = "SideBar", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#StartNextButtonID", Justification = @"phuff: We use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#StartNextButtonImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#StepNextButtonID", Justification = @"phuff: We use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#StepNextButtonImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#StepPreviousButtonID", Justification = @"phuff: We use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.Wizard.#StepPreviousButtonImageUrl", Justification = @"phuff: Urls ok as strings")]
[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.Wizard+BlockControl.#.ctor(System.Web.UI.WebControls.Wizard)", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.WizardDefaultInnerTable.#.ctor()", Justification = @"[....]: Assigned to [....]")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.WizardDefaultInnerTable.#.ctor()", Justification = @"phuff: Assigned to tinghaoy")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.WizardNavigationEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepBase.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#Clear()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#get_Count()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#GetEnumerator()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#get_IsReadOnly()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#get_IsSynchronized()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#RemoveAt(System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#get_SyncRoot()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.IList.Add(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.IList.Contains(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.IList.IndexOf(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.IList.Insert(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.IList.get_IsFixedSize()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.IList.get_Item(System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.IList.set_Item(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.IList.Remove(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.Xml.#GetDesignModeState()", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.Xml.#GetDesignModeState()", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#System.Web.UI.IDataSource.add_DataSourceChanged(System.EventHandler)", Justification = @"[....]: Components should only use these events through the IDataSource and IHierarchicalDataSource interfaces.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#System.Web.UI.IDataSource.remove_DataSourceChanged(System.EventHandler)", Justification = @"[....]: Components should only use these events through the IDataSource and IHierarchicalDataSource interfaces.")]
-[module: SuppressMessage("Microsoft.Design", "CA1059:MembersShouldNotExposeCertainConcreteTypes", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#GetXmlDocument()", MessageId = "System.Xml.XmlNode", Justification = @"[....]: This method is specifically supposed to return an XmlDocument, so it is the appropriate return type.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#GetXmlDocument()", Justification = @"[....]: This is just a rename of an old method - it is an expensive operation to perform, so it is a method.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#OnTransforming(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#System.ComponentModel.IListSource.get_ContainsListCollection()", Justification = @"[....]: These would never need to be overridden by a derived class. They are mostly just there for v1 controls to use.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#System.ComponentModel.IListSource.get_ContainsListCollection()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#System.ComponentModel.IListSource.GetList()", Justification = @"[....]: These would never need to be overridden by a derived class. They are mostly just there for v1 controls to use.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#System.ComponentModel.IListSource.GetList()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#System.Web.UI.IDataSource.GetView(System.String)", Justification = @"[....]: Components should only use these methods through the IDataSource interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#System.Web.UI.IDataSource.GetViewNames()", Justification = @"[....]: Components should only use these methods through the IDataSource interface.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "type", Target = "System.Web.UI.WebControls.XmlHierarchicalEnumerable", Justification = @"[....]: This is a special type of IEnumerable that adds hierarchical functionality, it is not really a collection (or queue or stack).")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.XmlHierarchyData.#ToString()", Justification = @"[....]: Assigned to [....]")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Adapters.MenuAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Adapters.MenuAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Adapters.MenuAdapter.#RaisePostBackEvent(System.String)", Justification = @"[....]: Not an event. Here to raise events.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.AppearanceEditorPart.#ApplyChanges()", Justification = @"[....]: We catch any exception that is thrown, and render an error message in the EditorPart. If a non-CLSCompliant exception is thrown, it will bubble up and crash the page. This is fine.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.AppearanceEditorPart.#ApplyChanges()", Justification = @"[....]: Per DmityrR, we should exclude all violations of this rule since the framework makes no guarantee about what exceptions may be thrown.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.AppearanceEditorPart.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.BehaviorEditorPart.#ApplyChanges()", Justification = @"[....]: We catch any exception that is thrown, and render an error message in the EditorPart. If a non-CLSCompliant exception is thrown, it will bubble up and crash the page. This is fine.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.BehaviorEditorPart.#ApplyChanges()", Justification = @"[....]: Per DmityrR, we should exclude all violations of this rule since the framework makes no guarantee about what exceptions may be thrown.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.BehaviorEditorPart.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.BlobPersonalizationState.#DeserializeData(System.Byte[])", Justification = @"[....]: This method wraps a thrown exception in an ArgumentException. If a non-CLSCompliant exception is thrown, it will bubble up without being wrapped in an ArgumentException, which is fine.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.BlobPersonalizationState.#DeserializeData(System.Byte[])", Justification = @"[....]: This was added for consistency and as defense-in-depth. VSWhidbey 427533.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.BlobPersonalizationState.#SerializeData(System.Collections.IDictionary)", Justification = @"[....]: This was added for consistency and as defense-in-depth. VSWhidbey 491449.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogPart.#GetAvailableWebPartDescriptions()", Justification = @"[....]: This is by design")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogPart.#GetDesignModeState()", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the linkdemand is not necessary.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogPart.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogPart.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the linkdemand is not necessary.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogPartChrome.#RenderPartContents(System.Web.UI.HtmlTextWriter,System.Web.UI.WebControls.WebParts.CatalogPart)", Justification = @"[....]: The type of this parameter should be CatalogPart, since this method is only intended to be called on CatalogPart controls, not on an arbitrary Control.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.CatalogPartCollection", Justification = @"[....]: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogPartCollection.#Empty", Justification = @"[....]: CatalogPartCollection is immutable.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogZoneBase.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogZoneBase.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogZoneBase.#RaisePostBackEvent(System.String)", Justification = @"[....]: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogZoneBase.#SelectedCatalogPartID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogZoneBase.#System.Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent()", Justification = @"[....]: This class does not provide any implementation for this interface method.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.ConnectionConsumerAttribute", Justification = @"[....]: Attribute must be unsealed to allow for localization.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionConsumerAttribute.#ID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.ConnectionInterfaceCollection", Justification = @"[....]: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionInterfaceCollection.#Empty", Justification = @"[....]: ConnectionInterfaceCollection is a ReadOnlyCollection, which is an immutable type.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.ConnectionPoint", Justification = @"[....]: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionPoint.#DefaultID", Justification = @"[....]: ID is capitalized for compatibility with V1 naming.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionPoint.#ID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.ConnectionProviderAttribute", Justification = @"[....]: Attribute must be unsealed to allow for localization.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionProviderAttribute.#ID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionsZone.#OnDisplayModeChanged(System.Object,System.Web.UI.WebControls.WebParts.WebPartDisplayModeEventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionsZone.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionsZone.#OnSelectedWebPartChanged(System.Object,System.Web.UI.WebControls.WebParts.WebPartEventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionsZone.#RaisePostBackEvent(System.String)", Justification = @"[....]: This method is the one that raises the actual events.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorPart.#GetDesignModeState()", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the linkdemand is not necessary.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorPart.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorPart.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"[....]: The security attribute at the method level is more secured than the type one, therefore the linkdemand is not necessary.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorPartChrome.#RenderPartContents(System.Web.UI.HtmlTextWriter,System.Web.UI.WebControls.WebParts.EditorPart)", Justification = @"[....]: This method is intended to be called only on EditorParts.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.EditorPartCollection", Justification = @"[....]: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorPartCollection.#Empty", Justification = @"[....]: EditorPartCollection is immutable.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorZoneBase.#OnDisplayModeChanged(System.Object,System.Web.UI.WebControls.WebParts.WebPartDisplayModeEventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorZoneBase.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorZoneBase.#OnSelectedWebPartChanged(System.Object,System.Web.UI.WebControls.WebParts.WebPartEventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorZoneBase.#RaisePostBackEvent(System.String)", Justification = @"[....]: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ErrorWebPart.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "0#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ErrorWebPart.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "3#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ErrorWebPart.#System.Web.UI.WebControls.WebParts.ITrackingPersonalizable.BeginLoad()", Justification = @"[....]: Our implementation of BeginLoad() is empty, and this is unlikely to change in the future.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ErrorWebPart.#System.Web.UI.WebControls.WebParts.ITrackingPersonalizable.BeginSave()", Justification = @"[....]: Our implementation of BeginSave() is empty, and this is unlikely to change in the future.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ErrorWebPart.#System.Web.UI.WebControls.WebParts.ITrackingPersonalizable.EndLoad()", Justification = @"[....]: Derived types should use EndLoadPersonalization().")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ErrorWebPart.#System.Web.UI.WebControls.WebParts.ITrackingPersonalizable.EndSave()", Justification = @"[....]: Our implementation of EndSave() is empty, and this is unlikely to change in the future.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ErrorWebPart.#System.Web.UI.WebControls.WebParts.ITrackingPersonalizable.get_TracksChanges()", Justification = @"[....]: Our implementation of TracksChanges just returns true, so derived types should not need to call the base implementation.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.GenericWebPart.#.ctor(System.Web.UI.Control)", Justification = @"[....]: The ID property is overriden and sealed in these classes, so I do not think it should be a violation to set this property in the constructor, since the property is sealed. I have sent mail to fxcopbug to see if it is a bug in the FxCop tool, and I am excluding these violations for now.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ImportCatalogPart.#CreateAvailableWebPartDescriptions()", Justification = @"[....]: It has been carefully reviewed several times and this code will soon be deleted and replaced by a call to WebPartImport anyway.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ImportCatalogPart.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ImportCatalogPart.#OnUpload(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.IPersonalizable", MessageId = "Personalizable", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.ITrackingPersonalizable", MessageId = "Personalizable", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.IVersioningPersonalizable", MessageId = "Personalizable", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.IWebPart.#CatalogIconImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.IWebPart.#TitleIconImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.IWebPart.#TitleUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.LayoutEditorPart.#ApplyChanges()", Justification = @"[....]: We catch any exception that is thrown, and render an error message in the EditorPart. If a non-CLSCompliant exception is thrown, it will bubble up and crash the page. This is fine.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.LayoutEditorPart.#ApplyChanges()", Justification = @"[....]: Per DmityrR, we should exclude all violations of this rule since the framework makes no guarantee about what exceptions may be thrown.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.LayoutEditorPart.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PageCatalogPart.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PageCatalogPart.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.Part.#System.Web.UI.WebControls.ICompositeControlDesignerAccessor.RecreateChildControls()", Justification = @"[....]: Protected method not needed as we call EnsureChildControls which calls CreateChildControls which is protected and overridable.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute", MessageId = "Personalizable", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute", Justification = @"[....]: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#.ctor(System.Boolean)", MessageId = "Personalizable", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#Default", Justification = @"[....]: Verified non-mutable")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#Equals(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#GetHashCode()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#GetPersonalizableProperties(System.Type)", MessageId = "Personalizable", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#IsDefaultAttribute()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#IsPersonalizable", MessageId = "Personalizable", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#Match(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#NotPersonalizable", Justification = @"[....]: Verified non-mutable")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#NotPersonalizable", MessageId = "Personalizable", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#Personalizable", Justification = @"[....]: Verified non-mutable")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#Personalizable", MessageId = "Personalizable", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#SharedPersonalizable", Justification = @"[....]: Verified non-mutable")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#SharedPersonalizable", MessageId = "Personalizable", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#UserPersonalizable", Justification = @"[....]: Verified non-mutable")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#UserPersonalizable", MessageId = "Personalizable", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationAdministration.#FindInactiveUserState(System.String,System.String,System.DateTime,System.Int32,System.Int32,System.Int32&)", MessageId = "5#", Justification = @"[....]: This is the current design of the API in the spec. I will revisit to confirm if this is the desired signature.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationAdministration.#FindSharedState(System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"[....]: This is the current design of the API in the spec. I will revisit to confirm if this is the desired signature.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationAdministration.#FindUserState(System.String,System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "4#", Justification = @"[....]: This is the current design of the API in the spec. I will revisit to confirm if this is the desired signature.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationAdministration.#GetAllInactiveUserState(System.DateTime,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"[....]: This is the current design of the API in the spec. I will revisit to confirm if this is the desired signature.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationAdministration.#GetAllState(System.Web.UI.WebControls.WebParts.PersonalizationScope,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"[....]: This is the current design of the API in the spec. I will revisit to confirm if this is the desired signature.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationAdministration.#ResetState(System.Web.UI.WebControls.WebParts.PersonalizationStateInfoCollection)", Justification = @"[....]: This method should only take the strongly-typed collection, not any ICollection.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#Clear()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#get_Count()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#GetEnumerator()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#get_IsFixedSize()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#get_IsReadOnly()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#get_IsSynchronized()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#get_Keys()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#get_SyncRoot()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"[....]: The strongly-typed version is protected virtual.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.Add(System.Object,System.Object)", Justification = @"[....]: The strongly-typed versions of these methods are virtual.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.Add(System.Object,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.Contains(System.Object)", Justification = @"[....]: The strongly-typed versions of these methods are virtual.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.Contains(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.get_Item(System.Object)", Justification = @"[....]: The strongly-typed versions of these methods are virtual.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.get_Item(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.set_Item(System.Object,System.Object)", Justification = @"[....]: The strongly-typed versions of these methods are virtual.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.set_Item(System.Object,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.Remove(System.Object)", Justification = @"[....]: The strongly-typed versions of these methods are virtual.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.Remove(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IEnumerable.GetEnumerator()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#get_Values()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationProvider.#DetermineUserCapabilities(System.Web.UI.WebControls.WebParts.WebPartManager)", Justification = @"[....]: This method is intended to take only a WebPartManager as an argument.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationProvider.#FindState(System.Web.UI.WebControls.WebParts.PersonalizationScope,System.Web.UI.WebControls.WebParts.PersonalizationStateQuery,System.Int32,System.Int32,System.Int32&)", MessageId = "4#", Justification = @"[....]: This is the current design of the API in the spec. I will revisit to confirm if this is the desired signature.")]
-[module: SuppressMessage("Microsoft.Design", "CA1045:DoNotPassTypesByReference", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationProvider.#LoadPersonalizationBlobs(System.Web.UI.WebControls.WebParts.WebPartManager,System.String,System.String,System.Byte[]&,System.Byte[]&)", MessageId = "3#", Justification = @"[....]: We are happy with the API as currently designed, even though it passes parameters by reference.")]
-[module: SuppressMessage("Microsoft.Design", "CA1045:DoNotPassTypesByReference", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationProvider.#LoadPersonalizationBlobs(System.Web.UI.WebControls.WebParts.WebPartManager,System.String,System.String,System.Byte[]&,System.Byte[]&)", MessageId = "4#", Justification = @"[....]: We are happy with the API as currently designed, even though it passes parameters by reference.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationProviderCollection.#Add(System.Configuration.Provider.ProviderBase)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationState.#GetAuthorizationFilter(System.String)", MessageId = "0#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationState.#SetWebPartDirty(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"[....]: It would not make sense to change this to a property.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationStateInfoCollection.#Add(System.Web.UI.WebControls.WebParts.PersonalizationStateInfo)", Justification = @"[....]: This method throws an ArgumentException if an exception is thrown from Hashtable.Add(). Hashtable.Add() should never throw a non-CLSCompliant exception.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationStateInfoCollection.#get_Count()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationStateInfoCollection.#GetEnumerator()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationStateInfoCollection.#get_IsSynchronized()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1023:IndexersShouldNotBeMultidimensional", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationStateInfoCollection.#Item[System.String,System.String]", Justification = @"[....]: This is the current design of the API in the spec. I will revisit to confirm if this is the desired signature.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationStateInfoCollection.#get_SyncRoot()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationStateInfoCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart.#ApplyChanges()", Justification = @"[....]: We catch any exception that is thrown, and render an error message in the EditorPart. If a non-CLSCompliant exception is thrown, it will bubble up and crash the page. This is fine.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart.#ApplyChanges()", Justification = @"[....]: Per DmityrR, we should exclude all violations of this rule since the framework makes no guarantee about what exceptions may be thrown.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart+DesignModeWebPart.#get_BoolProperty()", Justification = @"[....]: These properties are needed so the PropertyGridEditorPart will render sample UI at design time.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart+DesignModeWebPart.#set_BoolProperty(System.Boolean)", Justification = @"[....]: These properties are needed so the PropertyGridEditorPart will render sample UI at design time.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart+DesignModeWebPart.#get_EnumProperty()", Justification = @"[....]: These properties are needed so the PropertyGridEditorPart will render sample UI at design time.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart+DesignModeWebPart.#set_EnumProperty(System.Web.UI.WebControls.WebParts.PropertyGridEditorPart+DesignModeWebPart+SampleEnum)", Justification = @"[....]: These properties are needed so the PropertyGridEditorPart will render sample UI at design time.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart+DesignModeWebPart.#get_StringProperty()", Justification = @"[....]: These properties are needed so the PropertyGridEditorPart will render sample UI at design time.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart+DesignModeWebPart.#set_StringProperty(System.String)", Justification = @"[....]: These properties are needed so the PropertyGridEditorPart will render sample UI at design time.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPart.#.ctor(System.String,System.String,System.String,System.String)", Justification = @"[....]: The ID property is overriden and sealed in these classes, so I do not think it should be a violation to set this property in the constructor, since the property is sealed. I have sent mail to fxcopbug to see if it is a bug in the FxCop tool, and I am excluding these violations for now.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPart.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "0#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPart.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "3#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPart.#.ctor(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"[....]: The ID property is overriden and sealed in these classes, so I do not think it should be a violation to set this property in the constructor, since the property is sealed. I have sent mail to fxcopbug to see if it is a bug in the FxCop tool, and I am excluding these violations for now.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPart.#GenericWebPartID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPart.#OriginalID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPartConnectionCollection.#OnClear()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPartConnectionCollection.#OnInsert(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPartConnectionCollection.#OnRemove(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPartConnectionCollection.#OnSet(System.Int32,System.Object,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPartConnectionCollection.#OnValidate(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPartManager.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.RowToFieldTransformer+RowToFieldConfigurationWizard.#CreateWizardSteps()", MessageId = "System.Web.UI.LiteralControl.#ctor(System.String)", Justification = @"[....]: The literal string is a space ("" "") which is valid for all cultures.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.RowToParametersTransformer.#ConsumerFieldNames", Justification = @"[....]: By design, the property is a get/set string array, like the RoleGroup.Roles property.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.RowToParametersTransformer.#ConsumerFieldNames", Justification = @"[....]: By design, the property is a get/set string array, like the RoleGroup.Roles property.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.RowToParametersTransformer.#ProviderFieldNames", Justification = @"[....]: By design, the property is a get/set string array, like the RoleGroup.Roles property.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.RowToParametersTransformer.#ProviderFieldNames", Justification = @"[....]: By design, the property is a get/set string array, like the RoleGroup.Roles property.")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.RowToParametersTransformer+RowToParametersConfigurationWizard.#CreateWizardSteps()", MessageId = "System.Web.UI.LiteralControl.#ctor(System.String)", Justification = @"[....]: This string '<br />' does not need to be localized.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.SharedPersonalizationStateInfo.#.ctor(System.String,System.DateTime,System.Int32,System.Int32,System.Int32)", MessageId = "3#", Justification = @"[....]: The names should be correct according to their context in the APIs and they are what currently being specified in the spec.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.SharedPersonalizationStateInfo.#.ctor(System.String,System.DateTime,System.Int32,System.Int32,System.Int32)", MessageId = "Personalizations", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.SharedPersonalizationStateInfo.#.ctor(System.String,System.DateTime,System.Int32,System.Int32,System.Int32)", MessageId = "4#", Justification = @"[....]: The names should be correct according to their context in the APIs and they are what currently being specified in the spec.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.SharedPersonalizationStateInfo.#.ctor(System.String,System.DateTime,System.Int32,System.Int32,System.Int32)", MessageId = "Personalizations", Justification = @"[....]: Spellings ok")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.SharedPersonalizationStateInfo.#CountOfPersonalizations", Justification = @"[....]: The names should be correct according to their context in the APIs and they are what currently being specified in the spec.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.SharedPersonalizationStateInfo.#SizeOfPersonalizations", Justification = @"[....]: The names should be correct according to their context in the APIs and they are what currently being specified in the spec.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ToolZone.#OnDisplayModeChanged(System.Object,System.Web.UI.WebControls.WebParts.WebPartDisplayModeEventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ToolZone.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ToolZone.#OnSelectedWebPartChanged(System.Object,System.Web.UI.WebControls.WebParts.WebPartEventArgs)", MessageId = "1#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ToolZone.#RaisePostBackEvent(System.String)", Justification = @"[....]: RaisePostBackEvent is a method, not an event.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.TransformerTypeCollection", Justification = @"[....]: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.TransformerTypeCollection.#Empty", Justification = @"[....]: TransformerTypeCollection is a ReadOnlyCollection, which is an immutable type.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.UnauthorizedWebPart.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "0#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.UnauthorizedWebPart.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "3#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebBrowsableAttribute", Justification = @"[....]: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebBrowsableAttribute.#Default", Justification = @"[....]: WebBrowsableAttribute is immutable, so this can be safely ignored.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebBrowsableAttribute.#Equals(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebBrowsableAttribute.#GetHashCode()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebBrowsableAttribute.#IsDefaultAttribute()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebBrowsableAttribute.#No", Justification = @"[....]: WebBrowsableAttribute is immutable, so this can be safely ignored.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebBrowsableAttribute.#Yes", Justification = @"[....]: WebBrowsableAttribute is immutable, so this can be safely ignored.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebDescriptionAttribute", Justification = @"[....]: Must be unsealed to allow for localization.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebDescriptionAttribute", Justification = @"[....]: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebDescriptionAttribute.#Default", Justification = @"[....]: WebDescriptionAttribute is immutable.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebDescriptionAttribute.#Equals(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebDescriptionAttribute.#GetHashCode()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebDescriptionAttribute.#IsDefaultAttribute()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebDisplayNameAttribute", Justification = @"[....]: Must be unsealed to allow for localization.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebDisplayNameAttribute", Justification = @"[....]: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebDisplayNameAttribute.#Default", Justification = @"[....]: WebDisplayNameAttribute is immutable.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebDisplayNameAttribute.#Equals(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebDisplayNameAttribute.#GetHashCode()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebDisplayNameAttribute.#IsDefaultAttribute()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPart.#HelpUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPart.#OnClosing(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPart.#OnConnectModeChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPart.#OnDeleting(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPart.#OnEditModeChanged(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPart.#SetPersonalizationDirty(System.Web.UI.Control)", Justification = @"[....]: This would not be appropriate as a property.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartChrome.#GetWebPartChromeClientID(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartChrome.#GetWebPartTitleClientID(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnection.#ConsumerConnectionPointID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnection.#ConsumerID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnection.#ID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnection.#ProviderConnectionPointID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnection.#ProviderID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnectionCollection.#OnClear()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnectionCollection.#OnInsert(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnectionCollection.#OnRemove(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnectionCollection.#OnSet(System.Int32,System.Object,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnectionCollection.#OnValidate(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartDescription.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "3#", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartDescription.#CatalogIconImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartDescription.#ID", Justification = @"[....]: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepBase.#OnLoad(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#Clear()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#get_Count()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#GetEnumerator()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#get_IsReadOnly()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#get_IsSynchronized()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#RemoveAt(System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#get_SyncRoot()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.IList.Add(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.IList.Contains(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.IList.IndexOf(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.IList.Insert(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.IList.get_IsFixedSize()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.IList.get_Item(System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.IList.set_Item(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WizardStepCollection.#System.Collections.IList.Remove(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.Xml.#GetDesignModeState()", Justification = @"tinghaoy: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.Xml.#GetDesignModeState()", Justification = @"tinghaoy: The security attribute at the method level is more secured than the type one, therefore the LinkDemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#System.Web.UI.IDataSource.add_DataSourceChanged(System.EventHandler)", Justification = @"elipton: Components should only use these events through the IDataSource and IHierarchicalDataSource interfaces.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#System.Web.UI.IDataSource.remove_DataSourceChanged(System.EventHandler)", Justification = @"elipton: Components should only use these events through the IDataSource and IHierarchicalDataSource interfaces.")]
+[module: SuppressMessage("Microsoft.Design", "CA1059:MembersShouldNotExposeCertainConcreteTypes", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#GetXmlDocument()", MessageId = "System.Xml.XmlNode", Justification = @"elipton: This method is specifically supposed to return an XmlDocument, so it is the appropriate return type.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#GetXmlDocument()", Justification = @"elipton: This is just a rename of an old method - it is an expensive operation to perform, so it is a method.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#OnTransforming(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#System.ComponentModel.IListSource.get_ContainsListCollection()", Justification = @"elipton: These would never need to be overridden by a derived class. They are mostly just there for v1 controls to use.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#System.ComponentModel.IListSource.get_ContainsListCollection()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#System.ComponentModel.IListSource.GetList()", Justification = @"elipton: These would never need to be overridden by a derived class. They are mostly just there for v1 controls to use.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#System.ComponentModel.IListSource.GetList()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#System.Web.UI.IDataSource.GetView(System.String)", Justification = @"elipton: Components should only use these methods through the IDataSource interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.XmlDataSource.#System.Web.UI.IDataSource.GetViewNames()", Justification = @"elipton: Components should only use these methods through the IDataSource interface.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "type", Target = "System.Web.UI.WebControls.XmlHierarchicalEnumerable", Justification = @"elipton: This is a special type of IEnumerable that adds hierarchical functionality, it is not really a collection (or queue or stack).")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.XmlHierarchyData.#ToString()", Justification = @"phuff: Assigned to elipton")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Adapters.MenuAdapter.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.Adapters.MenuAdapter.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.Adapters.MenuAdapter.#RaisePostBackEvent(System.String)", Justification = @"bleroy: Not an event. Here to raise events.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.AppearanceEditorPart.#ApplyChanges()", Justification = @"mharder: We catch any exception that is thrown, and render an error message in the EditorPart. If a non-CLSCompliant exception is thrown, it will bubble up and crash the page. This is fine.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.AppearanceEditorPart.#ApplyChanges()", Justification = @"mharder: Per DmityrR, we should exclude all violations of this rule since the framework makes no guarantee about what exceptions may be thrown.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.AppearanceEditorPart.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.BehaviorEditorPart.#ApplyChanges()", Justification = @"mharder: We catch any exception that is thrown, and render an error message in the EditorPart. If a non-CLSCompliant exception is thrown, it will bubble up and crash the page. This is fine.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.BehaviorEditorPart.#ApplyChanges()", Justification = @"mharder: Per DmityrR, we should exclude all violations of this rule since the framework makes no guarantee about what exceptions may be thrown.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.BehaviorEditorPart.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.BlobPersonalizationState.#DeserializeData(System.Byte[])", Justification = @"mharder: This method wraps a thrown exception in an ArgumentException. If a non-CLSCompliant exception is thrown, it will bubble up without being wrapped in an ArgumentException, which is fine.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.BlobPersonalizationState.#DeserializeData(System.Byte[])", Justification = @"mharder: This was added for consistency and as defense-in-depth. VSWhidbey 427533.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.BlobPersonalizationState.#SerializeData(System.Collections.IDictionary)", Justification = @"mharder: This was added for consistency and as defense-in-depth. VSWhidbey 491449.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogPart.#GetAvailableWebPartDescriptions()", Justification = @"bleroy: This is by design")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogPart.#GetDesignModeState()", Justification = @"mharder: The security attribute at the method level is more secured than the type one, therefore the linkdemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogPart.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogPart.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"tinghaoy: The security attribute at the method level is more secured than the type one, therefore the linkdemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogPartChrome.#RenderPartContents(System.Web.UI.HtmlTextWriter,System.Web.UI.WebControls.WebParts.CatalogPart)", Justification = @"mharder: The type of this parameter should be CatalogPart, since this method is only intended to be called on CatalogPart controls, not on an arbitrary Control.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.CatalogPartCollection", Justification = @"mharder: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogPartCollection.#Empty", Justification = @"mharder: CatalogPartCollection is immutable.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogZoneBase.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogZoneBase.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogZoneBase.#RaisePostBackEvent(System.String)", Justification = @"mharder: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogZoneBase.#SelectedCatalogPartID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.CatalogZoneBase.#System.Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent()", Justification = @"mharder: This class does not provide any implementation for this interface method.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.ConnectionConsumerAttribute", Justification = @"mharder: Attribute must be unsealed to allow for localization.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionConsumerAttribute.#ID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.ConnectionInterfaceCollection", Justification = @"mharder: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionInterfaceCollection.#Empty", Justification = @"mharder: ConnectionInterfaceCollection is a ReadOnlyCollection, which is an immutable type.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.ConnectionPoint", Justification = @"mharder: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionPoint.#DefaultID", Justification = @"mharder: ID is capitalized for compatibility with V1 naming.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionPoint.#ID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.ConnectionProviderAttribute", Justification = @"mharder: Attribute must be unsealed to allow for localization.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionProviderAttribute.#ID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionsZone.#OnDisplayModeChanged(System.Object,System.Web.UI.WebControls.WebParts.WebPartDisplayModeEventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionsZone.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionsZone.#OnSelectedWebPartChanged(System.Object,System.Web.UI.WebControls.WebParts.WebPartEventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ConnectionsZone.#RaisePostBackEvent(System.String)", Justification = @"bleroy: This method is the one that raises the actual events.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorPart.#GetDesignModeState()", Justification = @"mharder: The security attribute at the method level is more secured than the type one, therefore the linkdemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorPart.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorPart.#SetDesignModeState(System.Collections.IDictionary)", Justification = @"tinghaoy: The security attribute at the method level is more secured than the type one, therefore the linkdemand is not necessary.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorPartChrome.#RenderPartContents(System.Web.UI.HtmlTextWriter,System.Web.UI.WebControls.WebParts.EditorPart)", Justification = @"mharder: This method is intended to be called only on EditorParts.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.EditorPartCollection", Justification = @"mharder: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorPartCollection.#Empty", Justification = @"mharder: EditorPartCollection is immutable.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorZoneBase.#OnDisplayModeChanged(System.Object,System.Web.UI.WebControls.WebParts.WebPartDisplayModeEventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorZoneBase.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorZoneBase.#OnSelectedWebPartChanged(System.Object,System.Web.UI.WebControls.WebParts.WebPartEventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.EditorZoneBase.#RaisePostBackEvent(System.String)", Justification = @"mharder: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ErrorWebPart.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "0#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ErrorWebPart.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "3#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ErrorWebPart.#System.Web.UI.WebControls.WebParts.ITrackingPersonalizable.BeginLoad()", Justification = @"mharder: Our implementation of BeginLoad() is empty, and this is unlikely to change in the future.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ErrorWebPart.#System.Web.UI.WebControls.WebParts.ITrackingPersonalizable.BeginSave()", Justification = @"mharder: Our implementation of BeginSave() is empty, and this is unlikely to change in the future.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ErrorWebPart.#System.Web.UI.WebControls.WebParts.ITrackingPersonalizable.EndLoad()", Justification = @"mharder: Derived types should use EndLoadPersonalization().")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ErrorWebPart.#System.Web.UI.WebControls.WebParts.ITrackingPersonalizable.EndSave()", Justification = @"mharder: Our implementation of EndSave() is empty, and this is unlikely to change in the future.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ErrorWebPart.#System.Web.UI.WebControls.WebParts.ITrackingPersonalizable.get_TracksChanges()", Justification = @"mharder: Our implementation of TracksChanges just returns true, so derived types should not need to call the base implementation.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.GenericWebPart.#.ctor(System.Web.UI.Control)", Justification = @"mharder: The ID property is overriden and sealed in these classes, so I do not think it should be a violation to set this property in the constructor, since the property is sealed. I have sent mail to fxcopbug to see if it is a bug in the FxCop tool, and I am excluding these violations for now.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ImportCatalogPart.#CreateAvailableWebPartDescriptions()", Justification = @"bleroy: It has been carefully reviewed several times and this code will soon be deleted and replaced by a call to WebPartImport anyway.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ImportCatalogPart.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ImportCatalogPart.#OnUpload(System.Object,System.EventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.IPersonalizable", MessageId = "Personalizable", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.ITrackingPersonalizable", MessageId = "Personalizable", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.IVersioningPersonalizable", MessageId = "Personalizable", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.IWebPart.#CatalogIconImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.IWebPart.#TitleIconImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.IWebPart.#TitleUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.LayoutEditorPart.#ApplyChanges()", Justification = @"mharder: We catch any exception that is thrown, and render an error message in the EditorPart. If a non-CLSCompliant exception is thrown, it will bubble up and crash the page. This is fine.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.LayoutEditorPart.#ApplyChanges()", Justification = @"mharder: Per DmityrR, we should exclude all violations of this rule since the framework makes no guarantee about what exceptions may be thrown.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.LayoutEditorPart.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PageCatalogPart.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PageCatalogPart.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.Part.#System.Web.UI.WebControls.ICompositeControlDesignerAccessor.RecreateChildControls()", Justification = @"nikhilko: Protected method not needed as we call EnsureChildControls which calls CreateChildControls which is protected and overridable.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute", MessageId = "Personalizable", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute", Justification = @"mharder: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#.ctor(System.Boolean)", MessageId = "Personalizable", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#Default", Justification = @"nikhilko: Verified non-mutable")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#Equals(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#GetHashCode()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#GetPersonalizableProperties(System.Type)", MessageId = "Personalizable", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#IsDefaultAttribute()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#IsPersonalizable", MessageId = "Personalizable", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#Match(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#NotPersonalizable", Justification = @"nikhilko: Verified non-mutable")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#NotPersonalizable", MessageId = "Personalizable", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#Personalizable", Justification = @"nikhilko: Verified non-mutable")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#Personalizable", MessageId = "Personalizable", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#SharedPersonalizable", Justification = @"nikhilko: Verified non-mutable")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#SharedPersonalizable", MessageId = "Personalizable", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#UserPersonalizable", Justification = @"nikhilko: Verified non-mutable")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizableAttribute.#UserPersonalizable", MessageId = "Personalizable", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationAdministration.#FindInactiveUserState(System.String,System.String,System.DateTime,System.Int32,System.Int32,System.Int32&)", MessageId = "5#", Justification = @"ftse: This is the current design of the API in the spec. I will revisit to confirm if this is the desired signature.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationAdministration.#FindSharedState(System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"ftse: This is the current design of the API in the spec. I will revisit to confirm if this is the desired signature.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationAdministration.#FindUserState(System.String,System.String,System.Int32,System.Int32,System.Int32&)", MessageId = "4#", Justification = @"ftse: This is the current design of the API in the spec. I will revisit to confirm if this is the desired signature.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationAdministration.#GetAllInactiveUserState(System.DateTime,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"ftse: This is the current design of the API in the spec. I will revisit to confirm if this is the desired signature.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationAdministration.#GetAllState(System.Web.UI.WebControls.WebParts.PersonalizationScope,System.Int32,System.Int32,System.Int32&)", MessageId = "3#", Justification = @"ftse: This is the current design of the API in the spec. I will revisit to confirm if this is the desired signature.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationAdministration.#ResetState(System.Web.UI.WebControls.WebParts.PersonalizationStateInfoCollection)", Justification = @"mharder: This method should only take the strongly-typed collection, not any ICollection.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#Clear()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#get_Count()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#GetEnumerator()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#get_IsFixedSize()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#get_IsReadOnly()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#get_IsSynchronized()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#get_Keys()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#get_SyncRoot()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"mharder: The strongly-typed version is protected virtual.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.Add(System.Object,System.Object)", Justification = @"mharder: The strongly-typed versions of these methods are virtual.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.Add(System.Object,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.Contains(System.Object)", Justification = @"mharder: The strongly-typed versions of these methods are virtual.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.Contains(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.get_Item(System.Object)", Justification = @"mharder: The strongly-typed versions of these methods are virtual.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.get_Item(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.set_Item(System.Object,System.Object)", Justification = @"mharder: The strongly-typed versions of these methods are virtual.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.set_Item(System.Object,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.Remove(System.Object)", Justification = @"mharder: The strongly-typed versions of these methods are virtual.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IDictionary.Remove(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#System.Collections.IEnumerable.GetEnumerator()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationDictionary.#get_Values()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationProvider.#DetermineUserCapabilities(System.Web.UI.WebControls.WebParts.WebPartManager)", Justification = @"mharder: This method is intended to take only a WebPartManager as an argument.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationProvider.#FindState(System.Web.UI.WebControls.WebParts.PersonalizationScope,System.Web.UI.WebControls.WebParts.PersonalizationStateQuery,System.Int32,System.Int32,System.Int32&)", MessageId = "4#", Justification = @"ftse: This is the current design of the API in the spec. I will revisit to confirm if this is the desired signature.")]
+[module: SuppressMessage("Microsoft.Design", "CA1045:DoNotPassTypesByReference", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationProvider.#LoadPersonalizationBlobs(System.Web.UI.WebControls.WebParts.WebPartManager,System.String,System.String,System.Byte[]&,System.Byte[]&)", MessageId = "3#", Justification = @"mharder: We are happy with the API as currently designed, even though it passes parameters by reference.")]
+[module: SuppressMessage("Microsoft.Design", "CA1045:DoNotPassTypesByReference", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationProvider.#LoadPersonalizationBlobs(System.Web.UI.WebControls.WebParts.WebPartManager,System.String,System.String,System.Byte[]&,System.Byte[]&)", MessageId = "4#", Justification = @"mharder: We are happy with the API as currently designed, even though it passes parameters by reference.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationProviderCollection.#Add(System.Configuration.Provider.ProviderBase)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationState.#GetAuthorizationFilter(System.String)", MessageId = "0#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationState.#SetWebPartDirty(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"mharder: It would not make sense to change this to a property.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationStateInfoCollection.#Add(System.Web.UI.WebControls.WebParts.PersonalizationStateInfo)", Justification = @"mharder: This method throws an ArgumentException if an exception is thrown from Hashtable.Add(). Hashtable.Add() should never throw a non-CLSCompliant exception.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationStateInfoCollection.#get_Count()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationStateInfoCollection.#GetEnumerator()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationStateInfoCollection.#get_IsSynchronized()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1023:IndexersShouldNotBeMultidimensional", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationStateInfoCollection.#Item[System.String,System.String]", Justification = @"ftse: This is the current design of the API in the spec. I will revisit to confirm if this is the desired signature.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationStateInfoCollection.#get_SyncRoot()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PersonalizationStateInfoCollection.#System.Collections.ICollection.CopyTo(System.Array,System.Int32)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart.#ApplyChanges()", Justification = @"mharder: We catch any exception that is thrown, and render an error message in the EditorPart. If a non-CLSCompliant exception is thrown, it will bubble up and crash the page. This is fine.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart.#ApplyChanges()", Justification = @"mharder: Per DmityrR, we should exclude all violations of this rule since the framework makes no guarantee about what exceptions may be thrown.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart+DesignModeWebPart.#get_BoolProperty()", Justification = @"mharder: These properties are needed so the PropertyGridEditorPart will render sample UI at design time.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart+DesignModeWebPart.#set_BoolProperty(System.Boolean)", Justification = @"mharder: These properties are needed so the PropertyGridEditorPart will render sample UI at design time.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart+DesignModeWebPart.#get_EnumProperty()", Justification = @"mharder: These properties are needed so the PropertyGridEditorPart will render sample UI at design time.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart+DesignModeWebPart.#set_EnumProperty(System.Web.UI.WebControls.WebParts.PropertyGridEditorPart+DesignModeWebPart+SampleEnum)", Justification = @"mharder: These properties are needed so the PropertyGridEditorPart will render sample UI at design time.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart+DesignModeWebPart.#get_StringProperty()", Justification = @"mharder: These properties are needed so the PropertyGridEditorPart will render sample UI at design time.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.PropertyGridEditorPart+DesignModeWebPart.#set_StringProperty(System.String)", Justification = @"mharder: These properties are needed so the PropertyGridEditorPart will render sample UI at design time.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPart.#.ctor(System.String,System.String,System.String,System.String)", Justification = @"mharder: The ID property is overriden and sealed in these classes, so I do not think it should be a violation to set this property in the constructor, since the property is sealed. I have sent mail to fxcopbug to see if it is a bug in the FxCop tool, and I am excluding these violations for now.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPart.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "0#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPart.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "3#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPart.#.ctor(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"mharder: The ID property is overriden and sealed in these classes, so I do not think it should be a violation to set this property in the constructor, since the property is sealed. I have sent mail to fxcopbug to see if it is a bug in the FxCop tool, and I am excluding these violations for now.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPart.#GenericWebPartID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPart.#OriginalID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPartConnectionCollection.#OnClear()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPartConnectionCollection.#OnInsert(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPartConnectionCollection.#OnRemove(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPartConnectionCollection.#OnSet(System.Int32,System.Object,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPartConnectionCollection.#OnValidate(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ProxyWebPartManager.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.RowToFieldTransformer+RowToFieldConfigurationWizard.#CreateWizardSteps()", MessageId = "System.Web.UI.LiteralControl.#ctor(System.String)", Justification = @"mharder: The literal string is a space ("" "") which is valid for all cultures.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.RowToParametersTransformer.#ConsumerFieldNames", Justification = @"mharder: By design, the property is a get/set string array, like the RoleGroup.Roles property.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.RowToParametersTransformer.#ConsumerFieldNames", Justification = @"mharder: By design, the property is a get/set string array, like the RoleGroup.Roles property.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.RowToParametersTransformer.#ProviderFieldNames", Justification = @"mharder: By design, the property is a get/set string array, like the RoleGroup.Roles property.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.RowToParametersTransformer.#ProviderFieldNames", Justification = @"mharder: By design, the property is a get/set string array, like the RoleGroup.Roles property.")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.RowToParametersTransformer+RowToParametersConfigurationWizard.#CreateWizardSteps()", MessageId = "System.Web.UI.LiteralControl.#ctor(System.String)", Justification = @"mharder: This string '<br />' does not need to be localized.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.SharedPersonalizationStateInfo.#.ctor(System.String,System.DateTime,System.Int32,System.Int32,System.Int32)", MessageId = "3#", Justification = @"ftse: The names should be correct according to their context in the APIs and they are what currently being specified in the spec.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.SharedPersonalizationStateInfo.#.ctor(System.String,System.DateTime,System.Int32,System.Int32,System.Int32)", MessageId = "Personalizations", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.SharedPersonalizationStateInfo.#.ctor(System.String,System.DateTime,System.Int32,System.Int32,System.Int32)", MessageId = "4#", Justification = @"ftse: The names should be correct according to their context in the APIs and they are what currently being specified in the spec.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.SharedPersonalizationStateInfo.#.ctor(System.String,System.DateTime,System.Int32,System.Int32,System.Int32)", MessageId = "Personalizations", Justification = @"phuff: Spellings ok")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.SharedPersonalizationStateInfo.#CountOfPersonalizations", Justification = @"ftse: The names should be correct according to their context in the APIs and they are what currently being specified in the spec.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.SharedPersonalizationStateInfo.#SizeOfPersonalizations", Justification = @"ftse: The names should be correct according to their context in the APIs and they are what currently being specified in the spec.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ToolZone.#OnDisplayModeChanged(System.Object,System.Web.UI.WebControls.WebParts.WebPartDisplayModeEventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ToolZone.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ToolZone.#OnSelectedWebPartChanged(System.Object,System.Web.UI.WebControls.WebParts.WebPartEventArgs)", MessageId = "1#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.ToolZone.#RaisePostBackEvent(System.String)", Justification = @"mharder: RaisePostBackEvent is a method, not an event.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.TransformerTypeCollection", Justification = @"mharder: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.TransformerTypeCollection.#Empty", Justification = @"mharder: TransformerTypeCollection is a ReadOnlyCollection, which is an immutable type.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.UnauthorizedWebPart.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "0#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.UnauthorizedWebPart.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "3#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebBrowsableAttribute", Justification = @"mharder: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebBrowsableAttribute.#Default", Justification = @"mharder: WebBrowsableAttribute is immutable, so this can be safely ignored.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebBrowsableAttribute.#Equals(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebBrowsableAttribute.#GetHashCode()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebBrowsableAttribute.#IsDefaultAttribute()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebBrowsableAttribute.#No", Justification = @"mharder: WebBrowsableAttribute is immutable, so this can be safely ignored.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebBrowsableAttribute.#Yes", Justification = @"mharder: WebBrowsableAttribute is immutable, so this can be safely ignored.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebDescriptionAttribute", Justification = @"mharder: Must be unsealed to allow for localization.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebDescriptionAttribute", Justification = @"mharder: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebDescriptionAttribute.#Default", Justification = @"mharder: WebDescriptionAttribute is immutable.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebDescriptionAttribute.#Equals(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebDescriptionAttribute.#GetHashCode()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebDescriptionAttribute.#IsDefaultAttribute()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebDisplayNameAttribute", Justification = @"mharder: Must be unsealed to allow for localization.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebDisplayNameAttribute", Justification = @"mharder: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebDisplayNameAttribute.#Default", Justification = @"mharder: WebDisplayNameAttribute is immutable.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebDisplayNameAttribute.#Equals(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebDisplayNameAttribute.#GetHashCode()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebDisplayNameAttribute.#IsDefaultAttribute()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPart.#HelpUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPart.#OnClosing(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPart.#OnConnectModeChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPart.#OnDeleting(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPart.#OnEditModeChanged(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPart.#SetPersonalizationDirty(System.Web.UI.Control)", Justification = @"mharder: This would not be appropriate as a property.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartChrome.#GetWebPartChromeClientID(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartChrome.#GetWebPartTitleClientID(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnection.#ConsumerConnectionPointID", Justification = @"mharder: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnection.#ConsumerID", Justification = @"mharder: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnection.#ID", Justification = @"mharder: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnection.#ProviderConnectionPointID", Justification = @"mharder: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnection.#ProviderID", Justification = @"mharder: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnectionCollection.#OnClear()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnectionCollection.#OnInsert(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnectionCollection.#OnRemove(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnectionCollection.#OnSet(System.Int32,System.Object,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartConnectionCollection.#OnValidate(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartDescription.#.ctor(System.String,System.String,System.String,System.String)", MessageId = "3#", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartDescription.#CatalogIconImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartDescription.#ID", Justification = @"phuff: ""ID"" ok for ASP.NET")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebPartDisplayModeCancelEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Design", "CA1039:ListsAreStronglyTyped", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebPartDisplayModeCollection", Justification = @"[....]: This collection is designed to be add-only. We could add a strongly-typed Remove() method that throws if desired.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartDisplayModeCollection.#OnClear()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartDisplayModeCollection.#OnInsert(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartDisplayModeCollection.#OnRemove(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartDisplayModeCollection.#OnSet(System.Int32,System.Object,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartDisplayModeCollection.#OnValidate(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Design", "CA1039:ListsAreStronglyTyped", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebPartDisplayModeCollection", Justification = @"mharder: This collection is designed to be add-only. We could add a strongly-typed Remove() method that throws if desired.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartDisplayModeCollection.#OnClear()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartDisplayModeCollection.#OnInsert(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartDisplayModeCollection.#OnRemove(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartDisplayModeCollection.#OnSet(System.Int32,System.Object,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartDisplayModeCollection.#OnValidate(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebPartDisplayModeEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebPartEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebPartManager", Justification = @"[....]: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#BrowseDisplayMode", Justification = @"[....]: The WebPartDisplayMode type is immutable.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#CatalogDisplayMode", Justification = @"[....]: The WebPartDisplayMode type is immutable.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#ConnectDisplayMode", Justification = @"[....]: The WebPartDisplayMode type is immutable.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#CopyWebPart(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"[....]: This method is only intended to be called on WebParts.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#CreateDynamicConnectionID()", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#CreateDynamicWebPartID(System.Type)", Justification = @"[....]: This method is intended to be called with a Type parameter representing the Type of the WebPart.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#CreateDynamicWebPartID(System.Type)", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#CreateErrorWebPart(System.String,System.String,System.String,System.String,System.String)", MessageId = "0#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#CreateErrorWebPart(System.String,System.String,System.String,System.String,System.String)", MessageId = "3#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#DesignDisplayMode", Justification = @"[....]: The WebPartDisplayMode type is immutable.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#EditDisplayMode", Justification = @"[....]: The WebPartDisplayMode type is immutable.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#GetExportUrl(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"[....]: We don't want people to call that on any control. It only makes sense on a WebPart.")]
-[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#GetExportUrl(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"[....]: Like in ResolveClientUrl, we want to return a string, not a Uri, for direct output to the page.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#ImportFromReader(System.Collections.IDictionary,System.Web.UI.Control,System.Xml.XmlReader)", Justification = @"[....]: It's been carefully reviewed several times.")]
-[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#ImportWebPart(System.Xml.XmlReader,System.String&)", MessageId = "1#", Justification = @"[....]: This API will only be used by implementers of an import catalog part. The out parameter is to get an error message back, and getting rid of it would make the API clumsier. Furthermore, the technical level of users who will actually need to call this method should be high enough that they know how to use an out parameter.")]
-[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#ImportWebPart(System.Xml.XmlReader,System.String&)", Justification = @"[....]: It's been carefully reviewed several times.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnAuthorizeWebPart(System.Web.UI.WebControls.WebParts.WebPartAuthorizationEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnConnectionsActivated(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnConnectionsActivating(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnDisplayModeChanged(System.Web.UI.WebControls.WebParts.WebPartDisplayModeEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnDisplayModeChanging(System.Web.UI.WebControls.WebParts.WebPartDisplayModeCancelEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnSelectedWebPartChanged(System.Web.UI.WebControls.WebParts.WebPartEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnSelectedWebPartChanging(System.Web.UI.WebControls.WebParts.WebPartCancelEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnUnload(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartAdded(System.Web.UI.WebControls.WebParts.WebPartEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartAdding(System.Web.UI.WebControls.WebParts.WebPartAddingEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartClosed(System.Web.UI.WebControls.WebParts.WebPartEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartClosing(System.Web.UI.WebControls.WebParts.WebPartCancelEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartDeleted(System.Web.UI.WebControls.WebParts.WebPartEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartDeleting(System.Web.UI.WebControls.WebParts.WebPartCancelEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartMoved(System.Web.UI.WebControls.WebParts.WebPartEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartMoving(System.Web.UI.WebControls.WebParts.WebPartMovingEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartsConnected(System.Web.UI.WebControls.WebParts.WebPartConnectionsEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartsConnecting(System.Web.UI.WebControls.WebParts.WebPartConnectionsCancelEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartsDisconnected(System.Web.UI.WebControls.WebParts.WebPartConnectionsEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartsDisconnecting(System.Web.UI.WebControls.WebParts.WebPartConnectionsCancelEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#SetSelectedWebPart(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"[....]: SelectedWebPart is a public get-only property. The SetSelectedWebPart() method is protected. We cannot use a mixed-accessibility property for this, because they are not CLS-compliant.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#System.Web.UI.WebControls.WebParts.IPersonalizable.get_IsDirty()", Justification = @"[....]: Have protected versions of these APIs with slightly different names.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#System.Web.UI.WebControls.WebParts.IPersonalizable.Load(System.Web.UI.WebControls.WebParts.PersonalizationDictionary)", Justification = @"[....]: Have protected versions of these APIs with slightly different names.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#System.Web.UI.WebControls.WebParts.IPersonalizable.Save(System.Web.UI.WebControls.WebParts.PersonalizationDictionary)", Justification = @"[....]: We have protected SaveCustomPersonalizationData and LoadCustomPersonalizatoinData methods.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManagerInternals.#GetZoneID(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"[....]: We have standardized on the use of ""ID"" instead of ""Id"".")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManagerInternals.#SetZoneID(System.Web.UI.WebControls.WebParts.WebPart,System.String)", Justification = @"[....]: We have standardized on the use of ""ID"" instead of ""Id"".")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManagerInternals.#SetZoneID(System.Web.UI.WebControls.WebParts.WebPart,System.String)", MessageId = "1#", Justification = @"[....]: We have standardized on the use of ""ID"" instead of ""Id"".")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetAttributes()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetClassName()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetComponentName()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetConverter()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetDefaultEvent()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetDefaultProperty()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEditor(System.Type)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEvents()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEvents(System.Attribute[])", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetProperties()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetProperties(System.Attribute[])", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetPropertyOwner(System.ComponentModel.PropertyDescriptor)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebPartPersonalization", Justification = @"[....]: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartPersonalization.#CopyPersonalizationState(System.Web.UI.WebControls.WebParts.WebPart,System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"[....]: This method is only intended to be called on WebParts.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartPersonalization.#EnterSharedScopeUserCapability", Justification = @"[....]: Verified non-mutable")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartPersonalization.#GetAuthorizationFilter(System.String)", MessageId = "0#", Justification = @"[....]: ""ID"" ok for ASP.NET")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartPersonalization.#ModifyStateUserCapability", Justification = @"[....]: Verified non-mutable")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartPersonalization.#SetDirty(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"[....]: This is a method to mark a personalizable object as dirty. It would not make sense as a property.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartTracker.#System.IDisposable.Dispose()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartTransformerCollection.#OnClear()", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartTransformerCollection.#OnInsert(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartTransformerCollection.#OnRemove(System.Int32,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartTransformerCollection.#OnSet(System.Int32,System.Object,System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartTransformerCollection.#OnValidate(System.Object)", Justification = @"[....]: Interfaces and base classes we don't own and can't add link demands to.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartVerb.#ID", Justification = @"[....]: We use ID, not Id.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartVerb.#ImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebPartVerbCollection", Justification = @"[....]: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
-[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartVerbCollection.#Empty", Justification = @"[....]: WebPartVerbCollection is immutable.")]
-[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartVerbsEventArgs.#Verbs", Justification = @"[....]: WebPartVerbCollection is a read-only collection, so this property must be get/set for event handlers to add verbs to the collection.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebPartManager", Justification = @"mharder: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#BrowseDisplayMode", Justification = @"mharder: The WebPartDisplayMode type is immutable.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#CatalogDisplayMode", Justification = @"mharder: The WebPartDisplayMode type is immutable.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#ConnectDisplayMode", Justification = @"mharder: The WebPartDisplayMode type is immutable.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#CopyWebPart(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"mharder: This method is only intended to be called on WebParts.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#CreateDynamicConnectionID()", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#CreateDynamicWebPartID(System.Type)", Justification = @"mharder: This method is intended to be called with a Type parameter representing the Type of the WebPart.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#CreateDynamicWebPartID(System.Type)", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#CreateErrorWebPart(System.String,System.String,System.String,System.String,System.String)", MessageId = "0#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#CreateErrorWebPart(System.String,System.String,System.String,System.String,System.String)", MessageId = "3#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#DesignDisplayMode", Justification = @"mharder: The WebPartDisplayMode type is immutable.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#EditDisplayMode", Justification = @"mharder: The WebPartDisplayMode type is immutable.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#GetExportUrl(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"bleroy: We don't want people to call that on any control. It only makes sense on a WebPart.")]
+[module: SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#GetExportUrl(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"bleroy: Like in ResolveClientUrl, we want to return a string, not a Uri, for direct output to the page.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#ImportFromReader(System.Collections.IDictionary,System.Web.UI.Control,System.Xml.XmlReader)", Justification = @"bleroy: It's been carefully reviewed several times.")]
+[module: SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#ImportWebPart(System.Xml.XmlReader,System.String&)", MessageId = "1#", Justification = @"bleroy: This API will only be used by implementers of an import catalog part. The out parameter is to get an error message back, and getting rid of it would make the API clumsier. Furthermore, the technical level of users who will actually need to call this method should be high enough that they know how to use an out parameter.")]
+[module: SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#ImportWebPart(System.Xml.XmlReader,System.String&)", Justification = @"bleroy: It's been carefully reviewed several times.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnAuthorizeWebPart(System.Web.UI.WebControls.WebParts.WebPartAuthorizationEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnConnectionsActivated(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnConnectionsActivating(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnDisplayModeChanged(System.Web.UI.WebControls.WebParts.WebPartDisplayModeEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnDisplayModeChanging(System.Web.UI.WebControls.WebParts.WebPartDisplayModeCancelEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnSelectedWebPartChanged(System.Web.UI.WebControls.WebParts.WebPartEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnSelectedWebPartChanging(System.Web.UI.WebControls.WebParts.WebPartCancelEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnUnload(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartAdded(System.Web.UI.WebControls.WebParts.WebPartEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartAdding(System.Web.UI.WebControls.WebParts.WebPartAddingEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartClosed(System.Web.UI.WebControls.WebParts.WebPartEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartClosing(System.Web.UI.WebControls.WebParts.WebPartCancelEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartDeleted(System.Web.UI.WebControls.WebParts.WebPartEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartDeleting(System.Web.UI.WebControls.WebParts.WebPartCancelEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartMoved(System.Web.UI.WebControls.WebParts.WebPartEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartMoving(System.Web.UI.WebControls.WebParts.WebPartMovingEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartsConnected(System.Web.UI.WebControls.WebParts.WebPartConnectionsEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartsConnecting(System.Web.UI.WebControls.WebParts.WebPartConnectionsCancelEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartsDisconnected(System.Web.UI.WebControls.WebParts.WebPartConnectionsEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#OnWebPartsDisconnecting(System.Web.UI.WebControls.WebParts.WebPartConnectionsCancelEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#SetSelectedWebPart(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"mharder: SelectedWebPart is a public get-only property. The SetSelectedWebPart() method is protected. We cannot use a mixed-accessibility property for this, because they are not CLS-compliant.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#System.Web.UI.WebControls.WebParts.IPersonalizable.get_IsDirty()", Justification = @"nikhilko: Have protected versions of these APIs with slightly different names.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#System.Web.UI.WebControls.WebParts.IPersonalizable.Load(System.Web.UI.WebControls.WebParts.PersonalizationDictionary)", Justification = @"mharder: Have protected versions of these APIs with slightly different names.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManager.#System.Web.UI.WebControls.WebParts.IPersonalizable.Save(System.Web.UI.WebControls.WebParts.PersonalizationDictionary)", Justification = @"mharder: We have protected SaveCustomPersonalizationData and LoadCustomPersonalizatoinData methods.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManagerInternals.#GetZoneID(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"mharder: We have standardized on the use of ""ID"" instead of ""Id"".")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManagerInternals.#SetZoneID(System.Web.UI.WebControls.WebParts.WebPart,System.String)", Justification = @"mharder: We have standardized on the use of ""ID"" instead of ""Id"".")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartManagerInternals.#SetZoneID(System.Web.UI.WebControls.WebParts.WebPart,System.String)", MessageId = "1#", Justification = @"mharder: We have standardized on the use of ""ID"" instead of ""Id"".")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetAttributes()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetClassName()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetComponentName()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetConverter()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetDefaultEvent()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetDefaultProperty()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEditor(System.Type)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEvents()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetEvents(System.Attribute[])", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetProperties()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetProperties(System.Attribute[])", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartMenuStyle.#System.ComponentModel.ICustomTypeDescriptor.GetPropertyOwner(System.ComponentModel.PropertyDescriptor)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebPartPersonalization", Justification = @"mharder: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartPersonalization.#CopyPersonalizationState(System.Web.UI.WebControls.WebParts.WebPart,System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"mharder: This method is only intended to be called on WebParts.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartPersonalization.#EnterSharedScopeUserCapability", Justification = @"nikhilko: Verified non-mutable")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartPersonalization.#GetAuthorizationFilter(System.String)", MessageId = "0#", Justification = @"phuff: ""ID"" ok for ASP.NET")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartPersonalization.#ModifyStateUserCapability", Justification = @"nikhilko: Verified non-mutable")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartPersonalization.#SetDirty(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"mharder: This is a method to mark a personalizable object as dirty. It would not make sense as a property.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartTracker.#System.IDisposable.Dispose()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartTransformerCollection.#OnClear()", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartTransformerCollection.#OnInsert(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartTransformerCollection.#OnRemove(System.Int32,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartTransformerCollection.#OnSet(System.Int32,System.Object,System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartTransformerCollection.#OnValidate(System.Object)", Justification = @"phuff: Interfaces and base classes we don't own and can't add link demands to.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartVerb.#ID", Justification = @"mharder: We use ID, not Id.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartVerb.#ImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2112:SecuredTypesShouldNotExposeFields", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebPartVerbCollection", Justification = @"mharder: These fields are static readonly, and I do not think there is any security risk if these fields can be accessed by types without the AspNetHostingPermission LinkDemand.")]
+[module: SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartVerbCollection.#Empty", Justification = @"mharder: WebPartVerbCollection is immutable.")]
+[module: SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartVerbsEventArgs.#Verbs", Justification = @"mharder: WebPartVerbCollection is a read-only collection, so this property must be get/set for event handlers to add verbs to the collection.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.UI.WebControls.WebParts.WebPartVerbsEventHandler", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZone.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#GetInitialWebParts()", Justification = @"[....]: Should be a method because it may be expensive, and may depend on other properties being set before this is called.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#MenuCheckImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#MenuPopupImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#OnCreateVerbs(System.Web.UI.WebControls.WebParts.WebPartVerbsEventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#RaisePostBackEvent(System.String)", Justification = @"[....]: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
-[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#RestoreWebPart(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"[....]: This method is on WebPartZoneBase, so it is only intended to be called on WebParts.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(System.String)", Justification = @"[....]: These are not meant to be overridden by derived classes.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_CheckImageStyle()", Justification = @"[....]: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_CheckImageUrl()", Justification = @"[....]: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_ItemHoverStyle()", Justification = @"[....]: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_ItemStyle()", Justification = @"[....]: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_LabelHoverStyle()", Justification = @"[....]: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_LabelImageUrl()", Justification = @"[....]: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_LabelStyle()", Justification = @"[....]: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_LabelText()", Justification = @"[....]: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.OnBeginRender(System.Web.UI.HtmlTextWriter)", Justification = @"[....]: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.OnEndRender(System.Web.UI.HtmlTextWriter)", Justification = @"[....]: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_Page()", Justification = @"[....]: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_PopupImageUrl()", Justification = @"[....]: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_PostBackTarget()", Justification = @"[....]: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_UrlResolver()", Justification = @"[....]: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
-[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebZone.#BackImageUrl", Justification = @"[....]: Urls ok as strings")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebZone.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebZone.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"[....]: Our event handlers are purposely exposed.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Util.AltSerialization.#WriteValueToStream(System.Object,System.IO.BinaryWriter)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Util.AspCompatApplicationStep.#CheckThreadingModel(System.String,System.Guid)", Justification = @"[....]: too risky")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Util.AspCompatApplicationStep.#CookiesToString(System.Web.HttpCookieCollection)", Justification = @"[....]: the default behavior is the desired one - the conversion is for internal purposes and the string doesn't go to the user")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Util.CalliEventHandlerDelegateProxy", Justification = @"[....]: Does not contain any unmanaged resources")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Util.CalliEventHandlerDelegateProxy.#_functionPointer", Justification = @"[....]: _functionPointer not OS resource")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.Debug.#FormatLocalDate(System.DateTime)", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.Debug.#FormatUtcDate(System.DateTime)", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Util.Debug.#GetDescription(System.Object,System.String)", Justification = @"[....]: PipelineRuntime instances not given out to user code. If this assumption changes, we need to change this")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.Debug.#MonitorRegistryForOneChange()", Justification = @"[....]: Config should not be protected by link demands.")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Util.Debug.#ReadTagsFromRegistry()", Justification = @"[....]: Only occurs in DBG builds.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.Debug.#StopRegistryMonitor()", Justification = @"[....]: Config should not be protected by link demands.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.Debug.#TraceBreak(System.String,System.String,System.Exception,System.Boolean)", Justification = @"[....]: Config should not be protected by link demands.")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Util.Debug.#WriteTagsToRegistry()", Justification = @"[....]: Only occurs in DBG builds.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#DebugBreak()", Justification = @"[....]: debug code")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#GetCurrentProcess()", Justification = @"[....]: Only occurs under DBG code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#GetCurrentProcessId()", Justification = @"[....]: Only occurs under DBG code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#GetCurrentThreadId()", Justification = @"[....]: Only occurs under DBG code.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#HKEY_LOCAL_MACHINE", Justification = @"[....]: HKEY_LOCAL_MACHINE is a constant.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#IsDebuggerPresent()", Justification = @"[....]: debug code")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#OutputDebugString(System.String)", Justification = @"[....]: Only occurs under DBG code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#RegNotifyChangeKeyValue(System.Web.Util.Debug+SafeRegistryHandle,System.Boolean,System.UInt32,Microsoft.Win32.SafeHandles.SafeWaitHandle,System.Boolean)", Justification = @"[....]: This is DBG-only code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#RegOpenKeyEx(System.IntPtr,System.String,System.Int32,System.Int32,System.Web.Util.Debug+SafeRegistryHandle&)", Justification = @"[....]: This is DBG-only code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#TerminateProcess(System.Runtime.InteropServices.HandleRef,System.Int32)", Justification = @"[....]: Only occurs under DBG code.")]
-[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Util.Debug+NativeMethods+MSG", Justification = @"[....]: In this use under DBG, managed code does not own the resources associated with a MSG - it holds resource handles allocated by the OS.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods+MSG.#hwnd", Justification = @"[....]: In this use under DBG, managed code does not own the resources associated with a MSG - it holds resource handles allocated by the OS.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods+MSG.#lParam", Justification = @"[....]: In this use under DBG, managed code does not own the resources associated with a MSG - it holds resource handles allocated by the OS.")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods+MSG.#wParam", Justification = @"[....]: In this use under DBG, managed code does not own the resources associated with a MSG - it holds resource handles allocated by the OS.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.DoubleLink.#.ctor(System.Object)", Justification = @"[....]: This class is currently being used in s abnormal way. if anyone wanted to use it as it was designed this code would be necessary.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.DoubleLinkList.#IsEmpty()", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.DoubleLinkList.#get_Length()", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Util.FastPropertyAccessor.#GetPropertyAccessor(System.Type,System.String)", Justification = @"[....]: The parameterless exception is ok here. ArgumentOutOfRange and ArgumentNull don't make sense here.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.FileAttributesData.#GetFileAttributes(System.String,System.Web.Util.FileAttributesData&)", Justification = @"[....]: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
-[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Util.FileEnumerator.#_hFindFile", Justification = @"[....]: After mail thread with Dmitry and Adam, we determine that we did not need to do this.")]
-[module: SuppressMessage("Microsoft.Security", "CA2115:CallGCKeepAliveWhenUsingNativeResources", Scope = "member", Target = "System.Web.Util.FileEnumerator.#System.Collections.IEnumerator.MoveNext()", Justification = @"[....]: Assigned to [....]")]
-[module: SuppressMessage("Microsoft.Security", "CA2115:CallGCKeepAliveWhenUsingNativeResources", Scope = "member", Target = "System.Web.Util.FileEnumerator.#System.IDisposable.Dispose()", Justification = @"[....]: Assigned to [....]")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Util.FileUtil.#DirectoryAccessible(System.String)", Justification = @"[....]: It's fine here to catch all exceptions.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Util.FileUtil.#DirectoryExists(System.String)", Justification = @"[....]: It's fine here to catch all exceptions.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Util.FileUtil.#FileExists(System.String)", Justification = @"[....]: It's fine here to catch all exceptions.")]
-[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Util.FileUtil.#IsSuspiciousPhysicalPath(System.String,System.Boolean&)", Justification = @"[....]: The method returns true only when the path is normalized and contains only valid characters. It does not reveal whether the path exists or not. Adding the assert does not reveal anything more.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.FileUtil.#PhysicalPathStatus(System.String,System.Boolean,System.Boolean,System.Boolean&,System.Boolean&)", Justification = @"[....]: Config should not be protected by link demands.")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.FindFileData.#FindFile(System.String,System.String,System.Web.Util.FindFileData&)", Justification = @"[....]: This is an internal method")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.FindFileData.#FindFile(System.String,System.Web.Util.FindFileData&)", Justification = @"[....]: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Util.HashCodeCombiner.#AddDateTime(System.DateTime)", Justification = @"[....]: Debug only code")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Util.HashCodeCombiner.#AddFileSize(System.Int64)", Justification = @"[....]: Debug only code")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Util.HashCodeCombiner.#AddInt(System.Int32)", Justification = @"[....]: Debug only code")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Util.Misc", Justification = @"[....]: 143822 PERF: HelloWorld.aspx:All collections that derive from NameObjectCollectionBase should provide their own KeyComparer")]
-[module: SuppressMessage("Microsoft.Globalization", "CA1307:SpecifyStringComparison", Scope = "member", Target = "System.Web.Util.Misc.#OpenAspNetRegKey(System.String)", MessageId = "System.String.LastIndexOf(System.String)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength", Scope = "member", Target = "System.Web.Util.Misc.#OpenAspNetRegKey(System.String)", Justification = @"[....]: okay")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.Misc.#ThrowIfFailedHr(System.Int32)", Justification = @"[....]: excluding")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.Profiler.#get_RequestsToProfile()", Justification = @"[....]: No reason to make this write-only even though the getter is never called.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Util.ProviderUtil", Justification = @"[....]: It's a utility class with a list of static methods")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ProviderUtil.#GetAndRemoveBooleanAttribute(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.Boolean&)", Justification = @"[....]: They will be called.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ProviderUtil.#GetAndRemovePositiveAttribute(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.Int32&)", Justification = @"[....]: They will be called.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ProviderUtil.#GetAndRemovePositiveOrInfiniteAttribute(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.Int32&)", Justification = @"[....]: They will be called.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ProviderUtil.#GetAndRemoveRequiredNonEmptyStringAttribute(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.String&)", Justification = @"[....]: They will be called.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Util.ProviderUtil.#GetNonZeroPositiveOrInfiniteAttribute(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.Int32&)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Util.ProviderUtil.#GetPositiveAttribute(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.Int32&)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Util.ProviderUtil.#GetPositiveOrInfiniteAttribute(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.Int32&)", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ReadWriteSpinLock.#NoWriters()", Justification = @"[....]: These methods are not called now, but are relevant to the class and complete it.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ReadWriteSpinLock.#ReadLockCount()", Justification = @"[....]: These methods are not called now, but are relevant to the class and complete it.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ReadWriteSpinLock.#WriteLockCount()", Justification = @"[....]: These methods are not called now, but are relevant to the class and complete it.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ReadWriteSpinLock.#WriterWaiting()", Justification = @"[....]: These methods are not called now, but are relevant to the class and complete it.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ResourcePool.#DebugValidate()", Justification = @"[....]: already excluded, accidental duplication in merge")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.SimpleBitVector32.#.ctor(System.Int32)", Justification = @"[....]: This is used in orcas and may be back ported")]
-[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Util.StringUtil", Justification = @"[....]: The class contains only static code, so it's fine.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.StringUtil.#ObjectArrayToStringArray(System.Object[])", Justification = @"[....]: Changed to not used but will be brough back after changes in SP1 config are reverted")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZone.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#GetInitialWebParts()", Justification = @"mharder: Should be a method because it may be expensive, and may depend on other properties being set before this is called.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#MenuCheckImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#MenuPopupImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#OnCreateVerbs(System.Web.UI.WebControls.WebParts.WebPartVerbsEventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#RaisePostBackEvent(System.String)", Justification = @"mharder: Events are being used correctly here. RaisePostBackEvent and RaisePostDataChangedEvent are members of IPostBackEventHandler and IPostBackDataHandler.")]
+[module: SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#RestoreWebPart(System.Web.UI.WebControls.WebParts.WebPart)", Justification = @"mharder: This method is on WebPartZoneBase, so it is only intended to be called on WebParts.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(System.String)", Justification = @"mharder: These are not meant to be overridden by derived classes.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_CheckImageStyle()", Justification = @"mharder: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_CheckImageUrl()", Justification = @"mharder: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_ItemHoverStyle()", Justification = @"mharder: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_ItemStyle()", Justification = @"mharder: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_LabelHoverStyle()", Justification = @"mharder: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_LabelImageUrl()", Justification = @"mharder: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_LabelStyle()", Justification = @"mharder: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_LabelText()", Justification = @"mharder: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.OnBeginRender(System.Web.UI.HtmlTextWriter)", Justification = @"mharder: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.OnEndRender(System.Web.UI.HtmlTextWriter)", Justification = @"mharder: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_Page()", Justification = @"mharder: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_PopupImageUrl()", Justification = @"mharder: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_PostBackTarget()", Justification = @"mharder: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebPartZoneBase.#System.Web.UI.WebControls.WebParts.IWebPartMenuUser.get_UrlResolver()", Justification = @"mharder: IWebPartMenuUser is an internal interface, so derived types cannot re-implement the interface.")]
+[module: SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebZone.#BackImageUrl", Justification = @"phuff: Urls ok as strings")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebZone.#OnInit(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", Scope = "member", Target = "System.Web.UI.WebControls.WebParts.WebZone.#OnPreRender(System.EventArgs)", MessageId = "0#", Justification = @"phuff: Our event handlers are purposely exposed.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Util.AltSerialization.#WriteValueToStream(System.Object,System.IO.BinaryWriter)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Util.AspCompatApplicationStep.#CheckThreadingModel(System.String,System.Guid)", Justification = @"dmitryr: too risky")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Util.AspCompatApplicationStep.#CookiesToString(System.Web.HttpCookieCollection)", Justification = @"dmitryr: the default behavior is the desired one - the conversion is for internal purposes and the string doesn't go to the user")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Util.CalliEventHandlerDelegateProxy", Justification = @"tinghaoy: Does not contain any unmanaged resources")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Util.CalliEventHandlerDelegateProxy.#_functionPointer", Justification = @"tinghaoy: _functionPointer not OS resource")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.Debug.#FormatLocalDate(System.DateTime)", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.Debug.#FormatUtcDate(System.DateTime)", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Util.Debug.#GetDescription(System.Object,System.String)", Justification = @"erikols: PipelineRuntime instances not given out to user code. If this assumption changes, we need to change this")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.Debug.#MonitorRegistryForOneChange()", Justification = @"phuff: Config should not be protected by link demands.")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Util.Debug.#ReadTagsFromRegistry()", Justification = @"adams: Only occurs in DBG builds.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.Debug.#StopRegistryMonitor()", Justification = @"phuff: Config should not be protected by link demands.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.Debug.#TraceBreak(System.String,System.String,System.Exception,System.Boolean)", Justification = @"phuff: Config should not be protected by link demands.")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Util.Debug.#WriteTagsToRegistry()", Justification = @"adams: Only occurs in DBG builds.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#DebugBreak()", Justification = @"asplab: debug code")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#GetCurrentProcess()", Justification = @"adams: Only occurs under DBG code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#GetCurrentProcessId()", Justification = @"adams: Only occurs under DBG code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#GetCurrentThreadId()", Justification = @"adams: Only occurs under DBG code.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#HKEY_LOCAL_MACHINE", Justification = @"adams: HKEY_LOCAL_MACHINE is a constant.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#IsDebuggerPresent()", Justification = @"asplab: debug code")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#OutputDebugString(System.String)", Justification = @"adams: Only occurs under DBG code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#RegNotifyChangeKeyValue(System.Web.Util.Debug+SafeRegistryHandle,System.Boolean,System.UInt32,Microsoft.Win32.SafeHandles.SafeWaitHandle,System.Boolean)", Justification = @"adams: This is DBG-only code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#RegOpenKeyEx(System.IntPtr,System.String,System.Int32,System.Int32,System.Web.Util.Debug+SafeRegistryHandle&)", Justification = @"adams: This is DBG-only code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods.#TerminateProcess(System.Runtime.InteropServices.HandleRef,System.Int32)", Justification = @"adams: Only occurs under DBG code.")]
+[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Util.Debug+NativeMethods+MSG", Justification = @"adams: In this use under DBG, managed code does not own the resources associated with a MSG - it holds resource handles allocated by the OS.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods+MSG.#hwnd", Justification = @"adams: In this use under DBG, managed code does not own the resources associated with a MSG - it holds resource handles allocated by the OS.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods+MSG.#lParam", Justification = @"adams: In this use under DBG, managed code does not own the resources associated with a MSG - it holds resource handles allocated by the OS.")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Util.Debug+NativeMethods+MSG.#wParam", Justification = @"adams: In this use under DBG, managed code does not own the resources associated with a MSG - it holds resource handles allocated by the OS.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.DoubleLink.#.ctor(System.Object)", Justification = @"rodneyk: This class is currently being used in s abnormal way. if anyone wanted to use it as it was designed this code would be necessary.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.DoubleLinkList.#IsEmpty()", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.DoubleLinkList.#get_Length()", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "System.Web.Util.FastPropertyAccessor.#GetPropertyAccessor(System.Type,System.String)", Justification = @"phuff: The parameterless exception is ok here. ArgumentOutOfRange and ArgumentNull don't make sense here.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.FileAttributesData.#GetFileAttributes(System.String,System.Web.Util.FileAttributesData&)", Justification = @"erikols: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
+[module: SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Scope = "member", Target = "System.Web.Util.FileEnumerator.#_hFindFile", Justification = @"davidebb: After mail thread with Dmitry and Adam, we determine that we did not need to do this.")]
+[module: SuppressMessage("Microsoft.Security", "CA2115:CallGCKeepAliveWhenUsingNativeResources", Scope = "member", Target = "System.Web.Util.FileEnumerator.#System.Collections.IEnumerator.MoveNext()", Justification = @"phuff: Assigned to davidebb")]
+[module: SuppressMessage("Microsoft.Security", "CA2115:CallGCKeepAliveWhenUsingNativeResources", Scope = "member", Target = "System.Web.Util.FileEnumerator.#System.IDisposable.Dispose()", Justification = @"phuff: Assigned to davidebb")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Util.FileUtil.#DirectoryAccessible(System.String)", Justification = @"davidebb: It's fine here to catch all exceptions.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Util.FileUtil.#DirectoryExists(System.String)", Justification = @"davidebb: It's fine here to catch all exceptions.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Util.FileUtil.#FileExists(System.String)", Justification = @"davidebb: It's fine here to catch all exceptions.")]
+[module: SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Scope = "member", Target = "System.Web.Util.FileUtil.#IsSuspiciousPhysicalPath(System.String,System.Boolean&)", Justification = @"honglim: The method returns true only when the path is normalized and contains only valid characters. It does not reveal whether the path exists or not. Adding the assert does not reveal anything more.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.FileUtil.#PhysicalPathStatus(System.String,System.Boolean,System.Boolean,System.Boolean&,System.Boolean&)", Justification = @"phuff: Config should not be protected by link demands.")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.FindFileData.#FindFile(System.String,System.String,System.Web.Util.FindFileData&)", Justification = @"phuff: This is an internal method")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.FindFileData.#FindFile(System.String,System.Web.Util.FindFileData&)", Justification = @"erikols: pipeline runtime instances are not handed out to user code and the ctor demands full trust. Excluded after review")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Util.HashCodeCombiner.#AddDateTime(System.DateTime)", Justification = @"davidebb: Debug only code")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Util.HashCodeCombiner.#AddFileSize(System.Int64)", Justification = @"davidebb: Debug only code")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", Scope = "member", Target = "System.Web.Util.HashCodeCombiner.#AddInt(System.Int32)", Justification = @"davidebb: Debug only code")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Util.Misc", Justification = @"patng: 143822 PERF: HelloWorld.aspx:All collections that derive from NameObjectCollectionBase should provide their own KeyComparer")]
+[module: SuppressMessage("Microsoft.Globalization", "CA1307:SpecifyStringComparison", Scope = "member", Target = "System.Web.Util.Misc.#OpenAspNetRegKey(System.String)", MessageId = "System.String.LastIndexOf(System.String)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength", Scope = "member", Target = "System.Web.Util.Misc.#OpenAspNetRegKey(System.String)", Justification = @"tmarq: okay")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.Misc.#ThrowIfFailedHr(System.Int32)", Justification = @"tmarq: excluding")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.Profiler.#get_RequestsToProfile()", Justification = @"bleroy: No reason to make this write-only even though the getter is never called.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Util.ProviderUtil", Justification = @"patng: It's a utility class with a list of static methods")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ProviderUtil.#GetAndRemoveBooleanAttribute(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.Boolean&)", Justification = @"patng: They will be called.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ProviderUtil.#GetAndRemovePositiveAttribute(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.Int32&)", Justification = @"patng: They will be called.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ProviderUtil.#GetAndRemovePositiveOrInfiniteAttribute(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.Int32&)", Justification = @"patng: They will be called.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ProviderUtil.#GetAndRemoveRequiredNonEmptyStringAttribute(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.String&)", Justification = @"patng: They will be called.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Util.ProviderUtil.#GetNonZeroPositiveOrInfiniteAttribute(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.Int32&)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Util.ProviderUtil.#GetPositiveAttribute(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.Int32&)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Util.ProviderUtil.#GetPositiveOrInfiniteAttribute(System.Collections.Specialized.NameValueCollection,System.String,System.String,System.Int32&)", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ReadWriteSpinLock.#NoWriters()", Justification = @"bleroy: These methods are not called now, but are relevant to the class and complete it.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ReadWriteSpinLock.#ReadLockCount()", Justification = @"bleroy: These methods are not called now, but are relevant to the class and complete it.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ReadWriteSpinLock.#WriteLockCount()", Justification = @"bleroy: These methods are not called now, but are relevant to the class and complete it.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ReadWriteSpinLock.#WriterWaiting()", Justification = @"bleroy: These methods are not called now, but are relevant to the class and complete it.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.ResourcePool.#DebugValidate()", Justification = @"mattgi: already excluded, accidental duplication in merge")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.SimpleBitVector32.#.ctor(System.Int32)", Justification = @"rodneyk: This is used in orcas and may be back ported")]
+[module: SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "System.Web.Util.StringUtil", Justification = @"davidebb: The class contains only static code, so it's fine.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.StringUtil.#ObjectArrayToStringArray(System.Object[])", Justification = @"ivelinj: Changed to not used but will be brough back after changes in SP1 config are reverted")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Util.TransactedCallback", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Util.Transactions+TransactedInvocation.#ExecuteTransactedCode()", Justification = @"[....]: Disregarding this rule because it doesn't make sense for our code.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Util.Transactions+TransactedInvocation.#ExecuteTransactedCode()", Justification = @"[....]: by design - there is no outer catch and thus the code stores the exception to be later rethrown on the right thread")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Util.Transactions+Utils.#get_AbortPending()", Justification = @"[....]: too risky to change this code")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Util.Transactions+Utils.#get_IsInTransaction()", Justification = @"[....]: too risky to change this code")]
-[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.UrlPath.#MakeVirtualPathAppAbsolute(System.String)", Justification = @"[....]: Config should not be protected by link demands.")]
-[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Util.VersionInfo.#GetFileVersion(System.String)", Justification = @"[....]: It's fine here to catch all exceptions.")]
-[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.VoidMethod.#.ctor(System.Object,System.IntPtr)", Justification = @"[....]: Called thru delegation")]
-[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Util.WorkItem.#Post(System.Web.Util.WorkItemCallback)", Justification = @"[....]: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
+[module: SuppressMessage("Microsoft.Security", "CA2102:CatchNonClsCompliantExceptionsInGeneralHandlers", Scope = "member", Target = "System.Web.Util.Transactions+TransactedInvocation.#ExecuteTransactedCode()", Justification = @"phuff: Disregarding this rule because it doesn't make sense for our code.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Util.Transactions+TransactedInvocation.#ExecuteTransactedCode()", Justification = @"dmitryr: by design - there is no outer catch and thus the code stores the exception to be later rethrown on the right thread")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Util.Transactions+Utils.#get_AbortPending()", Justification = @"dmitryr: too risky to change this code")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Util.Transactions+Utils.#get_IsInTransaction()", Justification = @"dmitryr: too risky to change this code")]
+[module: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "System.Web.Util.UrlPath.#MakeVirtualPathAppAbsolute(System.String)", Justification = @"phuff: Config should not be protected by link demands.")]
+[module: SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "System.Web.Util.VersionInfo.#GetFileVersion(System.String)", Justification = @"davidebb: It's fine here to catch all exceptions.")]
+[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Web.Util.VoidMethod.#.ctor(System.Object,System.IntPtr)", Justification = @"rodneyk: Called thru delegation")]
+[module: SuppressMessage("Microsoft.Security", "CA2114:MethodSecurityShouldBeASupersetOfType", Scope = "member", Target = "System.Web.Util.WorkItem.#Post(System.Web.Util.WorkItemCallback)", Justification = @"phuff: These are protected by a full declarative unmanaged code demand, which covers security on the methods.")]
[module: SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Scope = "type", Target = "System.Web.Util.WorkItemCallback", Justification = @"NO_JUSTIFICATION_PROVIDED")]
-[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "checkbox", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "checkboxes", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "dropdown", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "HotSpot", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "PlaceHolder", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "PlaceHolders", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "scrollbars", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "SideBar", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "siteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "SiteMap", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "SubMenu", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "textbox", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "textboxes", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "webSite", Justification = @"[....]: webSite refers to a section name in configuration, thus the case should be kept.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "WebSite", Justification = @"[....]: Spellings ok.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", Justification = @"[....]: aspnet_regsql.exe is the name of a tool.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "checkbox", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "checkboxes", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "dropdown", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "HotSpot", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "PlaceHolder", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "PlaceHolders", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "scrollbars", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "SideBar", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "siteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "SiteMap", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "SubMenu", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "textbox", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "textboxes", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "webSite", Justification = @"aaronl: webSite refers to a section name in configuration, thus the case should be kept.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1701:ResourceStringCompoundWordsShouldBeCasedCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", MessageId = "WebSite", Justification = @"phuff: Spellings ok.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", Scope = "resource", Target = "System.Web.Resources.WebResources.resources", Justification = @"patng: aspnet_regsql.exe is the name of a tool.")]
#endregion
#region $/DevDiv/Dev11/pu/MQAspNet/ddsuites/src/FxCop/Excludes/EverettBreaking/System.Web.dll-breaking.xml
diff --git a/mcs/class/referencesource/System.Web/GlobalSuppressions3.cs b/mcs/class/referencesource/System.Web/GlobalSuppressions3.cs
index 204e6dcca42..7a9617468f6 100644
--- a/mcs/class/referencesource/System.Web/GlobalSuppressions3.cs
+++ b/mcs/class/referencesource/System.Web/GlobalSuppressions3.cs
@@ -136,4 +136,4 @@ using System.Diagnostics.CodeAnalysis;
[module: SuppressMessage("Microsoft.Usage","CA2213:DisposableFieldsShouldBeDisposed", MessageId="_rawContent", Scope="member", Target="System.Web.HttpBufferlessInputStream.#Dispose(System.Boolean)", Justification="Baselined from previous FxCop.")]
[module: SuppressMessage("Microsoft.Usage","CA1806:DoNotIgnoreMethodResults", MessageId="System.Web.UnsafeNativeMethods.StartPrefetchActivity(System.UInt32)", Scope="member", Target="System.Web.HttpRuntime.#HostingInit(System.Web.Hosting.HostingEnvironmentFlags,System.Security.Policy.PolicyLevel,System.Exception)", Justification="Baselined from previous FxCop.")]
-#endregion
+#endregion \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web/Hosting/AppDomainFactory.cs b/mcs/class/referencesource/System.Web/Hosting/AppDomainFactory.cs
index c14cfb1e9c8..530e00340c6 100644
--- a/mcs/class/referencesource/System.Web/Hosting/AppDomainFactory.cs
+++ b/mcs/class/referencesource/System.Web/Hosting/AppDomainFactory.cs
@@ -190,14 +190,18 @@ namespace System.Web.Hosting {
_appManager.Close();
}
- internal static String ConstructSimpleAppName(string virtPath) {
+ internal static String ConstructSimpleAppName(string virtPath, bool isDevEnvironment) {
// devdiv 710164: Still repro - ctrl-f5 a WAP project might show "Cannot create/shadow copy when a file exists" error
// since the hash file lists are different, IISExpress launched by VS cannot reuse the build result from VS build.
// It deletes the build files generated by CBM and starts another round of build. This causes interruption between IISExpress and VS
// and leads to this shallow copy exception.
// fix: make the dev IISExpress build to a special drop location
+ // devdiv 1038337: execution permission cannot be acquired under partial trust with ctrl-f5.
+ // We previously use HostingEnvironment to determine whether it is under dev environment and the returned string. However,
+ // for partial trust scenario, this method is called before HostingEnvironment has been initialized, we thus may return a wrong value.
+ // To fix it, we requir the caller to pass in a flag indicating whether it is under dev environment.
if (virtPath.Length <= 1) { // root?
- if (!BuildManagerHost.InClientBuildManager && HostingEnvironment.IsDevelopmentEnvironment)
+ if (!BuildManagerHost.InClientBuildManager && isDevEnvironment)
return "vs";
else
return "root";
diff --git a/mcs/class/referencesource/System.Web/Hosting/ApplicationHost.cs b/mcs/class/referencesource/System.Web/Hosting/ApplicationHost.cs
index 0bd1944ed06..d465bcd9780 100644
--- a/mcs/class/referencesource/System.Web/Hosting/ApplicationHost.cs
+++ b/mcs/class/referencesource/System.Web/Hosting/ApplicationHost.cs
@@ -49,7 +49,8 @@ namespace System.Web.Hosting {
ApplicationManager appManager = ApplicationManager.GetApplicationManager();
- String appId = (String.Concat(virtualDir, physicalDir).GetHashCode()).ToString("x");
+ String appId = StringUtil.GetNonRandomizedHashCode(String.Concat(virtualDir, physicalDir)).ToString("x");
+
ObjectHandle h = appManager.CreateInstanceInNewWorkerAppDomain(
hostType, appId, VirtualPath.CreateNonRelative(virtualDir), physicalDir);
diff --git a/mcs/class/referencesource/System.Web/Hosting/ApplicationManager.cs b/mcs/class/referencesource/System.Web/Hosting/ApplicationManager.cs
index 491956b7902..0ebbf12b544 100644
--- a/mcs/class/referencesource/System.Web/Hosting/ApplicationManager.cs
+++ b/mcs/class/referencesource/System.Web/Hosting/ApplicationManager.cs
@@ -57,6 +57,7 @@ namespace System.Web.Hosting {
public sealed class ApplicationManager : MarshalByRefObject {
+ private const string _clrQuirkAppSettingsAppContextPrefix = "AppContext.SetSwitch:";
private const string _regexMatchTimeoutKey = "REGEX_DEFAULT_MATCH_TIMEOUT";
private static readonly StrongName _mwiV1StrongName = GetMicrosoftWebInfrastructureV1StrongName();
@@ -734,6 +735,14 @@ namespace System.Web.Hosting {
}
}
+ // ApplicationManager is loaded into the default AppDomain
+ // ASP.NET doesn't set string hash randomization for the defaul AppDomain, so we can assume the existing CLR implementation here is unchanged
+ // Note, it won't work if <runtime/UseRandomizedStringHashAlgorithm enabled="1"> is used, because the entire process is subject to string hash randomization
+ internal int GetNonRandomizedStringComparerHashCode(string s, bool ignoreCase) {
+ StringComparer comparer = ignoreCase ? StringComparer.InvariantCultureIgnoreCase : StringComparer.InvariantCulture;
+ return comparer.GetHashCode(s);
+ }
+
//
// communication with hosting environments
//
@@ -952,7 +961,7 @@ namespace System.Web.Hosting {
inClientBuildManager = true;
// The default hosting policy in VS has changed (from MultiDomainHost to MultiDomain),
// so we need to specify explicitly to allow generated assemblies
- // to be unloaded subsequently. (Dev10 bug)
+ // to be unloaded subsequently. (Dev10
setup.LoaderOptimization = LoaderOptimization.MultiDomainHost;
}
}
@@ -972,8 +981,10 @@ namespace System.Web.Hosting {
customLoaderException.Throw();
}
- // DevDiv #392603 - disallow running applications when string hash code randomization is enabled
- if (EnvironmentInfo.IsStringHashCodeRandomizationEnabled) {
+ // We support randomized string hash code, but not for the default AppDomain
+ // Don't allow string hash randomization for the defaul AppDomain (i.e. <runtime/UseRandomizedStringHashAlgorithm enabled="1">)
+ // Application should use AppSettings instead to opt-in.
+ if (EnvironmentInfo.IsStringHashCodeRandomizationDetected) {
throw new ConfigurationErrorsException(SR.GetString(SR.Require_stable_string_hash_codes));
}
@@ -1009,7 +1020,7 @@ namespace System.Web.Hosting {
// in the AppDomain data guarantees that it is available before the first call to the config system.
FrameworkName targetFrameworkName = httpRuntimeSection.GetTargetFrameworkName();
if (targetFrameworkName != null) {
- appDomainAdditionalData[BinaryCompatibility.TargetFrameworkKey] = targetFrameworkName;
+ appDomainAdditionalData[System.Web.Util.BinaryCompatibility.TargetFrameworkKey] = targetFrameworkName;
}
if (!skipAdditionalConfigChecks) {
@@ -1028,7 +1039,39 @@ namespace System.Web.Hosting {
AppSettingsSection appSettingsSection = appConfig.AppSettings;
KeyValueConfigurationElement useTaskFriendlySynchronizationContextElement = appSettingsSection.Settings["aspnet:UseTaskFriendlySynchronizationContext"];
if (!(useTaskFriendlySynchronizationContextElement != null && Boolean.TryParse(useTaskFriendlySynchronizationContextElement.Value, out requireHostExecutionContextManager))) {
- requireHostExecutionContextManager = new BinaryCompatibility(targetFrameworkName).TargetsAtLeastFramework45 ? true : false;
+ requireHostExecutionContextManager = new System.Web.Util.BinaryCompatibility(targetFrameworkName).TargetsAtLeastFramework45 ? true : false;
+ }
+
+ // DevDiv #390704 - Add support for randomized string hash algorithm
+ KeyValueConfigurationElement useRandomizedStringHashAlgorithmElement = appSettingsSection.Settings["aspnet:UseRandomizedStringHashAlgorithm"];
+ bool useRandomizedStringHashAlgorithm = false;
+ if (useRandomizedStringHashAlgorithmElement != null && Boolean.TryParse(useRandomizedStringHashAlgorithmElement.Value, out useRandomizedStringHashAlgorithm)) {
+ switches.UseRandomizedStringHashAlgorithm = useRandomizedStringHashAlgorithm;
+ }
+
+ // DevDiv #1041102 - Allow specifying quirks via <appSettings> switches
+ // The keys must begin with "AppContext.SetSwitch" and have a non-zero key name length,
+ // and the values must be parseable as Booleans.
+ Dictionary<string, bool> clrQuirks = null;
+ foreach (KeyValueConfigurationElement element in appSettingsSection.Settings) {
+ if (element.Key != null && element.Key.Length > _clrQuirkAppSettingsAppContextPrefix.Length && element.Key.StartsWith(_clrQuirkAppSettingsAppContextPrefix, StringComparison.OrdinalIgnoreCase)) {
+ bool value;
+ if (Boolean.TryParse(element.Value, out value)) {
+ if (clrQuirks == null) {
+ clrQuirks = new Dictionary<string, bool>();
+ }
+
+ clrQuirks[element.Key.Substring(_clrQuirkAppSettingsAppContextPrefix.Length)] = value;
+ }
+ }
+ }
+
+ if (clrQuirks != null && clrQuirks.Count > 0) {
+ if (hostingParameters == null) {
+ hostingParameters = new HostingEnvironmentParameters();
+ }
+
+ hostingParameters.ClrQuirksSwitches = clrQuirks.ToArray();
}
// DevDiv #248126 - Allow configuration of FileChangeMonitor behavior
@@ -1057,8 +1100,10 @@ namespace System.Web.Hosting {
// we only do this check if <deployment retail="false" /> [the default value] is specified, since the
// <deployment> element can only be set at machine-level in a hosted environment.
DeploymentSection deploymentSection = (DeploymentSection)appConfig.GetSection("system.web/deployment");
+ bool isDevEnvironment = false;
if (deploymentSection != null && !deploymentSection.Retail && EnvironmentInfo.WasLaunchedFromDevelopmentEnvironment) {
appDomainAdditionalData[".devEnvironment"] = true;
+ isDevEnvironment = true;
// DevDiv #275724 - Allow LocalDB support in partial trust scenarios
// Normally LocalDB requires full trust since it's the equivalent of unmanaged code execution. If this is
@@ -1092,7 +1137,7 @@ namespace System.Web.Hosting {
SecurityPolicySection securityPolicySection = (SecurityPolicySection)appConfig.GetSection("system.web/securityPolicy");
CompilationSection compilationSection = (CompilationSection)appConfig.GetSection("system.web/compilation");
FullTrustAssembliesSection fullTrustAssembliesSection = (FullTrustAssembliesSection)appConfig.GetSection("system.web/fullTrustAssemblies");
- policyLevel = GetPartialTrustPolicyLevel(trustSection, securityPolicySection, compilationSection, physicalPath, virtualPath);
+ policyLevel = GetPartialTrustPolicyLevel(trustSection, securityPolicySection, compilationSection, physicalPath, virtualPath, isDevEnvironment);
permissionSet = policyLevel.GetNamedPermissionSet(trustSection.PermissionSetName);
if (permissionSet == null) {
throw new ConfigurationErrorsException(SR.GetString(SR.Permission_set_not_found, trustSection.PermissionSetName));
@@ -1331,10 +1376,14 @@ setup,
}
}
+
+ // devdiv 1038337: execution permission cannot be acquired under partial trust with ctrl-f5.
+ // We build the codegen path in default domain. In order to build the right path,
+ // caller must pass in a flag indicating whether it is under dev environment.
[SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Justification = "We carefully control this method's caller.")]
private static PolicyLevel GetPartialTrustPolicyLevel(
TrustSection trustSection, SecurityPolicySection securityPolicySection,
- CompilationSection compilationSection, string physicalPath, VirtualPath virtualPath) {
+ CompilationSection compilationSection, string physicalPath, VirtualPath virtualPath, bool isDevEnvironment) {
if (securityPolicySection == null || securityPolicySection.TrustLevels[trustSection.Level] == null) {
throw new ConfigurationErrorsException(SR.GetString(SR.Unable_to_get_policy_file, trustSection.Level), String.Empty, 0);
}
@@ -1405,7 +1454,7 @@ setup,
tempDirectory = Path.Combine(tempDirectory, HttpRuntime.codegenDirName);
}
String simpleAppName = System.Web.Hosting.AppManagerAppDomainFactory.ConstructSimpleAppName(
- VirtualPath.GetVirtualPathStringNoTrailingSlash(virtualPath));
+ VirtualPath.GetVirtualPathStringNoTrailingSlash(virtualPath), isDevEnvironment);
String binDir = Path.Combine(tempDirectory, simpleAppName);
binDir = FileUtil.RemoveTrailingDirectoryBackSlash(binDir);
String binDirUrl = HttpRuntime.MakeFileUrl(binDir);
@@ -1727,6 +1776,7 @@ setup,
private sealed class AppDomainSwitches {
public bool UseLegacyCas;
+ public bool UseRandomizedStringHashAlgorithm;
public void Apply(AppDomainSetup setup) {
List<string> switches = new List<string>();
@@ -1736,6 +1786,10 @@ setup,
switches.Add("NetFx40_LegacySecurityPolicy");
}
+ if (UseRandomizedStringHashAlgorithm) {
+ switches.Add("UseRandomizedStringHashAlgorithm");
+ }
+
if (switches.Count > 0) {
setup.SetCompatibilitySwitches(switches);
}
@@ -1747,10 +1801,10 @@ setup,
// This prevents accidental misuse of this type via querying the environment after user code has had a chance to
// run, which could potentially affect the environment itself.
private static class EnvironmentInfo {
- public static readonly bool IsStringHashCodeRandomizationEnabled = GetIsStringHashCodeRandomizationEnabled();
+ public static readonly bool IsStringHashCodeRandomizationDetected = GetIsStringHashCodeRandomizationDetected();
public static readonly bool WasLaunchedFromDevelopmentEnvironment = GetWasLaunchedFromDevelopmentEnvironmentValue();
- private static bool GetIsStringHashCodeRandomizationEnabled() {
+ private static bool GetIsStringHashCodeRandomizationDetected() {
// known test vector
return (StringComparer.InvariantCultureIgnoreCase.GetHashCode("The quick brown fox jumps over the lazy dog.") != 0x703e662e);
}
diff --git a/mcs/class/referencesource/System.Web/Hosting/HostingEnvironment.cs b/mcs/class/referencesource/System.Web/Hosting/HostingEnvironment.cs
index 1dda494cbe2..80c0e8c69bd 100644
--- a/mcs/class/referencesource/System.Web/Hosting/HostingEnvironment.cs
+++ b/mcs/class/referencesource/System.Web/Hosting/HostingEnvironment.cs
@@ -86,6 +86,11 @@ namespace System.Web.Hosting {
get;
set;
}
+
+ public KeyValuePair<string, bool>[] ClrQuirksSwitches {
+ get;
+ set;
+ }
}
public sealed class HostingEnvironment : MarshalByRefObject {
@@ -279,6 +284,10 @@ namespace System.Web.Hosting {
BuildManagerHost.SupportsMultiTargeting = true;
}
+ // Set CLR quirks switches before the config system is initialized since config might depend on them
+ if (_hostingParameters != null && _hostingParameters.ClrQuirksSwitches != null && _hostingParameters.ClrQuirksSwitches.Length > 0) {
+ SetClrQuirksSwitches(_hostingParameters.ClrQuirksSwitches);
+ }
//
// init config system using private config if applicable
@@ -434,6 +443,32 @@ namespace System.Web.Hosting {
}
}
+ private static void SetClrQuirksSwitches(KeyValuePair<string, bool>[] switches) {
+ // First, see if the static API AppContext.SetSwitch even exists.
+ // Type.GetType will return null if the type doesn't exist; it will throw on catastrophic failure.
+
+ Type appContextType = Type.GetType("System.AppContext, " + AssemblyRef.Mscorlib);
+ if (appContextType == null) {
+ return; // wrong version of mscorlib - do nothing
+ }
+
+ Action<string, bool> setter = (Action<string, bool>)Delegate.CreateDelegate(
+ typeof(Action<string, bool>),
+ appContextType,
+ "SetSwitch",
+ ignoreCase: false,
+ throwOnBindFailure: false);
+ if (setter == null) {
+ return; // wrong version of mscorlib - do nothing
+ }
+
+ // Finally, set each switch individually.
+
+ foreach (var sw in switches) {
+ setter(sw.Key, sw.Value);
+ }
+ }
+
// If an exception was thrown during initialization, return it.
public static Exception InitializationException {
@@ -555,7 +590,7 @@ namespace System.Web.Hosting {
HttpRuntime.SetShutdownReason(ApplicationShutdownReason.HostingEnvironment, "HostingEnvironment initiated shutdown");
- // Avoid calling Environment.StackTrace if we are in the ClientBuildManager (Dev10 bug 824659)
+ // Avoid calling Environment.StackTrace if we are in the ClientBuildManager (Dev10
if (!BuildManagerHost.InClientBuildManager) {
new EnvironmentPermission(PermissionState.Unrestricted).Assert();
try {
@@ -566,7 +601,7 @@ namespace System.Web.Hosting {
}
}
- // waitChangeNotification need not be honored in ClientBuildManager (Dev11 bug 264894)
+ // waitChangeNotification need not be honored in ClientBuildManager (Dev11
if (!BuildManagerHost.InClientBuildManager) {
// this should only be called once, before the cache is disposed, and
// the config records are released.
diff --git a/mcs/class/referencesource/System.Web/Hosting/IIS7WorkerRequest.cs b/mcs/class/referencesource/System.Web/Hosting/IIS7WorkerRequest.cs
index 104c2e5619e..2862566bee5 100644
--- a/mcs/class/referencesource/System.Web/Hosting/IIS7WorkerRequest.cs
+++ b/mcs/class/referencesource/System.Web/Hosting/IIS7WorkerRequest.cs
@@ -101,6 +101,9 @@ namespace System.Web.Hosting {
private readonly object _disposeLockObj = new object();
private CancellationTokenHelper _clientDisconnectTokenHelper;
+ private static IAllocatorProvider s_DefaultAllocator;
+ private IAllocatorProvider _allocator;
+
internal IIS7WorkerRequest(IntPtr requestContext, bool etwProviderEnabled) {
PerfCounters.IncrementCounter(AppPerfCounter.REQUESTS_TOTAL);
@@ -1100,6 +1103,46 @@ namespace System.Web.Hosting {
get { return _traceId; }
}
+ internal void PushPromise(string virtualPath, string queryString, string method, NameValueCollection headers) {
+ //
+ // Convert NameValueCollection collection into string arrays
+ // Headers (name/value) are expected to be US-ASCII only. Caller should encode accordingly
+ string[] headerNames = null;
+ string[] headerValues = null;
+ int headerCount = 0;
+
+ if (headers != null && headers.Count > 0) {
+ headerCount = headers.Count;
+ headerNames = headers.AllKeys;
+ headerValues = new string[headerCount];
+
+ for (int i = 0; i < headerCount; ++i) {
+ headerValues[i] = headers.Get(i);
+ }
+ }
+
+
+ int result = IIS.MgdPushPromise(_context,
+ virtualPath,
+ queryString,
+ method,
+ headerCount,
+ headerNames,
+ headerValues);
+
+ //
+
+
+
+ // Check if PushPromise is supported on this platform
+ if (result == HResults.E_NOTIMPL) {
+ throw new PlatformNotSupportedException();
+ }
+
+ // Propagate unknown native error
+ Misc.ThrowIfFailedHr(result);
+ }
+
internal unsafe HTTP_COOKED_URL* GetCookedUrl() {
return (HTTP_COOKED_URL*)_pCookedUrl;
}
@@ -1303,13 +1346,13 @@ namespace System.Web.Hosting {
numFragments = _cachedResponseBodyBytes.Count;
fragments =
- RecyclableArrayHelper.GetIntPtrArray(numFragments);
+ AllocatorProvider.IntPtrBufferAllocator.GetBuffer(numFragments);
fragmentLengths =
- RecyclableArrayHelper.GetIntegerArray(numFragments);
+ AllocatorProvider.IntBufferAllocator.GetBuffer(numFragments);
bodyFragmentTypes =
- RecyclableArrayHelper.GetIntegerArray(numFragments);
+ AllocatorProvider.IntBufferAllocator.GetBuffer(numFragments);
for ( int i = 0; i < numFragments; i++ ) {
MemoryBytes bytes =
@@ -1337,7 +1380,7 @@ namespace System.Web.Hosting {
}
// send to unmanaged code
- // sends are always [....] now since they're buffered by IIS
+ // sends are always sync now since they're buffered by IIS
FlushCore(true,
numFragments,
fragments,
@@ -1349,9 +1392,9 @@ namespace System.Web.Hosting {
UnlockCachedResponseBytes();
// recycle buffers
- RecyclableArrayHelper.ReuseIntPtrArray(fragments);
- RecyclableArrayHelper.ReuseIntegerArray(fragmentLengths);
- RecyclableArrayHelper.ReuseIntegerArray(bodyFragmentTypes);
+ AllocatorProvider.IntPtrBufferAllocator.ReuseBuffer(fragments);
+ AllocatorProvider.IntBufferAllocator.ReuseBuffer(fragmentLengths);
+ AllocatorProvider.IntBufferAllocator.ReuseBuffer(bodyFragmentTypes);
}
}
@@ -1653,13 +1696,13 @@ namespace System.Web.Hosting {
int startFragments = numFragments;
fragments =
- RecyclableArrayHelper.GetIntPtrArray(numFragments);
+ AllocatorProvider.IntPtrBufferAllocator.GetBuffer(numFragments);
fragmentLengths =
- RecyclableArrayHelper.GetIntegerArray(numFragments);
+ AllocatorProvider.IntBufferAllocator.GetBuffer(numFragments);
fragmentTypes =
- RecyclableArrayHelper.GetIntegerArray(numFragments);
+ AllocatorProvider.IntBufferAllocator.GetBuffer(numFragments);
int result = IIS.MgdGetResponseChunks(
_context,
@@ -1680,18 +1723,18 @@ namespace System.Web.Hosting {
Debug.Assert(numFragments > startFragments, "numFragments > startFragments");
// recycle the current stuff
- RecyclableArrayHelper.ReuseIntPtrArray(fragments);
- RecyclableArrayHelper.ReuseIntegerArray(fragmentLengths);
- RecyclableArrayHelper.ReuseIntegerArray(fragmentTypes);
+ AllocatorProvider.IntPtrBufferAllocator.ReuseBuffer(fragments);
+ AllocatorProvider.IntBufferAllocator.ReuseBuffer(fragmentLengths);
+ AllocatorProvider.IntBufferAllocator.ReuseBuffer(fragmentTypes);
fragments =
- RecyclableArrayHelper.GetIntPtrArray(numFragments);
+ AllocatorProvider.IntPtrBufferAllocator.GetBuffer(numFragments);
fragmentLengths =
- RecyclableArrayHelper.GetIntegerArray(numFragments);
+ AllocatorProvider.IntBufferAllocator.GetBuffer(numFragments);
fragmentTypes =
- RecyclableArrayHelper.GetIntegerArray(numFragments);
+ AllocatorProvider.IntBufferAllocator.GetBuffer(numFragments);
result = IIS.MgdGetResponseChunks(
_context,
@@ -1845,9 +1888,9 @@ namespace System.Web.Hosting {
}
// recycle the arrays
- RecyclableArrayHelper.ReuseIntPtrArray(fragments);
- RecyclableArrayHelper.ReuseIntegerArray(fragmentLengths);
- RecyclableArrayHelper.ReuseIntegerArray(fragmentTypes);
+ AllocatorProvider.IntPtrBufferAllocator.ReuseBuffer(fragments);
+ AllocatorProvider.IntBufferAllocator.ReuseBuffer(fragmentLengths);
+ AllocatorProvider.IntBufferAllocator.ReuseBuffer(fragmentTypes);
return buffers;
}
@@ -2274,11 +2317,11 @@ namespace System.Web.Hosting {
return isInRole;
}
- // Windows OS Bug 1726303 was "fixed" by changing SynchronizeVariables
- // to only synchronize the IPrincipal/IHttpUser if Windows authentication
- // was enabled. This is incorrect behavior; for example, suppose a forms
- // authenticated request calls TransferRequest and passes the parent IPrincipal to a
- // child request.
+ // Windows OS
+
+
+
+
private static bool IsAuthenticationEnabled {
get {
if (!s_AuthenticationChecked) {
@@ -2468,6 +2511,29 @@ namespace System.Web.Hosting {
_clientCertValidUntil = (notAfter != 0) ? DateTime.FromFileTime(notAfter) : DateTime.Now;
}
+ internal ITlsTokenBindingInfo GetTlsTokenBindingInfo() {
+ TlsTokenBindingHandle handle = new TlsTokenBindingHandle(_context);
+ if (handle.IsInvalid) {
+ // The client doesn't support this, the server doesn't support this,
+ // or the client and the server haven't agreed on this protocol.
+ return null;
+ }
+
+ byte[] providedToken, referredToken;
+ using (handle) {
+ providedToken = handle.GetProvidedToken();
+ referredToken = handle.GetReferredToken();
+ }
+
+ // Only return an info object if we have any non-empty data to provide.
+ if (providedToken != null || referredToken != null) {
+ return new TlsTokenBindingInfo(providedToken, referredToken);
+ }
+ else {
+ return null;
+ }
+ }
+
public override String MapPath(String path)
{
return HostingEnvironment.MapPathInternal(path);
@@ -2557,5 +2623,30 @@ namespace System.Web.Hosting {
return isChildRequest;
}
+ internal IAllocatorProvider AllocatorProvider {
+ private get {
+ if (_allocator == null) {
+ if (s_DefaultAllocator == null) {
+ // Create default static allocator
+ IBufferAllocator intAllocator = new IntegerArrayAllocator(BufferingParams.INT_BUFFER_SIZE, BufferingParams.MAX_FREE_OUTPUT_BUFFERS);
+ IBufferAllocator intPtrAllocator = new IntPtrArrayAllocator(BufferingParams.INTPTR_BUFFER_SIZE, BufferingParams.MAX_FREE_OUTPUT_BUFFERS);
+
+ AllocatorProvider alloc = new AllocatorProvider();
+ alloc.IntBufferAllocator = new BufferAllocatorWrapper<int>(intAllocator);
+ alloc.IntPtrBufferAllocator = new BufferAllocatorWrapper<IntPtr>(intPtrAllocator);
+
+ Interlocked.CompareExchange(ref s_DefaultAllocator, alloc, null);
+ }
+
+ _allocator = s_DefaultAllocator;
+ }
+
+ return _allocator;
+ }
+
+ set {
+ _allocator = value;
+ }
+ }
}
}
diff --git a/mcs/class/referencesource/System.Web/Hosting/IISUnsafeMethods.cs b/mcs/class/referencesource/System.Web/Hosting/IISUnsafeMethods.cs
index c2282b5b8f0..965dadb4438 100644
--- a/mcs/class/referencesource/System.Web/Hosting/IISUnsafeMethods.cs
+++ b/mcs/class/referencesource/System.Web/Hosting/IISUnsafeMethods.cs
@@ -682,5 +682,30 @@ namespace System.Web.Hosting {
[In, MarshalAs(UnmanagedType.BStr)] string sectionName,
[In, MarshalAs(UnmanagedType.BStr)] string propertyName,
[Out, MarshalAs(UnmanagedType.Struct)] out object value); // marshaled as VARIANT
+
+ [DllImport(_IIS_NATIVE_DLL)]
+ [SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Justification = "We carefully control this method's callers.")]
+ internal static extern int MgdPushPromise(
+ [In] IntPtr context,
+ [In, MarshalAs(UnmanagedType.LPWStr)] string path,
+ [In, MarshalAs(UnmanagedType.LPWStr)] string queryString,
+ [In, MarshalAs(UnmanagedType.LPStr)] string method,
+ [In] int numHeaders,
+ [In, MarshalAs(UnmanagedType.LPArray, ArraySubType=UnmanagedType.LPStr)] string[] headersNames,
+ [In, MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPStr)] string[] headersValues);
+
+ [DllImport(_IIS_NATIVE_DLL)]
+ [SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Justification = "We carefully control this method's callers.")]
+ internal static extern bool MgdIsAppPoolShuttingDown();
+
+ [DllImport(_IIS_NATIVE_DLL)]
+ [SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Justification = "We carefully control this method's callers.")]
+ internal static extern int MgdGetTlsTokenBindingIdentifiers(
+ [In] IntPtr pHandler,
+ [In, Out] ref IntPtr tokenBindingHandle,
+ [Out] out IntPtr providedTokenIdentifier,
+ [Out] out uint providedTokenIdentifierSize,
+ [Out] out IntPtr referredTokenIdentifier,
+ [Out] out uint referredTokenIdentifierSize);
}
}
diff --git a/mcs/class/referencesource/System.Web/Hosting/IPipelineRuntime.cs b/mcs/class/referencesource/System.Web/Hosting/IPipelineRuntime.cs
index 49dc623a3b5..222d02f8af6 100644
--- a/mcs/class/referencesource/System.Web/Hosting/IPipelineRuntime.cs
+++ b/mcs/class/referencesource/System.Web/Hosting/IPipelineRuntime.cs
@@ -573,7 +573,17 @@ namespace System.Web.Hosting {
}
context.NotificationContext = new NotificationContext(flags /*CurrentNotificationFlags*/,
isReEntry);
+
+ Action<RequestNotificationStatus> verifierCheck = null;
+ if (AppVerifier.IsAppVerifierEnabled) {
+ verifierCheck = AppVerifier.GetRequestNotificationStatusCheckDelegate(context, (RequestNotification)currentNotification, isPostNotification);
+ }
+
status = HttpRuntime.ProcessRequestNotification(wr, context);
+
+ if (verifierCheck != null) {
+ AppVerifier.InvokeVerifierCheck(verifierCheck, status);
+ }
}
finally {
if (status != RequestNotificationStatus.Pending) {
diff --git a/mcs/class/referencesource/System.Web/Hosting/ISAPIWorkerRequest.cs b/mcs/class/referencesource/System.Web/Hosting/ISAPIWorkerRequest.cs
index 6b26e37c009..c89ea82f2a0 100644
--- a/mcs/class/referencesource/System.Web/Hosting/ISAPIWorkerRequest.cs
+++ b/mcs/class/referencesource/System.Web/Hosting/ISAPIWorkerRequest.cs
@@ -1649,7 +1649,7 @@ internal class ISAPIWorkerRequestInProc : ISAPIWorkerRequest {
protected const int NUM_BASIC_SERVER_VARIABLES = 12; // needed on every request
protected const int NUM_ADDITIONAL_SERVER_VARIABLES = 23; // needed when HttpRequest.ServerVariables is populated
- // These constants must be kept in [....] with g_szServerVariables and g_szUnicodeServerVariables in ecbdirect.cxx
+ // These constants must be kept in sync with g_szServerVariables and g_szUnicodeServerVariables in ecbdirect.cxx
protected const int LOGON_USER = 0;
protected const int AUTH_TYPE = 1;
@@ -1887,7 +1887,6 @@ internal class ISAPIWorkerRequestInProc : ISAPIWorkerRequest {
}
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
private String GetAdditionalServerVar(int index) {
if (_additionalServerVars == null)
GetAdditionalServerVariables();
@@ -2408,7 +2407,7 @@ internal class ISAPIWorkerRequestInProcForIIS6 : ISAPIWorkerRequestInProc {
CallEndOfRequestCallbackOnceAfterAllIoComplete();
}
else if (rc != 0 && async) {
- // on async failure default to [....] path
+ // on async failure default to sync path
async = false;
if (!inAsyncFlush) {
diff --git a/mcs/class/referencesource/System.Web/Hosting/ProcessHost.cs b/mcs/class/referencesource/System.Web/Hosting/ProcessHost.cs
index 7e7540030b5..84ef7393ae7 100644
--- a/mcs/class/referencesource/System.Web/Hosting/ProcessHost.cs
+++ b/mcs/class/referencesource/System.Web/Hosting/ProcessHost.cs
@@ -567,7 +567,7 @@ namespace System.Web.Hosting {
ISAPIApplicationHost appHost = CreateAppHost(appId, null);
- // get app domaoin protocol handler type from config
+ // get app domain protocol handler type from config
Type handlerType = GetAppDomainProtocolHandlerType(protocolId);
AppDomainProtocolHandler handler = null;
@@ -986,7 +986,7 @@ namespace System.Web.Hosting {
internal static void PreloadApplicationIfNotShuttingdown (string appId, LockableAppDomainContext ac) {
// If GL_STOP_LISTENING wasn't triggered, the reset is likely due to a configuration change.
- if (ProcessHost.DefaultHost != null && !HostingEnvironment.StopListeningWasCalled) {
+ if (ProcessHost.DefaultHost != null && !UnsafeIISMethods.MgdIsAppPoolShuttingDown()) {
// Start the new app on another thread instead of hijacking the current app unloading thread
ThreadPool.QueueUserWorkItem(new WaitCallback(delegate(object o) {
lock (ac) {
@@ -1007,7 +1007,7 @@ namespace System.Web.Hosting {
}));
}
}
-
+
// New for Dev10.
// creates a new AppDomain, preloads and calls user code in it
internal void PreloadApplicationIfRequired(
diff --git a/mcs/class/referencesource/System.Web/Hosting/TlsTokenBindingInfo.cs b/mcs/class/referencesource/System.Web/Hosting/TlsTokenBindingInfo.cs
new file mode 100644
index 00000000000..32c9a84a3bd
--- /dev/null
+++ b/mcs/class/referencesource/System.Web/Hosting/TlsTokenBindingInfo.cs
@@ -0,0 +1,31 @@
+//------------------------------------------------------------------------------
+// <copyright file="TlsTokenBindingInfo.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+//------------------------------------------------------------------------------
+
+namespace System.Web.Hosting {
+ using System;
+
+ internal sealed class TlsTokenBindingInfo : ITlsTokenBindingInfo {
+ private readonly byte[] _providedTokenBindingId;
+ private readonly byte[] _referredTokenBindingId;
+
+ internal TlsTokenBindingInfo(byte[] providedTokenBindingId, byte[] referredTokenBindingId) {
+ _providedTokenBindingId = providedTokenBindingId;
+ _referredTokenBindingId = referredTokenBindingId;
+ }
+
+ public byte[] GetProvidedTokenBindingId() {
+ return (_providedTokenBindingId != null)
+ ? (byte[])_providedTokenBindingId.Clone()
+ : null;
+ }
+
+ public byte[] GetReferredTokenBindingId() {
+ return (_referredTokenBindingId != null)
+ ? (byte[])_referredTokenBindingId.Clone()
+ : null;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Web/HttpApplication.cs b/mcs/class/referencesource/System.Web/HttpApplication.cs
index 9f8015b2527..9bc91f54b46 100644
--- a/mcs/class/referencesource/System.Web/HttpApplication.cs
+++ b/mcs/class/referencesource/System.Web/HttpApplication.cs
@@ -15,6 +15,7 @@ namespace System.Web {
using System.Linq;
using System.Net;
using System.Reflection;
+ using System.Runtime.CompilerServices;
using System.Runtime.ExceptionServices;
using System.Runtime.InteropServices;
using System.Runtime.Remoting.Messaging;
@@ -178,7 +179,7 @@ namespace System.Web {
// this is the per instance list that contains the events for each module
private PipelineModuleStepContainer[] _moduleContainers;
- // Byte array to be used by HttpRequest.GetEntireRawContent. Windows OS Bug 1632921
+ // Byte array to be used by HttpRequest.GetEntireRawContent. Windows OS
private byte[] _entityBuffer;
// Counts the number of code paths consuming this HttpApplication instance. When the counter hits zero,
@@ -186,6 +187,8 @@ namespace System.Web {
// This counter can be null if we're not using the new Task-friendly code paths.
internal CountdownTask ApplicationInstanceConsumersCounter;
+ private IAllocatorProvider _allocator;
+
//
// Public Application properties
//
@@ -301,7 +304,7 @@ namespace System.Web {
}
- // Used by HttpRequest.GetEntireRawContent. Windows OS Bug 1632921
+ // Used by HttpRequest.GetEntireRawContent. Windows OS
internal byte[] EntityBuffer
{
get
@@ -314,6 +317,27 @@ namespace System.Web {
}
}
+ // Provides fixed size reusable buffers per request
+ // Benefit:
+ // 1) Eliminates global locks - access to HttpApplication instance is lock free and no concurrent access is expected (by design).
+ // 36+ cores show really bad spin lock characteristics for short locks.
+ // 2) Better lifetime dynamics - Buffers increase/decrease as HttpApplication instances grow/shrink on demand.
+ internal IAllocatorProvider AllocatorProvider {
+ get {
+ if (_allocator == null) {
+ AllocatorProvider alloc = new AllocatorProvider();
+
+ alloc.CharBufferAllocator = new SimpleBufferAllocator<char>(BufferingParams.CHAR_BUFFER_SIZE);
+ alloc.IntBufferAllocator = new SimpleBufferAllocator<int>(BufferingParams.INT_BUFFER_SIZE);
+ alloc.IntPtrBufferAllocator = new SimpleBufferAllocator<IntPtr>(BufferingParams.INTPTR_BUFFER_SIZE);
+
+ Interlocked.CompareExchange(ref _allocator, alloc, null);
+ }
+
+ return _allocator;
+ }
+ }
+
internal void ClearError() {
_lastError = null;
}
@@ -533,6 +557,42 @@ namespace System.Web {
Monitor.Exit(_stepManager);
}
+ // Some frameworks built on top of the integrated pipeline call Flush() on background thread which will trigger nested
+ // RQ_SEND_RESPONSE notification and replace the old context.NotificationContext with the new context.NotificationContext.
+ // In order to maintain proper synchronization logic at the time when the completion callback is called we need to make sure
+ // we access the original context.NotificationContext (and don't touch the nested one).
+ // It will make sure that we read the correct NotificationContext
+ [MethodImpl(MethodImplOptions.NoInlining)]
+ private void GetNotifcationContextPropertiesUnderLock(ref bool isReentry, ref int eventCount) {
+ bool locked = false;
+ try {
+ AcquireNotifcationContextLock(ref locked);
+ isReentry = Context.NotificationContext.IsReEntry;
+ eventCount = CurrentModuleContainer.GetEventCount(Context.CurrentNotification, Context.IsPostNotification) - 1;
+ }
+ finally {
+ if (locked) {
+ ReleaseNotifcationContextLock();
+ }
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.NoInlining)] // Iniling this causes throughtput regression in ResumeStep
+ private void GetNotifcationContextProperties(ref bool isReentry, ref int eventCount) {
+ // Read optimistically (without lock)
+ var nc = Context.NotificationContext;
+ isReentry = nc.IsReEntry;
+ // We can continue optimistic read only if this is not reentry
+ if (!isReentry) {
+ eventCount = ModuleContainers[nc.CurrentModuleIndex].GetEventCount(nc.CurrentNotification, nc.IsPostNotification) - 1;
+ // Check if the optimistic read was consistent
+ if (object.ReferenceEquals(nc, Context.NotificationContext)) {
+ return;
+ }
+ }
+ GetNotifcationContextPropertiesUnderLock(ref isReentry, ref eventCount);
+ }
+
private void RaiseOnError() {
EventHandler handler = (EventHandler)Events[EventErrorRecorded];
if (handler != null) {
@@ -709,7 +769,7 @@ namespace System.Web {
}
//
- // [....] event hookup
+ // Sync event hookup
//
@@ -1647,7 +1707,7 @@ namespace System.Web {
asyncHandler.CreateExecutionSteps(this, steps);
}
- // [....]
+ // sync
EventHandler handler = (EventHandler)Events[eventIndex];
if (handler != null) {
@@ -1749,6 +1809,11 @@ namespace System.Web {
_moduleCollection = null;
}
+
+ // Release buffers
+ if (_allocator != null) {
+ _allocator.TrimMemory();
+ }
}
private void BuildEventMaskDictionary(Dictionary<string, RequestNotification> eventMask) {
@@ -2333,7 +2398,7 @@ namespace System.Web {
Debug.Trace("PipelineRuntime", "RegisterEventSubscriptionsWithIIS: name=" + CurrentModuleCollectionKey
+ ", type=" + httpModule.GetType().FullName + "\n");
- // make sure collections are in [....]
+ // make sure collections are in sync
Debug.Assert(moduleInfo.Name == _currentModuleCollectionKey, "moduleInfo.Name == _currentModuleCollectionKey");
#endif
@@ -2481,7 +2546,7 @@ namespace System.Web {
hasEvents = true;
}
- // [....]
+ // sync
EventHandler handler = (EventHandler)Events[eventIndex];
if (handler != null) {
@@ -2666,7 +2731,7 @@ namespace System.Web {
HttpRuntime.InitializationException == null &&
_context.FirstRequest &&
_context.Error == null) {
- UnsafeNativeMethods.EndPrefetchActivity((uint)HttpRuntime.AppDomainAppId.GetHashCode());
+ UnsafeNativeMethods.EndPrefetchActivity((uint)StringUtil.GetNonRandomizedHashCode(HttpRuntime.AppDomainAppId));
}
}
RecycleHandlers();
@@ -2956,12 +3021,10 @@ namespace System.Web {
}
bool IExecutionStep.CompletedSynchronously {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get { return true;}
}
bool IExecutionStep.IsCancellable {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get { return true; }
}
}
@@ -3917,14 +3980,16 @@ namespace System.Web {
bool isSynchronousCompletion = false;
bool needToComplete = false;
bool stepCompletedSynchronously = false;
- int currentModuleLastEventIndex = _application.CurrentModuleContainer.GetEventCount(context.CurrentNotification, context.IsPostNotification) - 1;
+ bool isReEntry = false;
+ int currentModuleLastEventIndex = -1;
+ _application.GetNotifcationContextProperties(ref isReEntry, ref currentModuleLastEventIndex);
+
CountdownTask appInstanceConsumersCounter = _application.ApplicationInstanceConsumersCounter;
using (context.RootedObjects.WithinTraceBlock()) {
// DevDiv Bugs 187441: IIS7 Integrated Mode: Problem flushing Response from background threads in IIS7 integrated mode
- bool isReEntry = context.NotificationContext.IsReEntry;
if (!isReEntry) // currently we only re-enter for SendResponse
- {
+ {
syncContext.AssociateWithCurrentThread();
}
try {
@@ -3944,10 +4009,10 @@ namespace System.Web {
// a SendResponse, at which point it blocks until the SendResponse notification completes.
if (!isReEntry) { // currently we only re-enter for SendResponse
- // DevDiv 482614 (Sharepoint Bug 3137123)
- // Async completion or SendResponse can happen on a background thread while the thread that called IndicateCompletion has not unwound yet
- // Therefore (InIndicateCompletion == true) is not a sufficient evidence that we can use the ThreadContext stored in IndicateCompletionContext
- // To avoid using other thread's ThreadContext we use IndicateCompletionContext only if ThreadInsideIndicateCompletion is indeed our thread
+ // DevDiv 482614 (Sharepoint
+
+
+
if (context.InIndicateCompletion && context.ThreadInsideIndicateCompletion == Thread.CurrentThread) {
// we already have a ThreadContext
threadContext = context.IndicateCompletionContext;
@@ -3988,7 +4053,14 @@ namespace System.Web {
}
// check for any outstanding async operations
- if (syncContext.PendingCompletion(_resumeStepsWaitCallback)) {
+ // DevDiv 1020085: User code may leave pending async completions on the synchronization context
+ // while processing nested (isReEntry == true) and not nested (isReEntry == false) notifications.
+ // In both cases only the non nested notification which has proper synchronization should handle it.
+ if (!isReEntry && syncContext.PendingCompletion(_resumeStepsWaitCallback)) {
+ // Background flushes may trigger RQ_SEND_RESPONSE notifications which will set new context.NotificationContext
+ // Synchronize access to context.NotificationContext to make sure we update the correct NotificationContext instance
+ _application.AcquireNotifcationContextLock(ref locked);
+
// Since the step completed asynchronously, this thread must return RequestNotificationStatus.Pending to IIS,
// and the async completion of this step must call IIS7WorkerRequest::PostCompletion. The async completion of
// this step will call ResumeSteps again.
@@ -4015,7 +4087,7 @@ namespace System.Web {
break;
}
- // [....] case (we might be able to stay in managed code and execute another notification)
+ // sync case (we might be able to stay in managed code and execute another notification)
if (needToFinishRequest || UnsafeIISMethods.MgdGetNextNotification(wr.RequestContext, RequestNotificationStatus.Continue) != 1) {
isSynchronousCompletion = true;
needToComplete = true;
@@ -4079,14 +4151,14 @@ namespace System.Web {
if (threadContext != null) {
if (context.InIndicateCompletion) {
if (isSynchronousCompletion) {
- // this is a [....] completion on an IIS thread
+ // this is a sync completion on an IIS thread
threadContext.Synchronize();
// Note for DevDiv 482614 fix:
// If this threadContext is from IndicateCompletionContext (e.g. this thread called IndicateCompletion)
// then we continue reusing this thread and only undo impersonation before unwinding back to IIS.
//
// If this threadContext was created while another thread was and still is in IndicateCompletion call
- // (e.g. [....] or async flush on a background thread from native code, not managed since isReEnty==false)
+ // (e.g. sync or async flush on a background thread from native code, not managed since isReEnty==false)
// then we can not reuse this thread and this threadContext will be cleaned before we leave ResumeSteps
// (because needToDisassociateThreadContext was set to true when we created this threadContext)
@@ -4118,7 +4190,7 @@ namespace System.Web {
}
else if (isSynchronousCompletion) {
Debug.Assert(needToDisassociateThreadContext == true, "needToDisassociateThreadContext MUST BE true");
- // this is a [....] completion on an IIS thread
+ // this is a sync completion on an IIS thread
threadContext.Synchronize();
// get ready to call IndicateCompletion
context.IndicateCompletionContext = threadContext;
diff --git a/mcs/class/referencesource/System.Web/HttpBufferlessInputStream.cs b/mcs/class/referencesource/System.Web/HttpBufferlessInputStream.cs
index ea274006e94..dc3174c8fa8 100644
--- a/mcs/class/referencesource/System.Web/HttpBufferlessInputStream.cs
+++ b/mcs/class/referencesource/System.Web/HttpBufferlessInputStream.cs
@@ -164,7 +164,7 @@ namespace System.Web {
}
}
else {
- // perform a [....] read
+ // perform a sync read
return base.BeginRead(buffer, offset, count, callback, state);
}
}
diff --git a/mcs/class/referencesource/System.Web/HttpCachePolicy.cs b/mcs/class/referencesource/System.Web/HttpCachePolicy.cs
index ca6e24574f0..2ec21dcb3e1 100644
--- a/mcs/class/referencesource/System.Web/HttpCachePolicy.cs
+++ b/mcs/class/referencesource/System.Web/HttpCachePolicy.cs
@@ -315,9 +315,10 @@ namespace System.Web {
HttpCacheValidateHandler handler = _validationCallbackInfo[i].handler;
string targetTypeName = System.Web.UI.Util.GetAssemblyQualifiedTypeName(handler.Method.ReflectedType);
string methodName = handler.Method.Name;
- callbackInfos[i] = targetTypeName;
- callbackInfos[i+1] = methodName;
+ callbackInfos[2 * i] = targetTypeName;
+ callbackInfos[2 * i + 1] = methodName;
}
+
_validationCallbackInfoForSerialization = callbackInfos;
}
@@ -339,7 +340,7 @@ namespace System.Web {
throw new SerializationException(SR.GetString(SR.Type_cannot_be_resolved, targetTypeName));
}
HttpCacheValidateHandler handler = (HttpCacheValidateHandler) Delegate.CreateDelegate(typeof(HttpCacheValidateHandler), target, methodName);
- callbackInfos[i] = new ValidationCallbackInfo(handler, null);
+ callbackInfos[i / 2] = new ValidationCallbackInfo(handler, null);
}
_validationCallbackInfo = callbackInfos;
}
@@ -772,7 +773,7 @@ namespace System.Web {
Debug.Assert((_utcTimestampCreated == DateTime.MinValue && _utcTimestampRequest == DateTime.MinValue) ||
(_utcTimestampCreated != DateTime.MinValue && _utcTimestampRequest != DateTime.MinValue),
- "_utcTimestampCreated and _utcTimestampRequest are out of [....] in UpdateCachedHeaders");
+ "_utcTimestampCreated and _utcTimestampRequest are out of sync in UpdateCachedHeaders");
if (_utcTimestampCreated == DateTime.MinValue) {
_utcTimestampCreated = _utcTimestampRequest = response.Context.UtcTimestamp;
@@ -945,8 +946,8 @@ namespace System.Web {
}
if (!omitVaryStar) {
- // Dev10 Bug 425047 - OutputCache Location="ServerAndClient" (HttpCacheability.ServerAndPrivate) should
- // not use "Vary: *" so the response can be cached on the client
+ // Dev10
+
if (_varyByCustom != null || (_varyByParams.IsModified() && !_varyByParams.IgnoreParams)) {
varyByHeaders = "*";
}
@@ -1154,7 +1155,7 @@ namespace System.Web {
internal bool IsKernelCacheable(HttpRequest request, bool enableKernelCacheForVaryByStar) {
return _cacheability == HttpCacheability.Public
- && !_hasUserProvidedDependencies // Consider ([....]): rework dependency model to support user-provided dependencies
+ && !_hasUserProvidedDependencies // Consider (Microsoft): rework dependency model to support user-provided dependencies
&& !_hasSetCookieHeader
&& !_noServerCaching
&& HasExpirationPolicy()
diff --git a/mcs/class/referencesource/System.Web/HttpContext.cs b/mcs/class/referencesource/System.Web/HttpContext.cs
index 357c37bbc9c..5dff172707b 100644
--- a/mcs/class/referencesource/System.Web/HttpContext.cs
+++ b/mcs/class/referencesource/System.Web/HttpContext.cs
@@ -730,7 +730,7 @@ namespace System.Web {
// which doesn't fit our expected patterns and where that code likely has negative side effects.
//
// This flag is respected only by AspNetSynchronizationContext; it has no effect when the
- // legacy [....] context is in use.
+ // legacy sync context is in use.
[EditorBrowsable(EditorBrowsableState.Advanced)]
public bool AllowAsyncDuringSyncStages {
get {
@@ -757,6 +757,15 @@ namespace System.Web {
}
else {
_appInstance = value;
+
+ // Use HttpApplication instance custom allocator provider
+ if (_isIntegratedPipeline) {
+ // The provider allows null - everyone should fallback to default implementation
+ IAllocatorProvider allocator = _appInstance != null ? _appInstance.AllocatorProvider : null;
+
+ _response.SetAllocatorProvider(allocator);
+ ((IIS7WorkerRequest)_wr).AllocatorProvider = allocator;
+ }
}
}
}
@@ -902,7 +911,6 @@ namespace System.Web {
/// </para>
/// </devdoc>
public HttpRequest Request {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
if (HideRequestResponse)
throw new HttpException(SR.GetString(SR.Request_not_available));
@@ -918,7 +926,6 @@ namespace System.Web {
/// </para>
/// </devdoc>
public HttpResponse Response {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
if (HideRequestResponse || HasWebSocketRequestTransitionCompleted)
throw new HttpException(SR.GetString(SR.Response_not_available));
@@ -1306,7 +1313,7 @@ namespace System.Web {
return _rootedObjects;
}
set {
- // [....] the Principal between the containers
+ // Sync the Principal between the containers
SwitchPrincipalContainer(value);
_rootedObjects = value;
}
@@ -1723,7 +1730,6 @@ namespace System.Web {
*/
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
internal void BeginCancellablePeriod() {
// It could be caused by an exception in OnThreadStart
if (Volatile.Read(ref _timeoutStartTimeUtcTicks) == -1) {
@@ -1741,7 +1747,6 @@ namespace System.Web {
Interlocked.CompareExchange(ref _timeoutState, 0, 1);
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
internal void WaitForExceptionIfCancelled() {
while (Volatile.Read(ref _timeoutState) == -1)
Thread.Sleep(100);
@@ -2256,7 +2261,7 @@ namespace System.Web {
return CultureUtil.CreateReadOnlyCulture(userLanguages, requireSpecific);
}
catch {
- return CultureUtil.CreateReadOnlyCulture(configString, requireSpecific);
+ return CultureUtil.CreateReadOnlyCulture(configString.Substring(5 /* "auto:".Length */), requireSpecific);
}
}
else {
diff --git a/mcs/class/referencesource/System.Web/HttpCookieCollection.cs b/mcs/class/referencesource/System.Web/HttpCookieCollection.cs
index 8858577a9a7..64661315477 100644
--- a/mcs/class/referencesource/System.Web/HttpCookieCollection.cs
+++ b/mcs/class/referencesource/System.Web/HttpCookieCollection.cs
@@ -53,7 +53,7 @@ namespace System.Web {
}
// This copy constructor is used by the granular request validation feature. The collections are mutable once
- // created, but nobody should ever be mutating them, so it's ok for these to be out of [....]. Additionally,
+ // created, but nobody should ever be mutating them, so it's ok for these to be out of sync. Additionally,
// we don't copy _response since this should only ever be called for the request cookies.
internal HttpCookieCollection(HttpCookieCollection col)
: base(StringComparer.OrdinalIgnoreCase) {
diff --git a/mcs/class/referencesource/System.Web/HttpHeaderCollection.cs b/mcs/class/referencesource/System.Web/HttpHeaderCollection.cs
index b5d194025ae..806a1aaf8fa 100644
--- a/mcs/class/referencesource/System.Web/HttpHeaderCollection.cs
+++ b/mcs/class/referencesource/System.Web/HttpHeaderCollection.cs
@@ -146,7 +146,7 @@ namespace System.Web {
string svValue = replace ? value : base.Get(name);
HttpServerVarsCollection serverVars = _request.ServerVariables as HttpServerVarsCollection;
if (serverVars != null) {
- serverVars.SynchronizeServerVariable("HTTP_" + name.ToUpper(CultureInfo.InvariantCulture).Replace('-', '_'), svValue);
+ serverVars.SynchronizeServerVariable("HTTP_" + name.ToUpper(CultureInfo.InvariantCulture).Replace('-', '_'), svValue, ensurePopulated: false);
}
// invalidate Params collection
@@ -194,7 +194,7 @@ namespace System.Web {
// update managed copy of server variable
HttpServerVarsCollection serverVars = _request.ServerVariables as HttpServerVarsCollection;
if (serverVars != null) {
- serverVars.SynchronizeServerVariable("HTTP_" + name.ToUpper(CultureInfo.InvariantCulture).Replace('-', '_'), null);
+ serverVars.SynchronizeServerVariable("HTTP_" + name.ToUpper(CultureInfo.InvariantCulture).Replace('-', '_'), null, ensurePopulated: false);
}
// invalidate Params collection
diff --git a/mcs/class/referencesource/System.Web/HttpRequest.cs b/mcs/class/referencesource/System.Web/HttpRequest.cs
index 5b5f88b5cce..4f13464fee9 100644
--- a/mcs/class/referencesource/System.Web/HttpRequest.cs
+++ b/mcs/class/referencesource/System.Web/HttpRequest.cs
@@ -94,6 +94,8 @@ namespace System.Web {
private Uri _referrer;
private HttpInputStream _inputStream;
private HttpClientCertificate _clientCertificate;
+ private bool _tlsTokenBindingInfoResolved;
+ private ITlsTokenBindingInfo _tlsTokenBindingInfo;
private WindowsIdentity _logonUserIdentity;
[DoNotReset]
private RequestContext _requestContext;
@@ -143,9 +145,11 @@ namespace System.Web {
private const int needToValidatePathInfo = 0x0200;
private const int hasValidateInputBeenCalled = 0x8000;
private const int needToValidateCookielessHeader = 0x10000;
-
// True if granular request validation is enabled (validationmode >= 4.5); false if all collections validated eagerly.
- private bool _enableGranularValidation;
+ private const int granularValidationEnabled = 0x40000000;
+ // True if request validation is suppressed (validationMode == 0.0); false if validation can be enabled via a call to ValidateInput().
+ private const int requestValidationSuppressed = unchecked((int)0x80000000);
+
// Browser caps one-time evaluator objects
internal static object s_browserLock = new object();
@@ -530,7 +534,6 @@ namespace System.Web {
return value;
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
private void AddServerVariableToCollection(String name, DynamicServerVariable var) {
// dynamic server var
_serverVariables.AddDynamic(name, var);
@@ -2537,10 +2540,19 @@ namespace System.Web {
}
}
+ private bool GranularValidationEnabled {
+ get { return _flags[granularValidationEnabled]; }
+ }
+
+ private bool RequestValidationSuppressed {
+ get { return _flags[requestValidationSuppressed]; }
+ }
+
// Validate that the input from the browser is safe.
public void ValidateInput() {
- // it doesn't make sense to call this multiple times per request
- if (ValidateInputWasCalled) {
+ // It doesn't make sense to call this multiple times per request.
+ // Additionally, if validation was suppressed, no-op now.
+ if (ValidateInputWasCalled || RequestValidationSuppressed) {
return;
}
@@ -2620,12 +2632,19 @@ namespace System.Web {
}
// only enable request validation for the entire pipeline in v4.0+ of the framework
- Version targetVersion = runtimeSection.RequestValidationMode;
- if (targetVersion >= VersionUtil.Framework40) {
+ Version requestValidationMode = runtimeSection.RequestValidationMode;
+ if (requestValidationMode == VersionUtil.Framework00) {
+ // DevDiv #412689: <httpRuntime requestValidationMode="0.0" /> should suppress validation for
+ // the entire request, even if a call to ValidateInput() takes place. The request path
+ // characters and cookieless header (see 'needToValidateCookielessHeader') are still validated
+ // if necessary. These can be suppressed via <httpRuntime requestPathInvalidChars="" />.
+ _flags[requestValidationSuppressed] = true;
+ }
+ else if (requestValidationMode >= VersionUtil.Framework40) {
ValidateInput();
// Mode v4.5+ implies granular request validation
- if (targetVersion >= VersionUtil.Framework45) {
+ if (requestValidationMode >= VersionUtil.Framework45) {
EnableGranularRequestValidation();
}
}
@@ -2694,7 +2713,7 @@ namespace System.Web {
}
internal void EnableGranularRequestValidation() {
- _enableGranularValidation = true;
+ _flags[granularValidationEnabled] = true;
}
private static string GetRequestValidationSourceName(RequestValidationSource requestCollection) {
@@ -2714,7 +2733,7 @@ namespace System.Web {
}
private void ValidateHttpValueCollection(HttpValueCollection collection, RequestValidationSource requestCollection) {
- if (_enableGranularValidation) {
+ if (GranularValidationEnabled) {
// Granular request validation is enabled - validate collection entries only as they're accessed.
collection.EnableGranularValidation((key, value) => ValidateString(value, key, requestCollection));
}
@@ -2739,7 +2758,7 @@ namespace System.Web {
}
private void ValidateCookieCollection(HttpCookieCollection cc) {
- if (_enableGranularValidation) {
+ if (GranularValidationEnabled) {
// Granular request validation is enabled - validate collection entries only as they're accessed.
cc.EnableGranularValidation((key, value) => ValidateString(value, key, RequestValidationSource.Cookies));
}
@@ -2758,7 +2777,7 @@ namespace System.Web {
}
private void ValidatePostedFileCollection(HttpFileCollection col) {
- if (_enableGranularValidation) {
+ if (GranularValidationEnabled) {
// Granular request validation is enabled - validate collection entries only as they're accessed.
col.EnableGranularValidation((key, value) => ValidateString(value, "filename", RequestValidationSource.Files));
}
@@ -3007,8 +3026,8 @@ namespace System.Web {
_url = null;
Unvalidated.InvalidateUrl();
- // DevDiv Bug 164390: calling the worker request's RawUrl method here
- // to ensure we cache the original request Url in Url Mapping scenarios.
+ // DevDiv
+
string temp = RawUrl;
// remember the new path
@@ -3047,8 +3066,8 @@ namespace System.Web {
_url = null;
Unvalidated.InvalidateUrl();
- // DevDiv Bug 164390: calling the worker request's RawUrl method here
- // to ensure we cache the original request Url in Url Mapping scenarios.
+ // DevDiv
+
string temp = RawUrl;
if (newPathInfo == null) {
@@ -3134,6 +3153,31 @@ namespace System.Web {
}
}
+ // Retrieves the TLS token bindings for the current request.
+ // TLS token bindings help mitigate the risk of impersonation by an
+ // attacker in the event an authenticated client's bearer tokens are
+ // somehow exfiltrated from the client's machine.
+ // More info: https://datatracker.ietf.org/doc/draft-popov-token-binding/
+ //
+ // This API requires that the server be running the IIS integrated mode
+ // pipeline and that the server be Win10 or later. If these conditions
+ // do not hold, this API will return null. This API could also return
+ // null if the client doesn't support the TLS token binding protocol or
+ // if the server has disabled support for the protocol.
+ public ITlsTokenBindingInfo TlsTokenBindingInfo {
+ get {
+ if (!_tlsTokenBindingInfoResolved) {
+ IIS7WorkerRequest iis7wr = _wr as IIS7WorkerRequest;
+ if (iis7wr != null) {
+ _tlsTokenBindingInfo = iis7wr.GetTlsTokenBindingInfo(); // could return null
+ }
+ _tlsTokenBindingInfoResolved = true;
+ }
+
+ return _tlsTokenBindingInfo;
+ }
+ }
+
// Only supported on IIS7 and later.
// This is a wrapper for the IIS 7.0 IHttpRequest::InsertEntityBody method.
// If you want to provide IIS with a copy of the request entity previously read by ASP.NET,
diff --git a/mcs/class/referencesource/System.Web/HttpResponse.cs b/mcs/class/referencesource/System.Web/HttpResponse.cs
index 4292770411d..07a14440e02 100644
--- a/mcs/class/referencesource/System.Web/HttpResponse.cs
+++ b/mcs/class/referencesource/System.Web/HttpResponse.cs
@@ -11,6 +11,7 @@ namespace System.Web {
using System.Text;
using System.Threading;
+ using System.Threading.Tasks;
using System.Runtime.Serialization;
using System.IO;
using System.Collections;
@@ -169,6 +170,12 @@ namespace System.Web {
}
}
+ internal void SetAllocatorProvider(IAllocatorProvider allocator) {
+ if (_httpWriter != null) {
+ _httpWriter.AllocatorProvider = allocator;
+ }
+ }
+
/*
* Cleanup code
*/
@@ -719,7 +726,7 @@ namespace System.Web {
return _wr.BeginFlush(callback, state);
}
- // perform a [....] flush since async is not supported
+ // perform a sync flush since async is not supported
FlushAsyncResult ar = new FlushAsyncResult(callback, state);
try {
Flush(false);
@@ -745,7 +752,7 @@ namespace System.Web {
return;
}
- // finish [....] flush since async is not supported
+ // finish sync flush since async is not supported
if (asyncResult == null)
throw new ArgumentNullException("asyncResult");
FlushAsyncResult ar = asyncResult as FlushAsyncResult;
@@ -757,6 +764,10 @@ namespace System.Web {
}
}
+ public Task FlushAsync() {
+ return Task.Factory.FromAsync(BeginFlush, EndFlush, state: null);
+ }
+
// WOS 1555777: kernel cache support
// If the response can be kernel cached, return the kernel cache key;
// otherwise return null. The kernel cache key is used to invalidate
@@ -1240,6 +1251,13 @@ namespace System.Web {
}
}
+ // Show config source only on local request for security reasons
+ // Config file snippet may unintentionally reveal sensitive information (not related to the error)
+ ConfigErrorFormatter configErrorFormatter = errorFormatter as ConfigErrorFormatter;
+ if (configErrorFormatter != null) {
+ configErrorFormatter.AllowSourceCode = Request.IsLocal;
+ }
+
return errorFormatter;
}
@@ -1350,7 +1368,7 @@ namespace System.Web {
// the <customErrors> element to control this behavior.
if (customErrorsSetting.AllowNestedErrors) {
- // The user has set the compat switch to use the original (pre-bug fix) behavior.
+ // The user has set the compat switch to use the original (pre-
goto case RedirectToErrorPageStatus.NotAttempted;
}
@@ -2904,6 +2922,76 @@ namespace System.Web {
}
}
+ /// <devdoc>
+ /// <para>Allows HTTP/2 Server Push</para>
+ /// </devdoc>
+ public void PushPromise(string path) {
+ //
+
+
+ PushPromise(path, method: "GET", headers: null);
+ }
+
+ /// <devdoc>
+ /// <para>Allows HTTP/2 Server Push</para>
+ /// </devdoc>
+ public void PushPromise(string path, string method, NameValueCollection headers) {
+ // PushPromise is non-deterministic and application shouldn't have logic that depends on it.
+ // It's only purpose is performance advantage in some cases.
+ // There are many conditions (protocol and implementation) that may cause to
+ // ignore the push requests completely.
+ // The expectation is based on fire-and-forget
+
+ if (path == null) {
+ throw new ArgumentNullException("path");
+ }
+
+ if (method == null) {
+ throw new ArgumentNullException("method");
+ }
+
+ // Extract an optional query string
+ string queryString = string.Empty;
+ int i = path.IndexOf('?');
+
+ if (i >= 0) {
+ if (i < path.Length - 1) {
+ queryString = path.Substring(i + 1);
+ }
+
+ // Remove the query string portion from the path
+ path = path.Substring(0, i);
+ }
+
+
+ // Only virtual path is allowed:
+ // "/path" - origin relative
+ // "~/path" - app relative
+ // "path" - request relative
+ // "../path" - reduced
+ if (string.IsNullOrEmpty(path) || !UrlPath.IsValidVirtualPathWithoutProtocol(path)) {
+ throw new ArgumentException(SR.GetString(SR.Invalid_path_for_push_promise, path));
+ }
+
+ VirtualPath virtualPath = Request.FilePathObject.Combine(VirtualPath.Create(path));
+
+ try {
+ if (!HttpRuntime.UseIntegratedPipeline) {
+ throw new PlatformNotSupportedException(SR.GetString(SR.Requires_Iis_Integrated_Mode));
+ }
+
+ // Do push promise
+ IIS7WorkerRequest wr = (IIS7WorkerRequest) _wr;
+ wr.PushPromise(virtualPath.VirtualPathString, queryString, method, headers);
+ }
+ catch (PlatformNotSupportedException e) {
+ // Ignore errors if push promise is not supported
+ if (Context.TraceIsEnabled) {
+ Context.Trace.Write("aspx", "Push promise is not supported", e);
+ }
+ }
+ }
+
//
// Deprecated ASP compatibility methods and properties
//
@@ -3196,10 +3284,10 @@ namespace System.Web {
}
private String UrlEncodeIDNSafe(String url) {
- // Bug 86594: Should not encode the domain part of the url. For example,
- // http://Übersite/Überpage.aspx should only encode the 2nd Ü.
- // To accomplish this we must separate the scheme+host+port portion of the url from the path portion,
- // encode the path portion, then reconstruct the url.
+ //
+
+
+
Debug.Assert(!url.Contains("?"), "Querystring should have been stripped off.");
string schemeAndAuthority;
@@ -3275,7 +3363,7 @@ namespace System.Web {
// DevDiv #782830: Provide a hook where the application can change the response status code
// or response headers.
- if (!_onSendingHeadersSubscriptionQueue.IsEmpty) {
+ if (sendHeaders && !_onSendingHeadersSubscriptionQueue.IsEmpty) {
_onSendingHeadersSubscriptionQueue.FireAndComplete(cb => cb(Context));
}
diff --git a/mcs/class/referencesource/System.Web/HttpRuntime.cs b/mcs/class/referencesource/System.Web/HttpRuntime.cs
index 52b6fd197e0..03161561576 100644
--- a/mcs/class/referencesource/System.Web/HttpRuntime.cs
+++ b/mcs/class/referencesource/System.Web/HttpRuntime.cs
@@ -402,11 +402,11 @@ namespace System.Web {
// Monitor renames to directories we are watching, and notifications on the bin directory
//
// Note that this must be the first monitoring that we do of the application directory.
- // There is a bug in Windows 2000 Server where notifications on UNC shares do not
- // happen correctly if:
- // 1. the directory is monitored for regular notifications
- // 2. the directory is then monitored for directory renames
- // 3. the directory is monitored again for regular notifications
+ // There is a
+
+
+
+
StartMonitoringDirectoryRenamesAndBinDirectory();
// Initialize ObjectCacheHost before config is read, since config relies on the cache
@@ -873,9 +873,10 @@ namespace System.Web {
AppDomain appDomain = Thread.GetDomain();
string codegenBase;
-
+
+ // devdiv 1038337. Passing the corresponding IsDevelopmentEnvironment flag to ConstructSimpleAppName
string simpleAppName = System.Web.Hosting.AppManagerAppDomainFactory.ConstructSimpleAppName(
- AppDomainAppVirtualPath);
+ AppDomainAppVirtualPath, HostingEnvironment.IsDevelopmentEnvironment);
string tempDirectory = null;
@@ -1412,7 +1413,6 @@ namespace System.Web {
}
internal static bool UseIntegratedPipeline {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
return _useIntegratedPipeline;
}
@@ -1744,7 +1744,7 @@ namespace System.Web {
}
/*
- * Finish processing request, [....] or async
+ * Finish processing request, sync or async
*/
private void FinishRequest(HttpWorkerRequest wr, HttpContext context, Exception e) {
HttpResponse response = context.Response;
@@ -1899,7 +1899,7 @@ namespace System.Web {
catch (Exception e) {
Debug.Trace("AppDomainFactory", "AppDomain.Unload exception: " + e + "; Id=" + _appDomainAppId);
if (!BuildManagerHost.InClientBuildManager) {
- // Avoid calling Exception.ToString if we are in the ClientBuildManager (Dev10 bug 824659)
+ // Avoid calling Exception.ToString if we are in the ClientBuildManager (Dev10
AddAppDomainTraceMessage("Unload Exception: " + e);
}
throw;
@@ -2270,7 +2270,7 @@ namespace System.Web {
+ ", ShutdownMessage=" + _theRuntime._shutDownMessage);
if (String.IsNullOrEmpty(stackTrace) && !BuildManagerHost.InClientBuildManager) {
- // Avoid calling Environment.StackTrace if we are in the ClientBuildManager (Dev10 bug 824659)
+ // Avoid calling Environment.StackTrace if we are in the ClientBuildManager (Dev10
// Instrument to be able to see what's causing a shutdown
new EnvironmentPermission(PermissionState.Unrestricted).Assert();
diff --git a/mcs/class/referencesource/System.Web/HttpServerVarsCollection.cs b/mcs/class/referencesource/System.Web/HttpServerVarsCollection.cs
index 68622b1950c..aef84223a55 100644
--- a/mcs/class/referencesource/System.Web/HttpServerVarsCollection.cs
+++ b/mcs/class/referencesource/System.Web/HttpServerVarsCollection.cs
@@ -13,6 +13,7 @@
namespace System.Web {
using System;
using System.Collections;
+ using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.Serialization;
using System.Security.Permissions;
@@ -24,6 +25,7 @@ namespace System.Web {
private bool _populated;
private HttpRequest _request;
private IIS7WorkerRequest _iis7workerRequest;
+ private List<HttpServerVarsCollectionEntry> _unsyncedEntries;
// We preallocate the base collection with a size that should be sufficient
// to store all server variables w/o having to expand
@@ -47,7 +49,6 @@ namespace System.Web {
_request = null;
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
internal void AddStatic(String name, String value) {
if (value == null)
value = String.Empty;
@@ -61,7 +62,6 @@ namespace System.Web {
BaseAdd(name, new HttpServerVarsCollectionEntry(name, var));
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
private String GetServerVar(Object e) {
HttpServerVarsCollectionEntry entry = (HttpServerVarsCollectionEntry)e;
return (entry != null) ? entry.GetValue(_request) : null;
@@ -77,6 +77,22 @@ namespace System.Web {
MakeReadWrite();
_request.FillInServerVariablesCollection();
+ // Add all unsynchronized entries, if any
+ if (_unsyncedEntries != null) {
+ foreach (var entry in _unsyncedEntries) {
+ var existingEntry = (HttpServerVarsCollectionEntry)BaseGet(entry.Name);
+ if (existingEntry != null && existingEntry.IsDynamic) {
+ // Exisiting dynamic server variables cannot be modified - ignore the new value
+ continue;
+ }
+
+ InvalidateCachedArrays();
+ BaseSet(entry.Name, entry); // Update an existing entry, or create one if it's new
+ }
+
+ _unsyncedEntries.Clear();
+ }
+
if (_iis7workerRequest == null) {
MakeReadOnly();
}
@@ -239,13 +255,23 @@ namespace System.Web {
}
// updates managed copy of server variable with current value from native header block
- internal void SynchronizeServerVariable(String name, String value) {
+ internal void SynchronizeServerVariable(String name, String value, bool ensurePopulated = true) {
if (name == null) {
throw new ArgumentNullException("name");
}
if (value != null) {
- SetServerVariableManagedOnly(name, value);
+ if (this._populated || ensurePopulated) {
+ SetServerVariableManagedOnly(name, value);
+ }
+ else {
+ // Lazy synchronization - when populate is indeed required
+ if (_unsyncedEntries == null) {
+ _unsyncedEntries = new List<HttpServerVarsCollectionEntry>();
+ }
+
+ _unsyncedEntries.Add(new HttpServerVarsCollectionEntry(name, value));
+ }
}
else {
base.Remove(name);
@@ -295,19 +321,16 @@ namespace System.Web {
_request.InvalidateParams();
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public override String Get(int index) {
Populate();
return GetServerVar(BaseGet(index));
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public override String[] GetValues(int index) {
String s = Get(index);
return(s != null) ? new String[1] { s} : null;
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public override String GetKey(int index) {
Populate();
return base.GetKey(index);
diff --git a/mcs/class/referencesource/System.Web/HttpWriter.cs b/mcs/class/referencesource/System.Web/HttpWriter.cs
index 13aebbf55a9..f2e757fb664 100644
--- a/mcs/class/referencesource/System.Web/HttpWriter.cs
+++ b/mcs/class/referencesource/System.Web/HttpWriter.cs
@@ -39,6 +39,8 @@ namespace System.Web {
internal const int MAX_FREE_CHAR_BUFFERS = 64; // keep this number of unused buffers
internal const int MAX_BYTES_TO_COPY = 128; // copy results of char conversion vs using recycleable buffers
internal const int MAX_RESOURCE_BYTES_TO_COPY = 4*1024; // resource strings below this size are copied to buffers
+ internal const int INT_BUFFER_SIZE = 128; // default size for int[] buffers
+ internal const int INTPTR_BUFFER_SIZE = 128; // default size for IntPtr[] buffers
}
/*
@@ -86,11 +88,6 @@ namespace System.Web {
internal sealed class HttpResponseBufferElement : HttpBaseMemoryResponseBufferElement, IHttpResponseElement {
private byte[] _data;
- private static UbyteBufferAllocator s_Allocator =
- new UbyteBufferAllocator(BufferingParams.OUTPUT_BUFFER_SIZE,
- BufferingParams.MAX_FREE_OUTPUT_BUFFERS);
-
-
/*
* Constructor that accepts the data buffer and holds on to it
*/
@@ -720,7 +717,7 @@ namespace System.Web {
return;
}
- // Dev10 Bug 507392: Do as Stream does.
+ // Dev10
if (buffer == null)
throw new ArgumentNullException("buffer");
if (offset < 0)
@@ -798,9 +795,8 @@ namespace System.Web {
private int _charBufferFree;
private ArrayList _substElements = null;
- private static CharBufferAllocator s_Allocator =
- new CharBufferAllocator(BufferingParams.CHAR_BUFFER_SIZE,
- BufferingParams.MAX_FREE_CHAR_BUFFERS);
+ static IAllocatorProvider s_DefaultAllocator = null;
+ IAllocatorProvider _allocator = null; // Use only via HttpWriter.AllocationProvider to ensure proper fallback
// cached data from the response
// can be invalidated via UpdateResponseXXX methods
@@ -824,9 +820,10 @@ namespace System.Web {
_buffers = new ArrayList();
_lastBuffer = null;
- _charBuffer = (char[])s_Allocator.GetBuffer();
- _charBufferLength = _charBuffer.Length;
- _charBufferFree = _charBufferLength;
+ // Setup the buffer on demand using CharBuffer property
+ _charBuffer = null;
+ _charBufferLength = 0;
+ _charBufferFree = 0;
UpdateResponseBuffering();
@@ -933,7 +930,7 @@ namespace System.Web {
// recycle char buffers
if (_charBuffer != null) {
- s_Allocator.ReuseBuffer(_charBuffer);
+ AllocatorProvider.CharBufferAllocator.ReuseBuffer(_charBuffer);
_charBuffer = null;
}
@@ -942,13 +939,39 @@ namespace System.Web {
}
internal static void ReleaseAllPooledBuffers() {
- s_Allocator.ReleaseAllBuffers();
+ if (s_DefaultAllocator != null) {
+ s_DefaultAllocator.TrimMemory();
+ }
}
internal void ClearSubstitutionBlocks() {
_substElements = null;
}
+ internal IAllocatorProvider AllocatorProvider {
+ private get {
+ if (_allocator == null) {
+ if (s_DefaultAllocator == null) {
+ // Create default static allocator
+ IBufferAllocator charAllocator = new CharBufferAllocator(BufferingParams.CHAR_BUFFER_SIZE, BufferingParams.MAX_FREE_CHAR_BUFFERS);
+
+ AllocatorProvider alloc = new AllocatorProvider();
+ alloc.CharBufferAllocator = new BufferAllocatorWrapper<char>(charAllocator);
+
+ Interlocked.CompareExchange(ref s_DefaultAllocator, alloc, null);
+ }
+
+ _allocator = s_DefaultAllocator;
+ }
+
+ return _allocator;
+ }
+
+ set {
+ _allocator = value;
+ }
+ }
+
private void RecycleBufferElements() {
if (_buffers != null) {
@@ -968,6 +991,19 @@ namespace System.Web {
_charBufferFree = _charBufferLength;
}
+ private char[] CharBuffer {
+ get {
+ if (_charBuffer == null) {
+ _charBuffer = AllocatorProvider.CharBufferAllocator.GetBuffer();
+
+ _charBufferLength = _charBuffer.Length;
+ _charBufferFree = _charBufferLength;
+ }
+
+ return _charBuffer;
+ }
+ }
+
private void FlushCharBuffer(bool flushEncoder) {
int numChars = _charBufferLength - _charBufferFree;
@@ -986,7 +1022,7 @@ namespace System.Web {
if (estByteSize <= BufferingParams.MAX_BYTES_TO_COPY || !_responseBufferingOn) {
// small size -- allocate intermediate buffer and copy into the output buffer
byte[] byteBuffer = new byte[estByteSize];
- int realByteSize = _responseEncoder.GetBytes(_charBuffer, 0, numChars,
+ int realByteSize = _responseEncoder.GetBytes(CharBuffer, 0, numChars,
byteBuffer, 0, flushEncoder);
BufferData(byteBuffer, 0, realByteSize, false);
}
@@ -1004,7 +1040,7 @@ namespace System.Web {
// byte buffers must be long enough to keep everything in char buffer
Debug.Assert(free >= estByteSize);
- _lastBuffer.AppendEncodedChars(_charBuffer, 0, numChars, _responseEncoder, flushEncoder);
+ _lastBuffer.AppendEncodedChars(CharBuffer, 0, numChars, _responseEncoder, flushEncoder);
}
_charBufferFree = _charBufferLength;
@@ -1397,7 +1433,7 @@ namespace System.Web {
_lastBuffer = null;
// no content to filter
- // Allow the filter to be closed (Dev10 Bug 550168).
+ // Allow the filter to be closed (Dev10
if (_buffers.Count == 0 && !finalFiltering)
return;
@@ -1561,11 +1597,13 @@ namespace System.Web {
return;
}
+ char[] buffer = CharBuffer;
+
if (_charBufferFree == 0) {
FlushCharBuffer(false);
}
- _charBuffer[_charBufferLength - _charBufferFree] = ch;
+ buffer[_charBufferLength - _charBufferFree] = ch;
_charBufferFree--;
if (!_responseBufferingOn) {
@@ -1583,7 +1621,7 @@ namespace System.Web {
return;
}
- // Dev10 Bug 507392: Do as TextWriter does.
+ // Dev10
if (buffer == null)
throw new ArgumentNullException("buffer");
if (index < 0)
@@ -1595,13 +1633,15 @@ namespace System.Web {
if (count == 0)
return;
+ char[] charBuffer = CharBuffer;
+
while (count > 0) {
if (_charBufferFree == 0) {
FlushCharBuffer(false);
}
int n = (count < _charBufferFree) ? count : _charBufferFree;
- System.Array.Copy(buffer, index, _charBuffer, _charBufferLength - _charBufferFree, n);
+ System.Array.Copy(buffer, index, charBuffer, _charBufferLength - _charBufferFree, n);
_charBufferFree -= n;
index += n;
count -= n;
@@ -1623,13 +1663,15 @@ namespace System.Web {
if (s == null)
return;
+ char[] buffer = CharBuffer;
+
if (s.Length == 0) {
// Ensure flush if string is empty
}
else if (s.Length < _charBufferFree) {
// fast path - 99% of string writes will not overrun the buffer
// avoid redundant arg checking in string.CopyTo
- StringUtil.UnsafeStringCopy(s, 0, _charBuffer, _charBufferLength - _charBufferFree, s.Length);
+ StringUtil.UnsafeStringCopy(s, 0, buffer, _charBufferLength - _charBufferFree, s.Length);
_charBufferFree -= s.Length;
}
else {
@@ -1645,7 +1687,7 @@ namespace System.Web {
n = (count < _charBufferFree) ? count : _charBufferFree;
// avoid redundant arg checking in string.CopyTo
- StringUtil.UnsafeStringCopy(s, index, _charBuffer, _charBufferLength - _charBufferFree, n);
+ StringUtil.UnsafeStringCopy(s, index, buffer, _charBufferLength - _charBufferFree, n);
_charBufferFree -= n;
index += n;
@@ -1682,13 +1724,15 @@ namespace System.Web {
return;
}
+ char[] buffer = CharBuffer;
+
if (count == 0) {
// Ensure flush if string is empty
}
else if (count < _charBufferFree) {
// fast path - 99% of string writes will not overrun the buffer
// avoid redundant arg checking in string.CopyTo
- StringUtil.UnsafeStringCopy(s, index, _charBuffer, _charBufferLength - _charBufferFree, count);
+ StringUtil.UnsafeStringCopy(s, index, buffer, _charBufferLength - _charBufferFree, count);
_charBufferFree -= count;
}
else {
@@ -1702,7 +1746,7 @@ namespace System.Web {
n = (count < _charBufferFree) ? count : _charBufferFree;
// avoid redundant arg checking in string.CopyTo
- StringUtil.UnsafeStringCopy(s, index, _charBuffer, _charBufferLength - _charBufferFree, n);
+ StringUtil.UnsafeStringCopy(s, index, buffer, _charBufferLength - _charBufferFree, n);
_charBufferFree -= n;
index += n;
@@ -1756,12 +1800,14 @@ namespace System.Web {
// It turns out this is way more efficient than the TextWriter version of
// WriteLine which ends up calling Write with a 2 char array
+ char[] buffer = CharBuffer;
+
if (_charBufferFree < 2)
FlushCharBuffer(false);
int pos = _charBufferLength - _charBufferFree;
- _charBuffer[pos] = '\r';
- _charBuffer[pos + 1] = '\n';
+ buffer[pos] = '\r';
+ buffer[pos + 1] = '\n';
_charBufferFree -= 2;
if (!_responseBufferingOn)
diff --git a/mcs/class/referencesource/System.Web/ITlsTokenBindingInfo.cs b/mcs/class/referencesource/System.Web/ITlsTokenBindingInfo.cs
new file mode 100644
index 00000000000..c363db89f8a
--- /dev/null
+++ b/mcs/class/referencesource/System.Web/ITlsTokenBindingInfo.cs
@@ -0,0 +1,36 @@
+//------------------------------------------------------------------------------
+// <copyright file="ITlsTokenBindingInfo.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+//------------------------------------------------------------------------------
+
+namespace System.Web {
+ using System;
+
+ // Represents token binding information for a request.
+ // TLS token bindings help mitigate the risk of impersonation by an
+ // attacker in the event an authenticated client's bearer tokens are
+ // somehow exfiltrated from the client's machine.
+ // More info: https://datatracker.ietf.org/doc/draft-popov-token-binding/
+ public interface ITlsTokenBindingInfo {
+ // Gets the 'provided' token binding identifier associated with
+ // the request. This method could return null if the client did
+ // not supply a 'provided' token binding or if the client did
+ // not supply a valid proof of possession for the associated
+ // private key.
+ //
+ // The caller should treat this token binding id as an opaque blob
+ // and should not try to parse it.
+ byte[] GetProvidedTokenBindingId();
+
+ // Gets the 'referred' token binding identifier associated with
+ // the request. This method could return null if the client did
+ // not supply a 'referred' token binding or if the client did
+ // not supply a valid proof of possession for the associated
+ // private key.
+ //
+ // The caller should treat this token binding id as an opaque blob
+ // and should not try to parse it.
+ byte[] GetReferredTokenBindingId();
+ }
+}
diff --git a/mcs/class/referencesource/System.Web/InternalApis/NDP_Common/inc/StrongNameHelpers.cs b/mcs/class/referencesource/System.Web/InternalApis/NDP_Common/inc/StrongNameHelpers.cs
index 262070c90be..eca2861417d 100644
--- a/mcs/class/referencesource/System.Web/InternalApis/NDP_Common/inc/StrongNameHelpers.cs
+++ b/mcs/class/referencesource/System.Web/InternalApis/NDP_Common/inc/StrongNameHelpers.cs
@@ -20,7 +20,7 @@ namespace Microsoft.Runtime.Hosting {
[ThreadStatic]
private static IClrStrongName s_StrongName;
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
private static IClrStrongName StrongName {
[System.Security.SecurityCritical]
get {
@@ -33,7 +33,7 @@ namespace Microsoft.Runtime.Hosting {
}
}
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
private static IClrStrongNameUsingIntPtr StrongNameUsingIntPtr {
[System.Security.SecurityCritical]
get {
@@ -42,20 +42,20 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static int StrongNameErrorInfo() {
return ts_LastStrongNameHR;
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
[SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId = "Microsoft.Runtime.Hosting.IClrStrongNameUsingIntPtr.StrongNameFreeBuffer(System.IntPtr)", Justification = "StrongNameFreeBuffer returns void but the new runtime wrappers return an HRESULT.")]
public static void StrongNameFreeBuffer(IntPtr pbMemory) {
StrongNameUsingIntPtr.StrongNameFreeBuffer(pbMemory);
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameGetPublicKey(string pwzKeyContainer, IntPtr pbKeyBlob, int cbKeyBlob, out IntPtr ppbPublicKeyBlob, out int pcbPublicKeyBlob) {
int hr = StrongNameUsingIntPtr.StrongNameGetPublicKey(pwzKeyContainer, pbKeyBlob, cbKeyBlob, out ppbPublicKeyBlob, out pcbPublicKeyBlob);
if( hr < 0 )
@@ -70,7 +70,7 @@ namespace Microsoft.Runtime.Hosting {
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameKeyDelete(string pwzKeyContainer) {
int hr = StrongName.StrongNameKeyDelete(pwzKeyContainer);
if( hr < 0 )
@@ -82,7 +82,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameKeyGen(string pwzKeyContainer, int dwFlags, out IntPtr ppbKeyBlob, out int pcbKeyBlob) {
int hr = StrongName.StrongNameKeyGen(pwzKeyContainer, dwFlags, out ppbKeyBlob, out pcbKeyBlob);
if( hr < 0 )
@@ -96,7 +96,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameKeyInstall(string pwzKeyContainer, IntPtr pbKeyBlob, int cbKeyBlob) {
int hr = StrongNameUsingIntPtr.StrongNameKeyInstall(pwzKeyContainer, pbKeyBlob, cbKeyBlob);
if( hr < 0 )
@@ -108,7 +108,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameSignatureGeneration(string pwzFilePath, string pwzKeyContainer, IntPtr pbKeyBlob, int cbKeyBlob) {
IntPtr ppbSignatureBlob = IntPtr.Zero;
int cbSignatureBlob = 0;
@@ -117,7 +117,7 @@ namespace Microsoft.Runtime.Hosting {
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameSignatureGeneration(string pwzFilePath, string pwzKeyContainer, IntPtr pbKeyBlob, int cbKeyBlob, ref IntPtr ppbSignatureBlob, out int pcbSignatureBlob) {
int hr = StrongNameUsingIntPtr.StrongNameSignatureGeneration(pwzFilePath, pwzKeyContainer, pbKeyBlob, cbKeyBlob, ppbSignatureBlob, out pcbSignatureBlob);
if( hr < 0 )
@@ -130,7 +130,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameSignatureSize(IntPtr pbPublicKeyBlob, int cbPublicKeyBlob, out int pcbSize) {
int hr = StrongNameUsingIntPtr.StrongNameSignatureSize(pbPublicKeyBlob, cbPublicKeyBlob, out pcbSize);
if( hr < 0 )
@@ -143,7 +143,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameSignatureVerification(string pwzFilePath, int dwInFlags, out int pdwOutFlags) {
int hr = StrongName.StrongNameSignatureVerification(pwzFilePath, dwInFlags, out pdwOutFlags);
if( hr < 0 )
@@ -156,7 +156,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameSignatureVerificationEx(string pwzFilePath, bool fForceVerification, out bool pfWasVerified) {
int hr = StrongName.StrongNameSignatureVerificationEx(pwzFilePath, fForceVerification, out pfWasVerified);
if( hr < 0 )
@@ -169,7 +169,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameTokenFromPublicKey(IntPtr pbPublicKeyBlob, int cbPublicKeyBlob, out IntPtr ppbStrongNameToken, out int pcbStrongNameToken) {
int hr = StrongNameUsingIntPtr.StrongNameTokenFromPublicKey(pbPublicKeyBlob, cbPublicKeyBlob, out ppbStrongNameToken, out pcbStrongNameToken);
if( hr < 0 )
@@ -183,7 +183,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameSignatureSize(byte[] bPublicKeyBlob, int cbPublicKeyBlob, out int pcbSize) {
int hr = StrongName.StrongNameSignatureSize(bPublicKeyBlob, cbPublicKeyBlob, out pcbSize);
if( hr < 0 )
@@ -195,7 +195,7 @@ namespace Microsoft.Runtime.Hosting {
return true;
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameTokenFromPublicKey(byte[] bPublicKeyBlob, int cbPublicKeyBlob, out IntPtr ppbStrongNameToken, out int pcbStrongNameToken) {
int hr = StrongName.StrongNameTokenFromPublicKey(bPublicKeyBlob, cbPublicKeyBlob, out ppbStrongNameToken, out pcbStrongNameToken);
if( hr < 0 )
@@ -209,7 +209,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameGetPublicKey(string pwzKeyContainer, byte[] bKeyBlob, int cbKeyBlob, out IntPtr ppbPublicKeyBlob, out int pcbPublicKeyBlob) {
int hr = StrongName.StrongNameGetPublicKey(pwzKeyContainer, bKeyBlob, cbKeyBlob, out ppbPublicKeyBlob, out pcbPublicKeyBlob);
if( hr < 0 )
@@ -223,7 +223,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameKeyInstall(string pwzKeyContainer, byte[] bKeyBlob, int cbKeyBlob) {
int hr = StrongName.StrongNameKeyInstall(pwzKeyContainer, bKeyBlob, cbKeyBlob);
if( hr < 0 )
@@ -235,7 +235,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameSignatureGeneration(string pwzFilePath, string pwzKeyContainer, byte[] bKeyBlob, int cbKeyBlob) {
IntPtr ppbSignatureBlob = IntPtr.Zero;
int cbSignatureBlob = 0;
@@ -243,7 +243,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameSignatureGeneration(string pwzFilePath, string pwzKeyContainer, byte[] bKeyBlob, int cbKeyBlob, ref IntPtr ppbSignatureBlob, out int pcbSignatureBlob) {
int hr = StrongName.StrongNameSignatureGeneration(pwzFilePath, pwzKeyContainer, bKeyBlob, cbKeyBlob, ppbSignatureBlob, out pcbSignatureBlob);
if( hr < 0 )
diff --git a/mcs/class/referencesource/System.Web/IntraPartitionAPIs/xsp/PerfCounterEnum.cs b/mcs/class/referencesource/System.Web/IntraPartitionAPIs/xsp/PerfCounterEnum.cs
new file mode 100644
index 00000000000..5df7d83c271
--- /dev/null
+++ b/mcs/class/referencesource/System.Web/IntraPartitionAPIs/xsp/PerfCounterEnum.cs
@@ -0,0 +1,131 @@
+//------------------------------------------------------------------------------
+// <copyright from='1997' to='2001' company='Microsoft Corporation'>
+// Copyright (c) Microsoft Corporation. All Rights Reserved.
+// Information Contained Herein is Proprietary and Confidential.
+// </copyright>
+//------------------------------------------------------------------------------
+
+/*
+ * PerfCounters class
+ */
+namespace System.Web {
+
+ // Global enums
+ internal enum GlobalPerfCounter {
+
+ APPLICATION_RESTARTS = 0,
+ APPLICATIONS_RUNNING = 1,
+ REQUESTS_DISCONNECTED = 2,
+ REQUEST_EXECUTION_TIME = 3,
+ REQUESTS_REJECTED = 4,
+ REQUESTS_QUEUED = 5,
+ WPS_RUNNING = 6,
+ WPS_RESTARTS = 7,
+ REQUEST_WAIT_TIME = 8,
+ STATE_SERVER_SESSIONS_ACTIVE = 9,
+ STATE_SERVER_SESSIONS_ABANDONED = 10,
+ STATE_SERVER_SESSIONS_TIMED_OUT = 11,
+ STATE_SERVER_SESSIONS_TOTAL = 12,
+ REQUESTS_CURRENT = 13,
+ GLOBAL_AUDIT_SUCCESS = 14,
+ GLOBAL_AUDIT_FAIL = 15,
+ GLOBAL_EVENTS_ERROR = 16,
+ GLOBAL_EVENTS_HTTP_REQ_ERROR = 17,
+ GLOBAL_EVENTS_HTTP_INFRA_ERROR = 18,
+ REQUESTS_IN_NATIVE_QUEUE = 19,
+
+ }
+
+ internal enum AppPerfCounter {
+
+ ANONYMOUS_REQUESTS = 20,
+ TOTAL_CACHE_ENTRIES = 21,
+ TOTAL_CACHE_TURNOVER_RATE = 22,
+ TOTAL_CACHE_HITS = 23,
+ TOTAL_CACHE_MISSES = 24,
+ TOTAL_CACHE_RATIO_BASE = 25,
+ API_CACHE_ENTRIES = 26,
+ API_CACHE_TURNOVER_RATE = 27,
+ API_CACHE_HITS = 28,
+ API_CACHE_MISSES = 29,
+ API_CACHE_RATIO_BASE = 30,
+ OUTPUT_CACHE_ENTRIES = 31,
+ OUTPUT_CACHE_TURNOVER_RATE = 32,
+ OUTPUT_CACHE_HITS = 33,
+ OUTPUT_CACHE_MISSES = 34,
+ OUTPUT_CACHE_RATIO_BASE = 35,
+ COMPILATIONS = 36,
+ DEBUGGING_REQUESTS = 37,
+ ERRORS_PRE_PROCESSING = 38,
+ ERRORS_COMPILING = 39,
+ ERRORS_DURING_REQUEST = 40,
+ ERRORS_UNHANDLED = 41,
+ ERRORS_TOTAL = 42,
+ PIPELINES = 43,
+ REQUEST_BYTES_IN = 44,
+ REQUEST_BYTES_OUT = 45,
+ REQUESTS_EXECUTING = 46,
+ REQUESTS_FAILED = 47,
+ REQUESTS_NOT_FOUND = 48,
+ REQUESTS_NOT_AUTHORIZED = 49,
+ REQUESTS_IN_APPLICATION_QUEUE = 50,
+ REQUESTS_TIMED_OUT = 51,
+ REQUESTS_SUCCEDED = 52,
+ REQUESTS_TOTAL = 53,
+ SESSIONS_ACTIVE = 54,
+ SESSIONS_ABANDONED = 55,
+ SESSIONS_TIMED_OUT = 56,
+ SESSIONS_TOTAL = 57,
+ TRANSACTIONS_ABORTED = 58,
+ TRANSACTIONS_COMMITTED = 59,
+ TRANSACTIONS_PENDING = 60,
+ TRANSACTIONS_TOTAL = 61,
+ SESSION_STATE_SERVER_CONNECTIONS = 62,
+ SESSION_SQL_SERVER_CONNECTIONS = 63,
+ EVENTS_TOTAL = 64,
+ EVENTS_APP = 65,
+ EVENTS_ERROR = 66,
+ EVENTS_HTTP_REQ_ERROR = 67,
+ EVENTS_HTTP_INFRA_ERROR = 68,
+ EVENTS_WEB_REQ = 69,
+ AUDIT_SUCCESS = 70,
+ AUDIT_FAIL = 71,
+ MEMBER_SUCCESS = 72,
+ MEMBER_FAIL = 73,
+ FORMS_AUTH_SUCCESS = 74,
+ FORMS_AUTH_FAIL = 75,
+ VIEWSTATE_MAC_FAIL = 76,
+ APP_REQUEST_EXEC_TIME = 77,
+ APP_REQUEST_DISCONNECTED = 78,
+ APP_REQUESTS_REJECTED = 79,
+ APP_REQUEST_WAIT_TIME = 80,
+ CACHE_PERCENT_MACH_MEM_LIMIT_USED = 81,
+ CACHE_PERCENT_MACH_MEM_LIMIT_USED_BASE = 82,
+ CACHE_PERCENT_PROC_MEM_LIMIT_USED = 83,
+ CACHE_PERCENT_PROC_MEM_LIMIT_USED_BASE = 84,
+ CACHE_TOTAL_TRIMS = 85,
+ CACHE_API_TRIMS = 86,
+ CACHE_OUTPUT_TRIMS = 87,
+ APP_CPU_USED = 88,
+ APP_CPU_USED_BASE = 89,
+ APP_MEMORY_USED = 90,
+ REQUEST_BYTES_IN_WEBSOCKETS = 91,
+ REQUEST_BYTES_OUT_WEBSOCKETS = 92,
+ REQUESTS_EXECUTING_WEBSOCKETS = 93,
+ REQUESTS_FAILED_WEBSOCKETS = 94,
+ REQUESTS_SUCCEEDED_WEBSOCKETS = 95,
+ REQUESTS_TOTAL_WEBSOCKETS = 96,
+
+ }
+
+ // StateService enums
+ internal enum StateServicePerfCounter {
+
+ STATE_SERVICE_SESSIONS_ACTIVE = 97,
+ STATE_SERVICE_SESSIONS_ABANDONED = 98,
+ STATE_SERVICE_SESSIONS_TIMED_OUT = 99,
+ STATE_SERVICE_SESSIONS_TOTAL = 100,
+
+ }
+}
+
diff --git a/mcs/class/referencesource/System.Web/LegacyAspNetSynchronizationContext.cs b/mcs/class/referencesource/System.Web/LegacyAspNetSynchronizationContext.cs
index 3cc6471e6c2..24affab6135 100644
--- a/mcs/class/referencesource/System.Web/LegacyAspNetSynchronizationContext.cs
+++ b/mcs/class/referencesource/System.Web/LegacyAspNetSynchronizationContext.cs
@@ -19,7 +19,7 @@ namespace System.Web {
internal sealed class LegacyAspNetSynchronizationContext : AspNetSynchronizationContextBase {
private HttpApplication _application;
- private Action _appVerifierCallback;
+ private Action<bool> _appVerifierCallback;
private bool _disabled;
private bool _syncCaller;
private bool _invalidOperationEncountered;
@@ -34,16 +34,16 @@ namespace System.Web {
_lastCompletionCallbackLock = new object();
}
- private void CheckForRequestCompletionIfRequired() {
+ private void CheckForRequestStateIfRequired() {
if (_appVerifierCallback != null) {
- _appVerifierCallback();
+ _appVerifierCallback(false);
}
}
private void CallCallback(SendOrPostCallback callback, Object state) {
- CheckForRequestCompletionIfRequired();
+ CheckForRequestStateIfRequired();
- // don't take app lock for [....] caller to avoid deadlocks in case they poll for result
+ // don't take app lock for sync caller to avoid deadlocks in case they poll for result
if (_syncCaller) {
CallCallbackPossiblyUnderLock(callback, state);
}
@@ -72,7 +72,7 @@ namespace System.Web {
}
}
- // this property no-ops using the legacy [....] context
+ // this property no-ops using the legacy sync context
internal override bool AllowAsyncDuringSyncStages {
get;
set;
@@ -90,11 +90,11 @@ namespace System.Web {
_error = null;
}
- // Dev11 Bug 70908: Race condition involving SynchronizationContext allows ASP.NET requests to be abandoned in the pipeline
- //
- // When the last completion occurs, the _pendingCount is decremented and then the _lastCompletionCallbackLock is acquired to get
- // the _lastCompletionCallback. If the _lastCompletionCallback is non-null, then the last completion will invoke the callback;
- // otherwise, the caller of PendingCompletion will handle the completion.
+ // Dev11
+
+
+
+
internal override bool PendingCompletion(WaitCallback callback) {
Debug.Assert(_lastCompletionCallback == null); // only one at a time
bool pending = false;
diff --git a/mcs/class/referencesource/System.Web/Management/WebEvents.cs b/mcs/class/referencesource/System.Web/Management/WebEvents.cs
index f7c17a34926..d0ca991ba07 100644
--- a/mcs/class/referencesource/System.Web/Management/WebEvents.cs
+++ b/mcs/class/referencesource/System.Web/Management/WebEvents.cs
@@ -1341,7 +1341,7 @@ namespace System.Web.Management {
Exception ex = _exception;
- // Please note we arbitrary pick a level limit per bug VSWhidbey 143859
+ // Please note we arbitrary pick a level limit per
for (int level = 0;
ex != null && level <= 2;
ex = ex.InnerException, level++) {
@@ -1946,14 +1946,14 @@ namespace System.Web.Management {
_iprincipal = context.User;
- // Dev11 #80084 - DTS Bug
- // In integrated pipeline, we are very aggressive about disposing
- // WindowsIdentity's. If this WebRequestInformation is being used
- // post-request (eg, while formatting data for an email provider
- // that is reporting batched events), then the User.Identity is
- // likely to be disposed. So lets create a clone that will stick
- // around. This condition should vaguely match that found in
- // HttpContext.DisposePrincipal().
+ // Dev11 #80084 - DTS
+
+
+
+
+
+
+
if (_iprincipal is WindowsPrincipal
&& _iprincipal != WindowsAuthenticationModule.AnonymousPrincipal
&& (context.WorkerRequest is IIS7WorkerRequest)) {
diff --git a/mcs/class/referencesource/System.Web/ModelBinding/ControlValueProvider.cs b/mcs/class/referencesource/System.Web/ModelBinding/ControlValueProvider.cs
index e342edd61d9..76d3de52b43 100644
--- a/mcs/class/referencesource/System.Web/ModelBinding/ControlValueProvider.cs
+++ b/mcs/class/referencesource/System.Web/ModelBinding/ControlValueProvider.cs
@@ -29,7 +29,7 @@ namespace System.Web.ModelBinding {
//Following code taken from ControlParameter - code duplicated because ControlPrameter throws exceptions whereas we do not.
string propertyName = PropertyName;
- //Bug Fix # 280051 : First try to find it on dataControl as DataBoundControlHelper.FindControl only walks up starting from dataControl's NamingContainer.
+ //
Control foundControl = dataControl.FindControl(controlId) ?? DataBoundControlHelper.FindControl(dataControl, controlId);
if (foundControl == null) {
diff --git a/mcs/class/referencesource/System.Web/ModelBinding/RangeAttributeAdapter.cs b/mcs/class/referencesource/System.Web/ModelBinding/RangeAttributeAdapter.cs
index 2c5acf046fc..90966962fc0 100644
--- a/mcs/class/referencesource/System.Web/ModelBinding/RangeAttributeAdapter.cs
+++ b/mcs/class/referencesource/System.Web/ModelBinding/RangeAttributeAdapter.cs
@@ -8,7 +8,7 @@
#if UNDEF
public override IEnumerable<ModelClientValidationRule> GetClientValidationRules() {
- string errorMessage = ErrorMessage; // Per Dev10 Bug #923283, need to make sure ErrorMessage is called before Minimum/Maximum
+ string errorMessage = ErrorMessage; // Per Dev10
return new[] { new ModelClientValidationRangeRule(errorMessage, Attribute.Minimum, Attribute.Maximum) };
}
#endif
diff --git a/mcs/class/referencesource/System.Web/OutputCacheModule.cs b/mcs/class/referencesource/System.Web/OutputCacheModule.cs
index 426b94d53e7..de6b2d7c02e 100644
--- a/mcs/class/referencesource/System.Web/OutputCacheModule.cs
+++ b/mcs/class/referencesource/System.Web/OutputCacheModule.cs
@@ -352,7 +352,7 @@ namespace System.Web.Caching {
return 0;
}
for (int i = startIndex; i < contentEncodings.Length; i++) {
- if (contentEncodings[i] == acceptEncodingWithoutWeight) {
+ if (StringUtil.EqualsIgnoreCase(contentEncodings[i], acceptEncodingWithoutWeight)) {
return i; // found
}
}
@@ -393,7 +393,7 @@ namespace System.Web.Caching {
int acceptEncodingLength = acceptEncoding.Length;
int maxSearchIndex = acceptEncodingLength - codingLength;
while (startSearchIndex < maxSearchIndex) {
- int indexStart = acceptEncoding.IndexOf(coding, startSearchIndex, StringComparison.Ordinal);
+ int indexStart = acceptEncoding.IndexOf(coding, startSearchIndex, StringComparison.OrdinalIgnoreCase);
if (indexStart == -1) {
break; // not found
diff --git a/mcs/class/referencesource/System.Web/PerfCounters.cs b/mcs/class/referencesource/System.Web/PerfCounters.cs
index 8ec096c7868..de258ce7d51 100644
--- a/mcs/class/referencesource/System.Web/PerfCounters.cs
+++ b/mcs/class/referencesource/System.Web/PerfCounters.cs
@@ -86,7 +86,6 @@ namespace System.Web {
// Make sure webengine.dll is loaded before attempting to call into it (ASURT 98531)
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
internal static void IncrementCounter(AppPerfCounter counter) {
if (_instance != null)
UnsafeNativeMethods.PerfIncrementCounter(_instance.UnsafeHandle, (int) counter);
@@ -97,13 +96,11 @@ namespace System.Web {
UnsafeNativeMethods.PerfDecrementCounter(_instance.UnsafeHandle, (int) counter);
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
internal static void IncrementCounterEx(AppPerfCounter counter, int delta) {
if (_instance != null)
UnsafeNativeMethods.PerfIncrementCounterEx(_instance.UnsafeHandle, (int) counter, delta);
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
internal static void SetCounter(AppPerfCounter counter, int value) {
if (_instance != null)
UnsafeNativeMethods.PerfSetCounter(_instance.UnsafeHandle, (int) counter, value);
@@ -127,7 +124,6 @@ namespace System.Web {
return -1;
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
internal static void IncrementGlobalCounter(GlobalPerfCounter counter) {
if (_global != IntPtr.Zero)
UnsafeNativeMethods.PerfIncrementCounter(_global, (int) counter);
diff --git a/mcs/class/referencesource/System.Web/PipelineModuleStepContainer.cs b/mcs/class/referencesource/System.Web/PipelineModuleStepContainer.cs
index fb8effd3dff..0d2b49071d8 100644
--- a/mcs/class/referencesource/System.Web/PipelineModuleStepContainer.cs
+++ b/mcs/class/referencesource/System.Web/PipelineModuleStepContainer.cs
@@ -130,7 +130,7 @@ namespace System.Web {
for (int i = 0; i < stepArray.Count; i++ ) {
// we don't support removing async event handlers
- // but the event syntax forces us to handle [....] events
+ // but the event syntax forces us to handle sync events
syncStep = stepArray[i] as HttpApplication.SyncEventExecutionStep;
if (null != syncStep) {
if (syncStep.Handler == (EventHandler)handler) {
diff --git a/mcs/class/referencesource/System.Web/Properties/AssemblyInfo.cs b/mcs/class/referencesource/System.Web/Properties/AssemblyInfo.cs
index b41f9f2532d..03328e0a58a 100644
--- a/mcs/class/referencesource/System.Web/Properties/AssemblyInfo.cs
+++ b/mcs/class/referencesource/System.Web/Properties/AssemblyInfo.cs
@@ -33,4 +33,4 @@ using System.Web.Security;
[assembly:System.Runtime.InteropServices.TypeLibVersion(2, 4)]
// Opts into the VS loading icons from the FrameworkIcon Satellite assemblies found under VSIP\Icons
-[assembly:System.Drawing.BitmapSuffixInSatelliteAssemblyAttribute()]
+[assembly:System.Drawing.BitmapSuffixInSatelliteAssemblyAttribute()] \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web/RootedObjects.cs b/mcs/class/referencesource/System.Web/RootedObjects.cs
index 8fbef1b6671..519e1a7b93e 100644
--- a/mcs/class/referencesource/System.Web/RootedObjects.cs
+++ b/mcs/class/referencesource/System.Web/RootedObjects.cs
@@ -164,9 +164,9 @@ namespace System.Web {
}
}
- // Fix Bug 640366: Setting the Principal to null (irrespective of Identity)
- // only if framework version is above .NetFramework 4.5 as this change is new and
- // we want to keep the functionality same for previous versions.
+ // Fix
+
+
if (BinaryCompatibility.Current.TargetsAtLeastFramework45) {
Principal = null;
}
diff --git a/mcs/class/referencesource/System.Web/Routing/Route.cs b/mcs/class/referencesource/System.Web/Routing/Route.cs
index 4e78e8ee3fb..04f33a9d6ae 100644
--- a/mcs/class/referencesource/System.Web/Routing/Route.cs
+++ b/mcs/class/referencesource/System.Web/Routing/Route.cs
@@ -80,7 +80,7 @@
}
set {
// The parser will throw for invalid routes. We don't have to worry
- // about _parsedRoute getting out of [....] with _url since the latter
+ // about _parsedRoute getting out of sync with _url since the latter
// won't get set unless we can parse the route.
_parsedRoute = RouteParser.Parse(value);
diff --git a/mcs/class/referencesource/System.Web/Routing/RouteCollection.cs b/mcs/class/referencesource/System.Web/Routing/RouteCollection.cs
index dc8b1d35404..5ab39facaa4 100644
--- a/mcs/class/referencesource/System.Web/Routing/RouteCollection.cs
+++ b/mcs/class/referencesource/System.Web/Routing/RouteCollection.cs
@@ -162,9 +162,9 @@
// a read lock when the collection is empty. Without this check, the UrlRoutingModule causes a 25%-50%
// regression in HelloWorld RPS due to lock contention. The UrlRoutingModule is now in the root web.config,
// so we need to ensure the module is performant, especially when you are not using routing.
- // This check does introduce a slight bug, in that if a writer clears the collection as part of a write
- // transaction, a reader may see the collection when it's empty, which the read lock is supposed to prevent.
- // We will investigate a better fix in Dev10 Beta2. The Beta1 bug is Dev10 652986.
+ // This check does introduce a slight
+
+
if (Count == 0) {
return null;
}
diff --git a/mcs/class/referencesource/System.Web/Security/ADMembershipProvider.cs b/mcs/class/referencesource/System.Web/Security/ADMembershipProvider.cs
index 86b5c0a6f2c..ff10d9a4446 100644
--- a/mcs/class/referencesource/System.Web/Security/ADMembershipProvider.cs
+++ b/mcs/class/referencesource/System.Web/Security/ADMembershipProvider.cs
@@ -4020,8 +4020,8 @@ namespace System.Web.Security
}
catch (DirectoryOperationException)
{
- // Dev10 Bug# 623663:
- // concurrent bind is not supported when a client certificate is specified, (continue without it and don't try to set it next time)
+ // Dev10
+
this.concurrentBindSupported = false;
}
diff --git a/mcs/class/referencesource/System.Web/Security/AntiXss/GlobalSuppressions.cs b/mcs/class/referencesource/System.Web/Security/AntiXss/GlobalSuppressions.cs
index 8c90454923c..9d76e56b8f2 100644
--- a/mcs/class/referencesource/System.Web/Security/AntiXss/GlobalSuppressions.cs
+++ b/mcs/class/referencesource/System.Web/Security/AntiXss/GlobalSuppressions.cs
@@ -55,4 +55,4 @@ using System.Diagnostics.CodeAnalysis;
[module: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Ol", Scope = "member", Target = "System.Web.Security.AntiXss.LowerMidCodeCharts.#OlChiki", Justification = "AntiXSS baseline.")]
[module: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Li", Scope = "member", Target = "System.Web.Security.AntiXss.UpperCodeCharts.#KayahLi", Justification = "AntiXSS baseline.")]
[module: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Yi", Scope = "member", Target = "System.Web.Security.AntiXss.UpperMidCodeCharts.#YiSyllables", Justification = "AntiXSS baseline.")]
-[module: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Yi", Scope = "member", Target = "System.Web.Security.AntiXss.UpperMidCodeCharts.#YiRadicals", Justification = "AntiXSS baseline.")]
+[module: SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Yi", Scope = "member", Target = "System.Web.Security.AntiXss.UpperMidCodeCharts.#YiRadicals", Justification = "AntiXSS baseline.")] \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web/Security/Cryptography/CryptoAlgorithms.cs b/mcs/class/referencesource/System.Web/Security/Cryptography/CryptoAlgorithms.cs
index a4fcc08f63c..5537f87b4e4 100644
--- a/mcs/class/referencesource/System.Web/Security/Cryptography/CryptoAlgorithms.cs
+++ b/mcs/class/referencesource/System.Web/Security/Cryptography/CryptoAlgorithms.cs
@@ -12,7 +12,7 @@ namespace System.Web.Security.Cryptography {
// Utility class to provide the "one true way" of getting instances of
// cryptographic algorithms, like SymmetricAlgorithm and HashAlgorithm.
- // From discussions with [....] and the crypto board, we should prefer
+ // From discussions with Microsoft and the crypto board, we should prefer
// the CNG implementations of algorithms, then the CAPI implementations,
// then finally managed implementations if there are no CNG / CAPI
// implementations. The CNG / CAPI implementations are preferred for
diff --git a/mcs/class/referencesource/System.Web/Security/IVType.cs b/mcs/class/referencesource/System.Web/Security/IVType.cs
index 4752ea1cf00..e3c5cc23b0c 100644
--- a/mcs/class/referencesource/System.Web/Security/IVType.cs
+++ b/mcs/class/referencesource/System.Web/Security/IVType.cs
@@ -26,4 +26,4 @@ namespace System.Web.Configuration
// multiple times.
Hash = 2,
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web/Security/RoleClaimProvider.cs b/mcs/class/referencesource/System.Web/Security/RoleClaimProvider.cs
index ad8c9dc19e9..03563e9dc30 100644
--- a/mcs/class/referencesource/System.Web/Security/RoleClaimProvider.cs
+++ b/mcs/class/referencesource/System.Web/Security/RoleClaimProvider.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
// RoleClaimProvider.cs
diff --git a/mcs/class/referencesource/System.Web/Security/RolePrincipal.cs b/mcs/class/referencesource/System.Web/Security/RolePrincipal.cs
index 3f15fb68963..a54f497b9db 100644
--- a/mcs/class/referencesource/System.Web/Security/RolePrincipal.cs
+++ b/mcs/class/referencesource/System.Web/Security/RolePrincipal.cs
@@ -98,7 +98,7 @@ namespace System.Web.Security {
private void InitFromEncryptedTicket( string encryptedTicket )
{
- if (HostingEnvironment.IsHosted && EtwTrace.IsTraceEnabled(EtwTraceLevel.Information, EtwTraceFlags.AppSvc))
+ if (HostingEnvironment.IsHosted && EtwTrace.IsTraceEnabled(EtwTraceLevel.Information, EtwTraceFlags.AppSvc) && HttpContext.Current != null)
EtwTrace.Trace(EtwTraceType.ETW_TYPE_ROLE_BEGIN, HttpContext.Current.WorkerRequest);
if (string.IsNullOrEmpty(encryptedTicket))
@@ -140,14 +140,14 @@ namespace System.Web.Security {
RenewIfOld();
- if (HostingEnvironment.IsHosted && EtwTrace.IsTraceEnabled(EtwTraceLevel.Information, EtwTraceFlags.AppSvc))
+ if (HostingEnvironment.IsHosted && EtwTrace.IsTraceEnabled(EtwTraceLevel.Information, EtwTraceFlags.AppSvc) && HttpContext.Current != null)
EtwTrace.Trace( EtwTraceType.ETW_TYPE_ROLE_END, HttpContext.Current.WorkerRequest, "RolePrincipal", _Identity.Name);
return;
Exit:
Init();
_CachedListChanged = true;
- if (HostingEnvironment.IsHosted && EtwTrace.IsTraceEnabled(EtwTraceLevel.Information, EtwTraceFlags.AppSvc))
+ if (HostingEnvironment.IsHosted && EtwTrace.IsTraceEnabled(EtwTraceLevel.Information, EtwTraceFlags.AppSvc) && HttpContext.Current != null)
EtwTrace.Trace(EtwTraceType.ETW_TYPE_ROLE_END, HttpContext.Current.WorkerRequest, "RolePrincipal", _Identity.Name);
return;
}
diff --git a/mcs/class/referencesource/System.Web/Security/Roles.cs b/mcs/class/referencesource/System.Web/Security/Roles.cs
index 32ccd2df1ea..a875365edab 100644
--- a/mcs/class/referencesource/System.Web/Security/Roles.cs
+++ b/mcs/class/referencesource/System.Web/Security/Roles.cs
@@ -93,7 +93,7 @@ namespace System.Web.Security {
// authorization
static public bool IsUserInRole(string username, string roleName) {
- if (HostingEnvironment.IsHosted && EtwTrace.IsTraceEnabled(EtwTraceLevel.Information, EtwTraceFlags.AppSvc))
+ if (HostingEnvironment.IsHosted && EtwTrace.IsTraceEnabled(EtwTraceLevel.Information, EtwTraceFlags.AppSvc) && HttpContext.Current != null)
EtwTrace.Trace(EtwTraceType.ETW_TYPE_ROLE_BEGIN, HttpContext.Current.WorkerRequest);
EnsureEnabled();
@@ -111,7 +111,7 @@ namespace System.Web.Security {
isUserInRole = Provider.IsUserInRole(username, roleName);
return isUserInRole;
} finally {
- if (HostingEnvironment.IsHosted && EtwTrace.IsTraceEnabled(EtwTraceLevel.Information, EtwTraceFlags.AppSvc)) {
+ if (HostingEnvironment.IsHosted && EtwTrace.IsTraceEnabled(EtwTraceLevel.Information, EtwTraceFlags.AppSvc) && HttpContext.Current != null) {
if (EtwTrace.IsTraceEnabled(EtwTraceLevel.Verbose, EtwTraceFlags.AppSvc)) {
string status = SR.Resources.GetString(isUserInRole ? SR.Etw_Success : SR.Etw_Failure, CultureInfo.InstalledUICulture);
EtwTrace.Trace(EtwTraceType.ETW_TYPE_ROLE_IS_USER_IN_ROLE, HttpContext.Current.WorkerRequest, isRolePrincipal ? "RolePrincipal" : Provider.GetType().FullName, username, roleName, status);
@@ -129,7 +129,7 @@ namespace System.Web.Security {
static public string[] GetRolesForUser (string username){
- if (HostingEnvironment.IsHosted && EtwTrace.IsTraceEnabled(EtwTraceLevel.Information, EtwTraceFlags.AppSvc))
+ if (HostingEnvironment.IsHosted && EtwTrace.IsTraceEnabled(EtwTraceLevel.Information, EtwTraceFlags.AppSvc) && HttpContext.Current != null)
EtwTrace.Trace(EtwTraceType.ETW_TYPE_ROLE_BEGIN, HttpContext.Current.WorkerRequest);
EnsureEnabled();
@@ -150,7 +150,7 @@ namespace System.Web.Security {
}
return roles;
} finally {
- if (HostingEnvironment.IsHosted && EtwTrace.IsTraceEnabled(EtwTraceLevel.Information, EtwTraceFlags.AppSvc)) {
+ if (HostingEnvironment.IsHosted && EtwTrace.IsTraceEnabled(EtwTraceLevel.Information, EtwTraceFlags.AppSvc) && HttpContext.Current != null) {
if (EtwTrace.IsTraceEnabled(EtwTraceLevel.Verbose, EtwTraceFlags.AppSvc)) {
string roleNames = null;
if (roles != null && roles.Length > 0)
diff --git a/mcs/class/referencesource/System.Web/State/StateRuntime.cs b/mcs/class/referencesource/System.Web/State/StateRuntime.cs
index de279f206dd..c354c95e0f6 100644
--- a/mcs/class/referencesource/System.Web/State/StateRuntime.cs
+++ b/mcs/class/referencesource/System.Web/State/StateRuntime.cs
@@ -303,9 +303,9 @@ namespace System.Web.SessionState {
DateTime localLockDate;
long lockAge;
- // Note that due to a bug in the RTM state server client,
- // we cannot add to body of the response when sending this
- // message, otherwise the client will leak memory.
+ // Note that due to a
+
+
response = context.Response;
response.StatusCode = 423;
localLockDate = DateTimeUtil.ConvertToLocalTime(content._utcLockDate);
@@ -318,9 +318,9 @@ namespace System.Web.SessionState {
private void ReportActionFlags(HttpContext context, int flags) {
HttpResponse response;
- // Note that due to a bug in the RTM state server client,
- // we cannot add to body of the response when sending this
- // message, otherwise the client will leak memory.
+ // Note that due to a
+
+
response = context.Response;
response.AppendHeader(StateHeaders.ACTIONFLAGS_NAME_RAW, flags.ToString(CultureInfo.InvariantCulture));
}
diff --git a/mcs/class/referencesource/System.Web/State/StateWorkerRequest.cs b/mcs/class/referencesource/System.Web/State/StateWorkerRequest.cs
index 385d054ebb5..8450d6d37b6 100644
--- a/mcs/class/referencesource/System.Web/State/StateWorkerRequest.cs
+++ b/mcs/class/referencesource/System.Web/State/StateWorkerRequest.cs
@@ -23,7 +23,7 @@ namespace System.Web.SessionState {
class StateHttpWorkerRequest : HttpWorkerRequest {
- /* long enough to hold the string representation of an IPv4 or IPv6 address; keep in [....] with tracker.cxx */
+ /* long enough to hold the string representation of an IPv4 or IPv6 address; keep in sync with tracker.cxx */
private const int ADDRESS_LENGTH_MAX = 64;
IntPtr _tracker;
diff --git a/mcs/class/referencesource/System.Web/State/sqlstateclientmanager.cs b/mcs/class/referencesource/System.Web/State/sqlstateclientmanager.cs
index ff98e5f683d..0f991d742f4 100644
--- a/mcs/class/referencesource/System.Web/State/sqlstateclientmanager.cs
+++ b/mcs/class/referencesource/System.Web/State/sqlstateclientmanager.cs
@@ -392,7 +392,8 @@ namespace System.Web.SessionState {
if (s_usePartition) {
throw new HttpException(
SR.GetString(SR.Cant_connect_sql_session_database_partition_resolver,
- s_configPartitionResolverType, conn.DataSource, conn.Database));
+ s_configPartitionResolverType, conn.DataSource, conn.Database),
+ e);
}
else {
throw new HttpException(
diff --git a/mcs/class/referencesource/System.Web/StaticFileHandler.cs b/mcs/class/referencesource/System.Web/StaticFileHandler.cs
index 9ae9f81b533..679709b439b 100644
--- a/mcs/class/referencesource/System.Web/StaticFileHandler.cs
+++ b/mcs/class/referencesource/System.Web/StaticFileHandler.cs
@@ -508,7 +508,7 @@ namespace System.Web {
// Determine Last Modified Time. We might need it soon
// if we encounter a Range: and If-Range header
- // Using UTC time to avoid daylight savings time bug 83230
+ // Using UTC time to avoid daylight savings time
lastModifiedInUtc = new DateTime(fileInfo.LastWriteTimeUtc.Year,
fileInfo.LastWriteTimeUtc.Month,
fileInfo.LastWriteTimeUtc.Day,
diff --git a/mcs/class/referencesource/System.Web/ThreadContext.cs b/mcs/class/referencesource/System.Web/ThreadContext.cs
index 2975040697e..bfd7b04d52b 100644
--- a/mcs/class/referencesource/System.Web/ThreadContext.cs
+++ b/mcs/class/referencesource/System.Web/ThreadContext.cs
@@ -61,7 +61,7 @@
/*
* !! IMPORTANT !!
- * Keep this logic in [....] with DisassociateFromCurrentThread and EnterExecutionContext.
+ * Keep this logic in sync with DisassociateFromCurrentThread and EnterExecutionContext.
*/
// attach http context to the call context
@@ -128,7 +128,7 @@
/*
* !! IMPORTANT !!
- * Keep this logic in [....] with AssociateWithCurrentThread and EnterExecutionContext.
+ * Keep this logic in sync with AssociateWithCurrentThread and EnterExecutionContext.
*/
Current = _originalThreadContextCurrent;
@@ -176,7 +176,7 @@
/*
* !! IMPORTANT !!
- * Keep this logic in [....] with AssociateWithCurrentThread and DisassociateFromCurrentThread.
+ * Keep this logic in sync with AssociateWithCurrentThread and DisassociateFromCurrentThread.
*/
// ExecutionContext.Run replaces the current impersonation token, so we need to impersonate
diff --git a/mcs/class/referencesource/System.Web/UI/BaseParser.cs b/mcs/class/referencesource/System.Web/UI/BaseParser.cs
index b5eea9d3ddc..1ecb550dadd 100644
--- a/mcs/class/referencesource/System.Web/UI/BaseParser.cs
+++ b/mcs/class/referencesource/System.Web/UI/BaseParser.cs
@@ -79,7 +79,7 @@ public class BaseParser {
}
private Regex _tagRegex;
- // The 3.5 regex is used only when targeting 2.0/3.5 for backward compatibility (Dev10 bug 830783).
+ // The 3.5 regex is used only when targeting 2.0/3.5 for backward compatibility (Dev10
private readonly static Regex tagRegex35 = new TagRegex35();
// The 4.0 regex is used for web sites targeting 4.0 and above.
private readonly static Regex tagRegex40 = new TagRegex();
diff --git a/mcs/class/referencesource/System.Web/UI/ConflictOptions.cs b/mcs/class/referencesource/System.Web/UI/ConflictOptions.cs
index 6fce0c1620d..916a363e5a6 100644
--- a/mcs/class/referencesource/System.Web/UI/ConflictOptions.cs
+++ b/mcs/class/referencesource/System.Web/UI/ConflictOptions.cs
@@ -23,4 +23,4 @@ namespace System.Web.UI {
/// </devdoc>
CompareAllValues = 1
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web/UI/Control.cs b/mcs/class/referencesource/System.Web/UI/Control.cs
index 1a9686a27e5..b698ff6f310 100644
--- a/mcs/class/referencesource/System.Web/UI/Control.cs
+++ b/mcs/class/referencesource/System.Web/UI/Control.cs
@@ -146,7 +146,6 @@ namespace System.Web.UI {
/// <devdoc>
/// <para>Initializes a new instance of the <see cref='System.Web.UI.Control'/> class.</para>
/// </devdoc>
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public Control() {
if (this is INamingContainer)
flags.Set(isNamingContainer);
@@ -169,7 +168,6 @@ namespace System.Web.UI {
WebSysDescription(SR.Control_ClientIDMode)
]
public virtual ClientIDMode ClientIDMode {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
return ClientIDModeValue;
}
@@ -396,7 +394,6 @@ namespace System.Web.UI {
]
protected internal virtual HttpContext Context {
// Request context containing the intrinsics
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
Page page = Page;
if(page != null) {
@@ -509,7 +506,6 @@ namespace System.Web.UI {
/// is read-only.</para>
/// </devdoc>
protected EventHandlerList Events {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
if (_events == null) {
_events = new EventHandlerList();
@@ -518,7 +514,6 @@ namespace System.Web.UI {
}
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
protected bool HasEvents() {
return (_events != null);
}
@@ -862,7 +857,6 @@ namespace System.Web.UI {
/// VSWhidbey 80467: Need to adapt id separator.
/// </devdoc>
protected char IdSeparator {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
if (Page != null) {
return Page.IdSeparator;
@@ -942,7 +936,6 @@ namespace System.Web.UI {
// VSWhidbey 244999
internal virtual bool IsReloadable {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
return false;
}
@@ -1118,7 +1111,6 @@ namespace System.Web.UI {
WebSysDescription(SR.Control_Parent)
]
public virtual Control Parent {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
return _parent;
}
@@ -1590,7 +1582,6 @@ namespace System.Web.UI {
}
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
internal void PreventAutoID() {
// controls that are also naming containers must always get an id
if (flags[isNamingContainer] == false) {
@@ -1603,7 +1594,6 @@ namespace System.Web.UI {
/// <para>Notifies the control that an element, XML or HTML, was parsed, and adds it to
/// the control.</para>
/// </devdoc>
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
protected virtual void AddParsedSubObject(object obj) {
Control control = obj as Control;
if (control != null) {
@@ -2361,7 +2351,6 @@ namespace System.Web.UI {
_controlState = ControlState.PreRendered;
}
-
// Same as PreRenderRecursive, but has an async point after the call to this.OnPreRender.
internal async Task PreRenderRecursiveInternalAsync(Page page) {
// Call Visible property and cache value in !flags[invisible] to allow Visible to be overridden.
@@ -2372,7 +2361,15 @@ namespace System.Web.UI {
}
else {
flags.Clear(invisible);
- EnsureChildControls();
+ if (AppSettings.EnableAsyncModelBinding) {
+ using (page.Context.SyncContext.AllowVoidAsyncOperationsBlock()) {
+ EnsureChildControls();
+ await page.GetWaitForPreviousStepCompletionAwaitable();
+ }
+ }
+ else {
+ EnsureChildControls();
+ }
using (page.Context.SyncContext.AllowVoidAsyncOperationsBlock()) {
if (AdapterInternal != null) {
@@ -2389,8 +2386,17 @@ namespace System.Web.UI {
int controlCount = _controls.Count;
for (int i = 0; i < controlCount; i++) {
- _controls[i].PreRenderRecursiveInternal();
+ if (AppSettings.EnableAsyncModelBinding) {
+ // To make sure every OnPreRender is awaited so that _controlState
+ // would not be set to ControlState.PreRendered until the control is
+ // really PreRendered
+ await _controls[i].PreRenderRecursiveInternalAsync(page);
+ }
+ else {
+ _controls[i].PreRenderRecursiveInternal();
+ }
}
+
_controls.SetCollectionReadOnly(oldmsg);
}
}
@@ -2587,7 +2593,6 @@ namespace System.Web.UI {
/// <devdoc>
/// <para>[To be supplied.]</para>
/// </devdoc>
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public virtual void RenderControl(HtmlTextWriter writer) {
//use the Adapter property to ensure it is resolved
RenderControl(writer, Adapter);
@@ -2714,7 +2719,7 @@ namespace System.Web.UI {
// But for control which requires its OnInit method to be called again
// to properly initialize when the control is removed and added back
// to Page's control tree, the control can override IsReloadable
- // to true so the control state is reset. e.g. Validator, see bug
+ // to true so the control state is reset. e.g. Validator, see
if (IsReloadable) {
_controlState = ControlState.Constructed;
}
@@ -2842,7 +2847,6 @@ namespace System.Web.UI {
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
protected virtual bool ViewStateIgnoresCase {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
return false;
}
@@ -2949,7 +2953,6 @@ namespace System.Web.UI {
/// child controls they contain in preperation for postback or rendering.
/// </para>
/// </devdoc>
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
protected internal virtual void CreateChildControls() {
}
@@ -3176,7 +3179,7 @@ namespace System.Web.UI {
internal Control FindControlFromPageIfNecessary(string id) {
Control c = FindControl(id);
// Find control from the page if it's a hierarchical ID.
- // Dev11 bug 19915
+ // Dev11
if (c == null && Page != null) {
char[] findControlSeparators = { ID_SEPARATOR, LEGACY_ID_SEPARATOR };
if (id.IndexOfAny(findControlSeparators) != -1) {
@@ -3275,7 +3278,6 @@ namespace System.Web.UI {
/// so that they can be stored in the <see langword='StateBag'/>
/// object.</para>
/// </devdoc>
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
protected virtual void TrackViewState() {
if (_viewState != null)
_viewState.TrackViewState();
@@ -3420,7 +3422,6 @@ namespace System.Web.UI {
/// <para>Notifies the control that an element, XML or HTML, was parsed, and adds it to
/// the control.</para>
/// </devdoc>
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
void IParserAccessor.AddParsedSubObject(object obj) {
AddParsedSubObject(obj);
}
@@ -3436,7 +3437,6 @@ namespace System.Web.UI {
}
private Control OwnerControl {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
if (RareFields == null) {
return null;
diff --git a/mcs/class/referencesource/System.Web/UI/ControlBuilder.cs b/mcs/class/referencesource/System.Web/UI/ControlBuilder.cs
index 6a5c0117707..91b38689c56 100644
--- a/mcs/class/referencesource/System.Web/UI/ControlBuilder.cs
+++ b/mcs/class/referencesource/System.Web/UI/ControlBuilder.cs
@@ -2220,8 +2220,8 @@ namespace System.Web.UI {
try {
// We must push the theme flag to child complex objects so they are init'd properly
- // DevDiv Bug 59351
- // Set applytheme only when necessary.
+ // DevDiv
+
if (entry.Builder.flags[applyTheme] != flags[applyTheme]) {
entry.Builder.flags[applyTheme] = flags[applyTheme];
}
diff --git a/mcs/class/referencesource/System.Web/UI/ControlCollection.cs b/mcs/class/referencesource/System.Web/UI/ControlCollection.cs
index 29e193397dc..61aacfdc5b0 100644
--- a/mcs/class/referencesource/System.Web/UI/ControlCollection.cs
+++ b/mcs/class/referencesource/System.Web/UI/ControlCollection.cs
@@ -192,7 +192,6 @@ namespace System.Web.UI {
/// </para>
/// </devdoc>
public virtual int Count {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
return _size;
}
@@ -363,14 +362,12 @@ namespace System.Web.UI {
}
object IEnumerator.Current {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
return Current;
}
}
public Control Current {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
if (index == -1)
throw new InvalidOperationException(SR.GetString(SR.ListEnumCurrentOutOfRange));
diff --git a/mcs/class/referencesource/System.Web/UI/EmptyTextWriter.cs b/mcs/class/referencesource/System.Web/UI/EmptyTextWriter.cs
index bab0f2435ba..eddd0967fe0 100644
--- a/mcs/class/referencesource/System.Web/UI/EmptyTextWriter.cs
+++ b/mcs/class/referencesource/System.Web/UI/EmptyTextWriter.cs
@@ -138,4 +138,4 @@ namespace System.Web.UI
}
}
}
-#endif
+#endif \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web/UI/HTMLTextWriter.cs b/mcs/class/referencesource/System.Web/UI/HTMLTextWriter.cs
index e8eafdfb8c8..b5c395a74f8 100644
--- a/mcs/class/referencesource/System.Web/UI/HTMLTextWriter.cs
+++ b/mcs/class/referencesource/System.Web/UI/HTMLTextWriter.cs
@@ -98,7 +98,7 @@ namespace System.Web.UI {
public const char StyleEqualsChar = ':';
public const string DefaultTabString = "\t";
- // The DesignerRegion attribute name must be kept in [....] with
+ // The DesignerRegion attribute name must be kept in sync with
// System.Web.UI.Design.DesignerRegion.DesignerRegionNameAttribute
internal const string DesignerRegionAttributeName = "_designerRegion";
@@ -139,7 +139,9 @@ namespace System.Web.UI {
RegisterTag("big", HtmlTextWriterTag.Big, TagType.Inline);
RegisterTag("blockquote", HtmlTextWriterTag.Blockquote, TagType.Other);
RegisterTag("body", HtmlTextWriterTag.Body, TagType.Other);
- RegisterTag("br", HtmlTextWriterTag.Br, TagType.Other);
+ // Devdiv 852940, BR is a self-closing tag
+ RegisterTag("br", HtmlTextWriterTag.Br,
+ BinaryCompatibility.Current.TargetsAtLeastFramework46 ? TagType.NonClosing : TagType.Other);
RegisterTag("button", HtmlTextWriterTag.Button, TagType.Inline);
RegisterTag("caption", HtmlTextWriterTag.Caption, TagType.Other);
RegisterTag("center", HtmlTextWriterTag.Center, TagType.Other);
@@ -373,7 +375,6 @@ namespace System.Web.UI {
}
//Writes a string to the text stream.
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public override void Write(string s) {
if (tabsPending) {
OutputTabs();
@@ -390,7 +391,6 @@ namespace System.Web.UI {
}
//Writes a character to the text stream.
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public override void Write(char value) {
if (tabsPending) {
OutputTabs();
@@ -1128,22 +1128,18 @@ namespace System.Web.UI {
}
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
protected virtual string RenderBeforeTag() {
return null;
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
protected virtual string RenderBeforeContent() {
return null;
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
protected virtual string RenderAfterContent() {
return null;
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
protected virtual string RenderAfterTag() {
return null;
}
diff --git a/mcs/class/referencesource/System.Web/UI/HtmlControls/HtmlControl.cs b/mcs/class/referencesource/System.Web/UI/HtmlControls/HtmlControl.cs
index 157049e6404..7061b39e0d0 100644
--- a/mcs/class/referencesource/System.Web/UI/HtmlControls/HtmlControl.cs
+++ b/mcs/class/referencesource/System.Web/UI/HtmlControls/HtmlControl.cs
@@ -73,7 +73,6 @@ namespace System.Web.UI.HtmlControls {
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
]
public AttributeCollection Attributes {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
if (_attributes == null)
_attributes = new AttributeCollection(ViewState);
diff --git a/mcs/class/referencesource/System.Web/UI/HtmlForm.cs b/mcs/class/referencesource/System.Web/UI/HtmlForm.cs
index ce4088eaf66..5dbcc9f16bd 100644
--- a/mcs/class/referencesource/System.Web/UI/HtmlForm.cs
+++ b/mcs/class/referencesource/System.Web/UI/HtmlForm.cs
@@ -219,8 +219,8 @@ namespace System.Web.UI.HtmlControls {
/// <devdoc>
/// Overridden to return a constant value or tack the ID onto the same constant value.
- /// This fixes a bug in PocketPC which doesn't allow the name and ID of a form to be different
- /// </devdoc>
+ /// This fixes a
+
public override string UniqueID {
get {
if (NamingContainer == Page) {
@@ -279,7 +279,7 @@ namespace System.Web.UI.HtmlControls {
// scenarios need the postback action to be the original URL. Note however, if Server.Transfer/Execute
// is used, the action will be set to the transferred/executed page, that is, the value of
// CurrentExecutionFilePathObject. This is because of ASURT 59970 and the document attached to
- // that bug, which indirectly states that things should behave this way when Transfer/Execute is used.
+ // that
if (Context.ServerExecuteDepth == 0) {
// There hasn't been any Server.Transfer or RewritePath.
// ASURT 15979: need to use a relative path, not absolute
@@ -423,7 +423,7 @@ namespace System.Web.UI.HtmlControls {
(page.RequestInternal.Browser.W3CDomVersion.Major > 0)) {
if (DefaultButton.Length > 0) {
// Find control from the page if it's a hierarchical ID.
- // Dev11 bug 19915
+ // Dev11
Control c = FindControlFromPageIfNecessary(DefaultButton);
if (c is IButtonControl) {
diff --git a/mcs/class/referencesource/System.Web/UI/IUpdatePanel.cs b/mcs/class/referencesource/System.Web/UI/IUpdatePanel.cs
index 1bafbf1e45e..37bffe52a7a 100644
--- a/mcs/class/referencesource/System.Web/UI/IUpdatePanel.cs
+++ b/mcs/class/referencesource/System.Web/UI/IUpdatePanel.cs
@@ -7,4 +7,4 @@
namespace System.Web.UI {
internal interface IUpdatePanel {
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web/UI/LiteralControl.cs b/mcs/class/referencesource/System.Web/UI/LiteralControl.cs
index 99e8f1616ff..f7e9fe26c72 100644
--- a/mcs/class/referencesource/System.Web/UI/LiteralControl.cs
+++ b/mcs/class/referencesource/System.Web/UI/LiteralControl.cs
@@ -74,7 +74,6 @@ namespace System.Web.UI {
/// <devdoc>
/// <para>Saves any state that was modified after mark.</para>
/// </devdoc>
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
protected internal override void Render(HtmlTextWriter output) {
output.Write(_text);
}
diff --git a/mcs/class/referencesource/System.Web/UI/ObjectStateFormatter.cs b/mcs/class/referencesource/System.Web/UI/ObjectStateFormatter.cs
index 5eb66eae4cd..7e60b164e4a 100644
--- a/mcs/class/referencesource/System.Web/UI/ObjectStateFormatter.cs
+++ b/mcs/class/referencesource/System.Web/UI/ObjectStateFormatter.cs
@@ -189,7 +189,7 @@ namespace System.Web.UI {
return null;
}
- // Note: duplicated (somewhat) in GetMacKeyModifier, keep in [....]
+ // Note: duplicated (somewhat) in GetMacKeyModifier, keep in sync
// See that method for comments on why these modifiers are in place
List<string> specificPurposes = new List<string>() {
@@ -216,7 +216,7 @@ namespace System.Web.UI {
return null;
}
- // Note: duplicated (somewhat) in GetSpecificPurposes, keep in [....]
+ // Note: duplicated (somewhat) in GetSpecificPurposes, keep in sync
// Use the page's directory and class name as part of the key (ASURT 64044)
uint pageHashCode = _page.GetClientStateIdentifier();
diff --git a/mcs/class/referencesource/System.Web/UI/Page.cs b/mcs/class/referencesource/System.Web/UI/Page.cs
index 9f9f36cfd55..d8ee546df17 100644
--- a/mcs/class/referencesource/System.Web/UI/Page.cs
+++ b/mcs/class/referencesource/System.Web/UI/Page.cs
@@ -17,6 +17,7 @@ namespace System.Web.UI {
using System;
using System.Collections;
+using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
@@ -194,7 +195,7 @@ public class Page: TemplateControl, IHttpHandler {
private const string PageSubmitScriptKey = "PageSubmitScript";
private const string PageReEnableControlsScriptKey = "PageReEnableControlsScript";
- // NOTE: Make sure this stays in [....] with MobilePage.PageRegisteredControlsThatRequirePostBackKey
+ // NOTE: Make sure this stays in sync with MobilePage.PageRegisteredControlsThatRequirePostBackKey
//
private const string PageRegisteredControlsThatRequirePostBackKey = "__ControlsRequirePostBackKey__";
@@ -420,6 +421,8 @@ public class Page: TemplateControl, IHttpHandler {
private UnobtrusiveValidationMode? _unobtrusiveValidationMode;
+ private bool _executingAsyncTasks = false;
+
private static StringSet s_systemPostFields;
static Page() {
// Create a static hashtable with all the names that should be
@@ -475,6 +478,15 @@ public class Page: TemplateControl, IHttpHandler {
set;
}
+ internal bool IsExecutingAsyncTasks {
+ get {
+ return _executingAsyncTasks;
+ }
+ set {
+ _executingAsyncTasks = value;
+ }
+ }
+
public ModelBindingExecutionContext ModelBindingExecutionContext {
get {
if (_modelBindingExecutionContext == null) {
@@ -606,7 +618,6 @@ public class Page: TemplateControl, IHttpHandler {
/// <para>Gets the HttpContext for the Page.</para>
/// </devdoc>
protected internal override HttpContext Context {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
if (_context == null) {
_context = HttpContext.Current;
@@ -1111,7 +1122,6 @@ public class Page: TemplateControl, IHttpHandler {
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public HttpRequest Request {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
if (_request == null)
throw new HttpException(SR.GetString(SR.Request_not_available));
@@ -1520,14 +1530,14 @@ public class Page: TemplateControl, IHttpHandler {
// a __VIEWSTATE field. It shouldn't be considered sensitive information since its inputs
// are assumed to be known by all parties.
internal uint GetClientStateIdentifier() {
- //
+ // Use non-randomized hash code algorithms instead of String.GetHashCode.
// Use the page's directory and class name as part of the key (ASURT 64044)
// We need to make sure that the hash is case insensitive, since the file system
// is, and strange view state errors could otherwise happen (ASURT 128657)
- int pageHashCode = StringComparer.InvariantCultureIgnoreCase.GetHashCode(
- TemplateSourceDirectory);
- pageHashCode += StringComparer.InvariantCultureIgnoreCase.GetHashCode(GetType().Name);
+ int pageHashCode = StringUtil.GetNonRandomizedHashCode(TemplateSourceDirectory, ignoreCase:true);
+ pageHashCode += StringUtil.GetNonRandomizedHashCode(GetType().Name, ignoreCase:true);
+
return (uint)pageHashCode;
}
@@ -1807,7 +1817,6 @@ public class Page: TemplateControl, IHttpHandler {
Browsable(false)
]
public override bool Visible {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
return base.Visible;
}
@@ -2264,8 +2273,8 @@ public class Page: TemplateControl, IHttpHandler {
// Need to always render out the viewstate field so alternate viewstate persistence will get called
writer.Write("\r\n<input type=\"hidden\" name=\"");
writer.Write(ViewStateFieldPrefixID);
- // Dev10 Bug 486494
- // Remove previously rendered NewLine
+ // Dev10
+
writer.Write("\" id=\"");
writer.Write(ViewStateFieldPrefixID);
writer.WriteLine("\" value=\"\" />");
@@ -2684,7 +2693,6 @@ window.onload = WebForm_RestoreScrollPosition;
}
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
internal bool ApplyControlStyleSheet(Control ctrl) {
if (_styleSheet != null) {
_styleSheet.ApplyControlSkin(ctrl);
@@ -3120,6 +3128,130 @@ window.onload = WebForm_RestoreScrollPosition;
}
+ // Operations like FindControl and LoadPostData call EnsureDataBound, which may fire up
+ // async model binding methods. Therefore we make ProcessPostData method to be async so that we can await
+ // async data bindings.
+ // The differences between ProcessPostData and ProcessPostDataAsync are:
+ // 1. ProcessPostDataAsync awaits GetWaitForPreviousStepCompletionAwaitable after FindControl();
+ // 2. ProcessPostDataAsync calls LoadPostDataAsync() instead of LoadPostData().
+ private async Task ProcessPostDataAsync(NameValueCollection postData, bool fBeforeLoad) {
+ if (_changedPostDataConsumers == null)
+ _changedPostDataConsumers = new ArrayList();
+
+ // identify controls that have postback data
+ if (postData != null) {
+ foreach (string postKey in postData) {
+ if (postKey != null) {
+ // Ignore system post fields
+ if (IsSystemPostField(postKey))
+ continue;
+
+ Control ctrl = null;
+ using (Context.SyncContext.AllowVoidAsyncOperationsBlock()) {
+ ctrl = FindControl(postKey);
+ await GetWaitForPreviousStepCompletionAwaitable();
+ }
+
+ if (ctrl == null) {
+ if (fBeforeLoad) {
+ // It was not found, so keep track of it for the post load attempt
+ if (_leftoverPostData == null)
+ _leftoverPostData = new NameValueCollection();
+ _leftoverPostData.Add(postKey, null);
+ }
+ continue;
+ }
+
+ IPostBackDataHandler consumer = ctrl.PostBackDataHandler;
+
+ // Ignore controls that are not IPostBackDataHandler (see ASURT 13581)
+ if (consumer == null) {
+
+ // If it's a IPostBackEventHandler (which doesn't implement IPostBackDataHandler),
+ // register it (ASURT 39040)
+ if (ctrl.PostBackEventHandler != null)
+ RegisterRequiresRaiseEvent(ctrl.PostBackEventHandler);
+
+ continue;
+ }
+
+ if (consumer != null) {
+ NameValueCollection postCollection = ctrl.CalculateEffectiveValidateRequest() ? _requestValueCollection : _unvalidatedRequestValueCollection;
+ bool changed = await LoadPostDataAsync(consumer, postKey, postCollection);
+
+ if (changed)
+ _changedPostDataConsumers.Add(ctrl);
+ }
+
+ // ensure controls are only notified of postback once
+ if (_controlsRequiringPostBack != null)
+ _controlsRequiringPostBack.Remove(postKey);
+ }
+ }
+ }
+
+ // Keep track of the leftover for the post-load attempt
+ ArrayList leftOverControlsRequiringPostBack = null;
+
+ // process controls that explicitly registered to be notified of postback
+ if (_controlsRequiringPostBack != null) {
+ foreach (string controlID in _controlsRequiringPostBack) {
+ Control c = null;
+ using (Context.SyncContext.AllowVoidAsyncOperationsBlock()) {
+ c = FindControl(controlID);
+ await GetWaitForPreviousStepCompletionAwaitable();
+ }
+
+ if (c != null) {
+ IPostBackDataHandler consumer = c.AdapterInternal as IPostBackDataHandler;
+ if (consumer == null) {
+ consumer = c as IPostBackDataHandler;
+ }
+
+ // Give a helpful error if the control is not a IPostBackDataHandler (ASURT 128532)
+ if (consumer == null) {
+ throw new HttpException(SR.GetString(SR.Postback_ctrl_not_found, controlID));
+ }
+
+ NameValueCollection postCollection = c.CalculateEffectiveValidateRequest() ? _requestValueCollection : _unvalidatedRequestValueCollection;
+ bool changed = await LoadPostDataAsync(consumer, controlID, postCollection);
+ if (changed)
+ _changedPostDataConsumers.Add(c);
+ }
+ else {
+ if (fBeforeLoad) {
+ if (leftOverControlsRequiringPostBack == null)
+ leftOverControlsRequiringPostBack = new ArrayList();
+ leftOverControlsRequiringPostBack.Add(controlID);
+ }
+ }
+ }
+
+ _controlsRequiringPostBack = leftOverControlsRequiringPostBack;
+ }
+
+ }
+
+ private async Task<bool> LoadPostDataAsync(IPostBackDataHandler consumer, string postKey, NameValueCollection postCollection) {
+ bool changed;
+
+ // ListControl family controls call EnsureDataBound in consumer.LoadPostData, which could be an async call in 4.6.
+ // LoadPostData, however, is a sync method, which means we cannot await EnsureDataBound in the method.
+ // To workaround this, for ListControl family controls, we call EnsureDataBound before we call into LoadPostData.
+ if (AppSettings.EnableAsyncModelBinding && consumer is ListControl) {
+ var listControl = consumer as ListControl;
+ listControl.SkipEnsureDataBoundInLoadPostData = true;
+ using (Context.SyncContext.AllowVoidAsyncOperationsBlock()) {
+ listControl.InternalEnsureDataBound();
+ await GetWaitForPreviousStepCompletionAwaitable();
+ }
+ }
+
+ changed = consumer.LoadPostData(postKey, postCollection);
+
+ return changed;
+ }
+
/*
* This method will raise change events for those controls that indicated
* during PostProcessData that their data has changed.
@@ -4928,7 +5060,13 @@ window.onload = WebForm_RestoreScrollPosition;
}
if (EtwTrace.IsTraceEnabled(EtwTraceLevel.Verbose, EtwTraceFlags.Page)) EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_LOAD_POSTDATA_ENTER, _context.WorkerRequest);
- ProcessPostData(_requestValueCollection, true /* fBeforeLoad */);
+ if (AppSettings.EnableAsyncModelBinding) {
+ await ProcessPostDataAsync(_requestValueCollection, true /* fBeforeLoad */).WithinCancellableCallback(con);
+ }
+ else {
+ ProcessPostData(_requestValueCollection, true /* fBeforeLoad */);
+ }
+
if (EtwTrace.IsTraceEnabled(EtwTraceLevel.Verbose, EtwTraceFlags.Page)) EtwTrace.Trace(EtwTraceType.ETW_TYPE_PAGE_LOAD_POSTDATA_LEAVE, _context.WorkerRequest);
if (con.TraceIsEnabled) Trace.Write("aspx.page", "End ProcessPostData");
}
@@ -4949,7 +5087,13 @@ window.onload = WebForm_RestoreScrollPosition;
if (IsPostBack) {
// Try process the post data again (ASURT 29045)
if (con.TraceIsEnabled) Trace.Write("aspx.page", "Begin ProcessPostData Second Try");
- ProcessPostData(_leftoverPostData, false /* !fBeforeLoad */);
+ if (AppSettings.EnableAsyncModelBinding) {
+ await ProcessPostDataAsync(_leftoverPostData, false /* !fBeforeLoad */).WithinCancellableCallback(con);
+ }
+ else {
+ ProcessPostData(_leftoverPostData, false /* !fBeforeLoad */);
+ }
+
if (con.TraceIsEnabled) {
Trace.Write("aspx.page", "End ProcessPostData Second Try");
Trace.Write("aspx.page", "Begin Raise ChangedEvents");
@@ -5437,8 +5581,8 @@ window.onload = WebForm_RestoreScrollPosition;
HttpCapabilitiesBase caps = _request.Browser;
if(caps != null) {
- // Dev10 440476: Page.SetIntrinsics method has a bug causing throwing NullReferenceException
- // in certain circumstances. This edge case was regressed by the VSWhidbey fix below.
+ // Dev10 440476: Page.SetIntrinsics method has a
+
// VSWhidbey 109162: Set content type at the very beginning so it can be
// overwritten within the user code of the page if needed.
@@ -5850,7 +5994,7 @@ window.onload = WebForm_RestoreScrollPosition;
}
}
- private CancellationTokenSource CreateCancellationTokenFromAsyncTimeout() {
+ internal CancellationTokenSource CreateCancellationTokenFromAsyncTimeout() {
TimeSpan timeout = AsyncTimeout;
// CancellationTokenSource can only create timers within a specific range (<= _maxAsyncTimeout)
diff --git a/mcs/class/referencesource/System.Web/UI/PartialCachingControl.cs b/mcs/class/referencesource/System.Web/UI/PartialCachingControl.cs
index c7eb347bfb9..5e61537f1e5 100644
--- a/mcs/class/referencesource/System.Web/UI/PartialCachingControl.cs
+++ b/mcs/class/referencesource/System.Web/UI/PartialCachingControl.cs
@@ -468,9 +468,9 @@ public abstract class BasePartialCachingControl : Control {
NameValueCollection reqValCollection;
HttpRequest request = Page.Request;
if (request != null && request.HttpVerb == HttpVerb.POST) {
- // Bug 6129: Partial cache key should include posted form values in postbacks.
- // Include both QueryString and Form values (but not Cookies or Server Variables like Request.Params does).
- // Per Request.Params behavior, add QueryString values before Form values
+ //
+
+
reqValCollection = new NameValueCollection(request.QueryString);
reqValCollection.Add(request.Form);
}
@@ -844,10 +844,8 @@ internal class ControlCachedVary {
public override int GetHashCode () {
HashCodeCombiner hashCodeCombiner = new HashCodeCombiner();
- // Cast _varyByCustom to an object, since the HashCodeCombiner.AddObject(string)
- // overload uses StringUtil.GetStringHashCode(). We want to use String.GetHashCode()
- // in this method, since we do not require a stable hash code across architectures.
- hashCodeCombiner.AddObject((object)_varyByCustom);
+ // We need non-randomized hash code for _varyByCustom
+ hashCodeCombiner.AddInt(StringUtil.GetNonRandomizedHashCode(_varyByCustom));
hashCodeCombiner.AddArray(_varyByParams);
hashCodeCombiner.AddArray(_varyByControls);
diff --git a/mcs/class/referencesource/System.Web/UI/TargetFrameworkUtil.cs b/mcs/class/referencesource/System.Web/UI/TargetFrameworkUtil.cs
index e8b736cd82a..e4030f7da89 100644
--- a/mcs/class/referencesource/System.Web/UI/TargetFrameworkUtil.cs
+++ b/mcs/class/referencesource/System.Web/UI/TargetFrameworkUtil.cs
@@ -103,7 +103,7 @@ namespace System.Web.UI {
// The provider needs not be cached because the TFP service
// returns light-weight providers that delegate to the same
- // underlying TFP instance. (Dev10 bug 795001)
+ // underlying TFP instance. (Dev10
private static TypeDescriptionProvider GetTargetFrameworkProvider(object obj) {
TypeDescriptionProviderService service = TargetFrameworkUtil.TypeDescriptionProviderService;
if (service != null) {
@@ -532,7 +532,7 @@ namespace System.Web.UI {
// updated).
// - Otherwise, we are either already using standard reflection, or we are using the
// TFP in the primary appdomain, and should not be caching statically.
- // Dev10 bug 805134
+ // Dev10
return s_cbmTdpBridge == null;
}
}
diff --git a/mcs/class/referencesource/System.Web/UI/TemplateParser.cs b/mcs/class/referencesource/System.Web/UI/TemplateParser.cs
index dea1ef4c948..13ba31d98c5 100644
--- a/mcs/class/referencesource/System.Web/UI/TemplateParser.cs
+++ b/mcs/class/referencesource/System.Web/UI/TemplateParser.cs
@@ -1567,7 +1567,7 @@ public abstract class TemplateParser : BaseParser, IAssemblyDependencyParser {
TypeDescriptor.GetAttributes(childType)[typeof(PartialCachingAttribute)];
// If we are parsing a theme file, the controls do not have an ID,
- // and we should not be adding one. (Dev10 bug 660310)
+ // and we should not be adding one. (Dev10
if (!(subBuilder.Parser is PageThemeParser) && cacheAttrib != null) {
_id = "_ctrl_" + _controlCount.ToString(NumberFormatInfo.InvariantInfo);
subBuilder.ID = _id;
diff --git a/mcs/class/referencesource/System.Web/UI/TraceContext.cs b/mcs/class/referencesource/System.Web/UI/TraceContext.cs
index b1c853675b1..b0354a0dcc1 100644
--- a/mcs/class/referencesource/System.Web/UI/TraceContext.cs
+++ b/mcs/class/referencesource/System.Web/UI/TraceContext.cs
@@ -759,7 +759,7 @@ namespace System.Web {
private void InitRequest() {
// Master request is assumed to be initialized first
System.Web.Util.Debug.Assert(_masterRequest != null);
-
+
DataSet requestData = _masterRequest.Clone();
// request info
@@ -786,19 +786,19 @@ namespace System.Web {
AddRow(requestData, SR.Trace_Request, row);
// header info
- int i;
- String[] keys = _context.Request.Headers.AllKeys;
- for (i=0; i<keys.Length; i++) {
- row = NewRow(requestData, SR.Trace_Headers_Collection);
- row[SR.Trace_Name] = keys[i];
- row[SR.Trace_Value] = _context.Request.Headers[keys[i]];
- AddRow(requestData, SR.Trace_Headers_Collection, row);
+ try {
+ //
+
+ AddCollectionToRequestData(requestData, SR.Trace_Headers_Collection, _context.Request.Unvalidated.Headers);
+ }
+ catch {
+ // ---- exceptions when we fail to get the unvalidated collection
}
// response header info
ArrayList headers = _context.Response.GenerateResponseHeaders(false);
int n = (headers != null) ? headers.Count : 0;
- for (i = 0; i < n; i++) {
+ for (int i = 0; i < n; i++) {
HttpResponseHeader h = (HttpResponseHeader)headers[i];
row = NewRow(requestData, SR.Trace_Response_Headers_Collection);
row[SR.Trace_Name] = h.Name;
@@ -807,34 +807,26 @@ namespace System.Web {
}
//form info
- keys = _context.Request.Form.AllKeys;
- for (i=0; i<keys.Length; i++) {
- row = NewRow(requestData, SR.Trace_Form_Collection);
- row[SR.Trace_Name] = keys[i];
- row[SR.Trace_Value] = _context.Request.Form[keys[i]];
- AddRow(requestData, SR.Trace_Form_Collection, row);
+ try {
+ AddCollectionToRequestData(requestData, SR.Trace_Form_Collection, _context.Request.Unvalidated.Form);
+ }
+ catch {
+ // ---- exceptions when we fail to get the unvalidated collection
}
//QueryString info
- keys = _context.Request.QueryString.AllKeys;
- for (i=0; i<keys.Length; i++) {
- row = NewRow(requestData, SR.Trace_Querystring_Collection);
- row[SR.Trace_Name] = keys[i];
- row[SR.Trace_Value] = _context.Request.QueryString[keys[i]];
- AddRow(requestData, SR.Trace_Querystring_Collection, row);
+ try {
+ AddCollectionToRequestData(requestData, SR.Trace_Querystring_Collection, _context.Request.Unvalidated.QueryString);
+ }
+ catch {
+ // ---- exceptions when we fail to get the unvalidated collection
}
//Server Variable info
if (HttpRuntime.HasAppPathDiscoveryPermission()) {
- keys = _context.Request.ServerVariables.AllKeys;
- for (i=0; i<keys.Length; i++) {
- row = NewRow(requestData, SR.Trace_Server_Variables);
- row[SR.Trace_Name] = keys[i];
- row[SR.Trace_Value] = _context.Request.ServerVariables.Get(keys[i]);
- AddRow(requestData, SR.Trace_Server_Variables, row);
- }
+ AddCollectionToRequestData(requestData, SR.Trace_Server_Variables, _context.Request.ServerVariables);
}
-
+
_requestData = requestData;
if (HttpRuntime.UseIntegratedPipeline) {
@@ -847,6 +839,18 @@ namespace System.Web {
_context.Request.InsertEntityBody();
}
}
+
+ private void AddCollectionToRequestData(DataSet requestData, string traceCollectionTitle, NameValueCollection collection) {
+ if (null != collection) {
+ var keys = collection.AllKeys;
+ for (int i = 0; i < keys.Length; i++) {
+ var row = NewRow(requestData, traceCollectionTitle);
+ row[SR.Trace_Name] = keys[i];
+ row[SR.Trace_Value] = collection[keys[i]];
+ AddRow(requestData, traceCollectionTitle, row);
+ }
+ }
+ }
}
}
diff --git a/mcs/class/referencesource/System.Web/UI/Util.cs b/mcs/class/referencesource/System.Web/UI/Util.cs
index 66a3bacdeb4..e6461ae8b16 100644
--- a/mcs/class/referencesource/System.Web/UI/Util.cs
+++ b/mcs/class/referencesource/System.Web/UI/Util.cs
@@ -329,7 +329,7 @@ internal static class Util {
string assembly = "system_web";
// QFE number is not included in client path
- string version = VersionInfo.EngineVersion.Substring(0, VersionInfo.EngineVersion.LastIndexOf('.')).Replace('.', '_');
+ string version = VersionInfo.SystemWebVersion.Substring(0, VersionInfo.SystemWebVersion.LastIndexOf('.')).Replace('.', '_');
location = String.Format(CultureInfo.InvariantCulture, location, assembly, version);
}
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/MenuAdapter.cs b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/MenuAdapter.cs
index 83c46ef3715..2fc4fce2058 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/MenuAdapter.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/MenuAdapter.cs
@@ -44,8 +44,8 @@ namespace System.Web.UI.WebControls.Adapters {
private string Escape(string path) {
// This function escapes \\ so that they don't get replaced because of
- // a Netscape 4 bug. Other escapable characters will be escaped by .
- // _ becomes __ and \\ becomes \_\
+ // a Netscape 4
+
StringBuilder b = null;
if (String.IsNullOrEmpty(path)) {
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlBulletedListAdapter.cs b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlBulletedListAdapter.cs
index c30735b2563..711bedb6551 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlBulletedListAdapter.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlBulletedListAdapter.cs
@@ -32,7 +32,7 @@ namespace System.Web.UI.WebControls.Adapters {
writer.WriteBreak();
break;
case BulletedListDisplayMode.HyperLink:
- //
+ // TODO: if index == 0, set accesskey. Needs a new RenderBeginHyperlink method.
string targetURL = Control.ResolveClientUrl(items[index].Value);
if (items[index].Enabled) {
PageAdapter.RenderBeginHyperlink(writer, targetURL, true /* encode */, items[index].Text);
@@ -45,7 +45,7 @@ namespace System.Web.UI.WebControls.Adapters {
break;
case BulletedListDisplayMode.LinkButton:
if (items[index].Enabled) {
- //
+ // TODO: if index == 0, set accesskey. Needs a new RenderPostBackEvent method.
PageAdapter.RenderPostBackEvent(writer, Control.UniqueID, index.ToString(CultureInfo.InvariantCulture),
items[index].Text, items[index].Text);
} else {
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlDataBoundLiteralControlAdapter.cs b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlDataBoundLiteralControlAdapter.cs
index f1f5c99a3ca..4a4fd4232b7 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlDataBoundLiteralControlAdapter.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlDataBoundLiteralControlAdapter.cs
@@ -21,8 +21,8 @@ namespace System.Web.UI.Adapters {
protected internal override void EndRender(HtmlTextWriter writer) {
}
- //
-
+ // BUGBUG: This override is for compatibility with MMIT.
+ // MMIT legacy pages also use this adapter -UNDONE: Review once MMIT legacy plan is complete.
protected internal override void Render(HtmlTextWriter writer) {
WmlTextWriter wmlWriter = writer as WmlTextWriter;
if (wmlWriter == null) {
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlHyperLinkAdapter.cs b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlHyperLinkAdapter.cs
index 9c919c17b52..b80aa4f9de2 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlHyperLinkAdapter.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlHyperLinkAdapter.cs
@@ -20,8 +20,8 @@ namespace System.Web.UI.WebControls.Adapters {
String text = Control.Text;
if (text.Length == 0) {
- // Whidbey 18195
-
+ // Whidbey 18195 UNDONE: This solution is somewhat ad hoc, awaiting spec resolution on IStaticTextControl
+ // in M2. For now, take text from first IStaticTextControl or DataboundLiteralControl.
foreach(Control child in Control.Controls) {
if (child is IStaticTextControl) {
text = ((IStaticTextControl)child).Text;
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlImageButtonAdapter.cs b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlImageButtonAdapter.cs
index 31d463449da..f98b86743e9 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlImageButtonAdapter.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlImageButtonAdapter.cs
@@ -10,9 +10,9 @@ namespace System.Web.UI.WebControls.Adapters {
using System.Web.UI.Adapters;
using System.Web.UI.WebControls;
- //
-
-
+ // REVIEW: Inheritance. If this inherits from ImageButtonAdapter, there is no way to create a
+ // WmlImageAdapter and set the Control property to delegate rendering (base.Render, below). Control is read-only.
+ // Maybe Control should be get/set for this situation.
public class WmlImageButtonAdapter : WmlImageAdapter {
protected new ImageButton Control {
@@ -30,7 +30,7 @@ namespace System.Web.UI.WebControls.Adapters {
postUrl = Control.ResolveClientUrl (Control.PostBackUrl);
}
- //
+ // UNDONE: Replace hard coded string indexer with strongly typed capability.
if (Page != null && Page.Request != null && (String)Page.Request.Browser["supportsImageSubmit"] == "false") {
writer.EnterStyle(Control.ControlStyle);
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlLiteralAdapter.cs b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlLiteralAdapter.cs
index f5f05650e59..01845963870 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlLiteralAdapter.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlLiteralAdapter.cs
@@ -21,7 +21,7 @@ namespace System.Web.UI.WebControls.Adapters {
protected internal override void EndRender(HtmlTextWriter writer) {
}
- //
+ // BUGBUG: This override is for compatibility with MMIT only. -UNDONE: Review once MMIT legacy plan is complete.
protected internal override void Render(HtmlTextWriter writer) {
WmlTextWriter wmlWriter = writer as WmlTextWriter;
if (wmlWriter == null) {
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlLiteralControlAdapter.cs b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlLiteralControlAdapter.cs
index 7cf14fc7538..052a41fe32a 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlLiteralControlAdapter.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlLiteralControlAdapter.cs
@@ -20,8 +20,8 @@ namespace System.Web.UI.Adapters {
protected internal override void EndRender(HtmlTextWriter writer) {
}
- //
-
+ // BUGBUG: This override is for compatibility with MMIT.
+ // MMIT legacy pages also use this adapter -UNDONE: Review once MMIT legacy plan is complete.
protected internal override void Render(HtmlTextWriter writer) {
WmlTextWriter wmlWriter = writer as WmlTextWriter;
if (wmlWriter == null) {
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlPageAdapter.cs b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlPageAdapter.cs
index 87fcb974b51..08636d4e370 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlPageAdapter.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlPageAdapter.cs
@@ -67,8 +67,8 @@ namespace System.Web.UI.Adapters {
}
}
- //
-
+ // UNDONE: Internal because needed by WmlTextWriter. Consider removing this prop somehow.
+ // Returns true if form variables have been written.
internal bool WrittenFormVariables {
get {
return _writtenFormVariables;
@@ -131,8 +131,8 @@ namespace System.Web.UI.Adapters {
return collection;
}
- //
-
+ // UNDONE: For M1, we only have Wml browsers which do not support accesskey. For later milestones, make this
+ // dependent on a capability or replace with a capability.
private bool DoesBrowserSupportAccessKey() {
return false;
}
@@ -235,16 +235,16 @@ namespace System.Web.UI.Adapters {
}
// Renders the beginning of the form.
- //
+ // UNDONE: Remove internal modifier when method is completely removed from writer.
protected internal virtual void RenderBeginForm(WmlTextWriter writer) {
RenderBeginCardTag(writer);
// Write form variables.
- //
-
-
+ // UNDONE: Move writer._provideBackButton to this adapter.
+ // Review: In V1 we had a writer.ProvideBackButton property, is there any need for this with (more advanced)
+ // whidbey devices?
_writtenFormVariables = true;
if (_formVariables == null) {
_formVariables = new ListDictionary();
@@ -259,7 +259,7 @@ namespace System.Web.UI.Adapters {
RenderSetFormVariables(writer);
RenderPostUrlFormVariable(writer);
writer.WriteLine("</refresh></onevent>");
- //
+ // UNDONE: formAdapter.RenderExtraCardElements(this);
writer.BeginFormOrPanel();
}
@@ -432,7 +432,7 @@ namespace System.Web.UI.Adapters {
RenderTargetAndArgumentPostFields(writer, target, argument, postFieldType);
RenderPostFieldVariableDictionary(writer, _dynamicPostFields);
RenderPostFieldDictionary(writer, _staticPostFields);
- //
+ // UNDONE: Add postbacks for variables which are not on the current page.
writer.WriteEndTag("go");
}
@@ -442,8 +442,8 @@ namespace System.Web.UI.Adapters {
return;
}
writer.Write("?");
- //
-
+ // UNDONE: MMIT IPageAdapter.PersistCookielessData NYI
+ // if(Page.Adapter.PersistCookielessData && Browser["canRenderOneventAndPrevElementsTogether"] != "false")
if (!StringUtil.EqualsIgnoreCase((string)Browser["canRenderOneventAndPrevElementsTogether"], "false")) {
queryString = writer.ReplaceFormsCookieWithVariable(queryString);
}
@@ -504,7 +504,7 @@ namespace System.Web.UI.Adapters {
writer.Write("<onevent type=\"onenterforward\">");
RenderFormPostInGoAction(writer, null, _postBackEventArgumentVarName, WmlPostFieldType.Variable, String.Empty);
- //
+ // REVIEW: Should we always include page hidden variables.
writer.WriteLine("</onevent>");
writer.WriteLine("<onevent type=\"onenterbackward\"><prev /></onevent>");
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlPhoneLinkAdapter.cs b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlPhoneLinkAdapter.cs
index c4dfaa39a26..efccabe639b 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlPhoneLinkAdapter.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlPhoneLinkAdapter.cs
@@ -11,7 +11,7 @@ namespace System.Web.UI.WebControls.Adapters {
public class WmlPhoneLinkAdapter : PhoneLinkAdapter {
- //
+ // UNDONE: Add style.
protected internal override void Render(HtmlTextWriter markupWriter) {
WmlTextWriter writer = (WmlTextWriter)markupWriter;
String text, url, phoneNumber;
@@ -42,7 +42,7 @@ namespace System.Web.UI.WebControls.Adapters {
if (Page != null && Page.Request != null) {
browser = Page.Request.Browser;
}
- //
+ // TODO: Replace hard coded string key.
if (browser != null && (String)browser["canInitiateVoiceCall"] != "true") {
text = String.Format(controlText,
originalNumber);
@@ -54,7 +54,7 @@ namespace System.Web.UI.WebControls.Adapters {
// showing as text so it can be selected. If it is not
// formatted in the text yet, append it to the end of the
// text.
- //
+ // TODO: Replace hard coded string key.
if (browser != null && browser["requiresPhoneNumbersAsPlainText"] == "true") {
text = controlText + " " + phoneNumber;
url = String.Empty;
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlRadioButtonAdapter.cs b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlRadioButtonAdapter.cs
index 397b021374f..7923294a176 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlRadioButtonAdapter.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlRadioButtonAdapter.cs
@@ -141,14 +141,14 @@ namespace System.Web.UI.WebControls.Adapters {
// RenderAsGroup returns a RadioButtonGroup object if the group should be
// rendered in a single <select> statement, or null if autopostback should
// be enabled.
- //
+ // UNDONE: Check more general case when radiobuttons do not all share the same parent
private RadioButtonGroup RenderAsGroup(RadioButton r) {
bool startedSequence = false;
bool finishedSequence = false;
RadioButtonGroup group = new RadioButtonGroup();
- //
+ //TODO : Check all controls on page
foreach (Control c in r.Parent.Controls) {
RadioButton radioSibling = c as RadioButton;
LiteralControl literalSibling = c as LiteralControl;
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlTextBoxAdapter.cs b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlTextBoxAdapter.cs
index a3875b40a56..51124c6afd0 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlTextBoxAdapter.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/Adapters/WmlTextBoxAdapter.cs
@@ -33,7 +33,7 @@ namespace System.Web.UI.WebControls.Adapters {
if (Control.TextMode == TextBoxMode.Password) {
value = String.Empty;
- //
+ // UNDONE: Consider adding property or wml adapter property to set requiresRandomID to true.
requiresRandomID = true;
}
@@ -53,8 +53,8 @@ namespace System.Web.UI.WebControls.Adapters {
writer.MapClientIDToShortName(Control.ClientID, requiresRandomID);
}
- //
-
+ // UNDONE: There are some wml-specific properties (format, title, size, maxLength) which
+ // we should consider for Whidbey.
RenderTextBox((WmlTextWriter)writer, Control.ClientID,
value,
null /* format */,
@@ -69,7 +69,7 @@ namespace System.Web.UI.WebControls.Adapters {
// Renders the TextBox.
public virtual void RenderTextBox(WmlTextWriter writer, String id, String value, String format, String title, bool password, int size, int maxLength, bool generateRandomID) {
if (!writer.AnalyzeMode) {
- //
+ // UNDONE: Handle rendersBreakBeforeWmlSelectAndInput, if this capability is still needed for Whidbey devices
// VSWhidbey 147458. Close any style tags.
writer.CloseCurrentStyleTags();
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/BaseDataBoundControl.cs b/mcs/class/referencesource/System.Web/UI/WebControls/BaseDataBoundControl.cs
index ef6fda2fd99..ef21e2f0ca6 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/BaseDataBoundControl.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/BaseDataBoundControl.cs
@@ -223,6 +223,10 @@ namespace System.Web.UI.WebControls {
}
}
+ internal void InternalEnsureDataBound() {
+ EnsureDataBound();
+ }
+
protected virtual void OnDataBound(EventArgs e) {
EventHandler handler = Events[EventDataBound] as EventHandler;
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/ChangePassword.cs b/mcs/class/referencesource/System.Web/UI/WebControls/ChangePassword.cs
index 4588444664e..cd906e11df0 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/ChangePassword.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/ChangePassword.cs
@@ -1939,9 +1939,9 @@ namespace System.Web.UI.WebControls {
string cancelPageUrl = CancelDestinationPageUrl;
if (!String.IsNullOrEmpty(cancelPageUrl)) {
- // [....] suggested that we should not terminate execution of current page, to give
+ // Microsoft suggested that we should not terminate execution of current page, to give
// page a chance to cleanup its resources. This may be less performant though.
- // [....] suggested that we need to call ResolveClientUrl before redirecting.
+ // Microsoft suggested that we need to call ResolveClientUrl before redirecting.
// Example is this control inside user control, want redirect relative to user control dir.
Page.Response.Redirect(ResolveClientUrl(cancelPageUrl), false);
}
@@ -1993,9 +1993,9 @@ namespace System.Web.UI.WebControls {
string continuePageUrl = ContinueDestinationPageUrl;
if (!String.IsNullOrEmpty(continuePageUrl)) {
- // [....] suggested that we should not terminate execution of current page, to give
+ // Microsoft suggested that we should not terminate execution of current page, to give
// page a chance to cleanup its resources. This may be less performant though.
- // [....] suggested that we need to call ResolveClientUrl before redirecting.
+ // Microsoft suggested that we need to call ResolveClientUrl before redirecting.
// Example is this control inside user control, want redirect relative to user control dir.
Page.Response.Redirect(ResolveClientUrl(continuePageUrl), false);
}
@@ -2066,9 +2066,9 @@ namespace System.Web.UI.WebControls {
string successPageUrl = SuccessPageUrl;
if (!String.IsNullOrEmpty(successPageUrl)) {
- // [....] suggested that we should not terminate execution of current page, to give
+ // Microsoft suggested that we should not terminate execution of current page, to give
// page a chance to cleanup its resources. This may be less performant though.
- // [....] suggested that we need to call ResolveClientUrl before redirecting.
+ // Microsoft suggested that we need to call ResolveClientUrl before redirecting.
// Example is this control inside user control, want redirect relative to user control dir.
Page.Response.Redirect(ResolveClientUrl(successPageUrl), false);
}
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/CheckBoxList.cs b/mcs/class/referencesource/System.Web/UI/WebControls/CheckBoxList.cs
index d01dc81dc0c..24763e8b166 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/CheckBoxList.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/CheckBoxList.cs
@@ -361,7 +361,7 @@ namespace System.Web.UI.WebControls {
// strIndex is now definitely the index as a string, regardless of which case postDataKey was in.
int index = Int32.Parse(strIndex, CultureInfo.InvariantCulture);
- EnsureDataBound();
+ EnsureDataBoundInLoadPostData();
// Maintain state from the form
if (index >= 0 && index < Items.Count) {
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/DataBoundControl.cs b/mcs/class/referencesource/System.Web/UI/WebControls/DataBoundControl.cs
index 0a433fda772..39801f9c17e 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/DataBoundControl.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/DataBoundControl.cs
@@ -445,11 +445,14 @@ namespace System.Web.UI.WebControls {
OnDataBinding(EventArgs.Empty);
}
DataSourceView view = GetData();
- _arguments = CreateDataSourceSelectArguments();
_ignoreDataSourceViewChanged = true;
RequiresDataBinding = false;
MarkAsDataBound();
- view.Select(_arguments, OnDataSourceViewSelectCallback);
+
+ // when PerformSelect is called in async method, setting _arguments
+ // to a new instance causes an exception deep in ListView.
+ // Instead, we should use SelectArguments.
+ view.Select(SelectArguments, OnDataSourceViewSelectCallback);
}
@@ -490,10 +493,10 @@ namespace System.Web.UI.WebControls {
/// Saves view state.
/// </devdoc>
protected override object SaveViewState() {
- // Bug 322689: In the web farms scenario, if a web site is hosted in 4.0 and 4.5 servers
- // (though this is not a really supported scenario, we are fixing this instance),
- // the View state created by 4.0 should be able to be understood by 4.5 controls.
- // So, we create a Pair only if we are using model binding and otherwise fallback to 4.0 behavior.
+ //
+
+
+
object baseViewState = base.SaveViewState();
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/DataGridItem.cs b/mcs/class/referencesource/System.Web/UI/WebControls/DataGridItem.cs
index 9f399bb9652..480db6455aa 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/DataGridItem.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/DataGridItem.cs
@@ -71,7 +71,6 @@ namespace System.Web.UI.WebControls {
/// <para>Indicates the type of the item in the <see cref='System.Web.UI.WebControls.DataGrid'/>.</para>
/// </devdoc>
public virtual ListItemType ItemType {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
return itemType;
}
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/DetailsView.cs b/mcs/class/referencesource/System.Web/UI/WebControls/DetailsView.cs
index c51c96272d6..268143d0896 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/DetailsView.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/DetailsView.cs
@@ -2867,7 +2867,7 @@ namespace System.Web.UI.WebControls {
propertyChanged = true;
// since we can't go into insert mode in a callback, oldPageIndex should never be -1 and different from PageIndex
- Debug.Assert(oldPageIndex >= 0, "Page indeces are out of [....] from callback hidden field state");
+ Debug.Assert(oldPageIndex >= 0, "Page indeces are out of sync from callback hidden field state");
_pageIndex = oldPageIndex;
string oldDataKeyString = dataKey;
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/DropDownList.cs b/mcs/class/referencesource/System.Web/UI/WebControls/DropDownList.cs
index f1ec34e88b6..214af08d61f 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/DropDownList.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/DropDownList.cs
@@ -154,7 +154,7 @@ namespace System.Web.UI.WebControls {
string [] selectedItems = postCollection.GetValues(postDataKey);
- EnsureDataBound();
+ EnsureDataBoundInLoadPostData();
if (selectedItems != null) {
ValidateEvent(postDataKey, selectedItems[0]);
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/GridView.cs b/mcs/class/referencesource/System.Web/UI/WebControls/GridView.cs
index 3d78a8ec912..722176466a9 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/GridView.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/GridView.cs
@@ -2279,7 +2279,15 @@ namespace System.Web.UI.WebControls {
if (pagedDataSourceEnumerator != null) {
if (pagedDataSource.IsPagingEnabled) {
_pageCount = pagedDataSource.PageCount;
- createdRowsCount = pagedDataSource.DataSourceCount;
+ if (pagedDataSource.IsCustomPagingEnabled) {
+ // DevDiv 782891: We didn't well handle GridView paging in the scenario
+ // in which custom paging was enabled. The root cause was that we mixed up
+ // createdRowsCount with pagedDataSource.DataSourceCount.
+ createdRowsCount = count;
+ }
+ else {
+ createdRowsCount = pagedDataSource.DataSourceCount;
+ }
}
else {
_pageCount = 1;
@@ -2896,7 +2904,19 @@ namespace System.Web.UI.WebControls {
if (affectedRows > 0) {
// Patch up the current page. We might have deleted the last records on the last page, so move
// to the right page.
- int rowCount = (int)ViewState[ItemCountViewStateKey];
+ // DevDiv 782891: We didn't handle GridView paging well in the scenario
+ // in which custom paging was enabled. The root cause was that we mixed up
+ // createdRowsCount with pagedDataSource.DataSourceCount.
+ int rowCount;
+ if (this.AllowPaging && this.AllowCustomPaging) {
+ // Under this condition, the value of ViewState[ItemCountViewStateKey] indicates
+ // created rows count other than total row count.
+ rowCount = (int)VirtualItemCount;
+ }
+ else {
+ rowCount = (int)ViewState[ItemCountViewStateKey];
+ }
+
// Can't have negative rowCount
int expectedRowCount = Math.Max(0, rowCount - affectedRows);
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/ICompositeControlDesignerAccessor.cs b/mcs/class/referencesource/System.Web/UI/WebControls/ICompositeControlDesignerAccessor.cs
index f2467f3d366..cfb9515b423 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/ICompositeControlDesignerAccessor.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/ICompositeControlDesignerAccessor.cs
@@ -6,7 +6,7 @@
namespace System.Web.UI.WebControls {
- //
+ // TODO, nikhilko: Change namespace to System.Web.UI
/// <devdoc>
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/IFieldControl.cs b/mcs/class/referencesource/System.Web/UI/WebControls/IFieldControl.cs
index 2a7f357e5c9..0dacfe9fdad 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/IFieldControl.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/IFieldControl.cs
@@ -8,4 +8,4 @@
set;
}
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/ListControl.cs b/mcs/class/referencesource/System.Web/UI/WebControls/ListControl.cs
index ee8eb18a219..012b960ae30 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/ListControl.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/ListControl.cs
@@ -39,6 +39,7 @@ namespace System.Web.UI.WebControls {
private string cachedSelectedValue;
private ArrayList cachedSelectedIndices;
private bool _stateLoaded;
+ private bool _asyncSelectPending;
/// <devdoc>
@@ -582,10 +583,48 @@ namespace System.Web.UI.WebControls {
_stateLoaded = true;
}
+
+ private void OnDataSourceViewSelectCallback(IEnumerable data) {
+ _asyncSelectPending = false;
+ PerformDataBinding(data);
+ PostPerformDataBindingAction();
+ }
+
protected override void OnDataBinding(EventArgs e) {
base.OnDataBinding(e);
- IEnumerable data = GetData().ExecuteSelect(DataSourceSelectArguments.Empty);
- PerformDataBinding(data);
+ DataSourceView view = GetData();
+
+ // view could be null when a user implements his own GetData().
+ if (null == view) {
+ throw new InvalidOperationException(SR.GetString(SR.DataControl_ViewNotFound, ID));
+ }
+
+ // DevDiv 1036362: enable async model binding for ListControl
+ bool useAsyncSelect = false;
+ if (AppSettings.EnableAsyncModelBinding) {
+ var modelDataView = view as ModelDataSourceView;
+ useAsyncSelect = modelDataView != null && modelDataView.IsSelectMethodAsync;
+ }
+
+ if (useAsyncSelect) {
+ _asyncSelectPending = true; // disable post data binding action until the callback is invoked
+ view.Select(SelectArguments, OnDataSourceViewSelectCallback);
+ }
+ else {
+ IEnumerable data = view.ExecuteSelect(DataSourceSelectArguments.Empty);
+ PerformDataBinding(data);
+ }
+ }
+
+ internal void EnsureDataBoundInLoadPostData() {
+ if (!SkipEnsureDataBoundInLoadPostData) {
+ EnsureDataBound();
+ }
+ }
+
+ internal bool SkipEnsureDataBoundInLoadPostData {
+ get;
+ set;
}
@@ -715,6 +754,13 @@ namespace System.Web.UI.WebControls {
// performed the databind, and we need to maintain backward compat. OnDataBinding will retrieve the
// data from the view synchronously and call PerformDataBinding with the data, preserving the OM.
OnDataBinding(EventArgs.Empty);
+ PostPerformDataBindingAction();
+ }
+
+ private void PostPerformDataBindingAction() {
+ if (_asyncSelectPending)
+ return;
+
RequiresDataBinding = false;
MarkAsDataBound();
OnDataBound(EventArgs.Empty);
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/Listbox.cs b/mcs/class/referencesource/System.Web/UI/WebControls/Listbox.cs
index aadb02d1f5b..2ce71922ea3 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/Listbox.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/Listbox.cs
@@ -191,7 +191,7 @@ namespace System.Web.UI.WebControls {
string[] selectedItems = postCollection.GetValues(postDataKey);
bool selectionChanged = false;
- EnsureDataBound();
+ EnsureDataBoundInLoadPostData();
if (selectedItems != null) {
if (SelectionMode == ListSelectionMode.Single) {
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/LoginView.cs b/mcs/class/referencesource/System.Web/UI/WebControls/LoginView.cs
index 3ede63ea959..820d536afec 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/LoginView.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/LoginView.cs
@@ -350,7 +350,7 @@ namespace System.Web.UI.WebControls {
// Note: we always recreate the child controls in the designer to correctly handle the case of
// the currently selected role group being deleted. This is necessary because the
// setter for TemplateIndex won't recreate the controls if the TemplateIndex is unchanged,
- // which is the case when deleting all but the last role group. [Fix for Bug 148406]
+ // which is the case when deleting all but the last role group. [Fix for
ChildControlsCreated = false;
}
}
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/MenuItem.cs b/mcs/class/referencesource/System.Web/UI/WebControls/MenuItem.cs
index f78c6b43c0c..0eeaa9fc94a 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/MenuItem.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/MenuItem.cs
@@ -966,7 +966,7 @@ namespace System.Web.UI.WebControls {
// In 4.0, the default value of Menu.StaticSubMenuIndent was changed from 16px to Unit.Empty,
// since the table and list rendering modes need to have different effective default values.
// To maintain back compat, the effective default value for table rendering is 16px.
- // Dev10 Bug 741543
+ // Dev10
if (indent.IsEmpty) {
indent = Unit.Pixel(16);
}
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/MenuRenderingMode.cs b/mcs/class/referencesource/System.Web/UI/WebControls/MenuRenderingMode.cs
index ed11ee68d01..f6c81bd7a86 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/MenuRenderingMode.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/MenuRenderingMode.cs
@@ -13,4 +13,4 @@ namespace System.Web.UI.WebControls {
Table,
List,
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/ModelDataSourceView.cs b/mcs/class/referencesource/System.Web/UI/WebControls/ModelDataSourceView.cs
index 6c028feb191..8f762058eb2 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/ModelDataSourceView.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/ModelDataSourceView.cs
@@ -14,6 +14,9 @@ namespace System.Web.UI.WebControls {
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
+ using System.Runtime.CompilerServices;
+ using System.Threading;
+ using System.Threading.Tasks;
using System.Web.Compilation;
using System.Web.ModelBinding;
using System.Web.UI;
@@ -41,6 +44,8 @@ namespace System.Web.UI.WebControls {
private string _updateMethod;
private string _dataKeyName;
+ private Task _viewOperationTask = null;
+
private const string TotalRowCountParameterName = "totalRowCount";
private const string MaximumRowsParameterName = "maximumRows";
private const string StartRowIndexParameterName = "startRowIndex";
@@ -236,7 +241,7 @@ namespace System.Web.UI.WebControls {
EvaluateSelectParameters();
}
- private static bool IsAutoPagingRequired(MethodInfo selectMethod, bool isReturningQueryable) {
+ private static bool IsAutoPagingRequired(MethodInfo selectMethod, bool isReturningQueryable, bool isAsyncSelect) {
bool maximumRowsFound = false;
bool totalRowCountFound = false;
@@ -264,10 +269,22 @@ namespace System.Web.UI.WebControls {
}
}
- bool pagingParamsFound = maximumRowsFound && startRowIndexFound && totalRowCountFound;
+ bool pagingParamsFound;
+ if (isAsyncSelect) {
+ pagingParamsFound = maximumRowsFound && startRowIndexFound;
+ }
+ else {
+ pagingParamsFound = maximumRowsFound && startRowIndexFound && totalRowCountFound;
+ }
- if (!isReturningQueryable && !pagingParamsFound) {
- throw new InvalidOperationException(SR.GetString(SR.ModelDataSourceView_InvalidPagingParameters));
+ bool canDoPaging = isReturningQueryable || pagingParamsFound;
+ if (!canDoPaging) {
+ if (isAsyncSelect) {
+ throw new InvalidOperationException(SR.GetString(SR.ModelDataSourceView_InvalidAsyncPagingParameters));
+ }
+ else {
+ throw new InvalidOperationException(SR.GetString(SR.ModelDataSourceView_InvalidPagingParameters));
+ }
}
return !pagingParamsFound;
@@ -286,11 +303,40 @@ namespace System.Web.UI.WebControls {
}
}
- if ((!isReturningQueryable && !sortExpressionFound)) {
+ if (!isReturningQueryable && !sortExpressionFound) {
throw new InvalidOperationException(SR.GetString(SR.ModelDataSourceView_InvalidSortingParameters));
}
return !sortExpressionFound;
+ }
+
+ private object GetPropertyValueByName(object o, string name) {
+ var propInfo = o.GetType().GetProperty(name);
+ object value = propInfo.GetValue(o, null);
+ return value;
+ }
+
+ private void ValidateAsyncModelBindingRequirements() {
+ if (!(_owner.DataControl.Page.IsAsync && SynchronizationContextUtil.CurrentMode != SynchronizationContextMode.Legacy)) {
+ throw new InvalidOperationException(SR.GetString(SR.ModelDataSourceView_UseAsyncMethodMustBeUsingAsyncPage));
+ }
+ }
+
+ private bool RequireAsyncModelBinding(string methodName, out ModelDataSourceMethod method) {
+ if (!AppSettings.EnableAsyncModelBinding) {
+ method = null;
+ return false;
+ }
+
+ method = FindMethod(methodName);
+ if (null == method) {
+ return false;
+ }
+
+ MethodInfo methodInfo = method.MethodInfo;
+ bool returnTypeIsTask = typeof(Task).IsAssignableFrom(methodInfo.ReturnType);
+
+ return returnTypeIsTask;
}
/// <summary>
@@ -322,12 +368,19 @@ namespace System.Web.UI.WebControls {
/// </param>
/// <returns>A <see cref="System.Web.UI.WebControls.ModelDataSourceMethod"/> with the information required to invoke the select method.</returns>
protected virtual ModelDataSourceMethod EvaluateSelectMethodParameters(DataSourceSelectArguments arguments, out DataSourceSelectResultProcessingOptions selectResultProcessingOptions) {
- ModelDataSourceMethod method;
+ return EvaluateSelectMethodParameters(arguments, null/*method*/, false /*isAsyncSelect*/, out selectResultProcessingOptions);
+ }
+
+ private ModelDataSourceMethod EvaluateSelectMethodParameters(DataSourceSelectArguments arguments, ModelDataSourceMethod method, bool isAsyncSelect, out DataSourceSelectResultProcessingOptions selectResultProcessingOptions) {
IOrderedDictionary mergedParameters = MergeSelectParameters(arguments);
// Resolve the method
- method = FindMethod(SelectMethod);
+ method = method ?? FindMethod(SelectMethod);
Type selectMethodReturnType = method.MethodInfo.ReturnType;
+ if (isAsyncSelect) {
+ selectMethodReturnType = ExtractAsyncSelectReturnType(selectMethodReturnType);
+ }
+
Type modelType = ModelType;
if (modelType == null) {
//When ModelType is not specified but SelectMethod returns IQueryable<T>, we treat T as model type for auto paging and sorting.
@@ -344,11 +397,25 @@ namespace System.Web.UI.WebControls {
//We do auto paging or auto sorting when the select method is returning an IQueryable and does not have parameters for paging or sorting.
bool isReturningQueryable = queryableModelType != null && queryableModelType.IsAssignableFrom(selectMethodReturnType);
+ if (isAsyncSelect && isReturningQueryable) {
+ // async select method does not support returning IQueryable<>.
+ throw new InvalidOperationException(SR.GetString(SR.ModelDataSourceView_InvalidAsyncSelectReturnType, modelType));
+ }
+
bool autoPage = false;
bool autoSort = false;
if (arguments.StartRowIndex >= 0 && arguments.MaximumRows > 0) {
- autoPage = IsAutoPagingRequired(method.MethodInfo, isReturningQueryable);
+ autoPage = IsAutoPagingRequired(method.MethodInfo, isReturningQueryable, isAsyncSelect);
+
+ if (isAsyncSelect) {
+ Debug.Assert(!autoPage, "auto-paging should not be true when using async select method");
+
+ // custom paging is not supported if the return type is not SelectResult
+ if (typeof(SelectResult) != selectMethodReturnType) {
+ throw new InvalidOperationException(SR.GetString(SR.ModelDataSourceView_MustUseSelectResultAsReturnType));
+ }
+ }
}
if (!String.IsNullOrEmpty(arguments.SortExpression)) {
@@ -360,6 +427,19 @@ namespace System.Web.UI.WebControls {
return method;
}
+ private Type ExtractAsyncSelectReturnType(Type t) {
+ // Async select return type is expected to be Task<T>.
+ // This method is trying to return type T.
+ if (t.IsGenericType && t.GetGenericTypeDefinition() == typeof(Task<>)) {
+ Type[] typeArguments = t.GetGenericArguments();
+ if (typeArguments.Length == 1) {
+ return typeArguments[0];
+ }
+ }
+
+ throw new InvalidOperationException(SR.GetString(SR.ModelDataSourceView_InvalidAsyncSelectReturnType, ModelType));
+ }
+
/// <summary>
/// This method performs operations on the select method result like auto paging and sorting if applicable.
/// </summary>
@@ -384,7 +464,7 @@ namespace System.Web.UI.WebControls {
MethodInfo countHelperMethod = typeof(QueryableHelpers).GetMethod("CountHelper").MakeGenericMethod(modelType);
arguments.TotalRowCount = (int)countHelperMethod.Invoke(null, new object[] { result.ReturnValue });
- //Bug 180907: We would like to auto sort on DataKeyName when paging is enabled and result is not already sorted by user to overcome a limitation in EF.
+ //
MethodInfo isOrderingMethodFoundMethod = typeof(QueryableHelpers).GetMethod("IsOrderingMethodFound").MakeGenericMethod(modelType);
bool isOrderingMethodFound = (bool)isOrderingMethodFoundMethod.Invoke(null, new object[] { result.ReturnValue });
if (!isOrderingMethodFound) {
@@ -445,6 +525,10 @@ namespace System.Web.UI.WebControls {
/// If ItemType is set and the return value is not of proper type, throws an InvalidOperationException.
/// </returns>
protected virtual IEnumerable CreateSelectResult(object result) {
+ return CreateSelectResult(result, false/*isAsyncSelect*/);
+ }
+
+ private IEnumerable CreateSelectResult(object result, bool isAsyncSelect) {
if (result == null) {
return null;
}
@@ -463,8 +547,36 @@ namespace System.Web.UI.WebControls {
}
else {
//Sorry only the above return types are allowed!!!
- throw new InvalidOperationException(SR.GetString(SR.ModelDataSourceView_InvalidSelectReturnType, modelType));
+ if (isAsyncSelect) {
+ throw new InvalidOperationException(SR.GetString(SR.ModelDataSourceView_InvalidAsyncSelectReturnType, modelType));
+ }
+ else {
+ throw new InvalidOperationException(SR.GetString(SR.ModelDataSourceView_InvalidSelectReturnType, modelType));
+ }
+ }
+ }
+ }
+
+ private static bool IsCancellationRequired(MethodInfo method, out string parameterName) {
+ parameterName = null;
+ bool cancellationTokenFound = false;
+ var lastParameter = method.GetParameters().LastOrDefault();
+ if (lastParameter != null && lastParameter.ParameterType == typeof(CancellationToken)) {
+ cancellationTokenFound = true;
+ parameterName = lastParameter.Name;
+ }
+
+ return cancellationTokenFound;
+ }
+
+ private void SetCancellationTokenIfRequired(ModelDataSourceMethod method, bool isAsyncMethod, CancellationToken? cancellationToken) {
+ string cancellationTokenParameterName;
+ if (isAsyncMethod && IsCancellationRequired(method.MethodInfo, out cancellationTokenParameterName)) {
+ if (null == cancellationToken) {
+ throw new InvalidOperationException(SR.GetString(SR.ModelDataSourceView_CancellationTokenIsNotSupported));
}
+
+ method.Parameters[cancellationTokenParameterName] = cancellationToken;
}
}
@@ -472,13 +584,22 @@ namespace System.Web.UI.WebControls {
/// Invokes the Delete method and gets the result.
/// </summary>
protected virtual object GetDeleteMethodResult(IDictionary keys, IDictionary oldValues) {
- ModelDataSourceMethod method = EvaluateDeleteMethodParameters(keys, oldValues);
- ModelDataMethodResult result = InvokeMethod(method);
+ return GetDeleteMethodResult(keys, oldValues, null/*method*/, false/*isAsyncMethod*/, null/*cancellationToken*/);
+ }
+
+ private object GetDeleteMethodResult(IDictionary keys, IDictionary oldValues, ModelDataSourceMethod method, bool isAsyncMethod, CancellationToken? cancellationToken) {
+ method = method == null ? EvaluateDeleteMethodParameters(keys, oldValues) : EvaluateDeleteMethodParameters(keys, oldValues, method);
+ SetCancellationTokenIfRequired(method, isAsyncMethod, cancellationToken);
+ ModelDataMethodResult result = InvokeMethod(method, isAsyncMethod);
return result.ReturnValue;
}
protected virtual ModelDataSourceMethod EvaluateDeleteMethodParameters(IDictionary keys, IDictionary oldValues) {
+ return EvaluateDeleteMethodParameters(keys, oldValues, null/*method*/);
+ }
+
+ private ModelDataSourceMethod EvaluateDeleteMethodParameters(IDictionary keys, IDictionary oldValues, ModelDataSourceMethod method) {
if (!CanDelete) {
throw new NotSupportedException(SR.GetString(SR.ModelDataSourceView_DeleteNotSupported));
}
@@ -488,7 +609,7 @@ namespace System.Web.UI.WebControls {
MergeDictionaries(keys, caseInsensitiveOldValues);
MergeDictionaries(oldValues, caseInsensitiveOldValues);
- ModelDataSourceMethod method = FindMethod(DeleteMethod);
+ method = method ?? FindMethod(DeleteMethod);
EvaluateMethodParameters(DataSourceOperation.Delete, method, caseInsensitiveOldValues);
return method;
}
@@ -497,13 +618,22 @@ namespace System.Web.UI.WebControls {
/// Invokes the Insert method and gets the result.
/// </summary>
protected virtual object GetInsertMethodResult(IDictionary values) {
- ModelDataSourceMethod method = EvaluateInsertMethodParameters(values);
- ModelDataMethodResult result = InvokeMethod(method);
+ return GetInsertMethodResult(values, null/*method*/, false/*isAsyncMethod&*/, null/*cancellationToken*/);
+ }
+
+ private object GetInsertMethodResult(IDictionary values, ModelDataSourceMethod method, bool isAsyncMethod, CancellationToken? cancellationToken) {
+ method = method == null ? EvaluateInsertMethodParameters(values) : EvaluateInsertMethodParameters(values, method);
+ SetCancellationTokenIfRequired(method, isAsyncMethod, cancellationToken);
+ ModelDataMethodResult result = InvokeMethod(method, isAsyncMethod);
return result.ReturnValue;
}
protected virtual ModelDataSourceMethod EvaluateInsertMethodParameters(IDictionary values) {
+ return EvaluateInsertMethodParameters(values, null/*method*/);
+ }
+
+ private ModelDataSourceMethod EvaluateInsertMethodParameters(IDictionary values, ModelDataSourceMethod method) {
if (!CanInsert) {
throw new NotSupportedException(SR.GetString(SR.ModelDataSourceView_InsertNotSupported));
}
@@ -512,7 +642,7 @@ namespace System.Web.UI.WebControls {
MergeDictionaries(values, caseInsensitiveNewValues);
- ModelDataSourceMethod method = FindMethod(InsertMethod);
+ method = method ?? FindMethod(InsertMethod);
EvaluateMethodParameters(DataSourceOperation.Insert, method, caseInsensitiveNewValues);
return method;
}
@@ -521,13 +651,22 @@ namespace System.Web.UI.WebControls {
/// Invokes the Update method and gets the result.
/// </summary>
protected virtual object GetUpdateMethodResult(IDictionary keys, IDictionary values, IDictionary oldValues) {
- ModelDataSourceMethod method = EvaluateUpdateMethodParameters(keys, values, oldValues);
- ModelDataMethodResult result = InvokeMethod(method);
+ return GetUpdateMethodResult(keys, values, oldValues, null/*method*/, false/*isAsyncMethod*/, null/*cancellationToken*/);
+ }
+
+ private object GetUpdateMethodResult(IDictionary keys, IDictionary values, IDictionary oldValues, ModelDataSourceMethod method, bool isAsyncMethod, CancellationToken? cancellationToken) {
+ method = method == null ? EvaluateUpdateMethodParameters(keys, values, oldValues) : EvaluateUpdateMethodParameters(keys, values, oldValues, method);
+ SetCancellationTokenIfRequired(method, isAsyncMethod, cancellationToken);
+ ModelDataMethodResult result = InvokeMethod(method, isAsyncMethod);
return result.ReturnValue;
}
protected virtual ModelDataSourceMethod EvaluateUpdateMethodParameters(IDictionary keys, IDictionary values, IDictionary oldValues) {
+ return EvaluateUpdateMethodParameters(keys, values, oldValues, null/*method*/);
+ }
+
+ private ModelDataSourceMethod EvaluateUpdateMethodParameters(IDictionary keys, IDictionary values, IDictionary oldValues, ModelDataSourceMethod method) {
if (!CanUpdate) {
throw new NotSupportedException(SR.GetString(SR.ModelDataSourceView_UpdateNotSupported));
}
@@ -542,7 +681,7 @@ namespace System.Web.UI.WebControls {
MergeDictionaries(keys, caseInsensitiveNewValues);
MergeDictionaries(values, caseInsensitiveNewValues);
- ModelDataSourceMethod method = FindMethod(UpdateMethod);
+ method = method ?? FindMethod(UpdateMethod);
EvaluateMethodParameters(DataSourceOperation.Update, method, caseInsensitiveNewValues);
return method;
}
@@ -556,6 +695,190 @@ namespace System.Web.UI.WebControls {
return (result is int) ? (int)result : -1 ;
}
+ // We cannot cache this value since users can change SelectMethod by using UpdateProperties
+ // method.
+ internal bool IsSelectMethodAsync {
+ get {
+ ModelDataSourceMethod method;
+ return RequireAsyncModelBinding(SelectMethod, out method);
+ }
+ }
+
+ public override void Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) {
+ ModelDataSourceMethod method;
+ if (RequireAsyncModelBinding(SelectMethod, out method)) {
+ // We have to remember the method to make sure the method we later would use in the async function
+ // is the method we validate here in case the method later might be changed by UpdateProperties.
+ SelectAsync(arguments, callback, method);
+ }
+ else {
+ base.Select(arguments, callback);
+ }
+ }
+
+ private void SelectAsync(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback, ModelDataSourceMethod method) {
+ Func<object, Task> func = GetSelectAsyncFunc(arguments, callback, method);
+
+ var syncContext = _owner.DataControl.Page.Context.SyncContext as AspNetSynchronizationContext;
+ if (null == syncContext) {
+ throw new InvalidOperationException(SR.GetString(SR.ModelDataSourceView_UseAsyncMethodMustBeUsingAsyncPage));
+ }
+
+ // The first edition of the async model binding feature was implemented by registering async binding
+ // function as PageAsyncTask. We, however, decided not to do that because postponing data binding
+ // to page async point changed the order of page events and caused many problems.
+ // See the comment on SynchronizationHelper.QueueAsynchronousAsync for more details regarding to the PostAsync
+ // function.
+ syncContext.PostAsync(func, null);
+ }
+
+ private Func<object, Task> GetSelectAsyncFunc(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback, ModelDataSourceMethod method) {
+ Func<object, Task> func = async _ => {
+ ValidateAsyncModelBindingRequirements();
+ CancellationTokenSource cancellationTokenSource = _owner.DataControl.Page.CreateCancellationTokenFromAsyncTimeout();
+ CancellationToken cancellationToken = cancellationTokenSource.Token;
+ DataSourceSelectResultProcessingOptions selectResultProcessingOptions = null;
+ ModelDataSourceMethod modelMethod = EvaluateSelectMethodParameters(arguments, method, true/*isAsyncSelect*/, out selectResultProcessingOptions);
+ SetCancellationTokenIfRequired(modelMethod, true/*isAsyncMethod*/, cancellationToken);
+ ModelDataMethodResult result = InvokeMethod(modelMethod);
+ IEnumerable finalResult = null;
+ if (result.ReturnValue != null) {
+ await (Task)result.ReturnValue;
+ var returnValue = GetPropertyValueByName(result.ReturnValue, "Result");
+
+ if (null == returnValue) {
+ // do nothing
+ }
+ // Users needs to use SelectResult as return type to use
+ // custom paging.
+ else if (returnValue is SelectResult) {
+ var viewOperationTask = _viewOperationTask;
+ if (viewOperationTask != null) {
+ await viewOperationTask;
+ }
+
+ var selectResult = (SelectResult)returnValue;
+ arguments.TotalRowCount = selectResult.TotalRowCount;
+ finalResult = CreateSelectResult(selectResult.Results, true/*isAsyncSelect*/);
+ }
+ else {
+ // The returnValue does not have to run through ProcessSelectMethodResult() as we
+ // don't support auto-paging or auto-sorting when using async select.
+ finalResult = CreateSelectResult(returnValue, true/*isAsyncSelect*/);
+ }
+ }
+
+ callback(finalResult);
+ if (cancellationToken.IsCancellationRequested) {
+ throw new TimeoutException(SR.GetString(SR.Async_task_timed_out));
+ }
+ };
+
+ return func;
+ }
+
+ public override void Insert(IDictionary values, DataSourceViewOperationCallback callback) {
+ if (callback == null) {
+ throw new ArgumentNullException("callback");
+ }
+
+ ModelDataSourceMethod method;
+ if (RequireAsyncModelBinding(InsertMethod, out method)) {
+ ViewOperationAsync((cancellationToken) => (Task)GetInsertMethodResult(values, method, true/*isAsyncMethod*/, cancellationToken), callback);
+ }
+ else {
+ base.Insert(values, callback);
+ }
+ }
+
+ public override void Update(IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) {
+ if (callback == null) {
+ throw new ArgumentNullException("callback");
+ }
+
+ ModelDataSourceMethod method;
+ if (RequireAsyncModelBinding(UpdateMethod, out method)) {
+ ViewOperationAsync((cancellationToken) => (Task)GetUpdateMethodResult(keys, values, oldValues, method, true/*isAsyncMethod*/, cancellationToken), callback);
+ }
+ else {
+ base.Update(keys, values, oldValues, callback);
+ }
+ }
+
+ public override void Delete(IDictionary keys, IDictionary oldValues, DataSourceViewOperationCallback callback) {
+ if (callback == null) {
+ throw new ArgumentNullException("callback");
+ }
+
+ ModelDataSourceMethod method;
+ if (RequireAsyncModelBinding(DeleteMethod, out method)) {
+ ViewOperationAsync((cancellationToken) => (Task)GetDeleteMethodResult(keys, oldValues, method, true/*isAsyncMethod*/, cancellationToken), callback);
+ }
+ else {
+ base.Delete(keys, oldValues, callback);
+ }
+ }
+
+ private void ViewOperationAsync(Func<CancellationToken, Task> asyncViewOperation, DataSourceViewOperationCallback callback) {
+ ValidateAsyncModelBindingRequirements();
+
+ Func<object, Task> func = async _ => {
+ CancellationTokenSource cancellationTokenSource = _owner.DataControl.Page.CreateCancellationTokenFromAsyncTimeout();
+ CancellationToken cancellationToken = cancellationTokenSource.Token;
+ var viewOperationTask = _viewOperationTask;
+ if (viewOperationTask != null) {
+ await viewOperationTask;
+ }
+
+ var operationTask = asyncViewOperation(cancellationToken);
+ _viewOperationTask = operationTask;
+ var operationTaskInt = operationTask as Task<int>;
+ var operationThrew = false;
+ var affectedRecords = -1;
+ try {
+ if (null != operationTask) {
+ await operationTask;
+ if (operationTaskInt != null) {
+ affectedRecords = operationTaskInt.Result;
+ }
+ }
+ }
+ catch (Exception ex) {
+ operationThrew = true;
+ if (!callback(affectedRecords, ex)) {
+ // Nobody handled the operation error so re-throw
+ throw;
+ }
+ }
+ finally {
+ _viewOperationTask = null;
+
+ // Data Method is done executing, turn off the TryUpdateModel
+ _owner.DataControl.Page.SetActiveValueProvider(null);
+
+ if (!operationThrew) {
+ if (_owner.DataControl.Page.ModelState.IsValid) {
+ OnDataSourceViewChanged(EventArgs.Empty);
+ }
+
+ // Success
+ callback(affectedRecords, null);
+ }
+ }
+
+ if (cancellationToken.IsCancellationRequested) {
+ throw new TimeoutException(SR.GetString(SR.Async_task_timed_out));
+ }
+ };
+
+ var syncContext = _owner.DataControl.Page.Context.SyncContext as AspNetSynchronizationContext;
+ if (null == syncContext) {
+ throw new InvalidOperationException(SR.GetString(SR.ModelDataSourceView_UseAsyncMethodMustBeUsingAsyncPage));
+ }
+
+ syncContext.PostAsync(func, null);
+ }
+
protected override int ExecuteDelete(IDictionary keys, IDictionary oldValues) {
object result = GetDeleteMethodResult(keys, oldValues);
OnDataSourceViewChanged(EventArgs.Empty);
@@ -601,6 +924,12 @@ namespace System.Web.UI.WebControls {
return ExecuteUpdate(keys, values, oldValues);
}
+ // For unit testing.
+ // Return the select async func that we use in the SelectAsync method.
+ internal Func<object, Task> SelectAsyncInternal(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback, ModelDataSourceMethod method) {
+ return GetSelectAsyncFunc(arguments, callback, method);
+ }
+
//Evaluates the select method parameters using the custom value provides. This is done after page load so that
//we raise the DataSourceChanged event if the values of parameters change.
private void EvaluateSelectParameters() {
@@ -641,6 +970,17 @@ namespace System.Web.UI.WebControls {
IValueProvider dataBoundControlValueProvider = GetValueProviderFromDictionary(controlValues);
ModelBindingExecutionContext modelBindingExecutionContext = _owner.DataControl.Page.ModelBindingExecutionContext;
+
+ Control previousDataControl = null;
+ if (BinaryCompatibility.Current.TargetsAtLeastFramework46) {
+ // DevDiv 1087698: a child control overwrites its parent controls's modelBindingExecutionContext,
+ // which may cause a problem for the parent control to find control by controlId.
+ Control dataControl = modelBindingExecutionContext.TryGetService<Control>();
+ if (dataControl != _owner.DataControl) {
+ previousDataControl = dataControl;
+ }
+ }
+
//This is used by ControlValueProvider later.
modelBindingExecutionContext.PublishService<Control>(_owner.DataControl);
@@ -649,7 +989,13 @@ namespace System.Web.UI.WebControls {
_owner.DataControl.Page.SetActiveValueProvider(dataBoundControlValueProvider);
}
- foreach (ParameterInfo parameterInfo in actionMethod.GetParameters()) {
+ var methodParameters = actionMethod.GetParameters();
+ ParameterInfo lastParameter = null;
+ if (methodParameters.Length > 0) {
+ lastParameter = methodParameters[methodParameters.Length - 1];
+ }
+
+ foreach (ParameterInfo parameterInfo in methodParameters) {
object value = null;
string modelName = parameterInfo.Name;
@@ -705,12 +1051,22 @@ namespace System.Web.UI.WebControls {
}
}
+ // We set the CancellationToken after EvaluateMethodParameters().
+ // We don't want to set a null value to a CancellationToken variable.
+ if (parameterInfo == lastParameter && typeof(CancellationToken) == parameterInfo.ParameterType && value == null) {
+ value = CancellationToken.None;
+ }
+
if (!isPageLoadComplete) {
ValidateParameterValue(parameterInfo, value, actionMethod);
}
}
modelDataSourceMethod.Parameters.Add(parameterInfo.Name, value);
}
+
+ if (previousDataControl != null) {
+ modelBindingExecutionContext.PublishService<Control>(previousDataControl);
+ }
}
private static IValueProvider GetValueProviderFromDictionary(IDictionary controlValues) {
@@ -841,6 +1197,10 @@ namespace System.Web.UI.WebControls {
/// A ModelDataSouceResult object containing the ReturnValue of the method and any out parameters.
/// </returns>
protected virtual ModelDataMethodResult InvokeMethod(ModelDataSourceMethod method) {
+ return InvokeMethod(method, false/*isAsyncMethod*/);
+ }
+
+ private ModelDataMethodResult InvokeMethod(ModelDataSourceMethod method, bool isAsyncMethod) {
object returnValue = null;
object[] parameterValues = null;
@@ -855,8 +1215,11 @@ namespace System.Web.UI.WebControls {
OrderedDictionary outputParameters = GetOutputParameters(method.MethodInfo.GetParameters(), parameterValues);
method.Instance = null;
- //Data Method is done executing, turn off the TryUpdateModel
- _owner.DataControl.Page.SetActiveValueProvider(null);
+ // Data Method is done executing, turn off the TryUpdateModel
+ // Do not turn off the TryUpdateModel at this point when the method is async
+ if (!isAsyncMethod) {
+ _owner.DataControl.Page.SetActiveValueProvider(null);
+ }
return new ModelDataMethodResult(returnValue, outputParameters);
}
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/PagerTable.cs b/mcs/class/referencesource/System.Web/UI/WebControls/PagerTable.cs
index 25f4d0ed826..f55e26d655b 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/PagerTable.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/PagerTable.cs
@@ -18,4 +18,4 @@ namespace System.Web.UI.WebControls {
/// </devdoc>
internal sealed class PagerTable : Table {
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/Panel.cs b/mcs/class/referencesource/System.Web/UI/WebControls/Panel.cs
index dc6bdc050eb..cef8bb9e4a2 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/Panel.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/Panel.cs
@@ -290,7 +290,7 @@ namespace System.Web.UI.WebControls {
(Page.Request.Browser.W3CDomVersion.Major > 0)) {
if (DefaultButton.Length > 0) {
// Find control from the page if it's a hierarchical ID.
- // Dev11 bug 19915
+ // Dev11
Control c = FindControlFromPageIfNecessary(DefaultButton);
if (c is IButtonControl) {
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/PasswordRecovery.cs b/mcs/class/referencesource/System.Web/UI/WebControls/PasswordRecovery.cs
index f75ce6aa4cd..a236ddde527 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/PasswordRecovery.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/PasswordRecovery.cs
@@ -1569,9 +1569,9 @@ namespace System.Web.UI.WebControls {
private void PerformSuccessAction() {
string successPageUrl = SuccessPageUrl;
if (!String.IsNullOrEmpty(successPageUrl)) {
- // [....] suggested that we should not terminate execution of current page, to give
+ // Microsoft suggested that we should not terminate execution of current page, to give
// page a chance to cleanup its resources. This may be less performant though.
- // [....] suggested that we need to call ResolveClientUrl before redirecting.
+ // Microsoft suggested that we need to call ResolveClientUrl before redirecting.
// Example is this control inside user control, want redirect relative to user control dir.
Page.Response.Redirect(ResolveClientUrl(successPageUrl), false);
}
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/RadioButtonList.cs b/mcs/class/referencesource/System.Web/UI/WebControls/RadioButtonList.cs
index 9a5c20e6ea0..9bbe64825f2 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/RadioButtonList.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/RadioButtonList.cs
@@ -249,7 +249,8 @@ namespace System.Web.UI.WebControls {
string post = postCollection[postDataKey];
int currentSelectedIndex = SelectedIndex;
- EnsureDataBound();
+ EnsureDataBoundInLoadPostData();
+
int n = Items.Count;
for (int i=0; i < n; i++) {
if (post == Items[i].Value && Items[i].Enabled) {
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/RepeatLayout.cs b/mcs/class/referencesource/System.Web/UI/WebControls/RepeatLayout.cs
index a7980bcbbd5..81714e34e97 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/RepeatLayout.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/RepeatLayout.cs
@@ -14,4 +14,4 @@ namespace System.Web.UI.WebControls {
UnorderedList = 2,
OrderedList = 3,
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/Repeater.cs b/mcs/class/referencesource/System.Web/UI/WebControls/Repeater.cs
index bb14215ae01..bb4bbfdc14c 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/Repeater.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/Repeater.cs
@@ -56,6 +56,7 @@ namespace System.Web.UI.WebControls {
private string _itemType;
private string _selectMethod;
private ModelDataSource _modelDataSource;
+ private bool _asyncSelectPending;
/// <devdoc>
@@ -603,7 +604,6 @@ namespace System.Web.UI.WebControls {
/// </devdoc>
protected virtual void CreateControlHierarchy(bool useDataSource) {
IEnumerable dataSource = null;
- int count = -1;
if (itemsArray != null) {
itemsArray.Clear();
@@ -612,31 +612,50 @@ namespace System.Web.UI.WebControls {
itemsArray = new ArrayList();
}
- if (useDataSource == false) {
+ if (!useDataSource) {
// ViewState must have a non-null value for ItemCount because we check for
// this in CreateChildControls
- count = (int)ViewState[ItemCountViewStateKey];
+ int count = (int)ViewState[ItemCountViewStateKey];
if (count != -1) {
dataSource = new DummyDataSource(count);
itemsArray.Capacity = count;
}
+
+ AddDataItemsIntoItemsArray(dataSource, useDataSource);
}
else {
dataSource = GetData();
+ PostGetDataAction(dataSource);
+ }
+ }
- ICollection collection = dataSource as ICollection;
- if (collection != null) {
- itemsArray.Capacity = collection.Count;
- }
+ private void OnDataSourceViewSelectCallback(IEnumerable data) {
+ _asyncSelectPending = false;
+ PostGetDataAction(data);
+ }
+
+ private void PostGetDataAction(IEnumerable dataSource) {
+ if (_asyncSelectPending)
+ return;
+
+ ICollection collection = dataSource as ICollection;
+ if (collection != null) {
+ itemsArray.Capacity = collection.Count;
}
+ int addedItemCount = AddDataItemsIntoItemsArray(dataSource, true/*useDataSource*/);
+ ViewState[ItemCountViewStateKey] = addedItemCount;
+ }
+
+ private int AddDataItemsIntoItemsArray(IEnumerable dataSource, bool useDataSource) {
+ int dataItemCount = -1;
if (dataSource != null) {
RepeaterItem item;
ListItemType itemType;
int index = 0;
bool hasSeparators = (separatorTemplate != null);
- count = 0;
+ dataItemCount = 0;
if (headerTemplate != null) {
CreateItem(-1, ListItemType.Header, useDataSource, null);
@@ -646,7 +665,7 @@ namespace System.Web.UI.WebControls {
// rather than creating separators after the item, we create the separator
// for the previous item in all iterations of this loop.
// this is so that we don't create a separator for the last item
- if (hasSeparators && (count > 0)) {
+ if (hasSeparators && (dataItemCount > 0)) {
CreateItem(index - 1, ListItemType.Separator, useDataSource, null);
}
@@ -654,7 +673,7 @@ namespace System.Web.UI.WebControls {
item = CreateItem(index, itemType, useDataSource, dataItem);
itemsArray.Add(item);
- count++;
+ dataItemCount++;
index++;
}
@@ -663,10 +682,7 @@ namespace System.Web.UI.WebControls {
}
}
- if (useDataSource) {
- // save the number of items contained in the repeater for use in round-trips
- ViewState[ItemCountViewStateKey] = ((dataSource != null) ? count : -1);
- }
+ return dataItemCount;
}
protected virtual DataSourceSelectArguments CreateDataSourceSelectArguments() {
@@ -749,8 +765,22 @@ namespace System.Web.UI.WebControls {
Debug.Assert(_currentViewValid);
if (view != null) {
- return view.ExecuteSelect(SelectArguments);
+ // DevDiv 1070535: enable async model binding for Repeater
+ bool useAsyncSelect = false;
+ if (AppSettings.EnableAsyncModelBinding) {
+ var modelDataView = view as ModelDataSourceView;
+ useAsyncSelect = modelDataView != null && modelDataView.IsSelectMethodAsync;
+ }
+
+ if (useAsyncSelect) {
+ _asyncSelectPending = true; // disable post data binding action until the callback is invoked
+ view.Select(SelectArguments, OnDataSourceViewSelectCallback);
+ }
+ else {
+ return view.ExecuteSelect(SelectArguments);
+ }
}
+
return null;
}
@@ -969,10 +999,10 @@ namespace System.Web.UI.WebControls {
/// Saves view state.
/// </devdoc>
protected override object SaveViewState() {
- // Bug 322689: In the web farms scenario, if a web site is hosted in 4.0 and 4.5 servers
- // (though this is not a really supported scenario, we are fixing this instance),
- // the View state created by 4.0 should be able to be understood by 4.5 controls.
- // So, we create a Pair only if we are using model binding and otherwise fallback to 4.0 behavior.
+ //
+
+
+
object baseViewState = base.SaveViewState();
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/SelectResult.cs b/mcs/class/referencesource/System.Web/UI/WebControls/SelectResult.cs
new file mode 100644
index 00000000000..a1d26bfee1c
--- /dev/null
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/SelectResult.cs
@@ -0,0 +1,17 @@
+using System.Collections;
+
+namespace System.Web.UI.WebControls {
+ public sealed class SelectResult {
+ public SelectResult(int totalRowCount, IEnumerable results) {
+ if (totalRowCount < 0) {
+ throw new ArgumentOutOfRangeException("totalRowCount");
+ }
+
+ TotalRowCount = totalRowCount;
+ Results = results;
+ }
+
+ public int TotalRowCount { get; private set; }
+ public IEnumerable Results { get; private set; }
+ }
+}
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/Style.cs b/mcs/class/referencesource/System.Web/UI/WebControls/Style.cs
index 3ab5ad6ac01..274490550b3 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/Style.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/Style.cs
@@ -304,7 +304,6 @@ namespace System.Web.UI.WebControls {
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public virtual bool IsEmpty {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
return ((setBits == 0) && (RegisteredCssClass.Length == 0));
}
@@ -672,7 +671,6 @@ namespace System.Web.UI.WebControls {
/// Returns a value indicating whether the specified style
/// property has been defined in the state bag.
/// </devdoc>
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
internal bool IsSet(int propKey) {
return (setBits & propKey) != 0;
}
@@ -704,7 +702,6 @@ namespace System.Web.UI.WebControls {
/// state changes on the control. Any changes made after "mark" will be tracked and
/// saved as part of the control viewstate.
/// </devdoc>
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
protected internal virtual void TrackViewState() {
if (ownStateBag) {
ViewState.TrackViewState();
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/TextBox.cs b/mcs/class/referencesource/System.Web/UI/WebControls/TextBox.cs
index 35e7c2844fc..89eede656b0 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/TextBox.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/TextBox.cs
@@ -696,12 +696,12 @@ namespace System.Web.UI.WebControls {
/// </devdoc>
protected internal override void Render(HtmlTextWriter writer) {
RenderBeginTag(writer);
- //Dev10 Bug 483896: Original TextBox rendering in MultiLine mode suffers from the
- //problem of losing the first newline. We fixed this bug by always rendering a newline
- //before rendering the value of the Text property.
+ //Dev10
+
+
if (TextMode == TextBoxMode.MultiLine) {
- //Dev11 Bug 437709 fix: We do not want to encode the extra new line that we are
- //rendering. However we are doing this only for 4.5 or later frameworks for back-compat.
+ //Dev11
+
if (RenderingCompatibility >= VersionUtil.Framework45) {
writer.Write(System.Environment.NewLine);
HttpUtility.HtmlEncode(Text, writer);
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/WebControl.cs b/mcs/class/referencesource/System.Web/UI/WebControls/WebControl.cs
index 5bc22540155..58454583e6b 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/WebControl.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/WebControl.cs
@@ -317,7 +317,6 @@ namespace System.Web.UI.WebControls {
WebSysDescription(SR.WebControl_Enabled)
]
public virtual bool Enabled {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
return !flags[isWebControlDisabled];
}
@@ -511,7 +510,6 @@ namespace System.Web.UI.WebControls {
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
protected virtual HtmlTextWriterTag TagKey {
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get {
return tagKey;
}
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/Wizard.cs b/mcs/class/referencesource/System.Web/UI/WebControls/Wizard.cs
index 4aa0a6f25b3..882c5adcec8 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/Wizard.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/Wizard.cs
@@ -1876,9 +1876,9 @@ namespace System.Web.UI.WebControls {
string finishPageUrl = FinishDestinationPageUrl;
if (!String.IsNullOrEmpty(finishPageUrl)) {
- // [....] suggested that we should not terminate execution of current page, to give
+ // Microsoft suggested that we should not terminate execution of current page, to give
// page a chance to cleanup its resources. This may be less performant though.
- // [....] suggested that we need to call ResolveClientUrl before redirecting.
+ // Microsoft suggested that we need to call ResolveClientUrl before redirecting.
// Example is this control inside user control, want redirect relative to user control dir.
Page.Response.Redirect(ResolveClientUrl(finishPageUrl), false);
}
diff --git a/mcs/class/referencesource/System.Web/UI/WebControls/basecomparevalidator.cs b/mcs/class/referencesource/System.Web/UI/WebControls/basecomparevalidator.cs
index 04de8b3b4a1..84070930161 100644
--- a/mcs/class/referencesource/System.Web/UI/WebControls/basecomparevalidator.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebControls/basecomparevalidator.cs
@@ -110,9 +110,9 @@ namespace System.Web.UI.WebControls {
AddExpandoAttribute(expandoAttributeWriter, id, "dateorder", GetDateElementOrder(), false);
AddExpandoAttribute(expandoAttributeWriter, id, "cutoffyear", CutoffYear.ToString(NumberFormatInfo.InvariantInfo), false);
- // VSWhidbey 504553: The changes of this bug make client-side script not
- // using the century attribute anymore, but still generating it for
- // backward compatibility with Everett pages.
+ // VSWhidbey 504553: The changes of this
+
+
int currentYear = DateTime.Today.Year;
int century = currentYear - (currentYear % 100);
AddExpandoAttribute(expandoAttributeWriter, id, "century", century.ToString(NumberFormatInfo.InvariantInfo), false);
diff --git a/mcs/class/referencesource/System.Web/UI/WebParts/CatalogZoneBase.cs b/mcs/class/referencesource/System.Web/UI/WebParts/CatalogZoneBase.cs
index 597b93fd564..46968b54da7 100644
--- a/mcs/class/referencesource/System.Web/UI/WebParts/CatalogZoneBase.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebParts/CatalogZoneBase.cs
@@ -549,7 +549,7 @@ namespace System.Web.UI.WebControls.WebParts {
// Mozilla renders padding on an empty TD without this attribute
writer.AddStyleAttribute(HtmlTextWriterStyle.Padding, "0");
- // Add an extra row with height of 100%, to [....] up any extra space
+ // Add an extra row with height of 100%, to Microsoft up any extra space
// if the height of the zone is larger than its contents
// Mac IE needs height=100% set on <td> instead of <tr>
writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "100%");
diff --git a/mcs/class/referencesource/System.Web/UI/WebParts/EditorPart.cs b/mcs/class/referencesource/System.Web/UI/WebParts/EditorPart.cs
index 66e4961126b..051143d5629 100644
--- a/mcs/class/referencesource/System.Web/UI/WebParts/EditorPart.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebParts/EditorPart.cs
@@ -246,7 +246,7 @@ namespace System.Web.UI.WebControls.WebParts {
}
/// <devdoc>
- /// Called by the Zone when the EditorPart should [....] its values because other EditorParts
+ /// Called by the Zone when the EditorPart should sync its values because other EditorParts
/// may have changed control properties. This is only called after all the ApplyChanges have returned.
/// </devdoc>
public abstract void SyncChanges();
diff --git a/mcs/class/referencesource/System.Web/UI/WebParts/EditorZoneBase.cs b/mcs/class/referencesource/System.Web/UI/WebParts/EditorZoneBase.cs
index de13bd30076..ab7ee071b22 100644
--- a/mcs/class/referencesource/System.Web/UI/WebParts/EditorZoneBase.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebParts/EditorZoneBase.cs
@@ -412,7 +412,7 @@ namespace System.Web.UI.WebControls.WebParts {
// Mozilla renders padding on an empty TD without this attribute
writer.AddStyleAttribute(HtmlTextWriterStyle.Padding, "0");
- // Add an extra row with height of 100%, to [....] up any extra space
+ // Add an extra row with height of 100%, to Microsoft up any extra space
// if the height of the zone is larger than its contents
// Mac IE needs height=100% set on <td> instead of <tr>
writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "100%");
diff --git a/mcs/class/referencesource/System.Web/UI/WebParts/ProxyWebPartConnectionCollection.cs b/mcs/class/referencesource/System.Web/UI/WebParts/ProxyWebPartConnectionCollection.cs
index 4791f4a76fe..5ace8f9d8da 100644
--- a/mcs/class/referencesource/System.Web/UI/WebParts/ProxyWebPartConnectionCollection.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebParts/ProxyWebPartConnectionCollection.cs
@@ -113,7 +113,7 @@ namespace System.Web.UI.WebControls.WebParts {
CheckReadOnly();
if (_webPartManager != null) {
int webPartManagerIndex = _webPartManager.StaticConnections.IndexOf((WebPartConnection)oldValue);
- // It is a bug if the main WebPartManager does not contain the oldValue
+ // It is a
Debug.Assert(webPartManagerIndex >= 0);
_webPartManager.StaticConnections[webPartManagerIndex] = (WebPartConnection)newValue;
}
diff --git a/mcs/class/referencesource/System.Web/UI/WebParts/WebPartManager.cs b/mcs/class/referencesource/System.Web/UI/WebParts/WebPartManager.cs
index c5b3495230e..25d9bb1c410 100644
--- a/mcs/class/referencesource/System.Web/UI/WebParts/WebPartManager.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebParts/WebPartManager.cs
@@ -571,7 +571,7 @@ if (zoneElement != null) {{
}
// Only call PermitOnly() in legacy CAS mode. In the v4 CAS model, calling PermitOnly() would prevent us from calling
- // Activator.CreateInstance() on types in App_Code (assuming it is non-APTCA). (Dev10 Bug 807117)
+ // Activator.CreateInstance() on types in App_Code (assuming it is non-APTCA). (Dev10
private bool UsePermitOnly {
get {
if (!_usePermitOnly.HasValue) {
@@ -1584,8 +1584,8 @@ if (zoneElement != null) {{
StaticConnections.SetReadOnly(SR.WebPartManager_StaticConnectionsReadOnly);
// The user can't directly change the DynamicConnections property since it is internal.
- // Make it read-only in case we have a bug and try to change it after activation.
- // We check the read-only status of this collection in ConnectWebParts() and DisconnectWebParts().
+ // Make it read-only in case we have a
+
DynamicConnections.SetReadOnly(SR.WebPartManager_DynamicConnectionsReadOnly);
return (WebPartConnection[])finalConnectionsToActivate.ToArray(typeof(WebPartConnection));
@@ -2691,7 +2691,7 @@ if (zoneElement != null) {{
/// <devdoc>
/// Never throws except for null arguments. Returns an error message in the out parameter instead.
- /// [[....]] I investigated whether this could be refactored to share common code with
+ /// [Microsoft] I investigated whether this could be refactored to share common code with
/// LoadDynamicWebPart(), but it seems the methods are too different.
/// </devdoc>
public virtual WebPart ImportWebPart(XmlReader reader, out string errorMessage) {
diff --git a/mcs/class/referencesource/System.Web/UI/WebParts/WebPartZoneBase.cs b/mcs/class/referencesource/System.Web/UI/WebParts/WebPartZoneBase.cs
index 4fd1f72fd88..7dc790dc485 100644
--- a/mcs/class/referencesource/System.Web/UI/WebParts/WebPartZoneBase.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebParts/WebPartZoneBase.cs
@@ -1261,7 +1261,7 @@ namespace System.Web.UI.WebControls.WebParts {
}
if (orientation == Orientation.Vertical) {
- // Add an extra row with height of 100%, to [....] up any extra space
+ // Add an extra row with height of 100%, to Microsoft up any extra space
// if the height of the zone is larger than its contents
writer.RenderBeginTag(HtmlTextWriterTag.Tr);
@@ -1276,7 +1276,7 @@ namespace System.Web.UI.WebControls.WebParts {
writer.RenderEndTag(); // Tr
}
else {
- // Add an extra cell with width of 100%, to [....] up any extra space
+ // Add an extra cell with width of 100%, to Microsoft up any extra space
// if the width of the zone is larger than its contents.
writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
diff --git a/mcs/class/referencesource/System.Web/UI/WebResourceAttribute.cs b/mcs/class/referencesource/System.Web/UI/WebResourceAttribute.cs
index ed43883c7de..fa2df352bdd 100644
--- a/mcs/class/referencesource/System.Web/UI/WebResourceAttribute.cs
+++ b/mcs/class/referencesource/System.Web/UI/WebResourceAttribute.cs
@@ -22,7 +22,7 @@ namespace System.Web.UI {
private string _cdnPathSecureConnection;
private bool _cdnSupportsSecureConnection;
- internal const string _microsoftCdnBasePath = "http://ajax.aspnetcdn.com/ajax/4.5.1/1/"; // "/4.5/6/" = 4.5 RTM
+ internal const string _microsoftCdnBasePath = "http://ajax.aspnetcdn.com/ajax/4.6/1/";
public WebResourceAttribute(string webResource, string contentType) {
if (String.IsNullOrEmpty(webResource)) {
diff --git a/mcs/class/referencesource/System.Web/UI/WmlTextWriter.cs b/mcs/class/referencesource/System.Web/UI/WmlTextWriter.cs
index 702369f5ba5..f2ed95782b9 100644
--- a/mcs/class/referencesource/System.Web/UI/WmlTextWriter.cs
+++ b/mcs/class/referencesource/System.Web/UI/WmlTextWriter.cs
@@ -32,7 +32,7 @@ namespace System.Web.UI {
private bool _analyzeMode = false;
private const String _boldTag = "b";
private bool _boldTagOpen = false;
- //
+ // UNDONE: This HttpBrowserCapabilities instance couples the writer with the HttpContext and can be removed.
private HttpBrowserCapabilities _browser = null;
private IDictionary _controlShortNames = null;
private HtmlForm _currentForm = null;
@@ -85,7 +85,7 @@ namespace System.Web.UI {
}
}
- //
+ // UNDONE: This property couples the writer to the HttpContext and can be removed.
private HttpBrowserCapabilities Browser {
get {
if (_browser == null && HttpContext.Current != null) {
@@ -186,7 +186,7 @@ namespace System.Web.UI {
/// <devdoc>
/// <para>[To be supplied.]</para>
/// </devdoc>
- //
+ // UNDONE: See whether this method can be replaced by calls to RenderBeginTag.
public override void BeginRender() {
if (AnalyzeMode) {
return;
@@ -684,7 +684,7 @@ namespace System.Web.UI {
/// <para>[To be supplied.]</para>
/// </devdoc>
internal String ReplaceFormsCookieWithVariable(String queryString) {
- //
+ // UNDONE: MMIT FormsAuthentication not integrated yet
return queryString;
}
@@ -779,8 +779,8 @@ namespace System.Web.UI {
// MapClientIDToShortName for details.
WriteAttribute("iname", MapClientIDToShortName(iname, false));
}
- //
-
+ // UNDONE: The FormAdapter WrittenFormVariables property couples this writer with the form adapter. Consider
+ // removing the property somehow.
if (!((WmlPageAdapter)CurrentForm.Page.Adapter).WrittenFormVariables && ivalue != null && ivalue.Length > 0) {
WriteTextEncodedAttribute("ivalue", ivalue);
}
diff --git a/mcs/class/referencesource/System.Web/UnsafeNativeMethods.cs b/mcs/class/referencesource/System.Web/UnsafeNativeMethods.cs
index 9bf38b3cfdd..f31af9df330 100644
--- a/mcs/class/referencesource/System.Web/UnsafeNativeMethods.cs
+++ b/mcs/class/referencesource/System.Web/UnsafeNativeMethods.cs
@@ -357,6 +357,17 @@ namespace System.Web {
[DllImport(ModName.KERNEL32_FULL_NAME)]
internal static extern IntPtr GetCurrentThread();
+ // http://msdn.microsoft.com/en-us/library/windows/desktop/aa366569(v=vs.85).aspx
+ [DllImport(ModName.KERNEL32_FULL_NAME, CallingConvention = CallingConvention.Winapi, SetLastError = true)]
+ internal static extern IntPtr GetProcessHeap();
+
+ // http://msdn.microsoft.com/en-us/library/windows/desktop/aa366701(v=vs.85).aspx
+ [DllImport(ModName.KERNEL32_FULL_NAME, CallingConvention = CallingConvention.Winapi, SetLastError = true)]
+ internal static extern bool HeapFree(
+ [In] IntPtr hHeap,
+ [In] uint dwFlags,
+ [In] IntPtr lpMem);
+
/*
* webengine.dll
*/
@@ -652,7 +663,7 @@ namespace System.Web {
// List of functions supported by PMCallISAPI
//
// ATTENTION!!
- // If you change this list, make sure it is in [....] with the
+ // If you change this list, make sure it is in sync with the
// CallISAPIFunc enum in ecbdirect.h
//
internal enum CallISAPIFunc : int {
diff --git a/mcs/class/referencesource/System.Web/Util/AppSettings.cs b/mcs/class/referencesource/System.Web/Util/AppSettings.cs
index 103a4d33f8a..c0d44411004 100644
--- a/mcs/class/referencesource/System.Web/Util/AppSettings.cs
+++ b/mcs/class/referencesource/System.Web/Util/AppSettings.cs
@@ -124,6 +124,12 @@ namespace System.Web.Util {
if (settings == null || !Boolean.TryParse(settings["aspnet:EnsureSessionStateLockedOnFlush"], out _ensureSessionStateLockedOnFlush))
_ensureSessionStateLockedOnFlush = false;
+ if (settings == null || !Boolean.TryParse(settings["aspnet:UseRandomizedStringHashAlgorithm"], out _useRandomizedStringHashAlgorithm))
+ _useRandomizedStringHashAlgorithm = false;
+
+ if (settings == null || !Boolean.TryParse(settings["aspnet:EnableAsyncModelBinding"], out _enableAsyncModelBinding))
+ _enableAsyncModelBinding = BinaryCompatibility.Current.TargetsAtLeastFramework46;
+
_settingsInitialized = true;
}
}
@@ -465,5 +471,26 @@ namespace System.Web.Util {
return _ensureSessionStateLockedOnFlush;
}
}
+
+ // false [default] - don't force randomized hash code algorithm. Exisiting behavior
+ // true - use randomized hash code algorithm
+ private static bool _useRandomizedStringHashAlgorithm;
+ internal static bool UseRandomizedStringHashAlgorithm {
+ get {
+ EnsureSettingsLoaded();
+ return _useRandomizedStringHashAlgorithm;
+ }
+ }
+
+ // false - disable async model binding
+ // true - enable async model binding
+ // defaults to true when targeting >= 4.6, otherwise false
+ private static bool _enableAsyncModelBinding;
+ internal static bool EnableAsyncModelBinding {
+ get {
+ EnsureSettingsLoaded();
+ return _enableAsyncModelBinding;
+ }
+ }
}
}
diff --git a/mcs/class/referencesource/System.Web/Util/AppVerifier.cs b/mcs/class/referencesource/System.Web/Util/AppVerifier.cs
index 4eb9b39b51e..90f6e3eec32 100644
--- a/mcs/class/referencesource/System.Web/Util/AppVerifier.cs
+++ b/mcs/class/referencesource/System.Web/Util/AppVerifier.cs
@@ -38,6 +38,11 @@
{ AppVerifierErrorCode.BeginHandlerReturnedUnexpectedAsyncResultInstance, SR.AppVerifier_Errors_AsyncCallbackInvokedWithUnexpectedAsyncResultInstance },
{ AppVerifierErrorCode.BeginHandlerReturnedUnexpectedAsyncResultAsyncState, SR.AppVerifier_Errors_BeginHandlerReturnedUnexpectedAsyncResultAsyncState },
{ AppVerifierErrorCode.SyncContextSendOrPostCalledAfterRequestCompleted, SR.AppVerifier_Errors_SyncContextSendOrPostCalledAfterRequestCompleted },
+ { AppVerifierErrorCode.SyncContextSendOrPostCalledBetweenNotifications, SR.AppVerifier_Errors_SyncContextSendOrPostCalledBetweenNotifications },
+ { AppVerifierErrorCode.SyncContextPostCalledInNestedNotification, SR.AppVerifier_Errors_SyncContextPostCalledInNestedNotification },
+ { AppVerifierErrorCode.RequestNotificationCompletedSynchronouslyWithNotificationContextPending, SR.AppVerifier_Errors_RequestNotificationCompletedSynchronouslyWithNotificationContextPending },
+ { AppVerifierErrorCode.NotificationContextHasChangedAfterSynchronouslyProcessingNotification, SR.AppVerifier_Errors_NotificationContextHasChangedAfterSynchronouslyProcessingNotification },
+ { AppVerifierErrorCode.PendingProcessRequestNotificationStatusAfterCompletingNestedNotification, SR.AppVerifier_Errors_PendingProcessRequestNotificationStatusAfterCompletingNestedNotification },
};
// Provides an option for different wrappers to specify whether to collect the call stacks traces
@@ -63,12 +68,13 @@
// The declarative order of these two fields is important; don't swap them!
private static Action<AppVerifierException> DefaultAppVerifierBehavior = GetAppVerifierBehaviorFromRegistry();
- private static readonly bool IsAppVerifierEnabled = (DefaultAppVerifierBehavior != null);
+ internal static readonly bool IsAppVerifierEnabled = (DefaultAppVerifierBehavior != null);
private static long AppVerifierErrorCodeCollectCallStackMask;
private static long AppVerifierErrorCodeEnableAssertMask;
private static CallStackCollectionBitMasks AppVerifierCollectCallStackMask;
private delegate void AssertDelegate(bool condition, AppVerifierErrorCode errorCode);
+ private delegate void AppendAdditionalInfoDelegate(StringBuilder errorString);
// Returns an AppVerifier handler (something that can record exceptions appropriately)
// appropriate to what was set in the system registry. If the key we're looking for
@@ -299,7 +305,7 @@
// BeginHandler hasn't yet returned, so this call may be synchronous or asynchronous.
// We can tell by comparing the current thread with the thread which called BeginHandler.
// From a correctness perspective, it is valid to invoke the AsyncCallback delegate either
- // synchronously or asynchronously. From [....]: if 'CompletedSynchronously = true', then
+ // synchronously or asynchronously. From Microsoft: if 'CompletedSynchronously = true', then
// AsyncCallback invocation can happen either on the same thread or on a different thread,
// just as long as BeginHandler hasn't yet returned (which in true in this case).
if (!asyncResult.CompletedSynchronously) {
@@ -444,8 +450,9 @@
}
// Gets a delegate that checks for application code trying to call into the SyncContext after
- // the request is already completed. The Action returned by this method could be null.
- public static Action GetSyncContextCheckDelegate(ISyncContext syncContext) {
+ // the request or the request notification is already completed.
+ // The Action returned by this method could be null.
+ public static Action<bool> GetSyncContextCheckDelegate(ISyncContext syncContext) {
if (!IsAppVerifierEnabled) {
return null;
}
@@ -454,13 +461,14 @@
}
/// <summary>
- /// Returns an Action that determines whether SynchronizationContext.Send or Post was called after the underlying request finished.
+ /// Returns an Action<bool> that determines whether SynchronizationContext.Send or Post was called after the underlying request
+ /// or the request notification finished. The bool parameter controls whether to check if Post is attempted in nested notification.
/// The instrumentation can be a performance hit, so this method should not be called if AppVerifier is not enabled.
/// </summary>
/// <param name="syncContext">The ISyncContext (HttpApplication, WebSocketPipeline, etc.) on which to perform the check.</param>
/// <param name="errorHandler">The listener that can handle verification failures.</param>
/// <returns>A callback which performs the verification.</returns>
- internal static Action GetSyncContextCheckDelegateImpl(ISyncContext syncContext, Action<AppVerifierException> errorHandler) {
+ internal static Action<bool> GetSyncContextCheckDelegateImpl(ISyncContext syncContext, Action<AppVerifierException> errorHandler) {
Uri requestUrl = null;
object originalThreadContextId = null;
@@ -479,7 +487,113 @@
}
// If the condition passed to this method evaluates to false, we will raise an error to whoever is listening.
- AssertDelegate assert = (condition, errorCode) => {
+ AssertDelegate assert = GetAssertDelegateImpl(requestUrl, errorHandler, appendAdditionalInfoDelegate: null);
+
+ return (checkForReEntry) => {
+ try {
+ // Make sure that the ISyncContext is still associated with the same HttpContext that
+ // we captured earlier.
+ HttpContext currentHttpContext = (syncContext != null) ? syncContext.HttpContext : null;
+ object currentThreadContextId = (currentHttpContext != null) ? currentHttpContext.ThreadContextId : null;
+ assert(currentThreadContextId != null && ReferenceEquals(originalThreadContextId, currentThreadContextId), AppVerifierErrorCode.SyncContextSendOrPostCalledAfterRequestCompleted);
+
+ if (HttpRuntime.UsingIntegratedPipeline && !currentHttpContext.HasWebSocketRequestTransitionCompleted) {
+ var notificationContext = (currentHttpContext != null) ? currentHttpContext.NotificationContext : null;
+ assert(notificationContext != null, AppVerifierErrorCode.SyncContextSendOrPostCalledBetweenNotifications);
+
+ if (checkForReEntry && notificationContext != null) {
+ assert(!notificationContext.IsReEntry, AppVerifierErrorCode.SyncContextPostCalledInNestedNotification);
+ }
+ }
+ }
+ catch (AppVerifierException) {
+ // We want to ---- any exceptions thrown by our verification logic, as the failure
+ // has already been recorded by the appropriate listener. Propagate the original
+ // exception upward.
+ }
+ };
+ }
+
+ // This generic method invokes a delegate that was created by AppVerifier at an earlier time.
+ // It is safe to call it even if the returned delegate is null (e.g. AppVerifier is off).
+ // Here is the typical usage scenario:
+ // var verifierCheck = AppVerifier.Get*CheckDelegate(...); // get the delegate which can capture some state
+ // T result = <...> // the result of some code execution
+ // AppVerifier.InvokeVerifierCheck(verifierCheckDelegate, result); // invoke the verification of the result
+ internal static void InvokeVerifierCheck<T>(Action<T> verifierCheckDelegate, T result)
+ {
+ if (verifierCheckDelegate != null) {
+ try {
+ verifierCheckDelegate(result);
+ }
+ catch (AppVerifierException) {
+ // We want to ---- any exceptions thrown by our verification logic, as the failure
+ // has already been recorded by the appropriate listener.
+ }
+ }
+ }
+
+ // Gets a delegate that checks for inconsistencies after managed code finished processing one or more request notifications.
+ // The Action returned by this method could be null.
+ internal static Action<RequestNotificationStatus> GetRequestNotificationStatusCheckDelegate(HttpContext context, RequestNotification currentNotification, bool isPostNotification) {
+ if (!IsAppVerifierEnabled) {
+ return null;
+ }
+ return GetRequestNotificationStatusCheckDelegateImpl(context, currentNotification, isPostNotification, HandleAppVerifierException);
+ }
+
+ /// <summary>
+ /// Returns an Action<RequestNotificationStatus> that will check for inconsistencies after
+ /// managed code has finished processing one or more notifications and about to return back to IIS.
+ /// </summary>
+ /// <returns>A callback which performs the verification.</returns>
+ internal static Action<RequestNotificationStatus> GetRequestNotificationStatusCheckDelegateImpl(HttpContext context, RequestNotification currentNotification, bool isPostNotification, Action<AppVerifierException> errorHandler) {
+ // collect all of the diagnostic information upfront
+ NotificationContext originalNotificationContext = context.NotificationContext;
+ bool isReentry = originalNotificationContext.IsReEntry;
+ Uri requestUrl = null;
+ if (!context.HideRequestResponse && context.Request != null) {
+ requestUrl = context.Request.Unvalidated.Url;
+ }
+
+ AppendAdditionalInfoDelegate appendCurrentNotificationInfo = (errorString) => {
+ errorString.AppendLine(FormatErrorString(SR.AppVerifier_BasicInfo_NotificationInfo, currentNotification, isPostNotification, isReentry));
+ };
+
+ AssertDelegate assert = GetAssertDelegateImpl(requestUrl, errorHandler, appendAdditionalInfoDelegate: appendCurrentNotificationInfo);
+
+ return (RequestNotificationStatus status) => {
+ if (status == RequestNotificationStatus.Pending) {
+ // We don't expect nested notifications to complete asynchronously
+ assert(!isReentry, AppVerifierErrorCode.PendingProcessRequestNotificationStatusAfterCompletingNestedNotification);
+ }
+ else {
+ // Completing synchronously with pending NotificationContext means a
+
+
+ assert(context.NotificationContext != null && !context.NotificationContext.PendingAsyncCompletion,
+ AppVerifierErrorCode.RequestNotificationCompletedSynchronouslyWithNotificationContextPending);
+
+ // Can't have a different NotificationContext after finishing the notification
+ // Even if it was changed while processing nested notifications it should be restored back before we unwind
+ assert(context.NotificationContext == originalNotificationContext,
+ AppVerifierErrorCode.NotificationContextHasChangedAfterSynchronouslyProcessingNotification);
+ }
+ };
+ }
+
+ /// <summary>
+ /// This method returns the default implementation of the assert code which takes care of
+ /// evaluating the assert contition, handing assert and stack collection enabling masks,
+ /// and creating an AppVerifierException with basic information
+ /// </summary>
+ /// <param name="requestUrl">The Url of the request.</param>
+ /// <param name="errorHandler">The listener that can handle verification failures.</param>
+ /// <param name="appendAdditionalInfoDelegate">The caller can provide this delegate to append additional information to the exception. Could be null.</param>
+ /// <returns>A callback which performs the verification.</returns>
+ private static AssertDelegate GetAssertDelegateImpl(Uri requestUrl, Action<AppVerifierException> errorHandler, AppendAdditionalInfoDelegate appendAdditionalInfoDelegate) {
+ // If the condition passed to this method evaluates to false, we will raise an error to whoever is listening.
+ return (condition, errorCode) => {
long mask = 1L << (int)errorCode;
// assert only if it was not masked out by a bit set
bool enableAssert = (AppVerifierErrorCodeEnableAssertMask & mask) == mask;
@@ -500,6 +614,13 @@
errorString.AppendLine(FormatErrorString(SR.AppVerifier_BasicInfo_ErrorCode, (int)errorCode));
errorString.AppendLine(FormatErrorString(SR.AppVerifier_BasicInfo_Description, GetLocalizedDescriptionStringForError(errorCode)));
errorString.AppendLine(FormatErrorString(SR.AppVerifier_BasicInfo_ThreadInfo, assertInvocationInfo.ThreadId, assertInvocationInfo.Timestamp.ToLocalTime()));
+
+ // append additional info if needed
+ if (appendAdditionalInfoDelegate != null) {
+ appendAdditionalInfoDelegate(errorString);
+ }
+
+ // append the stack trace
errorString.AppendLine(assertInvocationInfo.StackTrace.ToString());
AppVerifierException ex = new AppVerifierException(errorCode, errorString.ToString());
@@ -507,23 +628,9 @@
throw ex;
}
};
-
- return () => {
- try {
- // Make sure that the ISyncContext is still associated with the same HttpContext that
- // we captured earlier.
- HttpContext currentHttpContext = (syncContext != null) ? syncContext.HttpContext : null;
- object currentThreadContextId = (currentHttpContext != null) ? currentHttpContext.ThreadContextId : null;
- assert(currentThreadContextId != null && ReferenceEquals(originalThreadContextId, currentThreadContextId), AppVerifierErrorCode.SyncContextSendOrPostCalledAfterRequestCompleted);
- }
- catch (AppVerifierException) {
- // We want to ---- any exceptions thrown by our verification logic, as the failure
- // has already been recorded by the appropriate listener. Propagate the original
- // exception upward.
- }
- };
}
+
// This is the default implementation of an AppVerifierException handler;
// it just delegates to the configured behavior.
[SuppressMessage("Microsoft.Reliability", "CA2004:RemoveCallsToGCKeepAlive", Justification = "Want to keep these locals on the stack to assist with debugging.")]
diff --git a/mcs/class/referencesource/System.Web/Util/AppVerifierErrorCode.cs b/mcs/class/referencesource/System.Web/Util/AppVerifierErrorCode.cs
index 5010ec4befe..290cecd0d1b 100644
--- a/mcs/class/referencesource/System.Web/Util/AppVerifierErrorCode.cs
+++ b/mcs/class/referencesource/System.Web/Util/AppVerifierErrorCode.cs
@@ -27,7 +27,11 @@
BeginHandlerReturnedAsyncResultMarkedCompletedSynchronouslyButAsyncCallbackNeverCalled,
BeginHandlerReturnedUnexpectedAsyncResultInstance,
BeginHandlerReturnedUnexpectedAsyncResultAsyncState,
- SyncContextSendOrPostCalledAfterRequestCompleted
-
+ SyncContextSendOrPostCalledAfterRequestCompleted,
+ SyncContextSendOrPostCalledBetweenNotifications,
+ SyncContextPostCalledInNestedNotification,
+ RequestNotificationCompletedSynchronouslyWithNotificationContextPending,
+ NotificationContextHasChangedAfterSynchronouslyProcessingNotification,
+ PendingProcessRequestNotificationStatusAfterCompletingNestedNotification
}
}
diff --git a/mcs/class/referencesource/System.Web/Util/BinaryCompatibility.cs b/mcs/class/referencesource/System.Web/Util/BinaryCompatibility.cs
index b910dcc1dbf..5eb65fa4470 100644
--- a/mcs/class/referencesource/System.Web/Util/BinaryCompatibility.cs
+++ b/mcs/class/referencesource/System.Web/Util/BinaryCompatibility.cs
@@ -30,11 +30,13 @@ namespace System.Web.Util {
TargetsAtLeastFramework45 = (version >= VersionUtil.Framework45);
TargetsAtLeastFramework451 = (version >= VersionUtil.Framework451);
TargetsAtLeastFramework452 = (version >= VersionUtil.Framework452);
+ TargetsAtLeastFramework46 = (version >= VersionUtil.Framework46);
}
public bool TargetsAtLeastFramework45 { get; private set; }
public bool TargetsAtLeastFramework451 { get; private set; }
public bool TargetsAtLeastFramework452 { get; private set; }
+ public bool TargetsAtLeastFramework46 { get; private set; }
public Version TargetFramework { get; private set; }
diff --git a/mcs/class/referencesource/System.Web/Util/FastPropertyAccessor.cs b/mcs/class/referencesource/System.Web/Util/FastPropertyAccessor.cs
index 0d3ef7d91c6..661eabdff1b 100644
--- a/mcs/class/referencesource/System.Web/Util/FastPropertyAccessor.cs
+++ b/mcs/class/referencesource/System.Web/Util/FastPropertyAccessor.cs
@@ -269,8 +269,8 @@ namespace System.Web.Util {
}
declaringType = baseCheckMethodInfo.GetBaseDefinition().DeclaringType;
- // DevDiv Bug 27734
- // Ignore the declaring type if it's generic
+ // DevDiv
+
if (declaringType.IsGenericType)
declaringType = type;
@@ -379,8 +379,8 @@ namespace System.Web.Util {
return accessor.GetProperty(target);
}
else {
- // Dev10 bug 491386 - avoid CLR code path that causes an exception when designer uses two
- // assemblies of the same name at different locations
+ // Dev10
+
FieldInfo fieldInfo = null;
PropertyInfo propInfo = null;
Type declaringType;
@@ -419,8 +419,8 @@ namespace System.Web.Util {
accessor.SetProperty(target, val);
}
else {
- // Dev10 bug 491386 - avoid CLR code path that causes an exception when designer uses two
- // assemblies of the same name at different locations
+ // Dev10
+
FieldInfo fieldInfo = null;
PropertyInfo propInfo = null;
Type declaringType = null;
diff --git a/mcs/class/referencesource/System.Web/Util/HashCodeCombiner.cs b/mcs/class/referencesource/System.Web/Util/HashCodeCombiner.cs
index 68031124244..a63d870ce7b 100644
--- a/mcs/class/referencesource/System.Web/Util/HashCodeCombiner.cs
+++ b/mcs/class/referencesource/System.Web/Util/HashCodeCombiner.cs
@@ -103,7 +103,7 @@ internal class HashCodeCombiner {
internal void AddCaseInsensitiveString(string s) {
if (s != null)
- AddInt((StringComparer.InvariantCultureIgnoreCase).GetHashCode(s));
+ AddInt(StringUtil.GetNonRandomizedHashCode(s, ignoreCase:true));
}
internal void AddDateTime(DateTime dt) {
@@ -131,7 +131,7 @@ internal class HashCodeCombiner {
}
private void AddFileContentHashKey(string fileContentHashKey) {
- AddInt(fileContentHashKey.GetHashCode());
+ AddInt(StringUtil.GetNonRandomizedHashCode(fileContentHashKey));
}
internal void AddFileContentHash(string fileName) {
diff --git a/mcs/class/referencesource/System.Web/Util/HeapAllocHandle.cs b/mcs/class/referencesource/System.Web/Util/HeapAllocHandle.cs
new file mode 100644
index 00000000000..cfdfaa8b9f0
--- /dev/null
+++ b/mcs/class/referencesource/System.Web/Util/HeapAllocHandle.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+// <copyright file="HeapAllocHandle.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+//------------------------------------------------------------------------------
+
+namespace System.Web.Util {
+ using System;
+ using System.Diagnostics.CodeAnalysis;
+ using Microsoft.Win32.SafeHandles;
+
+ internal class HeapAllocHandle : SafeHandleZeroOrMinusOneIsInvalid {
+ [SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Justification = @"This pointer is valid for the lifetime of the process; never needs to be released.")]
+ private static readonly IntPtr ProcessHeap = UnsafeNativeMethods.GetProcessHeap();
+
+ // Called by P/Invoke when returning SafeHandles
+ protected HeapAllocHandle()
+ : base(ownsHandle: true) {
+ }
+
+ // Do not provide a finalizer - SafeHandle's critical finalizer will call ReleaseHandle for you.
+ protected override bool ReleaseHandle() {
+ return UnsafeNativeMethods.HeapFree(ProcessHeap, 0, handle);
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Web/Util/HttpEncoder.cs b/mcs/class/referencesource/System.Web/Util/HttpEncoder.cs
index f47072cf826..70362cfbc81 100644
--- a/mcs/class/referencesource/System.Web/Util/HttpEncoder.cs
+++ b/mcs/class/referencesource/System.Web/Util/HttpEncoder.cs
@@ -89,7 +89,7 @@ namespace System.Web.Util {
|| c == '\'' // HTML-sensitive chars encoded for safety
|| c == '<'
|| c == '>'
- || (c == '&' && JavaScriptEncodeAmpersand) // Bug Dev11 #133237. Encode '&' to provide additional security for people who incorrectly call the encoding methods (unless turned off by backcompat switch)
+ || (c == '&' && JavaScriptEncodeAmpersand) //
|| c == '\u0085' // newline chars (see Unicode 6.2, Table 5-1 [http://www.unicode.org/versions/Unicode6.2.0/ch05.pdf]) have to be encoded (DevDiv #663531)
|| c == '\u2028'
|| c == '\u2029';
@@ -633,8 +633,17 @@ namespace System.Web.Util {
}
// nothing to expand?
- if (cSpaces == 0 && cUnsafe == 0)
- return bytes;
+ if (cSpaces == 0 && cUnsafe == 0) {
+ // DevDiv 912606: respect "offset" and "count"
+ if (0 == offset && bytes.Length == count) {
+ return bytes;
+ }
+ else {
+ var subarray = new byte[count];
+ Buffer.BlockCopy(bytes, offset, subarray, 0, count);
+ return subarray;
+ }
+ }
// expand not 'safe' characters into %XX, spaces to +s
byte[] expandedBytes = new byte[count + cUnsafe * 2];
@@ -748,6 +757,37 @@ namespace System.Web.Util {
[SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings",
Justification = "Does not represent an entire URL, just a portion.")]
protected internal virtual string UrlPathEncode(string value) {
+ // DevDiv 995259: HttpUtility.UrlPathEncode should not encode IDN part of the url
+ if (BinaryCompatibility.Current.TargetsAtLeastFramework46) {
+ if (String.IsNullOrEmpty(value)) {
+ return value;
+ }
+
+ string schemeAndAuthority;
+ string path;
+ string queryAndFragment;
+ bool isValidUrl = UriUtil.TrySplitUriForPathEncode(value, out schemeAndAuthority, out path, out queryAndFragment, checkScheme: false);
+
+ if (!isValidUrl) {
+ // If the value is not a valid url, we treat it as a relative url.
+ // We don't need to extract query string from the url since UrlPathEncode()
+ // does not encode query string.
+ schemeAndAuthority = null;
+ path = value;
+ queryAndFragment = null;
+ }
+
+ return schemeAndAuthority + UrlPathEncodeImpl(path) + queryAndFragment;
+ }
+ else {
+ return UrlPathEncodeImpl(value);
+ }
+ }
+
+ // This is the original UrlPathEncode(string)
+ [SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings",
+ Justification = "Does not represent an entire URL, just a portion.")]
+ private string UrlPathEncodeImpl(string value) {
if (String.IsNullOrEmpty(value)) {
return value;
}
@@ -755,7 +795,7 @@ namespace System.Web.Util {
// recurse in case there is a query string
int i = value.IndexOf('?');
if (i >= 0)
- return UrlPathEncode(value.Substring(0, i)) + value.Substring(i);
+ return UrlPathEncodeImpl(value.Substring(0, i)) + value.Substring(i);
// encode DBCS characters and spaces only
return HttpEncoderUtility.UrlEncodeSpaces(UrlEncodeNonAscii(value, Encoding.UTF8));
diff --git a/mcs/class/referencesource/System.Web/Util/ParseHttpDate.cs b/mcs/class/referencesource/System.Web/Util/ParseHttpDate.cs
index f34ba5fcd78..0de88fe30ae 100644
--- a/mcs/class/referencesource/System.Web/Util/ParseHttpDate.cs
+++ b/mcs/class/referencesource/System.Web/Util/ParseHttpDate.cs
@@ -92,7 +92,7 @@ namespace System.Web.Util
} else if ( monthIndex == (sbyte) 'R' ) {
//
- // if s[1] is 'a' then [....], if 'p' then April
+ // if s[1] is 'a' then Microsoft, if 'p' then April
//
if ( s_monthIndexTable[(s[1 + startIndex]-0x40) & 0x3f] == (sbyte) 'A' ) {
diff --git a/mcs/class/referencesource/System.Web/Util/StringUtil.cs b/mcs/class/referencesource/System.Web/Util/StringUtil.cs
index 9946bc9c86a..5e580ff7669 100644
--- a/mcs/class/referencesource/System.Web/Util/StringUtil.cs
+++ b/mcs/class/referencesource/System.Web/Util/StringUtil.cs
@@ -14,6 +14,7 @@ namespace System.Web.Util {
using System.Text;
using System.Globalization;
using System.Runtime.InteropServices;
+using System.Web.Hosting;
/*
* Various string handling utilities
@@ -275,6 +276,45 @@ internal static class StringUtil {
}
}
+ internal static int GetNonRandomizedHashCode(string s, bool ignoreCase = false) {
+ // Preserve the default behavior when string hash randomization is off
+ if (!AppSettings.UseRandomizedStringHashAlgorithm) {
+ return ignoreCase ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(s) : s.GetHashCode();
+ }
+
+ if (ignoreCase) {
+ s = s.ToLower(CultureInfo.InvariantCulture);
+ }
+
+ // Use our stable hash algorithm implementation
+ return GetStringHashCode(s);
+ }
+
+ // Need StringComparer implementation. It's very expensive to port the actual BCL code here
+ // Instead use the default AppDomain, because it doesn't have string hash randomization enabled.
+ // Marshal the call to reuse the default StringComparer behavior.
+ // PERF isn't optimal, so apply consideration!
+ internal static int GetNonRandomizedStringComparerHashCode(string s) {
+ // Preserve the default behavior when string hash randomization is off
+ if (!AppSettings.UseRandomizedStringHashAlgorithm) {
+ return StringComparer.InvariantCultureIgnoreCase.GetHashCode(s);
+ }
+
+ ApplicationManager appManager = HostingEnvironment.GetApplicationManager();
+ if (appManager != null) {
+ // Cross AppDomain call may cause marshaling of IPrincipal to fail. So strip out the exectuion context
+ int hashCode = 0;
+ ExecutionContextUtil.RunInNullExecutionContext(delegate {
+ hashCode = appManager.GetNonRandomizedStringComparerHashCode(s, ignoreCase:true);
+ });
+
+ return hashCode;
+ }
+
+ // Fall back to non-compat result
+ return GetStringHashCode(s.ToLower(CultureInfo.InvariantCulture));
+ }
+
internal static int GetNullTerminatedByteArray(Encoding enc, string s, out byte[] bytes)
{
bytes = null;
@@ -382,12 +422,12 @@ internal static class StringUtil {
}
}
#else
- // <STRIP>This is Peter Sollich's faster memcpy implementation, from
- // COMString.cpp. For our strings, this beat the processor's
- // repeat & move single byte instruction, which memcpy expands into.
- // (You read that correctly.)
- // This is 3x faster than a simple while loop copying byte by byte,
- // for large copies.</STRIP>
+ // <
+
+
+
+
+
if (len >= 16) {
do {
#if AMD64
diff --git a/mcs/class/referencesource/System.Web/Util/SynchronizationHelper.cs b/mcs/class/referencesource/System.Web/Util/SynchronizationHelper.cs
index e52d9525e39..d442f0cc89c 100644
--- a/mcs/class/referencesource/System.Web/Util/SynchronizationHelper.cs
+++ b/mcs/class/referencesource/System.Web/Util/SynchronizationHelper.cs
@@ -19,10 +19,11 @@ namespace System.Web.Util {
private Task _completionTask; // the Task that will run when all in-flight operations have completed
private Thread _currentThread; // the Thread that's running the current Task; all threads must see the same value for this field
private Task _lastScheduledTask = CreateInitialTask(); // the last Task that was queued to this helper, used to hook future Tasks (not volatile since always accessed under lock)
+ private Task _lastScheduledTaskAsync = CreateInitialTask(); // the last async Task that was queued to this helper
private readonly object _lockObj = new object(); // synchronizes access to _lastScheduledTask
private int _operationsInFlight; // operation counter
private readonly ISyncContext _syncContext; // a context that wraps an operation with pre- and post-execution phases
- private readonly Action _appVerifierCallback; // for making sure that developers don't try calling us after the request has completed
+ private readonly Action<bool> _appVerifierCallback; // for making sure that developers don't try calling us after the request has completed
public SynchronizationHelper(ISyncContext syncContext) {
_syncContext = syncContext;
@@ -56,9 +57,9 @@ namespace System.Web.Util {
return newOperationCount;
}
- private void CheckForRequestCompletionIfRequired() {
+ private void CheckForRequestStateIfRequired(bool checkForReEntry) {
if (_appVerifierCallback != null) {
- _appVerifierCallback();
+ _appVerifierCallback(checkForReEntry);
}
}
@@ -98,7 +99,7 @@ namespace System.Web.Util {
}
public void QueueAsynchronous(Action action) {
- CheckForRequestCompletionIfRequired();
+ CheckForRequestStateIfRequired(checkForReEntry: true);
ChangeOperationCount(+1);
// This method only schedules work; it doesn't itself do any work. The lock is held for a very
@@ -109,8 +110,31 @@ namespace System.Web.Util {
}
}
+ // QueueAsynchronousAsync and SafeWrapCallbackAsync guarantee:
+ // 1. For funcs posted here, it's would first come, first complete.
+ // 2. There is no overlapping execution.
+ public void QueueAsynchronousAsync(Func<object, Task> func, object state) {
+ CheckForRequestStateIfRequired(checkForReEntry: true);
+ ChangeOperationCount(+1);
+
+ // This method only schedules work; it doesn't itself do any work. The lock is held for a very
+ // short period of time.
+ lock (_lockObj) {
+ // 1. Note that we are chaining newTask with _lastScheduledTaskAsync, not _lastScheduledTask.
+ // Chaining newTask with _lastScheduledTask would cause deadlock.
+ // 2. Unwrap() is necessary to be called here. When chaining multiple tasks using the ContinueWith
+ // method, your return type will be Task<T> whereas T is the return type of the delegate/method
+ // passed to ContinueWith. As the return type of an async delegate is a Task, you will end up with
+ // a Task<Task> and end up waiting for the async delegate to return you the Task which is done after
+ // the first await.
+ Task newTask = _lastScheduledTaskAsync.ContinueWith(
+ async _ => { await SafeWrapCallbackAsync(func, state); }).Unwrap();
+ _lastScheduledTaskAsync = newTask; // the newly-created task is now the last one
+ }
+ }
+
public void QueueSynchronous(Action action) {
- CheckForRequestCompletionIfRequired();
+ CheckForRequestStateIfRequired(checkForReEntry: false);
if (CurrentThread == Thread.CurrentThread) {
// current thread already owns the context, so just execute inline to prevent deadlocks
action();
@@ -150,6 +174,35 @@ namespace System.Web.Util {
}
}
+ // This method does not run the func by itself. It simply queues the func into the existing
+ // syncContext queue.
+ private async Task SafeWrapCallbackAsync(Func<object, Task> func, object state) {
+ try {
+ TaskCompletionSource<Task> tcs = new TaskCompletionSource<Task>();
+ QueueAsynchronous(() => {
+ var t = func(state);
+ t.ContinueWith((_) => {
+ if (t.IsFaulted) {
+ tcs.TrySetException(t.Exception.InnerExceptions);
+ }
+ else if (t.IsCanceled) {
+ tcs.TrySetCanceled();
+ }
+ else {
+ tcs.TrySetResult(t);
+ }
+ }, TaskContinuationOptions.ExecuteSynchronously);
+ });
+ await tcs.Task;
+ }
+ catch (Exception ex) {
+ Error = ExceptionDispatchInfo.Capture(ex);
+ }
+ finally {
+ ChangeOperationCount(-1);
+ }
+ }
+
// Sets the continuation that will asynchronously execute when the pending operation counter
// hits zero. Returns true if asynchronous execution is expected, false if the operation
// counter is already at zero and the caller should run the continuation inline.
diff --git a/mcs/class/referencesource/System.Web/Util/TlsTokenBindingHandle.cs b/mcs/class/referencesource/System.Web/Util/TlsTokenBindingHandle.cs
new file mode 100644
index 00000000000..c77105d65e9
--- /dev/null
+++ b/mcs/class/referencesource/System.Web/Util/TlsTokenBindingHandle.cs
@@ -0,0 +1,68 @@
+//------------------------------------------------------------------------------
+// <copyright file="TlsTokenBindingHandle.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+//------------------------------------------------------------------------------
+
+namespace System.Web.Util {
+ using System;
+ using System.Diagnostics.CodeAnalysis;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+ using System.Web.Hosting;
+
+ internal sealed class TlsTokenBindingHandle : HeapAllocHandle {
+ [SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Justification = @"Pointer is valid while this SafeHandle is valid.")]
+ private readonly IntPtr _providedTokenBlob;
+ private readonly uint _providedTokenBlobSize;
+ [SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources", Justification = @"Pointer is valid while this SafeHandle is valid.")]
+ private readonly IntPtr _referredTokenBlob;
+ private readonly uint _referredtokenBlobSize;
+
+ internal TlsTokenBindingHandle(IntPtr mgdContext) {
+ int hr = UnsafeIISMethods.MgdGetTlsTokenBindingIdentifiers(
+ mgdContext,
+ ref handle,
+ out _providedTokenBlob,
+ out _providedTokenBlobSize,
+ out _referredTokenBlob,
+ out _referredtokenBlobSize);
+ Misc.ThrowIfFailedHr(hr);
+ }
+
+ public byte[] GetProvidedToken() {
+ return GetTokenImpl(_providedTokenBlob, _providedTokenBlobSize);
+ }
+
+ public byte[] GetReferredToken() {
+ return GetTokenImpl(_referredTokenBlob, _referredtokenBlobSize);
+ }
+
+ private byte[] GetTokenImpl(IntPtr blob, uint blobSize) {
+ if (blob == IntPtr.Zero || blobSize == 0) {
+ return null;
+ }
+ else {
+ byte[] retVal = new byte[blobSize];
+ int length = retVal.Length; // checks for overflow
+ bool refAdded = false;
+
+ RuntimeHelpers.PrepareConstrainedRegions();
+ try
+ {
+ DangerousAddRef(ref refAdded);
+ Marshal.Copy(blob, retVal, 0, length);
+ }
+ finally
+ {
+ if (refAdded)
+ {
+ DangerousRelease();
+ }
+ }
+
+ return retVal;
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Web/Util/VersionUtil.cs b/mcs/class/referencesource/System.Web/Util/VersionUtil.cs
index 6dc347810c8..a28855bd9ae 100644
--- a/mcs/class/referencesource/System.Web/Util/VersionUtil.cs
+++ b/mcs/class/referencesource/System.Web/Util/VersionUtil.cs
@@ -15,12 +15,14 @@ namespace System.Web.Util {
internal static class VersionUtil {
+ public static readonly Version Framework00 = new Version(0, 0);
public static readonly Version Framework20 = new Version(2, 0);
public static readonly Version Framework35 = new Version(3, 5);
public static readonly Version Framework40 = new Version(4, 0);
public static readonly Version Framework45 = new Version(4, 5);
public static readonly Version Framework451 = new Version(4, 5, 1);
public static readonly Version Framework452 = new Version(4, 5, 2);
+ public static readonly Version Framework46 = new Version(4, 6);
// Convenience accessor for the "default" framework version; various configuration
// switches can use this as a default value. This value must only be bumped during
diff --git a/mcs/class/referencesource/System.Web/Util/versioninfo.cs b/mcs/class/referencesource/System.Web/Util/versioninfo.cs
index d2eb21bcb82..f4d63356be8 100644
--- a/mcs/class/referencesource/System.Web/Util/versioninfo.cs
+++ b/mcs/class/referencesource/System.Web/Util/versioninfo.cs
@@ -79,7 +79,12 @@ namespace System.Web.Util {
internal static string SystemWebVersion {
get {
- return ThisAssembly.InformationalVersion;
+
+ // Previously this represented the File version of mscorlib.dll. Many other libraries in the framework and outside took dependencies on the first three parts of this version
+ // remaining constant throughout 4.x. From 4.0 to 4.5.2 this was fine since the file version only incremented the last part. Starting with 4.6 we switched to a file versioning
+ // scheme that matched the product version. In order to preserve compatibility with existing libraries, this needs to be hard-coded.
+
+ return "4.0.30319.42000";
}
}
diff --git a/mcs/class/referencesource/System.Web/VirtualPath.cs b/mcs/class/referencesource/System.Web/VirtualPath.cs
index e53c9209673..664aefde125 100644
--- a/mcs/class/referencesource/System.Web/VirtualPath.cs
+++ b/mcs/class/referencesource/System.Web/VirtualPath.cs
@@ -432,17 +432,14 @@ namespace System.Web {
return v1.Combine(v2);
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public static bool operator == (VirtualPath v1, VirtualPath v2) {
return VirtualPath.Equals(v1, v2);
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public static bool operator != (VirtualPath v1, VirtualPath v2) {
return !VirtualPath.Equals(v1, v2);
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public static bool Equals(VirtualPath v1, VirtualPath v2) {
// Check if it's the same object
@@ -457,7 +454,6 @@ namespace System.Web {
return EqualsHelper(v1, v2);
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public override bool Equals(object value) {
if (value == null)
@@ -472,7 +468,6 @@ namespace System.Web {
return EqualsHelper(virtualPath, this);
}
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
private static bool EqualsHelper(VirtualPath v1, VirtualPath v2) {
return StringComparer.InvariantCultureIgnoreCase.Compare(
v1.VirtualPathString, v2.VirtualPathString) == 0;
diff --git a/mcs/class/referencesource/System.Web/WebSockets/AspNetWebSocket.cs b/mcs/class/referencesource/System.Web/WebSockets/AspNetWebSocket.cs
index 742ac821be6..64b6f95526e 100644
--- a/mcs/class/referencesource/System.Web/WebSockets/AspNetWebSocket.cs
+++ b/mcs/class/referencesource/System.Web/WebSockets/AspNetWebSocket.cs
@@ -489,8 +489,8 @@ namespace System.Web.WebSockets {
}
if (closeStatus == WebSocketCloseStatus.Empty) {
- // Fix Bug : 312472, we would like to allow empty strings to be passed to our APIs when status code is 1005.
- // Since WSPC requires the statusDescription to be null, we convert.
+ // Fix
+
if (statusDescription == String.Empty) {
statusDescription = null;
}
diff --git a/mcs/class/referencesource/System.Web/httpserverutility.cs b/mcs/class/referencesource/System.Web/httpserverutility.cs
index 1c895814c08..54ea1bc1687 100644
--- a/mcs/class/referencesource/System.Web/httpserverutility.cs
+++ b/mcs/class/referencesource/System.Web/httpserverutility.cs
@@ -327,8 +327,9 @@ namespace System.Web {
path = path.Substring(0, iqs);
}
- if (!UrlPath.IsValidVirtualPathWithoutProtocol(path))
+ if (!UrlPath.IsValidVirtualPathWithoutProtocol(path)) {
throw new ArgumentException(SR.GetString(SR.Invalid_path_for_child_request, path));
+ }
VirtualPath virtualPath = VirtualPath.Create(path);
@@ -491,7 +492,7 @@ namespace System.Web {
targetPage.SmartNavigation = true;
#pragma warning restore 0618
- // If the target page is async need to save/restore [....] context
+ // If the target page is async need to save/restore sync context
if (targetPage is IHttpAsyncHandler) {
savedSyncContext = _context.InstallNewAspNetSynchronizationContext();
}
diff --git a/mcs/class/referencesource/System.Web/misc/SecurityUtils.cs b/mcs/class/referencesource/System.Web/misc/SecurityUtils.cs
index 76e02fafbaf..159dedbb6c6 100644
--- a/mcs/class/referencesource/System.Web/misc/SecurityUtils.cs
+++ b/mcs/class/referencesource/System.Web/misc/SecurityUtils.cs
@@ -8,11 +8,11 @@
*/
-#if WINFORMS_NAMESPACE
+#if Microsoft_NAMESPACE
namespace System.Windows.Forms
#elif DRAWING_NAMESPACE
namespace System.Drawing
-#elif WINFORMS_PUBLIC_GRAPHICS_LIBRARY
+#elif Microsoft_PUBLIC_GRAPHICS_LIBRARY
namespace System.Internal
#elif SYSTEM_NAMESPACE
namespace System
@@ -127,7 +127,7 @@ namespace System.Windows.Forms
return Activator.CreateInstance(type, flags, null, args, null);
}
-#if (!WINFORMS_NAMESPACE)
+#if (!Microsoft_NAMESPACE)
/// <devdoc>
/// This helper method provides safe access to Activator.CreateInstance.
diff --git a/mcs/class/referencesource/System.Workflow.Activities/Common/AssemblyRef.cs b/mcs/class/referencesource/System.Workflow.Activities/Common/AssemblyRef.cs
index 32c3b596e42..11669fc9a3d 100644
--- a/mcs/class/referencesource/System.Workflow.Activities/Common/AssemblyRef.cs
+++ b/mcs/class/referencesource/System.Workflow.Activities/Common/AssemblyRef.cs
@@ -11,7 +11,7 @@ using System;
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Common\Shared
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Common\Shared\AssemblyRef.cs
*********************************************************************/
diff --git a/mcs/class/referencesource/System.Workflow.Activities/Common/BasePropertyDescriptor.cs b/mcs/class/referencesource/System.Workflow.Activities/Common/BasePropertyDescriptor.cs
index edf00c3bb36..6217eb68757 100644
--- a/mcs/class/referencesource/System.Workflow.Activities/Common/BasePropertyDescriptor.cs
+++ b/mcs/class/referencesource/System.Workflow.Activities/Common/BasePropertyDescriptor.cs
@@ -22,7 +22,7 @@ using System.Workflow.ComponentModel.Design;
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Common\Shared
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Common\Shared\BasePropertyDescriptor.cs
*********************************************************************/
@@ -414,8 +414,8 @@ namespace System.Workflow.Activities.Common
{
if (this.avoidDuplication)
{
- // WinOE Bug 10442: should only prefix with "(Parameter)" if there is and existing
- // member of the same name.
+ // WinOE
+
return GetParameterPropertyName(this.componentType, base.Name);
}
else
diff --git a/mcs/class/referencesource/System.Workflow.Activities/Common/CompModHelpers.cs b/mcs/class/referencesource/System.Workflow.Activities/Common/CompModHelpers.cs
index cc6b22aba9e..904f2cb3041 100644
--- a/mcs/class/referencesource/System.Workflow.Activities/Common/CompModHelpers.cs
+++ b/mcs/class/referencesource/System.Workflow.Activities/Common/CompModHelpers.cs
@@ -9,7 +9,7 @@
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Common\Shared
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Common\Shared\CompModHelpers.cs
*********************************************************************/
@@ -1169,10 +1169,10 @@ namespace System.Workflow.Activities.Common
Guid parentContextGuid = GetRuntimeContextGuid(parentContextActivity);
while (activity == null && declaringContextGuid != currentContextGuid)
{
- // WinOE Bug 17931: if the context id is different, it means that this activity is running in a child context (such as
- // the children of a replicator or a while). we need to resolve the activity within the child context
- // first. If we go up to the declaring activity, we'd be finding children of the template instead of
- // the actual running instance.
+ // WinOE
+
+
+
while (parentContextActivity != null && parentContextGuid == currentContextGuid)
{
currentContextActivity = parentContextActivity;
@@ -1395,10 +1395,10 @@ namespace System.Workflow.Activities.Common
}
#endregion
- // This class has been added as a fix for bug 18214 in order to
- // create an independent code-path for debugger's use of ParseActivity functionality.
- // The GetActivity method of this class uses QualifiedName instead of Name property
- // for finding activities.
+ // This class has been added as a fix for
+
+
+
internal static class DebuggerHelpers
{
[SuppressMessage("Microsoft.Globalization", "CA1307:SpecifyStringComparison", Justification = "IndexOf(\".\") not a security issue.")]
diff --git a/mcs/class/referencesource/System.Workflow.Activities/Common/CompilerHelpers.cs b/mcs/class/referencesource/System.Workflow.Activities/Common/CompilerHelpers.cs
index d02d9fe9138..27ec4c11f6d 100644
--- a/mcs/class/referencesource/System.Workflow.Activities/Common/CompilerHelpers.cs
+++ b/mcs/class/referencesource/System.Workflow.Activities/Common/CompilerHelpers.cs
@@ -10,7 +10,7 @@
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Common\Shared
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Common\Shared\CompilerHelpers.cs
*********************************************************************/
diff --git a/mcs/class/referencesource/System.Workflow.Activities/Common/DelegateTypeInfo.cs b/mcs/class/referencesource/System.Workflow.Activities/Common/DelegateTypeInfo.cs
index c3667ac5b60..a7f911669f6 100644
--- a/mcs/class/referencesource/System.Workflow.Activities/Common/DelegateTypeInfo.cs
+++ b/mcs/class/referencesource/System.Workflow.Activities/Common/DelegateTypeInfo.cs
@@ -9,7 +9,7 @@
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Common\Shared
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Common\Shared\DelegateTypeInfo.cs
*********************************************************************/
diff --git a/mcs/class/referencesource/System.Workflow.Activities/Common/NativeMethods.cs b/mcs/class/referencesource/System.Workflow.Activities/Common/NativeMethods.cs
index 38e72c5ab8c..8870aea0337 100644
--- a/mcs/class/referencesource/System.Workflow.Activities/Common/NativeMethods.cs
+++ b/mcs/class/referencesource/System.Workflow.Activities/Common/NativeMethods.cs
@@ -9,7 +9,7 @@
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Common\Shared
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Common\Shared\NativeMethods.cs
*********************************************************************/
namespace System.Workflow.Activities.Common
diff --git a/mcs/class/referencesource/System.Workflow.Activities/Common/TypeSystemHelpers.cs b/mcs/class/referencesource/System.Workflow.Activities/Common/TypeSystemHelpers.cs
index caa3bbcf2bc..d8cc8d986e5 100644
--- a/mcs/class/referencesource/System.Workflow.Activities/Common/TypeSystemHelpers.cs
+++ b/mcs/class/referencesource/System.Workflow.Activities/Common/TypeSystemHelpers.cs
@@ -9,7 +9,7 @@
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Common\Shared
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Common\Shared\TypeSystemHelpers.cs
*********************************************************************/
namespace System.Workflow.Activities.Common
diff --git a/mcs/class/referencesource/System.Workflow.Activities/Common/ValidationHelpers.cs b/mcs/class/referencesource/System.Workflow.Activities/Common/ValidationHelpers.cs
index b0ada5fd4c6..65a90259007 100644
--- a/mcs/class/referencesource/System.Workflow.Activities/Common/ValidationHelpers.cs
+++ b/mcs/class/referencesource/System.Workflow.Activities/Common/ValidationHelpers.cs
@@ -9,7 +9,7 @@
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Common\Shared
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Common\Shared\ValidationHelpers.cs
*********************************************************************/
namespace System.Workflow.Activities.Common
diff --git a/mcs/class/referencesource/System.Workflow.Activities/Common/Walker.cs b/mcs/class/referencesource/System.Workflow.Activities/Common/Walker.cs
index 9bd77fe7ed7..7e450ac2b2f 100644
--- a/mcs/class/referencesource/System.Workflow.Activities/Common/Walker.cs
+++ b/mcs/class/referencesource/System.Workflow.Activities/Common/Walker.cs
@@ -9,7 +9,7 @@
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Common\Shared
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Common\Shared\Walker.cs
*********************************************************************/
namespace System.Workflow.Activities.Common
diff --git a/mcs/class/referencesource/System.Workflow.Activities/Common/userdatakeys.cs b/mcs/class/referencesource/System.Workflow.Activities/Common/userdatakeys.cs
index 96aeacd9207..b2a5a7a3302 100644
--- a/mcs/class/referencesource/System.Workflow.Activities/Common/userdatakeys.cs
+++ b/mcs/class/referencesource/System.Workflow.Activities/Common/userdatakeys.cs
@@ -9,7 +9,7 @@
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Common\Shared
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Common\Shared\userdatakeys.cs
*********************************************************************/
namespace System.Workflow.Activities.Common
diff --git a/mcs/class/referencesource/System.Workflow.Activities/CorrelationValidator.cs b/mcs/class/referencesource/System.Workflow.Activities/CorrelationValidator.cs
index b7c11d49dca..8d2add81be3 100644
--- a/mcs/class/referencesource/System.Workflow.Activities/CorrelationValidator.cs
+++ b/mcs/class/referencesource/System.Workflow.Activities/CorrelationValidator.cs
@@ -840,7 +840,7 @@ namespace System.Workflow.Activities
//This is a work around for delgates of unbounded generic type. There is no support
//in file code model for these so we dont support it for now. The only way
//to detect if the DesignTimeEventInfo has EventHandler of unbounded generic type
- //is to check if we get the methods correctly here Ref Bug#17783
+ //is to check if we get the methods correctly here Ref
EventInfo eventInfo = interfaceType.GetEvent(operation);
if (eventInfo == null || eventInfo.GetAddMethod(true) == null)
{
diff --git a/mcs/class/referencesource/System.Workflow.Activities/Delay.cs b/mcs/class/referencesource/System.Workflow.Activities/Delay.cs
index be0a25e0309..aebbe257d5a 100644
--- a/mcs/class/referencesource/System.Workflow.Activities/Delay.cs
+++ b/mcs/class/referencesource/System.Workflow.Activities/Delay.cs
@@ -349,8 +349,8 @@ namespace System.Workflow.Activities
if (wfQueue != null && wfQueue.Count != 0)
wfQueue.Dequeue();
- // WinOE Bug 16929: In the case of dynamic update, if this activity is being removed,
- // we can not trace back to the root activity from "this".
+ // WinOE
+
Activity root = parentContext.Activity;
while (root.Parent != null)
root = root.Parent;
diff --git a/mcs/class/referencesource/System.Workflow.Activities/LocalService/CorrelationService.cs b/mcs/class/referencesource/System.Workflow.Activities/LocalService/CorrelationService.cs
index f5df33064b5..4d06e1f0977 100644
--- a/mcs/class/referencesource/System.Workflow.Activities/LocalService/CorrelationService.cs
+++ b/mcs/class/referencesource/System.Workflow.Activities/LocalService/CorrelationService.cs
@@ -197,13 +197,13 @@ namespace System.Workflow.Activities
IComparable initializerValue = initializerValues.Current.Value as IComparable;
object followerValue = followerValues.Current.Value;
- // Bug DevDiv2\DevDiv 552322 - http://vstfdevdiv.redmond.corp.microsoft.com:8080/DevDiv2/DevDiv/_workitems#_a=edit&id=552322
- // Reflection does not guarantee ordering, so the two collections (arrays) of
- // CorrelationProperties may not be in the same order, based on Name. So we need to check all the
- // elements of the followerProperties for the Name of the current initializerValue.
- // The collections MIGHT be in the same order. Before searching the followerProperties collection for an element with a matching
- // name, see if the current element in the initializerValues and followerValues enumerators have a matching name.
- // If they do match, just fall thru because followerValue is already set to followerValues.Current.Value;
+ //
+
+
+
+
+
+
if (!initializerValues.Current.Name.Equals(followerValues.Current.Name, StringComparison.OrdinalIgnoreCase))
{
CorrelationProperty followerProperty = null;
diff --git a/mcs/class/referencesource/System.Workflow.Activities/LocalService/FollowerQueueCreator.cs b/mcs/class/referencesource/System.Workflow.Activities/LocalService/FollowerQueueCreator.cs
index a9088872fd4..3db7b1ea94a 100644
--- a/mcs/class/referencesource/System.Workflow.Activities/LocalService/FollowerQueueCreator.cs
+++ b/mcs/class/referencesource/System.Workflow.Activities/LocalService/FollowerQueueCreator.cs
@@ -1,4 +1,4 @@
-#region Using directives
+#region Using directives
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Workflow.Activities/State.cs b/mcs/class/referencesource/System.Workflow.Activities/State.cs
index 973a37b202b..1f31bcc8c48 100644
--- a/mcs/class/referencesource/System.Workflow.Activities/State.cs
+++ b/mcs/class/referencesource/System.Workflow.Activities/State.cs
@@ -64,7 +64,7 @@ namespace System.Workflow.Activities
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
- private Activity GetDynamicActivity(Activity childActivity)
+ internal Activity GetDynamicActivity(Activity childActivity)
{
if (childActivity == null)
throw new ArgumentNullException("childActivity");
diff --git a/mcs/class/referencesource/System.Workflow.Activities/StateMachineHelpers.cs b/mcs/class/referencesource/System.Workflow.Activities/StateMachineHelpers.cs
index 38c3c07d1c3..2968da7417b 100644
--- a/mcs/class/referencesource/System.Workflow.Activities/StateMachineHelpers.cs
+++ b/mcs/class/referencesource/System.Workflow.Activities/StateMachineHelpers.cs
@@ -185,7 +185,7 @@ namespace System.Workflow.Activities
if (ContainsState(childState, stateQualifiedName))
{
- StateActivity dynamicChildState = (StateActivity)state.GetDynamicActivity(childState.QualifiedName);
+ StateActivity dynamicChildState = (StateActivity)state.GetDynamicActivity(childState);
if (dynamicChildState == null)
return null;
state = dynamicChildState;
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Activity.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Activity.cs
index b7fb7591d13..01f8711a9fb 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Activity.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Activity.cs
@@ -911,7 +911,7 @@ namespace System.Workflow.ComponentModel
}
else if (!this.DesignMode)
{
- // WinOE Bug 20584: Fix this for dynamic updates only. See bug description for details.
+ // WinOE
CompositeActivity parent = (withinThisActivityOnly ? this : this.RootActivity) as CompositeActivity;
if (parent != null)
{
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/ActivityExecutor.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/ActivityExecutor.cs
index 4ee980c8ce3..b58bbb630ba 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/ActivityExecutor.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/ActivityExecutor.cs
@@ -127,9 +127,9 @@ namespace System.Workflow.ComponentModel
compositeActivity.OnWorkflowChangesCompleted(executionContext);
}
- // Refer Bug 9339 (VB Compilation Failure - Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.)
- //An unhandled exception of type 'System.TypeLoadException' occurred
- // "Signature of the body and declaration in a method implementation do not match"
+ // Refer
+
+
protected override ActivityExecutionStatus Execute(T activity, ActivityExecutionContext executionContext)
{
return base.Execute(activity, executionContext);
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/TypeSystem/DesignTimeType.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/TypeSystem/DesignTimeType.cs
index 32eec08bf71..b60ee98da4f 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/TypeSystem/DesignTimeType.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/TypeSystem/DesignTimeType.cs
@@ -1115,15 +1115,15 @@ namespace System.Workflow.ComponentModel.Compiler
return memberCollection;
}
- // CFx bug 461
- // The code dom being generated by VsCodeDomParser.cs does not
- // add default constructors for classes unless they
- // exist in the source code. Unfortunately, this cannot be easily
- // fixed in the CodeDomParser because the code dom returned by that
- // class is expected to kept in [....] with the real source code.
- // So we cannot "fabricate" a default constructor there without
- // breaking lots of assumptions elsewhere in the code.
- // Instead, we add a default constructor here, if necessary.
+ // CFx
+
+
+
+
+
+
+
+
private List<ConstructorInfo> GetCodeDomConstructors()
{
List<ConstructorInfo> constructors = GetCodeDomMembers<ConstructorInfo>();
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/TypeSystem/TypeProvider.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/TypeSystem/TypeProvider.cs
index 95e9dd8b725..1ea88cabec1 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/TypeSystem/TypeProvider.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/TypeSystem/TypeProvider.cs
@@ -463,12 +463,12 @@ namespace System.Workflow.ComponentModel.Compiler
}
// replace the System.Type with RTTypeWrapper for generic types.
- // WinOE Bug 16560: The type provider may be used at runtime. No RTTypeWrapper should ever be returned
- // at runtime.
- // At design time, we need to wrap all generic types even if the parameter types are not
- // design time types. This is because our parsing function creates a base generic type before it binds
- // all the parameters. The RTTypeWrapper.MakeGenericType override will then take care of binding to
- // design time types.
+ // WinOE
+
+
+
+
+
if (this.designTimeTypes != null && this.designTimeTypes.Count > 0 && returnType.Assembly != null && returnType.IsGenericTypeDefinition)
{
if (this.hashOfRTTypes.Contains(returnType))
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/XomlCompiler.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/XomlCompiler.cs
index 4a826463991..7ad8751fd37 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/XomlCompiler.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/XomlCompiler.cs
@@ -484,6 +484,9 @@ namespace System.Workflow.ComponentModel.Compiler
if (files == null)
throw new ArgumentNullException("files");
+ string createdDirectoryName = null;
+ string createdTempFileName = null;
+
AppDomainSetup setup = AppDomain.CurrentDomain.SetupInformation;
setup.LoaderOptimization = LoaderOptimization.MultiDomainHost;
AppDomain compilerDomain = AppDomain.CreateDomain("CompilerDomain", null, setup);
@@ -499,19 +502,33 @@ namespace System.Workflow.ComponentModel.Compiler
parameters.GenerateInMemory = false;
if (string.IsNullOrEmpty(parameters.OutputAssembly))
- parameters.OutputAssembly = Path.GetTempFileName() + ".dll";
+ {
+ // We need to remember the filename generated by Path.GetTempFileName so we can clean it up.
+ createdTempFileName = Path.GetTempFileName();
+ parameters.OutputAssembly = createdTempFileName + ".dll";
+ }
else
{
+ int tries = 0;
while (true)
{
try
{
- DirectoryInfo info = Directory.CreateDirectory(Path.GetTempPath() + "\\" + Guid.NewGuid());
+ tries++;
+ createdDirectoryName = Path.GetTempPath() + "\\" + Guid.NewGuid();
+ DirectoryInfo info = Directory.CreateDirectory(createdDirectoryName);
parameters.OutputAssembly = info.FullName + "\\" + parameters.OutputAssembly;
break;
}
catch
{
+ // If we have tried 10 times without success, give up. Something must be wrong
+ // with what gets returned by GetTempPath or we have exceeded max_path by appending
+ // the GUID.
+ if (tries >= 10)
+ {
+ throw;
+ }
}
}
}
@@ -524,15 +541,6 @@ namespace System.Workflow.ComponentModel.Compiler
{
results.CompiledAssembly = Assembly.Load(File.ReadAllBytes(results.PathToAssembly));
results.PathToAssembly = null;
-
- // Delete the file and directory.
- try
- {
- File.Delete(parameters.OutputAssembly);
- Directory.Delete(Path.GetDirectoryName(parameters.OutputAssembly), true);
- }
- catch
- { }
}
return results;
@@ -555,8 +563,20 @@ namespace System.Workflow.ComponentModel.Compiler
{
try
{
+ // There will always be an outputAssemblyName to delete.
File.Delete(outputAssembly);
- Directory.Delete(Path.GetDirectoryName(outputAssembly), true);
+
+ // If we created a temp file name with Path.GetTempFileName, we need to delete it here.
+ if (createdTempFileName != null)
+ {
+ File.Delete(createdTempFileName);
+ }
+
+ // If we created a directory, delete it.
+ if (createdDirectoryName != null)
+ {
+ Directory.Delete(createdDirectoryName, true);
+ }
}
catch
{ }
@@ -654,16 +674,17 @@ namespace System.Workflow.ComponentModel.Compiler
TempFileCollection intermediateTempFiles = null;
string localAssemblyPath = string.Empty;
+ string createdDirectoryName = null;
try
{
using (WorkflowCompilationContext.CreateScope(serviceContainer, parameters))
{
- parameters.LocalAssembly = GenerateLocalAssembly(files, codeFiles, parameters, results, out intermediateTempFiles, out localAssemblyPath);
+ parameters.LocalAssembly = GenerateLocalAssembly(files, codeFiles, parameters, results, out intermediateTempFiles, out localAssemblyPath, out createdDirectoryName);
if (parameters.LocalAssembly != null)
{
- // WinOE Bug 17591: we must set the local assembly here,
- // otherwise, the resolver won't be able to resolve custom types correctly.
+ // WinOE
+
resolver.SetLocalAssembly(parameters.LocalAssembly);
// Work around HERE!!!
@@ -685,10 +706,6 @@ namespace System.Workflow.ComponentModel.Compiler
// Delate the temp files.
if (intermediateTempFiles != null && parameters.TempFiles.KeepFiles == false)
{
- string tempAssemblyDirectory = string.Empty;
- if (File.Exists(localAssemblyPath))
- tempAssemblyDirectory = Path.GetDirectoryName(localAssemblyPath);
-
foreach (string file in intermediateTempFiles)
{
try
@@ -702,8 +719,12 @@ namespace System.Workflow.ComponentModel.Compiler
try
{
- if (!string.IsNullOrEmpty(tempAssemblyDirectory))
- Directory.Delete(tempAssemblyDirectory, true);
+ // GenerateLocalAssembly may have created a directory, so let's try to delete it
+ // We can't just delete Path.GetDirectoryName(localAssemblyPath) because it might be the Temp directory.
+ if (createdDirectoryName != null)
+ {
+ Directory.Delete(createdDirectoryName, true);
+ }
}
catch
{
@@ -764,9 +785,10 @@ namespace System.Workflow.ComponentModel.Compiler
return validationErrors;
}
- private Assembly GenerateLocalAssembly(string[] files, string[] codeFiles, WorkflowCompilerParameters parameters, WorkflowCompilerResults results, out TempFileCollection tempFiles2, out string localAssemblyPath)
+ private Assembly GenerateLocalAssembly(string[] files, string[] codeFiles, WorkflowCompilerParameters parameters, WorkflowCompilerResults results, out TempFileCollection tempFiles2, out string localAssemblyPath, out string createdDirectoryName)
{
localAssemblyPath = string.Empty;
+ createdDirectoryName = null;
tempFiles2 = null;
// Generate code for the markup files.
@@ -796,16 +818,38 @@ namespace System.Workflow.ComponentModel.Compiler
{
try
{
+ if (Directory.Exists(tempAssemblyDirectory))
+ {
+ break;
+ }
Directory.CreateDirectory(tempAssemblyDirectory);
+ createdDirectoryName = tempAssemblyDirectory;
break;
}
catch
{
+ // If we have tried 10 times without success, give up. Something must be wrong
+ // with what gets returned by TempFiles.BasePath
+ if (postfix >= 10)
+ {
+ throw;
+ }
tempAssemblyDirectory = clonedParams.TempFiles.BasePath + postfix++;
}
+
}
localAssemblyPath = clonedParams.OutputAssembly = tempAssemblyDirectory + "\\" + Path.GetFileName(clonedParams.OutputAssembly);
clonedParams.TempFiles.AddFile(localAssemblyPath, true);
+
+ // Working around the fact that when the OutputAssembly is specified, the
+ // codeDomProvider.CompileAssemblyFromFile call below does NOT add the pdb file
+ // to the clonedParams.TempFiles collection. Instead, it looks as though it
+ // does a clonedParams.TempFiles.BasePath.AddExtension("pdb"), which is a file
+ // that doesn't actually get created.
+ // We need to add the pdb file to the clonedParameters.TempFiles collection so that
+ // it gets deleted, even in the case where we didn't end up creating the tempAssemblyDirectory above.
+ string pdbFilename = Path.GetFileNameWithoutExtension(localAssemblyPath) + ".pdb";
+ clonedParams.TempFiles.AddFile(Path.GetDirectoryName(localAssemblyPath) + "\\" + pdbFilename, true);
}
// Explictily ignore warnings (in case the user set this property in the project options).
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/XomlCompilerHelpers.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/XomlCompilerHelpers.cs
index ceb085c2822..d9e3a1d7ad6 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/XomlCompilerHelpers.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Compiler/XomlCompilerHelpers.cs
@@ -104,7 +104,7 @@ namespace System.Workflow.ComponentModel.Compiler
}
// In case of VB, if the ctor is autogenerated the PDB will not have symbol
- // information. Use InitializeComponent method as the fallback. Bug 19085.
+ // information. Use InitializeComponent method as the fallback.
if (String.IsNullOrEmpty(fileName))
{
MethodInfo initializeComponent = type.GetMethod("InitializeComponent", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, null, Type.EmptyTypes, null);
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/DependencyProperty.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/DependencyProperty.cs
index b4bc498aa11..16fa06d5333 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/DependencyProperty.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/DependencyProperty.cs
@@ -178,7 +178,7 @@ namespace System.Workflow.ComponentModel
FieldInfo fieldInfo = null;
bool isEvent = (typeof(System.Delegate).IsAssignableFrom(propertyType) && (defaultMetadata == null || (defaultMetadata.Options & DependencyPropertyOptions.DelegateProperty) == 0));
- // WinOE Bug 13807: events can not be meta properties.
+ // WinOE
if (isEvent && defaultMetadata != null && defaultMetadata.IsMetaProperty)
throw new ArgumentException(SR.GetString(SR.Error_DPAddHandlerMetaProperty), "defaultMetadata");
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/CommandSet.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/CommandSet.cs
index d621aec247d..27a55ac9886 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/CommandSet.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/CommandSet.cs
@@ -80,7 +80,7 @@ namespace System.Workflow.ComponentModel.Design
// Properties
new CommandSetItem(new EventHandler(OnStatusAlways), new EventHandler(OnMenuDesignerProperties), WorkflowMenuCommands.DesignerProperties),
- // IMPORTANT: [....] does not handle this command, so VS.NET sends it to solution explorer
+ // IMPORTANT: Microsoft does not handle this command, so VS.NET sends it to solution explorer
// window, which enables this meu item on the for the current file node
new CommandSetItem(new EventHandler(OnStatusAlways), new EventHandler(OnViewCode), new CommandID(StandardCommands.Cut.Guid, 333)),
@@ -563,7 +563,7 @@ namespace System.Workflow.ComponentModel.Design
WorkflowView view = rootDesigner.GetView(ViewTechnology.Default) as WorkflowView;
if (view != null)
{
- //because the some key presses are not coming into the [....] OnKeyDown
+ //because the some key presses are not coming into the Microsoft OnKeyDown
//we need to do this work around to manually send the keypress into the designer
KeyEventArgs eventArgs = new KeyEventArgs(key);
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/CompositeActivityDesigner.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/CompositeActivityDesigner.cs
index 1b29bfee5c9..bbbb984c106 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/CompositeActivityDesigner.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/CompositeActivityDesigner.cs
@@ -764,7 +764,7 @@ namespace System.Workflow.ComponentModel.Design
return false;
ActivityDesigner designerToInsert = null;
-#pragma warning disable 56506//bug in presharp, activity has already been checked for null value
+#pragma warning disable 56506//
if (activity.Site != null)
{
//get an existing designer
@@ -787,7 +787,7 @@ namespace System.Workflow.ComponentModel.Design
activity.UserData[typeof(ActivityDesigner)] = designerToInsert;
}
}
-#pragma warning restore 56506//bug in presharp
+#pragma warning restore 56506//
if (designerToInsert == null)
return false;
@@ -1024,8 +1024,8 @@ namespace System.Workflow.ComponentModel.Design
//For details look at,
//\\cpvsbuild\drops\whidbey\pd6\raw\40903.19\sources\ndp\fx\src\Designer\Host\UndoEngine.cs
//OnComponentRemoving function which retains the references we hold to the parent
- //This bug can be reproed by deleting a compositeactivity from design surface and then doing an undo
- //VSWhidbey #312230
+ //This
+
activity.SetParent(null);
if (activity is CompositeActivity)
{
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/CustomActivityDesigner.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/CustomActivityDesigner.cs
index f77c8136946..937d5342202 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/CustomActivityDesigner.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/CustomActivityDesigner.cs
@@ -725,14 +725,14 @@
private string category;
private string description;
private DesignerSerializationVisibility designerSerializationVisibility = DesignerSerializationVisibility.Visible;
- // NOTE: we don't write the ValidationOption attribute anymore (WinOE Bug 17398). We have removed our property creation
- // dialog in beta1. Now this code is only used for property promotion. If the promoted property is a meta property,
- // it can not be bindable so no promotion is not allowed. If the property is an instance property, this attribute is ignored.
- // There is no reason for writing out this attribute anymore.We just remove it from property promotion all together.
- // NOTE II: for the same reason that this code is only used for promotion, we don't write out meta properties anymore.
- // We had customized the CodeDomSerializer.Deserialize to recognize meta properties by inspecting the field init expression,
- // which is no long needed. If we were to bring this functionality back in the future, sample code can be found
- // from the file history in Source Depot.
+ // NOTE: we don't write the ValidationOption attribute anymore (WinOE
+
+
+
+
+
+
+
private bool isEvent = false;
private bool browseable = true;
private bool hidden = false;
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/Dialogs/ThemeConfigurationDialog.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/Dialogs/ThemeConfigurationDialog.cs
index aa9a5ced955..ad60d2bfc19 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/Dialogs/ThemeConfigurationDialog.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/Dialogs/ThemeConfigurationDialog.cs
@@ -25,7 +25,7 @@ namespace System.Workflow.ComponentModel.Design
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
public sealed class ThemeConfigurationDialog : System.Windows.Forms.Form
{
- #region [....] Generated Members
+ #region Microsoft Generated Members
private System.Windows.Forms.Button button3;
private System.Windows.Forms.TreeView designerTreeView;
private System.Windows.Forms.Label themeNameLabel;
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/Dialogs/TypeBrowserDialog.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/Dialogs/TypeBrowserDialog.cs
index 9ee70afdcbd..a73a938fabf 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/Dialogs/TypeBrowserDialog.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/Dialogs/TypeBrowserDialog.cs
@@ -1230,7 +1230,7 @@ namespace System.Workflow.ComponentModel.Design
catch (NullReferenceException)
{
// Work around: for some reason RuntimeType.Namespace throws exception for array of generic
- // Remove the try-catch when the bug is fixed.
+ // Remove the try-catch when the
}
keywords[1] = "{" + keywords[1] + "}";
keywords[2] = (selectedType.Assembly != null) ? selectedType.Assembly.GetName().FullName : "<Current Project>";
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/Dialogs/WorkflowPageSetupDialog.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/Dialogs/WorkflowPageSetupDialog.cs
index 57f8cb537bd..0c0d1897ee4 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/Dialogs/WorkflowPageSetupDialog.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/Dialogs/WorkflowPageSetupDialog.cs
@@ -14,7 +14,7 @@ namespace System.Workflow.ComponentModel.Design
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
public sealed class WorkflowPageSetupDialog : System.Windows.Forms.Form
{
- #region [....] Desiger Generated Members
+ #region Microsoft Desiger Generated Members
private System.ComponentModel.Container components = null;
private System.Windows.Forms.TabControl tabs;
private System.Windows.Forms.PictureBox landscapePicture;
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/MenuCommands.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/MenuCommands.cs
index 9d07b2e1026..c8701dd8fdc 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/MenuCommands.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/MenuCommands.cs
@@ -60,7 +60,7 @@ namespace System.Workflow.ComponentModel.Design
private const int cmdidWOEShowAll = 0x3107;
public const int FirstZoomCommand = cmdidWOEZoom400; //the first and last zoom commands
- public const int LastZoomCommand = cmdidWOEShowAll; //should be in [....] with the \private\Core\Tools\OrchestrationDesignerUI\PkgCmdID.h
+ public const int LastZoomCommand = cmdidWOEShowAll; //should be in sync with the \private\Core\Tools\OrchestrationDesignerUI\PkgCmdID.h
// page layout
private const int cmdidDefaultPage = 0x3110;
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/ReferenceService.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/ReferenceService.cs
index 14e64a3aebc..a2ca29c6aaa 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/ReferenceService.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/ReferenceService.cs
@@ -64,7 +64,7 @@ namespace System.Workflow.ComponentModel.Design
{
// If the references are null, create them for the first time and connect
// up our events to listen to changes to the container. Otherwise, check to
- // see if the added or removed lists contain anything for us to [....] up.
+ // see if the added or removed lists contain anything for us to sync up.
//
if (this.references == null)
{
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/StructuredCompositeActivityDesigner.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/StructuredCompositeActivityDesigner.cs
index 0decc066f5e..ed7ed08ff4e 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/StructuredCompositeActivityDesigner.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/StructuredCompositeActivityDesigner.cs
@@ -150,7 +150,7 @@ namespace System.Workflow.ComponentModel.Design
//activities with errors we want to reveal these activities
DesignerHelpers.RefreshDesignerActions(Activity.Site);
- //Keep the dynamic action and designer verbs in [....]
+ //Keep the dynamic action and designer verbs in sync
RefreshDesignerVerbs();
}
}
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/WorkflowView.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/WorkflowView.cs
index 1b8a6df8015..6a3dac250f9 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/WorkflowView.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/Design/WorkflowView.cs
@@ -181,7 +181,7 @@ namespace System.Workflow.ComponentModel.Design
//Initialize the tooltip shown
this.workflowToolTip = new WorkflowToolTip(this);
- //[....] the global theme change event, which is fired by the theme infrastructure for theme change
+ //Sync the global theme change event, which is fired by the theme infrastructure for theme change
WorkflowTheme.ThemeChanged += new EventHandler(OnThemeChange);
//Create the core message filters
@@ -1497,7 +1497,7 @@ namespace System.Workflow.ComponentModel.Design
//To enable this functionality please note that selection change is not a good event as it will get
//fired in multiple cases, instead we should add a event in extended ui service which will do this and move
//the following code in the event handler of that event
- //Ref Bug#3925
+ //Ref
if (RootDesigner != null && RootDesigner.Activity != null)
{
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/RuleDeclaration.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/RuleDeclaration.cs
index 5a398903d92..294f5c18c76 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/RuleDeclaration.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/RuleDeclaration.cs
@@ -10,7 +10,7 @@ namespace System.Workflow.ComponentModel
using System.ComponentModel.Design.Serialization;
using System.Reflection;
- //
+ //TODO: remove this inheritence, when event binding service line UseMethod and FreeMethod methods are fixed.
[DesignerSerializer(typeof(WorkflowMarkupSerializer), typeof(WorkflowMarkupSerializer))]
[DesignerSerializer(typeof(DependencyObjectCodeDomSerializer), typeof(CodeDomSerializer))]
[TypeConverter(typeof(ConditionTypeConverter))]
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/ScheduleChanges.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/ScheduleChanges.cs
index efc369bad0a..4f767edf08a 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/ScheduleChanges.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/AuthoringOM/ScheduleChanges.cs
@@ -201,8 +201,8 @@ namespace System.Workflow.ComponentModel
{
foreach (Activity contextActivity in contextActivities)
{
- // WinOE Bug 16903: Ask the contextActivity itself whether or not it can be removed.
- // An activity can not be removed if it's in the executing mode.
+ // WinOE
+
if (changeAction is RemovedActivityAction &&
contextActivity.DottedPath == ((RemovedActivityAction)changeAction).OriginalRemovedActivity.DottedPath)
validationErrors.AddRange(changeAction.ValidateChanges(contextActivity));
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/AssemblyRef.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/AssemblyRef.cs
index d46bd8d66f8..b3718a2ed6d 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/AssemblyRef.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/AssemblyRef.cs
@@ -10,7 +10,7 @@ using System;
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Activities\Common
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Activities\Common\AssemblyRef.cs
*********************************************************************/
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/BasePropertyDescriptor.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/BasePropertyDescriptor.cs
index edb21a0ab4c..532c3d76d0e 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/BasePropertyDescriptor.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/BasePropertyDescriptor.cs
@@ -21,7 +21,7 @@ using System.Workflow.ComponentModel.Compiler;
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Activities\Common
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Activities\Common\BasePropertyDescriptor.cs
*********************************************************************/
@@ -413,8 +413,8 @@ namespace System.Workflow.ComponentModel.Design
{
if (this.avoidDuplication)
{
- // WinOE Bug 10442: should only prefix with "(Parameter)" if there is and existing
- // member of the same name.
+ // WinOE
+
return GetParameterPropertyName(this.componentType, base.Name);
}
else
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/CompModHelpers.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/CompModHelpers.cs
index 2183def5736..1e5a102e278 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/CompModHelpers.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/CompModHelpers.cs
@@ -9,7 +9,7 @@
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Activities\Common
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Activities\Common\CompModHelpers.cs
*********************************************************************/
namespace System.Workflow.ComponentModel.Design
@@ -1167,10 +1167,10 @@ namespace System.Workflow.ComponentModel.Design
Guid parentContextGuid = GetRuntimeContextGuid(parentContextActivity);
while (activity == null && declaringContextGuid != currentContextGuid)
{
- // WinOE Bug 17931: if the context id is different, it means that this activity is running in a child context (such as
- // the children of a replicator or a while). we need to resolve the activity within the child context
- // first. If we go up to the declaring activity, we'd be finding children of the template instead of
- // the actual running instance.
+ // WinOE
+
+
+
while (parentContextActivity != null && parentContextGuid == currentContextGuid)
{
currentContextActivity = parentContextActivity;
@@ -1393,10 +1393,10 @@ namespace System.Workflow.ComponentModel.Design
}
#endregion
- // This class has been added as a fix for bug 18214 in order to
- // create an independent code-path for debugger's use of ParseActivity functionality.
- // The GetActivity method of this class uses QualifiedName instead of Name property
- // for finding activities.
+ // This class has been added as a fix for
+
+
+
internal static class DebuggerHelpers
{
[SuppressMessage("Microsoft.Globalization", "CA1307:SpecifyStringComparison", Justification = "IndexOf(\".\") not a security issue.")]
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/CompilerHelpers.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/CompilerHelpers.cs
index c6dceb5b0de..437248e7ea3 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/CompilerHelpers.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/CompilerHelpers.cs
@@ -9,7 +9,7 @@
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Activities\Common
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Activities\Common\CompilerHelpers.cs
*********************************************************************/
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/DelegateTypeInfo.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/DelegateTypeInfo.cs
index 01603ca7446..3539c96edfb 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/DelegateTypeInfo.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/DelegateTypeInfo.cs
@@ -9,7 +9,7 @@
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Activities\Common
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Activities\Common\DelegateTypeInfo.cs
*********************************************************************/
namespace System.Workflow.ComponentModel
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/NativeMethods.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/NativeMethods.cs
index f6e921b5fc0..cfd5e0e814a 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/NativeMethods.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/NativeMethods.cs
@@ -9,7 +9,7 @@
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Activities\Common
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Activities\Common\NativeMethods.cs
*********************************************************************/
namespace System.Workflow.Interop
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/TypeSystemHelpers.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/TypeSystemHelpers.cs
index 9b53df5eee3..896ddf1cd9f 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/TypeSystemHelpers.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/TypeSystemHelpers.cs
@@ -9,7 +9,7 @@
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Activities\Common
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Activities\Common\TypeSystemHelpers.cs
*********************************************************************/
namespace System.Workflow.ComponentModel.Compiler
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/ValidationHelpers.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/ValidationHelpers.cs
index a93a3d061f9..6f80c605636 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/ValidationHelpers.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/ValidationHelpers.cs
@@ -9,7 +9,7 @@
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Activities\Common
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Activities\Common\ValidationHelpers.cs
*********************************************************************/
namespace System.Workflow.ComponentModel.Compiler
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/Walker.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/Walker.cs
index e47e60f1c63..1a8c8858e17 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/Walker.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/Walker.cs
@@ -9,7 +9,7 @@
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Activities\Common
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Activities\Common\Walker.cs
*********************************************************************/
namespace System.Workflow.ComponentModel
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/XomlSerializationHelpers.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/XomlSerializationHelpers.cs
index 8407e6098fe..90a6b6c5e14 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/XomlSerializationHelpers.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/XomlSerializationHelpers.cs
@@ -207,11 +207,11 @@ namespace System.Workflow.ComponentModel.Serialization
continue;
if (codeDomProvider.IsValidIdentifier(codeDomSerializationManager.GetName(activity)))
{
- // WinOE Bug 14561. This is to fix a performance problem. When an activity is added to the activity
- // tree at the runtime, it's much faster if the ID of the activity is already set. The code that
- // the CodeDomSerializer generates will add the activity first before it sets the ID for the child
- // activity. We can change that order by always serializing the children first. Therefore, we
- // construct a list where we guarantee that the child will be serialized before its parent.
+ // WinOE
+
+
+
+
allActivities.Insert(0, activity);
}
else
diff --git a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/userdatakeys.cs b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/userdatakeys.cs
index 9812b64d268..3afb84b9600 100644
--- a/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/userdatakeys.cs
+++ b/mcs/class/referencesource/System.Workflow.ComponentModel/Shared/userdatakeys.cs
@@ -9,7 +9,7 @@
/*********************************************************************
* NOTE: A copy of this file exists at: WF\Activities\Common
- * The two files must be kept in [....]. Any change made here must also
+ * The two files must be kept in sync. Any change made here must also
* be made to WF\Activities\Common\UserDataKeys.cs
*********************************************************************/
namespace System.Workflow.ComponentModel
diff --git a/mcs/class/referencesource/System.Workflow.Runtime/Common/Shared/DigestComparer.cs b/mcs/class/referencesource/System.Workflow.Runtime/Common/Shared/DigestComparer.cs
new file mode 100644
index 00000000000..d3442b86dbe
--- /dev/null
+++ b/mcs/class/referencesource/System.Workflow.Runtime/Common/Shared/DigestComparer.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Diagnostics;
+using System.Collections.Generic;
+using System.Globalization;
+
+internal class DigestComparer : IComparer<byte[]>, IEqualityComparer<byte[]>
+{
+ int IComparer<byte[]>.Compare(byte[] digest1, byte[] digest2)
+ {
+ Debug.Assert(digest1.Length == 16 && digest2.Length == 16, "Invalid digest!");
+
+ for (int index = 0; index < 16; index++)
+ if (digest1[index] != digest2[index])
+ return (digest1[index] < digest2[index]) ? -1 : 1;
+
+ return 0;
+ }
+
+ bool IEqualityComparer<byte[]>.Equals(byte[] digest1, byte[] digest2)
+ {
+ Debug.Assert(digest1.Length == 16 && digest2.Length == 16, "Invalid digest!");
+
+ for (int index = 0; index < 16; index++)
+ if (digest1[index] != digest2[index])
+ return false;
+
+ return true;
+ }
+
+ int IEqualityComparer<byte[]>.GetHashCode(byte[] checksumBytes)
+ {
+ return GetMD5DigestString(checksumBytes).GetHashCode();
+ }
+
+ internal static string GetMD5DigestString(byte[] md5Digest)
+ {
+ return string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}", md5Digest[0].ToString("X2", CultureInfo.InvariantCulture), md5Digest[1].ToString("X2", CultureInfo.InvariantCulture), md5Digest[2].ToString("X2", CultureInfo.InvariantCulture), md5Digest[3].ToString("X2", CultureInfo.InvariantCulture), md5Digest[4].ToString("X2", CultureInfo.InvariantCulture), md5Digest[5].ToString("X2", CultureInfo.InvariantCulture), md5Digest[6].ToString("X2", CultureInfo.InvariantCulture), md5Digest[7].ToString("X2", CultureInfo.InvariantCulture), md5Digest[8].ToString("X2", CultureInfo.InvariantCulture), md5Digest[9].ToString("X2", CultureInfo.InvariantCulture), md5Digest[10].ToString("X2", CultureInfo.InvariantCulture), md5Digest[11].ToString("X2", CultureInfo.InvariantCulture), md5Digest[12].ToString("X2", CultureInfo.InvariantCulture), md5Digest[13].ToString("X2", CultureInfo.InvariantCulture), md5Digest[14].ToString("X2", CultureInfo.InvariantCulture), md5Digest[15].ToString("X2", CultureInfo.InvariantCulture));
+ }
+}
diff --git a/mcs/class/referencesource/System.Workflow.Runtime/DebugEngine/DebugController.cs b/mcs/class/referencesource/System.Workflow.Runtime/DebugEngine/DebugController.cs
index 3515b4383e3..3a040d71d3f 100644
--- a/mcs/class/referencesource/System.Workflow.Runtime/DebugEngine/DebugController.cs
+++ b/mcs/class/referencesource/System.Workflow.Runtime/DebugEngine/DebugController.cs
@@ -880,7 +880,7 @@ namespace System.Workflow.Runtime.DebugEngine
#region Helper methods and properties
// Callers of this method should acquire the executor lock only if they
- // are not being called in the runtime thread.(bug 17231).
+ // are not being called in the runtime thread.(
private void LoadExistingInstance(WorkflowInstance instance, bool attaching)
{
WorkflowExecutor executor = instance.GetWorkflowResourceUNSAFE();
diff --git a/mcs/class/referencesource/System.Workflow.Runtime/DebugEngine/DebugControllerThread.cs b/mcs/class/referencesource/System.Workflow.Runtime/DebugEngine/DebugControllerThread.cs
index c540688abed..14e2986fca8 100644
--- a/mcs/class/referencesource/System.Workflow.Runtime/DebugEngine/DebugControllerThread.cs
+++ b/mcs/class/referencesource/System.Workflow.Runtime/DebugEngine/DebugControllerThread.cs
@@ -159,8 +159,8 @@ namespace System.Workflow.Runtime.DebugEngine
{
try
{
- // Expression eval on x64 does not work (bug 18143) so
- // don't let the thread spin.
+ // Expression eval on x64 does not work (
+
if (IntPtr.Size == 8)
{
Thread.Sleep(Timeout.Infinite);
diff --git a/mcs/class/referencesource/System.Workflow.Runtime/ExecutorLocksHeldException.cs b/mcs/class/referencesource/System.Workflow.Runtime/ExecutorLocksHeldException.cs
index ba6ece5f1ec..2744a3bf95a 100644
--- a/mcs/class/referencesource/System.Workflow.Runtime/ExecutorLocksHeldException.cs
+++ b/mcs/class/referencesource/System.Workflow.Runtime/ExecutorLocksHeldException.cs
@@ -10,7 +10,7 @@
// REVISIONS
// Date Ver By Remarks
// ~~~~~~~~~~ ~~~ ~~~~~~~~ ~~~~~~~~~~~~~~
-// 03/08/01 1.0 [....] Created.
+// 03/08/01 1.0 Microsoft Created.
// ****************************************************************************
using System;
using System.Runtime.Serialization;
diff --git a/mcs/class/referencesource/System.Workflow.Runtime/Hosting/SqlWorkflowPersistenceService.cs b/mcs/class/referencesource/System.Workflow.Runtime/Hosting/SqlWorkflowPersistenceService.cs
index 4327f7bd424..a02a570083b 100644
--- a/mcs/class/referencesource/System.Workflow.Runtime/Hosting/SqlWorkflowPersistenceService.cs
+++ b/mcs/class/referencesource/System.Workflow.Runtime/Hosting/SqlWorkflowPersistenceService.cs
@@ -453,7 +453,7 @@ namespace System.Workflow.Runtime.Hosting
WorkflowTrace.Host.TraceEvent(TraceEventType.Information, 0, "SqlWorkflowPersistenceService.RetrieveInstanceState retrying.");
continue;
}
- else if (e is RetryReadException) // ### hardcoded retry to work around sql ADM64 read bug ###
+ else if (e is RetryReadException) // ### hardcoded retry to work around sql ADM64 read
{
count++;
if (count < 10)
@@ -510,7 +510,7 @@ namespace System.Workflow.Runtime.Hosting
WorkflowTrace.Host.TraceEvent(TraceEventType.Information, 0, "SqlWorkflowPersistenceService.RetrieveCompletedScope retrying.");
continue;
}
- else if (e is RetryReadException) // ### hardcoded retry to work around sql ADM64 read bug ###
+ else if (e is RetryReadException) // ### hardcoded retry to work around sql ADM64 read
{
count++;
if (count < 10)
@@ -617,7 +617,7 @@ namespace System.Workflow.Runtime.Hosting
{
WorkflowTrace.Host.TraceEvent(TraceEventType.Information, 0, "SqlWorkflowPersistenceService.RetrieveStateFromDB Failed to read results {0}", instanceId);
}
- else if ((int)resultParam.Value > 0) // found results but failed to read - sql bug - retry the query
+ else if ((int)resultParam.Value > 0) // found results but failed to read - sql
{
WorkflowTrace.Host.TraceEvent(TraceEventType.Error, 0, "SqlWorkflowPersistenceService.RetrieveStateFromDB Failed to read results {1}, @result == {0}", (int)resultParam.Value, instanceId);
throw new RetryReadException();
diff --git a/mcs/class/referencesource/System.Workflow.Runtime/Hosting/WorkflowWebHostingModule.cs b/mcs/class/referencesource/System.Workflow.Runtime/Hosting/WorkflowWebHostingModule.cs
index a5155c762e3..aa4a2675435 100644
--- a/mcs/class/referencesource/System.Workflow.Runtime/Hosting/WorkflowWebHostingModule.cs
+++ b/mcs/class/referencesource/System.Workflow.Runtime/Hosting/WorkflowWebHostingModule.cs
@@ -10,7 +10,7 @@
// REVISIONS
// Date Ver By Remarks
// ~~~~~~~~~~ ~~~ ~~~~~~~~ ~~~~~~~~~~~~~~
-// 02/22/05 1.0 [....] Implementation.
+// 02/22/05 1.0 Microsoft Implementation.
* ****************************************************************************/
#region Using directives
diff --git a/mcs/class/referencesource/System.Workflow.Runtime/ISupportInterop.cs b/mcs/class/referencesource/System.Workflow.Runtime/ISupportInterop.cs
index c1764dbe478..4bdc14443cf 100644
--- a/mcs/class/referencesource/System.Workflow.Runtime/ISupportInterop.cs
+++ b/mcs/class/referencesource/System.Workflow.Runtime/ISupportInterop.cs
@@ -11,4 +11,4 @@ namespace System.Workflow.Runtime
{
WorkBatchCollection BatchCollection { get; }
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Workflow.Runtime/Scheduler.cs b/mcs/class/referencesource/System.Workflow.Runtime/Scheduler.cs
index 383e5442eb2..0952d2bc1fe 100644
--- a/mcs/class/referencesource/System.Workflow.Runtime/Scheduler.cs
+++ b/mcs/class/referencesource/System.Workflow.Runtime/Scheduler.cs
@@ -158,7 +158,7 @@ namespace System.Workflow.Runtime
transactionalProperties = (TransactionalProperties)atomicActivity.GetValue(WorkflowExecutor.TransactionalPropertiesProperty);
// If we've aborted for any reason stop now!
// If we attempt to enter a new TransactionScope the com+ context will get corrupted
- // See windows se bug 137267
+ // See windows se
if (!WorkflowExecutor.CheckAndProcessTransactionAborted(transactionalProperties))
{
if (transactionalProperties.TransactionScope == null)
diff --git a/mcs/class/referencesource/System.Workflow.Runtime/System/Activities/Statements/Interop.cs b/mcs/class/referencesource/System.Workflow.Runtime/System/Activities/Statements/Interop.cs
index c45bac9f2ef..e82732e73c9 100644
--- a/mcs/class/referencesource/System.Workflow.Runtime/System/Activities/Statements/Interop.cs
+++ b/mcs/class/referencesource/System.Workflow.Runtime/System/Activities/Statements/Interop.cs
@@ -1453,7 +1453,7 @@ namespace System.Activities.Statements
}
}
- //This needs to be in [....] with the table in the spec
+ //This needs to be in sync with the table in the spec
//We use this internally to keep a hashset of validation data
enum InteropValidationEnum
{
diff --git a/mcs/class/referencesource/System.Workflow.Runtime/TransactionalProperties.cs b/mcs/class/referencesource/System.Workflow.Runtime/TransactionalProperties.cs
index f79e4c2dfaf..0f9e27155db 100644
--- a/mcs/class/referencesource/System.Workflow.Runtime/TransactionalProperties.cs
+++ b/mcs/class/referencesource/System.Workflow.Runtime/TransactionalProperties.cs
@@ -38,4 +38,4 @@ namespace System.Workflow.Runtime
}
#endregion TransactionalProperties class
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Workflow.Runtime/WorkflowEventArgs.cs b/mcs/class/referencesource/System.Workflow.Runtime/WorkflowEventArgs.cs
index 9e811599a58..a81dd7b359a 100644
--- a/mcs/class/referencesource/System.Workflow.Runtime/WorkflowEventArgs.cs
+++ b/mcs/class/referencesource/System.Workflow.Runtime/WorkflowEventArgs.cs
@@ -71,7 +71,7 @@ namespace System.Workflow.Runtime
if (this._workflowDefinition == null)
{
// Clone the original definition after locking the
- // definition's [....] object which was passed in
+ // definition's sync object which was passed in
// the constructor. This is so that the host cannot
// corrupt the shared definition
Activity tempDefinition = this._originalWorkflowDefinition.Clone();
diff --git a/mcs/class/referencesource/System.Workflow.Runtime/WorkflowEventInternal.cs b/mcs/class/referencesource/System.Workflow.Runtime/WorkflowEventInternal.cs
index 60081f69cf0..3ea99c05f06 100644
--- a/mcs/class/referencesource/System.Workflow.Runtime/WorkflowEventInternal.cs
+++ b/mcs/class/referencesource/System.Workflow.Runtime/WorkflowEventInternal.cs
@@ -64,4 +64,4 @@ namespace System.Workflow.Runtime
ActivityExecuting,
Loading
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Workflow.Runtime/WorkflowExecutor.cs b/mcs/class/referencesource/System.Workflow.Runtime/WorkflowExecutor.cs
index 0d2d2daf4ff..9194516f9fb 100644
--- a/mcs/class/referencesource/System.Workflow.Runtime/WorkflowExecutor.cs
+++ b/mcs/class/referencesource/System.Workflow.Runtime/WorkflowExecutor.cs
@@ -961,7 +961,7 @@ namespace System.Workflow.Runtime
if (WorkflowExecutor.IsIrrecoverableException(e))
{
throw;
- } //@@undone: for [....]:- we should not be running exception handler, when we are unlocking.
+ } //@@undone: for Microsoft:- we should not be running exception handler, when we are unlocking.
else if (this.WorkflowStatus != WorkflowStatus.Suspended && this.IsInstanceValid)
{
// the persistence attempt threw an exception
@@ -1548,7 +1548,7 @@ namespace System.Workflow.Runtime
}
}
- // shutsdown the schedule instance [....]
+ // shutsdown the schedule instance sync
internal void Unload()
{
WorkflowTrace.Runtime.TraceEvent(TraceEventType.Information, 0, "Workflow Runtime: WorkflowExecutor: Got an unload request for instance {0}", this.InstanceIdString);
@@ -1612,7 +1612,7 @@ namespace System.Workflow.Runtime
#region Terminate
- // terminates the schedule instance [....]
+ // terminates the schedule instance sync
// must be called only from outside the instance... the thread running the instance must
// never call this method... it should call TerminateOnIdle instead.
internal void Terminate(string error)
@@ -1748,7 +1748,7 @@ namespace System.Workflow.Runtime
#region Abort
- // aborts the schedule instance [....]
+ // aborts the schedule instance sync
// must be called only from outside the instance... the thread running the instance must
// never call this method... it should call AbortOnIdle instead.
internal void Abort()
@@ -1860,7 +1860,7 @@ namespace System.Workflow.Runtime
#region Suspend
- // suspends the schedule instance [....]
+ // suspends the schedule instance sync
// must be called only from outside the instance... the thread running the instance must
// never call this method... it should call SuspendOnIdle instead.
internal bool Suspend(string error)
@@ -1966,7 +1966,7 @@ namespace System.Workflow.Runtime
#region Resume
- // resumes the schedule instance [....]
+ // resumes the schedule instance sync
// must be called only from outside the instance... the thread running the instance must
// never call this method... it should call ResumeOnIdle instead.
internal void Resume()
@@ -1996,7 +1996,7 @@ namespace System.Workflow.Runtime
//@@Undone-- bmalhi there is one test in bat
//which fails here. This check is right thing but im
//commenting it out for bat.
- // [....]: this fails because when we load an instance into memory it grabs
+ // Microsoft: this fails because when we load an instance into memory it grabs
// the scheduler lock and starts running. By the time the user Resume request
// gets the scheduler lock the instance is often done (the AbortBat test case scenario)
// Balinder is attempting a fix to separate rehydration from resuming execution.
diff --git a/mcs/class/referencesource/System.WorkflowServices/GlobalSuppressions.cs b/mcs/class/referencesource/System.WorkflowServices/GlobalSuppressions.cs
index d1246fbfd52..1b697756055 100644
--- a/mcs/class/referencesource/System.WorkflowServices/GlobalSuppressions.cs
+++ b/mcs/class/referencesource/System.WorkflowServices/GlobalSuppressions.cs
@@ -21,7 +21,7 @@ using System.Diagnostics.CodeAnalysis;
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Workflow.ComponentModel.Walker..ctor(System.Object)")]
-// Added by [....], This warning is issued on the dialog resources of the System.Workflow.Activities dialgos, which hold types from System.WorkflowServices.dll , this warning complains that the assembly version does not match the Mscorlib assemblyversion of 4.0.0.0 , thats why this message is suppressed globally.
+// Added by ramrajb, This warning is issued on the dialog resources of the System.Workflow.Activities dialgos, which hold types from System.WorkflowServices.dll , this warning complains that the assembly version does not match the Mscorlib assemblyversion of 4.0.0.0 , thats why this message is suppressed globally.
[module: SuppressMessage("Microsoft.Usage", "CA2228:DoNotShipUnreleasedResourceFormats", Scope = "resource", Target = "System.Workflow.Activities.Design.ServiceContractDetailViewControl.resources", MessageId = ">>$this.Type")]
[module: SuppressMessage("Microsoft.Usage", "CA2228:DoNotShipUnreleasedResourceFormats", Scope = "resource", Target = "System.Workflow.Activities.Design.ServiceContractViewControl.resources", MessageId = ">>backgroundPanel.Type")]
@@ -39,7 +39,7 @@ using System.Diagnostics.CodeAnalysis;
[module: SuppressMessage("Microsoft.Usage", "CA2228:DoNotShipUnreleasedResourceFormats", Scope = "resource", Target = "System.Workflow.Activities.Design.ServiceOperationViewControl.resources", MessageId = ">>operationNameLabel.Type")]
[module: SuppressMessage("Microsoft.Usage", "CA2228:DoNotShipUnreleasedResourceFormats", Scope = "resource", Target = "System.Workflow.Activities.Design.ReflectedServiceOperationDetailViewControl.resources", MessageId = ">>$this.Type")]
-// Added by [....] for jself. These suppressions are for violations in red bits that are temporarily copied over.
+// Added by tvish for jself. These suppressions are for violations in red bits that are temporarily copied over.
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Workflow.ComponentModel.WalkerEventArgs.get_CurrentValue():System.Object")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Workflow.ComponentModel.WalkerEventArgs.get_UserData():System.Object")]
@@ -47,4 +47,4 @@ using System.Diagnostics.CodeAnalysis;
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Workflow.ComponentModel.WalkerEventArgs.get_CurrentPropertyOwner():System.Object")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Workflow.ComponentModel.WalkerEventArgs.get_CurrentProperty():System.Reflection.PropertyInfo")]
[module: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "System.Workflow.ComponentModel.WalkerEventArgs.set_Action(System.Workflow.ComponentModel.WalkerAction):System.Void")]
-[module: SuppressMessage("Reliability", "Reliability102:WrapExceptionsRule", Scope = "member", Target = "System.Workflow.Activities.ParameterInfoBasedPropertyDescriptor..ctor(System.Type,System.Reflection.ParameterInfo,System.Boolean,System.Attribute[])")]
+[module: SuppressMessage("Reliability", "Reliability102:WrapExceptionsRule", Scope = "member", Target = "System.Workflow.Activities.ParameterInfoBasedPropertyDescriptor..ctor(System.Type,System.Reflection.ParameterInfo,System.Boolean,System.Attribute[])")] \ No newline at end of file
diff --git a/mcs/class/referencesource/System.WorkflowServices/System/ServiceModel/QueueNameHelper.cs b/mcs/class/referencesource/System.WorkflowServices/System/ServiceModel/QueueNameHelper.cs
index 01381b9a1cc..bf4836d6b60 100644
--- a/mcs/class/referencesource/System.WorkflowServices/System/ServiceModel/QueueNameHelper.cs
+++ b/mcs/class/referencesource/System.WorkflowServices/System/ServiceModel/QueueNameHelper.cs
@@ -39,7 +39,7 @@ namespace System.ServiceModel
string conversationId = null;
//Chosen explicit look up against generic looping of Context Headers
- //to mitigate security threat bug PS#3470.
+ //to mitigate security threat
if (contextProperties.TryGetValue(WellKnownContextProperties.ConversationId, out conversationId))
{
StringBuilder stringBuilder = new StringBuilder();
diff --git a/mcs/class/referencesource/System.WorkflowServices/System/ServiceModel/WorkflowServiceHost.cs b/mcs/class/referencesource/System.WorkflowServices/System/ServiceModel/WorkflowServiceHost.cs
index 87b3b237840..f4610d89c99 100644
--- a/mcs/class/referencesource/System.WorkflowServices/System/ServiceModel/WorkflowServiceHost.cs
+++ b/mcs/class/referencesource/System.WorkflowServices/System/ServiceModel/WorkflowServiceHost.cs
@@ -64,7 +64,7 @@ namespace System.ServiceModel
// Based on prior art from WCF:
// ServiceModel.lst:System.ServiceModel.ServiceHost..ctor(System.Object,System.Uri[])
// |DoNotCallOverridableMethodsInConstructors
- // |[....]|By design, don't want to complicate ServiceHost state model
+ // |Microsoft|By design, don't want to complicate ServiceHost state model
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
internal WorkflowServiceHost(WorkflowDefinitionContext workflowDefinitionContext, params Uri[] baseAddress)
: base()
diff --git a/mcs/class/referencesource/System.WorkflowServices/System/Workflow/Activities/Design/OperationPickerDialog.cs b/mcs/class/referencesource/System.WorkflowServices/System/Workflow/Activities/Design/OperationPickerDialog.cs
index 81662844ade..c74151825d9 100644
--- a/mcs/class/referencesource/System.WorkflowServices/System/Workflow/Activities/Design/OperationPickerDialog.cs
+++ b/mcs/class/referencesource/System.WorkflowServices/System/Workflow/Activities/Design/OperationPickerDialog.cs
@@ -303,7 +303,7 @@ namespace System.Workflow.Activities.Design
// This is to make the selected operation the selected item in the operationsListBox.
- // This needs to be done to work around the [....] bug causing selection events to not fire till form is loaded.
+ // This needs to be done to work around the Microsoft
if (this.selectedOperation != null)
{
SelectServiceOperation(this.selectedOperation);
diff --git a/mcs/class/referencesource/System.WorkflowServices/System/Workflow/Runtime/Hosting/SynchronizationContextWorkflowSchedulerService.cs b/mcs/class/referencesource/System.WorkflowServices/System/Workflow/Runtime/Hosting/SynchronizationContextWorkflowSchedulerService.cs
index 76380ee64a9..bae23fc0bb5 100644
--- a/mcs/class/referencesource/System.WorkflowServices/System/Workflow/Runtime/Hosting/SynchronizationContextWorkflowSchedulerService.cs
+++ b/mcs/class/referencesource/System.WorkflowServices/System/Workflow/Runtime/Hosting/SynchronizationContextWorkflowSchedulerService.cs
@@ -84,7 +84,7 @@ namespace System.Workflow.Runtime.Hosting
public static void Post(SynchronizationContext synchronizationContext, SendOrPostCallback callback, object state)
{
- Fx.Assert(synchronizationContext != null, "Null [....] Context");
+ Fx.Assert(synchronizationContext != null, "Null Sync Context");
Fx.Assert(callback != null, "Null Callback");
synchronizationContext.OperationStarted();
diff --git a/mcs/class/referencesource/System.Xml.Linq/System/Xml/Linq/XLinq.cs b/mcs/class/referencesource/System.Xml.Linq/System/Xml/Linq/XLinq.cs
index 8cac46f2e45..8228763aeb3 100644
--- a/mcs/class/referencesource/System.Xml.Linq/System/Xml/Linq/XLinq.cs
+++ b/mcs/class/referencesource/System.Xml.Linq/System/Xml/Linq/XLinq.cs
@@ -3561,7 +3561,7 @@ namespace System.Xml.Linq
}
/// <summary>
- /// Gets a value indicating whether the element as at least one attribute.
+ /// Gets a value indicating whether the element has at least one attribute.
/// </summary>
public bool HasAttributes {
get { return lastAttr != null; }
diff --git a/mcs/class/referencesource/System.Xml/InternalApis/Clr/inc/AppContextDefaultValues.cs b/mcs/class/referencesource/System.Xml/InternalApis/Clr/inc/AppContextDefaultValues.cs
new file mode 100644
index 00000000000..124f9f45a4f
--- /dev/null
+++ b/mcs/class/referencesource/System.Xml/InternalApis/Clr/inc/AppContextDefaultValues.cs
@@ -0,0 +1,170 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+using System;
+using System.Collections.Generic;
+
+namespace System
+{
+ internal static partial class AppContextDefaultValues
+ {
+ public static void PopulateDefaultValues()
+ {
+ string platformIdentifier, profile;
+ int version;
+
+ ParseTargetFrameworkName(out platformIdentifier, out profile, out version);
+
+ // Call into each library to populate their default switches
+ PopulateDefaultValuesPartial(platformIdentifier, profile, version);
+ }
+
+ /// <summary>
+ /// We have this separate method for getting the parsed elements out of the TargetFrameworkName so we can
+ /// more easily support this on other platforms.
+ /// </summary>
+ [System.Security.SecuritySafeCritical]
+ private static void ParseTargetFrameworkName(out string identifier, out string profile, out int version)
+ {
+ string targetFrameworkMoniker = AppDomain.CurrentDomain.SetupInformation.TargetFrameworkName;
+
+ // If we don't have a TFM then we should default to the 4.0 behavior where all quirks are turned on.
+ if (!TryParseFrameworkName(targetFrameworkMoniker, out identifier, out version, out profile))
+ {
+#if FEATURE_CORECLR
+ if (CompatibilitySwitches.UseLatestBehaviorWhenTFMNotSpecified)
+ {
+ // If we want to use the latest behavior it is enough to set the value of the switch to string.Empty.
+ // When the get to the caller of this method (PopulateDefaultValuesPartial) we are going to use the
+ // identifier we just set to decide which switches to turn on. By having an empty string as the
+ // identifier we are simply saying -- don't turn on any switches, and we are going to get the latest
+ // behavior for all the switches
+ identifier = string.Empty;
+ }
+ else
+#endif
+ {
+ identifier = ".NETFramework";
+ version = 40000;
+ profile = string.Empty;
+ }
+ }
+ }
+
+ // This code was a constructor copied from the FrameworkName class, which is located in System.dll.
+ // Parses strings in the following format: "<identifier>, Version=[v|V]<version>, Profile=<profile>"
+ // - The identifier and version is required, profile is optional
+ // - Only three components are allowed.
+ // - The version string must be in the System.Version format; an optional "v" or "V" prefix is allowed
+ private static bool TryParseFrameworkName(String frameworkName, out String identifier, out int version, out String profile)
+ {
+ // For parsing a target Framework moniker, from the FrameworkName class
+ const char c_componentSeparator = ',';
+ const char c_keyValueSeparator = '=';
+ const char c_versionValuePrefix = 'v';
+ const String c_versionKey = "Version";
+ const String c_profileKey = "Profile";
+
+ identifier = profile = string.Empty;
+ version = 0;
+
+ if (frameworkName == null || frameworkName.Length == 0)
+ {
+ return false;
+ }
+
+ String[] components = frameworkName.Split(c_componentSeparator);
+ version = 0;
+
+ // Identifer and Version are required, Profile is optional.
+ if (components.Length < 2 || components.Length > 3)
+ {
+ return false;
+ }
+
+ //
+ // 1) Parse the "Identifier", which must come first. Trim any whitespace
+ //
+ identifier = components[0].Trim();
+
+ if (identifier.Length == 0)
+ {
+ return false;
+ }
+
+ bool versionFound = false;
+ profile = null;
+
+ //
+ // The required "Version" and optional "Profile" component can be in any order
+ //
+ for (int i = 1; i < components.Length; i++)
+ {
+ // Get the key/value pair separated by '='
+ string[] keyValuePair = components[i].Split(c_keyValueSeparator);
+
+ if (keyValuePair.Length != 2)
+ {
+ return false;
+ }
+
+ // Get the key and value, trimming any whitespace
+ string key = keyValuePair[0].Trim();
+ string value = keyValuePair[1].Trim();
+
+ //
+ // 2) Parse the required "Version" key value
+ //
+ if (key.Equals(c_versionKey, StringComparison.OrdinalIgnoreCase))
+ {
+ versionFound = true;
+
+ // Allow the version to include a 'v' or 'V' prefix...
+ if (value.Length > 0 && (value[0] == c_versionValuePrefix || value[0] == 'V'))
+ {
+ value = value.Substring(1);
+ }
+ Version realVersion = new Version(value);
+ // The version class will represent some unset values as -1 internally (instead of 0).
+ version = realVersion.Major * 10000;
+ if (realVersion.Minor > 0)
+ version += realVersion.Minor * 100;
+ if (realVersion.Build > 0)
+ version += realVersion.Build;
+ }
+ //
+ // 3) Parse the optional "Profile" key value
+ //
+ else if (key.Equals(c_profileKey, StringComparison.OrdinalIgnoreCase))
+ {
+ if (!String.IsNullOrEmpty(value))
+ {
+ profile = value;
+ }
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ if (!versionFound)
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ // This is a partial method. Platforms (such as Desktop) can provide an implementation of it that will read override value
+ // from whatever mechanism is available on that platform. If no implementation is provided, the compiler is going to remove the calls
+ // to it from the code
+ static partial void TryGetSwitchOverridePartial(string switchName, ref bool overrideFound, ref bool overrideValue);
+
+ /// This is a partial method. This method is responsible for populating the default values based on a TFM.
+ /// It is partial because each library should define this method in their code to contain their defaults.
+ static partial void PopulateDefaultValuesPartial(string platformIdentifier, string profile, int version);
+ }
+}
diff --git a/mcs/class/referencesource/System.Xml/InternalApis/Clr/inc/LocalAppContext.cs b/mcs/class/referencesource/System.Xml/InternalApis/Clr/inc/LocalAppContext.cs
new file mode 100644
index 00000000000..f05b599ed3d
--- /dev/null
+++ b/mcs/class/referencesource/System.Xml/InternalApis/Clr/inc/LocalAppContext.cs
@@ -0,0 +1,128 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+
+// NOTE: This file should not be included in mscorlib. This should only be included in FX libraries that need to provide switches
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Threading;
+
+namespace System
+{
+ internal static partial class LocalAppContext
+ {
+ private delegate bool TryGetSwitchDelegate(string switchName, out bool value);
+
+ private static TryGetSwitchDelegate TryGetSwitchFromCentralAppContext;
+ private static bool s_canForwardCalls;
+
+ private static Dictionary<string, bool> s_switchMap = new Dictionary<string, bool>();
+ private static readonly object s_syncLock = new object();
+
+ private static bool DisableCaching { get; set; }
+
+ static LocalAppContext()
+ {
+ // Try to setup the callback into the central AppContext
+ s_canForwardCalls = SetupDelegate();
+
+ // Populate the default values of the local app context
+ AppContextDefaultValues.PopulateDefaultValues();
+
+ // Cache the value of the switch that help with testing
+ DisableCaching = IsSwitchEnabled(@"TestSwitch.LocalAppContext.DisableCaching");
+ }
+
+ public static bool IsSwitchEnabled(string switchName)
+ {
+ if (s_canForwardCalls)
+ {
+ bool isEnabledCentrally;
+ if (TryGetSwitchFromCentralAppContext(switchName, out isEnabledCentrally))
+ {
+ // we found the switch, so return whatever value it has
+ return isEnabledCentrally;
+ }
+ // if we could not get the value from the central authority, try the local storage.
+ }
+
+ return IsSwitchEnabledLocal(switchName);
+ }
+
+ private static bool IsSwitchEnabledLocal(string switchName)
+ {
+ // read the value from the set of local defaults
+ bool isEnabled, isPresent;
+ lock (s_switchMap)
+ {
+ isPresent = s_switchMap.TryGetValue(switchName, out isEnabled);
+ }
+
+ // If the value is in the set of local switches, reutrn the value
+ if (isPresent)
+ {
+ return isEnabled;
+ }
+
+ // if we could not find the switch name, we should return 'false'
+ // This will preserve the concept of switches been 'off' unless explicitly set to 'on'
+ return false;
+ }
+
+ private static bool SetupDelegate()
+ {
+ Type appContextType = typeof(object).Assembly.GetType("System.AppContext");
+ if (appContextType == null)
+ return false;
+
+ MethodInfo method = appContextType.GetMethod(
+ "TryGetSwitch", // the method name
+ BindingFlags.Static | BindingFlags.Public, // binding flags
+ null, // use the default binder
+ new Type[] { typeof(string), typeof(bool).MakeByRefType() },
+ null); // parameterModifiers - this is ignored by the default binder
+ if (method == null)
+ return false;
+
+ // Create delegate if we found the method.
+ TryGetSwitchFromCentralAppContext = (TryGetSwitchDelegate)Delegate.CreateDelegate(typeof(TryGetSwitchDelegate), method);
+
+ return true;
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ internal static bool GetCachedSwitchValue(string switchName, ref int switchValue)
+ {
+ if (switchValue < 0) return false;
+ if (switchValue > 0) return true;
+
+ return GetCachedSwitchValueInternal(switchName, ref switchValue);
+ }
+
+ private static bool GetCachedSwitchValueInternal(string switchName, ref int switchValue)
+ {
+ if (LocalAppContext.DisableCaching)
+ {
+ return LocalAppContext.IsSwitchEnabled(switchName);
+ }
+
+ bool isEnabled = LocalAppContext.IsSwitchEnabled(switchName);
+ switchValue = isEnabled ? 1 /*true*/ : -1 /*false*/;
+ return isEnabled;
+ }
+
+ /// <summary>
+ /// This method is going to be called from the AppContextDefaultValues class when setting up the
+ /// default values for the switches. !!!! This method is called during the static constructor so it does not
+ /// take a lock !!!! If you are planning to use this outside of that, please ensure proper locking.
+ /// </summary>
+ internal static void DefineSwitchDefault(string switchName, bool initialValue)
+ {
+ s_switchMap[switchName] = initialValue;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Xml/InternalApis/NDP_Common/inc/Win8Helpers.cs b/mcs/class/referencesource/System.Xml/InternalApis/NDP_Common/inc/Win8Helpers.cs
index 174af4f33c0..b2508ba53f8 100644
--- a/mcs/class/referencesource/System.Xml/InternalApis/NDP_Common/inc/Win8Helpers.cs
+++ b/mcs/class/referencesource/System.Xml/InternalApis/NDP_Common/inc/Win8Helpers.cs
@@ -2,7 +2,7 @@
// <copyright file="Compilation.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace Microsoft.Win32 {
@@ -16,6 +16,11 @@ namespace Microsoft.Win32 {
[System.Security.SuppressUnmanagedCodeSecurity]
internal static class UnsafeNativeMethods
{
+#if !FEATURE_CORECLR
+ // On CoreCLR this is not the way to determine if a process is a tailored application (which means APPX).
+ // On CoreCLR AppX is determined by a flag past to the host which is exposed by AppDomain.IsAppXProcess in mscorlib.
+ // The reason for this if-def is to ensure nobody takes a dependency on this on CoreCLR.
+
internal const String KERNEL32 = "kernel32.dll";
// WinError.h codes:
@@ -77,6 +82,7 @@ namespace Microsoft.Win32 {
[System.Security.SecuritySafeCritical]
internal static Lazy<bool> IsPackagedProcess = new Lazy<bool>(() => _IsPackagedProcess());
+#endif //!FEATURE_CORECLR
}
}
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Assembly/System.Xml.Assembly.cs b/mcs/class/referencesource/System.Xml/System/Xml/Assembly/System.Xml.Assembly.cs
index 371bf74501d..c4184400609 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Assembly/System.Xml.Assembly.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Assembly/System.Xml.Assembly.cs
@@ -2,7 +2,7 @@
// <copyright file="System.Xml.Assembly.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
using System.Runtime.CompilerServices;
@@ -27,4 +27,4 @@ using System.Runtime.CompilerServices;
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.Xml.Linq, PublicKey=00000000000000000400000000000000")]
// This is to allow writing unit tests that test the internal functionality contained in this assembly.
[assembly: InternalsVisibleToAttribute("System.ServiceModel.Friend, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")]
-#endif
+#endif \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Base64Decoder.cs b/mcs/class/referencesource/System.Xml/System/Xml/Base64Decoder.cs
index 6fce5e708f4..700f0024765 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Base64Decoder.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Base64Decoder.cs
@@ -2,7 +2,7 @@
// <copyright file="Base64Decoder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Base64Encoder.cs b/mcs/class/referencesource/System.Xml/System/Xml/Base64Encoder.cs
index 2e5db862d30..826dda14790 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Base64Encoder.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Base64Encoder.cs
@@ -3,7 +3,7 @@
// <copyright file="Base64Encoder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Text;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/BinHexDecoder.cs b/mcs/class/referencesource/System.Xml/System/Xml/BinHexDecoder.cs
index a5b8c826abe..f0e3e37cbb0 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/BinHexDecoder.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/BinHexDecoder.cs
@@ -2,7 +2,7 @@
// <copyright file="BinHexDecoder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/BinHexEncoder.cs b/mcs/class/referencesource/System.Xml/System/Xml/BinHexEncoder.cs
index 84af530c3a0..80aaef88553 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/BinHexEncoder.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/BinHexEncoder.cs
@@ -3,7 +3,7 @@
// <copyright file="BinHexEncoder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/BinXmltoken.cs b/mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/BinXmltoken.cs
index 080a2750f38..ceeccc04054 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/BinXmltoken.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/BinXmltoken.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlBinaryWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">derekdb</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/SqlUtils.cs b/mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/SqlUtils.cs
index ac782eede0d..f431af850c4 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/SqlUtils.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/SqlUtils.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlBinaryWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/XmlBinaryReader.cs b/mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/XmlBinaryReader.cs
index 7ec7d87c084..249bf8a70bb 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/XmlBinaryReader.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/XmlBinaryReader.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlBinaryWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/XmlBinaryReaderAsync.cs b/mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/XmlBinaryReaderAsync.cs
index c246cd780de..c5617d0bef0 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/XmlBinaryReaderAsync.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/BinaryXml/XmlBinaryReaderAsync.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlBinaryWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/BitStack.cs b/mcs/class/referencesource/System.Xml/System/Xml/BitStack.cs
index 1a24b050303..af5df11c215 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/BitStack.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/BitStack.cs
@@ -2,7 +2,7 @@
// <copyright file="BitStack.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Bits.cs b/mcs/class/referencesource/System.Xml/System/Xml/Bits.cs
index c971932dace..e33134c3de0 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Bits.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Bits.cs
@@ -2,7 +2,7 @@
// <copyright file="Bits.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/ByteStack.cs b/mcs/class/referencesource/System.Xml/System/Xml/ByteStack.cs
index dad824cbba0..d1dac9ff8be 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/ByteStack.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/ByteStack.cs
@@ -2,7 +2,7 @@
// <copyright file="ByteStack.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Cache/Shape.cs b/mcs/class/referencesource/System.Xml/System/Xml/Cache/Shape.cs
index 1c0efa47eb7..ccd750ebca8 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Cache/Shape.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Cache/Shape.cs
@@ -2,7 +2,7 @@
// <copyright file="Shape.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">derekdb</owner>
//------------------------------------------------------------------------------
#if ENABLEDATABINDING
using System;
@@ -298,4 +298,4 @@ namespace System.Xml.XPath.DataBinding
#endif
}
}
-#endif
+#endif \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Cache/ShapeGenerator.cs b/mcs/class/referencesource/System.Xml/System/Xml/Cache/ShapeGenerator.cs
index 2957c30f2c9..939cfb4ebad 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Cache/ShapeGenerator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Cache/ShapeGenerator.cs
@@ -2,7 +2,7 @@
// <copyright file="ShapeGenerator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">derekdb</owner>
//------------------------------------------------------------------------------
#if ENABLEDATABINDING
using System;
@@ -199,4 +199,4 @@ namespace System.Xml.XPath.DataBinding
}
}
}
-#endif
+#endif \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentBuilder.cs b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentBuilder.cs
index 5ca0974015e..7282d54555c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentBuilder.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentBuilder.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathDocumentBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Globalization;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentIterator.cs b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentIterator.cs
index 54d2808d16b..937c44a75c9 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentIterator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentIterator.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathDocumentIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentNavigator.cs b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentNavigator.cs
index d5884ff333f..f46468ff6ab 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentNavigator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentNavigator.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathDocumentNavigator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.IO;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentView.cs b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentView.cs
index 077d922580a..320e2fd602d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentView.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathDocumentView.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathDocumentView.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">derekdb</owner>
//------------------------------------------------------------------------------
#if ENABLEDATABINDING
using System;
@@ -606,7 +606,7 @@ namespace System.Xml.XPath.DataBinding
}
}
if (0 == rows.Count) {
- //
+ // TODO:
throw new NotImplementedException("XPath failed to match an elements");
}
if (null == schemaInfo) {
@@ -819,4 +819,4 @@ namespace System.Xml.XPath.DataBinding
}
}
}
-#endif
+#endif \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNode.cs b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNode.cs
index b050b59c483..9170badb6c4 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNode.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNode.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathNode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
@@ -332,7 +332,6 @@ namespace MS.Internal.Xml.Cache {
/// <summary>
/// Set this node's line number information.
/// </summary>
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
public void SetLineInfoOffsets(int lineNumOffset, int linePosOffset) {
Debug.Assert(lineNumOffset >= 0 && lineNumOffset <= MaxLineNumberOffset, "Line number offset too large or small: " + lineNumOffset);
Debug.Assert(linePosOffset >= 0 && linePosOffset <= MaxLinePositionOffset, "Line position offset too large or small: " + linePosOffset);
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeHelper.cs b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeHelper.cs
index d41386dc056..fbc150cb5c1 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeHelper.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeHelper.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathNodeHelper.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeInfoAtom.cs b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeInfoAtom.cs
index b2bd27cfc6f..f65ab8c144b 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeInfoAtom.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeInfoAtom.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathNodeInfoAtom.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections;
using System.Text;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeView.cs b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeView.cs
index 77599ef7e54..33e807d726d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeView.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeView.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathNodeView.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">derekdb</owner>
//------------------------------------------------------------------------------
#if ENABLEDATABINDING
using System;
@@ -156,4 +156,4 @@ namespace System.Xml.XPath.DataBinding
internal object Column(int index) { return cols[index]; }
}
}
-#endif
+#endif \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeViewPropertyDescriptor.cs b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeViewPropertyDescriptor.cs
index 5b729554646..076fc2a3344 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeViewPropertyDescriptor.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Cache/XPathNodeViewPropertyDescriptor.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathNodeViewPropertyDescriptor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">derekdb</owner>
//------------------------------------------------------------------------------
#if ENABLEDATABINDING
using System;
@@ -98,4 +98,4 @@ namespace System.Xml.XPath.DataBinding
}
}
}
-#endif
+#endif \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/AppContextDefaultValues.Defaults.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/AppContextDefaultValues.Defaults.cs
new file mode 100644
index 00000000000..01ac463e479
--- /dev/null
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/AppContextDefaultValues.Defaults.cs
@@ -0,0 +1,46 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+using System;
+
+namespace System
+{
+ internal static partial class AppContextDefaultValues
+ {
+ static partial void PopulateDefaultValuesPartial(string platformIdentifier, string profile, int version)
+ {
+ // When defining a new switch you should add it to the last known version.
+ // For instance, if you are adding a switch in .NET 4.6 (the release after 4.5.2) you should defined your switch
+ // like this:
+ // if (version <= 40502) ...
+ // This ensures that all previous versions of that platform (up-to 4.5.2) will get the old behavior by default
+ // NOTE: When adding a default value for a switch please make sure that the default value is added to ALL of the existing platforms!
+ // NOTE: When adding a new if statement for the version please ensure that ALL previous switches are enabled (ie. don't use else if)
+ switch (platformIdentifier)
+ {
+ case ".NETCore":
+ case ".NETFramework":
+ {
+ if (version <= 40502)
+ {
+ LocalAppContext.DefineSwitchDefault("Switch.System.Xml.DontThrowOnInvalidSurrogatePairs", true);
+ LocalAppContext.DefineSwitchDefault("Switch.System.Xml.IgnoreEmptyKeySequences", true);
+ }
+ break;
+ }
+ case "WindowsPhone":
+ case "WindowsPhoneApp":
+ {
+ if (version <= 80100)
+ {
+ LocalAppContext.DefineSwitchDefault("Switch.System.Xml.DontThrowOnInvalidSurrogatePairs", true);
+ LocalAppContext.DefineSwitchDefault("Switch.System.Xml.IgnoreEmptyKeySequences", true);
+ }
+ break;
+ }
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/BinaryCompatibility.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/BinaryCompatibility.cs
index 25c895fd806..16523d04577 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/BinaryCompatibility.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/BinaryCompatibility.cs
@@ -29,11 +29,11 @@ namespace System.Xml
if (binaryCompatabilityType == null)
return false;
- PropertyInfo runningOnV4_5_2_Property = binaryCompatabilityType.GetProperty(propertyName, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static);
- if (runningOnV4_5_2_Property == null)
+ PropertyInfo property = binaryCompatabilityType.GetProperty(propertyName, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static);
+ if (property == null)
return false;
- return (bool)runningOnV4_5_2_Property.GetValue(null);
+ return (bool)property.GetValue(null);
}
}
}
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/CharEntityEncoderFallback.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/CharEntityEncoderFallback.cs
index 9ada03fbdcb..b50a79dd403 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/CharEntityEncoderFallback.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/CharEntityEncoderFallback.cs
@@ -2,7 +2,7 @@
// <copyright file="CharEntitiesEncodingFallback.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Text;
@@ -124,10 +124,10 @@ namespace System.Xml {
}
public override char GetNextChar() {
- // Bug fix: 35637. The protocol using GetNextChar() and MovePrevious() called by Encoder is not well documented.
- // Here we have to to signal to Encoder that the previous read was last character. Only AFTER we can
- // mark ourself as done (-1). Otherwise MovePrevious() can still be called, but -1 is already incorrectly set
- // and return false from MovePrevious(). Then Encoder ----ing the rest of the bytes.
+ //
+
+
+
if (charEntityIndex == charEntity.Length)
{
charEntityIndex = -1;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/ConformanceLevel.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/ConformanceLevel.cs
index 7427680c161..82ba6e55a21 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/ConformanceLevel.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/ConformanceLevel.cs
@@ -2,7 +2,7 @@
// <copyright file="ConformanceLevel.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/DtdProcessing.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/DtdProcessing.cs
index c83e4f6de8c..85e9098ce3d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/DtdProcessing.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/DtdProcessing.cs
@@ -2,7 +2,7 @@
// <copyright file="DtdProcessing.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/EntityHandling.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/EntityHandling.cs
index c794274af4b..b9f1ab8b2f8 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/EntityHandling.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/EntityHandling.cs
@@ -2,7 +2,7 @@
// <copyright file="EntityHandling.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/HtmlEncodedRawTextWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/HtmlEncodedRawTextWriter.cs
index 3e87a288024..0b90bc445e0 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/HtmlEncodedRawTextWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/HtmlEncodedRawTextWriter.cs
@@ -3,7 +3,7 @@
// <copyright file="HtmlRawTextWriterGenerator.cxx" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
// WARNING: This file is generated and should not be modified directly. Instead,
@@ -111,7 +111,7 @@ namespace System.Xml {
RawText( "<!DOCTYPE ");
- // Bug 114337: Always output "html" or "HTML" in doc-type, even if "name" is something else
+ //
if ( name == "HTML" )
RawText( "HTML" );
else
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/HtmlTernaryTree.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/HtmlTernaryTree.cs
index ea40a4b1774..67a2eb4e88d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/HtmlTernaryTree.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/HtmlTernaryTree.cs
@@ -2,7 +2,7 @@
// <copyright file="TernaryTreeGenerator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
//
// This file is generated by TernaryTreeGenerator.cs,
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/HtmlUtf8RawTextWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/HtmlUtf8RawTextWriter.cs
index ce58ac04cef..21746af58e3 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/HtmlUtf8RawTextWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/HtmlUtf8RawTextWriter.cs
@@ -3,7 +3,7 @@
// <copyright file="HtmlRawTextWriterGenerator.cxx" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
// WARNING: This file is generated and should not be modified directly. Instead,
@@ -111,7 +111,7 @@ namespace System.Xml {
RawText( "<!DOCTYPE ");
- // Bug 114337: Always output "html" or "HTML" in doc-type, even if "name" is something else
+ //
if ( name == "HTML" )
RawText( "HTML" );
else
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdInfo.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdInfo.cs
index 62f522e8e00..9c3b30d3e2a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdInfo.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdInfo.cs
@@ -2,7 +2,7 @@
// <copyright file="DtdInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdParser.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdParser.cs
index 56d1ff3e020..9ad4477687c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdParser.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdParser.cs
@@ -3,7 +3,7 @@
// <copyright file="DtdParser.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdParserAdapter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdParserAdapter.cs
index d321f232bfe..30d0fd7b7de 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdParserAdapter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdParserAdapter.cs
@@ -3,7 +3,7 @@
// <copyright file="Reader2DtdParserAdapter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdParserAsync.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdParserAsync.cs
index ff1d881647f..f9f7e3a93a8 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdParserAsync.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/IDtdParserAsync.cs
@@ -3,7 +3,7 @@
// <copyright file="DtdParser.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/IRemovableWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/IRemovableWriter.cs
index 110d252d4b0..f593ba22f05 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/IRemovableWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/IRemovableWriter.cs
@@ -2,7 +2,7 @@
// <copyright file="IRemovableWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">akimball</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/IValidationEventHandling.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/IValidationEventHandling.cs
index e67f95f1c8c..242d7edb438 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/IValidationEventHandling.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/IValidationEventHandling.cs
@@ -2,7 +2,7 @@
// <copyright file="IValidationEventHandling.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/IncrementalReadDecoders.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/IncrementalReadDecoders.cs
index 75aa39c93e5..accabc8ae41 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/IncrementalReadDecoders.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/IncrementalReadDecoders.cs
@@ -2,7 +2,7 @@
// <copyright file="IncrementalReadDecoder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/LocalAppContextSwitches.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/LocalAppContextSwitches.cs
new file mode 100644
index 00000000000..c744ba1c0dc
--- /dev/null
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/LocalAppContextSwitches.cs
@@ -0,0 +1,33 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+using System;
+using System.Runtime.CompilerServices;
+
+namespace System
+{
+ internal static class LocalAppContextSwitches
+ {
+ private static int _dontThrowOnInvalidSurrogatePairs;
+ public static bool DontThrowOnInvalidSurrogatePairs
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ get
+ {
+ return LocalAppContext.GetCachedSwitchValue(@"Switch.System.Xml.DontThrowOnInvalidSurrogatePairs", ref _dontThrowOnInvalidSurrogatePairs);
+ }
+ }
+
+ private static int _ignoreEmptyKeySequences;
+ public static bool IgnoreEmptyKeySequences
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ get
+ {
+ return LocalAppContext.GetCachedSwitchValue(@"Switch.System.Xml.IgnoreEmptyKeySequences", ref _ignoreEmptyKeySequences);
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/NamespaceHandling.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/NamespaceHandling.cs
index 7981fa19deb..d3c48fe90e0 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/NamespaceHandling.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/NamespaceHandling.cs
@@ -2,7 +2,7 @@
// <copyright file="NewLineHandling.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/NewLineHandling.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/NewLineHandling.cs
index 53d0c1265ba..c6ccc8095fa 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/NewLineHandling.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/NewLineHandling.cs
@@ -2,7 +2,7 @@
// <copyright file="NewLineHandling.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
namespace System.Xml
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/QueryOutputWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/QueryOutputWriter.cs
index 38d96cab293..b2eb04606f1 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/QueryOutputWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/QueryOutputWriter.cs
@@ -2,7 +2,7 @@
// <copyright file=QueryOutputWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/QueryOutputWriterV1.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/QueryOutputWriterV1.cs
index 7804b49e649..b8118da24a9 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/QueryOutputWriterV1.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/QueryOutputWriterV1.cs
@@ -2,7 +2,7 @@
// <copyright file=QueryOutputWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/ReadContentAsBinaryHelper.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/ReadContentAsBinaryHelper.cs
index 2279ac9d403..f901bb3b853 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/ReadContentAsBinaryHelper.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/ReadContentAsBinaryHelper.cs
@@ -3,7 +3,7 @@
// <copyright file="ReadContentAsBinaryHelper.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/ReadOnlyTernaryTree.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/ReadOnlyTernaryTree.cs
index c18e27b12c1..e2bdd673aa7 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/ReadOnlyTernaryTree.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/ReadOnlyTernaryTree.cs
@@ -2,7 +2,7 @@
// <copyright file="ReadOnlyTernaryTree.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
@@ -17,7 +17,7 @@ namespace System.Xml {
//
// XSL HTML output method properties
//
- // Keep the first four bits in [....], so that the element and attribute mask operation can be combined.
+ // Keep the first four bits in sync, so that the element and attribute mask operation can be combined.
internal enum ElementProperties : uint {DEFAULT = 0, URI_PARENT = 1, BOOL_PARENT = 2, NAME_PARENT = 4, EMPTY = 8, NO_ENTITIES = 16, HEAD = 32, BLOCK_WS = 64, HAS_NS = 128}
internal enum AttributeProperties : uint {DEFAULT = 0, URI = 1, BOOLEAN = 2, NAME = 4}
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/ReadState.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/ReadState.cs
index 21c52acd3f5..e942c702fc9 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/ReadState.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/ReadState.cs
@@ -2,7 +2,7 @@
// <copyright file="ReadState.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
namespace System.Xml
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/SecureStringHasher.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/SecureStringHasher.cs
index 05e248b64bd..a0e1260823e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/SecureStringHasher.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/SecureStringHasher.cs
@@ -2,11 +2,17 @@
// <copyright file="SecureStringHasher.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
+using System.Diagnostics;
+using System.Reflection;
+using System.Security;
+#if !SILVERLIGHT
+using System.Security.Permissions;
+#endif
namespace System.Xml {
@@ -15,6 +21,15 @@ namespace System.Xml {
// someone passes in lots of strings that hash to the same hash code is greatly reduced.
// The SecureStringHasher implements IEqualityComparer for strings and therefore can be used in generic IDictionary.
internal class SecureStringHasher : IEqualityComparer<String> {
+ [SecurityCritical]
+ delegate int HashCodeOfStringDelegate(string s, int sLen, long additionalEntropy);
+
+ // Value is guaranteed to be null by the spec.
+ // No explicit assignment because it will require adding SecurityCritical on .cctor
+ // which could hurt the performance
+ [SecurityCritical]
+ static HashCodeOfStringDelegate hashCodeDelegate;
+
int hashCodeRandomizer;
public SecureStringHasher() {
@@ -31,8 +46,17 @@ namespace System.Xml {
return String.Equals( x, y, StringComparison.Ordinal );
}
+ [SecuritySafeCritical]
public int GetHashCode( String key ) {
- int hashCode = hashCodeRandomizer;
+ if (hashCodeDelegate == null) {
+ hashCodeDelegate = GetHashCodeDelegate();
+ }
+ return hashCodeDelegate(key, key.Length, hashCodeRandomizer);
+ }
+
+ [SecurityCritical]
+ private static int GetHashCodeOfString( string key, int sLen, long additionalEntropy ) {
+ int hashCode = unchecked((int)additionalEntropy);
// use key.Length to eliminate the rangecheck
for ( int i = 0; i < key.Length; i++ ) {
hashCode += ( hashCode << 7 ) ^ key[i];
@@ -43,5 +67,24 @@ namespace System.Xml {
hashCode -= hashCode >> 5;
return hashCode;
}
+
+ [SecuritySafeCritical]
+#if !SILVERLIGHT
+ [ReflectionPermission(SecurityAction.Assert, Unrestricted = true)]
+#endif
+ private static HashCodeOfStringDelegate GetHashCodeDelegate() {
+ // If we find the Marvin hash method, we use that
+ // Otherwise, we use the old string hashing function.
+
+ MethodInfo getHashCodeMethodInfo = typeof(String).GetMethod("InternalMarvin32HashString", BindingFlags.NonPublic | BindingFlags.Static);
+ if (getHashCodeMethodInfo != null) {
+ return (HashCodeOfStringDelegate)Delegate.CreateDelegate(typeof(HashCodeOfStringDelegate), getHashCodeMethodInfo);
+ }
+
+ // This will fall through and return a delegate to the old hash function
+ Debug.Assert(false, "Randomized hashing is not supported.");
+
+ return new HashCodeOfStringDelegate(GetHashCodeOfString);
+ }
}
}
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/TextEncodedRawTextWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/TextEncodedRawTextWriter.cs
index d09ec778982..6565d5d3d54 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/TextEncodedRawTextWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/TextEncodedRawTextWriter.cs
@@ -3,7 +3,7 @@
// <copyright file="TextWriterGenerator.cxx" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
// WARNING: This file is generated and should not be modified directly. Instead,
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/TextUtf8RawTextWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/TextUtf8RawTextWriter.cs
index 1ed397e8fef..4192d32857c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/TextUtf8RawTextWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/TextUtf8RawTextWriter.cs
@@ -3,7 +3,7 @@
// <copyright file="TextWriterGenerator.cxx" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
// WARNING: This file is generated and should not be modified directly. Instead,
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/ValidatingReaderNodeData.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/ValidatingReaderNodeData.cs
index 0220c3ac415..35ebb93441c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/ValidatingReaderNodeData.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/ValidatingReaderNodeData.cs
@@ -2,7 +2,7 @@
// <copyright file="ValidatingReaderNodeData.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/ValidationType.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/ValidationType.cs
index 3ad3ffb722f..63a0922930b 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/ValidationType.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/ValidationType.cs
@@ -2,7 +2,7 @@
// <copyright file="ValidationType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
namespace System.Xml
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/WhitespaceHandling.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/WhitespaceHandling.cs
index 0e8c2e01ad5..5d3cedd840b 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/WhitespaceHandling.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/WhitespaceHandling.cs
@@ -2,7 +2,7 @@
// <copyright file="WhiteSpaceHandling.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
namespace System.Xml
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlAsyncCheckReader.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlAsyncCheckReader.cs
index acfc2641270..5c8e6dbfabf 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlAsyncCheckReader.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlAsyncCheckReader.cs
@@ -55,7 +55,7 @@ namespace System.Xml {
}
}
- #region [....] Methods, Properties Check
+ #region Sync Methods, Properties Check
public override XmlReaderSettings Settings {
get {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlAsyncCheckWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlAsyncCheckWriter.cs
index 9d3d1259ba6..2ec002e8862 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlAsyncCheckWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlAsyncCheckWriter.cs
@@ -28,7 +28,7 @@ namespace System.Xml {
}
}
- #region [....] Methods, Properties Check
+ #region Sync Methods, Properties Check
public override XmlWriterSettings Settings {
get {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlAutoDetectWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlAutoDetectWriter.cs
index be7bdf2f133..c36fceca031 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlAutoDetectWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlAutoDetectWriter.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlAutoDetectWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlCharCheckingReader.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlCharCheckingReader.cs
index e7494e219b1..4d57beeb332 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlCharCheckingReader.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlCharCheckingReader.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlCharCheckingReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlCharCheckingWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlCharCheckingWriter.cs
index d997aaf59d9..879e99e0933 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlCharCheckingWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlCharCheckingWriter.cs
@@ -4,7 +4,7 @@
// <copyright file="XmlCharCheckingWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
@@ -445,7 +445,7 @@ namespace System.Xml {
// Interleave 2 adjacent invalid chars with a space. This is used for fixing invalid values of comments and PIs.
// Any "--" in comment must be replaced with "- -" and any "-" at the end must be appended with " ".
// Any "?>" in PI value must be replaced with "? >".
- // This code has a bug SQL BU Defect Tracking #480848, which was triaged as Won't Fix because it is a breaking change
+ // This code has a
private string InterleaveInvalidChars( string text, char invChar1, char invChar2 ) {
StringBuilder sb = null;
int start = 0;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlEncodedRawTextWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlEncodedRawTextWriter.cs
index 05cff698b3d..341890df115 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlEncodedRawTextWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlEncodedRawTextWriter.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlRawTextWriterGenerator.cxx" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
// WARNING: This file is generated and should not be modified directly. Instead,
@@ -416,8 +416,8 @@ namespace System.Xml {
if ( trackTextContent && inTextContent != false ) { ChangeTextContentMark( false ); }
- // VSTFDEVDIV bug #583965: Inconsistency between Silverlight 2 and Dev10 in the way a single xmlns attribute is serialized
- // Resolved as: Won't fix (breaking change)
+ // VSTFDEVDIV
+
if ( prefix.Length == 0 ) {
RawText( " xmlns=\"" );
@@ -1384,7 +1384,8 @@ namespace System.Xml {
if ( ch <= XmlCharType.SurHighEnd ) {
if ( pSrc + 1 < pSrcEnd ) {
int lowChar = pSrc[1];
- if ( lowChar >= XmlCharType.SurLowStart ) {
+ if ( lowChar >= XmlCharType.SurLowStart &&
+ (LocalAppContextSwitches.DontThrowOnInvalidSurrogatePairs || lowChar <= XmlCharType.SurLowEnd)) {
pDst[0] = (char)ch;
pDst[1] = (char)lowChar;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlEncodedRawTextWriterAsync.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlEncodedRawTextWriterAsync.cs
index bfb770ee5b4..17e6333ebfe 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlEncodedRawTextWriterAsync.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlEncodedRawTextWriterAsync.cs
@@ -224,8 +224,8 @@ namespace System.Xml {
if ( trackTextContent && inTextContent != false ) { ChangeTextContentMark( false ); }
- // VSTFDEVDIV bug #583965: Inconsistency between Silverlight 2 and Dev10 in the way a single xmlns attribute is serialized
- // Resolved as: Won't fix (breaking change)
+ // VSTFDEVDIV
+
#if SILVERLIGHT
if ( attrEndPos == bufPos ) {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlEventCache.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlEventCache.cs
index 2f9b8e7dc3b..b48dd010fe6 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlEventCache.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlEventCache.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlEventCache.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlParserContext.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlParserContext.cs
index c6427aa67ae..6b70e55b47a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlParserContext.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlParserContext.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlParserContext.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Xml;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlRawWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlRawWriter.cs
index 0de56633883..6c05735bcb2 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlRawWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlRawWriter.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlRawWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlReader.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlReader.cs
index 8283771d758..40379dd159e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlReader.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlReader.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.IO;
@@ -1494,6 +1494,7 @@ namespace System.Xml {
XmlTextReaderImpl tri = GetXmlTextReaderImpl(reader);
return tri != null ? tri.Encoding : null;
}
+#endif
internal static ConformanceLevel GetV1ConformanceLevel(XmlReader reader) {
XmlTextReaderImpl tri = GetXmlTextReaderImpl(reader);
@@ -1505,10 +1506,13 @@ namespace System.Xml {
if (tri != null) {
return tri;
}
+
+#if !SILVERLIGHT // Needed only for XmlTextReader or XmlValidatingReader
XmlTextReader tr = reader as XmlTextReader;
if (tr != null) {
return tr.Impl;
}
+
XmlValidatingReaderImpl vri = reader as XmlValidatingReaderImpl;
if (vri != null) {
return vri.ReaderImpl;
@@ -1519,9 +1523,9 @@ namespace System.Xml {
if (vr != null) {
return vr.Impl.ReaderImpl;
}
+#endif
return null;
}
-#endif
//
// Static methods for creating readers
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlReaderSettings.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlReaderSettings.cs
index 3b87f5a4c5e..c570f19606a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlReaderSettings.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlReaderSettings.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlReaderSettings.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.IO;
@@ -547,6 +547,8 @@ namespace System.Xml {
static XmlResolver CreateDefaultResolver() {
#if SILVERLIGHT
+ if (BinaryCompatibility.TargetsAtLeast_Desktop_V4_5_1)
+ return new XmlSystemPathResolver();
return new XmlXapResolver();
#else
return new XmlUrlResolver();
@@ -606,11 +608,17 @@ namespace System.Xml {
#pragma warning disable 618
#if SILVERLIGHT
- if (this.conformanceLevel != ConformanceLevel.Auto) {
+ // Starting from Windows phone 8.1 (TargetsAtLeast_Desktop_V4_5_1) we converge with the desktop behavior so we'll let the reader
+ // not throw exception if has different conformance level than Auto.
+ if (BinaryCompatibility.TargetsAtLeast_Desktop_V4_5_1) {
+ if (this.conformanceLevel != ConformanceLevel.Auto && this.conformanceLevel != XmlReader.GetV1ConformanceLevel(baseReader)) {
+ throw new InvalidOperationException(Res.GetString(Res.Xml_IncompatibleConformanceLevel, this.conformanceLevel.ToString()));
+ }
+ } else if (this.conformanceLevel != ConformanceLevel.Auto) {
throw new InvalidOperationException(Res.GetString(Res.Xml_IncompatibleConformanceLevel, this.conformanceLevel.ToString()));
}
#else
- if (this.conformanceLevel != ConformanceLevel.Auto && this.conformanceLevel != XmlReader.GetV1ConformanceLevel(baseReader)) {
+ if (this.conformanceLevel != ConformanceLevel.Auto && this.conformanceLevel != XmlReader.GetV1ConformanceLevel(baseReader)) {
throw new InvalidOperationException(Res.GetString(Res.Xml_IncompatibleConformanceLevel, this.conformanceLevel.ToString()));
}
#endif
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlSpace.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlSpace.cs
index 2a400188846..ed429f4283c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlSpace.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlSpace.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSpace.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
namespace System.Xml
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlSubtreeReader.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlSubtreeReader.cs
index c78e851ad3b..602e1acb370 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlSubtreeReader.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlSubtreeReader.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlSubtreeReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextEncoder.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextEncoder.cs
index 8c90585f940..7e4c58fd1b5 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextEncoder.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextEncoder.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlTextWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextReader.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextReader.cs
index 2ce8ee9b56f..096f9b5cbad 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextReader.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextReader.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlTextReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextReaderImpl.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextReaderImpl.cs
index 446dab45c17..19c9b948ec8 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextReaderImpl.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextReaderImpl.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlTextReaderImpl.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
@@ -857,6 +857,11 @@ namespace System.Xml {
settings.MaxCharactersInDocument = maxCharactersInDocument;
settings.MaxCharactersFromEntities = maxCharactersFromEntities;
+#if !SILVERLIGHT
+ if (!System.Xml.XmlReaderSettings.EnableLegacyXmlSettings()) {
+ settings.XmlResolver = xmlResolver;
+ }
+#endif
settings.ReadOnly = true;
return settings;
}
@@ -2540,7 +2545,6 @@ namespace System.Xml {
//
private bool InAttributeValueIterator {
#if !SILVERLIGHT
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
#endif
get {
return attrCount > 0 && parsingFunction >= ParsingFunction.InReadAttributeValue;
@@ -6881,7 +6885,6 @@ namespace System.Xml {
#endif
#if !SILVERLIGHT
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
#endif
private NodeData AddNode( int nodeIndex, int nodeDepth ) {
Debug.Assert( nodeIndex < nodes.Length );
@@ -8197,13 +8200,13 @@ namespace System.Xml {
}
}
+#endif
internal ConformanceLevel V1ComformanceLevel {
get {
return fragmentType == XmlNodeType.Element ? ConformanceLevel.Fragment : ConformanceLevel.Document;
}
}
-#endif
private bool AddDefaultAttributeDtd(IDtdDefaultAttributeInfo defAttrInfo, bool definedInDtd, NodeData[] nameSortedNodeData) {
if ( defAttrInfo.Prefix.Length > 0 ) {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextReaderImplHelpers.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextReaderImplHelpers.cs
index 3a031b70431..8d3dcd6f825 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextReaderImplHelpers.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextReaderImplHelpers.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlTextReaderHelpers.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextWriter.cs
index 731426702fc..c69a408361e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlTextWriter.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlTextWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
@@ -1364,8 +1364,8 @@ namespace System.Xml {
// Namespaces supported
if (namespaces) {
- // We can't use ValidateNames.ParseQName here because of backwards compatibility bug we need to preserve.
- // The bug is that the character after ':' is validated only as a NCName characters instead of NCStartName.
+ // We can't use ValidateNames.ParseQName here because of backwards compatibility
+
int colonPosition = -1;
// Parse NCName (may be prefix, may be local name)
@@ -1384,7 +1384,7 @@ namespace System.Xml {
// make sure it is not the first or last characters
if (position > 0 && position + 1 < nameLength) {
colonPosition = position;
- // Because of the back-compat bug (described above) parse the rest as Nmtoken
+ // Because of the back-compat
position++;
position += ValidateNames.ParseNmtoken(name, position);
goto Continue;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlUtf8RawTextWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlUtf8RawTextWriter.cs
index 881652d6dbe..8cbec68c906 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlUtf8RawTextWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlUtf8RawTextWriter.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlRawTextWriterGenerator.cxx" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
// WARNING: This file is generated and should not be modified directly. Instead,
@@ -360,8 +360,8 @@ namespace System.Xml {
internal override void WriteStartNamespaceDeclaration(string prefix) {
Debug.Assert( prefix != null );
- // VSTFDEVDIV bug #583965: Inconsistency between Silverlight 2 and Dev10 in the way a single xmlns attribute is serialized
- // Resolved as: Won't fix (breaking change)
+ // VSTFDEVDIV
+
if ( prefix.Length == 0 ) {
RawText( " xmlns=\"" );
@@ -1245,12 +1245,12 @@ namespace System.Xml {
private static unsafe byte* EncodeSurrogate( char* pSrc, char* pSrcEnd, byte* pDst ) {
Debug.Assert( XmlCharType.IsSurrogate( *pSrc ) );
-
int ch = *pSrc;
if ( ch <= XmlCharType.SurHighEnd ) {
if ( pSrc + 1 < pSrcEnd ) {
int lowChar = pSrc[1];
- if ( lowChar >= XmlCharType.SurLowStart ) {
+ if ( lowChar >= XmlCharType.SurLowStart &&
+ (LocalAppContextSwitches.DontThrowOnInvalidSurrogatePairs || lowChar <= XmlCharType.SurLowEnd)) {
// Calculate Unicode scalar value for easier manipulations (see section 3.7 in Unicode spec)
// The scalar value repositions surrogate values to start at 0x10000.
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlUtf8RawTextWriterAsync.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlUtf8RawTextWriterAsync.cs
index 3d5024d13ac..bce188d159c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlUtf8RawTextWriterAsync.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlUtf8RawTextWriterAsync.cs
@@ -210,8 +210,8 @@ namespace System.Xml {
CheckAsyncCall();
Debug.Assert( prefix != null );
- // VSTFDEVDIV bug #583965: Inconsistency between Silverlight 2 and Dev10 in the way a single xmlns attribute is serialized
- // Resolved as: Won't fix (breaking change)
+ // VSTFDEVDIV
+
#if SILVERLIGHT
if ( attrEndPos == bufPos ) {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlValidatingReader.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlValidatingReader.cs
index 5027da2ff84..9c997f14470 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlValidatingReader.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlValidatingReader.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlValidatingReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlValidatingReaderImpl.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlValidatingReaderImpl.cs
index 7836c255bcf..55d38028802 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlValidatingReaderImpl.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlValidatingReaderImpl.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlValidatingReaderImpl.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWellFormedWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWellFormedWriter.cs
index 30bf76c544b..27378cd7830 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWellFormedWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWellFormedWriter.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlWellFormedWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
@@ -1370,7 +1370,7 @@ namespace System.Xml {
}
}
else {
- // We do not pass the standalone value here - Dev10 Bug #479769
+ // We do not pass the standalone value here - Dev10
writer.WriteStartDocument();
}
}
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWellFormedWriterAsync.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWellFormedWriterAsync.cs
index 13d33b2c446..f38cc97dd1a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWellFormedWriterAsync.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWellFormedWriterAsync.cs
@@ -1013,7 +1013,7 @@ namespace System.Xml {
}
}
else {
- // We do not pass the standalone value here - Dev10 Bug #479769
+ // We do not pass the standalone value here - Dev10
await writer.WriteStartDocumentAsync().ConfigureAwait(false);
}
}
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWellFormedWriterHelpers.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWellFormedWriterHelpers.cs
index 6454136eac0..144d806e5a8 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWellFormedWriterHelpers.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWellFormedWriterHelpers.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlWellFormedWriterHelpers.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWrappingReader.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWrappingReader.cs
index 5aba9d28d19..0bddf6c93c6 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWrappingReader.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWrappingReader.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlWrappingReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWrappingWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWrappingWriter.cs
index 6176c6dd547..f73c5eb902d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWrappingWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWrappingWriter.cs
@@ -4,7 +4,7 @@
// <copyright file="XmlWrapingWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWriter.cs
index e580e8a9c23..f4ca61856cf 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWriter.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
@@ -102,7 +102,6 @@ namespace System.Xml {
// Writes out the attribute with the specified LocalName, value, and NamespaceURI.
#if !SILVERLIGHT
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
#endif
public void WriteAttributeString(string localName, string ns, string value) {
WriteStartAttribute(null, localName, ns);
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWriterAsync.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWriterAsync.cs
index e404920ed80..e799402b01e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWriterAsync.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWriterAsync.cs
@@ -64,7 +64,6 @@ namespace System.Xml {
// Writes out the attribute with the specified LocalName, value, and NamespaceURI.
#if !SILVERLIGHT
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
#endif
// Writes out the attribute with the specified prefix, LocalName, NamespaceURI and value.
public Task WriteAttributeStringAsync(string prefix, string localName, string ns, string value) {
@@ -264,7 +263,7 @@ namespace System.Xml {
// Copies the current node from the given reader to the writer (including child nodes), and if called on an element moves the XmlReader
// to the corresponding end element.
- //use [....] methods on the reader
+ //use sync methods on the reader
internal async Task WriteNodeAsync_CallSyncReader(XmlReader reader, bool defattr) {
bool canReadChunk = reader.CanReadValueChunk;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWriterSettings.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWriterSettings.cs
index 0e5d3e1b79b..d6da6521389 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWriterSettings.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XmlWriterSettings.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlWriterSettings.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XsdCachingReader.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XsdCachingReader.cs
index eabe7e09aad..2775de956b3 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XsdCachingReader.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XsdCachingReader.cs
@@ -3,7 +3,7 @@
// <copyright file="XsdCachingReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.IO;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Core/XsdValidatingReader.cs b/mcs/class/referencesource/System.Xml/System/Xml/Core/XsdValidatingReader.cs
index 78b479a94bf..1624db0c151 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Core/XsdValidatingReader.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Core/XsdValidatingReader.cs
@@ -3,7 +3,7 @@
// <copyright file="XsdValidatingReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.IO;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/DiagnosticsSwitches.cs b/mcs/class/referencesource/System.Xml/System/Xml/DiagnosticsSwitches.cs
index 18e16e93e08..aa2a2be4f2d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/DiagnosticsSwitches.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/DiagnosticsSwitches.cs
@@ -2,7 +2,7 @@
// <copyright file="DiagnosticsSwitches.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/DocumentSchemaValidator.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/DocumentSchemaValidator.cs
index 61467a7e28b..ad2afe144cb 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/DocumentSchemaValidator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/DocumentSchemaValidator.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlDocumentValidator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/DocumentXPathNavigator.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/DocumentXPathNavigator.cs
index 65156508850..519989144d3 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/DocumentXPathNavigator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/DocumentXPathNavigator.cs
@@ -2,7 +2,7 @@
// <copyright file="DocumentXPathNavigator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/DocumentXmlWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/DocumentXmlWriter.cs
index b81819b7f42..a593fc00fc2 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/DocumentXmlWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/DocumentXmlWriter.cs
@@ -2,7 +2,7 @@
// <copyright file="DocumentXmlWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/DomNameTable.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/DomNameTable.cs
index f804251dd2c..1887cf8fe5a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/DomNameTable.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/DomNameTable.cs
@@ -2,7 +2,7 @@
// <copyright file="DomNameTable.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XPathNodeList.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XPathNodeList.cs
index 72cce94b6ad..375f9c645bc 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XPathNodeList.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XPathNodeList.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathNodeList.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlAttribute.cs
index 3855bdfd97a..e7296819619 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
@@ -177,7 +177,6 @@ namespace System.Xml {
set { lastChild = value;}
}
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
internal override bool IsValidChildType( XmlNodeType type ) {
return(type == XmlNodeType.Text) || (type == XmlNodeType.EntityReference);
}
@@ -291,7 +290,6 @@ namespace System.Xml {
}
// Saves all the children of the node to the specified XmlWriter.
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
public override void WriteContentTo(XmlWriter w) {
for (XmlNode node = FirstChild; node != null; node = node.NextSibling) {
node.WriteTo(w);
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlAttributeCollection.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlAttributeCollection.cs
index 932c2c64499..bfe86a97079 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlAttributeCollection.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlAttributeCollection.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlAttributeCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
@@ -355,7 +355,6 @@ namespace System.Xml {
// for xml attributes within the collection with the same full name.
// This means that any caller of this function must be sure that
// a duplicate attribute does not exist.
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
internal XmlAttribute InternalAppendAttribute( XmlAttribute node ) {
// a duplicate node better not exist
Debug.Assert( -1 == FindNodeOffset( node ));
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlCDataSection.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlCDataSection.cs
index ad6aecfc164..b1f2676b1c9 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlCDataSection.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlCDataSection.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlCDATASection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
@@ -86,7 +86,7 @@ namespace System.Xml {
}
}
- internal override XmlNode PreviousText {
+ public override XmlNode PreviousText {
get {
if (parentNode.IsText) {
return parentNode;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlCharacterData.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlCharacterData.cs
index 6964ca59a5e..6797b896be4 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlCharacterData.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlCharacterData.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlCharacterData.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
using System.Diagnostics;
@@ -33,7 +33,6 @@ namespace System.Xml {
// Contains this node's data.
public virtual string Data {
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
get {
if (data != null) {
return data;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlChildEnumerator.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlChildEnumerator.cs
index 41a25efe245..d17bffe83c0 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlChildEnumerator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlChildEnumerator.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlChildEnumerator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlChildNodes.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlChildNodes.cs
index 6450c64f66f..391b5666768 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlChildNodes.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlChildNodes.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlChildNodes.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
using System.Collections;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlComment.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlComment.cs
index 087c7546a47..8e7289c899a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlComment.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlComment.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlComment.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDeclaration.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDeclaration.cs
index bd8ab0ef6df..8de8430a3dd 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDeclaration.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDeclaration.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlDeclaration.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDocument.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDocument.cs
index 18c2138d92b..03d419b0dc7 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDocument.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDocument.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlDocument.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml
@@ -739,7 +739,6 @@ namespace System.Xml
// Creates an XmlAttribute with the specified LocalName
// and NamespaceURI.
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
public XmlAttribute CreateAttribute( String qualifiedName, String namespaceURI ) {
string prefix = String.Empty;
string localName = String.Empty;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDocumentFragment.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDocumentFragment.cs
index 1ee01648cce..ef3e33eca40 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDocumentFragment.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDocumentFragment.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlDocumentFragment.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
// <code>DocumentFragment</code> is a "lightweight" or "minimal"
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDocumentType.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDocumentType.cs
index 27daa745e94..19ae68b987a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDocumentType.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDocumentType.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlDocumentType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDomTextWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDomTextWriter.cs
index 228d6ff1f9b..0369f5e1672 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDomTextWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlDomTextWriter.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlDomTextWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlElement.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlElement.cs
index 66171a9177f..e2d979845c2 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlElement.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlElement.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlElement.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlElementList.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlElementList.cs
index d76e66c2a1c..ef190d83c10 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlElementList.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlElementList.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlElementList.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlEntity.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlEntity.cs
index 3576d03a7c7..0522631c150 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlEntity.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlEntity.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlEntity.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlEntityReference.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlEntityReference.cs
index d9ee2866b8c..4bb982a1645 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlEntityReference.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlEntityReference.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlEntityReference.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
// <code>EntityReference</code> objects may be inserted into the structure
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlEventChangedAction.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlEventChangedAction.cs
index 299354886e4..f72f17ced6c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlEventChangedAction.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlEventChangedAction.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlEventChangedAction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">ionv</owner>
//------------------------------------------------------------------------------
namespace System.Xml
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlImplementation.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlImplementation.cs
index 0082d7faf2f..13711af70ed 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlImplementation.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlImplementation.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlImplementation.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Globalization;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlLinkedNode.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlLinkedNode.cs
index 0c29d1527be..9e62d467490 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlLinkedNode.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlLinkedNode.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlLinkedNode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlLoader.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlLoader.cs
index 988ab2d16b7..ca642eff400 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlLoader.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlLoader.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlLoader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlName.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlName.cs
index 0b972336130..dc217a6e60e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlName.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlName.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlName.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNamedNodemap.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNamedNodemap.cs
index 03ee6f5aa61..aa1f05e2844 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNamedNodemap.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNamedNodemap.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNamedNodeMap.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
@@ -52,7 +52,6 @@ namespace System.Xml {
// Gets the number of nodes in this XmlNamedNodeMap.
public virtual int Count {
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
get {
return nodes.Count;
}
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNode.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNode.cs
index 978a6abf585..d814e3d238d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNode.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNode.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
@@ -156,7 +156,6 @@ namespace System.Xml {
// Gets the first child of this node.
public virtual XmlNode FirstChild {
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
get {
XmlLinkedNode linkedNode = LastNode;
if (linkedNode != null)
@@ -180,7 +179,6 @@ namespace System.Xml {
set {}
}
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
internal bool AncestorNode(XmlNode node) {
XmlNode n = this.ParentNode;
@@ -724,7 +722,6 @@ namespace System.Xml {
// Gets a value indicating whether the node is read-only.
public virtual bool IsReadOnly {
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
get {
XmlDocument doc = OwnerDocument;
return HasReadOnlyParent( this );
@@ -888,7 +885,6 @@ namespace System.Xml {
// Removes all the children and/or attributes
// of the current node.
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
public virtual void RemoveAll() {
XmlNode child = FirstChild;
XmlNode sibling = null;
@@ -1061,7 +1057,6 @@ namespace System.Xml {
}
}
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
internal virtual void SetParent( XmlNode node ) {
if (node == null) {
this.parentNode = OwnerDocument;
@@ -1180,7 +1175,7 @@ namespace System.Xml {
}
}
- internal virtual XmlNode PreviousText {
+ public virtual XmlNode PreviousText {
get {
return null;
}
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeChangedEventArgs.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeChangedEventArgs.cs
index 617f0b54c51..ac4c5097ee9 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeChangedEventArgs.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeChangedEventArgs.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNodeChangedEventArgs.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeChangedEventHandler.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeChangedEventHandler.cs
index 38a6bb35c2a..8b103e51d6a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeChangedEventHandler.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeChangedEventHandler.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNodeChangedEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">ionv</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeList.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeList.cs
index 697ae92649c..d19afba0bc5 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeList.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeList.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNodeList.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeReader.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeReader.cs
index 514b79fb872..2ef079a486b 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeReader.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNodeReader.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNodeReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNotation.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNotation.cs
index 79be847a2ee..527bdcf6bf5 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNotation.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlNotation.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNotation.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlProcessingInstruction.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlProcessingInstruction.cs
index c940944befb..04d09502a53 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlProcessingInstruction.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlProcessingInstruction.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlProcessingInstruction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlSignificantWhiteSpace.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlSignificantWhiteSpace.cs
index dabc9454f68..d083222ae23 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlSignificantWhiteSpace.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlSignificantWhiteSpace.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSignificantWhiteSpace.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml
@@ -103,7 +103,7 @@ namespace System.Xml
}
}
- internal override XmlNode PreviousText {
+ public override XmlNode PreviousText {
get {
if (parentNode.IsText) {
return parentNode;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlText.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlText.cs
index be2e38ea4ed..52d74574103 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlText.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlText.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlText.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml
@@ -125,7 +125,7 @@ namespace System.Xml
}
}
- internal override XmlNode PreviousText {
+ public override XmlNode PreviousText {
get {
if (parentNode.IsText) {
return parentNode;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlUnspecifiedAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlUnspecifiedAttribute.cs
index c1a0974d0dd..fecd81cc57a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlUnspecifiedAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlUnspecifiedAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlUnspecifiedAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlWhitespace.cs b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlWhitespace.cs
index c83f732e3d2..3e0df6ab35e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlWhitespace.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Dom/XmlWhitespace.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlWhitespace.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml
@@ -103,7 +103,7 @@ namespace System.Xml
}
}
- internal override XmlNode PreviousText {
+ public override XmlNode PreviousText {
get {
if (parentNode.IsText) {
return parentNode;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/EmptyEnumerator.cs b/mcs/class/referencesource/System.Xml/System/Xml/EmptyEnumerator.cs
index b9c7f41d8d9..5d9787f1248 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/EmptyEnumerator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/EmptyEnumerator.cs
@@ -2,7 +2,7 @@
// <copyright file="EmptyEnumerator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/HWStack.cs b/mcs/class/referencesource/System.Xml/System/Xml/HWStack.cs
index c4e9d4e04cf..2f076f8c835 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/HWStack.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/HWStack.cs
@@ -2,7 +2,7 @@
// <copyright file="HWStack.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
@@ -52,12 +52,10 @@ namespace System.Xml {
return null;
}
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
internal object Peek() {
return this.used > 0 ? this.stack[this.used - 1] : null;
}
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
internal void AddToTop(object o) {
if (this.used > 0) {
this.stack[this.used - 1] = o;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/IHasXmlNode.cs b/mcs/class/referencesource/System.Xml/System/Xml/IHasXmlNode.cs
index 83e7ed5bbab..41f0fe185f5 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/IHasXmlNode.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/IHasXmlNode.cs
@@ -2,7 +2,7 @@
// <copyright file="IHasXmlNode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">ionv</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/IXmlLineInfo.cs b/mcs/class/referencesource/System.Xml/System/Xml/IXmlLineInfo.cs
index a5503a1775d..438840e1c1f 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/IXmlLineInfo.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/IXmlLineInfo.cs
@@ -2,7 +2,7 @@
// <copyright file="IXmlLineInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/IXmlNamespaceResolver.cs b/mcs/class/referencesource/System.Xml/System/Xml/IXmlNamespaceResolver.cs
index 44a2b95e05d..5b41c8f7365 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/IXmlNamespaceResolver.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/IXmlNamespaceResolver.cs
@@ -2,7 +2,7 @@
// <copyright file="IXmlNamespaceResolver.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/LineInfo.cs b/mcs/class/referencesource/System.Xml/System/Xml/LineInfo.cs
index 4095a490dfb..76afcce36bd 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/LineInfo.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/LineInfo.cs
@@ -2,7 +2,7 @@
// <copyright file="LineInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/MTNameTable.cs b/mcs/class/referencesource/System.Xml/System/Xml/MTNameTable.cs
index fa14fbf078f..9725425f040 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/MTNameTable.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/MTNameTable.cs
@@ -2,7 +2,7 @@
// <copyright file="MTNameTable.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
#if MTNAMETABLE
@@ -387,7 +387,7 @@ namespace System.Xml {
if (fLock) {
LockCookie lc = rwLock.UpgradeToWriterLock(timeout);
- // recheck for failsafe against -----condition
+ // recheck for failsafe against race-condition
if (rootNode == null) {
rootNode = newNode = new MTNameTableNode( ref name );
}
@@ -413,7 +413,7 @@ namespace System.Xml {
if (fLock) {
LockCookie lc = rwLock.UpgradeToWriterLock(timeout);
- // recheck for failsafe against -----condition
+ // recheck for failsafe against race-condition
if (node.leftNode == null) {
newNode = new MTNameTableNode( ref name );
node.leftNode = newNode;
@@ -443,7 +443,7 @@ namespace System.Xml {
if (fLock) {
LockCookie lc = rwLock.UpgradeToWriterLock(timeout);
- // recheck for failsafe against -----condition
+ // recheck for failsafe against race-condition
if (node.rightNode == null) {
newNode = new MTNameTableNode( ref name );
node.rightNode = newNode;
@@ -479,7 +479,7 @@ namespace System.Xml {
if (rwLock != null) {
LockCookie lc = rwLock.UpgradeToWriterLock(timeout);
- // recheck for failsafe against -----condition
+ // recheck for failsafe against race-condition
if (node != rootNode &&
node.counter > threshhold &&
node.counter > node.parentNode.counter * 2) {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/NameTable.cs b/mcs/class/referencesource/System.Xml/System/Xml/NameTable.cs
index debdacdd399..9ffc2ff5e5d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/NameTable.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/NameTable.cs
@@ -2,7 +2,7 @@
// <copyright file="NameTable.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Ref.cs b/mcs/class/referencesource/System.Xml/System/Xml/Ref.cs
index f90790b1014..8df1dc31348 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Ref.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Ref.cs
@@ -2,7 +2,7 @@
// <copyright file="Ref.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Resolvers/XmlKnownDtds.cs b/mcs/class/referencesource/System.Xml/System/Xml/Resolvers/XmlKnownDtds.cs
index a2d2e38100b..bfca0226c36 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Resolvers/XmlKnownDtds.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Resolvers/XmlKnownDtds.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlKnownDtds.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Resolvers {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Resolvers/XmlPreloadedResolver.cs b/mcs/class/referencesource/System.Xml/System/Xml/Resolvers/XmlPreloadedResolver.cs
index 69f9f41d753..e3b347a5174 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Resolvers/XmlPreloadedResolver.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Resolvers/XmlPreloadedResolver.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlPreloadedResolver.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.IO;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Resolvers/XmlPreloadedResolverAsync.cs b/mcs/class/referencesource/System.Xml/System/Xml/Resolvers/XmlPreloadedResolverAsync.cs
index 01cde42a300..109c6e6ad6d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Resolvers/XmlPreloadedResolverAsync.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Resolvers/XmlPreloadedResolverAsync.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlPreloadedResolver.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.IO;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/Asttree.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/Asttree.cs
index 48074ea4573..31facd0a744 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/Asttree.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/Asttree.cs
@@ -2,7 +2,7 @@
// <copyright file="asttree.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/AutoValidator.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/AutoValidator.cs
index a18d39a6b1b..33231373d7d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/AutoValidator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/AutoValidator.cs
@@ -2,7 +2,7 @@
// <copyright file="AutoValidator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/BaseProcessor.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/BaseProcessor.cs
index 287f39f7a7f..e6cf4bd1ed6 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/BaseProcessor.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/BaseProcessor.cs
@@ -2,7 +2,7 @@
// <copyright file="BaseProcessor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/BaseValidator.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/BaseValidator.cs
index a41795d1868..7726307277a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/BaseValidator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/BaseValidator.cs
@@ -2,7 +2,7 @@
// <copyright file="BaseValidator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/BitSet.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/BitSet.cs
index 564c593ce4a..f8573bbcf9d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/BitSet.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/BitSet.cs
@@ -2,7 +2,7 @@
// <copyright file="BitSet.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/Chameleonkey.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/Chameleonkey.cs
index 2cf8040e573..b487289d78e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/Chameleonkey.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/Chameleonkey.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaExternal.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/CompiledidEntityConstraint.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/CompiledidEntityConstraint.cs
index afe0acdf73e..d6bb8a5ea76 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/CompiledidEntityConstraint.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/CompiledidEntityConstraint.cs
@@ -2,7 +2,7 @@
// <copyright file="CompiledIdentityConstraint.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/ConstraintStruct.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/ConstraintStruct.cs
index 251dfb42d70..468d82b7431 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/ConstraintStruct.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/ConstraintStruct.cs
@@ -2,7 +2,7 @@
// <copyright file="ConstraintStruct.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
@@ -386,58 +386,83 @@ namespace System.Xml.Schema {
}
hashcode = 0; // indicate it's changed. even the calculated hashcode below is 0
for (int i = 0; i < this.ks.Length; i ++) {
- // extract its primitive value to calculate hashcode
- // decimal is handled differently to enable among different CLR types
- this.ks[i].SetDecimal();
- if (this.ks[i].IsDecimal) {
- for (int j = 0 ; j < this.ks[i].Dim ; j ++) {
- hashcode += this.ks[i].Dvalue[j].GetHashCode();
- }
- }
- //
- else {
- Array arr = this.ks[i].Value as System.Array;
- if (arr != null) {
- XmlAtomicValue[] atomicValues = arr as XmlAtomicValue[];
- if (atomicValues != null) {
- for (int j = 0 ; j < atomicValues.Length ; j ++) {
- hashcode += ((XmlAtomicValue)atomicValues.GetValue(j)).TypedValue.GetHashCode();
- }
- }
- else {
- for (int j = 0 ; j < ((Array) this.ks[i].Value).Length ; j ++) {
- hashcode += ((Array) this.ks[i].Value).GetValue(j).GetHashCode();
- }
- }
- }
- else { //not a list
- hashcode += this.ks[i].Value.GetHashCode();
- }
- }
+ if (this.ks[i] != null) {
+ // extract its primitive value to calculate hashcode
+ // decimal is handled differently to enable among different CLR types
+ this.ks[i].SetDecimal();
+ if (this.ks[i].IsDecimal) {
+ for (int j = 0 ; j < this.ks[i].Dim ; j ++) {
+ hashcode += this.ks[i].Dvalue[j].GetHashCode();
+ }
+ }
+ //
+ else {
+ Array arr = this.ks[i].Value as System.Array;
+ if (arr != null) {
+ XmlAtomicValue[] atomicValues = arr as XmlAtomicValue[];
+ if (atomicValues != null) {
+ for (int j = 0 ; j < atomicValues.Length ; j ++) {
+ hashcode += ((XmlAtomicValue)atomicValues.GetValue(j)).TypedValue.GetHashCode();
+ }
+ }
+ else {
+ for (int j = 0 ; j < ((Array) this.ks[i].Value).Length ; j ++) {
+ hashcode += ((Array) this.ks[i].Value).GetValue(j).GetHashCode();
+ }
+ }
+ }
+ else { //not a list
+ hashcode += this.ks[i].Value.GetHashCode();
+ }
+ }
+ }
}
return hashcode;
}
// considering about derived type
public override bool Equals(object other) {
- // each key sequence member can have different type
- KeySequence keySequence = (KeySequence)other;
- for (int i = 0; i < this.ks.Length; i ++) {
- if (! this.ks[i].Equals (keySequence.ks[i])) {
- return false;
+ if (LocalAppContextSwitches.IgnoreEmptyKeySequences) {
+ // each key sequence member can have different type
+ KeySequence keySequence = (KeySequence)other;
+ for (int i = 0; i < this.ks.Length; i++) {
+ if (!this.ks[i].Equals(keySequence.ks[i])) {
+ return false;
+ }
}
+ return true;
+ }
+ else {
+ // each key sequence member can have different type
+ KeySequence keySequence = (KeySequence)other;
+ for (int i = 0; i < this.ks.Length; i++) {
+ if (!(this.ks[i] == null && keySequence.ks[i] == null) && (this.ks[i] == null || keySequence.ks[i] == null || !this.ks[i].Equals(keySequence.ks[i]))) {
+ return false;
+ }
+ }
+ return true;
}
- return true;
}
public override string ToString() {
- StringBuilder sb = new StringBuilder();
- sb.Append(this.ks[0].ToString());
- for (int i = 1; i < this.ks.Length; i ++) {
- sb.Append(" ");
- sb.Append(this.ks[i].ToString());
+ if (LocalAppContextSwitches.IgnoreEmptyKeySequences) {
+ StringBuilder sb = new StringBuilder();
+ sb.Append(this.ks[0].ToString());
+ for (int i = 1; i < this.ks.Length; i++) {
+ sb.Append(" ");
+ sb.Append(this.ks[i].ToString());
+ }
+ return sb.ToString();
+ }
+ else {
+ StringBuilder sb = new StringBuilder();
+ sb.Append(this.ks[0].ToString());
+ for (int i = 1; i < this.ks.Length; i++) {
+ sb.Append(" ");
+ sb.Append(this.ks[i] == null ? "{}" : this.ks[i].ToString());
+ }
+ return sb.ToString();
}
- return sb.ToString();
}
}
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/ContentValidator.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/ContentValidator.cs
index fcee874bde1..a2eb25b667e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/ContentValidator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/ContentValidator.cs
@@ -2,7 +2,7 @@
// <copyright file="ContentValidator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/DataTypeImplementation.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/DataTypeImplementation.cs
index efeab36444b..2e85e186606 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/DataTypeImplementation.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/DataTypeImplementation.cs
@@ -2,7 +2,7 @@
// <copyright file="DatatypeImplementation.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
@@ -805,7 +805,7 @@ namespace System.Xml.Schema {
return 0;
}
-#if PRIYAL
+#if Microsoft
protected object GetValueToCheck(object value, IXmlNamespaceResolver nsmgr) {
object valueToCheck = value;
string resId;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/DtdParser.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/DtdParser.cs
index a9d85fc2028..c72fe649f08 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/DtdParser.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/DtdParser.cs
@@ -3,7 +3,7 @@
// <copyright file="DtdParser.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/DtdValidator.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/DtdValidator.cs
index f103e3da01f..086df1b395f 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/DtdValidator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/DtdValidator.cs
@@ -2,7 +2,7 @@
// <copyright file="DtdValidator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/FacetChecker.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/FacetChecker.cs
index 398a2aa5259..ea32d7099ff 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/FacetChecker.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/FacetChecker.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaFacet.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/IXmlSchemaInfo.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/IXmlSchemaInfo.cs
index c74a811bc41..d687f8adce7 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/IXmlSchemaInfo.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/IXmlSchemaInfo.cs
@@ -2,7 +2,7 @@
// <copyright file="IXmlSchemaInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">priyal</owner>
//------------------------------------------------------------------------------
using System.Xml;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/Inference/Infer.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/Inference/Infer.cs
index 6fdbc73d6ab..49254264120 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/Inference/Infer.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/Inference/Infer.cs
@@ -2,8 +2,8 @@
// <copyright file="Infer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/Inference/XmlSchemaInferenceException.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/Inference/XmlSchemaInferenceException.cs
index d41c45f148a..69a3156bffc 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/Inference/XmlSchemaInferenceException.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/Inference/XmlSchemaInferenceException.cs
@@ -2,8 +2,8 @@
// <copyright file="XmlSchemaInferenceException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
-// <owner current="false" primary="false">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
+// <owner current="false" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/NamespaceList.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/NamespaceList.cs
index 7cb6a8a33bb..93ecf3f6045 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/NamespaceList.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/NamespaceList.cs
@@ -2,7 +2,7 @@
// <copyright file="NamespaceList.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/Parser.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/Parser.cs
index 4f38bf400c6..e296e7446af 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/Parser.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/Parser.cs
@@ -3,7 +3,7 @@
// <copyright file="Parser.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/Preprocessor.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/Preprocessor.cs
index e7dd3880acb..06af064697a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/Preprocessor.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/Preprocessor.cs
@@ -2,7 +2,7 @@
// <copyright file="Preprocessor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaAttDef.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaAttDef.cs
index 48becdf5bb6..0cd4d5757ad 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaAttDef.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaAttDef.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaAttDef.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaBuilder.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaBuilder.cs
index 24fc603f1d0..7745ad8b9b9 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaBuilder.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaBuilder.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">priyal</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaCollectionCompiler.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaCollectionCompiler.cs
index 314986435ec..7dfc0226e89 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaCollectionCompiler.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaCollectionCompiler.cs
@@ -2,7 +2,7 @@
// <copyright file="Compiler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
@@ -678,8 +678,8 @@ namespace System.Xml.Schema {
if (baseType.ContentType == XmlSchemaContentType.TextOnly) {
if (simpleRestriction.BaseType == null) {
datatype = baseType.Datatype;
- //There is a bug here. Need to check if simpleRestriction has facets.
- //If yes, Need tp apply these facets as well.
+ //There is a
+
}
else {
CompileSimpleType(simpleRestriction.BaseType);
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaCollectionpreProcessor.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaCollectionpreProcessor.cs
index 82e40815021..f2fa40056ce 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaCollectionpreProcessor.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaCollectionpreProcessor.cs
@@ -2,7 +2,7 @@
// <copyright file="Preprocessor.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaDeclBase.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaDeclBase.cs
index 65c11d09ccd..22f1d1dc82f 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaDeclBase.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaDeclBase.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaDeclBase.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaElementDecl.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaElementDecl.cs
index 52d641f925a..345c89d131f 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaElementDecl.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaElementDecl.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaElementDecl.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaEntity.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaEntity.cs
index c0c96d0d9b3..f326c5bfee8 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaEntity.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaEntity.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaEntity.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaInfo.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaInfo.cs
index 6429bcad31a..294ef6a3525 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaInfo.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaInfo.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaNames.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaNames.cs
index 6ca87fd757b..69b23b05edb 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaNames.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaNames.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaNames.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaNamespacemanager.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaNamespacemanager.cs
index af750839a04..ee380b1c171 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaNamespacemanager.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaNamespacemanager.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaNamespaceManager.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaNotation.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaNotation.cs
index 2c9604ce581..e156aa006f1 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaNotation.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaNotation.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaNotation.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaSetCompiler.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaSetCompiler.cs
index d1dc9412e2b..02ce25bc61e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaSetCompiler.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaSetCompiler.cs
@@ -2,7 +2,7 @@
// <copyright file="Compiler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
@@ -591,7 +591,7 @@ namespace System.Xml.Schema {
}
//Now add the baseTypes that are defined inside the union itself
- XmlSchemaObjectCollection mainBaseTypes = mainUnion.BaseTypes; //TODO check for null
+ XmlSchemaObjectCollection mainBaseTypes = mainUnion.BaseTypes; //
if (mainBaseTypes != null) {
for (int i = 0; i < mainBaseTypes.Count; ++i) {
XmlSchemaSimpleType st = (XmlSchemaSimpleType)mainBaseTypes[i];
@@ -736,8 +736,8 @@ namespace System.Xml.Schema {
if (baseType.ContentType == XmlSchemaContentType.TextOnly) {
if (simpleRestriction.BaseType == null) {
datatype = baseType.Datatype;
- //There is a bug here. Need to check if simpleRestriction has facets.
- //If yes, Need tp apply these facets as well.
+ //There is a
+
}
else {
CompileSimpleType(simpleRestriction.BaseType);
@@ -1365,7 +1365,7 @@ namespace System.Xml.Schema {
return true;
}
-#if PRIYAL
+#if Microsoft
private bool IsElementFromGroupBase(XmlSchemaElement derivedElement, XmlSchemaGroupBase baseGroupBase, bool skipEmptableOnly) {
if (!IsRangeSimple(baseGroupBase.MinOccurs, baseGroupBase.MaxOccurs) || !IsRangeSimple(derivedElement.MinOccurs, derivedElement.MaxOccurs)) {
return IsElementFromGroupBase(derivedElement, baseGroupBase); //SPEC COMPLIANT
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaType.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaType.cs
index 439fde6203d..2cedc39cd44 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaType.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/SchemaType.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">priyal</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/ValidationEventArgs.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/ValidationEventArgs.cs
index 8cce19ff1e3..779280b7e56 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/ValidationEventArgs.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/ValidationEventArgs.cs
@@ -2,7 +2,7 @@
// <copyright file="ValidationEventArgs.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/ValidationEventHandler.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/ValidationEventHandler.cs
index 560f9b96f15..531fc2b6780 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/ValidationEventHandler.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/ValidationEventHandler.cs
@@ -2,7 +2,7 @@
// <copyright file="ValidationEventHandler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">priyal</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/ValidationState.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/ValidationState.cs
index 8d60154dbd8..8efbae5e523 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/ValidationState.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/ValidationState.cs
@@ -2,7 +2,7 @@
// <copyright file="validationstate.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XdrBuilder.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XdrBuilder.cs
index d19527ca7bf..fb5d270570c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XdrBuilder.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XdrBuilder.cs
@@ -2,7 +2,7 @@
// <copyright file="XdrBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XdrValidator.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XdrValidator.cs
index 232088c901c..1f68d23b747 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XdrValidator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XdrValidator.cs
@@ -2,7 +2,7 @@
// <copyright file="XdrValidator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlAtomicValue.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlAtomicValue.cs
index b5f81386b5d..20356ef46d4 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlAtomicValue.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlAtomicValue.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlAtomicValue.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchema.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchema.cs
index 569b5bf53f8..58e4d475e4f 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchema.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchema.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchema.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAll.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAll.cs
index 2b84df839a5..049a900b69a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAll.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAll.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaAll.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAnnotated.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAnnotated.cs
index 48c108af70d..836e430db5b 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAnnotated.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAnnotated.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaAnnotated.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAnnotation.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAnnotation.cs
index c3a052d0e9b..9fd7fd10fad 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAnnotation.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAnnotation.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaAnnotation.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAny.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAny.cs
index a57e92753e9..a811ed67ead 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAny.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAny.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaAny.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAnyAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAnyAttribute.cs
index c1fc904490e..8eb31c7318e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAnyAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAnyAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaAnyAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAppInfo.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAppInfo.cs
index c738d792ab4..aba46e610ac 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAppInfo.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAppInfo.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaAppInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAttribute.cs
index 30eebaaac9b..4920ccbbe76 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAttributeGroup.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAttributeGroup.cs
index f05e75f10d9..46ee40ef02a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAttributeGroup.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAttributeGroup.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaAttributeGroup.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAttributeGroupref.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAttributeGroupref.cs
index d42202a8fd1..b69122fe37e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAttributeGroupref.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaAttributeGroupref.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaAttributeGroupRef.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaChoice.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaChoice.cs
index db19ae6e296..9e4e15769c8 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaChoice.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaChoice.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaChoice.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaCollection.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaCollection.cs
index 38b1e024040..23f4a3c219d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaCollection.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaCollection.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaCompilationSettings.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaCompilationSettings.cs
index babedcc1c1e..c0544a1627a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaCompilationSettings.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaCompilationSettings.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaDerivationMethod.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexContent.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexContent.cs
index 87560df0c53..7fd72fb3964 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexContent.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexContent.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaComplexContent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexContentExtension.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexContentExtension.cs
index 8404e53b5ca..ba4213a297c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexContentExtension.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexContentExtension.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaComplexContentExtension.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexContentRestriction.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexContentRestriction.cs
index 522d6354430..1879a3b34f4 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexContentRestriction.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexContentRestriction.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaComplexContentRestriction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexType.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexType.cs
index 1db07809ced..0ce2f136c9a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexType.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaComplexType.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaComplexType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContent.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContent.cs
index 5f1e50f4617..7e1c5a13ca8 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContent.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContent.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaContent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">priyal</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContentModel.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContentModel.cs
index b3f5e117e94..e34cd13b049 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContentModel.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContentModel.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaContentModel.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">priyal</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContentProcessing.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContentProcessing.cs
index b948de44a13..fb360660915 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContentProcessing.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContentProcessing.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaContentProcessing.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">priyal</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContentType.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContentType.cs
index 2b5101c9dd6..d46872b9e9e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContentType.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaContentType.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaContentType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">priyal</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaDataType.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaDataType.cs
index 164891340ec..28bd99b2d0e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaDataType.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaDataType.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaDatatype.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections;
using System.Diagnostics;
@@ -337,7 +337,7 @@ namespace System.Xml.Schema {
return canonicalUri;
}
-#if PRIYAL
+#if Microsoft
private bool CanConvert(object value, System.Type inputType, System.Type defaultType, out string resId) {
resId = null;
decimal decimalValue;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaDerivationMethod.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaDerivationMethod.cs
index 4915f1de506..2b28c6af49a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaDerivationMethod.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaDerivationMethod.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaDerivationMethod.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">priyal</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaDocumentation.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaDocumentation.cs
index 8468b38d253..a3d46ffb9b4 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaDocumentation.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaDocumentation.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaDocumentation.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaElement.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaElement.cs
index fd7e91449db..52604d9313e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaElement.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaElement.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaElement.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.ComponentModel;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaException.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaException.cs
index 508c058bbac..6f9aebccae7 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaException.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaException.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaExternal.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaExternal.cs
index 29f2d0d732a..b5e41e694c1 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaExternal.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaExternal.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaExternal.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaFacet.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaFacet.cs
index df6402047e8..1a54786975e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaFacet.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaFacet.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaFacet.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaForm.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaForm.cs
index 4b93e020625..81292150e67 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaForm.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaForm.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaForm.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">priyal</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaGroup.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaGroup.cs
index 0453e2f6d0d..df6049d0ce0 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaGroup.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaGroup.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaGroup.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaGroupBase.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaGroupBase.cs
index 2550f24a809..ab850613a17 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaGroupBase.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaGroupBase.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaGroupbase.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">priyal</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaGroupRef.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaGroupRef.cs
index 8f6bfd74f6c..973cfbf60bf 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaGroupRef.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaGroupRef.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaGroupRef.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaIdEntityConstraint.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaIdEntityConstraint.cs
index 94ff513cdef..768a05dfb6d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaIdEntityConstraint.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaIdEntityConstraint.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaIdentityConstraint.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaImport.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaImport.cs
index 4683a0a74ea..68aa2a3febb 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaImport.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaImport.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaImport.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaInclude.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaInclude.cs
index 143944e44b7..a7d9fc83822 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaInclude.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaInclude.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaInclude.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaInfo.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaInfo.cs
index 81d503a1354..e8a764df589 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaInfo.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaInfo.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Xml;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaNotation.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaNotation.cs
index 38178eccd12..cc14abe77f5 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaNotation.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaNotation.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaNotation.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaObject.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaObject.cs
index 7c42f39bca9..70c41758f02 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaObject.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaObject.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaObject.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaObjectCollection.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaObjectCollection.cs
index a3e46ec075b..aa392aea9cb 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaObjectCollection.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaObjectCollection.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaObjectCollection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaObjectTable.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaObjectTable.cs
index 5277ce63985..ff82368dd7f 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaObjectTable.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaObjectTable.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaObjectTable.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaParticle.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaParticle.cs
index 7ed178dbe3f..4317b730247 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaParticle.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaParticle.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaParticle.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaRedefine.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaRedefine.cs
index baa659da8f4..1eb572a43bd 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaRedefine.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaRedefine.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaRedefine.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSequence.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSequence.cs
index 9ea17ae0942..73a32972555 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSequence.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSequence.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaSequence.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSet.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSet.cs
index ab9d27e27b7..bffc4b7cf5c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSet.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSet.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaSet.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Diagnostics;
using System.Collections;
@@ -598,11 +598,11 @@ namespace System.Xml.Schema {
/// <para>[To be supplied.]</para>
/// </devdoc>
public XmlSchema Reprocess(XmlSchema schema) {
- // Due to bug 644477 - this method is tightly coupled (THE CODE IS BASICALLY COPIED) to Remove, Add and AddSchemaToSet
- // methods. If you change anything here *make sure* to update Remove/Add/AddSchemaToSet method(s) accordingly.
- // The only difference is that we don't touch .schemas collection here to not break a code like this:
- // foreach(XmlSchema s in schemaset.schemas) { schemaset.Reprocess(s); }
- // This is by purpose.
+ // Due to
+
+
+
+
if (schema == null) {
throw new ArgumentNullException("schema");
}
@@ -718,8 +718,8 @@ namespace System.Xml.Schema {
//Internal Methods
private XmlSchema Add(string targetNamespace, XmlSchema schema) {
- // Due to bug 644477 - this method is tightly coupled (THE CODE IS BASICALLY COPIED) to Reprocess
- // method. If you change anything here *make sure* to update Reprocess method accordingly.
+ // Due to
+
if (schema == null || schema.ErrorCount != 0) { //Schema with parsing errors cannot be loaded
return null;
@@ -908,8 +908,8 @@ namespace System.Xml.Schema {
}
private void AddSchemaToSet(XmlSchema schema) {
- // Due to bug 644477 - this method is tightly coupled (THE CODE IS BASICALLY COPIED) to Reprocess
- // method. If you change anything here *make sure* to update Reprocess method accordingly.
+ // Due to
+
schemas.Add(schema.SchemaId, schema);
//Add to targetNamespaces table
@@ -998,8 +998,8 @@ namespace System.Xml.Schema {
}
internal XmlSchema Remove(XmlSchema schema, bool forceCompile) {
- // Due to bug 644477 - this method is tightly coupled (THE CODE IS BASICALLY COPIED) to Reprocess
- // method. If you change anything here *make sure* to update Reprocess method accordingly.
+ // Due to
+
if (schema == null) {
throw new ArgumentNullException("schema");
}
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleContent.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleContent.cs
index 72b8e838caf..09e12ca1d75 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleContent.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleContent.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaSimpleContent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleContentExtension.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleContentExtension.cs
index bd843c6000e..518fc1a80bc 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleContentExtension.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleContentExtension.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaSimpleContentExtension.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleContentRestriction.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleContentRestriction.cs
index 44ba849574d..6d5572294ba 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleContentRestriction.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleContentRestriction.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaSimpleContentRestriction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleType.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleType.cs
index fc2d9a63660..7c5f4e01c9c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleType.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleType.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaSimpleType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeContent.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeContent.cs
index 515230f7e38..1bd1b920d29 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeContent.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeContent.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaSimpleTypeContent.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">priyal</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeList.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeList.cs
index b61ad2ced9f..e4c1d46e3fd 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeList.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeList.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaSimpleTypeList.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeRestriction.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeRestriction.cs
index 00a50e25d25..ed297392f4c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeRestriction.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeRestriction.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaSimpleTypeRestriction.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeUnion.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeUnion.cs
index 7b0f5d209c1..b79aa843e8f 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeUnion.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSimpleTypeUnion.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaSimpleTypeUnion.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSubstitutionGroup.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSubstitutionGroup.cs
index 57c12831054..8a9a38a1f63 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSubstitutionGroup.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaSubstitutionGroup.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaSubstitutionGroup.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaType.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaType.cs
index 033fa6c43a3..03330c7440b 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaType.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaType.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaUse.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaUse.cs
index 35e1c5d26ee..5daf316edfa 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaUse.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaUse.cs
@@ -2,14 +2,14 @@
// <copyright file="XmlSchemaUse.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">priyal</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
using System.Xml.Serialization;
- //[....]: if change the enum, have to change xsdbuilder as well.
+ //nzeng: if change the enum, have to change xsdbuilder as well.
/// <include file='doc\XmlSchemaUse.uex' path='docs/doc[@for="XmlSchemaUse"]/*' />
/// <devdoc>
/// <para>[To be supplied.]</para>
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaValidationException.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaValidationException.cs
index 7f6719ef19b..855c9e0cb04 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaValidationException.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaValidationException.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaValidationException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaValidator.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaValidator.cs
index 566c416dc80..05b3b5784a1 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaValidator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaValidator.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaValidator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
@@ -2006,8 +2006,10 @@ namespace System.Xml.Schema {
break;
case CompiledIdentityConstraint.ConstraintRole.Unique:
- if (! ks.IsQualified()) {
- continue;
+ if (LocalAppContextSwitches.IgnoreEmptyKeySequences) {
+ if (!ks.IsQualified()) {
+ continue;
+ }
}
if (constraints[i].qualifiedTable.Contains (ks)) {
// unique or key checking confliction
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaValidity.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaValidity.cs
index 028b0fdb5d3..e1b606255a4 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaValidity.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSchemaValidity.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaValidity.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">priyal</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSeverityType.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSeverityType.cs
index e6ad37909d4..b5c1e212b84 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSeverityType.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlSeverityType.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSeverityType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">priyal</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlTokenizedType.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlTokenizedType.cs
index 97e1d4aea76..d5ba4009315 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlTokenizedType.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlTokenizedType.cs
@@ -2,13 +2,13 @@
// <copyright file="XmlTokenizedType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
- // NOTE: Absolute numbering is utilized in DtdParser. -[....]
+ // NOTE: Absolute numbering is utilized in DtdParser. -HelenaK
public enum XmlTokenizedType {
CDATA = 0,
ID = 1,
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlTypeCode.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlTypeCode.cs
index e0eb0a13d42..6da8ed63f07 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlTypeCode.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlTypeCode.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlTypeCode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">priyal</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlValueConverter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlValueConverter.cs
index 02ccfd06efd..10742ccec7a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlValueConverter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XmlValueConverter.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlValueConverter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Xml;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdBuilder.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdBuilder.cs
index 21c0ddc0ef2..1b003a79e6c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdBuilder.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdBuilder.cs
@@ -2,7 +2,7 @@
// <copyright file="XsdBuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdDateTime.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdDateTime.cs
index 41b2d722397..923651d28f1 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdDateTime.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdDateTime.cs
@@ -2,7 +2,7 @@
// <copyright file="XsdDuration.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdDuration.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdDuration.cs
index cd8d5636463..8efe7a1fb04 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdDuration.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdDuration.cs
@@ -2,7 +2,7 @@
// <copyright file="XsdDuration.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdValidator.cs b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdValidator.cs
index 32f4e92753b..eeed4aecae0 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdValidator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Schema/XsdValidator.cs
@@ -2,7 +2,7 @@
// <copyright file="XsdValidator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Schema {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Advanced/SchemaImporterExtension.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Advanced/SchemaImporterExtension.cs
index 405b942ee9a..c619b6c7a35 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Advanced/SchemaImporterExtension.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Advanced/SchemaImporterExtension.cs
@@ -2,7 +2,7 @@
// <copyright file="IXmlSerializable.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization.Advanced {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeExporter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeExporter.cs
index c8008dda704..4b1cfbc7ec0 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeExporter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeExporter.cs
@@ -2,7 +2,7 @@
// <copyright file="CodeExporter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
@@ -158,6 +158,7 @@ namespace System.Xml.Serialization {
internal abstract void EnsureTypesExported(Accessor[] accessors, string ns);
internal static void AddWarningComment(CodeCommentStatementCollection comments, string text) {
+ Debug.Assert(comments != null);
comments.Add(new CodeCommentStatement(Res.GetString(Res.XmlCodegenWarningDetails, text), false));
}
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeGenerationoptions.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeGenerationoptions.cs
index 6e61dd01c00..37cbb44fb37 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeGenerationoptions.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeGenerationoptions.cs
@@ -2,7 +2,7 @@
// <copyright file="CodeGenerationOptions.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">ElenaK</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeGenerator.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeGenerator.cs
index 3f933eebef6..a01f38828d5 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeGenerator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeGenerator.cs
@@ -2,7 +2,7 @@
// <copyright file="CodeGenerator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeIdentifier.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeIdentifier.cs
index 324f1af2129..c0dea737d73 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeIdentifier.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeIdentifier.cs
@@ -2,7 +2,7 @@
// <copyright file="CodeIdentifier.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeIdentifiers.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeIdentifiers.cs
index 1213c82f2b3..33c37fb941c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeIdentifiers.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/CodeIdentifiers.cs
@@ -2,7 +2,7 @@
// <copyright file="CodeIdentifiers.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Compilation.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Compilation.cs
index 8ca9ba646d1..b34385a1dff 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Compilation.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Compilation.cs
@@ -2,7 +2,7 @@
// <copyright file="Compilation.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Compiler.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Compiler.cs
index a415250e5f2..1cd1c6499b4 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Compiler.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Compiler.cs
@@ -2,7 +2,7 @@
// <copyright file="Compiler.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/ConfigurationStrings.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/ConfigurationStrings.cs
index 76688cdf0d5..34b7f45b42f 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/ConfigurationStrings.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/ConfigurationStrings.cs
@@ -2,7 +2,7 @@
// <copyright file="ConfigurationStrings.cs" company="Microsoft Corporation">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization.Configuration
{
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/DateTimeSerializationSection.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/DateTimeSerializationSection.cs
index 88518da10ee..05f3d9bfcb3 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/DateTimeSerializationSection.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/DateTimeSerializationSection.cs
@@ -2,7 +2,7 @@
// <copyright file="DateTimeSerializationSection.cs" company="Microsoft Corporation">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
#if CONFIGURATION_DEP
namespace System.Xml.Serialization.Configuration
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SchemaImporterExtensionElement.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SchemaImporterExtensionElement.cs
index 1d0e2f2b296..8a5c5b1dd1b 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SchemaImporterExtensionElement.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SchemaImporterExtensionElement.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaImporterExtensionElement.cs" company="Microsoft Corporation">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
#if CONFIGURATION_DEP
namespace System.Xml.Serialization.Configuration
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SchemaImporterExtensionElementCollection.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SchemaImporterExtensionElementCollection.cs
index 1bfc52aadbf..c7eeb00c76f 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SchemaImporterExtensionElementCollection.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SchemaImporterExtensionElementCollection.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaImporterExtensionElementCollection.cs" company="Microsoft Corporation">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
#if CONFIGURATION_DEP
namespace System.Xml.Serialization.Configuration
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SchemaImporterExtensionsSection.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SchemaImporterExtensionsSection.cs
index c8aad1da1f5..924ef8c6deb 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SchemaImporterExtensionsSection.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SchemaImporterExtensionsSection.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaImporterExtensionsSection.cs" company="Microsoft Corporation">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
#if CONFIGURATION_DEP
namespace System.Xml.Serialization.Configuration
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SerializationSectionGroup.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SerializationSectionGroup.cs
index cd4a4d9ba1e..8dd0bc90735 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SerializationSectionGroup.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Configuration/SerializationSectionGroup.cs
@@ -2,7 +2,7 @@
// <copyright file="SerializationSectionGroup.cs" company="Microsoft Corporation">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
#if CONFIGURATION_DEP
namespace System.Xml.Serialization.Configuration
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/IXmlSerializable.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/IXmlSerializable.cs
index aa6581fecd5..d0dad7ed744 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/IXmlSerializable.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/IXmlSerializable.cs
@@ -2,7 +2,7 @@
// <copyright file="IXmlSerializable.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">ElenaK</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/IXmlTextParser.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/IXmlTextParser.cs
index e9acdbaf203..e2b2f8fb31e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/IXmlTextParser.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/IXmlTextParser.cs
@@ -2,7 +2,7 @@
// <copyright file="SafeWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">ElenaK</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/ImportContext.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/ImportContext.cs
index b4691e75a0f..3e32d3119cf 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/ImportContext.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/ImportContext.cs
@@ -2,7 +2,7 @@
// <copyright file="ImportContext.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Mappings.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Mappings.cs
index b1143fdd1a0..b8be09a3a88 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Mappings.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Mappings.cs
@@ -2,7 +2,7 @@
// <copyright file="Mappings.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Models.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Models.cs
index a555726ea07..adeb663175a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Models.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Models.cs
@@ -2,7 +2,7 @@
// <copyright file="Models.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/NameTable.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/NameTable.cs
index eb9a3973a10..9df48e3668e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/NameTable.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/NameTable.cs
@@ -2,7 +2,7 @@
// <copyright file="NameTable.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/PrimitiveXmlSerializers.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/PrimitiveXmlSerializers.cs
index 5915f59b108..d2df57b8168 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/PrimitiveXmlSerializers.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/PrimitiveXmlSerializers.cs
@@ -2,7 +2,7 @@
// <copyright file="PrimitiveXmlSerializers.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SchemaImporter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SchemaImporter.cs
index 07de77756f9..236f74f199c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SchemaImporter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SchemaImporter.cs
@@ -2,7 +2,7 @@
// <copyright file="SchemaImporter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SchemaObjectWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SchemaObjectWriter.cs
index 0c356f8b492..c3cdc3dfa4e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SchemaObjectWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SchemaObjectWriter.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaSerializer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapAttributeAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapAttributeAttribute.cs
index c67b07494d3..b7d0b0173fc 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapAttributeAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapAttributeAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="SoapAttributeAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapAttributeOverrides.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapAttributeOverrides.cs
index 70e4578fd66..973efa75f96 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapAttributeOverrides.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapAttributeOverrides.cs
@@ -2,7 +2,7 @@
// <copyright file="SoapAttributeOverrides.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapAttributes.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapAttributes.cs
index 7e51c2ae249..1351c4f2411 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapAttributes.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapAttributes.cs
@@ -2,7 +2,7 @@
// <copyright file="SoapAttributes.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapCodeExporter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapCodeExporter.cs
index f7b9ed8785e..0f690389170 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapCodeExporter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapCodeExporter.cs
@@ -2,7 +2,7 @@
// <copyright file="SoapCodeExporter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapElementAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapElementAttribute.cs
index b30a00770cc..d1efc68ccf6 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapElementAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapElementAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="SoapElementAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapEnumAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapEnumAttribute.cs
index 28af677d6d0..badd54f86c9 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapEnumAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapEnumAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="SoapEnumAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapIgnoreAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapIgnoreAttribute.cs
index fbd44f76885..d4b6f158a4f 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapIgnoreAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapIgnoreAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="SoapIgnoreAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapIncludeAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapIncludeAttribute.cs
index 5c406d7f558..b94e97973a7 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapIncludeAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapIncludeAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="SoapIncludeAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapReflectionImporter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapReflectionImporter.cs
index 5c7fdae0cfb..89159cfe0e1 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapReflectionImporter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapReflectionImporter.cs
@@ -2,7 +2,7 @@
// <copyright file="SoapReflectionImporter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapSchemaExporter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapSchemaExporter.cs
index 17d6dfd5778..aaf94a6442a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapSchemaExporter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapSchemaExporter.cs
@@ -2,7 +2,7 @@
// <copyright file="SoapSchemaExporter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapSchemaImporter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapSchemaImporter.cs
index 65a6e2a38ca..f36606e7bc3 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapSchemaImporter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapSchemaImporter.cs
@@ -2,7 +2,7 @@
// <copyright file="SoapSchemaImporter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapSchemamember.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapSchemamember.cs
index 09f0e10d724..eb710ad171d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapSchemamember.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapSchemamember.cs
@@ -2,7 +2,7 @@
// <copyright file="SoapSchemaMember.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapTypeAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapTypeAttribute.cs
index 450f4ce5aac..51b16412cfb 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapTypeAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SoapTypeAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="SoapTypeAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SourceInfo.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SourceInfo.cs
index 1663c89a9ab..b0337dfe8c0 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SourceInfo.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/SourceInfo.cs
@@ -2,7 +2,7 @@
// <copyright file="SourceInfo.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Types.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Types.cs
index f924a4374a5..103b424f9fd 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Types.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Types.cs
@@ -2,7 +2,7 @@
// <copyright file="Types.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
@@ -476,7 +476,7 @@ namespace System.Xml.Serialization {
AddPrimitive(typeof(byte[]), "base64Binary", "ByteArrayBase64", TypeFlags.AmbiguousDataType | TypeFlags.CanBeAttributeValue | TypeFlags.CanBeElementValue | TypeFlags.HasCustomFormatter | TypeFlags.Reference | TypeFlags.IgnoreDefault | TypeFlags.XmlEncodingNotRequired | TypeFlags.HasDefaultConstructor);
AddPrimitive(typeof(byte[]), "hexBinary", "ByteArrayHex", TypeFlags.AmbiguousDataType | TypeFlags.CanBeAttributeValue | TypeFlags.CanBeElementValue | TypeFlags.HasCustomFormatter | TypeFlags.Reference | TypeFlags.IgnoreDefault | TypeFlags.XmlEncodingNotRequired | TypeFlags.HasDefaultConstructor);
- // NOTE, [....]: byte[] can also be used to mean array of bytes. That datatype is not a primitive, so we
+ // NOTE, Microsoft: byte[] can also be used to mean array of bytes. That datatype is not a primitive, so we
// can't use the AmbiguousDataType mechanism. To get an array of bytes in literal XML, apply [XmlArray] or
// [XmlArrayItem].
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAnyAttributeAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAnyAttributeAttribute.cs
index 87a78f38d64..aee71d513bf 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAnyAttributeAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAnyAttributeAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlAnyAttributeAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAnyElementAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAnyElementAttribute.cs
index d83ce1e407c..d9479840f30 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAnyElementAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAnyElementAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlAnyElementAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAnyElementAttributes.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAnyElementAttributes.cs
index 898934b9005..58a9fc1cc96 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAnyElementAttributes.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAnyElementAttributes.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlAnyElementAttributes.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlArrayAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlArrayAttribute.cs
index 6011b322f6c..f2f777ba416 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlArrayAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlArrayAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlArrayAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlArrayItemAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlArrayItemAttribute.cs
index a476a7edaca..e652fb697cd 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlArrayItemAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlArrayItemAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlArrayItemAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlArrayItemAttributes.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlArrayItemAttributes.cs
index b5fbde2b9ff..fb335d877b4 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlArrayItemAttributes.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlArrayItemAttributes.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlArrayItemAttributes.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAttributeAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAttributeAttribute.cs
index 07751a9b3b5..f7d59c32f0f 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAttributeAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAttributeAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlAttributeAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAttributeOverrides.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAttributeOverrides.cs
index af725a3320d..bdb8893ecf6 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAttributeOverrides.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAttributeOverrides.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlAttributeOverrides.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAttributes.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAttributes.cs
index 58437dabae8..31bb36612ed 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAttributes.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlAttributes.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlAttributes.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlChoiceIdentifierAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlChoiceIdentifierAttribute.cs
index c30af562a27..021d99d07b1 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlChoiceIdentifierAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlChoiceIdentifierAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlChoiceIdentifierAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlCodeExporter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlCodeExporter.cs
index 0c6eed03907..bb8d1e1771c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlCodeExporter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlCodeExporter.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlCodeExporter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
@@ -414,8 +414,10 @@ namespace System.Xml.Serialization {
}
if (value == null) return;
if (!(mapping is PrimitiveMapping)) {
- DropDefaultAttribute(accessor, comments, memberTypeDesc.FullName);
- AddWarningComment(comments, Res.GetString(Res.XmlDropNonPrimitiveAttributeValue, attributeName, defaultValue.ToString()));
+ if (comments != null) {
+ DropDefaultAttribute(accessor, comments, memberTypeDesc.FullName);
+ AddWarningComment(comments, Res.GetString(Res.XmlDropNonPrimitiveAttributeValue, attributeName, defaultValue.ToString()));
+ }
return;
}
PrimitiveMapping pm = (PrimitiveMapping)mapping;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlElementAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlElementAttribute.cs
index cb302c652ce..bbe4dea2037 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlElementAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlElementAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlElementAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlElementAttributes.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlElementAttributes.cs
index a94e8215b17..d868493f227 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlElementAttributes.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlElementAttributes.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlElementAttributes.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlEnumAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlEnumAttribute.cs
index 3c658f592c4..969830dc0f7 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlEnumAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlEnumAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlEnumAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlIgnoreAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlIgnoreAttribute.cs
index 1205bb29f9f..3aafd13b76d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlIgnoreAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlIgnoreAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlIgnoreAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlIncludeAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlIncludeAttribute.cs
index 54034c8e1b1..7616791ae34 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlIncludeAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlIncludeAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlIncludeAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlMapping.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlMapping.cs
index 6158e7773d9..33efdae68e7 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlMapping.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlMapping.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlMapping.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlMemberMapping.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlMemberMapping.cs
index 1636b004ab6..ee5af6c4d29 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlMemberMapping.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlMemberMapping.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlMemberMapping.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlMembersMapping.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlMembersMapping.cs
index cfda2925269..75331e3de27 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlMembersMapping.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlMembersMapping.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlMembersMapping.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlNamespaceDeclarationsAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlNamespaceDeclarationsAttribute.cs
index efe61e28415..ff139a06888 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlNamespaceDeclarationsAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlNamespaceDeclarationsAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNamespaceDeclarationsAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlReflectionImporter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlReflectionImporter.cs
index 67ee9bc5426..67901745399 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlReflectionImporter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlReflectionImporter.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlReflectionImporter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlReflectionMember.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlReflectionMember.cs
index 2c9c0699d61..d3f36fe9293 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlReflectionMember.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlReflectionMember.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlReflectionMember.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlRootAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlRootAttribute.cs
index fd00efa5441..62253930333 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlRootAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlRootAttribute.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlRootAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemaExporter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemaExporter.cs
index 8c0704b15a2..d8e6e131852 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemaExporter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemaExporter.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaExporter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemaImporter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemaImporter.cs
index 2f4309b4f24..1f7aa1d1a10 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemaImporter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemaImporter.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemaImporter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemaProviderAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemaProviderAttribute.cs
index ccdeec6bb4d..27c46a66269 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemaProviderAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemaProviderAttribute.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlSchemaProviderAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemas.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemas.cs
index eef8682e727..1e3e27f8ea8 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemas.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSchemas.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSchemas.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationGeneratedCode.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationGeneratedCode.cs
index a46500689de..d3f83800163 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationGeneratedCode.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationGeneratedCode.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSerializationGeneratedCode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationILGen.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationILGen.cs
index 564d888ef91..3460db55baf 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationILGen.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationILGen.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSerializationILGen.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationReader.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationReader.cs
index b6800a7f4e6..5a3d21642d4 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationReader.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationReader.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSerializationReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
@@ -4185,7 +4185,7 @@ namespace System.Xml.Serialization {
memberMapping.TypeDesc = arrayMapping.TypeDesc;
memberMapping.ReadOnly = readOnly;
Member member = new Member(this, source, arrayName, 0, memberMapping, false);
- member.IsNullable = false;//Note, [....]: IsNullable is set to false since null condition (xsi:nil) is already handled by 'ReadNull()'
+ member.IsNullable = false;//Note, Microsoft: IsNullable is set to false since null condition (xsi:nil) is already handled by 'ReadNull()'
Member[] members = new Member[] { member };
WriteMemberBegin(members);
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationReaderILGen.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationReaderILGen.cs
index e7f2c1bef49..6ba4b2d7fb5 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationReaderILGen.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationReaderILGen.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSerializationReaderILGen.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
@@ -2881,7 +2881,7 @@ namespace System.Xml.Serialization {
memberMapping.MemberInfo = memberInfos[source.Substring(3)];
}
Member member = new Member(this, source, arrayName, elementIndex, memberMapping, false);
- member.IsNullable = false;//Note, [....]: IsNullable is set to false since null condition (xsi:nil) is already handled by 'ReadNull()'
+ member.IsNullable = false;//Note, Microsoft: IsNullable is set to false since null condition (xsi:nil) is already handled by 'ReadNull()'
Member[] members = new Member[] { member };
WriteMemberBegin(members);
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationWriter.cs
index 69bbbd40862..d15b2bf9bf5 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationWriter.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSerializationWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
@@ -3627,7 +3627,7 @@ namespace System.Xml.Serialization {
return "(("+typeDesc.CSharpName+")"+obj+").@"+memberName;
}
//throw GetReflectionVariableException(saveTypeDesc.CSharpName,memberName);
- // NOTE, [....]:Must never happen. If it does let the code
+ // NOTE, Microsoft:Must never happen. If it does let the code
// gen continue to help debugging what's gone wrong.
// Eventually the compilation will fail.
return "["+obj+"]";
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationWriterILGen.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationWriterILGen.cs
index 0884a6c7b5d..05e529ea2cc 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationWriterILGen.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializationWriterILGen.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSerializationWriterILGen.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializer.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializer.cs
index 9600e7603b2..eb11fe3b372 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializer.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializer.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSerializer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerAssemblyAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerAssemblyAttribute.cs
index 677f7a15fae..d8b1a898d02 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerAssemblyAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerAssemblyAttribute.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlSerializerAssemblyAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerFactory.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerFactory.cs
index 9163984f441..a4bf3a0a940 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerFactory.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerFactory.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSerializer.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerNamespaces.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerNamespaces.cs
index de689d2a564..ce3b533dcfc 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerNamespaces.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerNamespaces.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSerializerNamespaces.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerVersionAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerVersionAttribute.cs
index 4b5d05ee5c8..be04e89919e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerVersionAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlSerializerVersionAttribute.cs
@@ -3,7 +3,7 @@
// <copyright file="XmlSerializerVersionAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlTextAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlTextAttribute.cs
index 0d793ef7b6f..45fc96f741e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlTextAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlTextAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlTextAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlTypeAttribute.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlTypeAttribute.cs
index 63619468773..59a472331b8 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlTypeAttribute.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlTypeAttribute.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlTypeAttribute.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlTypeMapping.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlTypeMapping.cs
index 4466a51600d..c8240f3a0b2 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlTypeMapping.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/XmlTypeMapping.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlTypeMapping.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Xmlcustomformatter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Xmlcustomformatter.cs
index d186daa2aa5..6708ebeee9d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Xmlcustomformatter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/Xmlcustomformatter.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlCustomFormatter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/_Events.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/_Events.cs
index 491828807d0..ec9b3e78207 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/_Events.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/_Events.cs
@@ -2,7 +2,7 @@
// <copyright file="_Events.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/indentedWriter.cs b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/indentedWriter.cs
index 22dac15fdda..5c6867eafbe 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Serialization/indentedWriter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Serialization/indentedWriter.cs
@@ -2,7 +2,7 @@
// <copyright file="IndentedWriter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Serialization {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/ValidateNames.cs b/mcs/class/referencesource/System.Xml/System/Xml/ValidateNames.cs
index 34bc7327952..bf034e162b4 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/ValidateNames.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/ValidateNames.cs
@@ -2,7 +2,7 @@
// <copyright file="ValidateNames.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/IXPathNavigable.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/IXPathNavigable.cs
index 85f0b8d444c..c0073517ebd 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/IXPathNavigable.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/IXPathNavigable.cs
@@ -2,7 +2,7 @@
// <copyright file="IXPathNavigable.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">sdub</owner>
//------------------------------------------------------------------------------
namespace System.Xml.XPath {
@@ -11,4 +11,4 @@ namespace System.Xml.XPath {
public interface IXPathNavigable {
XPathNavigator CreateNavigator();
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/AbsoluteQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/AbsoluteQuery.cs
index 7c126900c12..1dc479fe504 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/AbsoluteQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/AbsoluteQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="AbsoluteQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/AstNode.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/AstNode.cs
index fab712c28dc..013253be04a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/AstNode.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/AstNode.cs
@@ -2,7 +2,7 @@
// <copyright file="AstNode.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">sdub</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/AttributeQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/AttributeQuery.cs
index 93be0280437..052dfbc453e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/AttributeQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/AttributeQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="AttributeQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Axis.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Axis.cs
index 658c08c7b1e..c64fb4307cf 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Axis.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Axis.cs
@@ -2,7 +2,7 @@
// <copyright file="Axis.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/BaseAxisQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/BaseAxisQuery.cs
index 83170d035d3..91c37b719a8 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/BaseAxisQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/BaseAxisQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="baseaxisquery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/BooleanExpr.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/BooleanExpr.cs
index a8af11f65c3..fb3b9f7be91 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/BooleanExpr.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/BooleanExpr.cs
@@ -2,7 +2,7 @@
// <copyright file="BooleanExpr.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/BooleanFunctions.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/BooleanFunctions.cs
index 4fa3553f230..b18ef609c91 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/BooleanFunctions.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/BooleanFunctions.cs
@@ -2,7 +2,7 @@
// <copyright file="BooleanFunctions.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CacheAxisQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CacheAxisQuery.cs
index 47dd13ee645..4a264f4e706 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CacheAxisQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CacheAxisQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="CacheAxisQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CacheChildrenQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CacheChildrenQuery.cs
index 53954396cb8..3ad2a6fb2b7 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CacheChildrenQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CacheChildrenQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="CacheChildrenQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CacheOutputQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CacheOutputQuery.cs
index 492358dbcef..e6331502c17 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CacheOutputQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CacheOutputQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="CacheOutputQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ChildrenQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ChildrenQuery.cs
index a088816ba7a..7784a5ff4b2 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ChildrenQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ChildrenQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="ChildrenQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ClonableStack.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ClonableStack.cs
index b2bc1773586..6181cd0d52c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ClonableStack.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ClonableStack.cs
@@ -2,7 +2,7 @@
// <copyright file="ClonableStack.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CompiledXPathExpr.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CompiledXPathExpr.cs
index f5fd3854859..0f87cd36796 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CompiledXPathExpr.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/CompiledXPathExpr.cs
@@ -2,7 +2,7 @@
// <copyright file="CompiledXpathExpr.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ContextQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ContextQuery.cs
index 98ccd0e783a..56d4661d77a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ContextQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ContextQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="ContextQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DescendantBaseQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DescendantBaseQuery.cs
index b05f45174e7..3fa58383c38 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DescendantBaseQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DescendantBaseQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="DescendantQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DescendantQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DescendantQuery.cs
index 30920469762..317e0da51a3 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DescendantQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DescendantQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="DescendantQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DescendantoverDescendantQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DescendantoverDescendantQuery.cs
index 140f6afe046..4cc0776e065 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DescendantoverDescendantQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DescendantoverDescendantQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="DescendantOverDescendantQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DocumentorderQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DocumentorderQuery.cs
index 9f38f0c7f35..0093670b3ec 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DocumentorderQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/DocumentorderQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="DocumentOrderQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/EmptyQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/EmptyQuery.cs
index 141206b5a78..4469a732c33 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/EmptyQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/EmptyQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="EmptyQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ExtensionQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ExtensionQuery.cs
index 6069968f22a..219afd68e64 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ExtensionQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ExtensionQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="ExtensionQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Filter.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Filter.cs
index 4dd89f4891f..b30bce34c1e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Filter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Filter.cs
@@ -2,7 +2,7 @@
// <copyright file="Filter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FilterQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FilterQuery.cs
index 257d441e259..04b9e742746 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FilterQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FilterQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="FilterQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FollowingQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FollowingQuery.cs
index f6e8379884b..38235ba79c0 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FollowingQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FollowingQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="followingquery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FollowingSibling.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FollowingSibling.cs
index a50814efff8..c26df84de05 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FollowingSibling.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FollowingSibling.cs
@@ -2,7 +2,7 @@
// <copyright file="followingsibling.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ForwardPositionQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ForwardPositionQuery.cs
index eef25bcce75..34f5664b654 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ForwardPositionQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ForwardPositionQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="ForwardPositionQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Function.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Function.cs
index 1233c723594..027bc49f215 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Function.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Function.cs
@@ -2,7 +2,7 @@
// <copyright file="Function.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FunctionQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FunctionQuery.cs
index 26fc0f7e020..0a94d6efe19 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FunctionQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/FunctionQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="FunctionQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
@@ -62,7 +62,7 @@ namespace MS.Internal.Xml.XPath {
object[] argVals = new object[args.Count];
for (int i = 0; i < args.Count; i ++) {
argVals[i] = args[i].Evaluate(nodeIterator);
- if (argVals[i] is XPathNodeIterator) {// ForBack Compat. To protect our queries from users. bug#372077 & 20006123
+ if (argVals[i] is XPathNodeIterator) {// ForBack Compat. To protect our queries from users.
argVals[i] = new XPathSelectionIterator(nodeIterator.Current, args[i]);
}
}
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Group.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Group.cs
index 454ffb263f4..578826b68e6 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Group.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Group.cs
@@ -2,7 +2,7 @@
// <copyright file="Group.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/GroupQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/GroupQuery.cs
index 597f939662f..087d3bafa45 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/GroupQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/GroupQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="GroupQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/IdQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/IdQuery.cs
index 5a6e292fd70..9f4c1589d74 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/IdQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/IdQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="IDQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/IteratorFilter.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/IteratorFilter.cs
index e0718275e44..09279e23933 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/IteratorFilter.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/IteratorFilter.cs
@@ -2,7 +2,7 @@
// <copyright file="IteratorFilter.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/LogicalExpr.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/LogicalExpr.cs
index 8a59b0566c3..a0438225c6e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/LogicalExpr.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/LogicalExpr.cs
@@ -2,7 +2,7 @@
// <copyright file="LogicalExpr.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/MergeFilterQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/MergeFilterQuery.cs
index 0b354f536aa..7412739210e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/MergeFilterQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/MergeFilterQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="MergeFilterQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NamespaceQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NamespaceQuery.cs
index 36fd3fc1e1d..f3ad0049873 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NamespaceQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NamespaceQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="NamespaceQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NodeFunctions.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NodeFunctions.cs
index e7607376bc4..cf9566dfd5f 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NodeFunctions.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NodeFunctions.cs
@@ -2,7 +2,7 @@
// <copyright file="NodeFunctions.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NumberFunctions.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NumberFunctions.cs
index b824bca297d..72c11f9176d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NumberFunctions.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NumberFunctions.cs
@@ -2,7 +2,7 @@
// <copyright file="NumberFunctions.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NumericExpr.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NumericExpr.cs
index ee2878f7745..4a2fd0da6d4 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NumericExpr.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/NumericExpr.cs
@@ -2,7 +2,7 @@
// <copyright file="NumericExpr.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Operand.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Operand.cs
index 6240de8ab7d..aebbd8ef7a2 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Operand.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Operand.cs
@@ -2,7 +2,7 @@
// <copyright file="Operand.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/OperandQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/OperandQuery.cs
index 6cf3e30d87a..b88525410a0 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/OperandQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/OperandQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="OperandQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Operator.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Operator.cs
index c4d7481fc74..9739fb12758 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Operator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Operator.cs
@@ -2,7 +2,7 @@
// <copyright file="Operator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ParentQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ParentQuery.cs
index 8a0a6deba7a..b755fa5352d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ParentQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ParentQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="ParentQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/PrecedingQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/PrecedingQuery.cs
index d56cac2bf02..bc925cc1c6b 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/PrecedingQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/PrecedingQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="precedingquery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/PrecedingSibling.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/PrecedingSibling.cs
index 75399c76a70..f690049c7dd 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/PrecedingSibling.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/PrecedingSibling.cs
@@ -2,7 +2,7 @@
// <copyright file="precedingsibling.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Query.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Query.cs
index e2fa1daf90a..a70822ac732 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Query.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Query.cs
@@ -2,7 +2,7 @@
// <copyright file="Query.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
@@ -73,7 +73,6 @@ namespace MS.Internal.Xml.XPath {
public virtual QueryProps Properties { get { return QueryProps.Merge; } }
// ----------------- Helper methods -------------
- [System.Runtime.TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")]
public static Query Clone(Query input) {
if (input != null) {
return (Query)input.Clone();
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/QueryBuilder.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/QueryBuilder.cs
index 19a56067a58..580491f0f49 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/QueryBuilder.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/QueryBuilder.cs
@@ -2,7 +2,7 @@
// <copyright file="querybuilder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ResetableIterator.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ResetableIterator.cs
index 9943abe24df..e48a28e36fa 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ResetableIterator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ResetableIterator.cs
@@ -2,7 +2,7 @@
// <copyright file="ResetableIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ReversePositionQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ReversePositionQuery.cs
index 406ed7e5b46..35bd8eff288 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ReversePositionQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ReversePositionQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="ReversePositionQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Root.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Root.cs
index fbfee264668..ad0fa9c9186 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Root.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Root.cs
@@ -2,7 +2,7 @@
// <copyright file="Root.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/SortQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/SortQuery.cs
index 47e28a29143..4be9a067e2e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/SortQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/SortQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="SortQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/StringFunctions.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/StringFunctions.cs
index 1d545b5e563..8b477ecf78f 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/StringFunctions.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/StringFunctions.cs
@@ -2,7 +2,7 @@
// <copyright file="StringFunctions.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/UnionExpr.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/UnionExpr.cs
index 79e24be6b05..b14786fc632 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/UnionExpr.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/UnionExpr.cs
@@ -2,7 +2,7 @@
// <copyright file="UnionExpr.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ValueQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ValueQuery.cs
index 41aa2e08731..ee50b81b7ea 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ValueQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/ValueQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="ValueQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Variable.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Variable.cs
index 1d6f50cf141..594b9c8aead 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Variable.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/Variable.cs
@@ -2,7 +2,7 @@
// <copyright file="Variable.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/VariableQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/VariableQuery.cs
index ce6b7132ccc..c2b6ee2e3e4 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/VariableQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/VariableQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="VariableQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathAncestorIterator.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathAncestorIterator.cs
index 5f839cdfe9b..d0709058bad 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathAncestorIterator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathAncestorIterator.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathAncestorIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathAncestorQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathAncestorQuery.cs
index 503d1f600af..1d2f04cc86c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathAncestorQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathAncestorQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathAncestorQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathArrayIterator.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathArrayIterator.cs
index 724df0e3208..9f16db6db82 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathArrayIterator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathArrayIterator.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathArrayIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathAxisIterator.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathAxisIterator.cs
index 512e8618f23..c0aeb7005ba 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathAxisIterator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathAxisIterator.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathAxisIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathChildIterator.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathChildIterator.cs
index f87c9c7619c..2ea63b69459 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathChildIterator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathChildIterator.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathChildIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathDescendantIterator.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathDescendantIterator.cs
index 2cf77bef277..5879555dfaf 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathDescendantIterator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathDescendantIterator.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathDescendantIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathEmptyIterator.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathEmptyIterator.cs
index 6fa40453c26..7970452a31e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathEmptyIterator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathEmptyIterator.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathEmptyIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathMultyIterator.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathMultyIterator.cs
index ef8cb5858d5..ac2f1fbecba 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathMultyIterator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathMultyIterator.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathMultyIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathParser.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathParser.cs
index c6a07aaa571..0192d80a606 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathParser.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathParser.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathParser.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathScanner.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathScanner.cs
index 76e15142ea4..3b78f4fadb6 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathScanner.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathScanner.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathScanner.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathSelectionIterator.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathSelectionIterator.cs
index f09f8acc010..deb89811455 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathSelectionIterator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathSelectionIterator.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathSelectionIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathSelfQuery.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathSelfQuery.cs
index e15cacaf7cf..33f932c26f7 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathSelfQuery.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathSelfQuery.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathSelfQuery.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathSingletonIterator.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathSingletonIterator.cs
index 6e32451a869..4528669ed86 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathSingletonIterator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/Internal/XPathSingletonIterator.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathSingletonIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathDocument.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathDocument.cs
index 3bb8e8ad5a0..e1d9bbe8eb4 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathDocument.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathDocument.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathDocument.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
@@ -231,7 +231,7 @@ namespace System.Xml.XPath {
case XmlNodeType.Whitespace:
// We intentionally ignore the reader.XmlSpace property here and blindly trust
- // the reported node type. If the reported information is not in [....]
+ // the reported node type. If the reported information is not in sync
// (in this case if the reader.XmlSpace == Preserve) then we make the choice
// to trust the reported node type. Since we have no control over the input reader
// we can't even assert here.
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathException.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathException.cs
index 533518ac83e..8eb02788a5a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathException.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathException.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathExpr.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathExpr.cs
index 803907df7c1..195bf20b98a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathExpr.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathExpr.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathExpr.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathItem.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathItem.cs
index ea954b05db5..85653c0dcef 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathItem.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathItem.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathItem.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNamespaceScope.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNamespaceScope.cs
index 346d77bffb6..24b5f143104 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNamespaceScope.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNamespaceScope.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathNamespaceScope.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">sdub</owner>
//------------------------------------------------------------------------------
namespace System.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNavigator.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNavigator.cs
index ae5ecbc9bc7..a1900faf08b 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNavigator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNavigator.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathNavigator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.ComponentModel;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNavigatorKeyComparer.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNavigatorKeyComparer.cs
index dc09acf2048..f6c83e1a493 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNavigatorKeyComparer.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNavigatorKeyComparer.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNavigatorReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.IO;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNavigatorReader.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNavigatorReader.cs
index beab98822b7..12226d2052b 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNavigatorReader.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNavigatorReader.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNavigatorReader.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.IO;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNodeIterator.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNodeIterator.cs
index 3731627edae..2d60c854409 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNodeIterator.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNodeIterator.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathNodeIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNodeType.cs b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNodeType.cs
index da1df727598..3bbc780c40f 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNodeType.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XPath/XPathNodeType.cs
@@ -2,7 +2,7 @@
// <copyright file="XPathNodeType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">sdub</owner>
//------------------------------------------------------------------------------
namespace System.Xml.XPath {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlCharType.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlCharType.cs
index 46237198c2f..17946153fc1 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlCharType.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlCharType.cs
@@ -6,7 +6,7 @@
// <copyright file="XmlCharType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
//#define XMLCHARTYPE_USE_RESOURCE // load the character properties from resources (XmlCharType.bin must be linked to System.Xml.dll)
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlComplianceUtil.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlComplianceUtil.cs
index 3c204926ddf..c30f7263e52 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlComplianceUtil.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlComplianceUtil.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlComplianceUtil.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlConvert.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlConvert.cs
index 976980e0678..6942060d9cf 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlConvert.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlConvert.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlConvert.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
@@ -678,7 +678,6 @@ namespace System.Xml {
return value.ToString(null, NumberFormatInfo.InvariantInfo);
}
-#if !SILVERLIGHT
///<include file='doc\XmlConvert.uex' path='docs/doc[@for="XmlConvert.ToString6"]/*' />
/// <devdoc>
/// <para>[To be supplied.]</para>
@@ -695,7 +694,6 @@ namespace System.Xml {
public static string ToString(UInt16 value) {
return value.ToString(null, NumberFormatInfo.InvariantInfo);
}
-#endif
///<include file='doc\XmlConvert.uex' path='docs/doc[@for="XmlConvert.ToString8"]/*' />
/// <devdoc>
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlDownloadManager.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlDownloadManager.cs
index 305dee8b7de..e388818d1af 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlDownloadManager.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlDownloadManager.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlDownloadManager.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlEncoding.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlEncoding.cs
index c896a213686..012e1523d38 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlEncoding.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlEncoding.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlEncoding.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Text;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlException.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlException.cs
index 40594f7477b..2873952c65f 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlException.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlException.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlNameTable.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlNameTable.cs
index 2a3c5b58c45..e9fef50075c 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlNameTable.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlNameTable.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNameTable.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlNamespaceScope.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlNamespaceScope.cs
index 55076abe1e6..d27b75f41da 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlNamespaceScope.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlNamespaceScope.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNamespaceScope.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlNamespacemanager.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlNamespacemanager.cs
index 7c825a1f38f..7cab6b1036d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlNamespacemanager.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlNamespacemanager.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNamespaceManager.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlNodeOrder.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlNodeOrder.cs
index 566697c1af9..f79c528958e 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlNodeOrder.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlNodeOrder.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNodeOrder.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">ionv</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlNodeType.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlNodeType.cs
index d0eb8fb866f..3cddbed0dd9 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlNodeType.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlNodeType.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNodeType.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">helenak</owner>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlNullResolver.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlNullResolver.cs
index 14dc8ded501..620bdc1c70d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlNullResolver.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlNullResolver.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlNullResolver.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
#if !SILVERLIGHT
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlQualifiedName.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlQualifiedName.cs
index 25f07a438a3..6aa29802b9f 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlQualifiedName.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlQualifiedName.cs
@@ -2,12 +2,18 @@
// <copyright file="XmlQualifiedName.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
using System.Collections;
using System.Diagnostics;
+#if !SILVERLIGHT
+ using Microsoft.Win32;
+ using System.Reflection;
+ using System.Security;
+ using System.Security.Permissions;
+#endif
/// <include file='doc\XmlQualifiedName.uex' path='docs/doc[@for="XmlQualifiedName"]/*' />
/// <devdoc>
@@ -17,6 +23,10 @@ namespace System.Xml {
[Serializable]
#endif
public class XmlQualifiedName {
+#if !SILVERLIGHT
+ delegate int HashCodeOfStringDelegate(string s, int sLen, long additionalEntropy);
+ static HashCodeOfStringDelegate hashCodeDelegate = null;
+#endif
string name;
string ns;
@@ -74,7 +84,16 @@ namespace System.Xml {
/// </devdoc>
public override int GetHashCode() {
if(hash == 0) {
+#if !SILVERLIGHT
+ if (hashCodeDelegate == null) {
+ hashCodeDelegate = GetHashCodeDelegate();
+ }
+
+ hash = hashCodeDelegate(Name, Name.Length, 0);
+#else
+
hash = Name.GetHashCode() /*+ Namespace.GetHashCode()*/; // for perf reasons we are not taking ns's hashcode.
+#endif
}
return hash;
}
@@ -144,6 +163,59 @@ namespace System.Xml {
}
#if !SILVERLIGHT // These methods are not used in Silverlight
+ [SecuritySafeCritical]
+ [ReflectionPermission(SecurityAction.Assert, Unrestricted = true)]
+ private static HashCodeOfStringDelegate GetHashCodeDelegate() {
+ // If we are using randomized hashing and we find the Marving hash method, we use that
+ // Otherwise, we use the old string hashing function.
+
+ if (!IsRandomizedHashingDisabled())
+ {
+ MethodInfo getHashCodeMethodInfo = typeof(String).GetMethod("InternalMarvin32HashString", BindingFlags.NonPublic | BindingFlags.Static);
+ if (getHashCodeMethodInfo != null)
+ {
+ return (HashCodeOfStringDelegate)Delegate.CreateDelegate(typeof(HashCodeOfStringDelegate), getHashCodeMethodInfo);
+ }
+ // This will fall through and return a delegate to the old hash function
+ Debug.Assert(false, "Randomized hashing is not supported.");
+ }
+ return new HashCodeOfStringDelegate(GetHashCodeOfString);
+ }
+
+ [SecuritySafeCritical]
+ [RegistryPermission(SecurityAction.Assert, Unrestricted = true)]
+ private static bool IsRandomizedHashingDisabled() {
+ const string regValueName = "DisableRandomizedHashingOnXmlQualifiedName";
+ bool disableHashing = false; // default value
+ if (!ReadBoolFromXmlRegistrySettings(Registry.CurrentUser, regValueName, ref disableHashing)) {
+ ReadBoolFromXmlRegistrySettings(Registry.LocalMachine, regValueName, ref disableHashing);
+ }
+ return disableHashing;
+ }
+
+ [SecurityCritical]
+ private static bool ReadBoolFromXmlRegistrySettings(RegistryKey hive, string regValueName, ref bool value) {
+ const string regValuePath = @"SOFTWARE\Microsoft\.NETFramework\XML";
+ try {
+ using (RegistryKey xmlRegKey = hive.OpenSubKey(regValuePath, false)) {
+ if (xmlRegKey != null) {
+ if (xmlRegKey.GetValueKind(regValueName) == RegistryValueKind.DWord) {
+ value = ((int)xmlRegKey.GetValue(regValueName)) == 1;
+ return true;
+ }
+ }
+ }
+ }
+ catch { /* use the default if we couldn't read the key */ }
+ return false;
+ }
+
+ private static int GetHashCodeOfString(string s, int length, long additionalEntropy)
+ {
+ // This is the fallback method for calling the regular hashcode method
+ return s.GetHashCode();
+ }
+
// --------- Some useful internal stuff -----------------
internal void Init(string name, string ns) {
Debug.Assert(name != null && ns != null);
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlReservedNs.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlReservedNs.cs
index 4564ecf7a6c..4e9db69f795 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlReservedNs.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlReservedNs.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlReservedNS.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">derekdb</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlResolver.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlResolver.cs
index 0576f38a828..2245d76d20a 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlResolver.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlResolver.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlResolver.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlSecureResolver.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlSecureResolver.cs
index 6cd15034393..463bb7b6813 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlSecureResolver.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlSecureResolver.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlSecureResolver.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/XmlUrlResolver.cs b/mcs/class/referencesource/System.Xml/System/Xml/XmlUrlResolver.cs
index e762f5e358d..7dc2e20afa5 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/XmlUrlResolver.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/XmlUrlResolver.cs
@@ -2,7 +2,7 @@
// <copyright file="XmlUrlResolver.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Threading;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XslCompiledTransform.cs b/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XslCompiledTransform.cs
index dda06980688..455e8912aaf 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XslCompiledTransform.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XslCompiledTransform.cs
@@ -2,7 +2,7 @@
// <copyright file="XslCompiledTransform.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <spec>http://webdata/xml/specs/XslCompiledTransform.xml</spec>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XslTransform.cs b/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XslTransform.cs
index 5a3acdfce2c..b9ff06c66fe 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XslTransform.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XslTransform.cs
@@ -2,7 +2,7 @@
// <copyright file="XslTransform.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
namespace System.Xml.Xsl {
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltArgumentList.cs b/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltArgumentList.cs
index d8f0c98b28f..bc33f89cb37 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltArgumentList.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltArgumentList.cs
@@ -2,7 +2,7 @@
// <copyright file="XsltArgumentList.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltContext.cs b/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltContext.cs
index 64bf74fbd97..ec37ade341d 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltContext.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltContext.cs
@@ -2,7 +2,7 @@
// <copyright file="XsltContext.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Collections;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltException.cs b/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltException.cs
index 1f4aaf2c678..d724bcb10d4 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltException.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltException.cs
@@ -2,7 +2,7 @@
// <copyright file="XsltException.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System.Globalization;
diff --git a/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltSettings.cs b/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltSettings.cs
index 94fcee6d2d9..d99fc067bab 100644
--- a/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltSettings.cs
+++ b/mcs/class/referencesource/System.Xml/System/Xml/Xslt/XsltSettings.cs
@@ -2,7 +2,7 @@
// <copyright file="XsltSettings.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <owner current="true" primary="true">[....]</owner>
+// <owner current="true" primary="true">Microsoft</owner>
// <spec>http://webdata/xml/specs/XslCompiledTransform.xml</spec>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/InternalApis/Clr/inc/AppContextDefaultValues.cs b/mcs/class/referencesource/System/InternalApis/Clr/inc/AppContextDefaultValues.cs
new file mode 100644
index 00000000000..124f9f45a4f
--- /dev/null
+++ b/mcs/class/referencesource/System/InternalApis/Clr/inc/AppContextDefaultValues.cs
@@ -0,0 +1,170 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+using System;
+using System.Collections.Generic;
+
+namespace System
+{
+ internal static partial class AppContextDefaultValues
+ {
+ public static void PopulateDefaultValues()
+ {
+ string platformIdentifier, profile;
+ int version;
+
+ ParseTargetFrameworkName(out platformIdentifier, out profile, out version);
+
+ // Call into each library to populate their default switches
+ PopulateDefaultValuesPartial(platformIdentifier, profile, version);
+ }
+
+ /// <summary>
+ /// We have this separate method for getting the parsed elements out of the TargetFrameworkName so we can
+ /// more easily support this on other platforms.
+ /// </summary>
+ [System.Security.SecuritySafeCritical]
+ private static void ParseTargetFrameworkName(out string identifier, out string profile, out int version)
+ {
+ string targetFrameworkMoniker = AppDomain.CurrentDomain.SetupInformation.TargetFrameworkName;
+
+ // If we don't have a TFM then we should default to the 4.0 behavior where all quirks are turned on.
+ if (!TryParseFrameworkName(targetFrameworkMoniker, out identifier, out version, out profile))
+ {
+#if FEATURE_CORECLR
+ if (CompatibilitySwitches.UseLatestBehaviorWhenTFMNotSpecified)
+ {
+ // If we want to use the latest behavior it is enough to set the value of the switch to string.Empty.
+ // When the get to the caller of this method (PopulateDefaultValuesPartial) we are going to use the
+ // identifier we just set to decide which switches to turn on. By having an empty string as the
+ // identifier we are simply saying -- don't turn on any switches, and we are going to get the latest
+ // behavior for all the switches
+ identifier = string.Empty;
+ }
+ else
+#endif
+ {
+ identifier = ".NETFramework";
+ version = 40000;
+ profile = string.Empty;
+ }
+ }
+ }
+
+ // This code was a constructor copied from the FrameworkName class, which is located in System.dll.
+ // Parses strings in the following format: "<identifier>, Version=[v|V]<version>, Profile=<profile>"
+ // - The identifier and version is required, profile is optional
+ // - Only three components are allowed.
+ // - The version string must be in the System.Version format; an optional "v" or "V" prefix is allowed
+ private static bool TryParseFrameworkName(String frameworkName, out String identifier, out int version, out String profile)
+ {
+ // For parsing a target Framework moniker, from the FrameworkName class
+ const char c_componentSeparator = ',';
+ const char c_keyValueSeparator = '=';
+ const char c_versionValuePrefix = 'v';
+ const String c_versionKey = "Version";
+ const String c_profileKey = "Profile";
+
+ identifier = profile = string.Empty;
+ version = 0;
+
+ if (frameworkName == null || frameworkName.Length == 0)
+ {
+ return false;
+ }
+
+ String[] components = frameworkName.Split(c_componentSeparator);
+ version = 0;
+
+ // Identifer and Version are required, Profile is optional.
+ if (components.Length < 2 || components.Length > 3)
+ {
+ return false;
+ }
+
+ //
+ // 1) Parse the "Identifier", which must come first. Trim any whitespace
+ //
+ identifier = components[0].Trim();
+
+ if (identifier.Length == 0)
+ {
+ return false;
+ }
+
+ bool versionFound = false;
+ profile = null;
+
+ //
+ // The required "Version" and optional "Profile" component can be in any order
+ //
+ for (int i = 1; i < components.Length; i++)
+ {
+ // Get the key/value pair separated by '='
+ string[] keyValuePair = components[i].Split(c_keyValueSeparator);
+
+ if (keyValuePair.Length != 2)
+ {
+ return false;
+ }
+
+ // Get the key and value, trimming any whitespace
+ string key = keyValuePair[0].Trim();
+ string value = keyValuePair[1].Trim();
+
+ //
+ // 2) Parse the required "Version" key value
+ //
+ if (key.Equals(c_versionKey, StringComparison.OrdinalIgnoreCase))
+ {
+ versionFound = true;
+
+ // Allow the version to include a 'v' or 'V' prefix...
+ if (value.Length > 0 && (value[0] == c_versionValuePrefix || value[0] == 'V'))
+ {
+ value = value.Substring(1);
+ }
+ Version realVersion = new Version(value);
+ // The version class will represent some unset values as -1 internally (instead of 0).
+ version = realVersion.Major * 10000;
+ if (realVersion.Minor > 0)
+ version += realVersion.Minor * 100;
+ if (realVersion.Build > 0)
+ version += realVersion.Build;
+ }
+ //
+ // 3) Parse the optional "Profile" key value
+ //
+ else if (key.Equals(c_profileKey, StringComparison.OrdinalIgnoreCase))
+ {
+ if (!String.IsNullOrEmpty(value))
+ {
+ profile = value;
+ }
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ if (!versionFound)
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ // This is a partial method. Platforms (such as Desktop) can provide an implementation of it that will read override value
+ // from whatever mechanism is available on that platform. If no implementation is provided, the compiler is going to remove the calls
+ // to it from the code
+ static partial void TryGetSwitchOverridePartial(string switchName, ref bool overrideFound, ref bool overrideValue);
+
+ /// This is a partial method. This method is responsible for populating the default values based on a TFM.
+ /// It is partial because each library should define this method in their code to contain their defaults.
+ static partial void PopulateDefaultValuesPartial(string platformIdentifier, string profile, int version);
+ }
+}
diff --git a/mcs/class/referencesource/System/InternalApis/Clr/inc/LocalAppContext.cs b/mcs/class/referencesource/System/InternalApis/Clr/inc/LocalAppContext.cs
new file mode 100644
index 00000000000..f05b599ed3d
--- /dev/null
+++ b/mcs/class/referencesource/System/InternalApis/Clr/inc/LocalAppContext.cs
@@ -0,0 +1,128 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+
+// NOTE: This file should not be included in mscorlib. This should only be included in FX libraries that need to provide switches
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Threading;
+
+namespace System
+{
+ internal static partial class LocalAppContext
+ {
+ private delegate bool TryGetSwitchDelegate(string switchName, out bool value);
+
+ private static TryGetSwitchDelegate TryGetSwitchFromCentralAppContext;
+ private static bool s_canForwardCalls;
+
+ private static Dictionary<string, bool> s_switchMap = new Dictionary<string, bool>();
+ private static readonly object s_syncLock = new object();
+
+ private static bool DisableCaching { get; set; }
+
+ static LocalAppContext()
+ {
+ // Try to setup the callback into the central AppContext
+ s_canForwardCalls = SetupDelegate();
+
+ // Populate the default values of the local app context
+ AppContextDefaultValues.PopulateDefaultValues();
+
+ // Cache the value of the switch that help with testing
+ DisableCaching = IsSwitchEnabled(@"TestSwitch.LocalAppContext.DisableCaching");
+ }
+
+ public static bool IsSwitchEnabled(string switchName)
+ {
+ if (s_canForwardCalls)
+ {
+ bool isEnabledCentrally;
+ if (TryGetSwitchFromCentralAppContext(switchName, out isEnabledCentrally))
+ {
+ // we found the switch, so return whatever value it has
+ return isEnabledCentrally;
+ }
+ // if we could not get the value from the central authority, try the local storage.
+ }
+
+ return IsSwitchEnabledLocal(switchName);
+ }
+
+ private static bool IsSwitchEnabledLocal(string switchName)
+ {
+ // read the value from the set of local defaults
+ bool isEnabled, isPresent;
+ lock (s_switchMap)
+ {
+ isPresent = s_switchMap.TryGetValue(switchName, out isEnabled);
+ }
+
+ // If the value is in the set of local switches, reutrn the value
+ if (isPresent)
+ {
+ return isEnabled;
+ }
+
+ // if we could not find the switch name, we should return 'false'
+ // This will preserve the concept of switches been 'off' unless explicitly set to 'on'
+ return false;
+ }
+
+ private static bool SetupDelegate()
+ {
+ Type appContextType = typeof(object).Assembly.GetType("System.AppContext");
+ if (appContextType == null)
+ return false;
+
+ MethodInfo method = appContextType.GetMethod(
+ "TryGetSwitch", // the method name
+ BindingFlags.Static | BindingFlags.Public, // binding flags
+ null, // use the default binder
+ new Type[] { typeof(string), typeof(bool).MakeByRefType() },
+ null); // parameterModifiers - this is ignored by the default binder
+ if (method == null)
+ return false;
+
+ // Create delegate if we found the method.
+ TryGetSwitchFromCentralAppContext = (TryGetSwitchDelegate)Delegate.CreateDelegate(typeof(TryGetSwitchDelegate), method);
+
+ return true;
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ internal static bool GetCachedSwitchValue(string switchName, ref int switchValue)
+ {
+ if (switchValue < 0) return false;
+ if (switchValue > 0) return true;
+
+ return GetCachedSwitchValueInternal(switchName, ref switchValue);
+ }
+
+ private static bool GetCachedSwitchValueInternal(string switchName, ref int switchValue)
+ {
+ if (LocalAppContext.DisableCaching)
+ {
+ return LocalAppContext.IsSwitchEnabled(switchName);
+ }
+
+ bool isEnabled = LocalAppContext.IsSwitchEnabled(switchName);
+ switchValue = isEnabled ? 1 /*true*/ : -1 /*false*/;
+ return isEnabled;
+ }
+
+ /// <summary>
+ /// This method is going to be called from the AppContextDefaultValues class when setting up the
+ /// default values for the switches. !!!! This method is called during the static constructor so it does not
+ /// take a lock !!!! If you are planning to use this outside of that, please ensure proper locking.
+ /// </summary>
+ internal static void DefineSwitchDefault(string switchName, bool initialValue)
+ {
+ s_switchMap[switchName] = initialValue;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System/InternalApis/NDP_Common/inc/PinnableBufferCache.cs b/mcs/class/referencesource/System/InternalApis/NDP_Common/inc/PinnableBufferCache.cs
index f87d992da12..872cfa80dd5 100644
--- a/mcs/class/referencesource/System/InternalApis/NDP_Common/inc/PinnableBufferCache.cs
+++ b/mcs/class/referencesource/System/InternalApis/NDP_Common/inc/PinnableBufferCache.cs
@@ -164,8 +164,10 @@ namespace System
if (GC.GetGeneration(buffer) < GC.MaxGeneration)
{
// The buffer is not aged, so put it in the non-aged free list.
+ m_moreThanFreeListNeeded = true;
PinnableBufferCacheEventSource.Log.FreeBufferStillTooYoung(m_CacheName, m_NotGen2.Count);
m_NotGen2.Add(buffer);
+ m_gen1CountAtLastRestock = GC.CollectionCount(GC.MaxGeneration - 1);
return;
}
}
@@ -310,6 +312,7 @@ namespace System
/// otherwise, we root the cache to the Gen2GcCallback object, and leak the cache even when
/// the application no longer needs it.
/// </summary>
+ [System.Security.SecuritySafeCritical]
private static bool Gen2GcCallbackFunc(object targetObj)
{
return ((PinnableBufferCache)(targetObj)).TrimFreeListIfNeeded();
@@ -509,6 +512,11 @@ namespace System
~Gen2GcCallback()
{
// Check to see if the target object is still alive.
+ if (!m_weakTargetObj.IsAllocated)
+ {
+ return;
+ }
+
object targetObj = m_weakTargetObj.Target;
if (targetObj == null)
{
@@ -636,6 +644,7 @@ namespace System
[Event(21)]
public void WalkFreeListResult(string cacheName, int freeListCount, int gen0BuffersInFreeList) { if (IsEnabled()) WriteEvent(21, cacheName, freeListCount, gen0BuffersInFreeList); }
+
static internal ulong AddressOf(object obj)
{
var asByteArray = obj as byte[];
diff --git a/mcs/class/referencesource/System/compmod/microsoft/visualbasic/VBCodeProvider.cs b/mcs/class/referencesource/System/compmod/microsoft/visualbasic/VBCodeProvider.cs
index 437a870ba35..6301ddf4643 100644
--- a/mcs/class/referencesource/System/compmod/microsoft/visualbasic/VBCodeProvider.cs
+++ b/mcs/class/referencesource/System/compmod/microsoft/visualbasic/VBCodeProvider.cs
@@ -580,12 +580,12 @@ namespace Microsoft.VisualBasic {
foreach (string s in options.ReferencedAssemblies) {
- // Ignore any Microsoft.VisualBasic.dll, since Visual Basic implies it (bug 72785)
+ // Ignore any Microsoft.VisualBasic.dll, since Visual Basic implies it (
string fileName = Path.GetFileName(s);
if (string.Compare(fileName, "Microsoft.VisualBasic.dll", StringComparison.OrdinalIgnoreCase) == 0)
continue;
- // Same deal for mscorlib (bug ASURT 81568)
+ // Same deal for mscorlib (
if (string.Compare(fileName, "mscorlib.dll", StringComparison.OrdinalIgnoreCase) == 0)
continue;
diff --git a/mcs/class/referencesource/System/compmod/microsoft/win32/SafeNativeMethods.cs b/mcs/class/referencesource/System/compmod/microsoft/win32/SafeNativeMethods.cs
index ecd74497370..cc04b06c151 100644
--- a/mcs/class/referencesource/System/compmod/microsoft/win32/SafeNativeMethods.cs
+++ b/mcs/class/referencesource/System/compmod/microsoft/win32/SafeNativeMethods.cs
@@ -83,6 +83,8 @@ namespace Microsoft.Win32 {
FORMAT_MESSAGE_FROM_STRING = 0x00000400,
FORMAT_MESSAGE_FROM_SYSTEM = 0x00001000,
FORMAT_MESSAGE_ARGUMENT_ARRAY = 0x00002000;
+
+ public const int ERROR_INSUFFICIENT_BUFFER = 0x7A;
#if FEATURE_NETCORE
[SecurityCritical]
@@ -107,10 +109,11 @@ namespace Microsoft.Win32 {
#if FEATURE_NETCORE
[SecurityCritical]
[System.Security.SuppressUnmanagedCodeSecurity]
-#endif
- [DllImport(ExternDll.Kernel32, ExactSpelling=true, CharSet=System.Runtime.InteropServices.CharSet.Auto, SetLastError=true)]
+#else
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[ResourceExposure(ResourceScope.None)]
+#endif
+ [DllImport(ExternDll.Kernel32, ExactSpelling=true, CharSet=System.Runtime.InteropServices.CharSet.Auto, SetLastError=true)]
public static extern bool CloseHandle(IntPtr handle);
#endif // !SILVERLIGHT || FEATURE_NETCORE
@@ -228,11 +231,13 @@ namespace Microsoft.Win32 {
#if FEATURE_NETCORE
[SecurityCritical]
-#endif
- [DllImport(ExternDll.Kernel32, SetLastError=true)]
+#else
[ResourceExposure(ResourceScope.Machine)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
+ [DllImport(ExternDll.Kernel32, SetLastError=true)]
internal static extern bool ReleaseSemaphore(SafeWaitHandle handle, int releaseCount, out int previousCount);
+
#endif //!SILVERLIGHT || FEATURE_NETCORE
}
}
diff --git a/mcs/class/referencesource/System/compmod/microsoft/win32/UnsafeNativeMethods.cs b/mcs/class/referencesource/System/compmod/microsoft/win32/UnsafeNativeMethods.cs
index a1911293b0d..9fed6e3d639 100644
--- a/mcs/class/referencesource/System/compmod/microsoft/win32/UnsafeNativeMethods.cs
+++ b/mcs/class/referencesource/System/compmod/microsoft/win32/UnsafeNativeMethods.cs
@@ -338,19 +338,19 @@ namespace Microsoft.Win32 {
[DllImport(ExternDll.Advapi32, CharSet=System.Runtime.InteropServices.CharSet.Unicode, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
[return: MarshalAs(UnmanagedType.Bool)]
- [SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Justification = "[....]: EventLog is protected by EventLogPermission")]
+ [SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Justification = "Microsoft: EventLog is protected by EventLogPermission")]
public static extern bool GetOldestEventLogRecord(SafeHandle hEventLog, out int number);
[DllImport(ExternDll.Advapi32, CharSet=System.Runtime.InteropServices.CharSet.Unicode, SetLastError=true)]
[ResourceExposure(ResourceScope.Machine)]
[return: MarshalAs(UnmanagedType.Bool)]
- [SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Justification = "[....]: EventLog is protected by EventLogPermission")]
+ [SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Justification = "Microsoft: EventLog is protected by EventLogPermission")]
public static extern bool ReadEventLog(SafeHandle hEventLog, int dwReadFlags,
int dwRecordOffset, byte[] buffer, int numberOfBytesToRead, out int bytesRead,
out int minNumOfBytesNeeded);
[DllImport(ExternDll.Advapi32, CharSet=System.Runtime.InteropServices.CharSet.Unicode, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
[return: MarshalAs(UnmanagedType.Bool)]
- [SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Justification = "[....]: EventLog is protected by EventLogPermission")]
+ [SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage", Justification = "Microsoft: EventLog is protected by EventLogPermission")]
public static extern bool NotifyChangeEventLog(SafeHandle hEventLog, SafeWaitHandle hEvent);
[DllImport(ExternDll.Kernel32, EntryPoint="ReadDirectoryChangesW", CharSet=System.Runtime.InteropServices.CharSet.Auto, SetLastError=true)]
diff --git a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeEventLogReadHandle.cs b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeEventLogReadHandle.cs
index 56dad7b9e8f..9aa3130964b 100644
--- a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeEventLogReadHandle.cs
+++ b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeEventLogReadHandle.cs
@@ -7,7 +7,7 @@
**
** Class: SafeEventLogReadHandle
**
-** <EMAIL>Author: David Gutierrez ([....]) </EMAIL>
+** <EMAIL>Author: David Gutierrez (Microsoft) </EMAIL>
**
** A wrapper for event log handles
**
diff --git a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeEventLogWriteHandle.cs b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeEventLogWriteHandle.cs
index 55d5f8ed7cd..060594b0c8b 100644
--- a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeEventLogWriteHandle.cs
+++ b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeEventLogWriteHandle.cs
@@ -7,7 +7,7 @@
**
** Class: SafeEventLogWriteHandle
**
-** <EMAIL>Author: David Gutierrez ([....]) </EMAIL>
+** <EMAIL>Author: David Gutierrez (Microsoft) </EMAIL>
**
** A wrapper for event log handles
**
diff --git a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeFileMapViewHandle.cs b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeFileMapViewHandle.cs
index ba6ca911f83..72e064091ee 100644
--- a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeFileMapViewHandle.cs
+++ b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeFileMapViewHandle.cs
@@ -7,7 +7,7 @@
**
** Class: SafeFileMapViewHandle
**
-** <EMAIL>Author: Brian Grunkemeyer ([....]) </EMAIL>
+** <EMAIL>Author: Brian Grunkemeyer (Microsoft) </EMAIL>
**
** A wrapper for handles returned from MapViewOfFile, used
** for shared memory.
diff --git a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeFileMappingHandle.cs b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeFileMappingHandle.cs
index 35568910b42..6a7db6b1576 100644
--- a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeFileMappingHandle.cs
+++ b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeFileMappingHandle.cs
@@ -7,7 +7,7 @@
**
** Class: SafeFileMappingHandle
**
-** <EMAIL>Author: David Gutierrez ([....]) </EMAIL>
+** <EMAIL>Author: David Gutierrez (Microsoft) </EMAIL>
**
** A wrapper for handle to file mappings, returned by
** CreateFileMapping and OpenFileMapping. Used for shared
diff --git a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeLibraryHandle.cs b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeLibraryHandle.cs
index 01decccf45e..55dc02ab90f 100644
--- a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeLibraryHandle.cs
+++ b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeLibraryHandle.cs
@@ -7,7 +7,7 @@
**
** Class: SafeLibraryHandle
**
-** <EMAIL>Author: David Gutierrez ([....]) </EMAIL>
+** <EMAIL>Author: David Gutierrez (Microsoft) </EMAIL>
**
** A wrapper for a library handles
**
@@ -40,7 +40,9 @@ namespace Microsoft.Win32.SafeHandles {
[DllImport(ExternDll.Kernel32, CharSet=System.Runtime.InteropServices.CharSet.Unicode)]
[ResourceExposure(ResourceScope.None)]
+#if !FEATURE_WINDOWSPHONE
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif // !FEATURE_WINDOWSPHONE
private static extern bool FreeLibrary(IntPtr hModule);
override protected bool ReleaseHandle()
diff --git a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeLocalMemHandle.cs b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeLocalMemHandle.cs
index 86df5599a7a..8f2c8f513fc 100644
--- a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeLocalMemHandle.cs
+++ b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeLocalMemHandle.cs
@@ -7,7 +7,7 @@
**
** Class: SafeLocalMemHandle
**
-** <EMAIL>Author: David Gutierrez ([....]) </EMAIL>
+** <EMAIL>Author: David Gutierrez (Microsoft) </EMAIL>
**
** A wrapper for handle to local memory
**
diff --git a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeProcessHandle.cs b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeProcessHandle.cs
index 89cb2a7e0ae..db23ebe1468 100644
--- a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeProcessHandle.cs
+++ b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeProcessHandle.cs
@@ -25,23 +25,22 @@ using System.Runtime.Versioning;
namespace Microsoft.Win32.SafeHandles {
[SuppressUnmanagedCodeSecurityAttribute]
- internal sealed class SafeProcessHandle : SafeHandleZeroOrMinusOneIsInvalid
+ public sealed class SafeProcessHandle : SafeHandleZeroOrMinusOneIsInvalid
{
internal static SafeProcessHandle InvalidHandle = new SafeProcessHandle(IntPtr.Zero);
// Note that OpenProcess returns 0 on failure
- internal SafeProcessHandle() : base(true) {}
+ internal SafeProcessHandle() : base(true) {}
- internal SafeProcessHandle(IntPtr handle) : base (true) {
+ internal SafeProcessHandle(IntPtr handle) : base(true) {
SetHandle(handle);
}
- // Not currently called
- //[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode=true)]
- //internal SafeProcessHandle(IntPtr existingHandle, bool ownsHandle) : base(ownsHandle) {
- // SetHandle(existingHandle);
- //}
+ [SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
+ public SafeProcessHandle(IntPtr existingHandle, bool ownsHandle) : base(ownsHandle) {
+ SetHandle(existingHandle);
+ }
[DllImport(ExternDll.Kernel32, CharSet=System.Runtime.InteropServices.CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.Machine)]
diff --git a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeTimerHandle.cs b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeTimerHandle.cs
index 65b3a0a10b5..68abca846ae 100644
--- a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeTimerHandle.cs
+++ b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeTimerHandle.cs
@@ -7,7 +7,7 @@
**
** Class: SafeTimerHandle
**
-** <EMAIL>Author: David Gutierrez ([....]) </EMAIL>
+** <EMAIL>Author: David Gutierrez (Microsoft) </EMAIL>
**
** A wrapper for a timer handle
**
diff --git a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeUserTokenHandle.cs b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeUserTokenHandle.cs
index 25fb6d62d00..f21aea760ec 100644
--- a/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeUserTokenHandle.cs
+++ b/mcs/class/referencesource/System/compmod/microsoft/win32/safehandles/SafeUserTokenHandle.cs
@@ -7,7 +7,7 @@
**
** Class: SafeUserTokenHandle
**
-** <EMAIL>Author: David Gutierrez ([....]) </EMAIL>
+** <EMAIL>Author: David Gutierrez (Microsoft) </EMAIL>
**
** A wrapper for a user token handle
**
diff --git a/mcs/class/referencesource/System/compmod/system/Runtime/InteropServices/ComTypes/FxCopSuppression.cs b/mcs/class/referencesource/System/compmod/system/Runtime/InteropServices/ComTypes/FxCopSuppression.cs
index db0e6f545a2..7c66db21cf2 100644
--- a/mcs/class/referencesource/System/compmod/system/Runtime/InteropServices/ComTypes/FxCopSuppression.cs
+++ b/mcs/class/referencesource/System/compmod/system/Runtime/InteropServices/ComTypes/FxCopSuppression.cs
@@ -110,7 +110,7 @@ using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope="member", Target="System.ComponentModel.PropertyDescriptorCollection.System.Collections.IList.set_Item(System.Int32,System.Object):System.Void")]
[assembly: SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope="member", Target="System.ComponentModel.PropertyDescriptorCollection.System.Collections.IDictionary.set_Item(System.Object,System.Object):System.Void")]
-//
+// CONSIDER: In future releases we may want to provide a strongly typed implementation of IList.
[assembly: SuppressMessage("Microsoft.Design", "CA1039:ListsAreStronglyTyped", Scope="type", Target="System.ComponentModel.Design.DesignerOptionService+DesignerOptionCollection")]
[assembly: SuppressMessage("Microsoft.Design", "CA1039:ListsAreStronglyTyped", Scope="type", Target="System.ComponentModel.ListSortDescriptionCollection")]
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeArgumentReferenceExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeArgumentReferenceExpression.cs
index 66eb9d755dc..7b074e0280c 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeArgumentReferenceExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeArgumentReferenceExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeArgumentReferenceExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeArrayCreateExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeArrayCreateExpression.cs
index e4517f1bed3..63e9b54e17d 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeArrayCreateExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeArrayCreateExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeArrayCreateExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeArrayIndexerExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeArrayIndexerExpression.cs
index efacd8e4ea4..85e97974683 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeArrayIndexerExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeArrayIndexerExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeArrayIndexerExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeAssignStatement.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeAssignStatement.cs
index 1337fc7195e..2a5ccbe4c95 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeAssignStatement.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeAssignStatement.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeAssignStatement.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeAttachEventStatement.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeAttachEventStatement.cs
index 78003316f58..f3098a1a6a4 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeAttachEventStatement.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeAttachEventStatement.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeAttachEventStatement.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeArgument.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeArgument.cs
index 278ba1db530..218ff75b498 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeArgument.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeArgument.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeAttributeArgument.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeArgumentCollection.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeArgumentCollection.cs
index a7426cdfdcd..242803b581c 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeArgumentCollection.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeArgumentCollection.cs
@@ -1,7 +1,7 @@
// ------------------------------------------------------------------------------
// <copyright file="CodeAttributeArgumentCollection.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// ------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeDeclaration.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeDeclaration.cs
index 4216987dc83..b10284664fd 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeDeclaration.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeDeclaration.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeAttributeDeclaration.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeDeclarationCollection.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeDeclarationCollection.cs
index 2c14d78934e..e7a6baed543 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeDeclarationCollection.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeAttributeDeclarationCollection.cs
@@ -1,7 +1,7 @@
// ------------------------------------------------------------------------------
// <copyright file="CodeAttributeDeclarationCollection.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// ------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeBaseReferenceExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeBaseReferenceExpression.cs
index 102a000686e..175ebe0f0a1 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeBaseReferenceExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeBaseReferenceExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeBaseReferenceExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>petes</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeBinaryOperatorExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeBinaryOperatorExpression.cs
index ee21644fb74..e0c52434398 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeBinaryOperatorExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeBinaryOperatorExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeBinaryOperatorExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeBinaryOperatorType.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeBinaryOperatorType.cs
index 87cde6421cd..7fd681a363b 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeBinaryOperatorType.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeBinaryOperatorType.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeBinaryOperatorType.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>petes</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeCastExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeCastExpression.cs
index c001c5806b4..f136ff61794 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeCastExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeCastExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeCastExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeCatchClause.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeCatchClause.cs
index 15ab8de228a..6f8034806b8 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeCatchClause.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeCatchClause.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeCatchClause.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeCatchClauseCollection.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeCatchClauseCollection.cs
index ceb3e70ea59..4d8b0b35c56 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeCatchClauseCollection.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeCatchClauseCollection.cs
@@ -1,7 +1,7 @@
// ------------------------------------------------------------------------------
// <copyright file="CodeCatchClauseCollection.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// ------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeChecksumPragma.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeChecksumPragma.cs
index a272b59d0c4..b18cb50f6c5 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeChecksumPragma.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeChecksumPragma.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeChecksumPragma.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeComment.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeComment.cs
index e639c377603..2b04dec5959 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeComment.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeComment.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeComment.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeCommentStatement.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeCommentStatement.cs
index bd7598eb8fe..7872eaf0316 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeCommentStatement.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeCommentStatement.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeCommentStatement.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeCommentStatementCollection.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeCommentStatementCollection.cs
index 9d0936dbf35..f2360b56464 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeCommentStatementCollection.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeCommentStatementCollection.cs
@@ -1,7 +1,7 @@
// ------------------------------------------------------------------------------
// <copyright file="CodeCommentStatementCollection.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// ------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeCompileUnit.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeCompileUnit.cs
index 7a4102e623a..24c0823e6ce 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeCompileUnit.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeCompileUnit.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeCompileUnit.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeConditionStatement.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeConditionStatement.cs
index f71df71452d..65cf684d894 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeConditionStatement.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeConditionStatement.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeConditionStatement.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeConstructor.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeConstructor.cs
index 79a4e990646..0a29e595957 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeConstructor.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeConstructor.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeConstructor.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeDefaultValueExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeDefaultValueExpression.cs
index 7ab33e6ba42..d41abec56b5 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeDefaultValueExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeDefaultValueExpression.cs
@@ -1,4 +1,4 @@
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace System.CodeDom {
using System.Diagnostics;
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeDelegateCreateExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeDelegateCreateExpression.cs
index d5f19dc7838..ada4bf15b81 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeDelegateCreateExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeDelegateCreateExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeDelegateCreateExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeDelegateInvokeExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeDelegateInvokeExpression.cs
index ccc099fbacd..c46bdf91e55 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeDelegateInvokeExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeDelegateInvokeExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeDelegateInvokeExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeDirectionExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeDirectionExpression.cs
index 12288ac596d..b6dcdc64def 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeDirectionExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeDirectionExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeDirectionExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeDirective.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeDirective.cs
index e65f08f682c..09a971abe53 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeDirective.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeDirective.cs
@@ -1,5 +1,5 @@
//------------------------------------------------------------------------------
-// <OWNER>[....]</OWNER>
+// <OWNER>petes</OWNER>
//
// <copyright file="CodeExpression.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeDirectiveCollection.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeDirectiveCollection.cs
index 4a1decc69ae..c7f7b5a7a40 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeDirectiveCollection.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeDirectiveCollection.cs
@@ -1,7 +1,7 @@
// ------------------------------------------------------------------------------
// <copyright file="CodeDirectiveCollection.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// ------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeEntryPointMethod.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeEntryPointMethod.cs
index 74575ca3e4d..aa65416192b 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeEntryPointMethod.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeEntryPointMethod.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeEntryPointMethod.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeEventReferenceExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeEventReferenceExpression.cs
index 1a34b90cad0..3eadd89bff6 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeEventReferenceExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeEventReferenceExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeEventReferenceExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeExpression.cs
index 90f9a678593..5fcac58d6b2 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>petes</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeExpressionCollection.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeExpressionCollection.cs
index 1af19ae87ae..6c0b04414d5 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeExpressionCollection.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeExpressionCollection.cs
@@ -1,7 +1,7 @@
// ------------------------------------------------------------------------------
// <copyright file="CodeExpressionCollection.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// ------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeExpressionStatement.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeExpressionStatement.cs
index 676ed98701c..7fa7f8bae5c 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeExpressionStatement.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeExpressionStatement.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeExpressionStatement.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeFieldReferenceExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeFieldReferenceExpression.cs
index 52ad0e1018d..279a2b27b34 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeFieldReferenceExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeFieldReferenceExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeFieldReferenceExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeGotoStatement.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeGotoStatement.cs
index a8b06a1ad84..fa1e7c963c5 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeGotoStatement.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeGotoStatement.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeGotoStatement.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeIndexerExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeIndexerExpression.cs
index cb41ce7287a..bd71984b759 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeIndexerExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeIndexerExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeIndexerExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeIterationStatement.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeIterationStatement.cs
index 65d988ada2f..bcabe1bee86 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeIterationStatement.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeIterationStatement.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeIterationStatement.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeLabeledStatement.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeLabeledStatement.cs
index e9d0a4d6756..d378c4041bf 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeLabeledStatement.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeLabeledStatement.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeLabeledStatement.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeLinePragma.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeLinePragma.cs
index e83322d7601..96064829f84 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeLinePragma.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeLinePragma.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeLinePragma.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeMemberEvent.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeMemberEvent.cs
index d8ed1cc15d6..e7a05f69b40 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeMemberEvent.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeMemberEvent.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeMemberEvent.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeMemberField.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeMemberField.cs
index a2d2877fc78..0a6d89bcfbc 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeMemberField.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeMemberField.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeMemberField.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeMemberMethod.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeMemberMethod.cs
index e7632f7ff98..1be22214417 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeMemberMethod.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeMemberMethod.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeMemberMethod.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeMemberProperty.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeMemberProperty.cs
index c07ce9643e3..8eded2271a7 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeMemberProperty.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeMemberProperty.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeMemberProperty.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeMethodInvokeExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeMethodInvokeExpression.cs
index d1d5fe7eb36..b941059ead3 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeMethodInvokeExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeMethodInvokeExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeMethodInvokeExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeMethodReturnStatement.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeMethodReturnStatement.cs
index 6bcb6a1abf4..3769a3a70e4 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeMethodReturnStatement.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeMethodReturnStatement.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeMethodReturnStatement.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeNamespace.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeNamespace.cs
index 9feea179f30..6bef7fdfc10 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeNamespace.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeNamespace.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeNamespace.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeNamespaceCollection.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeNamespaceCollection.cs
index 81b5d119997..654eb1f8dee 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeNamespaceCollection.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeNamespaceCollection.cs
@@ -1,7 +1,7 @@
// ------------------------------------------------------------------------------
// <copyright file="CodeNamespaceCollection.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// ------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeNamespaceImport.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeNamespaceImport.cs
index aed07620ba6..21fb016d080 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeNamespaceImport.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeNamespaceImport.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeNamespaceImport.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeNamespaceImportCollection.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeNamespaceImportCollection.cs
index 9015a63bc1d..e4b8c72dfa3 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeNamespaceImportCollection.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeNamespaceImportCollection.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeNamespaceImportCollection.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeObject.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeObject.cs
index f8f0993c578..97813e052e3 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeObject.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeObject.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeObject.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeObjectCreateExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeObjectCreateExpression.cs
index 9604e90baf8..6a09707e5f8 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeObjectCreateExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeObjectCreateExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeObjectCreateExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeParameterDeclarationExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeParameterDeclarationExpression.cs
index 9e970340962..5c3c1d58d56 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeParameterDeclarationExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeParameterDeclarationExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeParameterDeclarationExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeParameterDeclarationExpressionCollection.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeParameterDeclarationExpressionCollection.cs
index 2bc781bae3e..dad8668f122 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeParameterDeclarationExpressionCollection.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeParameterDeclarationExpressionCollection.cs
@@ -1,7 +1,7 @@
// ------------------------------------------------------------------------------
// <copyright file="CodeParameterDeclarationExpressionCollection.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// ------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodePrimitiveExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodePrimitiveExpression.cs
index b64496141f1..e8cb3b0f52b 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodePrimitiveExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodePrimitiveExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodePrimitiveExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodePropertyReferenceExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodePropertyReferenceExpression.cs
index 28d511744cc..97b3f36b823 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodePropertyReferenceExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodePropertyReferenceExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodePropertyReferenceExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodePropertySetValueReferenceExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodePropertySetValueReferenceExpression.cs
index e8e245a7806..0f0a784b300 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodePropertySetValueReferenceExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodePropertySetValueReferenceExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodePropertySetValueReferenceExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>petes</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeRegionDirective.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeRegionDirective.cs
index 1ecfe2e9b33..058c64b2348 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeRegionDirective.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeRegionDirective.cs
@@ -1,5 +1,5 @@
//------------------------------------------------------------------------------
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// <copyright file="CodeChecksumPragma.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeRegionMode.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeRegionMode.cs
index 7f6cbcb9d52..7fb0c63c00b 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeRegionMode.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeRegionMode.cs
@@ -1,5 +1,5 @@
//------------------------------------------------------------------------------
-// <OWNER>[....]</OWNER>
+// <OWNER>petes</OWNER>
//
// <copyright file="FieldDirection.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeRemoveEventStatement.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeRemoveEventStatement.cs
index c767800aef4..0f0c0f671ae 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeRemoveEventStatement.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeRemoveEventStatement.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeRemoveEventStatement.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetCompileUnit.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetCompileUnit.cs
index bdf6f35b052..df0b7eb0a0f 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetCompileUnit.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetCompileUnit.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeSnippetCompileUnit.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetExpression.cs
index 2e759abc826..18e87f7c61d 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeSnippetExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetStatement.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetStatement.cs
index 4190a887680..8c0387fe46c 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetStatement.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetStatement.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeSnippetStatement.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetTypeMember.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetTypeMember.cs
index a2ae40489ac..a07dfa68ac3 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetTypeMember.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeSnippetTypeMember.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeSnippetTypeMember.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeStatement.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeStatement.cs
index cb56cfc083d..3cdbebdc80d 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeStatement.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeStatement.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeStatement.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeStatementCollection.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeStatementCollection.cs
index b9ee3df1167..d475921f4d7 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeStatementCollection.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeStatementCollection.cs
@@ -1,7 +1,7 @@
// ------------------------------------------------------------------------------
// <copyright file="CodeStatementCollection.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// ------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeThisReferenceExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeThisReferenceExpression.cs
index 832600a255e..36704bd22fe 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeThisReferenceExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeThisReferenceExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeThisReferenceExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>petes</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeThrowExceptionStatement.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeThrowExceptionStatement.cs
index 59a9b44aa30..f763c517c7a 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeThrowExceptionStatement.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeThrowExceptionStatement.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeThrowExceptionStatement.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeTryCatchFinallyStatement.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeTryCatchFinallyStatement.cs
index 13269122766..d79ff52b33f 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeTryCatchFinallyStatement.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeTryCatchFinallyStatement.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeTryCatchFinallyStatement.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeConstructor.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeConstructor.cs
index d2f737e9bf6..c9dd7346b7f 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeConstructor.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeConstructor.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeTypeConstructor.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeDeclaration.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeDeclaration.cs
index a4c49883432..c9c0c37697e 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeDeclaration.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeDeclaration.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeTypeDeclaration.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeDeclarationCollection.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeDeclarationCollection.cs
index 4d47a5afe7b..638ba5ff673 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeDeclarationCollection.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeDeclarationCollection.cs
@@ -1,7 +1,7 @@
// ------------------------------------------------------------------------------
// <copyright file="CodeTypeDeclarationCollection.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// ------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeDelegate.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeDelegate.cs
index a96b3b2246c..f0ad8368f8b 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeDelegate.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeDelegate.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeTypeDelegate.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeMember.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeMember.cs
index 060d76d8c0e..38f0c0d1c01 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeMember.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeMember.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeTypeMember.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeMemberCollection.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeMemberCollection.cs
index 58acc0bb192..b4fe0211f61 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeMemberCollection.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeMemberCollection.cs
@@ -1,7 +1,7 @@
// ------------------------------------------------------------------------------
// <copyright file="CodeTypeMemberCollection.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// ------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeOfExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeOfExpression.cs
index a2ba738e4c0..dbd3498f76a 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeOfExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeOfExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeTypeOfExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeParameter.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeParameter.cs
index d3acfd8c781..fd5e1164b06 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeParameter.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeParameter.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeTypeParameter.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeParameterCollection.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeParameterCollection.cs
index 42290c07bd4..9c03b81ab19 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeParameterCollection.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeParameterCollection.cs
@@ -1,7 +1,7 @@
// ------------------------------------------------------------------------------
// <copyright file="CodeTypeParameterCollection.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// ------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeReference.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeReference.cs
index ad8389d7eea..3ba435d53a6 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeReference.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeReference.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeTypeReference.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeReferenceCollection.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeReferenceCollection.cs
index 4787c56acd6..0324aff528a 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeReferenceCollection.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeReferenceCollection.cs
@@ -1,7 +1,7 @@
// ------------------------------------------------------------------------------
// <copyright file="CodeTypeReferenceCollection.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// ------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeReferenceExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeReferenceExpression.cs
index 267323a8d47..3fdc0ebfc4f 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeReferenceExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeTypeReferenceExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeTypeReferenceExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeVariableDeclarationStatement.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeVariableDeclarationStatement.cs
index 2569c3895a2..958a3386a2e 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeVariableDeclarationStatement.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeVariableDeclarationStatement.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeVariableDeclarationStatement.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/CodeVariableReferenceExpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/CodeVariableReferenceExpression.cs
index 8ce7164697d..83bd33d4bcd 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/CodeVariableReferenceExpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/CodeVariableReferenceExpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeVariableReferenceExpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/FieldDirection.cs b/mcs/class/referencesource/System/compmod/system/codedom/FieldDirection.cs
index 023b0affc9d..217a3f4008d 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/FieldDirection.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/FieldDirection.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="FieldDirection.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>petes</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/MemberAttributes.cs b/mcs/class/referencesource/System/compmod/system/codedom/MemberAttributes.cs
index f57bd541d98..9415211bc5a 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/MemberAttributes.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/MemberAttributes.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="MemberAttributes.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>petes</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/codemethodreferenceexpression.cs b/mcs/class/referencesource/System/compmod/system/codedom/codemethodreferenceexpression.cs
index 96adf47cb09..1b8c54a77a3 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/codemethodreferenceexpression.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/codemethodreferenceexpression.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="codemethodreferenceexpression.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeCompiler.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeCompiler.cs
index 7eaaa9aab34..45fb83a1ea7 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeCompiler.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeCompiler.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeCompiler.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeDOMProvider.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeDOMProvider.cs
index 7fb7adce009..ff200413083 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeDOMProvider.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeDOMProvider.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeDOMProvider.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeDomConfigurationHandler.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeDomConfigurationHandler.cs
index b72b1a989f2..e1633cc9241 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeDomConfigurationHandler.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeDomConfigurationHandler.cs
@@ -1,5 +1,5 @@
//------------------------------------------------------------------------------
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// <copyright file="CodeDomCompilationConfiguration.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeGenerator.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeGenerator.cs
index 60cde1f2742..0e7062b0b12 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeGenerator.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeGenerator.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeGenerator.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeGeneratorOptions.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeGeneratorOptions.cs
index d3a8dfb850e..80f6a3ba5fe 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeGeneratorOptions.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeGeneratorOptions.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeGeneratorOptions.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeParser.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeParser.cs
index 8206f7e1dbf..e0e498c4710 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeParser.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeParser.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CodeParser.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>petes</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeValidator.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeValidator.cs
index 6abf4c89d93..5164c804f68 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeValidator.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CodeValidator.cs
@@ -1,5 +1,5 @@
//------------------------------------------------------------------------------
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// <copyright file="CodeGenerator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerError.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerError.cs
index 0e4f0a3bb78..c5c2661e377 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerError.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerError.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CompilerError.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerErrorCollection.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerErrorCollection.cs
index 7b191fd9e62..f35d185fc60 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerErrorCollection.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerErrorCollection.cs
@@ -1,7 +1,7 @@
// ------------------------------------------------------------------------------
// <copyright file="CompilerErrorCollection.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// ------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerInfo.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerInfo.cs
index 5e695adac39..0cd93987b52 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerInfo.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerInfo.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CompilerInfo.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerParameters.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerParameters.cs
index c7d247c8de1..647fcc163a4 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerParameters.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerParameters.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CompilerParameters.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerResults.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerResults.cs
index 5168410e59d..d2b7c231bfa 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerResults.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/CompilerResults.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="CompilerResults.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/Executor.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/Executor.cs
index e9a97dad1e1..5fac36c6a02 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/Executor.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/Executor.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="Executor.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/GeneratedCodeAttribute.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/GeneratedCodeAttribute.cs
index 0066e7363a3..fd30ac50c3a 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/GeneratedCodeAttribute.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/GeneratedCodeAttribute.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="GeneratedCodeAttribute.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/GeneratorSupport.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/GeneratorSupport.cs
index 76a33b64519..9d64d32fac9 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/GeneratorSupport.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/GeneratorSupport.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="GeneratorSupport.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>petes</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/ICodeCompiler.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/ICodeCompiler.cs
index a49f11a375b..e6b8d903bb3 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/ICodeCompiler.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/ICodeCompiler.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="ICodeCompiler.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>petes</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/ICodeGenerator.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/ICodeGenerator.cs
index 6e58caee46c..2bae462080d 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/ICodeGenerator.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/ICodeGenerator.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="ICodeGenerator.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>petes</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/ICodeParser.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/ICodeParser.cs
index efb204e913c..d71a2748275 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/ICodeParser.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/ICodeParser.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="ICodeParser.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>petes</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/IndentTextWriter.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/IndentTextWriter.cs
index 0d6d57942d3..be86a9c176b 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/IndentTextWriter.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/IndentTextWriter.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="IndentTextWriter.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/LanguageOptions.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/LanguageOptions.cs
index b19120d2c35..6e58c8dd125 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/LanguageOptions.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/LanguageOptions.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="LanguageOptions.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>petes</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/RedistVersionInfo.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/RedistVersionInfo.cs
index bf8e4bf87a3..c3c0e970c9a 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/RedistVersionInfo.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/RedistVersionInfo.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="RedistVersionInfo.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/codedom/compiler/TempFiles.cs b/mcs/class/referencesource/System/compmod/system/codedom/compiler/TempFiles.cs
index da6925a113e..f966f26840e 100644
--- a/mcs/class/referencesource/System/compmod/system/codedom/compiler/TempFiles.cs
+++ b/mcs/class/referencesource/System/compmod/system/codedom/compiler/TempFiles.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <copyright file="TempFiles.cs" company="Microsoft">
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/compmod/system/collections/generic/iset.cs b/mcs/class/referencesource/System/compmod/system/collections/generic/iset.cs
index a35961923bd..90cb8ef6084 100644
--- a/mcs/class/referencesource/System/compmod/system/collections/generic/iset.cs
+++ b/mcs/class/referencesource/System/compmod/system/collections/generic/iset.cs
@@ -7,7 +7,7 @@
**
** Interface: ISet
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Base interface for all generic sets.
diff --git a/mcs/class/referencesource/System/compmod/system/collections/generic/linkedlist.cs b/mcs/class/referencesource/System/compmod/system/collections/generic/linkedlist.cs
index 41efdc5dcd0..cc5eb4a42aa 100644
--- a/mcs/class/referencesource/System/compmod/system/collections/generic/linkedlist.cs
+++ b/mcs/class/referencesource/System/compmod/system/collections/generic/linkedlist.cs
@@ -12,10 +12,10 @@ namespace System.Collections.Generic {
[DebuggerTypeProxy(typeof(System_CollectionDebugView<>))]
[DebuggerDisplay("Count = {Count}")]
#if SILVERLIGHT
- public class LinkedList<T>: ICollection<T>, System.Collections.ICollection
+ public class LinkedList<T>: ICollection<T>, System.Collections.ICollection, IReadOnlyCollection<T>
#else
[Serializable()]
- public class LinkedList<T>: ICollection<T>, System.Collections.ICollection
+ public class LinkedList<T>: ICollection<T>, System.Collections.ICollection, IReadOnlyCollection<T>
,ISerializable, IDeserializationCallback
#endif
{
diff --git a/mcs/class/referencesource/System/compmod/system/collections/generic/queue.cs b/mcs/class/referencesource/System/compmod/system/collections/generic/queue.cs
index beea192bff4..a648b86d025 100644
--- a/mcs/class/referencesource/System/compmod/system/collections/generic/queue.cs
+++ b/mcs/class/referencesource/System/compmod/system/collections/generic/queue.cs
@@ -27,7 +27,8 @@ namespace System.Collections.Generic {
#endif
[System.Runtime.InteropServices.ComVisible(false)]
public class Queue<T> : IEnumerable<T>,
- System.Collections.ICollection {
+ System.Collections.ICollection,
+ IReadOnlyCollection<T> {
private T[] _array;
private int _head; // First valid element in the queue
private int _tail; // Last valid element in the queue
diff --git a/mcs/class/referencesource/System/compmod/system/collections/generic/sorteddictionary.cs b/mcs/class/referencesource/System/compmod/system/collections/generic/sorteddictionary.cs
index 6277e4b6cdf..98679a873d2 100644
--- a/mcs/class/referencesource/System/compmod/system/collections/generic/sorteddictionary.cs
+++ b/mcs/class/referencesource/System/compmod/system/collections/generic/sorteddictionary.cs
@@ -9,7 +9,7 @@ namespace System.Collections.Generic {
#endif
[DebuggerTypeProxy(typeof(System_DictionaryDebugView<,>))]
[DebuggerDisplay("Count = {Count}")]
- public class SortedDictionary<TKey, TValue> : IDictionary<TKey, TValue>, IDictionary {
+ public class SortedDictionary<TKey, TValue> : IDictionary<TKey, TValue>, IDictionary, IReadOnlyDictionary<TKey, TValue> {
#if !FEATURE_NETCORE
[NonSerialized]
#endif
@@ -134,6 +134,12 @@ namespace System.Collections.Generic {
}
}
+ IEnumerable<TKey> IReadOnlyDictionary<TKey, TValue>.Keys {
+ get {
+ return Keys;
+ }
+ }
+
public ValueCollection Values {
get {
if (values == null) values = new ValueCollection(this);
@@ -146,6 +152,12 @@ namespace System.Collections.Generic {
return Values;
}
}
+
+ IEnumerable<TValue> IReadOnlyDictionary<TKey, TValue>.Values {
+ get {
+ return Values;
+ }
+ }
public void Add(TKey key, TValue value) {
if( key == null) {
@@ -391,8 +403,8 @@ namespace System.Collections.Generic {
if (getEnumeratorRetType == DictEntry) {
return new DictionaryEntry(Current.Key, Current.Value);
} else {
- return new KeyValuePair<TKey, TValue>(Current.Key, Current.Value);
- }
+ return new KeyValuePair<TKey, TValue>(Current.Key, Current.Value);
+ }
}
}
@@ -433,7 +445,7 @@ namespace System.Collections.Generic {
#if !FEATURE_NETCORE
[Serializable]
#endif
- public sealed class KeyCollection: ICollection<TKey>, ICollection {
+ public sealed class KeyCollection: ICollection<TKey>, ICollection, IReadOnlyCollection<TKey> {
private SortedDictionary<TKey,TValue> dictionary;
public KeyCollection(SortedDictionary<TKey,TValue> dictionary) {
@@ -588,7 +600,7 @@ namespace System.Collections.Generic {
#if !FEATURE_NETCORE
[Serializable]
#endif
- public sealed class ValueCollection: ICollection<TValue>, ICollection {
+ public sealed class ValueCollection: ICollection<TValue>, ICollection, IReadOnlyCollection<TValue> {
private SortedDictionary<TKey,TValue> dictionary;
public ValueCollection(SortedDictionary<TKey,TValue> dictionary) {
diff --git a/mcs/class/referencesource/System/compmod/system/collections/generic/sortedlist.cs b/mcs/class/referencesource/System/compmod/system/collections/generic/sortedlist.cs
index 7f377a95806..6ab100f2221 100644
--- a/mcs/class/referencesource/System/compmod/system/collections/generic/sortedlist.cs
+++ b/mcs/class/referencesource/System/compmod/system/collections/generic/sortedlist.cs
@@ -59,10 +59,12 @@ namespace System.Collections.Generic {
//
[DebuggerTypeProxy(typeof(System_DictionaryDebugView<,>))]
[DebuggerDisplay("Count = {Count}")]
- [Serializable()]
+#if !FEATURE_NETCORE
+ [Serializable()]
+#endif
[System.Runtime.InteropServices.ComVisible(false)]
public class SortedList<TKey, TValue> :
- IDictionary<TKey, TValue>, System.Collections.IDictionary
+ IDictionary<TKey, TValue>, System.Collections.IDictionary, IReadOnlyDictionary<TKey, TValue>
{
private TKey[] keys;
private TValue[] values;
@@ -71,7 +73,9 @@ namespace System.Collections.Generic {
private IComparer<TKey> comparer;
private KeyList keyList;
private ValueList valueList;
+#if !FEATURE_NETCORE
[NonSerialized]
+#endif
private Object _syncRoot;
static TKey[] emptyKeys = new TKey[0];
@@ -205,7 +209,7 @@ namespace System.Collections.Generic {
// of entries the list can contain before a reallocation of the internal
// arrays is required.
//
- public int Capacity {
+ public int Capacity {
get {
return keys.Length;
}
@@ -292,6 +296,12 @@ namespace System.Collections.Generic {
}
}
+ IEnumerable<TKey> IReadOnlyDictionary<TKey,TValue>.Keys {
+ get {
+ return GetKeyListHelper();
+ }
+ }
+
// Returns a collection representing the values of this sorted list. This
// method returns the same object as GetValueList, but typed as an
// ICollection instead of an IList.
@@ -314,6 +324,12 @@ namespace System.Collections.Generic {
}
}
+ IEnumerable<TValue> IReadOnlyDictionary<TKey,TValue>.Values {
+ get {
+ return GetValueListHelper();
+ }
+ }
+
private KeyList GetKeyListHelper() {
if (keyList == null)
keyList = new KeyList(this);
@@ -664,7 +680,9 @@ namespace System.Collections.Generic {
/// <include file='doc\SortedList.uex' path='docs/doc[@for="SortedListEnumerator"]/*' />
+#if !FEATURE_NETCORE
[Serializable()]
+#endif
private struct Enumerator : IEnumerator<KeyValuePair<TKey, TValue>>, System.Collections.IDictionaryEnumerator
{
private SortedList<TKey, TValue> _sortedList;
@@ -676,7 +694,7 @@ namespace System.Collections.Generic {
internal const int KeyValuePair = 1;
internal const int DictEntry = 2;
-
+
internal Enumerator(SortedList<TKey, TValue> sortedList, int getEnumeratorRetType) {
this._sortedList = sortedList;
this.index = 0;
@@ -745,8 +763,8 @@ namespace System.Collections.Generic {
if (getEnumeratorRetType == DictEntry) {
return new System.Collections.DictionaryEntry(key, value);
} else {
- return new KeyValuePair<TKey, TValue>(key, value);
- }
+ return new KeyValuePair<TKey, TValue>(key, value);
+ }
}
}
@@ -771,8 +789,9 @@ namespace System.Collections.Generic {
}
}
-
+#if !FEATURE_NETCORE
[Serializable()]
+#endif
private sealed class SortedListKeyEnumerator : IEnumerator<TKey>, System.Collections.IEnumerator
{
private SortedList<TKey, TValue> _sortedList;
@@ -831,8 +850,9 @@ namespace System.Collections.Generic {
}
}
-
+#if !FEATURE_NETCORE
[Serializable()]
+#endif
private sealed class SortedListValueEnumerator : IEnumerator<TValue>, System.Collections.IEnumerator
{
private SortedList<TKey, TValue> _sortedList;
@@ -891,10 +911,11 @@ namespace System.Collections.Generic {
}
}
-
[DebuggerTypeProxy(typeof(System_DictionaryKeyCollectionDebugView<,>))]
[DebuggerDisplay("Count = {Count}")]
+#if !FEATURE_NETCORE
[Serializable()]
+#endif
private sealed class KeyList : IList<TKey>, System.Collections.ICollection
{
private SortedList<TKey, TValue> _dict;
@@ -992,7 +1013,9 @@ namespace System.Collections.Generic {
[DebuggerTypeProxy(typeof(System_DictionaryValueCollectionDebugView<,>))]
[DebuggerDisplay("Count = {Count}")]
+#if !FEATURE_NETCORE
[Serializable()]
+#endif
private sealed class ValueList : IList<TValue>, System.Collections.ICollection
{
private SortedList<TKey, TValue> _dict;
diff --git a/mcs/class/referencesource/System/compmod/system/collections/generic/sortedset.cs b/mcs/class/referencesource/System/compmod/system/collections/generic/sortedset.cs
index 199864ef97e..abd74005351 100644
--- a/mcs/class/referencesource/System/compmod/system/collections/generic/sortedset.cs
+++ b/mcs/class/referencesource/System/compmod/system/collections/generic/sortedset.cs
@@ -54,9 +54,9 @@ namespace System.Collections.Generic {
[DebuggerDisplay("Count = {Count}")]
#if !FEATURE_NETCORE
[Serializable]
- public class SortedSet<T> : ISet<T>, ICollection<T>, ICollection, ISerializable, IDeserializationCallback {
+ public class SortedSet<T> : ISet<T>, ICollection<T>, ICollection, ISerializable, IDeserializationCallback, IReadOnlyCollection<T> {
#else
- public class SortedSet<T> : ISet<T>, ICollection<T>, ICollection {
+ public class SortedSet<T> : ISet<T>, ICollection<T>, ICollection, IReadOnlyCollection<T> {
#endif //!FEATURE_NETCORE
#region local variables/constants
Node root;
diff --git a/mcs/class/referencesource/System/compmod/system/collections/generic/stack.cs b/mcs/class/referencesource/System/compmod/system/collections/generic/stack.cs
index 7270f304173..086926ce9b7 100644
--- a/mcs/class/referencesource/System/compmod/system/collections/generic/stack.cs
+++ b/mcs/class/referencesource/System/compmod/system/collections/generic/stack.cs
@@ -28,10 +28,11 @@ namespace System.Collections.Generic {
#endif
[System.Runtime.InteropServices.ComVisible(false)]
public class Stack<T> : IEnumerable<T>,
- System.Collections.ICollection {
+ System.Collections.ICollection,
+ IReadOnlyCollection<T> {
private T[] _array; // Storage for stack elements
private int _size; // Number of items in the stack.
- private int _version; // Used to keep enumerator in [....] w/ collection.
+ private int _version; // Used to keep enumerator in sync w/ collection.
#if !SILVERLIGHT
[NonSerialized]
#endif
diff --git a/mcs/class/referencesource/System/compmod/system/collections/generic/throwhelper.cs b/mcs/class/referencesource/System/compmod/system/collections/generic/throwhelper.cs
index ad8d0dbcb16..0a94584e0c6 100644
--- a/mcs/class/referencesource/System/compmod/system/collections/generic/throwhelper.cs
+++ b/mcs/class/referencesource/System/compmod/system/collections/generic/throwhelper.cs
@@ -30,15 +30,15 @@ namespace System {
// It is very important we do this for generic classes because we can easily generate the same code
// multiple times for different instantiation.
//
- // <STRIP>
- // Jit will generates the code to throw exception at the end of a method, thus we can reduce working
- // set if the user code will never throw an exception. However Jit doesn't know anything about the
- // methods in ThrowHelper, so it will not moves the instructions to the end.
- // This is not a problem for ngened code because we will probably move the code based on profile data(hopefully.)
- //
- // For jitted code, it doesn't make much difference. The only advantage of moving the code to the end is to
- // improve cache locality. Patrick pointed out this doesn't make much different on newer processor like P4.
- // </STRIP>
+ // <
+
+
+
+
+
+
+
+
#if !SILVERLIGHT
diff --git a/mcs/class/referencesource/System/compmod/system/collections/objectmodel/observablecollection.cs b/mcs/class/referencesource/System/compmod/system/collections/objectmodel/observablecollection.cs
index 69f8a5c195e..02e10f2d1ba 100644
--- a/mcs/class/referencesource/System/compmod/system/collections/objectmodel/observablecollection.cs
+++ b/mcs/class/referencesource/System/compmod/system/collections/objectmodel/observablecollection.cs
@@ -11,7 +11,7 @@
// See spec at http://avalon/connecteddata/Specs/Collection%20Interfaces.mht
//
// History:
-// 11/22/2004 : [....] - created
+// 11/22/2004 : Microsoft - created
//
//---------------------------------------------------------------------------
@@ -60,11 +60,11 @@ namespace System.Collections.ObjectModel
public ObservableCollection(List<T> list)
: base((list != null) ? new List<T>(list.Count) : list)
{
- // Workaround for VSWhidbey bug 562681 (tracked by Windows bug 1369339).
- // We should be able to simply call the base(list) ctor. But Collection<T>
- // doesn't copy the list (contrary to the documentation) - it uses the
- // list directly as its storage. So we do the copying here.
- //
+ // Workaround for VSWhidbey
+
+
+
+
CopyFrom(list);
}
diff --git a/mcs/class/referencesource/System/compmod/system/collections/specialized/casesensitivestringdictionary.cs b/mcs/class/referencesource/System/compmod/system/collections/specialized/casesensitivestringdictionary.cs
index d73763141b5..1d62df97bc2 100644
--- a/mcs/class/referencesource/System/compmod/system/collections/specialized/casesensitivestringdictionary.cs
+++ b/mcs/class/referencesource/System/compmod/system/collections/specialized/casesensitivestringdictionary.cs
@@ -13,7 +13,7 @@ except the conversion of the key to lower case. So its fully usable for UNIX sys
This class is used to create the StringDictionary object everywhere
its used for environment settings storage (only ProcessStartInfo.cs and Executor.cs).
This change enables the correct UNIX behavior along with not changing public API.
-Author: [....]
+Author: vitkaras
*/
#if PLATFORM_UNIX
diff --git a/mcs/class/referencesource/System/compmod/system/collections/specialized/hybriddictionary.cs b/mcs/class/referencesource/System/compmod/system/collections/specialized/hybriddictionary.cs
index 4b55864ec18..82f77633456 100644
--- a/mcs/class/referencesource/System/compmod/system/collections/specialized/hybriddictionary.cs
+++ b/mcs/class/referencesource/System/compmod/system/collections/specialized/hybriddictionary.cs
@@ -71,13 +71,13 @@ namespace System.Collections.Specialized {
/// </devdoc>
public object this[object key] {
get {
- // <STRIP>
- // Hashtable supports multiple read, one writer thread safety.
- // Although we never made the same guarantee for HybridDictionary,
- // it is still nice to do the same thing here since we have recommended
- // HybridDictioary as replacement for Hashtable.
- //
- // </STRIP>
+ // <
+
+
+
+
+
+
ListDictionary cachedList = list;
if (hashtable != null) {
@@ -85,14 +85,14 @@ namespace System.Collections.Specialized {
} else if (cachedList != null) {
return cachedList[key];
} else {
- // <STRIP>
- // cachedList can be null in too cases:
- // (1) The dictionary is empty, we will return null in this case
- // (2) There is writer which is doing ChangeOver. However in that case
- // we should see the change to hashtable as well.
- // So it should work just fine.
- // </STRIP>
- //
+ // <
+
+
+
+
+
+
+
if (key == null) {
throw new ArgumentNullException("key", SR.GetString(SR.ArgumentNull_Key));
}
@@ -138,11 +138,11 @@ namespace System.Collections.Specialized {
while (en.MoveNext()) {
newTable.Add(en.Key, en.Value);
}
- // <STRIP>
- // Keep the order of writing to hashtable and list.
- // We assume we will see the change in hashtable if list is set to null in
- // this method in another reader thread.
- // </STRIP>
+ // <
+
+
+
+
hashtable = newTable;
list = null;
}
diff --git a/mcs/class/referencesource/System/compmod/system/collections/specialized/marshalinghelpers.cs b/mcs/class/referencesource/System/compmod/system/collections/specialized/marshalinghelpers.cs
index 3bfa0b8374e..ed712071802 100644
--- a/mcs/class/referencesource/System/compmod/system/collections/specialized/marshalinghelpers.cs
+++ b/mcs/class/referencesource/System/compmod/system/collections/specialized/marshalinghelpers.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System.Security;
using System.Collections;
diff --git a/mcs/class/referencesource/System/compmod/system/collections/specialized/stringdictionary.cs b/mcs/class/referencesource/System/compmod/system/collections/specialized/stringdictionary.cs
index cbab56d7a14..44067722d00 100644
--- a/mcs/class/referencesource/System/compmod/system/collections/specialized/stringdictionary.cs
+++ b/mcs/class/referencesource/System/compmod/system/collections/specialized/stringdictionary.cs
@@ -13,6 +13,7 @@ namespace System.Collections.Specialized {
using System.Collections;
using System.ComponentModel.Design.Serialization;
using System.Globalization;
+ using System.Collections.Generic;
/// <devdoc>
/// <para>Implements a hashtable with the key strongly typed to be
@@ -183,6 +184,275 @@ namespace System.Collections.Specialized {
internal void ReplaceHashtable(Hashtable useThisHashtableInstead) {
contents = useThisHashtableInstead;
}
- }
+ internal IDictionary<string, string> AsGenericDictionary() {
+ return new GenericAdapter(this);
+ }
+
+#region GenericAdapter
+ //
+ // This class is used to make StringDictionary implement IDictionary<string,string> indirectly.
+ // This is done to prevent StringDictionary be serialized as IDictionary<string,string> and break its serialization by DataContractSerializer due to a
+ private class GenericAdapter : IDictionary<string, string>
+ {
+
+ StringDictionary m_stringDictionary;
+
+ internal GenericAdapter(StringDictionary stringDictionary) {
+ m_stringDictionary = stringDictionary;
+ }
+
+ #region IDictionary<string, string> Members
+ public void Add(string key, string value) {
+
+ // GenericAdapter.Add has the semantics of Item property to make ProcessStartInfo.Environment deserializable by DataContractSerializer.
+ // ProcessStartInfo.Environment property does not have a setter
+ // and so during deserialization the serializer initializes the property by calling get_Environment and
+ // then populates it via IDictionary<,>.Add per item.
+ // However since get_Environment gives the current snapshot of environment variables we might try to insert a key that already exists.
+ // (For Example 'PATH') causing an exception. This implementation ensures that we overwrite values in case of duplication.
+
+ this[key] = value;
+ }
+
+ public bool ContainsKey(string key) {
+ return m_stringDictionary.ContainsKey(key);
+ }
+
+ public void Clear() {
+ m_stringDictionary.Clear();
+ }
+
+ public int Count {
+ get {
+ return m_stringDictionary.Count;
+ }
+ }
+
+ // Items added to allow StringDictionary to provide IDictionary<string, string> support.
+ ICollectionToGenericCollectionAdapter _values;
+ ICollectionToGenericCollectionAdapter _keys;
+
+ // IDictionary<string,string>.Item vs StringDictioanry.Item
+ // IDictionary<string,string>.get_Item i. KeyNotFoundException when the property is retrieved and key is not found.
+ // StringBuilder.get_Item i. Returns null in case the key is not found.
+ public string this[string key] {
+ get {
+ if (key == null) {
+ throw new ArgumentNullException("key");
+ }
+
+ if (!m_stringDictionary.ContainsKey(key)) throw new KeyNotFoundException();
+
+ return m_stringDictionary[key];
+ }
+ set {
+ if (key == null) {
+ throw new ArgumentNullException("key");
+ }
+
+ m_stringDictionary[key] = value;
+ }
+ }
+
+ // This method returns a read-only view of the Keys in the StringDictinary.
+ public ICollection<string> Keys {
+ get {
+ if( _keys == null ) {
+ _keys = new ICollectionToGenericCollectionAdapter(m_stringDictionary, KeyOrValue.Key);
+ }
+ return _keys;
+ }
+ }
+
+ // This method returns a read-only view of the Values in the StringDictionary.
+ public ICollection<string> Values {
+ get {
+ if( _values == null ) {
+ _values = new ICollectionToGenericCollectionAdapter(m_stringDictionary, KeyOrValue.Value);
+ }
+ return _values;
+ }
+ }
+
+ // IDictionary<string,string>.Remove vs StringDictionary.Remove.
+ // IDictionary<string,string>.Remove- i. Returns a bool status that represents success\failure.
+ // ii. Returns false in case key is not found.
+ // StringDictionary.Remove i. Does not return the status and does nothing in case key is not found.
+ public bool Remove(string key) {
+
+ // Check if the key is not present and return false.
+ if (!m_stringDictionary.ContainsKey(key)) return false;
+
+ // We call the virtual StringDictionary.Remove method to ensure any subClass gets the expected behavior.
+ m_stringDictionary.Remove(key);
+
+ // If the above call has succeeded we simply return true.
+ return true;
+ }
+
+
+ public bool TryGetValue(string key, out string value) {
+ if (!m_stringDictionary.ContainsKey(key)) {
+ value = null;
+ return false;
+ }
+
+ value = m_stringDictionary[key];
+ return true;
+ }
+
+ void ICollection<KeyValuePair<string, string>>.Add(KeyValuePair<string, string> item) {
+ m_stringDictionary.Add(item.Key, item.Value);
+ }
+
+ bool ICollection<KeyValuePair<string, string>>.Contains(KeyValuePair<string, string> item) {
+ string value;
+ return TryGetValue(item.Key, out value) && value.Equals(item.Value);
+ }
+
+ void ICollection<KeyValuePair<string, string>>.CopyTo(KeyValuePair<string, string>[] array, int arrayIndex) {
+ if( array == null )
+ throw new ArgumentNullException("array", SR.GetString(SR.ArgumentNull_Array));
+ if( arrayIndex < 0 )
+ throw new ArgumentOutOfRangeException("arrayIndex", SR.GetString(SR.ArgumentOutOfRange_NeedNonNegNum));
+ if( array.Length - arrayIndex < Count )
+ throw new ArgumentException(SR.GetString(SR.Arg_ArrayPlusOffTooSmall));
+
+ int index = arrayIndex;
+
+ foreach (DictionaryEntry entry in m_stringDictionary) {
+ array[index++] = new KeyValuePair<string, string>((string)entry.Key, (string)entry.Value);
+ }
+ }
+
+ bool ICollection<KeyValuePair<string,string>>.IsReadOnly {
+ get {
+ return false;
+ }
+ }
+
+ // ICollection<KeyValuePair<string, string>>.Remove vs StringDictionary.Remove
+ // ICollection<KeyValuePair<string, string>>.Remove - i. Return status.
+ // ii. Returns false in case the items is not found.
+ // StringDictionary.Remove i. Does not return a status and does nothing in case the key is not found.
+ bool ICollection<KeyValuePair<string, string>>.Remove(KeyValuePair<string, string> item) {
+
+ // If the item is not found return false.
+ ICollection<KeyValuePair<string, string>> iCollection = this;
+ if( !iCollection.Contains(item) ) return false;
+
+ // We call the virtual StringDictionary.Remove method to ensure any subClass gets the expected behavior.
+ m_stringDictionary.Remove(item.Key);
+
+ // If the above call has succeeded we simply return true.
+ return true;
+ }
+
+ IEnumerator IEnumerable.GetEnumerator() {
+ return this.GetEnumerator();
+ }
+
+ // The implementation asummes that this.GetEnumerator().Current can be casted to DictionaryEntry.
+ // and although StringDictionary.GetEnumerator() returns IEnumerator and is a virtual method
+ // it should be ok to take that assumption since it is an implicit contract.
+ public IEnumerator<KeyValuePair<string, string>> GetEnumerator()
+ {
+ foreach (DictionaryEntry dictionaryEntry in m_stringDictionary)
+ yield return new KeyValuePair<string, string>((string)dictionaryEntry.Key, (string)dictionaryEntry.Value);
+ }
+
+ internal enum KeyOrValue // Used internally for IDictionary<string, string> support
+ {
+ Key,
+ Value
+ }
+
+ // This Adapter converts StringDictionary.Keys and StringDictionary.Values to ICollection<string>
+ // Since StringDictionary implements a virtual StringDictionary.Keys and StringDictionary.Values
+ private class ICollectionToGenericCollectionAdapter : ICollection<string> {
+
+ StringDictionary _internal;
+ KeyOrValue _keyOrValue;
+
+ public ICollectionToGenericCollectionAdapter(StringDictionary source, KeyOrValue keyOrValue) {
+ if (source == null) throw new ArgumentNullException("source");
+
+ _internal = source;
+ _keyOrValue = keyOrValue;
+ }
+
+ public void Add(string item) {
+ ThrowNotSupportedException();
+ }
+
+ public void Clear() {
+ ThrowNotSupportedException();
+ }
+
+ public void ThrowNotSupportedException() {
+ if( _keyOrValue == KeyOrValue.Key ) {
+ throw new NotSupportedException(SR.GetString(SR.NotSupported_KeyCollectionSet)); //Same as KeyCollection/ValueCollection
+ }
+ throw new NotSupportedException(SR.GetString(SR.NotSupported_ValueCollectionSet)); //Same as KeyCollection/ValueCollection
+ }
+
+
+ public bool Contains(string item) {
+ // The underlying backing store for the StringDictionary is a HashTable so we
+ // want to delegate Contains to respective ContainsKey/ContainsValue functionality
+ // depending upon whether we are using Keys or Value collections.
+
+ if( _keyOrValue == KeyOrValue.Key ) {
+ return _internal.ContainsKey(item);
+ }
+ return _internal.ContainsValue(item);
+ }
+
+ public void CopyTo(string[] array, int arrayIndex) {
+ var collection = GetUnderlyingCollection();
+ collection.CopyTo(array, arrayIndex);
+ }
+
+ public int Count {
+ get {
+ return _internal.Count; // hashtable count is same as key/value count.
+ }
+ }
+
+ public bool IsReadOnly {
+ get {
+ return true; //Same as KeyCollection/ValueCollection
+ }
+ }
+
+ public bool Remove(string item) {
+ ThrowNotSupportedException();
+ return false;
+ }
+
+ private ICollection GetUnderlyingCollection() {
+ if( _keyOrValue == KeyOrValue.Key ) {
+ return (ICollection) _internal.Keys;
+ }
+ return (ICollection) _internal.Values;
+ }
+
+ public IEnumerator<string> GetEnumerator() {
+ ICollection collection = GetUnderlyingCollection();
+
+ // This is doing the same as collection.Cast<string>()
+ foreach (string entry in collection) {
+ yield return entry;
+ }
+ }
+
+ IEnumerator IEnumerable.GetEnumerator() {
+ return GetUnderlyingCollection().GetEnumerator();
+ }
+ }
+ #endregion
+ }
+#endregion
+ }
}
diff --git a/mcs/class/referencesource/System/compmod/system/componentmodel/AsyncOperation.cs b/mcs/class/referencesource/System/compmod/system/componentmodel/AsyncOperation.cs
index d3679b06ac7..7d596a07f6a 100644
--- a/mcs/class/referencesource/System/compmod/system/componentmodel/AsyncOperation.cs
+++ b/mcs/class/referencesource/System/compmod/system/componentmodel/AsyncOperation.cs
@@ -29,7 +29,7 @@ namespace System.ComponentModel
}
/// <summary>
- /// Destructor. Guarantees that [....] context will always get notified of completion.
+ /// Destructor. Guarantees that sync context will always get notified of completion.
/// </summary>
~AsyncOperation()
{
diff --git a/mcs/class/referencesource/System/compmod/system/componentmodel/FxCopSuppression.cs b/mcs/class/referencesource/System/compmod/system/componentmodel/FxCopSuppression.cs
index 5e8aa553ae0..3c4e58d5266 100644
--- a/mcs/class/referencesource/System/compmod/system/componentmodel/FxCopSuppression.cs
+++ b/mcs/class/referencesource/System/compmod/system/componentmodel/FxCopSuppression.cs
@@ -117,4 +117,4 @@ using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope="member", Target="Microsoft.Win32.SystemEvents.get_UserInteractive():System.Boolean")]
namespace System.ComponentModel {
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System/compmod/system/componentmodel/InstallerTypeAttribute.cs b/mcs/class/referencesource/System/compmod/system/componentmodel/InstallerTypeAttribute.cs
index 4218171514d..882760b5db2 100644
--- a/mcs/class/referencesource/System/compmod/system/componentmodel/InstallerTypeAttribute.cs
+++ b/mcs/class/referencesource/System/compmod/system/componentmodel/InstallerTypeAttribute.cs
@@ -7,7 +7,7 @@
/*
*/
-// SECREVIEW: Remove this attribute once bug#411889 is fixed.
+// SECREVIEW: Remove this attribute once
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2113:SecureLateBindingMethods", Scope="member", Target="System.ComponentModel.InstallerTypeAttribute.get_InstallerType():System.Type")]
namespace System.ComponentModel {
diff --git a/mcs/class/referencesource/System/compmod/system/componentmodel/LicenseProviderAttribute.cs b/mcs/class/referencesource/System/compmod/system/componentmodel/LicenseProviderAttribute.cs
index c65c71b4e6e..788ca33a923 100644
--- a/mcs/class/referencesource/System/compmod/system/componentmodel/LicenseProviderAttribute.cs
+++ b/mcs/class/referencesource/System/compmod/system/componentmodel/LicenseProviderAttribute.cs
@@ -57,7 +57,7 @@ namespace System.ComponentModel {
/// <para>Gets the license provider to use with the associated class.</para>
/// </devdoc>
public Type LicenseProvider {
- // SECREVIEW: Remove this attribute once bug#411910 is fixed.
+ // SECREVIEW: Remove this attribute once
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2113:SecureLateBindingMethods")]
get {
if (licenseProviderType == null && licenseProviderName != null) {
diff --git a/mcs/class/referencesource/System/compmod/system/componentmodel/MemberDescriptor.cs b/mcs/class/referencesource/System/compmod/system/componentmodel/MemberDescriptor.cs
index c16486800a9..5ab73da20f3 100644
--- a/mcs/class/referencesource/System/compmod/system/componentmodel/MemberDescriptor.cs
+++ b/mcs/class/referencesource/System/compmod/system/componentmodel/MemberDescriptor.cs
@@ -434,7 +434,7 @@ namespace System.ComponentModel {
}
/// <devdoc>
- /// Try to keep this reasonable in [....] with Equals(). Specifically,
+ /// Try to keep this reasonable in sync with Equals(). Specifically,
/// if A.Equals(B) returns true, A & B should have the same hash code.
/// </devdoc>
public override int GetHashCode() {
diff --git a/mcs/class/referencesource/System/compmod/system/componentmodel/PropertyChangedEventArgs.cs b/mcs/class/referencesource/System/compmod/system/componentmodel/PropertyChangedEventArgs.cs
index d2eb84c4b27..16af3e32217 100644
--- a/mcs/class/referencesource/System/compmod/system/componentmodel/PropertyChangedEventArgs.cs
+++ b/mcs/class/referencesource/System/compmod/system/componentmodel/PropertyChangedEventArgs.cs
@@ -14,7 +14,9 @@ namespace System.ComponentModel {
/// <para>Provides data for the <see langword='PropertyChanged'/>
/// event.</para>
/// </devdoc>
+#if !SILVERLIGHT
[HostProtection(SharedState = true)]
+#endif
public class PropertyChangedEventArgs : EventArgs {
private readonly string propertyName;
diff --git a/mcs/class/referencesource/System/compmod/system/componentmodel/PropertyChangedEventHandler.cs b/mcs/class/referencesource/System/compmod/system/componentmodel/PropertyChangedEventHandler.cs
index 09a218e9f3f..ea8b8d8c646 100644
--- a/mcs/class/referencesource/System/compmod/system/componentmodel/PropertyChangedEventHandler.cs
+++ b/mcs/class/referencesource/System/compmod/system/componentmodel/PropertyChangedEventHandler.cs
@@ -15,6 +15,8 @@ namespace System.ComponentModel {
/// <see langword='PropertyChanged'/> event raised when a
/// property is changed on a component.</para>
/// </devdoc>
+#if !SILVERLIGHT
[HostProtection(SharedState = true)]
+#endif
public delegate void PropertyChangedEventHandler(object sender, PropertyChangedEventArgs e);
}
diff --git a/mcs/class/referencesource/System/compmod/system/componentmodel/PropertyDescriptor.cs b/mcs/class/referencesource/System/compmod/system/componentmodel/PropertyDescriptor.cs
index ecfb46bc0c5..9915bcf85ba 100644
--- a/mcs/class/referencesource/System/compmod/system/componentmodel/PropertyDescriptor.cs
+++ b/mcs/class/referencesource/System/compmod/system/componentmodel/PropertyDescriptor.cs
@@ -347,7 +347,7 @@ namespace System.ComponentModel {
}
/// <devdoc>
- /// Try to keep this reasonable in [....] with Equals(). Specifically,
+ /// Try to keep this reasonable in sync with Equals(). Specifically,
/// if A.Equals(B) returns true, A & B should have the same hash code.
/// </devdoc>
public override int GetHashCode() {
diff --git a/mcs/class/referencesource/System/compmod/system/componentmodel/ReflectPropertyDescriptor.cs b/mcs/class/referencesource/System/compmod/system/componentmodel/ReflectPropertyDescriptor.cs
index f3e48dab181..c79517fc577 100644
--- a/mcs/class/referencesource/System/compmod/system/componentmodel/ReflectPropertyDescriptor.cs
+++ b/mcs/class/referencesource/System/compmod/system/componentmodel/ReflectPropertyDescriptor.cs
@@ -1116,7 +1116,6 @@ namespace System.ComponentModel {
object invokee = GetInvocationTarget(componentClass, component);
- Debug.Assert(!IsReadOnly, "SetValue attempted on read-only property [" + Name + "]");
if (!IsReadOnly) {
// Announce that we are about to change this component
diff --git a/mcs/class/referencesource/System/compmod/system/componentmodel/Win32Exception.cs b/mcs/class/referencesource/System/compmod/system/componentmodel/Win32Exception.cs
index 8dbd0d6352e..95bb8205e17 100644
--- a/mcs/class/referencesource/System/compmod/system/componentmodel/Win32Exception.cs
+++ b/mcs/class/referencesource/System/compmod/system/componentmodel/Win32Exception.cs
@@ -90,12 +90,10 @@ namespace System.ComponentModel {
return nativeErrorCode;
}
}
-#if !MONO
- private static string GetErrorMessage(int error) {
- //get the system error message...
- string errorMsg = "";
- StringBuilder sb = new StringBuilder(256);
+#if !MONO
+ private static bool TryGetErrorMessage(int error, StringBuilder sb, out string errorMsg)
+ {
int result = SafeNativeMethods.FormatMessage(
SafeNativeMethods.FORMAT_MESSAGE_IGNORE_INSERTS |
SafeNativeMethods.FORMAT_MESSAGE_FROM_SYSTEM |
@@ -111,11 +109,48 @@ namespace System.ComponentModel {
}
errorMsg = sb.ToString(0, i);
}
+ else if (Marshal.GetLastWin32Error() == SafeNativeMethods.ERROR_INSUFFICIENT_BUFFER) {
+ return false;
+ }
else {
errorMsg ="Unknown error (0x" + Convert.ToString(error, 16) + ")";
}
- return errorMsg;
+ return true;
+ }
+
+ // Windows API FormatMessage lets you format a message string given an errocode.
+ // Unlike other APIs this API does not support a way to query it for the total message size.
+ //
+ // So the API can only be used in one of these two ways.
+ // a. You pass a buffer of appropriate size and get the resource.
+ // b. Windows creates a buffer and passes the address back and the onus of releasing the bugffer lies on the caller.
+ //
+ // Since the error code is coming from the user, it is not possible to know the size in advance.
+ // Unfortunately we can't use option b. since the buffer can only be freed using LocalFree and it is a private API on onecore.
+ // Also, using option b is ugly for the manged code and could cause memory leak in situations where freeing is unsuccessful.
+ //
+ // As a result we use the following approach.
+ // We initially call the API with a buffer size of 256 and then gradually increase the size in case of failure until we reach the max allowed size of 65K bytes.
+
+ private const int MaxAllowedBufferSize = 65 * 1024;
+
+ private static string GetErrorMessage(int error) {
+ string errorMsg;
+
+ StringBuilder sb = new StringBuilder(256);
+ do {
+ if (TryGetErrorMessage(error, sb, out errorMsg))
+ return errorMsg;
+ else {
+ // increase the capacity of the StringBuilder by 4 times.
+ sb.Capacity *= 4;
+ }
+ }
+ while (sb.Capacity < MaxAllowedBufferSize);
+
+ // If you come here then a size as large as 65K is also not sufficient and so we give the generic errorMsg.
+ return "Unknown error (0x" + Convert.ToString(error, 16) + ")";
}
#endif
// Even though all we're exposing is the nativeErrorCode (which is also available via public property)
diff --git a/mcs/class/referencesource/System/compmod/system/componentmodel/design/DesignerVerb.cs b/mcs/class/referencesource/System/compmod/system/componentmodel/design/DesignerVerb.cs
index d9840075c34..b10a8255aa6 100644
--- a/mcs/class/referencesource/System/compmod/system/componentmodel/design/DesignerVerb.cs
+++ b/mcs/class/referencesource/System/compmod/system/componentmodel/design/DesignerVerb.cs
@@ -30,7 +30,7 @@ namespace System.ComponentModel.Design {
/// </devdoc>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public DesignerVerb(string text, EventHandler handler) : base(handler, StandardCommands.VerbFirst) {
- // NOTICE!!! When you changed the regex here, please change it in Designer\[....]\System\[....]\Design\TableLayoutPanelDesigner.cs
+ // NOTICE!!! When you changed the regex here, please change it in Designer\Microsoft\System\Microsoft\Design\TableLayoutPanelDesigner.cs
// method "TrimText", too.
Properties["Text"] = text == null ? null : Regex.Replace(text, @"\(\&.\)", ""); // VSWHIDBEY 485835
}
diff --git a/mcs/class/referencesource/System/compmod/system/componentmodel/design/DesigntimeLicenseContextSerializer.cs b/mcs/class/referencesource/System/compmod/system/componentmodel/design/DesigntimeLicenseContextSerializer.cs
index c4454a5660c..f497bba738f 100644
--- a/mcs/class/referencesource/System/compmod/system/componentmodel/design/DesigntimeLicenseContextSerializer.cs
+++ b/mcs/class/referencesource/System/compmod/system/componentmodel/design/DesigntimeLicenseContextSerializer.cs
@@ -44,7 +44,7 @@ namespace System.ComponentModel.Design {
formatter.Serialize(o, new object[] {cryptoKey, context.savedLicenseKeys});
}
- [SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage")] // Use of PermitOnly here is appropriate. This was a previous war-approved security bug fix.
+ [SuppressMessage("Microsoft.Security", "CA2107:ReviewDenyAndPermitOnlyUsage")] // Use of PermitOnly here is appropriate. This was a previous war-approved security
internal static void Deserialize(Stream o, string cryptoKey, RuntimeLicenseContext context) {
IFormatter formatter = new BinaryFormatter();
diff --git a/mcs/class/referencesource/System/compmod/system/componentmodel/design/PropertyTabAttribute.cs b/mcs/class/referencesource/System/compmod/system/componentmodel/design/PropertyTabAttribute.cs
index 2f1562d7dbe..4a605852267 100644
--- a/mcs/class/referencesource/System/compmod/system/componentmodel/design/PropertyTabAttribute.cs
+++ b/mcs/class/referencesource/System/compmod/system/componentmodel/design/PropertyTabAttribute.cs
@@ -4,7 +4,7 @@
// </copyright>
//------------------------------------------------------------------------------
-// SECREVIEW: Remove this attribute once bug#411903 is fixed.
+// SECREVIEW: Remove this attribute once
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2113:SecureLateBindingMethods", Scope="member", Target="System.ComponentModel.PropertyTabAttribute.get_TabClasses():System.Type[]")]
namespace System.ComponentModel {
diff --git a/mcs/class/referencesource/System/compmod/system/componentmodel/design/ToolboxItemAttribute.cs b/mcs/class/referencesource/System/compmod/system/componentmodel/design/ToolboxItemAttribute.cs
index 0cbf2f24f23..ab2ae3a4c84 100644
--- a/mcs/class/referencesource/System/compmod/system/componentmodel/design/ToolboxItemAttribute.cs
+++ b/mcs/class/referencesource/System/compmod/system/componentmodel/design/ToolboxItemAttribute.cs
@@ -4,7 +4,7 @@
// </copyright>
//------------------------------------------------------------------------------
-// SECREVIEW: remove this attribute once bug#411883 is fixed.
+// SECREVIEW: remove this attribute once
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2113:SecureLateBindingMethods", Scope="member", Target="System.ComponentModel.ToolboxItemAttribute.get_ToolboxItemType():System.Type")]
namespace System.ComponentModel {
diff --git a/mcs/class/referencesource/System/compmod/system/diagnostics/Debug.cs b/mcs/class/referencesource/System/compmod/system/diagnostics/Debug.cs
index 0012a902df9..423d4466756 100644
--- a/mcs/class/referencesource/System/compmod/system/diagnostics/Debug.cs
+++ b/mcs/class/referencesource/System/compmod/system/diagnostics/Debug.cs
@@ -380,6 +380,16 @@ namespace System.Diagnostics {
}
}
+ [System.Diagnostics.Conditional("DEBUG")]
+ public static void Fail(string message) {
+ Assert(false, message, String.Empty);
+ }
+
+ [System.Diagnostics.Conditional("DEBUG")]
+ public static void Fail(string message, string detailMessage) {
+ Assert(false, message, detailMessage);
+ }
+
// Given a stack trace and start and end frame indexes, construct a
// callstack that contains method, file and line number information.
[System.Security.SecuritySafeCritical]
@@ -441,6 +451,11 @@ namespace System.Diagnostics {
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteLine(string message) {
message = message + "\r\n"; // Use Windows end line on *all* Platforms
+ Write(message);
+ }
+
+ [System.Diagnostics.Conditional("DEBUG")]
+ public static void Write(string message) {
// We don't want output from multiple threads to be interleaved.
lock (s_ForLock) {
@@ -479,10 +494,87 @@ namespace System.Diagnostics {
}
[System.Diagnostics.Conditional("DEBUG")]
+ public static void WriteLine(object value, string category) {
+ WriteLine((value == null) ? String.Empty : value.ToString(), category);
+ }
+
+ [System.Diagnostics.Conditional("DEBUG")]
public static void WriteLine(string format, params object[] args) {
WriteLine(String.Format(null, format, args));
}
+ [System.Diagnostics.Conditional("DEBUG")]
+ public static void WriteLine(string message, string category) {
+ if(category == null) {
+ WriteLine(message);
+ }
+ else {
+ WriteLine(category + ":" + ((message == null) ? String.Empty: message));
+ }
+ }
+
+ [System.Diagnostics.Conditional("DEBUG")]
+ public static void Write(object value) {
+ Write((value == null) ? String.Empty : value.ToString());
+ }
+
+ [System.Diagnostics.Conditional("DEBUG")]
+ public static void Write(string message, string category) {
+ if(category == null) {
+ Write(message);
+ }
+ else {
+ Write(category + ":" + ((message == null) ? String.Empty: message));
+ }
+ }
+
+ [System.Diagnostics.Conditional("DEBUG")]
+ public static void Write(object value, string category) {
+ Write((value == null) ? String.Empty : value.ToString(), category);
+ }
+
+ [System.Diagnostics.Conditional("DEBUG")]
+ public static void WriteIf(bool condition, string message) {
+ if(condition) {
+ Write(message);
+ }
+ }
+
+ [System.Diagnostics.Conditional("DEBUG")]
+ public static void WriteIf(bool condition, object value) {
+ if(condition) {
+ Write(value);
+ }
+ }
+
+ [System.Diagnostics.Conditional("DEBUG")]
+ public static void WriteIf(bool condition, string message, string category) {
+ if(condition) {
+ Write(message, category);
+ }
+ }
+
+ [System.Diagnostics.Conditional("DEBUG")]
+ public static void WriteIf(bool condition, object value, string category) {
+ if(condition) {
+ Write(value, category);
+ }
+ }
+
+ [System.Diagnostics.Conditional("DEBUG")]
+ public static void WriteLineIf(bool condition, object value) {
+ if(condition) {
+ WriteLine(value);
+ }
+ }
+
+ [System.Diagnostics.Conditional("DEBUG")]
+ public static void WriteLineIf(bool condition, object value, string category) {
+ if(condition) {
+ WriteLine(value, category);
+ }
+ }
+
#if FEATURE_NETCORE
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteLineIf(bool condition, string message)
@@ -495,11 +587,11 @@ namespace System.Diagnostics {
[System.Diagnostics.Conditional("DEBUG")]
// This is used by our compression code.
- internal static void WriteLineIf(bool condition, string message, string category)
+ public static void WriteLineIf(bool condition, string message, string category)
{
if (condition)
{
- WriteLine(message);
+ WriteLine(message, category);
}
}
#endif // FEATURE_NETCORE
diff --git a/mcs/class/referencesource/System/compmod/system/diagnostics/XmlWriterTraceListener.cs b/mcs/class/referencesource/System/compmod/system/diagnostics/XmlWriterTraceListener.cs
index 535d839ea2c..e6a2afec405 100644
--- a/mcs/class/referencesource/System/compmod/system/diagnostics/XmlWriterTraceListener.cs
+++ b/mcs/class/referencesource/System/compmod/system/diagnostics/XmlWriterTraceListener.cs
@@ -23,9 +23,9 @@ namespace System.Diagnostics {
private StringBuilder strBldr = null;
private XmlTextWriter xmlBlobWriter = null;
- // Previously we had a bug where TraceTransfer did not respect the filter set on this listener. We're fixing this
- // bug, but only for cases where the filter was set via config. In the next side by side release, we'll remove
- // this and always respect the filter for TraceTransfer events.
+ // Previously we had a
+
+
internal bool shouldRespectFilterOnTraceTransfer;
public XmlWriterTraceListener(Stream stream) : base(stream){ }
diff --git a/mcs/class/referencesource/System/compmod/system/diagnostics/assertwrapper.cs b/mcs/class/referencesource/System/compmod/system/diagnostics/assertwrapper.cs
index c6f6385671d..e6938156e8f 100644
--- a/mcs/class/referencesource/System/compmod/system/diagnostics/assertwrapper.cs
+++ b/mcs/class/referencesource/System/compmod/system/diagnostics/assertwrapper.cs
@@ -61,9 +61,9 @@ namespace System.Diagnostics {
[DllImport(ExternDll.Fxassert, CharSet=System.Runtime.InteropServices.CharSet.Ansi, BestFitMapping=true)]
[ResourceExposure(ResourceScope.None)]
- [SuppressMessage("Microsoft.Globalization","CA2101:SpecifyMarshalingForPInvokeStringArguments", MessageId="0", Justification="[....]: VsAssert isn't making a security decision here and they don't provide Unicode versions, also it is internal to MS")]
- [SuppressMessage("Microsoft.Globalization","CA2101:SpecifyMarshalingForPInvokeStringArguments", MessageId="1", Justification="[....]: VsAssert isn't making a security decision here and they don't provide Unicode versions, also it is internal to MS")]
- [SuppressMessage("Microsoft.Globalization","CA2101:SpecifyMarshalingForPInvokeStringArguments", MessageId="2", Justification="[....]: VsAssert isn't making a security decision here and they don't provide Unicode versions, also it is internal to MS")]
+ [SuppressMessage("Microsoft.Globalization","CA2101:SpecifyMarshalingForPInvokeStringArguments", MessageId="0", Justification="Microsoft: VsAssert isn't making a security decision here and they don't provide Unicode versions, also it is internal to MS")]
+ [SuppressMessage("Microsoft.Globalization","CA2101:SpecifyMarshalingForPInvokeStringArguments", MessageId="1", Justification="Microsoft: VsAssert isn't making a security decision here and they don't provide Unicode versions, also it is internal to MS")]
+ [SuppressMessage("Microsoft.Globalization","CA2101:SpecifyMarshalingForPInvokeStringArguments", MessageId="2", Justification="Microsoft: VsAssert isn't making a security decision here and they don't provide Unicode versions, also it is internal to MS")]
public static extern int VsAssert(string message, string assert, string file, int line, [In, Out]int[] pfDisable);
[ResourceExposure(ResourceScope.None)]
@@ -203,7 +203,7 @@ namespace System.Diagnostics {
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
#endif
[SecuritySafeCritical]
- [SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId = "Microsoft.Win32.UnsafeNativeMethods.ReleaseDC(System.IntPtr,System.IntPtr)", Justification = "[....]: If the DC is not released there's not much we can do.")]
+ [SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId = "Microsoft.Win32.UnsafeNativeMethods.ReleaseDC(System.IntPtr,System.IntPtr)", Justification = "Microsoft: If the DC is not released there's not much we can do.")]
private static string TruncateMessageToFitScreen(string message) {
const int MaxCharsPerLine = 80;
diff --git a/mcs/class/referencesource/System/misc/ClientUtils.cs b/mcs/class/referencesource/System/misc/ClientUtils.cs
index d350b64b653..d42c1cdf673 100644
--- a/mcs/class/referencesource/System/misc/ClientUtils.cs
+++ b/mcs/class/referencesource/System/misc/ClientUtils.cs
@@ -6,11 +6,11 @@
/*
*/
-#if WINFORMS_NAMESPACE
+#if Microsoft_NAMESPACE
namespace System.Windows.Forms
#elif DRAWING_NAMESPACE
namespace System.Drawing
-#elif WINFORMS_PUBLIC_GRAPHICS_LIBRARY
+#elif Microsoft_PUBLIC_GRAPHICS_LIBRARY
namespace System.Internal
#elif SYSTEM_NAMESPACE
namespace System
@@ -274,7 +274,7 @@
/// -----------------------------------------------------------------
///
/// </devdoc>
-#if WINFORMS_NAMESPACE || WINFORMS_PUBLIC_GRAPHICS_LIBRARY || DRAWING_NAMESPACE
+#if Microsoft_NAMESPACE || Microsoft_PUBLIC_GRAPHICS_LIBRARY || DRAWING_NAMESPACE
internal class WeakRefCollection : IList {
private int refCheckThreshold = Int32.MaxValue; // this means this is disabled by default.
private ArrayList _innerList;
diff --git a/mcs/class/referencesource/System/misc/SecurityUtils.cs b/mcs/class/referencesource/System/misc/SecurityUtils.cs
index d4d39cae5dd..91c2c9849d1 100644
--- a/mcs/class/referencesource/System/misc/SecurityUtils.cs
+++ b/mcs/class/referencesource/System/misc/SecurityUtils.cs
@@ -8,11 +8,11 @@
*/
-#if WINFORMS_NAMESPACE
+#if Microsoft_NAMESPACE
namespace System.Windows.Forms
#elif DRAWING_NAMESPACE
namespace System.Drawing
-#elif WINFORMS_PUBLIC_GRAPHICS_LIBRARY
+#elif Microsoft_PUBLIC_GRAPHICS_LIBRARY
namespace System.Internal
#elif SYSTEM_NAMESPACE
namespace System
@@ -131,7 +131,7 @@ namespace System.Windows.Forms
return Activator.CreateInstance(type, flags, null, args, null);
}
-#if (!WINFORMS_NAMESPACE)
+#if (!Microsoft_NAMESPACE)
/// <devdoc>
/// This helper method provides safe access to Activator.CreateInstance.
diff --git a/mcs/class/referencesource/System/net/System/IriHelper.cs b/mcs/class/referencesource/System/net/System/IriHelper.cs
new file mode 100644
index 00000000000..58dd02740b8
--- /dev/null
+++ b/mcs/class/referencesource/System/net/System/IriHelper.cs
@@ -0,0 +1,370 @@
+namespace System
+{
+ using System.Diagnostics;
+ using System.Runtime.InteropServices;
+ using System.Text;
+
+ internal static class IriHelper
+ {
+ //
+ // Checks if provided non surrogate char lies in iri range
+ //
+ internal static bool CheckIriUnicodeRange(char unicode, bool isQuery)
+ {
+ return ((unicode >= '\u00A0' && unicode <= '\uD7FF') ||
+ (unicode >= '\uF900' && unicode <= '\uFDCF') ||
+ (unicode >= '\uFDF0' && unicode <= '\uFFEF') ||
+ (isQuery && unicode >= '\uE000' && unicode <= '\uF8FF'));
+ }
+
+ //
+ // Check if highSurr and lowSurr are a surrogate pair then
+ // it checks if the combined char is in the range
+ // Takes in isQuery because because iri restrictions for query are different
+ //
+ internal static bool CheckIriUnicodeRange(char highSurr, char lowSurr, ref bool surrogatePair, bool isQuery)
+ {
+ bool inRange = false;
+ surrogatePair = false;
+
+ Debug.Assert(Char.IsHighSurrogate(highSurr));
+
+ if (Char.IsSurrogatePair(highSurr, lowSurr))
+ {
+ surrogatePair = true;
+ char[] chars = new char[2] { highSurr, lowSurr };
+ string surrPair = new string(chars);
+ if (((string.CompareOrdinal(surrPair, "\U00010000") >= 0)
+ && (string.CompareOrdinal(surrPair, "\U0001FFFD") <= 0)) ||
+ ((string.CompareOrdinal(surrPair, "\U00020000") >= 0)
+ && (string.CompareOrdinal(surrPair, "\U0002FFFD") <= 0)) ||
+ ((string.CompareOrdinal(surrPair, "\U00030000") >= 0)
+ && (string.CompareOrdinal(surrPair, "\U0003FFFD") <= 0)) ||
+ ((string.CompareOrdinal(surrPair, "\U00040000") >= 0)
+ && (string.CompareOrdinal(surrPair, "\U0004FFFD") <= 0)) ||
+ ((string.CompareOrdinal(surrPair, "\U00050000") >= 0)
+ && (string.CompareOrdinal(surrPair, "\U0005FFFD") <= 0)) ||
+ ((string.CompareOrdinal(surrPair, "\U00060000") >= 0)
+ && (string.CompareOrdinal(surrPair, "\U0006FFFD") <= 0)) ||
+ ((string.CompareOrdinal(surrPair, "\U00070000") >= 0)
+ && (string.CompareOrdinal(surrPair, "\U0007FFFD") <= 0)) ||
+ ((string.CompareOrdinal(surrPair, "\U00080000") >= 0)
+ && (string.CompareOrdinal(surrPair, "\U0008FFFD") <= 0)) ||
+ ((string.CompareOrdinal(surrPair, "\U00090000") >= 0)
+ && (string.CompareOrdinal(surrPair, "\U0009FFFD") <= 0)) ||
+ ((string.CompareOrdinal(surrPair, "\U000A0000") >= 0)
+ && (string.CompareOrdinal(surrPair, "\U000AFFFD") <= 0)) ||
+ ((string.CompareOrdinal(surrPair, "\U000B0000") >= 0)
+ && (string.CompareOrdinal(surrPair, "\U000BFFFD") <= 0)) ||
+ ((string.CompareOrdinal(surrPair, "\U000C0000") >= 0)
+ && (string.CompareOrdinal(surrPair, "\U000CFFFD") <= 0)) ||
+ ((string.CompareOrdinal(surrPair, "\U000D0000") >= 0)
+ && (string.CompareOrdinal(surrPair, "\U000DFFFD") <= 0)) ||
+ ((string.CompareOrdinal(surrPair, "\U000E1000") >= 0)
+ && (string.CompareOrdinal(surrPair, "\U000EFFFD") <= 0)) ||
+ (isQuery &&
+ (((string.CompareOrdinal(surrPair, "\U000F0000") >= 0)
+ && (string.CompareOrdinal(surrPair, "\U000FFFFD") <= 0)) ||
+ ((string.CompareOrdinal(surrPair, "\U00100000") >= 0)
+ && (string.CompareOrdinal(surrPair, "\U0010FFFD") <= 0)))))
+ {
+ inRange = true;
+ }
+ }
+
+ return inRange;
+ }
+
+ //
+ // Check reserved chars according to rfc 3987 in a sepecific component
+ //
+ internal static bool CheckIsReserved(char ch, UriComponents component)
+ {
+ if ((component != UriComponents.Scheme) &&
+ (component != UriComponents.UserInfo) &&
+ (component != UriComponents.Host) &&
+ (component != UriComponents.Port) &&
+ (component != UriComponents.Path) &&
+ (component != UriComponents.Query) &&
+ (component != UriComponents.Fragment)
+ )
+ {
+ return (component == (UriComponents)0) ? Uri.IsGenDelim(ch) : false;
+ }
+ else
+ {
+ switch (component)
+ {
+ // Reserved chars according to rfc 3987
+ case UriComponents.UserInfo:
+ if (ch == '/' || ch == '?' || ch == '#' || ch == '[' || ch == ']' || ch == '@')
+ return true;
+ break;
+ case UriComponents.Host:
+ if (ch == ':' || ch == '/' || ch == '?' || ch == '#' || ch == '[' || ch == ']' || ch == '@')
+ return true;
+ break;
+ case UriComponents.Path:
+ if (ch == '/' || ch == '?' || ch == '#' || ch == '[' || ch == ']')
+ return true;
+ break;
+ case UriComponents.Query:
+ if (ch == '#' || ch == '[' || ch == ']')
+ return true;
+ break;
+ case UriComponents.Fragment:
+ if (ch == '#' || ch == '[' || ch == ']')
+ return true;
+ break;
+ default:
+ break;
+ }
+ return false;
+ }
+ }
+
+ //
+ // IRI normalization for strings containing characters that are not allowed or
+ // escaped characters that should be unescaped in the context of the specified Uri component.
+ //
+ internal static unsafe string EscapeUnescapeIri(char* pInput, int start, int end, UriComponents component)
+ {
+
+ char[] dest = new char[end - start];
+ byte[] bytes = null;
+
+ // Pin the array to do pointer accesses
+ GCHandle destHandle = GCHandle.Alloc(dest, GCHandleType.Pinned);
+ char* pDest = (char*)destHandle.AddrOfPinnedObject();
+
+ const int percentEncodingLen = 3; // Escaped UTF-8 will take 3 chars: %AB.
+ const int bufferCapacityIncrease = 30 * percentEncodingLen;
+ int bufferRemaining = 0;
+
+ int next = start;
+ int destOffset = 0;
+ char ch;
+ bool escape = false;
+ bool surrogatePair = false;
+
+ for (; next < end; ++next)
+ {
+ escape = false;
+ surrogatePair = false;
+
+ if ((ch = pInput[next]) == '%')
+ {
+ if (next + 2 < end)
+ {
+ ch = UriHelper.EscapedAscii(pInput[next + 1], pInput[next + 2]);
+
+ // Do not unescape a reserved char
+ if (ch == Uri.c_DummyChar || ch == '%' || CheckIsReserved(ch, component) || UriHelper.IsNotSafeForUnescape(ch))
+ {
+ // keep as is
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
+ pDest[destOffset++] = pInput[next++];
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
+ pDest[destOffset++] = pInput[next++];
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
+ pDest[destOffset++] = pInput[next];
+ continue;
+ }
+ else if (ch <= '\x7F')
+ {
+ Debug.Assert(ch < 0xFF, "Expecting ASCII character.");
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
+ //ASCII
+ pDest[destOffset++] = ch;
+ next += 2;
+ continue;
+ }
+ else
+ {
+ // possibly utf8 encoded sequence of unicode
+
+ // check if safe to unescape according to Iri rules
+
+ Debug.Assert(ch < 0xFF, "Expecting ASCII character.");
+
+ int startSeq = next;
+ int byteCount = 1;
+ // lazy initialization of max size, will reuse the array for next sequences
+ if ((object)bytes == null)
+ bytes = new byte[end - next];
+
+ bytes[0] = (byte)ch;
+ next += 3;
+ while (next < end)
+ {
+ // Check on exit criterion
+ if ((ch = pInput[next]) != '%' || next + 2 >= end)
+ break;
+
+ // already made sure we have 3 characters in str
+ ch = UriHelper.EscapedAscii(pInput[next + 1], pInput[next + 2]);
+
+ //invalid hex sequence ?
+ if (ch == Uri.c_DummyChar)
+ break;
+ // character is not part of a UTF-8 sequence ?
+ else if (ch < '\x80')
+ break;
+ else
+ {
+ //a UTF-8 sequence
+ bytes[byteCount++] = (byte)ch;
+ next += 3;
+ }
+
+ Debug.Assert(ch < 0xFF, "Expecting ASCII character.");
+ }
+ next--; // for loop will increment
+
+
+ // Using encoder with no replacement fall-back will skip all invalid UTF-8 sequences.
+ Encoding noFallbackCharUTF8 = (Encoding)Encoding.UTF8.Clone();
+ noFallbackCharUTF8.EncoderFallback = new EncoderReplacementFallback("");
+ noFallbackCharUTF8.DecoderFallback = new DecoderReplacementFallback("");
+
+ char[] unescapedChars = new char[bytes.Length];
+ int charCount = noFallbackCharUTF8.GetChars(bytes, 0, byteCount, unescapedChars, 0);
+
+
+ if (charCount != 0)
+ {
+ // If invalid sequences were present in the original escaped string, we need to
+ // copy the escaped versions of those sequences.
+ // Decoded Unicode values will be kept only when they are allowed by the URI/IRI RFC
+ // rules.
+ UriHelper.MatchUTF8Sequence(pDest, dest, ref destOffset, unescapedChars, charCount, bytes,
+ byteCount, component == UriComponents.Query, true);
+ }
+ else
+ {
+ // copy escaped sequence as is
+ for (int i = startSeq; i <= next; ++i)
+ {
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
+ pDest[destOffset++] = pInput[i];
+ }
+ }
+
+ }
+
+ }
+ else
+ {
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
+ pDest[destOffset++] = pInput[next];
+ }
+ }
+ else if (ch > '\x7f')
+ {
+ // unicode
+
+ char ch2;
+
+ if ((Char.IsHighSurrogate(ch)) && (next + 1 < end))
+ {
+ ch2 = pInput[next + 1];
+ escape = !CheckIriUnicodeRange(ch, ch2, ref surrogatePair, component == UriComponents.Query);
+ if (!escape)
+ {
+ // copy the two chars
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
+ pDest[destOffset++] = pInput[next++];
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
+ pDest[destOffset++] = pInput[next];
+ }
+ }
+ else
+ {
+ if (CheckIriUnicodeRange(ch, component == UriComponents.Query))
+ {
+ if (!Uri.IsBidiControlCharacter(ch))
+ {
+ // copy it
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
+ pDest[destOffset++] = pInput[next];
+ }
+ }
+ else
+ {
+ // escape it
+ escape = true;
+ }
+ }
+ }
+ else
+ {
+ // just copy the character
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
+ pDest[destOffset++] = pInput[next];
+ }
+
+ if (escape)
+ {
+ const int maxNumberOfBytesEncoded = 4;
+
+ if (bufferRemaining < maxNumberOfBytesEncoded * percentEncodingLen)
+ {
+ int newBufferLength = 0;
+
+ checked
+ {
+ // may need more memory since we didn't anticipate escaping
+ newBufferLength = dest.Length + bufferCapacityIncrease;
+ bufferRemaining += bufferCapacityIncrease;
+ }
+
+ char[] newDest = new char[newBufferLength];
+
+ fixed (char* pNewDest = newDest)
+ {
+#if !UT_PUBLIC_DEPENDS
+ Buffer.Memcpy((byte*)pNewDest, (byte*)pDest, destOffset * sizeof(char));
+#else
+ for (int idx=0; idx<destOffset; idx++)
+ {
+ pNewDest[idx] = pDest[idx];
+ }
+#endif
+ }
+
+ if (destHandle.IsAllocated)
+ {
+ destHandle.Free();
+ }
+
+ dest = newDest;
+
+ // re-pin new dest[] array
+ destHandle = GCHandle.Alloc(dest, GCHandleType.Pinned);
+ pDest = (char*)destHandle.AddrOfPinnedObject();
+ }
+
+ byte[] encodedBytes = new byte[maxNumberOfBytesEncoded];
+ fixed (byte* pEncodedBytes = encodedBytes)
+ {
+ int encodedBytesCount = Encoding.UTF8.GetBytes(pInput + next, surrogatePair ? 2 : 1, pEncodedBytes, maxNumberOfBytesEncoded);
+ Debug.Assert(encodedBytesCount <= maxNumberOfBytesEncoded, "UTF8 encoder should not exceed specified byteCount");
+
+ bufferRemaining -= encodedBytesCount * percentEncodingLen;
+
+ for (int count = 0; count < encodedBytesCount; ++count)
+ {
+ UriHelper.EscapeAsciiChar((char)encodedBytes[count], dest, ref destOffset);
+ }
+ }
+ }
+ }
+
+ if (destHandle.IsAllocated)
+ destHandle.Free();
+
+ Debug.Assert(destOffset <= dest.Length, "Buffer overrun detected");
+ return new string(dest, 0, destOffset);
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System/net/System/Net/AuthenticationManager.cs b/mcs/class/referencesource/System/net/System/Net/AuthenticationManager.cs
index 3f16b82e099..53f2e02e598 100644
--- a/mcs/class/referencesource/System/net/System/Net/AuthenticationManager.cs
+++ b/mcs/class/referencesource/System/net/System/Net/AuthenticationManager.cs
@@ -20,428 +20,209 @@ namespace System.Net {
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
-
//
// A contract that applications can use to restrict auth scenarios in current appDomain
//
public interface ICredentialPolicy
{
- bool ShouldSendCredential(Uri challengeUri, WebRequest request, NetworkCredential credential, IAuthenticationModule authenticationModule);
+ bool ShouldSendCredential(
+ Uri challengeUri,
+ WebRequest request,
+ NetworkCredential credential,
+ IAuthenticationModule authenticationModule);
}
/// <devdoc>
/// <para>Manages the authentication modules called during the client authentication
/// process.</para>
/// </devdoc>
- public class AuthenticationManager {
-
- //also used as a lock object
- private static PrefixLookup s_ModuleBinding = new PrefixLookup();
-
- private static volatile ArrayList s_ModuleList;
- private static volatile ICredentialPolicy s_ICredentialPolicy;
- private static SpnDictionary m_SpnDictionary = new SpnDictionary();
-
- private static TriState s_OSSupportsExtendedProtection = TriState.Unspecified;
- private static TriState s_SspSupportsExtendedProtection = TriState.Unspecified;
-
- // not creatable...
- //
- private AuthenticationManager() {
- }
-
- //
- //
- //
- public static ICredentialPolicy CredentialPolicy {
- get {
- return s_ICredentialPolicy;
- }
- set {
- ExceptionHelper.ControlPolicyPermission.Demand();
- s_ICredentialPolicy = value;
- }
- }
- //
- //
- public static StringDictionary CustomTargetNameDictionary {
- get {return m_SpnDictionary;}
- }
- //
- // This will give access to some internal methods
- //
- internal static SpnDictionary SpnDictionary {
- get {return m_SpnDictionary;}
- }
-
- //
- //
- internal static void EnsureConfigLoaded() {
- try {
- object o = ModuleList;
- }
- catch (Exception e) {
- if (e is ThreadAbortException || e is OutOfMemoryException || e is StackOverflowException)
- throw;
- // A Config System has circular dependency on HttpWebRequest so they call this method to
- // trigger the config. For some reason they don't want any exceptions from here.
- }
+ public class AuthenticationManager
+ {
+ private static object instanceLock = new object();
+ private static IAuthenticationManager internalInstance = null;
+ internal const string authenticationManagerRoot = "System.Net.AuthenticationManager";
+
+ // Following names are used both as a per-app key as a global setting
+ internal const string configHighPerformance = authenticationManagerRoot + ".HighPerformance";
+ internal const string configPrefixLookupMaxCount = authenticationManagerRoot + ".PrefixLookupMaxCount";
+
+ private AuthenticationManager()
+ {
}
- [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "Reviewed for thread-safety.")]
- internal static bool OSSupportsExtendedProtection {
-
- get {
-
- if (s_OSSupportsExtendedProtection == TriState.Unspecified) {
- if (ComNetOS.IsWin7orLater) {
- s_OSSupportsExtendedProtection = TriState.True;
- }
- else {
- if (SspSupportsExtendedProtection) {
- // EP is considered supported only if both SSPs and http.sys support CBT/EP.
- // We don't support scenarios where e.g. only SSPs support CBT. In such cases
- // the customer needs to patch also http.sys (even if he may not use it).
- if (UnsafeNclNativeMethods.HttpApi.ExtendedProtectionSupported) {
- s_OSSupportsExtendedProtection = TriState.True;
- }
- else {
- s_OSSupportsExtendedProtection = TriState.False;
- }
- }
- else {
- s_OSSupportsExtendedProtection = TriState.False;
+ private static IAuthenticationManager Instance
+ {
+ get
+ {
+ if (internalInstance == null)
+ {
+ lock (instanceLock)
+ {
+ if (internalInstance == null)
+ {
+ internalInstance = SelectAuthenticationManagerInstance();
}
}
}
- return (s_OSSupportsExtendedProtection == TriState.True);
+ return internalInstance;
}
}
- [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "Reviewed for thread-safety.")]
- internal static bool SspSupportsExtendedProtection {
-
- get {
+ private static IAuthenticationManager SelectAuthenticationManagerInstance()
+ {
+ bool highPerformance = false;
- if (s_SspSupportsExtendedProtection == TriState.Unspecified) {
- if (ComNetOS.IsWin7orLater) {
- s_SspSupportsExtendedProtection = TriState.True;
+ try
+ {
+ if (RegistryConfiguration.GlobalConfigReadInt(configHighPerformance, 0) == 1)
+ {
+ highPerformance = true;
+ }
+ else if (RegistryConfiguration.AppConfigReadInt(configHighPerformance, 0) == 1)
+ {
+ highPerformance = true;
+ }
+
+ if (highPerformance)
+ {
+ int? maxPrefixLookupEntries = ReadPrefixLookupMaxEntriesConfig();
+ if ((maxPrefixLookupEntries != null) && (maxPrefixLookupEntries > 0))
+ {
+ return new AuthenticationManager2((int)maxPrefixLookupEntries);
}
- else {
- // Perform a loopback NTLM authentication to determine whether the underlying OS supports
- // extended protection
- ContextFlags clientFlags = ContextFlags.Connection | ContextFlags.InitIdentify;
-
- NTAuthentication client = new NTAuthentication(false, NtlmClient.AuthType,
- SystemNetworkCredential.defaultCredential, "http/localhost", clientFlags, null);
- try {
-
- NTAuthentication server = new NTAuthentication(true, NtlmClient.AuthType,
- SystemNetworkCredential.defaultCredential, null, ContextFlags.Connection, null);
- try {
-
- SecurityStatus status;
- byte[] blob = null;
-
- while (!server.IsCompleted) {
- blob = client.GetOutgoingBlob(blob, true, out status);
- blob = server.GetOutgoingBlob(blob, true, out status);
- }
-
- if (server.OSSupportsExtendedProtection) {
- s_SspSupportsExtendedProtection = TriState.True;
- }
- else {
- if (Logging.On) Logging.PrintWarning(Logging.Web, SR.GetString(SR.net_ssp_dont_support_cbt));
- s_SspSupportsExtendedProtection = TriState.False;
- }
- }
- finally {
- server.CloseContext();
- }
- }
- finally {
- client.CloseContext();
- }
+ else
+ {
+ return new AuthenticationManager2();
}
}
-
- return (s_SspSupportsExtendedProtection == TriState.True);
}
- }
-
- //
- // ModuleList - static initialized property -
- // contains list of Modules used for Authentication
- //
-
- private static ArrayList ModuleList {
-
- get {
-
- //
- // GetConfig() might use us, so we have a circular dependency issue,
- // that causes us to nest here, we grab the lock, only
- // if we haven't initialized, or another thread is busy in initialization
- //
-
- if (s_ModuleList == null) {
- lock (s_ModuleBinding) {
- if (s_ModuleList == null) {
- GlobalLog.Print("AuthenticationManager::Initialize(): calling ConfigurationManager.GetSection()");
-
- // This will never come back as null. Additionally, it will
- // have the items the user wants available.
- List<Type> authenticationModuleTypes = AuthenticationModulesSectionInternal.GetSection().AuthenticationModules;
-
- //
- // Should be registered in a growing list of encryption/algorithm strengths
- // basically, walk through a list of Types, and create new Auth objects
- // from them.
- //
- // order is meaningful here:
- // load the registered list of auth types
- // with growing level of encryption.
- //
-
- ArrayList moduleList = new ArrayList();
- IAuthenticationModule moduleToRegister;
- foreach (Type type in authenticationModuleTypes){
- try {
- moduleToRegister = Activator.CreateInstance(type,
- BindingFlags.CreateInstance
- | BindingFlags.Instance
- | BindingFlags.NonPublic
- | BindingFlags.Public,
- null, // Binder
- new object[0], // no arguments
- CultureInfo.InvariantCulture
- ) as IAuthenticationModule;
- if (moduleToRegister != null) {
- GlobalLog.Print("WebRequest::Initialize(): Register:" + moduleToRegister.AuthenticationType);
- RemoveAuthenticationType(moduleList, moduleToRegister.AuthenticationType);
- moduleList.Add(moduleToRegister);
- }
- }
- catch (Exception exception) {
- //
- // ignore failure (log exception for debugging)
- //
- GlobalLog.Print("AuthenticationManager::constructor failed to initialize: " + exception.ToString());
- }
- }
-
- s_ModuleList = moduleList;
- }
- }
+ catch (Exception e)
+ {
+ if (e is ThreadAbortException || e is StackOverflowException || e is OutOfMemoryException)
+ {
+ throw;
}
-
- return s_ModuleList;
}
+
+ return new AuthenticationManagerDefault();
}
+ private static int? ReadPrefixLookupMaxEntriesConfig()
+ {
+ int? maxPrefixLookupEntries = null;
- private static void RemoveAuthenticationType(ArrayList list, string typeToRemove) {
- for (int i=0; i< list.Count; ++i) {
- if (string.Compare(((IAuthenticationModule)list[i]).AuthenticationType, typeToRemove, StringComparison.OrdinalIgnoreCase) ==0) {
- list.RemoveAt(i);
- break;
- }
-
- }
- }
+ int configuredMaxPrefixLookupEntries =
+ RegistryConfiguration.GlobalConfigReadInt(configPrefixLookupMaxCount, -1);
- /// <devdoc>
- /// <para>Call each registered authentication module to determine the first module that
- /// can respond to the authentication request.</para>
- /// </devdoc>
- public static Authorization Authenticate(string challenge, WebRequest request, ICredentials credentials) {
- //
- // parameter validation
- //
- if (request == null) {
- throw new ArgumentNullException("request");
- }
- if (credentials == null) {
- throw new ArgumentNullException("credentials");
- }
- if (challenge==null) {
- throw new ArgumentNullException("challenge");
+ if (configuredMaxPrefixLookupEntries > 0)
+ {
+ maxPrefixLookupEntries = configuredMaxPrefixLookupEntries;
}
- GlobalLog.Print("AuthenticationManager::Authenticate() challenge:[" + challenge + "]");
+ // Per-process setting will override global configuration.
+ configuredMaxPrefixLookupEntries =
+ RegistryConfiguration.AppConfigReadInt(configPrefixLookupMaxCount, -1);
- Authorization response = null;
-
- HttpWebRequest httpWebRequest = request as HttpWebRequest;
- if (httpWebRequest != null && httpWebRequest.CurrentAuthenticationState.Module != null)
+ if (configuredMaxPrefixLookupEntries > 0)
{
- response = httpWebRequest.CurrentAuthenticationState.Module.Authenticate(challenge, request, credentials);
+ maxPrefixLookupEntries = configuredMaxPrefixLookupEntries;
}
- else
+ return maxPrefixLookupEntries;
+ }
+
+ public static ICredentialPolicy CredentialPolicy {
+ get
{
- // This is the case where we would try to find the module on the first server challenge
- lock (s_ModuleBinding) {
- //
- // fastest way of iterating on the ArryList
- //
- for (int i = 0; i < ModuleList.Count; i++) {
- IAuthenticationModule authenticationModule = (IAuthenticationModule)ModuleList[i];
- //
- // the AuthenticationModule will
- // 1) return a valid string on success
- // 2) return null if it knows it cannot respond
- // 3) throw if it could have responded but unexpectedly failed to do so
- //
- if (httpWebRequest != null) {
- httpWebRequest.CurrentAuthenticationState.Module = authenticationModule;
- }
- response = authenticationModule.Authenticate(challenge, request, credentials);
-
- if (response!=null) {
- //
- // found the Authentication Module, return it
- //
- GlobalLog.Print("AuthenticationManager::Authenticate() found IAuthenticationModule:[" + authenticationModule.AuthenticationType + "]");
- break;
- }
- }
- }
+ return Instance.CredentialPolicy;
}
- return response;
+ set
+ {
+ ExceptionHelper.ControlPolicyPermission.Demand();
+ Instance.CredentialPolicy = value;
+ }
}
- // These four authentication modules require a Channel Binding Token to be able to preauthenticate over https.
- // After a successful authentication, they will cache the CBT used on the ServicePoint. In order to PreAuthenticate,
- // they require that a CBT has previously been cached. Any other module should be allowed to try preauthentication
- // without a cached CBT
-#if DEBUG
- // This method is only called as part of an assert
- private static bool ModuleRequiresChannelBinding(IAuthenticationModule authenticationModule)
+ public static StringDictionary CustomTargetNameDictionary
{
- return (authenticationModule is NtlmClient || authenticationModule is KerberosClient ||
- authenticationModule is NegotiateClient || authenticationModule is DigestClient);
+ get
+ {
+ return Instance.CustomTargetNameDictionary;
+ }
}
-#endif
- /// <devdoc>
- /// <para>Pre-authenticates a request.</para>
- /// </devdoc>
- public static Authorization PreAuthenticate(WebRequest request, ICredentials credentials) {
- GlobalLog.Print("AuthenticationManager::PreAuthenticate() request:" + ValidationHelper.HashString(request) + " credentials:" + ValidationHelper.HashString(credentials));
- if (request == null) {
- throw new ArgumentNullException("request");
- }
- if (credentials == null) {
- return null;
+ internal static SpnDictionary SpnDictionary
+ {
+ get
+ {
+ return Instance.SpnDictionary;
}
+ }
- HttpWebRequest httpWebRequest = request as HttpWebRequest;
- IAuthenticationModule authenticationModule;
- if (httpWebRequest == null)
- return null;
+ internal static void EnsureConfigLoaded()
+ {
+ Instance.EnsureConfigLoaded();
+ }
- //
- // PrefixLookup is thread-safe
- //
- string moduleName = s_ModuleBinding.Lookup(httpWebRequest.ChallengedUri.AbsoluteUri) as string;
- GlobalLog.Print("AuthenticationManager::PreAuthenticate() s_ModuleBinding.Lookup returns:" + ValidationHelper.ToString(moduleName));
- if (moduleName == null)
- return null;
- authenticationModule = findModule(moduleName);
- if (authenticationModule == null)
+ internal static bool OSSupportsExtendedProtection
+ {
+ get
{
- // The module could have been unregistered
- // No preauthentication is possible
- return null;
+ return Instance.OSSupportsExtendedProtection;
}
+ }
- // prepopulate the channel binding token so we can try preauth (but only for modules that actually need it!)
- if (httpWebRequest.ChallengedUri.Scheme == Uri.UriSchemeHttps)
+ internal static bool SspSupportsExtendedProtection
+ {
+ get
{
- object binding = httpWebRequest.ServicePoint.CachedChannelBinding;
-
-#if DEBUG
- // the ModuleRequiresChannelBinding method is only compiled in DEBUG so the assert must be restricted to DEBUG
- // as well
-
- // If the authentication module does CBT, we require that it also caches channel bindings.
- System.Diagnostics.Debug.Assert(!(binding == null && ModuleRequiresChannelBinding(authenticationModule)));
-#endif
-
- // can also be DBNull.Value, indicating "we previously succeeded without getting a CBT."
- // (ie, unpatched SSP talking to a partially-hardened server)
- ChannelBinding channelBinding = binding as ChannelBinding;
- if (channelBinding != null)
- {
- httpWebRequest.CurrentAuthenticationState.TransportContext = new CachedTransportContext(channelBinding);
- }
+ return Instance.SspSupportsExtendedProtection;
}
+ }
- // Otherwise invoke the PreAuthenticate method
- // we're guaranteed that CanPreAuthenticate is true because we check before calling BindModule()
- Authorization authorization = authenticationModule.PreAuthenticate(request, credentials);
-
- if (authorization != null && !authorization.Complete && httpWebRequest != null)
- httpWebRequest.CurrentAuthenticationState.Module = authenticationModule;
-
- GlobalLog.Print("AuthenticationManager::PreAuthenticate() IAuthenticationModule.PreAuthenticate() returned authorization:" + ValidationHelper.HashString(authorization));
- return authorization;
+ /// <devdoc>
+ /// <para>Call each registered authentication module to determine the first module that
+ /// can respond to the authentication request.</para>
+ /// </devdoc>
+ public static Authorization Authenticate(string challenge, WebRequest request, ICredentials credentials)
+ {
+ return Instance.Authenticate(challenge, request, credentials);
}
+ /// <devdoc>
+ /// <para>Pre-authenticates a request.</para>
+ /// </devdoc>
+ public static Authorization PreAuthenticate(WebRequest request, ICredentials credentials)
+ {
+ return Instance.PreAuthenticate(request, credentials);
+ }
/// <devdoc>
/// <para>Registers an authentication module with the authentication manager.</para>
/// </devdoc>
- public static void Register(IAuthenticationModule authenticationModule) {
+ public static void Register(IAuthenticationModule authenticationModule)
+ {
ExceptionHelper.UnmanagedPermission.Demand();
- if (authenticationModule == null) {
- throw new ArgumentNullException("authenticationModule");
- }
- GlobalLog.Print("AuthenticationManager::Register() registering :[" + authenticationModule.AuthenticationType + "]");
- lock (s_ModuleBinding) {
- IAuthenticationModule existentModule = findModule(authenticationModule.AuthenticationType);
- if (existentModule != null) {
- ModuleList.Remove(existentModule);
- }
- ModuleList.Add(authenticationModule);
- }
+ Instance.Register(authenticationModule);
}
/// <devdoc>
/// <para>Unregisters authentication modules for an authentication scheme.</para>
/// </devdoc>
- public static void Unregister(IAuthenticationModule authenticationModule) {
+ public static void Unregister(IAuthenticationModule authenticationModule)
+ {
ExceptionHelper.UnmanagedPermission.Demand();
- if (authenticationModule == null) {
- throw new ArgumentNullException("authenticationModule");
- }
- GlobalLog.Print("AuthenticationManager::Unregister() unregistering :[" + authenticationModule.AuthenticationType + "]");
- lock (s_ModuleBinding) {
- if (!ModuleList.Contains(authenticationModule)) {
- throw new InvalidOperationException(SR.GetString(SR.net_authmodulenotregistered));
- }
- ModuleList.Remove(authenticationModule);
- }
+ Instance.Unregister(authenticationModule);
}
+
/// <devdoc>
/// <para>Unregisters authentication modules for an authentication scheme.</para>
/// </devdoc>
- public static void Unregister(string authenticationScheme) {
+ public static void Unregister(string authenticationScheme)
+ {
ExceptionHelper.UnmanagedPermission.Demand();
- if (authenticationScheme == null) {
- throw new ArgumentNullException("authenticationScheme");
- }
- GlobalLog.Print("AuthenticationManager::Unregister() unregistering :[" + authenticationScheme + "]");
- lock (s_ModuleBinding) {
- IAuthenticationModule existentModule = findModule(authenticationScheme);
- if (existentModule == null) {
- throw new InvalidOperationException(SR.GetString(SR.net_authschemenotregistered));
- }
- ModuleList.Remove(existentModule);
- }
+ Instance.Unregister(authenticationScheme);
}
/// <devdoc>
@@ -449,9 +230,11 @@ namespace System.Net {
/// Returns a list of registered authentication modules.
/// </para>
/// </devdoc>
- public static IEnumerator RegisteredModules {
- get {
- return ModuleList.GetEnumerator();
+ public static IEnumerator RegisteredModules
+ {
+ get
+ {
+ return Instance.RegisteredModules;
}
}
@@ -464,78 +247,30 @@ namespace System.Net {
// generating that response
// This association is used for deciding which module to invoke
// for preauthentication purposes
- internal static void BindModule(Uri uri, Authorization response, IAuthenticationModule module) {
- GlobalLog.Assert(module.CanPreAuthenticate, "AuthenticationManager::BindModule()|module.CanPreAuthenticate == false");
- if (response.ProtectionRealm!=null) {
- // The authentication module specified which Uri prefixes
- // will be preauthenticated
- string[] prefix = response.ProtectionRealm;
-
- for (int k=0; k<prefix.Length; k++) {
- //
- // PrefixLookup is thread-safe
- //
- s_ModuleBinding.Add(prefix[k], module.AuthenticationType);
- }
- }
- else {
- // Otherwise use the default policy for "fabricating"
- // some protection realm generalizing the particular Uri
- string prefix = generalize(uri);
- //
- // PrefixLookup is thread-safe
- //
- s_ModuleBinding.Add(prefix, module.AuthenticationType);
- }
- }
-
- //
- // Lookup module by AuthenticationType
- //
- private static IAuthenticationModule findModule(string authenticationType) {
- IAuthenticationModule returnAuthenticationModule = null;
- ArrayList moduleList = ModuleList;
- IAuthenticationModule authenticationModule;
- for (int k=0; k<moduleList.Count; k++) {
- authenticationModule = (IAuthenticationModule)moduleList[k];
- if (string.Compare(authenticationModule.AuthenticationType, authenticationType, StringComparison.OrdinalIgnoreCase) == 0) {
- returnAuthenticationModule = authenticationModule;
- break;
- }
- }
- return returnAuthenticationModule;
- }
-
- // This function returns a prefix of the given absolute Uri
- // which will be used for associating authentication information
- // The purpose is to associate the module-binding not with a single
- // Uri but some collection generalizing that Uri to the loosely-defined
- // notion of "protection realm"
- private static string generalize(Uri location) {
- string completeUri = location.GetComponents(UriComponents.AbsoluteUri
- & ~(UriComponents.Query | UriComponents.Fragment), UriFormat.UriEscaped);
- int lastFwdSlash = completeUri.LastIndexOf('/');
- if (lastFwdSlash < 0) {
- return completeUri;
- }
- return completeUri.Substring(0, lastFwdSlash+1);
+ internal static void BindModule(Uri uri, Authorization response, IAuthenticationModule module)
+ {
+ Instance.BindModule(uri, response, module);
}
//
- // The method will extract the blob that does correspond to the moduled with the name passed in signature parameter
- // The method avoids confusion arisen from the parameters passed in a quoted string, such as:
+ // The method will extract the blob that does correspond to the moduled with the name passed in signature
+ // parameter. The method avoids confusion arisen from the parameters passed in a quoted string, such as:
// WWW-Authenticate: Digest username="NTLM", realm="wit", NTLM ...
//
- internal static int FindSubstringNotInQuotes(string challenge, string signature) {
+ [SuppressMessage(
+ "Microsoft.Globalization", "CA1308", Justification = "Assert-only by check for lower-case signature")]
+ internal static int FindSubstringNotInQuotes(string challenge, string signature)
+ {
int index = -1;
- Debug.Assert(signature.ToLowerInvariant().Equals(signature,StringComparison.InvariantCulture),
+ Debug.Assert(signature.ToLowerInvariant().Equals(signature, StringComparison.Ordinal),
"'signature' parameter must be lower case");
- if (challenge != null && signature != null && challenge.Length>=signature.Length) {
+ if (challenge != null && signature != null && challenge.Length >= signature.Length)
+ {
int firstQuote = -1, secondQuote = -1;
for (int i = 0; i < challenge.Length && index < 0; i++)
{
// Search for the quotes
- if (challenge[i]=='\"')
+ if (challenge[i] == '\"')
{
if (firstQuote <= secondQuote)
firstQuote = i;
@@ -543,14 +278,14 @@ namespace System.Net {
secondQuote = i;
}
// We've found both ends of an unquoted segment (could be whole challenge), search inside for the signature.
- if (i==challenge.Length-1 || (challenge[i]=='\"' && firstQuote>secondQuote))
+ if (i == challenge.Length - 1 || (challenge[i] == '\"' && firstQuote > secondQuote))
{
// see if the portion of challenge out of the quotes contains
// the signature of the IAuthenticationModule
- if (i==challenge.Length-1)
+ if (i == challenge.Length - 1)
firstQuote = challenge.Length;
// unquoted segment is too small to hold a scheme name, ie: scheme param="value",a=""
- if (firstQuote<secondQuote + 3)
+ if (firstQuote < secondQuote + 3)
continue;
int checkstart = secondQuote + 1;
@@ -579,6 +314,7 @@ namespace System.Net {
GlobalLog.Print("AuthenticationManager::FindSubstringNotInQuotes(" + challenge + ", " + signature + ")=" + index.ToString());
return index;
}
+
//
// Helper for FindSubstringNotInQuotes
// Find the FIRST possible index of a signature.
@@ -591,7 +327,7 @@ namespace System.Net {
for (; i < lwrCaseSignature.Length; ++i)
{
// force a challenge char to lowecase (safe assuming it works on trusted ASCII source)
- if ((challenge[start+i] | 0x20) != lwrCaseSignature[i])
+ if ((challenge[start + i] | 0x20) != lwrCaseSignature[i])
break;
}
if (i == lwrCaseSignature.Length)
@@ -599,6 +335,7 @@ namespace System.Net {
}
return -1;
}
+
//
// this method is called by the IAuthenticationModule implementations
// (mainly Digest) to safely find their list of parameters in a challenge.
@@ -606,7 +343,8 @@ namespace System.Net {
// -1 is returned on error or end of string. on return offset contains the
// index of the first '=' that is not included in quotes, -1 if no '=' was found.
//
- internal static int SplitNoQuotes(string challenge, ref int offset) {
+ internal static int SplitNoQuotes(string challenge, ref int offset)
+ {
// GlobalLog.Print("SplitNoQuotes([" + challenge + "], " + offset.ToString() + ")");
//
// save offset
@@ -617,31 +355,39 @@ namespace System.Net {
//
offset = -1;
- if (challenge != null && realOffset<challenge.Length) {
+ if (challenge != null && realOffset < challenge.Length)
+ {
int firstQuote = -1, secondQuote = -1;
- for (int i = realOffset; i < challenge.Length; i++) {
+ for (int i = realOffset; i < challenge.Length; i++)
+ {
//
// firstQuote>secondQuote means we are in a quoted string
//
- if (firstQuote>secondQuote && challenge[i]=='\\' && i+1 < challenge.Length && challenge[i+1]=='\"') {
+ if (firstQuote > secondQuote && challenge[i] == '\\' && i + 1 < challenge.Length && challenge[i + 1] == '\"')
+ {
//
// skip <\"> when in a quoted string
//
i++;
}
- else if (challenge[i]=='\"') {
- if (firstQuote <= secondQuote) {
+ else if (challenge[i] == '\"')
+ {
+ if (firstQuote <= secondQuote)
+ {
firstQuote = i;
}
- else {
+ else
+ {
secondQuote = i;
}
}
- else if (challenge[i]=='=' && firstQuote<=secondQuote && offset<0) {
+ else if (challenge[i] == '=' && firstQuote <= secondQuote && offset < 0)
+ {
offset = i;
}
- else if (challenge[i]==',' && firstQuote<=secondQuote) {
+ else if (challenge[i] == ',' && firstQuote <= secondQuote)
+ {
return i;
}
}
@@ -651,149 +397,23 @@ namespace System.Net {
}
#if !FEATURE_PAL
- internal static Authorization GetGroupAuthorization(IAuthenticationModule thisModule, string token, bool finished, NTAuthentication authSession, bool shareAuthenticatedConnections, bool mutualAuth) {
- return
- new Authorization(
+ internal static Authorization GetGroupAuthorization(
+ IAuthenticationModule thisModule,
+ string token,
+ bool finished,
+ NTAuthentication authSession,
+ bool shareAuthenticatedConnections,
+ bool mutualAuth)
+ {
+ return new Authorization(
token,
finished,
- (shareAuthenticatedConnections) ? null : (thisModule.GetType().FullName + "/" + authSession.UniqueUserId),
+ (shareAuthenticatedConnections) ? null
+ : (thisModule.GetType().FullName + "/" + authSession.UniqueUserId),
mutualAuth);
-
}
#endif // !FEATURE_PAL
- }; // class AuthenticationManager
-
- //
- // This internal class implements a data structure which can be
- // used for storing a set of objects keyed by string prefixes
- // Looking up an object given a string returns the value associated
- // with the longest matching prefix
- // (A prefix "matches" a string IFF the string starts with that prefix
- // The degree of the match is prefix length)
- //
- // The class has a configurable maximum capacity. When adding items, if the
- // list is over capacity, then the least recently used (LRU) item is dropped.
- //
- internal class PrefixLookup {
-
- // Do not go over this limit. Discard old data elements
- // Longer lists suffer a search penalty
- private const int defaultCapacity = 100;
- private volatile int capacity = defaultCapacity;
-
- // LRU list - Least Recently Used.
- // Add new items to the front. Drop items from the end if beyond capacity.
- // Promote used items to the top.
- private readonly LinkedList<PrefixValuePair> lruList = new LinkedList<PrefixValuePair>();
-
- private class PrefixValuePair {
- public string prefix;
- public object value;
-
- public PrefixValuePair(string pre, object val) {
- prefix = pre;
- value = val;
- }
- }
-
-#if DEBUG
- // this method is only called by test code
- internal int Capacity {
- get { return capacity; }
- set {
- lock (lruList) {
- if (value <= 0) {
- // Disabled, flush list
- capacity = 0;
- lruList.Clear();
- } else {
- capacity = value;
-
- // Ensure list is still within capacity
- while (lruList.Count > capacity) {
- lruList.RemoveLast();
- }
- }
- }
- }
- }
-#endif
-
- internal void Add(string prefix, object value) {
- Debug.Assert(prefix != null, "PrefixLookup.Add; prefix must not be null");
- Debug.Assert(prefix.Length > 0, "PrefixLookup.Add; prefix must not be empty");
- Debug.Assert(value != null, "PrefixLookup.Add; value must not be null");
-
- if (capacity == 0 || prefix == null || prefix.Length == 0 || value == null)
- return;
-
- // writers are locked
- lock (lruList) {
- // Special case duplicate check at start of list, very common
- if (lruList.First != null && lruList.First.Value.prefix.Equals(prefix)) {
- // Already in list, update value
- lruList.First.Value.value = value;
- } else {
- // New entry
- // Duplicates will just be pushed down and eventually discarded
- lruList.AddFirst(new PrefixValuePair(prefix, value));
-
- // If full, drop the least recently used
- while (lruList.Count > capacity) {
- lruList.RemoveLast();
- }
- }
-
- }
- }
-
- internal object Lookup(string lookupKey) {
- Debug.Assert(lookupKey != null, "PrefixLookup.Lookup; lookupKey must not be null");
- Debug.Assert(lookupKey.Length > 0, "PrefixLookup.Lookup; lookupKey must not be empty");
-
- if (lookupKey==null || lookupKey.Length == 0|| lruList.Count == 0) {
- return null;
- }
-
- LinkedListNode<PrefixValuePair> mostSpecificMatch = null;
- lock (lruList) {
- //
- // Normally readers don't need to be locked, but if the value is found
- // then it is promoted to the top of the list.
- //
-
- // Oh well, do it the slow way, search for the longest partial match
- string prefix;
- int longestMatchPrefix = 0;
- for (LinkedListNode<PrefixValuePair> pairNode = lruList.First;
- pairNode != null; pairNode = pairNode.Next) {
- //
- // check if the match is better than the current-most-specific match
- //
- prefix = pairNode.Value.prefix;
- if (prefix.Length > longestMatchPrefix && lookupKey.StartsWith(prefix)) {
- //
- // Yes-- update the information about currently preferred match
- //
- longestMatchPrefix = prefix.Length;
- mostSpecificMatch = pairNode;
-
- if (longestMatchPrefix == lookupKey.Length)
- break; // Exact match, optimal solution.
- }
- }
-
- if (mostSpecificMatch != null && mostSpecificMatch != lruList.First) {
- // We have a match and it's not the first element, move it up in the list
- lruList.Remove(mostSpecificMatch);
- lruList.AddFirst(mostSpecificMatch);
- }
- }
- return mostSpecificMatch != null ? mostSpecificMatch.Value.value : null;
- }
-
- } // class PrefixLookup
-
+ } // class AuthenticationManager
} // namespace System.Net
diff --git a/mcs/class/referencesource/System/net/System/Net/AuthenticationScheme.cs b/mcs/class/referencesource/System/net/System/Net/AuthenticationScheme.cs
index 9b6d9ed9f1e..a484b773167 100644
--- a/mcs/class/referencesource/System/net/System/Net/AuthenticationScheme.cs
+++ b/mcs/class/referencesource/System/net/System/Net/AuthenticationScheme.cs
@@ -6,7 +6,7 @@
namespace System.Net {
- // These are not in [....] with the flags IIS uses for the metabase. I guess that's OK.
+ // These are not in sync with the flags IIS uses for the metabase. I guess that's OK.
// For reference IIS actually uses a combination of flags to figure out what challenge to send out:
// AuthAnonymous, AuthBasic, AuthMD5, AuthPassport, AuthNTLM: these are bool values
// NTAuthenticationProviders: this is a string "NTLM", "Kerberos", "Negotiate"
diff --git a/mcs/class/referencesource/System/net/System/Net/Cache/HttpRequestCacheValidator.cs b/mcs/class/referencesource/System/net/System/Net/Cache/HttpRequestCacheValidator.cs
index 92dafc1f538..973e6b6214f 100644
--- a/mcs/class/referencesource/System/net/System/Net/Cache/HttpRequestCacheValidator.cs
+++ b/mcs/class/referencesource/System/net/System/Net/Cache/HttpRequestCacheValidator.cs
@@ -902,7 +902,7 @@ namespace System.Net.Cache {
// These if-else are two logically identical blocks that differ only in the way of how text search is done.
// The text search is done differently for 32 and X-bits platforms.
- // ATTN: You are responsible for keeping the rest of the logic in [....].
+ // ATTN: You are responsible for keeping the rest of the logic in sync.
if (IntPtr.Size == 4) {
// We are on 32-bits platform
diff --git a/mcs/class/referencesource/System/net/System/Net/Cache/IERequestCache.cs b/mcs/class/referencesource/System/net/System/Net/Cache/IERequestCache.cs
index fb4467486e0..d7421af8e03 100644
--- a/mcs/class/referencesource/System/net/System/Net/Cache/IERequestCache.cs
+++ b/mcs/class/referencesource/System/net/System/Net/Cache/IERequestCache.cs
@@ -51,7 +51,7 @@ namespace Microsoft.Win32 {
***********/
// Per VsWhidbey#88276 it was decided to not enforce any cache metadata limits for WinInet cache provider.
- // ([....] 7/17 made this a const to avoid threading issues)
+ // (Microsoft 7/17 made this a const to avoid threading issues)
//_MaximumResponseHeadersLength = Int32.MaxValue;
this.async = async;
diff --git a/mcs/class/referencesource/System/net/System/Net/Cache/RequestCachePolicy.cs b/mcs/class/referencesource/System/net/System/Net/Cache/RequestCachePolicy.cs
index f668069047e..704589af7bc 100644
--- a/mcs/class/referencesource/System/net/System/Net/Cache/RequestCachePolicy.cs
+++ b/mcs/class/referencesource/System/net/System/Net/Cache/RequestCachePolicy.cs
@@ -32,7 +32,7 @@ namespace System.Net.Cache {
BypassCache = 1,
// Only serve requests from cache, an exception is thrown if not found
CacheOnly = 2,
- // Serve from the cache, but will [....] up with the server if not found
+ // Serve from the cache, but will sync up with the server if not found
CacheIfAvailable = 3,
// Attempt to revalidate cache with the server, reload if unable to
Revalidate = 4,
@@ -105,7 +105,7 @@ namespace System.Net.Cache {
BypassCache = 1,
// Only serve requests from cache, an exception is thrown if not found
CacheOnly = 2,
- // Serve from the cache, but will [....] up with the server if not found
+ // Serve from the cache, but will sync up with the server if not found
CacheIfAvailable = 3,
// Validate cached data with the server even if it looks fresh
Revalidate = 4,
diff --git a/mcs/class/referencesource/System/net/System/Net/Cache/WinInetCache.cs b/mcs/class/referencesource/System/net/System/Net/Cache/WinInetCache.cs
index 513c848eec3..6618a1f004c 100644
--- a/mcs/class/referencesource/System/net/System/Net/Cache/WinInetCache.cs
+++ b/mcs/class/referencesource/System/net/System/Net/Cache/WinInetCache.cs
@@ -546,8 +546,8 @@ using System.Globalization;
int bufferCharLength = bufferPtr->HeaderInfoChars + ((int)(bufferPtr->_OffsetHeaderInfo))/c_CharSz;
if (bufferCharLength*c_CharSz > entry.MaxBufferBytes) {
- // WinInet bug? They may report offset+HeaderInfoChars as a greater value than MaxBufferBytes as total buffer size.
- // Actually, the last one seems to be accurate based on the data we have provided for Commit.
+ // WinInet
+
bufferCharLength = entry.MaxBufferBytes/c_CharSz;
}
//WinInet may put terminating nulls at the end of the buffer, remove them.
@@ -579,46 +579,46 @@ using System.Globalization;
}
int bufferCharLength = bufferPtr->HeaderInfoChars + ((int)(bufferPtr->_OffsetHeaderInfo))/c_CharSz;
if (bufferCharLength*c_CharSz > entry.MaxBufferBytes) {
- // WinInet bug? They may report offset+HeaderInfoChars as a greater value than total buffer size.
- // Actually, the last one seems to be accurate based on the data we have provided for Commit.
- bufferCharLength = entry.MaxBufferBytes/c_CharSz;
- }
+ // WinInet
- while (true) {
- int totalLength = 0;
- DataParseStatus status = WebHeaderCollection.ParseHeaders(collection, false, buffer, bufferCharLength,
- ref offset,
- ref totalLength,
- entry.MaxBufferBytes/c_CharSz);
-
- if (status != DataParseStatus.Done) {
- if (status == DataParseStatus.NeedMoreData) {
- //WinInet puts terminating null at the end of the buffer, accept that as a "normal" case.
- if ((offset+1 == bufferCharLength) && charPtr[offset] == 0) {
- // accept as the last metainfo block
- if (collection.Count != 0) {
- result.Add(collection);
- }
- break;
- }
- }
- entry.Error = Status.CorruptedHeaders;
- //throw new InvalidOperationException("Cannot convert Cache Entry metadata into a NameValueCollection instance");
- break;
- }
- result.Add(collection);
- // do we have more meta data?
- if (offset >= bufferCharLength) {
- break;
- }
- // continue parsing next collection
- collection = new NameValueCollection();
- }
- entry.MetaInfo = (result.Count == 0? null: (NameValueCollection[])result.ToArray(typeof(NameValueCollection)));
- return entry.Error;
- }
-*********************/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+*/
#if DEBUG
/*
diff --git a/mcs/class/referencesource/System/net/System/Net/Configuration/DefaultProxySection.cs b/mcs/class/referencesource/System/net/System/Net/Configuration/DefaultProxySection.cs
index 13b735ef54e..deb439b59bc 100644
--- a/mcs/class/referencesource/System/net/System/Net/Configuration/DefaultProxySection.cs
+++ b/mcs/class/referencesource/System/net/System/Net/Configuration/DefaultProxySection.cs
@@ -118,7 +118,7 @@ namespace System.Net.Configuration
// This allows us to prevent parent settings (machine.config) from propegating to higher config (app.config), unless
// the higher config doesn't contain the section at all. That is, overriding defaultProxy is all-or-nothing.
- // Template from [....].
+ // Template from Microsoft.
protected override void Reset(ConfigurationElement parentElement)
{
// Ignore the parentElement parameter by changing it to the default settings
diff --git a/mcs/class/referencesource/System/net/System/Net/Configuration/TimeoutValidationAttribute.cs b/mcs/class/referencesource/System/net/System/Net/Configuration/TimeoutValidationAttribute.cs
index 472273d81b9..0bc729b6a77 100644
--- a/mcs/class/referencesource/System/net/System/Net/Configuration/TimeoutValidationAttribute.cs
+++ b/mcs/class/referencesource/System/net/System/Net/Configuration/TimeoutValidationAttribute.cs
@@ -3,7 +3,7 @@ namespace System.Net {
using System.Configuration;
using System.ComponentModel;
- // NOTE [[....]]: The old validation attribute was removed from System.ll and is
+ // NOTE [Microsoft]: The old validation attribute was removed from System.ll and is
// replaced by more flexible and robust validation/conversion design.
// The change bellow is a simple fix to make things work with the least possible change ( it is an integration break )
// However, we already have a built-in support for configuration properties that store
@@ -32,7 +32,7 @@ namespace System.Net {
return;
if (timeout <= 0 && timeout != System.Threading.Timeout.Infinite) {
- // Note [[....]] : This is a lab integration fix. Old code did not have any error message at this point
+ // Note [Microsoft] : This is a lab integration fix. Old code did not have any error message at this point
// This code change accomplishes the same result. However its highly reccomended that a specific error message is givven
// to the user so they know what exaclty is the problem ( i.e. the value must be a positive integer or be Infinite )
// To accomplish this - an exception with the specific error message could be thrown ( ArgumentException is prefferred )
diff --git a/mcs/class/referencesource/System/net/System/Net/FtpWebRequest.cs b/mcs/class/referencesource/System/net/System/Net/FtpWebRequest.cs
index 53b623f5f8c..5ccb1aca1c0 100644
--- a/mcs/class/referencesource/System/net/System/Net/FtpWebRequest.cs
+++ b/mcs/class/referencesource/System/net/System/Net/FtpWebRequest.cs
@@ -555,12 +555,20 @@ namespace System.Net {
if(Logging.On)Logging.Enter(Logging.Web, this, "GetResponse", "");
if(Logging.On)Logging.PrintInfo(Logging.Web, this, "GetResponse", SR.GetString(SR.net_log_method_equal, m_MethodInfo.Method));
GlobalLog.Enter("FtpWebRequest#" + ValidationHelper.HashString(this) + "::GetResponse");
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogBeginGetResponse(success: true, synchronous: true);
+ }
+ bool success = false;
+ int statusCode = -1;
try {
CheckError();
- if (m_FtpWebResponse != null)
+ if (m_FtpWebResponse != null) {
+ success = true;
+ statusCode = GetStatusCode(m_FtpWebResponse);
return m_FtpWebResponse;
+ }
if (m_GetResponseStarted) {
throw new InvalidOperationException(SR.GetString(SR.net_repcall));
@@ -607,9 +615,10 @@ namespace System.Net {
webException.InternalStatus);
}
SetException(webException);
+ statusCode = GetStatusCode(webException);
throw webException;
}
- // Catch added to address Bug # 545645
+ // Catch added to address
catch (InvalidOperationException invalidOpException)
{
SetException(invalidOpException);
@@ -657,7 +666,18 @@ namespace System.Net {
FinishRequestStage(RequestStage.ReleaseConnection);
}
}
- } catch (Exception exception) {
+
+ statusCode = GetStatusCode(m_FtpWebResponse);
+ success = true;
+ }
+ catch (Exception exception) {
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ WebException webException = exception as WebException;
+ if (webException != null) {
+ statusCode = GetStatusCode(webException);
+ }
+ }
+
if(Logging.On)Logging.Exception(Logging.Web, this, "GetResponse", exception);
// if m_Exception == null, we are about to throw an exception to the user
@@ -677,6 +697,9 @@ namespace System.Net {
GlobalLog.Leave("FtpWebRequest#" + ValidationHelper.HashString(this) + "::GetResponse", "returns #"+ValidationHelper.HashString(m_FtpWebResponse));
if(Logging.On)Logging.Exit(Logging.Web, this, "GetResponse", "");
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogEndGetResponse(success, synchronous: true, statusCode: statusCode);
+ }
}
return m_FtpWebResponse;
}
@@ -693,7 +716,8 @@ namespace System.Net {
GlobalLog.Enter("FtpWebRequest#" + ValidationHelper.HashString(this) + "::BeginGetResponse");
ContextAwareResult asyncResult;
-
+ bool success = true;
+
try {
if (m_FtpWebResponse != null)
{
@@ -758,20 +782,17 @@ namespace System.Net {
}
}
} catch (Exception exception) {
+ success = false;
if(Logging.On)Logging.Exception(Logging.Web, this, "BeginGetResponse", exception);
throw;
} finally {
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogBeginGetResponse(success, synchronous: false);
+ }
GlobalLog.Leave("FtpWebRequest#" + ValidationHelper.HashString(this) + "::BeginGetResponse");
if(Logging.On)Logging.Exit(Logging.Web, this, "BeginGetResponse", "");
}
- string suri;
- if (FrameworkEventSource.Log.IsEnabled(EventLevel.Verbose, FrameworkEventSource.Keywords.NetClient))
- suri = this.RequestUri.ToString();
- else
- suri = this.RequestUri.OriginalString;
- if (FrameworkEventSource.Log.IsEnabled()) LogBeginGetResponse(suri);
-
return asyncResult;
}
@@ -783,6 +804,8 @@ namespace System.Net {
if(Logging.On)Logging.Enter(Logging.Web, this, "EndGetResponse", "");
GlobalLog.Enter("FtpWebRequest#" + ValidationHelper.HashString(this) + "::EndGetResponse");
+ bool success = false;
+ int statusCode = -1;
try {
// parameter validation
if (asyncResult==null) {
@@ -805,16 +828,18 @@ namespace System.Net {
if (m_FtpWebResponse == null)
{
m_FtpWebResponse = new FtpWebResponse((HttpWebResponse)GetHttpWebRequest().EndGetResponse(asyncResult));
+ statusCode = GetStatusCode(m_FtpWebResponse);
}
} catch (WebException webException) {
+ statusCode = GetStatusCode(webException);
if (webException.Response != null &&
webException.Response is HttpWebResponse)
{
throw new WebException(webException.Message,
- null,
- webException.Status,
- new FtpWebResponse((HttpWebResponse)webException.Response),
- webException.InternalStatus);
+ null,
+ webException.Status,
+ new FtpWebResponse((HttpWebResponse)webException.Response),
+ webException.InternalStatus);
}
throw;
}
@@ -824,16 +849,27 @@ namespace System.Net {
castedAsyncResult.EndCalled = true;
CheckError();
}
- } catch (Exception exception) {
+
+ success = true;
+ }
+ catch (Exception exception) {
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ WebException webException = exception as WebException;
+ if (webException != null) {
+ statusCode = GetStatusCode(webException);
+ }
+ }
+
if(Logging.On)Logging.Exception(Logging.Web, this, "EndGetResponse", exception);
throw;
} finally {
GlobalLog.Leave("FtpWebRequest#" + ValidationHelper.HashString(this) + "::EndGetResponse");
if(Logging.On)Logging.Exit(Logging.Web, this, "EndGetResponse", "");
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogEndGetResponse(success, synchronous: false, statusCode: statusCode);
+ }
}
- if (FrameworkEventSource.Log.IsEnabled()) LogEndGetResponse();
-
return m_FtpWebResponse;
}
@@ -845,7 +881,11 @@ namespace System.Net {
if(Logging.On)Logging.Enter(Logging.Web, this, "GetRequestStream", "");
if(Logging.On)Logging.PrintInfo(Logging.Web, this, "GetRequestStream", SR.GetString(SR.net_log_method_equal, m_MethodInfo.Method));
GlobalLog.Enter("FtpWebRequest#" + ValidationHelper.HashString(this) + "::GetRequestStream");
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogBeginGetRequestStream(success: true, synchronous: true);
+ }
+ bool success = false;
try {
if (m_GetRequestStreamStarted) {
throw new InvalidOperationException(SR.GetString(SR.net_repcall));
@@ -889,13 +929,17 @@ namespace System.Net {
m_Stream.WriteTimeout = ReadWriteTimeout;
m_Stream.ReadTimeout = ReadWriteTimeout;
}
+
+ success = true;
} catch (Exception exception) {
if(Logging.On)Logging.Exception(Logging.Web, this, "GetRequestStream", exception);
throw;
} finally {
-
GlobalLog.Leave("FtpWebRequest#" + ValidationHelper.HashString(this) + "::GetRequestStream");
if(Logging.On)Logging.Exit(Logging.Web, this, "GetRequestStream", "");
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogEndGetRequestStream(success, synchronous: true);
+ }
}
return m_Stream;
}
@@ -910,7 +954,7 @@ namespace System.Net {
GlobalLog.Enter("FtpWebRequest#" + ValidationHelper.HashString(this) + "::BeginGetRequestStream");
ContextAwareResult asyncResult = null;
-
+ bool success = false;
try {
if (m_GetRequestStreamStarted) {
throw new InvalidOperationException(SR.GetString(SR.net_repcall));
@@ -939,22 +983,20 @@ namespace System.Net {
FinishRequestStage(RequestStage.CheckForError);
}
}
+
+ success = true;
} catch (Exception exception) {
if(Logging.On)Logging.Exception(Logging.Web, this, "BeginGetRequestStream", exception);
throw;
} finally {
-
+
+ if (FrameworkEventSource.Log.IsEnabled()){
+ LogBeginGetRequestStream(success, synchronous: false);
+ }
GlobalLog.Leave("FtpWebRequest#" + ValidationHelper.HashString(this) + "::BeginGetRequestStream");
if(Logging.On)Logging.Exit(Logging.Web, this, "BeginGetRequestStream", "");
}
- string suri;
- if (FrameworkEventSource.Log.IsEnabled(EventLevel.Verbose, FrameworkEventSource.Keywords.NetClient))
- suri = this.RequestUri.ToString();
- else
- suri = this.RequestUri.OriginalString;
- if (FrameworkEventSource.Log.IsEnabled()) LogBeginGetRequestStream(suri);
-
return asyncResult;
}
@@ -964,6 +1006,7 @@ namespace System.Net {
GlobalLog.Enter("FtpWebRequest#" + ValidationHelper.HashString(this) + "::EndGetRequestStream");
Stream requestStream = null;
+ bool success = false;
try {
// parameter validation
@@ -995,6 +1038,8 @@ namespace System.Net {
requestStream.WriteTimeout = ReadWriteTimeout;
requestStream.ReadTimeout = ReadWriteTimeout;
}
+
+ success = true;
} catch (Exception exception) {
if(Logging.On)Logging.Exception(Logging.Web, this, "EndGetRequestStream", exception);
throw;
@@ -1003,7 +1048,9 @@ namespace System.Net {
if(Logging.On)Logging.Exit(Logging.Web, this, "EndGetRequestStream", "");
}
- if (FrameworkEventSource.Log.IsEnabled()) LogEndGetRequestStream();
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogEndGetRequestStream(success, synchronous: false);
+ }
return requestStream;
}
@@ -1273,7 +1320,7 @@ namespace System.Net {
}
}
- // Return null only on [....] (if we're on the [....] thread). Otherwise throw if no context is available.
+ // Return null only on Sync (if we're on the Sync thread). Otherwise throw if no context is available.
//
//
@@ -1284,7 +1331,7 @@ namespace System.Net {
else if (m_WriteAsyncResult != null)
return m_WriteAsyncResult;
- // [....].
+ // Sync.
GlobalLog.ThreadContract(ThreadKinds.User | ThreadKinds.Sync, "FtpWebRequest#" + ValidationHelper.HashString(this) + "::GetWritingContext");
return null;
}
@@ -1292,7 +1339,7 @@ namespace System.Net {
//
// Provides an abstract way of having Async code callback into the request (saves a delegate)
//
- // ATTN this method is also called on [....] path when either command or data stream gets closed
+ // ATTN this method is also called on sync path when either command or data stream gets closed
// Consider: Revisit the design of ftp streams
//
internal override void RequestCallback(object obj)
@@ -1303,7 +1350,7 @@ namespace System.Net {
SyncRequestCallback(obj);
}
//
- // Only executed for [....] requests when the pipline is completed
+ // Only executed for Sync requests when the pipline is completed
//
private void SyncRequestCallback(object obj)
{
@@ -1342,7 +1389,7 @@ namespace System.Net {
isRevalidatedOrRetried =!m_CacheDone &&
(CacheProtocol.ProtocolStatus == CacheValidationStatus.Continue || CacheProtocol.ProtocolStatus == CacheValidationStatus.RetryResponseFromServer);
- // This is for [....] Upload commands that do not get chance hit GetResponse loop
+ // This is for sync Upload commands that do not get chance hit GetResponse loop
if (m_MethodInfo.IsUpload)
{
CheckCacheRetrieveOnResponse();
@@ -2175,6 +2222,49 @@ namespace System.Net {
connection.Abort(ExceptionHelper.RequestAbortedException);
}
}
+
+ private static int GetStatusCode(WebException webException)
+ {
+ int result = -1;
+
+ // we are calculating statusCode only when FrameworkEventSource logging is enabled.
+ if (FrameworkEventSource.Log.IsEnabled() && webException != null && webException.Response != null) {
+ HttpWebResponse httpWebResponse = webException.Response as HttpWebResponse;
+ if (httpWebResponse != null) {
+ try {
+ result = (int)httpWebResponse.StatusCode;
+ }
+ catch (ObjectDisposedException) {
+ // ObjectDisposedException is expected here in the following sequuence: ftpWebRequest.GetResponse().Dispose() -> ftpWebRequest.GetResponse()
+ // on the second call to GetResponse() we cannot determine the statusCode.
+ }
+ }
+ else {
+ var ftpWebResponse = webException.Response as FtpWebResponse;
+ result = GetStatusCode(ftpWebResponse);
+ }
+ }
+
+ return result;
+ }
+
+ private static int GetStatusCode(FtpWebResponse ftpWebResponse)
+ {
+ int result = -1;
+
+ if (FrameworkEventSource.Log.IsEnabled() && ftpWebResponse != null) {
+ try {
+ result = (int)ftpWebResponse.StatusCode;
+ }
+ catch (ObjectDisposedException) {
+ // ObjectDisposedException is expected here in the following sequuence: ftpWebRequest.GetResponse().Dispose() -> ftpWebRequest.GetResponse()
+ // on the second call to GetResponse() we cannot determine the statusCode.
+ }
+ }
+
+ return result;
+ }
+
} // class FtpWebRequest
//
diff --git a/mcs/class/referencesource/System/net/System/Net/HttpListener.cs b/mcs/class/referencesource/System/net/System/Net/HttpListener.cs
index c7d9b1d7aa0..829540fabad 100644
--- a/mcs/class/referencesource/System/net/System/Net/HttpListener.cs
+++ b/mcs/class/referencesource/System/net/System/Net/HttpListener.cs
@@ -285,14 +285,14 @@ namespace System.Net {
private static readonly int RequestChannelBindStatusSize =
Marshal.SizeOf(typeof(UnsafeNclNativeMethods.HttpApi.HTTP_REQUEST_CHANNEL_BIND_STATUS));
- // Win8# 559317 fixed a bug in Http.sys's HttpReceiveClientCertificate method.
- // Without this fix IOCP callbacks were not being called although ERROR_IO_PENDING was
- // returned from HttpReceiveClientCertificate when using the
- // FileCompletionNotificationModes.SkipCompletionPortOnSuccess flag.
- // This bug was only hit when the buffer passed into HttpReceiveClientCertificate
- // (1500 bytes initially) is tool small for the certificate.
- // Due to this bug in downlevel operating systems the FileCompletionNotificationModes.SkipCompletionPortOnSuccess
- // flag is only used on Win8 and later.
+ // Win8# 559317 fixed a
+
+
+
+
+
+
+
internal static readonly bool SkipIOCPCallbackOnSuccess = ComNetOS.IsWin8orLater;
// Mitigate potential DOS attacks by limiting the number of unknown headers we accept. Numerous header names
@@ -1564,8 +1564,8 @@ namespace System.Net {
outBlob = context.GetOutgoingDigestBlob(inBlob, verb, null, Realm, false, false, out statusCodeNew);
GlobalLog.Print("HttpListener#" + ValidationHelper.HashString(this) + "::HandleAuthentication() GetOutgoingDigestBlob() returned IsCompleted:" + context.IsCompleted + " statusCodeNew:" + statusCodeNew + " outBlob:[" + outBlob + "]");
- // WDigest bug: sometimes when AcceptSecurityContext returns success, it provides a bogus, empty 4k buffer.
- // Ignore it. (Should find out what's going on here from WDigest people.)
+ // WDigest
+
if (statusCodeNew == SecurityStatus.OK)
{
outBlob = null;
@@ -1654,9 +1654,9 @@ namespace System.Net {
error = !context.IsValidContext;
if (error)
{
- // Bug #474228: SSPI Workaround
- // If a client sends up a blob on the initial request, Negotiate returns SEC_E_INVALID_HANDLE
- // when it should return SEC_E_INVALID_TOKEN.
+ //
+
+
if (statusCodeNew == SecurityStatus.InvalidHandle && oldContext == null && bytes != null && bytes.Length > 0)
{
statusCodeNew = SecurityStatus.InvalidToken;
diff --git a/mcs/class/referencesource/System/net/System/Net/HttpListenerRequest.cs b/mcs/class/referencesource/System/net/System/Net/HttpListenerRequest.cs
index 928233a723d..2600cfdab2b 100644
--- a/mcs/class/referencesource/System/net/System/Net/HttpListenerRequest.cs
+++ b/mcs/class/referencesource/System/net/System/Net/HttpListenerRequest.cs
@@ -98,9 +98,9 @@ namespace System.Net {
try {
if (errorCode == UnsafeNclNativeMethods.ErrorCodes.ERROR_MORE_DATA)
{
- //There is a bug that has existed in http.sys since w2k3. Bytesreceived will only
- //return the size of the inital cert structure. To get the full size,
- //we need to add the certificate encoding size as well.
+ //There is a
+
+
UnsafeNclNativeMethods.HttpApi.HTTP_SSL_CLIENT_CERT_INFO* pClientCertInfo = asyncResult.RequestBlob;
asyncResult.Reset(numBytes + pClientCertInfo->CertEncodedSize);
diff --git a/mcs/class/referencesource/System/net/System/Net/HttpWebRequest.cs b/mcs/class/referencesource/System/net/System/Net/HttpWebRequest.cs
index eab2eeb895f..76e37ecea72 100644
--- a/mcs/class/referencesource/System/net/System/Net/HttpWebRequest.cs
+++ b/mcs/class/referencesource/System/net/System/Net/HttpWebRequest.cs
@@ -153,7 +153,7 @@ namespace System.Net {
// Used by our Connection to block on being able to Read from our Connection
private LazyAsyncResult _ConnectionReaderAResult;
- // Once set, the Request either works Async or [....] internally
+ // Once set, the Request either works Async or Sync internally
private TriState _RequestIsAsync;
// Delegate that can be called on Continue Response
@@ -406,7 +406,7 @@ namespace System.Net {
}
}
- // [....] code path only.
+ // Sync code path only.
// True if ProcessWriteCallDone Should read for an additional response.
// False if the 100Continue code will do the read in WriteHeaders.
internal bool NeedsToReadForResponse {
@@ -792,7 +792,7 @@ namespace System.Net {
}
// True, if the EndGetRequestStream or GetRequestStream call returned
- // codereview: Used ONLY by [....] code
+ // codereview: Used ONLY by Sync code
internal bool UserRetrievedWriteStream {
get {
return _WriteAResult != null && _WriteAResult.InternalPeekCompleted;
@@ -1321,99 +1321,101 @@ namespace System.Net {
#if DEBUG
using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.Async)) {
#endif
- GlobalLog.Enter("HttpWebRequest#" + ValidationHelper.HashString(this) + "::BeginGetRequestStream");
- if(Logging.On)Logging.Enter(Logging.Web, this, "BeginGetRequestStream", "");
- CheckProtocol(true);
-
-#if !FEATURE_PAL
- ContextAwareResult asyncResult = new ContextAwareResult(IdentityRequired, true, this, state, callback);
-#else // !FEATURE_PAL
- ContextAwareResult asyncResult = new ContextAwareResult(false, true, this, state, callback);
-#endif // !FEATURE_PAL
+ bool success = false;
+ try {
+ GlobalLog.Enter("HttpWebRequest#" + ValidationHelper.HashString(this) + "::BeginGetRequestStream");
+ if (Logging.On) Logging.Enter(Logging.Web, this, "BeginGetRequestStream", "");
+ CheckProtocol(true);
+ #if !FEATURE_PAL
+ ContextAwareResult asyncResult = new ContextAwareResult(IdentityRequired, true, this, state, callback);
+ #else // !FEATURE_PAL
+ ContextAwareResult asyncResult = new ContextAwareResult(false, true, this, state, callback);
+ #endif // !FEATURE_PAL
- lock (asyncResult.StartPostingAsyncOp())
- {
- // and have a result (weird but was supported in V1.X as repeated calls for the submit stream.
- if (_WriteAResult != null && _WriteAResult.InternalPeekCompleted)
- {
- if (_WriteAResult.Result is Exception)
- {
- throw (Exception)_WriteAResult.Result;
- }
-
- try
- {
- asyncResult.InvokeCallback(_WriteAResult.Result);
- }
- catch (Exception e)
- {
- Abort(e, AbortState.Public);
- throw;
- }
- }
- else
- {
- // prevent new requests when low on resources
- if (!RequestSubmitted && NclUtilities.IsThreadPoolLow())
- {
- Exception exception = new InvalidOperationException(SR.GetString(SR.net_needmorethreads));
- Abort(exception, AbortState.Public);
- throw exception;
- }
- lock(this)
+ lock (asyncResult.StartPostingAsyncOp())
{
- if (_WriteAResult != null)
+ // and have a result (weird but was supported in V1.X as repeated calls for the submit stream.
+ if (_WriteAResult != null && _WriteAResult.InternalPeekCompleted)
{
- throw new InvalidOperationException(SR.GetString(SR.net_repcall));
- }
+ if (_WriteAResult.Result is Exception)
+ {
+ throw (Exception)_WriteAResult.Result;
+ }
- // See if we're already submitted a request (e.g. via GetResponse).
- if (SetRequestSubmitted())
- {
- // Not completed write stream, this is an application error.
- throw new InvalidOperationException(SR.GetString(SR.net_reqsubmitted));
+ try
+ {
+ asyncResult.InvokeCallback(_WriteAResult.Result);
+ }
+ catch (Exception e)
+ {
+ Abort(e, AbortState.Public);
+ throw;
+ }
}
-
- // If there's already been a _ReadAResult completed, it better have been with an exception, like an abort.
- // We need to check within this lock. Before the lock, _WriteAResult didn't exist so won't have been notified.
- // BeginSubmitRequest() will fail silently if we go ahead and call it after an abort. Since we know this is the
- // first call to any of the [Begin]GetRe... methods by the above checks, we know ProcessResponse can't have been
- // called or any other valid _ReadAResult created yet.
- if (_ReadAResult != null)
+ else
{
- GlobalLog.Assert(_ReadAResult.InternalPeekCompleted, "HttpWebRequest#{0}::BeginGetRequestStream()|Incomplete _ReadAResult present on request.", ValidationHelper.HashString(this));
- GlobalLog.Assert(_ReadAResult.Result is Exception, "HttpWebRequest#{0}::BeginGetRequestStream()|_ReadAResult with successful completion already present on request.", ValidationHelper.HashString(this));
- throw (Exception) _ReadAResult.Result;
- }
+ // prevent new requests when low on resources
+ if (!RequestSubmitted && NclUtilities.IsThreadPoolLow())
+ {
+ Exception exception = new InvalidOperationException(SR.GetString(SR.net_needmorethreads));
+ Abort(exception, AbortState.Public);
+ throw exception;
+ }
- // get async going
- _WriteAResult = asyncResult;
- Async = true;
- }
+ lock (this)
+ {
+ if (_WriteAResult != null)
+ {
+ throw new InvalidOperationException(SR.GetString(SR.net_repcall));
+ }
- // OK, we haven't submitted the request yet, so do so now
- // save off verb from origin Verb
- GlobalLog.Print("HttpWebRequest#" + ValidationHelper.HashString(this) + "::BeginGetRequestStream() resetting CurrentMethod to " + _OriginVerb);
- CurrentMethod = _OriginVerb;
- BeginSubmitRequest();
- }
+ // See if we're already submitted a request (e.g. via GetResponse).
+ if (SetRequestSubmitted())
+ {
+ // Not completed write stream, this is an application error.
+ throw new InvalidOperationException(SR.GetString(SR.net_reqsubmitted));
+ }
- asyncResult.FinishPostingAsyncOp();
- }
+ // If there's already been a _ReadAResult completed, it better have been with an exception, like an abort.
+ // We need to check within this lock. Before the lock, _WriteAResult didn't exist so won't have been notified.
+ // BeginSubmitRequest() will fail silently if we go ahead and call it after an abort. Since we know this is the
+ // first call to any of the [Begin]GetRe... methods by the above checks, we know ProcessResponse can't have been
+ // called or any other valid _ReadAResult created yet.
+ if (_ReadAResult != null)
+ {
+ GlobalLog.Assert(_ReadAResult.InternalPeekCompleted, "HttpWebRequest#{0}::BeginGetRequestStream()|Incomplete _ReadAResult present on request.", ValidationHelper.HashString(this));
+ GlobalLog.Assert(_ReadAResult.Result is Exception, "HttpWebRequest#{0}::BeginGetRequestStream()|_ReadAResult with successful completion already present on request.", ValidationHelper.HashString(this));
+ throw (Exception)_ReadAResult.Result;
+ }
- GlobalLog.Leave("HttpWebRequest#" + ValidationHelper.HashString(this) + "::BeginGetRequestStream", ValidationHelper.HashString(asyncResult));
- if(Logging.On)Logging.Exit(Logging.Web, this, "BeginGetRequestStream", asyncResult);
+ // get async going
+ _WriteAResult = asyncResult;
+ Async = true;
+ }
- string suri;
- if (FrameworkEventSource.Log.IsEnabled(EventLevel.Verbose, FrameworkEventSource.Keywords.NetClient))
- suri = this.RequestUri.ToString();
- else
- suri = this.RequestUri.OriginalString;
- if (FrameworkEventSource.Log.IsEnabled()) LogBeginGetRequestStream(suri);
+ // OK, we haven't submitted the request yet, so do so now
+ // save off verb from origin Verb
+ GlobalLog.Print("HttpWebRequest#" + ValidationHelper.HashString(this) + "::BeginGetRequestStream() resetting CurrentMethod to " + _OriginVerb);
+ CurrentMethod = _OriginVerb;
+ BeginSubmitRequest();
+ }
- return asyncResult;
+ asyncResult.FinishPostingAsyncOp();
+ }
+
+ GlobalLog.Leave("HttpWebRequest#" + ValidationHelper.HashString(this) + "::BeginGetRequestStream", ValidationHelper.HashString(asyncResult));
+ if (Logging.On) Logging.Exit(Logging.Web, this, "BeginGetRequestStream", asyncResult);
+ success = true;
+ return asyncResult;
+ }
+ finally {
+ if (FrameworkEventSource.Log.IsEnabled())
+ {
+ LogBeginGetRequestStream(success, synchronous : false);
+ }
+ }
#if DEBUG
}
#endif
@@ -1429,49 +1431,55 @@ namespace System.Net {
/// </devdoc>
public Stream EndGetRequestStream(IAsyncResult asyncResult, out TransportContext context)
{
+ bool success = false;
+ try {
#if DEBUG
- using (GlobalLog.SetThreadKind(ThreadKinds.User)) {
+ using (GlobalLog.SetThreadKind(ThreadKinds.User)) {
#endif
- GlobalLog.Enter("HttpWebRequest#" + ValidationHelper.HashString(this) + "::EndGetRequestStream", ValidationHelper.HashString(asyncResult));
- if(Logging.On)Logging.Enter(Logging.Web, this, "EndGetRequestStream", "");
-
- context = null;
-
- //
- // parameter validation
- //
- if (asyncResult == null) {
- throw new ArgumentNullException("asyncResult");
- }
- LazyAsyncResult castedAsyncResult = asyncResult as LazyAsyncResult;
- if (castedAsyncResult==null || castedAsyncResult.AsyncObject!=this) {
- throw new ArgumentException(SR.GetString(SR.net_io_invalidasyncresult), "asyncResult");
- }
- if (castedAsyncResult.EndCalled) {
- throw new InvalidOperationException(SR.GetString(SR.net_io_invalidendcall, "EndGetRequestStream"));
- }
+ GlobalLog.Enter("HttpWebRequest#" + ValidationHelper.HashString(this) + "::EndGetRequestStream", ValidationHelper.HashString(asyncResult));
+ if (Logging.On) Logging.Enter(Logging.Web, this, "EndGetRequestStream", "");
- ConnectStream connectStream = castedAsyncResult.InternalWaitForCompletion() as ConnectStream;
- castedAsyncResult.EndCalled = true;
+ context = null;
- if (connectStream == null)
- {
- if (Logging.On) Logging.Exception(Logging.Web, this, "EndGetRequestStream", castedAsyncResult.Result as Exception);
- throw (Exception) castedAsyncResult.Result;
- }
+ //
+ // parameter validation
+ //
+ if (asyncResult == null) {
+ throw new ArgumentNullException("asyncResult");
+ }
+ LazyAsyncResult castedAsyncResult = asyncResult as LazyAsyncResult;
+ if (castedAsyncResult == null || castedAsyncResult.AsyncObject != this) {
+ throw new ArgumentException(SR.GetString(SR.net_io_invalidasyncresult), "asyncResult");
+ }
+ if (castedAsyncResult.EndCalled) {
+ throw new InvalidOperationException(SR.GetString(SR.net_io_invalidendcall, "EndGetRequestStream"));
+ }
- context = new ConnectStreamContext(connectStream);
+ ConnectStream connectStream = castedAsyncResult.InternalWaitForCompletion() as ConnectStream;
+ castedAsyncResult.EndCalled = true;
- // Otherwise it worked, so return the HttpWebResponse.
- GlobalLog.Leave("HttpWebRequest#" + ValidationHelper.HashString(this) + "::EndGetRequestStream", ValidationHelper.HashString(connectStream));
- if(Logging.On)Logging.Exit(Logging.Web, this, "EndGetRequestStream", connectStream);
+ if (connectStream == null)
+ {
+ if (Logging.On) Logging.Exception(Logging.Web, this, "EndGetRequestStream", castedAsyncResult.Result as Exception);
+ throw (Exception)castedAsyncResult.Result;
+ }
- if (FrameworkEventSource.Log.IsEnabled()) LogEndGetRequestStream();
+ context = new ConnectStreamContext(connectStream);
- return connectStream;
+ // Otherwise it worked, so return the HttpWebResponse.
+ GlobalLog.Leave("HttpWebRequest#" + ValidationHelper.HashString(this) + "::EndGetRequestStream", ValidationHelper.HashString(connectStream));
+ if (Logging.On) Logging.Exit(Logging.Web, this, "EndGetRequestStream", connectStream);
+ success = true;
+ return connectStream;
#if DEBUG
- }
+ }
#endif
+ }
+ finally {
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogEndGetRequestStream(success, synchronous : false);
+ }
+ }
}
public override Stream GetRequestStream() {
@@ -1489,93 +1497,108 @@ namespace System.Net {
///</para>
/// </devdoc>
public Stream GetRequestStream(out TransportContext context) {
+ bool success = false;
+ try {
+ // this needs to be in the begining in order to correctly log begin request in case of ProtocolViolationException
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogBeginGetRequestStream(success : true, synchronous : true);
+ }
+
#if DEBUG
- using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.Sync)) {
+ using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.Sync)) {
#endif
- GlobalLog.Enter("HttpWebRequest#" + ValidationHelper.HashString(this) + "::GetRequestStream");
- if(Logging.On)Logging.Enter(Logging.Web, this, "GetRequestStream", "");
+ GlobalLog.Enter("HttpWebRequest#" + ValidationHelper.HashString(this) + "::GetRequestStream");
+ if (Logging.On) Logging.Enter(Logging.Web, this, "GetRequestStream", "");
- context = null;
+ context = null;
- CheckProtocol(true);
+ CheckProtocol(true);
- // See if we're already submitted a request and have a result cached.
- if (_WriteAResult == null || !_WriteAResult.InternalPeekCompleted)
- {
- lock(this)
- {
- if (_WriteAResult != null)
+ // See if we're already submitted a request and have a result cached.
+ if (_WriteAResult == null || !_WriteAResult.InternalPeekCompleted)
{
- throw new InvalidOperationException(SR.GetString(SR.net_repcall));
- }
+ lock (this)
+ {
+ if (_WriteAResult != null)
+ {
+ throw new InvalidOperationException(SR.GetString(SR.net_repcall));
+ }
- // See if we're already submitted a request (e.g. via GetResponse).
- if (SetRequestSubmitted())
- {
- // Not completed write stream, this is an application error.
- throw new InvalidOperationException(SR.GetString(SR.net_reqsubmitted));
- }
+ // See if we're already submitted a request (e.g. via GetResponse).
+ if (SetRequestSubmitted())
+ {
+ // Not completed write stream, this is an application error.
+ throw new InvalidOperationException(SR.GetString(SR.net_reqsubmitted));
+ }
- // If there's already been a _ReadAResult completed, it better have been with an exception, like an abort.
- // We need to check within this lock. Before the lock, _WriteAResult didn't exist so won't have been notified.
- // BeginSubmitRequest() will fail silently if we go ahead and call it after an abort. Since we know this is the
- // first call to any of the [Begin]GetRe... methods by the above checks, we know ProcessResponse can't have been
- // called or any other valid _ReadAResult created yet.
- if (_ReadAResult != null)
- {
- GlobalLog.Assert(_ReadAResult.InternalPeekCompleted, "HttpWebRequest#{0}::GetRequestStream()|Incomplete _ReadAResult present on request.", ValidationHelper.HashString(this));
- GlobalLog.Assert(_ReadAResult.Result is Exception, "HttpWebRequest#{0}::GetRequestStream()|_ReadAResult with successful completion already present on request.", ValidationHelper.HashString(this));
- throw (Exception) _ReadAResult.Result;
- }
+ // If there's already been a _ReadAResult completed, it better have been with an exception, like an abort.
+ // We need to check within this lock. Before the lock, _WriteAResult didn't exist so won't have been notified.
+ // BeginSubmitRequest() will fail silently if we go ahead and call it after an abort. Since we know this is the
+ // first call to any of the [Begin]GetRe... methods by the above checks, we know ProcessResponse can't have been
+ // called or any other valid _ReadAResult created yet.
+ if (_ReadAResult != null)
+ {
+ GlobalLog.Assert(_ReadAResult.InternalPeekCompleted, "HttpWebRequest#{0}::GetRequestStream()|Incomplete _ReadAResult present on request.", ValidationHelper.HashString(this));
+ GlobalLog.Assert(_ReadAResult.Result is Exception, "HttpWebRequest#{0}::GetRequestStream()|_ReadAResult with successful completion already present on request.", ValidationHelper.HashString(this));
+ throw (Exception)_ReadAResult.Result;
+ }
- // use the AsyncResult to return our Stream
- _WriteAResult = new LazyAsyncResult(this, null, null);
+ // use the AsyncResult to return our Stream
+ _WriteAResult = new LazyAsyncResult(this, null, null);
- Async = false;
- }
+ Async = false;
+ }
- // OK, we haven't submitted the request yet, so do so now
- // save off verb from origin Verb
- GlobalLog.Print("HttpWebRequest#" + ValidationHelper.HashString(this) + "GetRequestStream() resetting CurrentMethod to " + _OriginVerb);
- CurrentMethod = _OriginVerb;
+ // OK, we haven't submitted the request yet, so do so now
+ // save off verb from origin Verb
+ GlobalLog.Print("HttpWebRequest#" + ValidationHelper.HashString(this) + "GetRequestStream() resetting CurrentMethod to " + _OriginVerb);
+ CurrentMethod = _OriginVerb;
- // Submit the Request, causes us to queue ourselves to a Connection and may block
- // It has happened that [....] path uses this loop the Retry memeber for handling resubmissions.
- while (m_Retry && !_WriteAResult.InternalPeekCompleted) {
- _OldSubmitWriteStream = null;
- _SubmitWriteStream = null;
- BeginSubmitRequest();
- }
+ // Submit the Request, causes us to queue ourselves to a Connection and may block
+ // It has happened that Sync path uses this loop the Retry memeber for handling resubmissions.
+ while (m_Retry && !_WriteAResult.InternalPeekCompleted) {
+ _OldSubmitWriteStream = null;
+ _SubmitWriteStream = null;
+ BeginSubmitRequest();
+ }
- while(Aborted && !_WriteAResult.InternalPeekCompleted)
- {
- // spin untill the _CoreResponse is set
- if (!(_CoreResponse is Exception))
- Thread.SpinWait(1);
- else
- CheckWriteSideResponseProcessing();
- }
- }
+ while (Aborted && !_WriteAResult.InternalPeekCompleted)
+ {
+ // spin untill the _CoreResponse is set
+ if (!(_CoreResponse is Exception))
+ Thread.SpinWait(1);
+ else
+ CheckWriteSideResponseProcessing();
+ }
+ }
- ConnectStream connectStream = _WriteAResult.InternalWaitForCompletion() as ConnectStream;
- _WriteAResult.EndCalled = true;
- if (connectStream == null)
- {
- if (Logging.On) Logging.Exception(Logging.Web, this, "EndGetRequestStream", _WriteAResult.Result as Exception);
- throw (Exception) _WriteAResult.Result;
- }
+ ConnectStream connectStream = _WriteAResult.InternalWaitForCompletion() as ConnectStream;
+ _WriteAResult.EndCalled = true;
+ success = true;
- context = new ConnectStreamContext(connectStream);
+ if (connectStream == null)
+ {
+ if (Logging.On) Logging.Exception(Logging.Web, this, "EndGetRequestStream", _WriteAResult.Result as Exception);
+ throw (Exception)_WriteAResult.Result;
+ }
+
+ context = new ConnectStreamContext(connectStream);
+
+ if (Logging.On) Logging.Exit(Logging.Web, this, "GetRequestStream", connectStream);
+ GlobalLog.Leave("HttpWebRequest#" + ValidationHelper.HashString(this) + "::GetRequestStream", ValidationHelper.HashString(connectStream));
- if(Logging.On)Logging.Exit(Logging.Web, this, "GetRequestStream", connectStream);
- GlobalLog.Leave("HttpWebRequest#" + ValidationHelper.HashString(this) + "::GetRequestStream", ValidationHelper.HashString(connectStream));
- return connectStream;
+ return connectStream;
#if DEBUG
- }
+ }
#endif
+ }
+ finally {
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogEndGetRequestStream(success, synchronous : true);
+ }
+ }
}
-
//
// This read-only propery does a test against the object to verify that
// we're not sending data with a GET or HEAD, these are dissallowed by the HTTP spec.
@@ -1802,7 +1825,7 @@ namespace System.Net {
{
GlobalLog.Print("HttpWebRequest#" + ValidationHelper.HashString(this) + "::DoSubmitRequestProcessing() resubmiting this request.");
- // Here is a little hack for [....] looping through BeginSubmitRequest.
+ // Here is a little hack for sync looping through BeginSubmitRequest.
// We want to unlock cache protocol only if this is NOT a retry.
if (CacheProtocol != null && _HttpResponse != null)
CacheProtocol.Reset();
@@ -1833,7 +1856,7 @@ namespace System.Net {
SubmitRequest(servicePoint);
}
else {
- // under [....] conditions, we let GetResponse() loop calling BeginSubmitRequest() until we're done
+ // under sync conditions, we let GetResponse() loop calling BeginSubmitRequest() until we're done
m_Retry = true;
}
result = HttpProcessingResult.WriteWait;
@@ -1861,133 +1884,134 @@ namespace System.Net {
#if DEBUG
using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.Async)) {
#endif
- GlobalLog.Enter("HttpWebRequest#" + ValidationHelper.HashString(this) + "::BeginGetResponse");
- if(Logging.On)Logging.Enter(Logging.Web, this, "BeginGetResponse", "");
-
- // No need to recheck the request parameters if we already did it in BeginGetRequestStream().
- // This prevents problems when redirects change verbs.
- if (!RequestSubmitted)
- {
- CheckProtocol(false);
- }
-
- ConnectStream stream = _OldSubmitWriteStream != null ? _OldSubmitWriteStream : _SubmitWriteStream;
-
- // Close the request stream if the user forgot to do so. Throw an exception if user has not written all of
- // the promised data.
- if (stream != null && !stream.IsClosed)
- {
- if (stream.BytesLeftToWrite > 0)
- {
- throw new ProtocolViolationException(SR.GetString(SR.net_entire_body_not_written));
- }
- else
- {
- stream.Close();
- }
- }
- else if (stream == null && HasEntityBody)
- {
- throw new ProtocolViolationException(SR.GetString(SR.net_must_provide_request_body));
- }
-
-#if !FEATURE_PAL
- ContextAwareResult asyncResult = new ContextAwareResult(IdentityRequired, true, this, state, callback);
-#else // FEATURE_PAL
- ContextAwareResult asyncResult = new ContextAwareResult(false, true, this, state, callback);
-#endif
-
- if (!RequestSubmitted && NclUtilities.IsThreadPoolLow())
- {
- // prevent new requests when low on resources
- Exception exception = new InvalidOperationException(SR.GetString(SR.net_needmorethreads));
- Abort(exception, AbortState.Public);
- throw exception;
- }
-
- // Need to lock the context until it's created (if necessary) in Returning().
- lock (asyncResult.StartPostingAsyncOp())
- {
- bool gotResponse = false;
- bool requestSubmitted;
- lock (this)
- {
- requestSubmitted = SetRequestSubmitted();
+ bool success = false;
+ try {
+ GlobalLog.Enter("HttpWebRequest#" + ValidationHelper.HashString(this) + "::BeginGetResponse");
+ if (Logging.On) Logging.Enter(Logging.Web, this, "BeginGetResponse", "");
- if (HaveResponse)
+ // No need to recheck the request parameters if we already did it in BeginGetRequestStream().
+ // This prevents problems when redirects change verbs.
+ if (!RequestSubmitted)
{
- gotResponse = true;
+ CheckProtocol(false);
}
- else
+
+ ConnectStream stream = _OldSubmitWriteStream != null ? _OldSubmitWriteStream : _SubmitWriteStream;
+
+ // Close the request stream if the user forgot to do so. Throw an exception if user has not written all of
+ // the promised data.
+ if (stream != null && !stream.IsClosed)
{
- if (_ReadAResult != null)
+ if (stream.BytesLeftToWrite > 0)
{
- throw new InvalidOperationException(SR.GetString(SR.net_repcall));
+ throw new ProtocolViolationException(SR.GetString(SR.net_entire_body_not_written));
+ }
+ else
+ {
+ stream.Close();
}
-
- _ReadAResult = asyncResult;
- Async = true;
}
- }
-
- // Must check this after setting _ReadAResult, which holds the context which may be used for permission checks etc.
- // See if we need to do the call-done processing here.
- CheckDeferredCallDone(stream);
-
- if (gotResponse)
- {
- if (Logging.On) Logging.Exit(Logging.Web, this, "BeginGetResponse", _ReadAResult.Result);
- GlobalLog.Leave("HttpWebRequest#" + ValidationHelper.HashString(this) + "::BeginGetResponse", "Already Completed, response = " + ValidationHelper.HashString(_ReadAResult.Result));
- Exception e = _ReadAResult.Result as Exception;
- if (e != null)
+ else if (stream == null && HasEntityBody)
{
- throw e;
+ throw new ProtocolViolationException(SR.GetString(SR.net_must_provide_request_body));
}
- try
- {
- asyncResult.InvokeCallback(_ReadAResult.Result);
- }
- catch (Exception exception)
+ #if !FEATURE_PAL
+ ContextAwareResult asyncResult = new ContextAwareResult(IdentityRequired, true, this, state, callback);
+ #else // FEATURE_PAL
+ ContextAwareResult asyncResult = new ContextAwareResult(false, true, this, state, callback);
+ #endif
+
+ if (!RequestSubmitted && NclUtilities.IsThreadPoolLow())
{
+ // prevent new requests when low on resources
+ Exception exception = new InvalidOperationException(SR.GetString(SR.net_needmorethreads));
Abort(exception, AbortState.Public);
- throw;
+ throw exception;
}
- }
- else
- {
- // If we're here it's because we don't have the response yet. We may have
- // already submitted the request, but if not do so now.
- if (!requestSubmitted)
+
+ // Need to lock the context until it's created (if necessary) in Returning().
+ lock (asyncResult.StartPostingAsyncOp())
{
- // Save Off verb, and use it to make the request
- GlobalLog.Print("HttpWebRequest#" + ValidationHelper.HashString(this) + ": resetting CurrentMethod to " + _OriginVerb);
- CurrentMethod = _OriginVerb;
- }
+ bool gotResponse = false;
+ bool requestSubmitted;
+ lock (this)
+ {
+ requestSubmitted = SetRequestSubmitted();
- // If we're here it's because we don't have the response yet. We may have
- // already submitted the request, but if not do so now.
- if (_RerequestCount > 0 || !requestSubmitted) {
- while (m_Retry) {
- // Keep looping in case there are redirects, auth re-requests, etc
- BeginSubmitRequest();
+ if (HaveResponse)
+ {
+ gotResponse = true;
+ }
+ else
+ {
+ if (_ReadAResult != null)
+ {
+ throw new InvalidOperationException(SR.GetString(SR.net_repcall));
+ }
+
+ _ReadAResult = asyncResult;
+ Async = true;
+ }
}
- }
- }
- asyncResult.FinishPostingAsyncOp();
- }
- GlobalLog.Leave("HttpWebRequest#" + ValidationHelper.HashString(this) + "::BeginGetResponse", ValidationHelper.HashString(asyncResult));
- if(Logging.On)Logging.Exit(Logging.Web, this, "BeginGetResponse", asyncResult);
+ // Must check this after setting _ReadAResult, which holds the context which may be used for permission checks etc.
+ // See if we need to do the call-done processing here.
+ CheckDeferredCallDone(stream);
- string suri;
- if (FrameworkEventSource.Log.IsEnabled(EventLevel.Verbose, FrameworkEventSource.Keywords.NetClient))
- suri = this.RequestUri.ToString();
- else
- suri = this.RequestUri.OriginalString;
- if (FrameworkEventSource.Log.IsEnabled()) LogBeginGetResponse(suri);
+ if (gotResponse)
+ {
+ if (Logging.On) Logging.Exit(Logging.Web, this, "BeginGetResponse", _ReadAResult.Result);
+ GlobalLog.Leave("HttpWebRequest#" + ValidationHelper.HashString(this) + "::BeginGetResponse", "Already Completed, response = " + ValidationHelper.HashString(_ReadAResult.Result));
+ Exception e = _ReadAResult.Result as Exception;
+ if (e != null)
+ {
+ throw e;
+ }
+
+ try
+ {
+ asyncResult.InvokeCallback(_ReadAResult.Result);
+ }
+ catch (Exception exception)
+ {
+ Abort(exception, AbortState.Public);
+ throw;
+ }
+ }
+ else
+ {
+ // If we're here it's because we don't have the response yet. We may have
+ // already submitted the request, but if not do so now.
+ if (!requestSubmitted)
+ {
+ // Save Off verb, and use it to make the request
+ GlobalLog.Print("HttpWebRequest#" + ValidationHelper.HashString(this) + ": resetting CurrentMethod to " + _OriginVerb);
+ CurrentMethod = _OriginVerb;
+ }
+
+ // If we're here it's because we don't have the response yet. We may have
+ // already submitted the request, but if not do so now.
+ if (_RerequestCount > 0 || !requestSubmitted) {
+ while (m_Retry) {
+ // Keep looping in case there are redirects, auth re-requests, etc
+ BeginSubmitRequest();
+ }
+ }
+ }
+ asyncResult.FinishPostingAsyncOp();
+ }
- return asyncResult;
+ GlobalLog.Leave("HttpWebRequest#" + ValidationHelper.HashString(this) + "::BeginGetResponse", ValidationHelper.HashString(asyncResult));
+ if (Logging.On) Logging.Exit(Logging.Web, this, "BeginGetResponse", asyncResult);
+ success = true;
+ return asyncResult;
+ }
+ finally {
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogBeginGetResponse(success, synchronous : false);
+ }
+ }
#if DEBUG
}
#endif
@@ -1997,46 +2021,62 @@ namespace System.Net {
/// <para>Retreives the Response Result from an HTTP Result after an Async operation has completed</para>
/// </devdoc>
public override WebResponse EndGetResponse(IAsyncResult asyncResult) {
+ bool success = false;
+ int statusCode = -1;
+
+ try {
#if DEBUG
- using (GlobalLog.SetThreadKind(ThreadKinds.User)) {
+ using (GlobalLog.SetThreadKind(ThreadKinds.User)) {
#endif
- GlobalLog.Enter("HttpWebRequest#" + ValidationHelper.HashString(this) + "::EndGetResponse", ValidationHelper.HashString(asyncResult));
- if(Logging.On)Logging.Enter(Logging.Web, this, "EndGetResponse", "");
+ GlobalLog.Enter("HttpWebRequest#" + ValidationHelper.HashString(this) + "::EndGetResponse", ValidationHelper.HashString(asyncResult));
+ if (Logging.On) Logging.Enter(Logging.Web, this, "EndGetResponse", "");
- //
- // parameter validation
- //
- if (asyncResult==null) {
- throw new ArgumentNullException("asyncResult");
- }
+ //
+ // parameter validation
+ //
+ if (asyncResult == null) {
+ throw new ArgumentNullException("asyncResult");
+ }
- LazyAsyncResult castedAsyncResult = asyncResult as LazyAsyncResult;
- if (castedAsyncResult==null || castedAsyncResult.AsyncObject!=this) {
- throw new ArgumentException(SR.GetString(SR.net_io_invalidasyncresult), "asyncResult");
- }
- if (castedAsyncResult.EndCalled) {
- throw new InvalidOperationException(SR.GetString(SR.net_io_invalidendcall, "EndGetResponse"));
+ LazyAsyncResult castedAsyncResult = asyncResult as LazyAsyncResult;
+ if (castedAsyncResult == null || castedAsyncResult.AsyncObject != this) {
+ throw new ArgumentException(SR.GetString(SR.net_io_invalidasyncresult), "asyncResult");
+ }
+ if (castedAsyncResult.EndCalled) {
+ throw new InvalidOperationException(SR.GetString(SR.net_io_invalidendcall, "EndGetResponse"));
+ }
+ HttpWebResponse httpWebResponse = castedAsyncResult.InternalWaitForCompletion() as HttpWebResponse;
+ castedAsyncResult.EndCalled = true;
+
+ if (httpWebResponse == null)
+ {
+ if (Logging.On) Logging.Exception(Logging.Web, this, "EndGetResponse", castedAsyncResult.Result as Exception);
+ NetworkingPerfCounters.Instance.Increment(NetworkingPerfCounterName.HttpWebRequestFailed);
+ throw (Exception) castedAsyncResult.Result;
+ }
+ GlobalLog.Assert(httpWebResponse.ResponseStream != null, "HttpWebRequest#{0}::EndGetResponse()|httpWebResponse.ResponseStream == null", ValidationHelper.HashString(this));
+ // Otherwise it worked, so return the HttpWebResponse.
+ GlobalLog.Leave("HttpWebRequest#" + ValidationHelper.HashString(this) + "::EndGetResponse", ValidationHelper.HashString(httpWebResponse));
+ if(Logging.On)Logging.Exit(Logging.Web, this, "EndGetResponse", httpWebResponse);
+ InitLifetimeTracking(httpWebResponse);
+
+ statusCode = GetStatusCode(httpWebResponse);
+ success = true;
+ return httpWebResponse;
+#if DEBUG
+ }
+#endif
}
- HttpWebResponse httpWebResponse = castedAsyncResult.InternalWaitForCompletion() as HttpWebResponse;
- castedAsyncResult.EndCalled = true;
- if (httpWebResponse == null)
- {
- if (Logging.On) Logging.Exception(Logging.Web, this, "EndGetResponse", castedAsyncResult.Result as Exception);
- NetworkingPerfCounters.Instance.Increment(NetworkingPerfCounterName.HttpWebRequestFailed);
- throw (Exception) castedAsyncResult.Result;
+ catch (WebException we) {
+ HttpWebResponse httpWebResponse = we.Response as HttpWebResponse;
+ statusCode = GetStatusCode(httpWebResponse);
+ throw;
}
- GlobalLog.Assert(httpWebResponse.ResponseStream != null, "HttpWebRequest#{0}::EndGetResponse()|httpWebResponse.ResponseStream == null", ValidationHelper.HashString(this));
- // Otherwise it worked, so return the HttpWebResponse.
- GlobalLog.Leave("HttpWebRequest#" + ValidationHelper.HashString(this) + "::EndGetResponse", ValidationHelper.HashString(httpWebResponse));
- if(Logging.On)Logging.Exit(Logging.Web, this, "EndGetResponse", httpWebResponse);
- InitLifetimeTracking(httpWebResponse);
-
- if (FrameworkEventSource.Log.IsEnabled()) LogEndGetResponse();
-
- return httpWebResponse;
-#if DEBUG
+ finally {
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogEndGetResponse(success, synchronous : false, statusCode : statusCode);
+ }
}
-#endif
}
private void CheckDeferredCallDone(ConnectStream stream)
@@ -2076,142 +2116,162 @@ namespace System.Net {
/// </para>
/// </devdoc>
public override WebResponse GetResponse() {
+ bool success = false;
+ int statusCode = -1;
+ try {
#if DEBUG
- using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.Sync)) {
+ using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.Sync)) {
#endif
- GlobalLog.Enter("HttpWebRequest#" + ValidationHelper.HashString(this) + "::GetResponse");
- if(Logging.On)Logging.Enter(Logging.Web, this, "GetResponse", "");
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogBeginGetResponse(success : true, synchronous : true);
+ }
- // No need to recheck the request parameters if we already did it in GetRequestStream().
- // This prevents problems when redirects change verbs.
- if (!RequestSubmitted)
- {
- CheckProtocol(false);
- }
+ GlobalLog.Enter("HttpWebRequest#" + ValidationHelper.HashString(this) + "::GetResponse");
+ if (Logging.On) Logging.Enter(Logging.Web, this, "GetResponse", "");
- // Many of these logics require GetResponse() to be called after all write-stream activity is done. You can't call it
- // simultaneously on another thread and expect it to block until it can run. Doing that can cause the request to
- // hang.
+ // No need to recheck the request parameters if we already did it in GetRequestStream().
+ // This prevents problems when redirects change verbs.
+ if (!RequestSubmitted)
+ {
+ CheckProtocol(false);
+ }
- ConnectStream stream = _OldSubmitWriteStream != null ? _OldSubmitWriteStream : _SubmitWriteStream;
+ // Many of these logics require GetResponse() to be called after all write-stream activity is done. You can't call it
+ // simultaneously on another thread and expect it to block until it can run. Doing that can cause the request to
+ // hang.
- // Close the request stream if the user forgot to do so. Throw an exception if user has not written all of
- // the promised data.
- if (stream != null && !stream.IsClosed)
- {
- if (stream.BytesLeftToWrite > 0)
- {
- throw new ProtocolViolationException(SR.GetString(SR.net_entire_body_not_written));
- }
- else
- {
- stream.Close();
- }
- }
- else if (stream == null && HasEntityBody)
- {
- throw new ProtocolViolationException(SR.GetString(SR.net_must_provide_request_body));
- }
+ ConnectStream stream = _OldSubmitWriteStream != null ? _OldSubmitWriteStream : _SubmitWriteStream;
- // return response, if the response is already set
- bool gotResponse = false;
- HttpWebResponse httpWebResponse = null;
- bool requestSubmitted;
- lock (this)
- {
- requestSubmitted = SetRequestSubmitted();
- if (HaveResponse)
- {
- gotResponse = true;
- httpWebResponse = _ReadAResult.Result as HttpWebResponse;
- }
- else
- {
- if (_ReadAResult != null)
+ // Close the request stream if the user forgot to do so. Throw an exception if user has not written all of
+ // the promised data.
+ if (stream != null && !stream.IsClosed)
{
- throw new InvalidOperationException(SR.GetString(SR.net_repcall));
+ if (stream.BytesLeftToWrite > 0)
+ {
+ throw new ProtocolViolationException(SR.GetString(SR.net_entire_body_not_written));
+ }
+ else
+ {
+ stream.Close();
+ }
+ }
+ else if (stream == null && HasEntityBody)
+ {
+ throw new ProtocolViolationException(SR.GetString(SR.net_must_provide_request_body));
}
- Async = false;
-
- // Since we don't really allow switching between [....] and async, if the request is already async, this needs to
- // capture context for use in the ongoing async operations as if it were BeginGetResponse().
- if (Async)
+ // return response, if the response is already set
+ bool gotResponse = false;
+ HttpWebResponse httpWebResponse = null;
+ bool requestSubmitted;
+ lock (this)
{
+ requestSubmitted = SetRequestSubmitted();
+ if (HaveResponse)
+ {
+ gotResponse = true;
+ httpWebResponse = _ReadAResult.Result as HttpWebResponse;
+ }
+ else
+ {
+ if (_ReadAResult != null)
+ {
+ throw new InvalidOperationException(SR.GetString(SR.net_repcall));
+ }
+
+ Async = false;
+
+ // Since we don't really allow switching between sync and async, if the request is already async, this needs to
+ // capture context for use in the ongoing async operations as if it were BeginGetResponse().
+ if (Async)
+ {
#if !FEATURE_PAL
- ContextAwareResult readResult = new ContextAwareResult(IdentityRequired, true, this, null, null);
+ ContextAwareResult readResult = new ContextAwareResult(IdentityRequired, true, this, null, null);
#else
- ContextAwareResult readResult = new ContextAwareResult(false, true, this, null, null);
+ ContextAwareResult readResult = new ContextAwareResult(false, true, this, null, null);
#endif
- readResult.StartPostingAsyncOp(false);
- readResult.FinishPostingAsyncOp();
- _ReadAResult = readResult;
- }
- else
- {
- _ReadAResult = new LazyAsyncResult(this, null, null);
+ readResult.StartPostingAsyncOp(false);
+ readResult.FinishPostingAsyncOp();
+ _ReadAResult = readResult;
+ }
+ else
+ {
+ _ReadAResult = new LazyAsyncResult(this, null, null);
+ }
+ }
}
- }
- }
- // See if we need to do the call-done processing here.
- CheckDeferredCallDone(stream);
+ // See if we need to do the call-done processing here.
+ CheckDeferredCallDone(stream);
- if (!gotResponse)
- {
- //The previous call may have been async. If we are now doing a [....] call, we should
- //use the timeout
- if (_Timer == null){
- _Timer = TimerQueue.CreateTimer(s_TimeoutCallback, this);
- }
+ if (!gotResponse)
+ {
+ //The previous call may have been async. If we are now doing a sync call, we should
+ //use the timeout
+ if (_Timer == null) {
+ _Timer = TimerQueue.CreateTimer(s_TimeoutCallback, this);
+ }
- // Save Off verb, and use it to make the request
- if (!requestSubmitted) {
- GlobalLog.Print("HttpWebRequest#" + ValidationHelper.HashString(this) + ": resetting CurrentMethod to " + _OriginVerb);
- CurrentMethod = _OriginVerb;
- }
+ // Save Off verb, and use it to make the request
+ if (!requestSubmitted) {
+ GlobalLog.Print("HttpWebRequest#" + ValidationHelper.HashString(this) + ": resetting CurrentMethod to " + _OriginVerb);
+ CurrentMethod = _OriginVerb;
+ }
- // If we're here it's because we don't have the response yet. We may have
- // already submitted the request, but if not do so now.
- while (m_Retry) {
- // Keep looping in case there are redirects, auth re-requests, etc
- BeginSubmitRequest();
- }
+ // If we're here it's because we don't have the response yet. We may have
+ // already submitted the request, but if not do so now.
+ while (m_Retry) {
+ // Keep looping in case there are redirects, auth re-requests, etc
+ BeginSubmitRequest();
+ }
- while(!Async && Aborted && !_ReadAResult.InternalPeekCompleted)
- {
- // spin untill the _CoreResponse is set
- if (!(_CoreResponse is Exception))
- Thread.SpinWait(1);
- else
- CheckWriteSideResponseProcessing();
- }
+ while (!Async && Aborted && !_ReadAResult.InternalPeekCompleted)
+ {
+ // spin untill the _CoreResponse is set
+ if (!(_CoreResponse is Exception))
+ Thread.SpinWait(1);
+ else
+ CheckWriteSideResponseProcessing();
+ }
- httpWebResponse = _ReadAResult.InternalWaitForCompletion() as HttpWebResponse;
- _ReadAResult.EndCalled = true;
- }
+ httpWebResponse = _ReadAResult.InternalWaitForCompletion() as HttpWebResponse;
+ _ReadAResult.EndCalled = true;
+ }
- if (httpWebResponse == null)
- {
- if (Logging.On) Logging.Exception(Logging.Web, this, "GetResponse", _ReadAResult.Result as Exception);
- NetworkingPerfCounters.Instance.Increment(NetworkingPerfCounterName.HttpWebRequestFailed);
- throw (Exception) _ReadAResult.Result;
- }
+ if (httpWebResponse == null)
+ {
+ if (Logging.On) Logging.Exception(Logging.Web, this, "GetResponse", _ReadAResult.Result as Exception);
+ NetworkingPerfCounters.Instance.Increment(NetworkingPerfCounterName.HttpWebRequestFailed);
+ throw (Exception) _ReadAResult.Result;
+ }
- GlobalLog.Assert(httpWebResponse.ResponseStream != null, "HttpWebRequest#{0}::GetResponse()|httpWebResponse.ResponseStream == null", ValidationHelper.HashString(this));
- if(Logging.On)Logging.Exit(Logging.Web, this, "GetResponse", httpWebResponse);
- GlobalLog.Leave("HttpWebRequest#" + ValidationHelper.HashString(this) + "::GetResponse", ValidationHelper.HashString(httpWebResponse));
+ GlobalLog.Assert(httpWebResponse.ResponseStream != null, "HttpWebRequest#{0}::GetResponse()|httpWebResponse.ResponseStream == null", ValidationHelper.HashString(this));
+ if(Logging.On)Logging.Exit(Logging.Web, this, "GetResponse", httpWebResponse);
+ GlobalLog.Leave("HttpWebRequest#" + ValidationHelper.HashString(this) + "::GetResponse", ValidationHelper.HashString(httpWebResponse));
- if (!gotResponse)
- {
- InitLifetimeTracking(httpWebResponse);
- }
+ if (!gotResponse)
+ {
+ InitLifetimeTracking(httpWebResponse);
+ }
- return httpWebResponse;
+ statusCode = GetStatusCode(httpWebResponse);
+ success = true;
+ return httpWebResponse;
#if DEBUG
- }
+ }
#endif
+ }
+ catch (WebException we) {
+ HttpWebResponse httpWebResponse = we.Response as HttpWebResponse;
+ statusCode = GetStatusCode(httpWebResponse);
+ throw;
+ }
+ finally {
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogEndGetResponse(success, synchronous : true, statusCode : statusCode);
+ }
+ }
}
private void InitLifetimeTracking(HttpWebResponse httpWebResponse)
@@ -3309,7 +3369,7 @@ namespace System.Net {
//
// This line is needed ONLY if we got a connect failure (Abort can still happen at random time)
// CallDone will check for the write side response processing and this is what we want.
- // Note that [....] case already has a separate path to check for the response
+ // Note that Sync case already has a separate path to check for the response
//
if (Async && _CoreResponse != null && (object)_CoreResponse != (object)DBNull.Value)
{
@@ -3429,7 +3489,7 @@ namespace System.Net {
//
internal void CheckWriteSideResponseProcessing()
{
- // In [....] case never close the write side window
+ // In Sync case never close the write side window
// Definitions of _CoreResponse:
// - DBNull.Value - Uploading headers/body is in progress, but we haven't yet received a response.
@@ -3535,7 +3595,7 @@ namespace System.Net {
{
GlobalLog.Print("HttpWebRequest#" + ValidationHelper.HashString(this) + "::SetAndOrProcessResponse() - Write Thread will procees the response.");
//
- // Note for a [....] request a write side window is always open
+ // Note for a sync request a write side window is always open
//
if (!Async)
{
@@ -3931,7 +3991,7 @@ namespace System.Net {
}
}
- // Return null only on [....] (if we're on the [....] thread). Otherwise throw if no context is available.
+ // Return null only on Sync (if we're on the Sync thread). Otherwise throw if no context is available.
internal override ContextAwareResult GetConnectingContext()
{
if (!Async)
@@ -3954,7 +4014,7 @@ namespace System.Net {
return context;
}
- // Return null only on [....] (if we're on the [....] thread). Otherwise throw if no context is available.
+ // Return null only on Sync (if we're on the Sync thread). Otherwise throw if no context is available.
internal override ContextAwareResult GetWritingContext()
{
if (!Async)
@@ -3979,7 +4039,7 @@ namespace System.Net {
return context;
}
- // Return null only on [....] (if we're on the [....] thread). Otherwise throw if no context is available.
+ // Return null only on Sync (if we're on the Sync thread). Otherwise throw if no context is available.
internal override ContextAwareResult GetReadingContext()
{
if (!Async)
@@ -5965,12 +6025,12 @@ namespace System.Net {
// The second NTLM request is required to use the same connection, don't close it
if (ntlmFollowupRequest) {
- // We only want CallDone to do a [....] read now if 100Continue won't later
+ // We only want CallDone to do a sync read now if 100Continue won't later
NeedsToReadForResponse = !ShouldWaitFor100Continue();
_SubmitWriteStream.CallDone();
}
else if (!AllowWriteStreamBuffering) {
- // We only want CloseInternal to do a [....] read now if 100Continue won't later
+ // We only want CloseInternal to do a sync read now if 100Continue won't later
NeedsToReadForResponse = !ShouldWaitFor100Continue();
_SubmitWriteStream.CloseInternal(true);
}
@@ -6034,7 +6094,7 @@ namespace System.Net {
// Never throws
//
private Stream MakeMemoryStream(Stream stream) {
- // GlobalLog.ThreadContract(ThreadKinds.[....], "HttpWebRequest#" + ValidationHelper.HashString(this) + "::MakeMemoryStream");
+ // GlobalLog.ThreadContract(ThreadKinds.Sync, "HttpWebRequest#" + ValidationHelper.HashString(this) + "::MakeMemoryStream");
if (stream == null || stream is SyncMemoryStream)
return stream;
@@ -6205,6 +6265,24 @@ namespace System.Net {
}
}
+ private static int GetStatusCode(HttpWebResponse httpWebResponse)
+ {
+ int result = -1;
+
+ // we are calculating statusCode only when FrameworkEventSource logging is enabled.
+ if (FrameworkEventSource.Log.IsEnabled() && httpWebResponse != null) {
+ try {
+ result = (int)httpWebResponse.StatusCode;
+ }
+ catch (ObjectDisposedException) {
+ // ObjectDisposedException is expected here in the following sequence: httpWebRequest.GetResponse().Dispose() -> httpWebRequest.GetResponse()
+ // on the second call to GetResponse() we cannot determine the statusCode.
+ }
+ }
+
+ return result;
+ }
+
#if HTTP_HEADER_EXTENSIONS_SUPPORTED
/// <devdoc>
diff --git a/mcs/class/referencesource/System/net/System/Net/HttpWebResponse.cs b/mcs/class/referencesource/System/net/System/Net/HttpWebResponse.cs
index b0690e86348..ed107f8d481 100644
--- a/mcs/class/referencesource/System/net/System/Net/HttpWebResponse.cs
+++ b/mcs/class/referencesource/System/net/System/Net/HttpWebResponse.cs
@@ -335,19 +335,19 @@ namespace System.Net {
internal bool KeepAlive {
get {
//
- // QFE - DevDiv bug: 37757
- // If there is proxy involved, independen of the Http Version, we should honor the
- // proxy indicated Proxy-Connection header value.
- // This header value is not RFC mandated, but is a legacy from Netscape documentations.
- // It indicates that the proxy wants to keep the connection.
- // Functionally it is equivalent of a Keep-Alive AND/OR Connection header.
- //
- // The absence of this check will result in HTTP/1.0 responsen be considered to be not
- // Keeping the connection alive.
- //
- // This will result in a state mismatch between the connection pool and HttpWebRequest object
- // when the decision to drain the connection and putting it back to the idle pool is made.
- //
+ // QFE - DevDiv
+
+
+
+
+
+
+
+
+
+
+
+
if (m_UsesProxySemantics)
{
string proxyConnectionHeader = Headers[HttpKnownHeaderNames.ProxyConnection];
diff --git a/mcs/class/referencesource/System/net/System/Net/IPAddress.cs b/mcs/class/referencesource/System/net/System/Net/IPAddress.cs
index 0449d4948f5..e6b2f8e0371 100644
--- a/mcs/class/referencesource/System/net/System/Net/IPAddress.cs
+++ b/mcs/class/referencesource/System/net/System/Net/IPAddress.cs
@@ -741,8 +741,11 @@ namespace System.Net {
return this;
}
- long address = (((m_Numbers[6] & 0x0000FF00) >> 8) | ((m_Numbers[6] & 0x000000FF) << 8)) |
- ((((m_Numbers[7] & 0x0000FF00) >> 8) | ((m_Numbers[7] & 0x000000FF) << 8)) << 16);
+ // Cast the ushort values to a uint and mask with unsigned literal before bit shifting.
+ // Otherwise, we can end up getting a negative value for any IPv4 address that ends with
+ // a byte higher than 127 due to sign extension of the most significant 1 bit.
+ long address = ((((uint)m_Numbers[6] & 0x0000FF00u) >> 8) | (((uint)m_Numbers[6] & 0x000000FFu) << 8)) |
+ (((((uint)m_Numbers[7] & 0x0000FF00u) >> 8) | (((uint)m_Numbers[7] & 0x000000FFu) << 8)) << 16);
return new IPAddress(address);
}
diff --git a/mcs/class/referencesource/System/net/System/Net/Internal.cs b/mcs/class/referencesource/System/net/System/Net/Internal.cs
index 19948efa34e..5f6be11a617 100644
--- a/mcs/class/referencesource/System/net/System/Net/Internal.cs
+++ b/mcs/class/referencesource/System/net/System/Net/Internal.cs
@@ -426,7 +426,7 @@ namespace System.Net {
}
//
- // A simple [....] point, useful for deferring work. Just an int value with helper methods.
+ // A simple sync point, useful for deferring work. Just an int value with helper methods.
// This is used by HttpWebRequest to syncronize Reads/Writes while waiting for a 100-Continue response.
//
internal struct InterlockedGate
diff --git a/mcs/class/referencesource/System/net/System/Net/NetRegistryConfiguration.cs b/mcs/class/referencesource/System/net/System/Net/NetRegistryConfiguration.cs
new file mode 100644
index 00000000000..89e1d9b8eae
--- /dev/null
+++ b/mcs/class/referencesource/System/net/System/Net/NetRegistryConfiguration.cs
@@ -0,0 +1,197 @@
+//------------------------------------------------------------------------------
+// <copyright file="NetRegistryConfiguration.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+//------------------------------------------------------------------------------
+
+namespace System.Net
+{
+ using Microsoft.Win32;
+ using System.ComponentModel;
+ using System.Diagnostics;
+ using System.Globalization;
+ using System.IO;
+ using System.Security;
+ using System.Security.Permissions;
+
+ /// <summary>
+ /// Reads configuration from registry.
+ ///
+ /// Settings convention:
+ /// * Global (all apps): HKLM\SOFTWARE\Microsoft\.NETFramework\vdotNetVersion
+ /// configName REG_DWORD | REG_SZ value
+ ///
+ /// * App specific: HKLM\SOFTWARE\Microsoft\.NETFramework\vdotNetVersion\configName
+ /// fullAppExePath REG_DWORD | REG_SZ value
+ /// </summary>
+ internal static class RegistryConfiguration
+ {
+ private const string netFrameworkPath = @"SOFTWARE\Microsoft\.NETFramework";
+ private const string netFrameworkVersionedPath = netFrameworkPath + @"\v{0}";
+ private const string netFrameworkFullPath = @"HKEY_LOCAL_MACHINE\" + netFrameworkPath;
+
+ /// <summary>
+ /// Reads global configuration (REG_DWORD) from registry.
+ /// </summary>
+ /// <param name="configVariable">Configuration variable</param>
+ /// <param name="defaultValue">Default value</param>
+ /// <returns>The value within registry if it exists and is accessible; else the defaultValue.</returns>
+ [RegistryPermission(SecurityAction.Assert, Read = netFrameworkFullPath)]
+ public static int GlobalConfigReadInt(string configVariable, int defaultValue)
+ {
+ object value = ReadConfig(GetNetFrameworkVersionedPath(), configVariable, RegistryValueKind.DWord);
+ if (value != null)
+ {
+ return (int)value;
+ }
+
+ return defaultValue;
+ }
+
+ /// <summary>
+ /// Reads global configuration (REG_SZ) from registry.
+ /// </summary>
+ /// <param name="configVariable">Configuration variable</param>
+ /// <param name="defaultValue">Default value</param>
+ /// <returns>The value within registry if it exists and is accessible; else the defaultValue.</returns>
+ [RegistryPermission(SecurityAction.Assert, Read = netFrameworkFullPath)]
+ public static string GlobalConfigReadString(string configVariable, string defaultValue)
+ {
+ object value = ReadConfig(GetNetFrameworkVersionedPath(), configVariable, RegistryValueKind.String);
+ if (value != null)
+ {
+ return (string)value;
+ }
+
+ return defaultValue;
+ }
+
+ /// <summary>
+ /// Reads app-specific configuration (REG_DWORD) from registry.
+ /// </summary>
+ /// <param name="configVariable">Configuration variable</param>
+ /// <param name="defaultValue">Default value</param>
+ /// <returns>
+ /// The value within registry if it exists for this application and is accessible; else the defaultValue.
+ /// </returns>
+ [RegistryPermission(SecurityAction.Assert, Read = netFrameworkFullPath)]
+ public static int AppConfigReadInt(string configVariable, int defaultValue)
+ {
+ object value = ReadConfig(GetAppConfigPath(configVariable), GetAppConfigValueName(), RegistryValueKind.DWord);
+ if (value != null)
+ {
+ return (int)value;
+ }
+
+ return defaultValue;
+ }
+
+ /// <summary>
+ /// Reads app-specific configuration (REG_SZ) from registry.
+ /// </summary>
+ /// <param name="configVariable">Configuration variable</param>
+ /// <param name="defaultValue">Default value</param>
+ /// <returns>
+ /// The value within registry if it exists for this application and is accessible; else the defaultValue.
+ /// </returns>
+ [RegistryPermission(SecurityAction.Assert, Read = netFrameworkFullPath)]
+ public static string AppConfigReadString(string configVariable, string defaultValue)
+ {
+ object value = ReadConfig(GetAppConfigPath(configVariable), GetAppConfigValueName(), RegistryValueKind.String);
+ if (value != null)
+ {
+ return (string)value;
+ }
+
+ return defaultValue;
+ }
+
+ private static object ReadConfig(string path, string valueName, RegistryValueKind kind)
+ {
+ object ret = null;
+
+ Debug.Assert(!String.IsNullOrEmpty(path), "Registry path should not be null.");
+ Debug.Assert(!String.IsNullOrEmpty(valueName), "valueName should not be null.");
+
+ try
+ {
+ // We read reflected keys on WOW64.
+ using (RegistryKey key = Registry.LocalMachine.OpenSubKey(path))
+ {
+ if (key == null)
+ {
+ return ret;
+ }
+
+ try
+ {
+ object value = key.GetValue(valueName, null);
+
+ if ((value != null) && (key.GetValueKind(valueName) == kind))
+ {
+ ret = value;
+ }
+ }
+ catch (UnauthorizedAccessException) { }
+ catch (IOException) { }
+ }
+ }
+ catch (SecurityException) { }
+ catch (ObjectDisposedException) { }
+
+ return ret;
+ }
+
+ private static string GetNetFrameworkVersionedPath()
+ {
+ string versionedKeyPath = String.Format(
+ CultureInfo.InvariantCulture,
+ netFrameworkVersionedPath,
+ Environment.Version.ToString(3));
+
+ Debug.Assert(!String.IsNullOrEmpty(versionedKeyPath), ".Net Version should not be null.");
+
+ return versionedKeyPath;
+ }
+
+ private static string GetAppConfigPath(string valueName)
+ {
+ Debug.Assert(!String.IsNullOrEmpty(valueName), "valueName should not be null.");
+ return String.Format(CultureInfo.InvariantCulture, @"{0}\{1}", GetNetFrameworkVersionedPath(), valueName);
+ }
+
+ [SecurityPermission(SecurityAction.Assert, UnmanagedCode = true)]
+ private static string GetAppConfigValueName()
+ {
+ string appExePath = "Unknown";
+
+ Process currentProcess = Process.GetCurrentProcess();
+ Debug.Assert(currentProcess != null);
+
+ try
+ {
+ ProcessModule module = currentProcess.MainModule;
+ // File-name can be truncated.
+ appExePath = module.FileName;
+ }
+ catch (NotSupportedException) { }
+ catch (Win32Exception) { }
+ catch (InvalidOperationException) { }
+
+ Debug.Assert(appExePath != null);
+
+ // Get the full path in cases where the process was started using 8.3 named folders.
+ // GetCurrentProcess will return the long exe name regardless of how it was started.
+ try
+ {
+ appExePath = Path.GetFullPath(appExePath);
+ }
+ catch (ArgumentException) { }
+ catch (SecurityException) { }
+ catch (NotSupportedException) { }
+ catch (PathTooLongException) { }
+
+ return appExePath;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System/net/System/Net/SecureProtocols/NegotiateStream.cs b/mcs/class/referencesource/System/net/System/Net/SecureProtocols/NegotiateStream.cs
index 4cd3b383374..511cae21a80 100644
--- a/mcs/class/referencesource/System/net/System/Net/SecureProtocols/NegotiateStream.cs
+++ b/mcs/class/referencesource/System/net/System/Net/SecureProtocols/NegotiateStream.cs
@@ -93,7 +93,7 @@ using System.Security.Principal;
TokenImpersonationLevel allowedImpersonationLevel)
{
#if DEBUG
- using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.[....])) {
+ using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.Sync)) {
#endif
_NegoState.ValidateCreateContext(_Package, false, credential, targetName, binding, requiredProtectionLevel, allowedImpersonationLevel);
_NegoState.ProcessAuthentication(null);
@@ -199,7 +199,7 @@ using System.Security.Principal;
TokenImpersonationLevel requiredImpersonationLevel)
{
#if DEBUG
- using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.[....])) {
+ using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.Sync)) {
#endif
_NegoState.ValidateCreateContext(_Package, credential, string.Empty, policy, requiredProtectionLevel, requiredImpersonationLevel);
@@ -503,7 +503,7 @@ using System.Security.Principal;
// Should this not block?
public override void Flush() {
#if DEBUG
- using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.[....])) {
+ using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.Sync)) {
#endif
InnerStream.Flush();
#if DEBUG
@@ -531,7 +531,7 @@ using System.Security.Principal;
public override int Read(byte[] buffer, int offset, int count)
{
#if DEBUG
- using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.[....])) {
+ using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.Sync)) {
#endif
_NegoState.CheckThrow(true);
@@ -548,7 +548,7 @@ using System.Security.Principal;
public override void Write(byte[] buffer, int offset, int count)
{
#if DEBUG
- using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.[....])) {
+ using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.Sync)) {
#endif
_NegoState.CheckThrow(true);
diff --git a/mcs/class/referencesource/System/net/System/Net/SecureProtocols/_FixedSizeReader.cs b/mcs/class/referencesource/System/net/System/Net/SecureProtocols/_FixedSizeReader.cs
index db9d6aff13d..2d676f9fa12 100644
--- a/mcs/class/referencesource/System/net/System/Net/SecureProtocols/_FixedSizeReader.cs
+++ b/mcs/class/referencesource/System/net/System/Net/SecureProtocols/_FixedSizeReader.cs
@@ -8,7 +8,7 @@ Module Name:
Abstract:
The class is a simple wrapper on top of a read stream.
It will read the exact number of bytes requested.
- It operates either [....] or async.
+ It operates either sync or async.
Author:
@@ -76,7 +76,7 @@ namespace System.Net {
StartReading();
}
//
- // Loops while subsequest completions are [....]
+ // Loops while subsequest completions are sync
//
private void StartReading()
{
diff --git a/mcs/class/referencesource/System/net/System/Net/SecureProtocols/_NegoStream.cs b/mcs/class/referencesource/System/net/System/Net/SecureProtocols/_NegoStream.cs
index b8e698f07ed..91311238e9e 100644
--- a/mcs/class/referencesource/System/net/System/Net/SecureProtocols/_NegoStream.cs
+++ b/mcs/class/referencesource/System/net/System/Net/SecureProtocols/_NegoStream.cs
@@ -117,7 +117,7 @@ namespace System.Net.Security {
throw new ArgumentOutOfRangeException("count", SR.GetString(SR.net_offset_plus_count));
}
//
- // Combined [....]/async write method. For [....] requet asyncRequest==null
+ // Combined sync/async write method. For sync requet asyncRequest==null
//
private void ProcessWrite(byte[] buffer, int offset, int count, AsyncProtocolRequest asyncRequest)
{
@@ -198,9 +198,9 @@ namespace System.Net.Security {
}
}
//
- // Combined [....]/async read method. For [....] requet asyncRequest==null
- // There is a little overheader because we need to pass buffer/offset/count used only in [....].
- // Still the benefit is that we have a common [....]/async code path.
+ // Combined sync/async read method. For sync requet asyncRequest==null
+ // There is a little overheader because we need to pass buffer/offset/count used only in sync.
+ // Still the benefit is that we have a common sync/async code path.
//
private int ProcessRead(byte[] buffer, int offset, int count, AsyncProtocolRequest asyncRequest)
{
@@ -240,7 +240,7 @@ namespace System.Net.Security {
}
finally
{
- // if [....] request or exception
+ // if sync request or exception
if (asyncRequest == null || failed)
{
_NestedRead = 0;
@@ -330,7 +330,7 @@ namespace System.Net.Security {
}
readBytes = asyncRequest.Result;
}
- else //[....]
+ else //Sync
{
readBytes = _FrameReader.ReadPacket(InternalBuffer, 0, readBytes);
}
diff --git a/mcs/class/referencesource/System/net/System/Net/SecureProtocols/_SslState.cs b/mcs/class/referencesource/System/net/System/Net/SecureProtocols/_SslState.cs
index 61c65dbfbfd..d0ea55a6f1b 100644
--- a/mcs/class/referencesource/System/net/System/Net/SecureProtocols/_SslState.cs
+++ b/mcs/class/referencesource/System/net/System/Net/SecureProtocols/_SslState.cs
@@ -149,7 +149,7 @@ namespace System.Net.Security {
//
// We don;t support SSL alerts right now, hence any exception is fatal and cannot be retried
- // Consider: make use if SSL alerts to re-[....] SslStream on both sides for retrying.
+ // Consider: make use if SSL alerts to re-sync SslStream on both sides for retrying.
//
if (_Exception != null && !_CanRetryAuthentication) {
throw _Exception;
@@ -644,7 +644,7 @@ namespace System.Net.Security {
// Async handshake is enqueued and will resume later
return;
}
- // Either [....] handshake is ready to go or async handshake won the ---- over write.
+ // Either Sync handshake is ready to go or async handshake won the ---- over write.
// This will tell that we don't know the framing yet (what SSL version is)
_Framing = Framing.None;
@@ -1311,7 +1311,7 @@ namespace System.Net.Security {
_QueuedWriteStateRequest = null;
if (obj is LazyAsyncResult)
{
- // [....] handshake is waiting on other thread.
+ // sync handshake is waiting on other thread.
((LazyAsyncResult)obj).InvokeCallback();
}
else
@@ -1387,7 +1387,7 @@ namespace System.Net.Security {
if (obj is LazyAsyncResult)
{
- // [....] write is waiting on other thread.
+ // sync write is waiting on other thread.
((LazyAsyncResult)obj).InvokeCallback();
}
else
diff --git a/mcs/class/referencesource/System/net/System/Net/SecureProtocols/_SslStream.cs b/mcs/class/referencesource/System/net/System/Net/SecureProtocols/_SslStream.cs
index 4ac07c5d5c0..3fd8a2dd180 100644
--- a/mcs/class/referencesource/System/net/System/Net/SecureProtocols/_SslStream.cs
+++ b/mcs/class/referencesource/System/net/System/Net/SecureProtocols/_SslStream.cs
@@ -315,7 +315,7 @@ namespace System.Net.Security {
throw new ArgumentOutOfRangeException("count", SR.GetString(SR.net_offset_plus_count));
}
//
- // Combined [....]/async write method. For [....] case asyncRequest==null
+ // Combined sync/async write method. For sync case asyncRequest==null
//
private void ProcessWrite(BufferOffsetSize[] buffers, SplitWriteAsyncProtocolRequest asyncRequest)
{
@@ -357,7 +357,7 @@ namespace System.Net.Security {
}
}
//
- // Combined [....]/async write method. For [....] case asyncRequest==null
+ // Combined sync/async write method. For sync case asyncRequest==null
//
private void ProcessWrite(byte[] buffer, int offset, int count, AsyncProtocolRequest asyncRequest)
{
@@ -634,9 +634,9 @@ namespace System.Net.Security {
}
//
- // Combined [....]/async read method. For [....] requet asyncRequest==null
- // There is a little overheader because we need to pass buffer/offset/count used only in [....].
- // Still the benefit is that we have a common [....]/async code path.
+ // Combined sync/async read method. For sync requet asyncRequest==null
+ // There is a little overheader because we need to pass buffer/offset/count used only in sync.
+ // Still the benefit is that we have a common sync/async code path.
//
private int ProcessRead(byte[] buffer, int offset, int count, AsyncProtocolRequest asyncRequest)
{
@@ -678,7 +678,7 @@ namespace System.Net.Security {
}
finally
{
- // if [....] request or exception
+ // if sync request or exception
if (asyncRequest == null || failed)
{
_NestedRead = 0;
@@ -793,7 +793,7 @@ namespace System.Net.Security {
}
readBytes = asyncRequest.Result;
}
- else //[....]
+ else //Sync
{
readBytes = _Reader.ReadPacket(InternalBuffer, SecureChannel.ReadHeaderSize, readBytes);
}
diff --git a/mcs/class/referencesource/System/net/System/Net/ServicePoint.cs b/mcs/class/referencesource/System/net/System/Net/ServicePoint.cs
index 6683a0f18e4..89f94e57088 100644
--- a/mcs/class/referencesource/System/net/System/Net/ServicePoint.cs
+++ b/mcs/class/referencesource/System/net/System/Net/ServicePoint.cs
@@ -251,7 +251,7 @@ namespace System.Net {
abortSocket6 = socket6;
//
- // Setup socket timeouts for [....] requests
+ // Setup socket timeouts for sync requests
//
//
@@ -1224,8 +1224,8 @@ namespace System.Net {
private void BindUsingDelegate(Socket socket, IPEndPoint remoteIPEndPoint)
{
IPEndPoint clonedRemoteIPEndPoint = new IPEndPoint(remoteIPEndPoint.Address, remoteIPEndPoint.Port);
-
int retryCount;
+
for (retryCount=0; retryCount<int.MaxValue; retryCount++) {
IPEndPoint localIPEndPoint = BindIPEndPointDelegate(this, clonedRemoteIPEndPoint, retryCount);
if (localIPEndPoint == null)
@@ -1243,6 +1243,52 @@ namespace System.Net {
throw new OverflowException("Reached maximum number of BindIPEndPointDelegate retries");
}
+
+ /// <summary>
+ /// <para>Set SocketOptionName.ReuseUnicastPort (SO_REUSE_UNICASTPORT) socket option on the outbound connection.</para>
+ /// </summary>
+ private void SetUnicastReusePortForSocket(Socket socket)
+ {
+ bool reusePort;
+
+ if (ServicePointManager.ReusePortSupported.HasValue && !ServicePointManager.ReusePortSupported.Value) {
+ // We tried to set the socket option before and it isn't supported on this system. So, we'll save some
+ // time by not trying again.
+ reusePort = false;
+ }
+ else {
+ reusePort = ServicePointManager.ReusePort;
+ }
+
+ if (reusePort) {
+ // This socket option is defined in Windows 10.0 or later. It is also
+ // available if an LDR servicing patch has been installed on downlevel OS.
+ try {
+ socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseUnicastPort, 0x1);
+ if (Logging.On) {
+ Logging.PrintInfo(Logging.Web, this, SR.GetString(SR.net_log_set_socketoption_reuseport,
+ "Socket", socket.GetHashCode()));
+ }
+
+ ServicePointManager.ReusePortSupported = true;
+ }
+ catch (SocketException) {
+ // The socket option is not supported. We will ignore this error and fail gracefully.
+ if (Logging.On) {
+ Logging.PrintInfo(Logging.Web, this, SR.GetString(SR.net_log_set_socketoption_reuseport_not_supported,
+ "Socket", socket.GetHashCode()));
+ }
+ ServicePointManager.ReusePortSupported = false;
+ }
+ catch (Exception ex) {
+ // We want to preserve app compat and trap any other unusual exceptions.
+ if (Logging.On) {
+ Logging.PrintInfo(Logging.Web, this, SR.GetString(SR.net_log_unexpected_exception, ex.Message));
+ }
+ }
+ }
+ }
+
/// <summary>
/// <para>This is the real logic for doing the Connect with IPv4 and IPv6 addresses, see ConnectSocket for details</para>
/// </summary>
@@ -1327,8 +1373,14 @@ namespace System.Net {
state.unsuccessfulAttempts = unsuccessfulAttempts;
state.connectFailure = connectFailure;
- if (BindIPEndPointDelegate != null && !attemptSocket.IsBound) {
- BindUsingDelegate(attemptSocket, remoteIPEndPoint);
+ if (!attemptSocket.IsBound) {
+ if (ServicePointManager.ReusePort) {
+ SetUnicastReusePortForSocket(attemptSocket);
+ }
+
+ if (BindIPEndPointDelegate != null) {
+ BindUsingDelegate(attemptSocket, remoteIPEndPoint);
+ }
}
attemptSocket.UnsafeBeginConnect(remoteIPEndPoint, m_ConnectCallbackDelegate, state);
@@ -1336,8 +1388,14 @@ namespace System.Net {
}
}
else {
- if (BindIPEndPointDelegate != null && !attemptSocket.IsBound) {
- BindUsingDelegate(attemptSocket, remoteIPEndPoint);
+ if (!attemptSocket.IsBound) {
+ if (ServicePointManager.ReusePort) {
+ SetUnicastReusePortForSocket(attemptSocket);
+ }
+
+ if (BindIPEndPointDelegate != null) {
+ BindUsingDelegate(attemptSocket, remoteIPEndPoint);
+ }
}
attemptSocket.InternalConnect(remoteIPEndPoint);
diff --git a/mcs/class/referencesource/System/net/System/Net/ServicePointManager.cs b/mcs/class/referencesource/System/net/System/Net/ServicePointManager.cs
index ed1c2632337..ded74015f33 100644
--- a/mcs/class/referencesource/System/net/System/Net/ServicePointManager.cs
+++ b/mcs/class/referencesource/System/net/System/Net/ServicePointManager.cs
@@ -246,17 +246,20 @@ namespace System.Net {
private static volatile CertPolicyValidationCallback s_CertPolicyValidationCallback = new CertPolicyValidationCallback();
private static volatile ServerCertValidationCallback s_ServerCertValidationCallback = null;
- private const string strongCryptoKeyUnversioned = @"SOFTWARE\Microsoft\.NETFramework";
- private const string strongCryptoKeyVersionedPattern = strongCryptoKeyUnversioned + @"\v{0}";
- private const string strongCryptoKeyPath = @"HKEY_LOCAL_MACHINE\" + strongCryptoKeyUnversioned;
private const string strongCryptoValueName = "SchUseStrongCrypto";
- private static string secureProtocolAppSetting = "System.Net.ServicePointManager.SecurityProtocol";
+ private const string secureProtocolAppSetting = "System.Net.ServicePointManager.SecurityProtocol";
private static object disableStrongCryptoLock = new object();
private static volatile bool disableStrongCryptoInitialized = false;
private static bool disableStrongCrypto = false;
private static SecurityProtocolType s_SecurityProtocolType = SecurityProtocolType.Tls | SecurityProtocolType.Ssl3;
+
+ private const string reusePortValueName = "HWRPortReuseOnSocketBind";
+ private static object reusePortLock = new object();
+ private static volatile bool reusePortSettingsInitialized = false;
+ private static bool reusePort = false;
+ private static bool? reusePortSupported = null;
#endif // !FEATURE_PAL
private static volatile Hashtable s_ConfigTable = null;
private static volatile int s_ConnectionLimit = PersistentConnectionLimit;
@@ -641,7 +644,6 @@ namespace System.Net {
}
}
- [RegistryPermission(SecurityAction.Assert, Read = strongCryptoKeyPath)]
private static void EnsureStrongCryptoSettingsInitialized() {
if (disableStrongCryptoInitialized) {
@@ -653,54 +655,112 @@ namespace System.Net {
return;
}
- bool disableStrongCryptoInternal = true;
-
try {
- string strongCryptoKey = String.Format(CultureInfo.InvariantCulture, strongCryptoKeyVersionedPattern, Environment.Version.ToString(3));
+ bool disableStrongCryptoInternal = false;
+ int schUseStrongCryptoKeyValue = 0;
+
+ if (LocalAppContextSwitches.DontEnableSchUseStrongCrypto)
+ {
+ //.Net 4.5.2 and below will default to false unless the registry key is specifically set to 1.
+ schUseStrongCryptoKeyValue =
+ RegistryConfiguration.GlobalConfigReadInt(strongCryptoValueName, 0);
+
+ disableStrongCryptoInternal = schUseStrongCryptoKeyValue != 1;
+ }
+ else
+ {
+ // .Net 4.6 and above will default to true unless the registry key is specifically set to 0.
+ schUseStrongCryptoKeyValue =
+ RegistryConfiguration.GlobalConfigReadInt(strongCryptoValueName, 1);
+
+ disableStrongCryptoInternal = schUseStrongCryptoKeyValue == 0;
+ }
+
+ if (disableStrongCryptoInternal) {
+ // Revert the SecurityProtocol selection to the legacy combination.
+ s_SecurityProtocolType = SecurityProtocolType.Tls | SecurityProtocolType.Ssl3;
+ }
+ else {
+ s_SecurityProtocolType =
+ SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
- // We read reflected keys on WOW64.
- using (RegistryKey key = Registry.LocalMachine.OpenSubKey(strongCryptoKey)) {
+ string appSetting = RegistryConfiguration.AppConfigReadString(secureProtocolAppSetting, null);
+
+ SecurityProtocolType value;
try {
- object schUseStrongCryptoKeyValue =
- key.GetValue(strongCryptoValueName, null);
-
- // Setting the value to 1 will enable the MSRC behavior.
- // All other values are ignored.
- if ((schUseStrongCryptoKeyValue != null)
- && (key.GetValueKind(strongCryptoValueName) == RegistryValueKind.DWord)) {
- disableStrongCryptoInternal = ((int)schUseStrongCryptoKeyValue) != 1;
- }
+ value = (SecurityProtocolType)Enum.Parse(typeof(SecurityProtocolType), appSetting);
+ ValidateSecurityProtocol(value);
+ s_SecurityProtocolType = value;
}
- catch (UnauthorizedAccessException) { }
- catch (IOException) { }
+ // Ignore all potential exceptions caused by Enum.Parse.
+ catch (ArgumentNullException) { }
+ catch (ArgumentException) { }
+ catch (NotSupportedException) { }
+ catch (OverflowException) { }
+ }
+
+ disableStrongCrypto = disableStrongCryptoInternal;
+ disableStrongCryptoInitialized = true;
+ }
+ catch (Exception e) {
+ if (e is ThreadAbortException || e is StackOverflowException || e is OutOfMemoryException) {
+ throw;
}
}
- catch (SecurityException) { }
- catch (ObjectDisposedException) { }
+ }
+ }
+
+ public static bool ReusePort {
+ get {
+ EnsureReusePortSettingsInitialized();
+ return reusePort;
+ }
+ set {
+ EnsureReusePortSettingsInitialized();
+ reusePort = value;
+ }
+ }
+
+ internal static bool? ReusePortSupported {
+ get {
+ return reusePortSupported;
+ }
+ set {
+ reusePortSupported = value;
+ }
+ }
+
+ private static void EnsureReusePortSettingsInitialized() {
+
+ if (reusePortSettingsInitialized) {
+ return;
+ }
+
+ lock (reusePortLock) {
+ if (reusePortSettingsInitialized) {
+ return;
+ }
- if (disableStrongCryptoInternal) {
- // Revert the SecurityProtocol selection to the legacy combination.
- s_SecurityProtocolType = SecurityProtocolType.Tls | SecurityProtocolType.Ssl3;
+ int reusePortKeyValue = 0;
+ try {
+ reusePortKeyValue = RegistryConfiguration.GlobalConfigReadInt(reusePortValueName, 0);
}
- else {
- s_SecurityProtocolType =
- SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
-
- // Attempt to read this from the AppSettings config section
- string appSetting = ConfigurationManager.AppSettings[secureProtocolAppSetting];
- SecurityProtocolType value;
- try {
- value = (SecurityProtocolType)Enum.Parse(typeof(SecurityProtocolType), appSetting);
- ValidateSecurityProtocol(value);
- s_SecurityProtocolType = value;
+ catch (Exception e) {
+ if (e is ThreadAbortException || e is StackOverflowException || e is OutOfMemoryException) {
+ throw;
+ }
+ }
+
+ bool reusePortInternal = false;
+ if (reusePortKeyValue == 1) {
+ if (Logging.On) {
+ Logging.PrintInfo(Logging.Web, typeof(ServicePointManager), SR.GetString(SR.net_log_set_socketoption_reuseport_default_on));
}
- catch (ArgumentNullException) { }
- catch (ArgumentException) { }
- catch (NotSupportedException) { }
+ reusePortInternal = true;
}
- disableStrongCrypto = disableStrongCryptoInternal;
- disableStrongCryptoInitialized = true;
+ reusePort = reusePortInternal;
+ reusePortSettingsInitialized = true;
}
}
#endif // !FEATURE_PAL
diff --git a/mcs/class/referencesource/System/net/System/Net/Sockets/Internal.cs b/mcs/class/referencesource/System/net/System/Net/Sockets/Internal.cs
index 4f25b9a0698..dca3ea568fb 100644
--- a/mcs/class/referencesource/System/net/System/Net/Sockets/Internal.cs
+++ b/mcs/class/referencesource/System/net/System/Net/Sockets/Internal.cs
@@ -42,7 +42,7 @@ namespace System.Net.Sockets {
public const int SIOGETEXTENSIONFUNCTIONPOINTER = unchecked((int)0xC8000006);
//
- // not likely to block ([....] IO ok)
+ // not likely to block (sync IO ok)
//
// FIONBIO
// FIONREAD
diff --git a/mcs/class/referencesource/System/net/System/Net/Sockets/NetworkStream.cs b/mcs/class/referencesource/System/net/System/Net/Sockets/NetworkStream.cs
index 7f46157be8c..cf21e9bfbf4 100644
--- a/mcs/class/referencesource/System/net/System/Net/Sockets/NetworkStream.cs
+++ b/mcs/class/referencesource/System/net/System/Net/Sockets/NetworkStream.cs
@@ -483,7 +483,7 @@ namespace System.Net.Sockets {
#if DEBUG
using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.Sync)) {
#endif
- bool canRead = CanRead; // Prevent race with Dispose.
+ bool canRead = CanRead; // Prevent ---- with Dispose.
if (m_CleanedUp){
throw new ObjectDisposedException(this.GetType().FullName);
}
@@ -557,7 +557,7 @@ namespace System.Net.Sockets {
#if DEBUG
using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.Sync)) {
#endif
- bool canWrite = CanWrite; // Prevent race with Dispose.
+ bool canWrite = CanWrite; // Prevent ---- with Dispose.
if (m_CleanedUp){
throw new ObjectDisposedException(this.GetType().FullName);
}
@@ -717,7 +717,7 @@ namespace System.Net.Sockets {
#if DEBUG
using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.Async)) {
#endif
- bool canRead = CanRead; // Prevent race with Dispose.
+ bool canRead = CanRead; // Prevent ---- with Dispose.
if (m_CleanedUp){
throw new ObjectDisposedException(this.GetType().FullName);
}
@@ -772,7 +772,7 @@ namespace System.Net.Sockets {
internal virtual IAsyncResult UnsafeBeginRead(byte[] buffer, int offset, int size, AsyncCallback callback, Object state)
{
- bool canRead = CanRead; // Prevent race with Dispose.
+ bool canRead = CanRead; // Prevent ---- with Dispose.
if (m_CleanedUp)
{
throw new ObjectDisposedException(GetType().FullName);
@@ -902,7 +902,7 @@ namespace System.Net.Sockets {
#if DEBUG
using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.Async)) {
#endif
- bool canWrite = CanWrite; // Prevent race with Dispose.
+ bool canWrite = CanWrite; // Prevent ---- with Dispose.
if (m_CleanedUp){
throw new ObjectDisposedException(this.GetType().FullName);
}
@@ -964,7 +964,7 @@ namespace System.Net.Sockets {
#if DEBUG
using (GlobalLog.SetThreadKind(ThreadKinds.User | ThreadKinds.Async)) {
#endif
- bool canWrite = CanWrite; // Prevent race with Dispose.
+ bool canWrite = CanWrite; // Prevent ---- with Dispose.
if (m_CleanedUp){
throw new ObjectDisposedException(this.GetType().FullName);
}
@@ -1061,7 +1061,7 @@ namespace System.Net.Sockets {
/// <devdoc>
/// <para>
- /// Performs a [....] Write of an array of buffers.
+ /// Performs a sync Write of an array of buffers.
/// </para>
/// </devdoc>
internal virtual void MultipleWrite(BufferOffsetSize[] buffers)
diff --git a/mcs/class/referencesource/System/net/System/Net/Sockets/Socket.cs b/mcs/class/referencesource/System/net/System/Net/Sockets/Socket.cs
index 0e3d1be0759..141f8f198be 100644
--- a/mcs/class/referencesource/System/net/System/Net/Sockets/Socket.cs
+++ b/mcs/class/referencesource/System/net/System/Net/Sockets/Socket.cs
@@ -64,7 +64,7 @@ namespace System.Net.Sockets {
private SocketType socketType;
private ProtocolType protocolType;
- // These caches are one degree off of Socket since they're not used in the [....] case/when disabled in config.
+ // These caches are one degree off of Socket since they're not used in the sync case/when disabled in config.
private CacheSet m_Caches;
private class CacheSet
@@ -891,11 +891,11 @@ namespace System.Net.Sockets {
// NetworkAccess.Accept permissions in Receive.
}
else {
- //<STRIP>
- // for V1 we will demand permission to run UnmanagedCode for
- // an EndPoint that is not an IPEndPoint until we figure out how these fit
- // into the whole picture of SocketPermission
- //</STRIP>
+ //<
+
+
+
+
ExceptionHelper.UnmanagedPermission.Demand();
}
@@ -2621,8 +2621,8 @@ namespace System.Net.Sockets {
//
// Negative microsecond values that weren't exactly (-1) were originally successfully
// converted to a timeval struct containing unsigned non-zero integers. This code
- // retains that behavior so that any app working around the original bug with,
- // for example, (-2) specified for microseconds, will continue to get the same behavior.
+ // retains that behavior so that any app working around the original
+
int socketCount;
@@ -2972,16 +2972,16 @@ namespace System.Net.Sockets {
}
- //<STRIP>
- // we now need to get the status of the async completion, we had an easy implementation
- // that uses GetSocketOption(), but VadimE suggested not to use this 'cause it may be
- // buggy on some platforms, so we use WSAEnumNetworkEvents() instead:
- //
- // The best way to do this is to call WSAEnumNetworkEvents and use the error code iError
- // array corresponding to FD_CONNECT. getsockopt (SO_ERROR) may return NO_ERROR under
- // stress even in case of error at least on Winnt4.0 (I don't remember whether I fixed
- // it on Win2000 or WinXP).
- //</STRIP>
+ //<
+
+
+
+
+
+
+
+
+
//
// get async completion
@@ -6408,7 +6408,7 @@ namespace System.Net.Sockets {
throw;
}
- // Keep the internal state in [....] if the user manually resets this
+ // Keep the internal state in sync if the user manually resets this
if (optionName == SocketOptionName.PacketInformation && optionValue == 0 &&
errorCode == SocketError.Success)
{
@@ -6851,9 +6851,9 @@ namespace System.Net.Sockets {
catch
{
//
- // Bug 152350: If ConnectEx throws we need to unpin the socketAddress buffer.
- // m_RightEndPoint will always equal oldEndPoint anyways...
- //
+ //
+
+
asyncResult.InternalCleanup();
m_RightEndPoint = oldEndPoint;
throw;
@@ -7634,7 +7634,7 @@ namespace System.Net.Sockets {
e.StartOperationAccept();
BindToCompletionPort();
- // Local variables for [....] completion.
+ // Local variables for sync completion.
int bytesTransferred;
SocketError socketError = SocketError.Success;
@@ -7899,7 +7899,7 @@ namespace System.Net.Sockets {
e.StartOperationReceive();
BindToCompletionPort();
- // Local vars for [....] completion of native call.
+ // Local vars for sync completion of native call.
SocketFlags flags = e.m_SocketFlags;
int bytesTransferred;
SocketError socketError;
@@ -8142,7 +8142,7 @@ namespace System.Net.Sockets {
BindToCompletionPort();
- // Local vars for [....] completion of native call.
+ // Local vars for sync completion of native call.
int bytesTransferred;
SocketError socketError;
@@ -8826,7 +8826,7 @@ namespace System.Net.Sockets {
- // Method to update internal state after [....] or async completion.
+ // Method to update internal state after sync or async completion.
internal void SetResults(SocketError socketError, int bytesTransferred, SocketFlags flags) {
m_SocketError = socketError;
m_ConnectByNameError = null;
diff --git a/mcs/class/referencesource/System/net/System/Net/Sockets/SocketErrors.cs b/mcs/class/referencesource/System/net/System/Net/Sockets/SocketErrors.cs
index eaaedf45650..172530f0b85 100644
--- a/mcs/class/referencesource/System/net/System/Net/Sockets/SocketErrors.cs
+++ b/mcs/class/referencesource/System/net/System/Net/Sockets/SocketErrors.cs
@@ -333,7 +333,7 @@ namespace System.Net.Sockets {
// WSAEREMOTE = (10000+71),
/// <devdoc>
/// <para>
- /// G----ful shutdown in progress.
+ /// Graceful shutdown in progress.
/// </para>
/// </devdoc>
Disconnecting = (10000+101), //WSAEDISCON
diff --git a/mcs/class/referencesource/System/net/System/Net/Sockets/SocketOptionName.cs b/mcs/class/referencesource/System/net/System/Net/Sockets/SocketOptionName.cs
index ad794068903..9f11c12bb08 100644
--- a/mcs/class/referencesource/System/net/System/Net/Sockets/SocketOptionName.cs
+++ b/mcs/class/referencesource/System/net/System/Net/Sockets/SocketOptionName.cs
@@ -136,7 +136,13 @@ namespace System.Net.Sockets {
Type = 0x1008, // get socket type
/// <devdoc>
/// <para>
- /// Maximum queue length that can be specified by <see cref='System.Net.Sockets.Socket.Listen'/>.
+ /// Get socket type.
+ /// </para>
+ /// </devdoc>
+ ReuseUnicastPort = 0x3007, // defer ephemeral port allocation for outbound connections
+ /// <devdoc>
+ /// <para>
+ /// Defer ephemeral port allocation for outbound connections.
/// </para>
/// </devdoc>
MaxConnections = 0x7fffffff, // Maximum queue length specifiable by listen.
diff --git a/mcs/class/referencesource/System/net/System/Net/Sockets/TCPClient.cs b/mcs/class/referencesource/System/net/System/Net/Sockets/TCPClient.cs
index 5e1e5ea2f97..7b1ae09121f 100644
--- a/mcs/class/referencesource/System/net/System/Net/Sockets/TCPClient.cs
+++ b/mcs/class/referencesource/System/net/System/Net/Sockets/TCPClient.cs
@@ -492,8 +492,7 @@ namespace System.Net.Sockets {
if(Logging.On)Logging.Exit(Logging.Sockets, this, "Dispose", "");
}
- /// <internalonly/>
- void IDisposable.Dispose() {
+ public void Dispose() {
Dispose(true);
}
diff --git a/mcs/class/referencesource/System/net/System/Net/Sockets/UDPClient.cs b/mcs/class/referencesource/System/net/System/Net/Sockets/UDPClient.cs
index 6d5c5c1453c..51a82e89549 100644
--- a/mcs/class/referencesource/System/net/System/Net/Sockets/UDPClient.cs
+++ b/mcs/class/referencesource/System/net/System/Net/Sockets/UDPClient.cs
@@ -283,8 +283,7 @@ namespace System.Net.Sockets {
m_CleanedUp = true;
}
- /// <internalonly/>
- void IDisposable.Dispose() {
+ public void Dispose() {
Dispose(true);
}
diff --git a/mcs/class/referencesource/System/net/System/Net/WebRequest.cs b/mcs/class/referencesource/System/net/System/Net/WebRequest.cs
index 23f6c46128f..da5d0ed5f4a 100644
--- a/mcs/class/referencesource/System/net/System/Net/WebRequest.cs
+++ b/mcs/class/referencesource/System/net/System/Net/WebRequest.cs
@@ -981,7 +981,7 @@ namespace System.Net {
// GetRequestStream() and the reading phase to GetResponse(), but if there's no request body, both phases
// may happen inside GetResponse().
//
- // Return null only on [....] (if we're on the [....] thread). Otherwise throw if no context is available.
+ // Return null only on Sync (if we're on the Sync thread). Otherwise throw if no context is available.
internal virtual ContextAwareResult GetConnectingContext()
{
throw ExceptionHelper.MethodNotImplementedException;
@@ -1177,10 +1177,11 @@ namespace System.Net {
}
}
- delegate void DelEtwFireBeginWRGet(object id, string uri);
- delegate void DelEtwFireEndWRGet(object id);
+ delegate void DelEtwFireBeginWRGet(object id, string uri, bool success, bool synchronous);
+ delegate void DelEtwFireEndWRGet(object id, bool success, bool synchronous);
+ delegate void DelEtwFireEndWRespGet(object id, bool success, bool synchronous, int statusCode);
static DelEtwFireBeginWRGet s_EtwFireBeginGetResponse;
- static DelEtwFireEndWRGet s_EtwFireEndGetResponse;
+ static DelEtwFireEndWRespGet s_EtwFireEndGetResponse;
static DelEtwFireBeginWRGet s_EtwFireBeginGetRequestStream;
static DelEtwFireEndWRGet s_EtwFireEndGetRequestStream;
static volatile bool s_TriedGetEtwDelegates;
@@ -1188,54 +1189,58 @@ namespace System.Net {
private static void InitEtwMethods()
{
Type fest = typeof(FrameworkEventSource);
- var beginParamTypes = new Type[] { typeof(object), typeof(string) };
- var endParamTypes = new Type[] { typeof(object) };
+ var beginParamTypes = new Type[] { typeof(object), typeof(string), typeof(bool), typeof(bool) };
var bindingFlags = BindingFlags.Instance|BindingFlags.NonPublic|BindingFlags.Public;
var mi1 = fest.GetMethod("BeginGetResponse", bindingFlags, null, beginParamTypes, null);
- var mi2 = fest.GetMethod("EndGetResponse", bindingFlags, null, endParamTypes, null);
+ var mi2 = fest.GetMethod("EndGetResponse", bindingFlags, null, new Type[] { typeof(object), typeof(bool), typeof(bool), typeof(int) }, null);
var mi3 = fest.GetMethod("BeginGetRequestStream", bindingFlags, null, beginParamTypes, null);
- var mi4 = fest.GetMethod("EndGetRequestStream", bindingFlags, null, endParamTypes, null);
+ var mi4 = fest.GetMethod("EndGetRequestStream", bindingFlags, null, new Type[] { typeof(object), typeof(bool), typeof(bool) }, null);
if (mi1 != null && mi2 != null && mi3 != null && mi4 != null)
{
- s_EtwFireBeginGetResponse = (DelEtwFireBeginWRGet) mi1.CreateDelegate(typeof(DelEtwFireBeginWRGet),
- FrameworkEventSource.Log);
- s_EtwFireEndGetResponse = (DelEtwFireEndWRGet) mi2.CreateDelegate(typeof(DelEtwFireEndWRGet),
- FrameworkEventSource.Log);
- s_EtwFireBeginGetRequestStream = (DelEtwFireBeginWRGet) mi3.CreateDelegate(typeof(DelEtwFireBeginWRGet),
- FrameworkEventSource.Log);
- s_EtwFireEndGetRequestStream = (DelEtwFireEndWRGet) mi4.CreateDelegate(typeof(DelEtwFireEndWRGet),
- FrameworkEventSource.Log);
+ s_EtwFireBeginGetResponse = (DelEtwFireBeginWRGet) mi1.CreateDelegate(typeof(DelEtwFireBeginWRGet), FrameworkEventSource.Log);
+ s_EtwFireEndGetResponse = (DelEtwFireEndWRespGet)mi2.CreateDelegate(typeof(DelEtwFireEndWRespGet), FrameworkEventSource.Log);
+ s_EtwFireBeginGetRequestStream = (DelEtwFireBeginWRGet) mi3.CreateDelegate(typeof(DelEtwFireBeginWRGet), FrameworkEventSource.Log);
+ s_EtwFireEndGetRequestStream = (DelEtwFireEndWRGet) mi4.CreateDelegate(typeof(DelEtwFireEndWRGet), FrameworkEventSource.Log);
}
s_TriedGetEtwDelegates = true;
}
- internal void LogBeginGetResponse(string uri)
+ internal void LogBeginGetResponse(bool success, bool synchronous)
{
+ string uri = this.RequestUri.OriginalString;
if (!s_TriedGetEtwDelegates)
InitEtwMethods();
if (s_EtwFireBeginGetResponse != null)
- s_EtwFireBeginGetResponse(this, uri);
+ {
+ s_EtwFireBeginGetResponse(this, uri, success, synchronous);
+ }
}
- internal void LogEndGetResponse()
+ internal void LogEndGetResponse(bool success, bool synchronous, int statusCode)
{
if (!s_TriedGetEtwDelegates)
InitEtwMethods();
- if (s_EtwFireEndGetResponse != null)
- s_EtwFireEndGetResponse(this);
+ if (s_EtwFireEndGetResponse != null) {
+ s_EtwFireEndGetResponse(this, success, synchronous, statusCode);
+ }
}
- internal void LogBeginGetRequestStream(string uri)
+ internal void LogBeginGetRequestStream(bool success, bool synchronous)
{
+ string uri = this.RequestUri.OriginalString;
if (!s_TriedGetEtwDelegates)
InitEtwMethods();
if (s_EtwFireBeginGetRequestStream != null)
- s_EtwFireBeginGetRequestStream(this, uri);
+ {
+ s_EtwFireBeginGetRequestStream(this, uri, success, synchronous);
+ }
}
- internal void LogEndGetRequestStream()
+ internal void LogEndGetRequestStream(bool success, bool synchronous)
{
if (!s_TriedGetEtwDelegates)
InitEtwMethods();
- if (s_EtwFireEndGetRequestStream != null)
- s_EtwFireEndGetRequestStream(this);
+ if (s_EtwFireEndGetRequestStream != null) {
+
+ s_EtwFireEndGetRequestStream(this, success, synchronous);
+ }
}
} // class WebRequest
} // namespace System.Net
diff --git a/mcs/class/referencesource/System/net/System/Net/WebSockets/ClientWebSocket.cs b/mcs/class/referencesource/System/net/System/Net/WebSockets/ClientWebSocket.cs
index c2751209574..ee107fa0246 100644
--- a/mcs/class/referencesource/System/net/System/Net/WebSockets/ClientWebSocket.cs
+++ b/mcs/class/referencesource/System/net/System/Net/WebSockets/ClientWebSocket.cs
@@ -531,7 +531,22 @@ namespace System.Net.WebSockets
this.receiveBufferSize = receiveBufferSize;
this.sendBufferSize = sendBufferSize;
- this.buffer = buffer;
+
+ // Only full-trust applications can specify their own buffer to be used as the
+ // internal buffer for the WebSocket object. This is because the contents of the
+ // buffer are used internally by the WebSocket as it marshals data with embedded
+ // pointers to native code. A malicious application could use this to corrupt
+ // native memory.
+ if (AppDomain.CurrentDomain.IsFullyTrusted)
+ {
+ this.buffer = buffer;
+ }
+ else
+ {
+ // We silently ignore the passed in buffer and will create an internal
+ // buffer later.
+ this.buffer = null;
+ }
}
internal int ReceiveBufferSize { get { return receiveBufferSize; } }
diff --git a/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketBase.cs b/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketBase.cs
index d59abe26ea1..c57a5797652 100644
--- a/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketBase.cs
+++ b/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketBase.cs
@@ -1608,12 +1608,14 @@ namespace System.Net.WebSockets
private abstract class WebSocketOperation
{
+ protected bool AsyncOperationCompleted { get; set; }
private readonly WebSocketBase m_WebSocket;
internal WebSocketOperation(WebSocketBase webSocket)
{
Contract.Assert(webSocket != null, "'webSocket' MUST NOT be NULL.");
m_WebSocket = webSocket;
+ AsyncOperationCompleted = false;
}
public WebSocketReceiveResult ReceiveResult { get; protected set; }
@@ -1646,6 +1648,7 @@ namespace System.Net.WebSockets
Contract.Assert(BufferCount >= 1 && BufferCount <= 2, "'bufferCount' MUST ONLY BE '1' or '2'.");
bool sessionHandleLockTaken = false;
+ AsyncOperationCompleted = false;
ReceiveResult = null;
try
{
@@ -1659,6 +1662,7 @@ namespace System.Net.WebSockets
WebSocketProtocolComponent.BufferType bufferType;
bool completed = false;
+
while (!completed)
{
WebSocketProtocolComponent.Buffer[] dataBuffers =
@@ -1776,6 +1780,7 @@ namespace System.Net.WebSockets
break;
case WebSocketProtocolComponent.Action.IndicateSendComplete:
WebSocketProtocolComponent.WebSocketCompleteAction(m_WebSocket, actionContext, 0);
+ AsyncOperationCompleted = true;
ReleaseLock(m_WebSocket.SessionHandle, ref sessionHandleLockTaken);
await m_WebSocket.m_InnerStream.FlushAsync().SuppressContextFlow();
Monitor.Enter(m_WebSocket.SessionHandle, ref sessionHandleLockTaken);
@@ -1803,7 +1808,22 @@ namespace System.Net.WebSockets
// - one for the framing header and one for the payload
if (dataBufferCount == 2)
{
- ArraySegment<byte> payload = m_WebSocket.m_InternalBuffer.ConvertPinnedSendPayloadFromNative(dataBuffers[1], bufferType);
+ ArraySegment<byte> payload;
+
+ // The second buffer might be from the pinned send payload buffer (1) or from the
+ // internal native buffer (2). In the case of a PONG response being generated, the buffer
+ // would be from (2). Even if the payload is from a WebSocketSend operation, the buffer
+ // might be (1) only if no buffer copies were needed (in the case of no masking, for example).
+ // Or it might be (2). So, we need to check.
+ if (m_WebSocket.m_InternalBuffer.IsPinnedSendPayloadBuffer(dataBuffers[1], bufferType))
+ {
+ payload = m_WebSocket.m_InternalBuffer.ConvertPinnedSendPayloadFromNative(dataBuffers[1], bufferType);
+ }
+ else
+ {
+ payload = m_WebSocket.m_InternalBuffer.ConvertNativeBuffer(action, dataBuffers[1], bufferType);
+ }
+
sendBuffers.Add(payload);
sendBufferSize += payload.Count;
}
@@ -1833,6 +1853,24 @@ namespace System.Net.WebSockets
throw new InvalidOperationException();
}
}
+
+ // WebSocketGetAction has returned NO_ACTION. In general, WebSocketGetAction will return
+ // NO_ACTION if there is no work item available to process at the current moment. But
+ // there could be work items on the queue still. Those work items can't be returned back
+ // until the current work item (being done by another thread) is complete.
+ //
+ // It's possible that another thread might be finishing up an async operation and needs
+ // to call WebSocketCompleteAction. Once that happens, calling WebSocketGetAction on this
+ // thread might return something else to do. This happens, for example, if the RECEIVE thread
+ // ends up having to begin sending out a PONG response (due to it receiving a PING) and the
+ // current SEND thread has posted a WebSocketSend but it can't be processed yet until the
+ // RECEIVE thread has finished sending out the PONG response.
+ //
+ // So, we need to release the lock briefly to give the other thread a chance to finish
+ // processing. We won't actually exit this outter loop and return from this async method
+ // until the caller's async operation has been fully completed.
+ ReleaseLock(m_WebSocket.SessionHandle, ref sessionHandleLockTaken);
+ Monitor.Enter(m_WebSocket.SessionHandle, ref sessionHandleLockTaken);
}
}
finally
@@ -2024,7 +2062,6 @@ namespace System.Net.WebSockets
public class SendOperation : WebSocketOperation
{
- private bool m_Completed;
protected bool m_BufferHasBeenPinned;
public SendOperation(WebSocketBase webSocket)
@@ -2059,7 +2096,6 @@ namespace System.Net.WebSockets
protected override bool ProcessAction_NoAction()
{
- m_Completed = true;
return false;
}
@@ -2080,7 +2116,6 @@ namespace System.Net.WebSockets
Contract.Assert(!m_BufferHasBeenPinned, "'m_BufferHasBeenPinned' MUST NOT be pinned at this point.");
m_WebSocket.ThrowIfDisposed();
m_WebSocket.ThrowIfPendingException();
- m_Completed = false;
Nullable<WebSocketProtocolComponent.Buffer> payloadBuffer = CreateBuffer(buffer);
if (payloadBuffer != null)
@@ -2096,7 +2131,7 @@ namespace System.Net.WebSockets
protected override bool ShouldContinue(CancellationToken cancellationToken)
{
Contract.Assert(ReceiveResult == null, "'ReceiveResult' MUST be NULL.");
- if (m_Completed)
+ if (AsyncOperationCompleted)
{
return false;
}
diff --git a/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketBuffer.cs b/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketBuffer.cs
index c1b3cdcc12a..931a9b142ee 100644
--- a/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketBuffer.cs
+++ b/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketBuffer.cs
@@ -275,7 +275,7 @@ namespace System.Net.WebSockets
}
// This method is not thread safe. It must only be called after enforcing at most 1 outstanding send operation
- private bool IsPinnedSendPayloadBuffer(WebSocketProtocolComponent.Buffer buffer,
+ internal bool IsPinnedSendPayloadBuffer(WebSocketProtocolComponent.Buffer buffer,
WebSocketProtocolComponent.BufferType bufferType)
{
if (m_SendBufferState != SendBufferState.SendPayloadSpecified)
diff --git a/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketCloseStatus.cs b/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketCloseStatus.cs
index 287a535605f..d5e7e54b014 100644
--- a/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketCloseStatus.cs
+++ b/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketCloseStatus.cs
@@ -35,4 +35,4 @@ namespace System.Net.WebSockets
// 4000 - 4999 Status codes in the range 4000-4999 MAY be used by application code. The interpretaion
// of these codes is undefined by this protocol.
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketError.cs b/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketError.cs
index e77d0de3f25..ee2b339adf4 100644
--- a/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketError.cs
+++ b/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketError.cs
@@ -19,4 +19,4 @@ namespace System.Net.WebSockets
ConnectionClosedPrematurely = 8,
InvalidState = 9
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketHttpListenerDuplexStream.cs b/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketHttpListenerDuplexStream.cs
index 869ee5ecdd1..9fd21d9ce24 100644
--- a/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketHttpListenerDuplexStream.cs
+++ b/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketHttpListenerDuplexStream.cs
@@ -203,8 +203,8 @@ namespace System.Net.WebSockets
return bytesRead;
}
- // return value indicates [....] vs async completion
- // false: [....] completion
+ // return value indicates sync vs async completion
+ // false: sync completion
// true: async completion
private unsafe bool ReadAsyncFast(HttpListenerAsyncEventArgs eventArgs)
{
@@ -480,8 +480,8 @@ namespace System.Net.WebSockets
}
}
- // return value indicates [....] vs async completion
- // false: [....] completion
+ // return value indicates sync vs async completion
+ // false: sync completion
// true: async completion
private bool WriteAsyncFast(HttpListenerAsyncEventArgs eventArgs)
{
@@ -649,7 +649,7 @@ namespace System.Net.WebSockets
}
// throw OperationCancelledException when canceled by the caller
- // otherwise ---- the exception
+ // otherwise swallow the exception
cancellationToken.ThrowIfCancellationRequested();
}
finally
@@ -1160,7 +1160,7 @@ namespace System.Net.WebSockets
}
}
- // Method to update internal state after [....] or async completion.
+ // Method to update internal state after sync or async completion.
private void SetResults(Exception exception, int bytesTransferred)
{
m_Exception = exception;
diff --git a/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketMessageType.cs b/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketMessageType.cs
index 2afe58059bb..017a0bfb748 100644
--- a/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketMessageType.cs
+++ b/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketMessageType.cs
@@ -12,4 +12,4 @@ namespace System.Net.WebSockets
Binary = 1,
Close = 2
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketState.cs b/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketState.cs
index a18ded3fd4c..fd3dc8e036f 100644
--- a/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketState.cs
+++ b/mcs/class/referencesource/System/net/System/Net/WebSockets/WebSocketState.cs
@@ -16,4 +16,4 @@ namespace System.Net.WebSockets
Closed = 5,
Aborted = 6,
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System/net/System/Net/WebUtility.cs b/mcs/class/referencesource/System/net/System/Net/WebUtility.cs
index ef3fa89934d..454ae4f3e72 100644
--- a/mcs/class/referencesource/System/net/System/Net/WebUtility.cs
+++ b/mcs/class/referencesource/System/net/System/Net/WebUtility.cs
@@ -343,7 +343,7 @@ namespace System.Net {
catch {
// DevDiv: 642025
// ASP.NET uses own ConfigurationManager which can throw in more situations than config errors (i.e. BadRequest)
- // It's ok to ---- the exception here and continue using the default value
+ // It's ok to swallow the exception here and continue using the default value
// Try to initialize again the next time
return defaultDecodeConformance;
}
@@ -382,7 +382,7 @@ namespace System.Net {
catch {
// DevDiv: 642025
// ASP.NET uses own ConfigurationManager which can throw in more situations than config errors (i.e. BadRequest)
- // It's ok to ---- the exception here and continue using the default value
+ // It's ok to swallow the exception here and continue using the default value
// Try to initialize again the next time
return defaultEncodeConformance;
}
@@ -431,8 +431,17 @@ namespace System.Net {
}
// nothing to expand?
- if (cSpaces == 0 && cUnsafe == 0)
- return bytes;
+ if (cSpaces == 0 && cUnsafe == 0) {
+ // DevDiv 912606: respect "offset" and "count"
+ if (0 == offset && bytes.Length == count) {
+ return bytes;
+ }
+ else {
+ var subarray = new byte[count];
+ Buffer.BlockCopy(bytes, offset, subarray, 0, count);
+ return subarray;
+ }
+ }
// expand not 'safe' characters into %XX, spaces to +s
byte[] expandedBytes = new byte[count + cUnsafe * 2];
diff --git a/mcs/class/referencesource/System/net/System/Net/_AuthenticationManager2.cs b/mcs/class/referencesource/System/net/System/Net/_AuthenticationManager2.cs
new file mode 100644
index 00000000000..074ca497f55
--- /dev/null
+++ b/mcs/class/referencesource/System/net/System/Net/_AuthenticationManager2.cs
@@ -0,0 +1,376 @@
+//------------------------------------------------------------------------------
+// <copyright file="_AuthenticationManager2.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+//------------------------------------------------------------------------------
+
+namespace System.Net
+{
+ using System;
+ using System.Collections;
+ using System.Collections.Concurrent;
+ using System.Collections.Generic;
+ using System.Diagnostics.CodeAnalysis;
+ using System.Globalization;
+ using System.Net.Configuration;
+ using System.Reflection;
+ using System.Security.Authentication.ExtendedProtection;
+
+ internal class AuthenticationManager2 : AuthenticationManagerBase
+ {
+ private PrefixLookup moduleBinding = null;
+ private ConcurrentDictionary<string, IAuthenticationModule> moduleList = null;
+
+ public AuthenticationManager2()
+ {
+ this.moduleBinding = new PrefixLookup();
+ InitializeModuleList();
+ }
+
+ public AuthenticationManager2(int maxPrefixLookupEntries)
+ {
+ this.moduleBinding = new PrefixLookup(maxPrefixLookupEntries);
+ InitializeModuleList();
+ }
+
+ /// <devdoc>
+ /// <para>Call each registered authentication module to determine the first module that
+ /// can respond to the authentication request.</para>
+ /// </devdoc>
+ public override Authorization Authenticate(string challenge, WebRequest request, ICredentials credentials)
+ {
+ //
+ // parameter validation
+ //
+ if (request == null)
+ {
+ throw new ArgumentNullException("request");
+ }
+
+ if (credentials == null)
+ {
+ throw new ArgumentNullException("credentials");
+ }
+
+ if (challenge == null)
+ {
+ throw new ArgumentNullException("challenge");
+ }
+
+ GlobalLog.Print("AuthenticationManager::Authenticate() challenge:[" + challenge + "]");
+
+ Authorization response = null;
+
+ HttpWebRequest httpWebRequest = request as HttpWebRequest;
+ if (httpWebRequest != null && httpWebRequest.CurrentAuthenticationState.Module != null)
+ {
+ response =
+ httpWebRequest.CurrentAuthenticationState.Module.Authenticate(challenge, request, credentials);
+ }
+ else
+ {
+ // This is the case where we would try to find the module on the first server challenge
+ foreach (IAuthenticationModule authenticationModule in this.moduleList.Values)
+ {
+ //
+ // the AuthenticationModule will
+ // 1) return a valid string on success
+ // 2) return null if it knows it cannot respond
+ // 3) throw if it could have responded but unexpectedly failed to do so
+ //
+ if (httpWebRequest != null)
+ {
+ httpWebRequest.CurrentAuthenticationState.Module = authenticationModule;
+ }
+
+ response = authenticationModule.Authenticate(challenge, request, credentials);
+
+ if (response != null)
+ {
+ //
+ // found the Authentication Module, return it
+ //
+ GlobalLog.Print("AuthenticationManager::Authenticate() found IAuthenticationModule:["
+ + authenticationModule.AuthenticationType + "]");
+ break;
+ }
+ }
+ }
+
+ return response;
+ }
+
+ /// <devdoc>
+ /// <para>Pre-authenticates a request.</para>
+ /// </devdoc>
+ public override Authorization PreAuthenticate(WebRequest request, ICredentials credentials)
+ {
+ GlobalLog.Print("AuthenticationManager::PreAuthenticate() request:"
+ + ValidationHelper.HashString(request) + " credentials:" + ValidationHelper.HashString(credentials));
+
+ if (request == null)
+ {
+ throw new ArgumentNullException("request");
+ }
+
+ if (credentials == null)
+ {
+ return null;
+ }
+
+ HttpWebRequest httpWebRequest = request as HttpWebRequest;
+ IAuthenticationModule authenticationModule;
+ if (httpWebRequest == null)
+ {
+ return null;
+ }
+
+ //
+ // PrefixLookup is thread-safe
+ //
+ string moduleName = moduleBinding.Lookup(httpWebRequest.ChallengedUri.AbsoluteUri) as string;
+ GlobalLog.Print("AuthenticationManager::PreAuthenticate() s_ModuleBinding.Lookup returns:"
+ + ValidationHelper.ToString(moduleName));
+
+ if (moduleName == null)
+ {
+ return null;
+ }
+
+ if (!this.moduleList.TryGetValue(moduleName.ToUpperInvariant(), out authenticationModule))
+ {
+ // The module could have been unregistered
+ // No preauthentication is possible
+ return null;
+ }
+
+ // prepopulate the channel binding token so we can try preauth (but only for modules that actually need it!)
+ if (httpWebRequest.ChallengedUri.Scheme == Uri.UriSchemeHttps)
+ {
+ object binding = httpWebRequest.ServicePoint.CachedChannelBinding;
+
+#if DEBUG
+ // the ModuleRequiresChannelBinding method is only compiled in DEBUG so the assert must be restricted to DEBUG
+ // as well
+
+ // If the authentication module does CBT, we require that it also caches channel bindings.
+ System.Diagnostics.Debug.Assert(!(binding == null && ModuleRequiresChannelBinding(authenticationModule)));
+#endif
+
+ // can also be DBNull.Value, indicating "we previously succeeded without getting a CBT."
+ // (ie, unpatched SSP talking to a partially-hardened server)
+ ChannelBinding channelBinding = binding as ChannelBinding;
+ if (channelBinding != null)
+ {
+ httpWebRequest.CurrentAuthenticationState.TransportContext =
+ new CachedTransportContext(channelBinding);
+ }
+ }
+
+ // Otherwise invoke the PreAuthenticate method
+ // we're guaranteed that CanPreAuthenticate is true because we check before calling BindModule()
+ Authorization authorization = authenticationModule.PreAuthenticate(request, credentials);
+
+ if (authorization != null && !authorization.Complete && httpWebRequest != null)
+ {
+ httpWebRequest.CurrentAuthenticationState.Module = authenticationModule;
+ }
+
+ GlobalLog.Print(
+ "AuthenticationManager::PreAuthenticate() IAuthenticationModule.PreAuthenticate()"
+ + " returned authorization:" + ValidationHelper.HashString(authorization));
+
+ return authorization;
+ }
+
+ /// <devdoc>
+ /// <para>Registers an authentication module with the authentication manager.</para>
+ /// </devdoc>
+ public override void Register(IAuthenticationModule authenticationModule)
+ {
+ if (authenticationModule == null)
+ {
+ throw new ArgumentNullException("authenticationModule");
+ }
+
+ GlobalLog.Print(
+ "AuthenticationManager::Register() registering :[" + authenticationModule.AuthenticationType + "]");
+
+ string normalizedAuthenticationType = authenticationModule.AuthenticationType.ToUpperInvariant();
+
+ this.moduleList.AddOrUpdate(
+ normalizedAuthenticationType,
+ authenticationModule,
+ (key, value) => authenticationModule);
+ }
+
+ /// <devdoc>
+ /// <para>Unregisters authentication modules for an authentication scheme.</para>
+ /// </devdoc>
+ public override void Unregister(IAuthenticationModule authenticationModule)
+ {
+ if (authenticationModule == null)
+ {
+ throw new ArgumentNullException("authenticationModule");
+ }
+
+ GlobalLog.Print(
+ "AuthenticationManager::Unregister() unregistering :["
+ + authenticationModule.AuthenticationType + "]");
+
+ string normalizedAuthenticationType = authenticationModule.AuthenticationType.ToUpperInvariant();
+ UnregisterInternal(normalizedAuthenticationType);
+ }
+
+ /// <devdoc>
+ /// <para>Unregisters authentication modules for an authentication scheme.</para>
+ /// </devdoc>
+ public override void Unregister(string authenticationScheme)
+ {
+ if (authenticationScheme == null)
+ {
+ throw new ArgumentNullException("authenticationScheme");
+ }
+
+ GlobalLog.Print("AuthenticationManager::Unregister() unregistering :[" + authenticationScheme + "]");
+
+ string normalizedAuthenticationType = authenticationScheme.ToUpperInvariant();
+ UnregisterInternal(normalizedAuthenticationType);
+ }
+
+ /// <devdoc>
+ /// <para>
+ /// Returns a list of registered authentication modules.
+ /// </para>
+ /// </devdoc>
+ public override IEnumerator RegisteredModules
+ {
+ get
+ {
+ return this.moduleList.Values.GetEnumerator();
+ }
+ }
+
+ /// <devdoc>
+ /// <para>
+ /// Binds an authentication response to a request for pre-authentication.
+ /// </para>
+ /// </devdoc>
+ // Create binding between an authorization response and the module
+ // generating that response
+ // This association is used for deciding which module to invoke
+ // for preauthentication purposes
+ public override void BindModule(Uri uri, Authorization response, IAuthenticationModule module)
+ {
+ GlobalLog.Assert(
+ module.CanPreAuthenticate,
+ "AuthenticationManager::BindModule()|module.CanPreAuthenticate == false");
+
+ if (response.ProtectionRealm != null)
+ {
+ // The authentication module specified which Uri prefixes
+ // will be preauthenticated
+ string[] prefix = response.ProtectionRealm;
+
+ for (int k = 0; k < prefix.Length; k++)
+ {
+ //
+ // PrefixLookup is thread-safe
+ //
+ moduleBinding.Add(prefix[k], module.AuthenticationType.ToUpperInvariant());
+ }
+ }
+ else
+ {
+ // Otherwise use the default policy for "fabricating"
+ // some protection realm generalizing the particular Uri
+ string prefix = generalize(uri);
+ //
+ // PrefixLookup is thread-safe
+ //
+ moduleBinding.Add(prefix, module.AuthenticationType);
+ }
+ }
+
+ [SuppressMessage(
+ "Microsoft.Design",
+ "CA1031",
+ Justification = "Previous behavior of AuthenticationManager is to catch all exceptions thrown by all " +
+ "IAuthenticationModule plugins.")]
+#if !TRAVE
+ [SuppressMessage(
+ "Microsoft.Performance",
+ "CA1804",
+ Justification = "Variable exception is used for logging purposes.")]
+#endif
+ private void InitializeModuleList()
+ {
+ GlobalLog.Print(
+ "AuthenticationManager::Initialize(): calling ConfigurationManager.GetSection()");
+
+ // This will never come back as null. Additionally, it will
+ // have the items the user wants available.
+ List<Type> authenticationModuleTypes =
+ AuthenticationModulesSectionInternal.GetSection().AuthenticationModules;
+
+ //
+ // Should be registered in a growing list of encryption/algorithm strengths
+ // basically, walk through a list of Types, and create new Auth objects
+ // from them.
+ //
+ // order is meaningful here:
+ // load the registered list of auth types
+ // with growing level of encryption.
+ //
+
+ this.moduleList = new ConcurrentDictionary<string, IAuthenticationModule>();
+ IAuthenticationModule moduleToRegister;
+ foreach (Type type in authenticationModuleTypes)
+ {
+ try
+ {
+ moduleToRegister = Activator.CreateInstance(type,
+ BindingFlags.CreateInstance
+ | BindingFlags.Instance
+ | BindingFlags.NonPublic
+ | BindingFlags.Public,
+ null, // Binder
+ new object[0], // no arguments
+ CultureInfo.InvariantCulture
+ ) as IAuthenticationModule;
+ if (moduleToRegister != null)
+ {
+ GlobalLog.Print(
+ "WebRequest::Initialize(): Register:" + moduleToRegister.AuthenticationType);
+
+ string normalizedAuthenticationType =
+ moduleToRegister.AuthenticationType.ToUpperInvariant();
+
+ this.moduleList.AddOrUpdate(
+ normalizedAuthenticationType,
+ moduleToRegister,
+ (key, value) => moduleToRegister);
+ }
+ }
+ catch (Exception exception)
+ {
+ //
+ // ignore failure (log exception for debugging)
+ //
+ GlobalLog.Print(
+ "AuthenticationManager::constructor failed to initialize: "
+ + exception.ToString());
+ }
+ }
+ }
+
+ private void UnregisterInternal(string normalizedAuthenticationType)
+ {
+ IAuthenticationModule removedModule;
+ if (!this.moduleList.TryRemove(normalizedAuthenticationType, out removedModule))
+ {
+ throw new InvalidOperationException(SR.GetString(SR.net_authmodulenotregistered));
+ }
+ }
+ } // class AuthenticationManager2
+} // namespace System.Net
diff --git a/mcs/class/referencesource/System/net/System/Net/_AuthenticationManagerBase.cs b/mcs/class/referencesource/System/net/System/Net/_AuthenticationManagerBase.cs
new file mode 100644
index 00000000000..7d01f96dc9f
--- /dev/null
+++ b/mcs/class/referencesource/System/net/System/Net/_AuthenticationManagerBase.cs
@@ -0,0 +1,241 @@
+//------------------------------------------------------------------------------
+// <copyright file="AuthenticationManagerBase.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+//------------------------------------------------------------------------------
+
+namespace System.Net
+{
+ using System.Collections;
+ using System.Collections.Generic;
+ using System.Collections.Specialized;
+ using System.Configuration;
+ using System.Globalization;
+ using System.Net.Configuration;
+ using System.Reflection;
+ using System.Security.Authentication.ExtendedProtection;
+ using System.Security.Permissions;
+ using System;
+ using System.Threading;
+ using System.Diagnostics;
+ using System.Diagnostics.CodeAnalysis;
+
+ internal abstract class AuthenticationManagerBase : IAuthenticationManager
+ {
+ private static volatile ICredentialPolicy s_ICredentialPolicy;
+ private static SpnDictionary m_SpnDictionary = new SpnDictionary();
+
+ private static TriState s_OSSupportsExtendedProtection = TriState.Unspecified;
+ private static TriState s_SspSupportsExtendedProtection = TriState.Unspecified;
+
+ public ICredentialPolicy CredentialPolicy
+ {
+ get
+ {
+ return s_ICredentialPolicy;
+ }
+ set
+ {
+ s_ICredentialPolicy = value;
+ }
+ }
+
+ public virtual void EnsureConfigLoaded()
+ {
+ // No-op: performed at object creation.
+ }
+
+ public StringDictionary CustomTargetNameDictionary
+ {
+ get { return m_SpnDictionary; }
+ }
+ //
+ // This will give access to some internal methods
+ //
+ public SpnDictionary SpnDictionary
+ {
+ get { return m_SpnDictionary; }
+ }
+
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "Reviewed for thread-safety.")]
+ public bool OSSupportsExtendedProtection
+ {
+
+ get
+ {
+
+ if (s_OSSupportsExtendedProtection == TriState.Unspecified)
+ {
+ if (ComNetOS.IsWin7orLater)
+ {
+ s_OSSupportsExtendedProtection = TriState.True;
+ }
+ else
+ {
+ if (SspSupportsExtendedProtection)
+ {
+ // EP is considered supported only if both SSPs and http.sys support CBT/EP.
+ // We don't support scenarios where e.g. only SSPs support CBT. In such cases
+ // the customer needs to patch also http.sys (even if he may not use it).
+ if (UnsafeNclNativeMethods.HttpApi.ExtendedProtectionSupported)
+ {
+ s_OSSupportsExtendedProtection = TriState.True;
+ }
+ else
+ {
+ s_OSSupportsExtendedProtection = TriState.False;
+ }
+ }
+ else
+ {
+ s_OSSupportsExtendedProtection = TriState.False;
+ }
+ }
+ }
+
+ return (s_OSSupportsExtendedProtection == TriState.True);
+ }
+ }
+
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "Reviewed for thread-safety.")]
+ public bool SspSupportsExtendedProtection
+ {
+
+ get
+ {
+
+ if (s_SspSupportsExtendedProtection == TriState.Unspecified)
+ {
+ if (ComNetOS.IsWin7orLater)
+ {
+ s_SspSupportsExtendedProtection = TriState.True;
+ }
+ else
+ {
+ // Perform a loopback NTLM authentication to determine whether the underlying OS supports
+ // extended protection
+ ContextFlags clientFlags = ContextFlags.Connection | ContextFlags.InitIdentify;
+
+ NTAuthentication client = new NTAuthentication(false, NtlmClient.AuthType,
+ SystemNetworkCredential.defaultCredential, "http/localhost", clientFlags, null);
+ try
+ {
+
+ NTAuthentication server = new NTAuthentication(true, NtlmClient.AuthType,
+ SystemNetworkCredential.defaultCredential, null, ContextFlags.Connection, null);
+ try
+ {
+
+ SecurityStatus status;
+ byte[] blob = null;
+
+ while (!server.IsCompleted)
+ {
+ blob = client.GetOutgoingBlob(blob, true, out status);
+ blob = server.GetOutgoingBlob(blob, true, out status);
+ }
+
+ if (server.OSSupportsExtendedProtection)
+ {
+ s_SspSupportsExtendedProtection = TriState.True;
+ }
+ else
+ {
+ if (Logging.On) Logging.PrintWarning(Logging.Web, SR.GetString(SR.net_ssp_dont_support_cbt));
+ s_SspSupportsExtendedProtection = TriState.False;
+ }
+ }
+ finally
+ {
+ server.CloseContext();
+ }
+ }
+ finally
+ {
+ client.CloseContext();
+ }
+ }
+ }
+
+ return (s_SspSupportsExtendedProtection == TriState.True);
+ }
+ }
+
+ /// <devdoc>
+ /// <para>Call each registered authentication module to determine the first module that
+ /// can respond to the authentication request.</para>
+ /// </devdoc>
+ public abstract Authorization Authenticate(string challenge, WebRequest request, ICredentials credentials);
+
+ // These four authentication modules require a Channel Binding Token to be able to preauthenticate over https.
+ // After a successful authentication, they will cache the CBT used on the ServicePoint. In order to PreAuthenticate,
+ // they require that a CBT has previously been cached. Any other module should be allowed to try preauthentication
+ // without a cached CBT
+#if DEBUG
+ // This method is only called as part of an assert
+ protected static bool ModuleRequiresChannelBinding(IAuthenticationModule authenticationModule)
+ {
+ return (authenticationModule is NtlmClient || authenticationModule is KerberosClient ||
+ authenticationModule is NegotiateClient || authenticationModule is DigestClient);
+ }
+#endif
+
+ /// <devdoc>
+ /// <para>Pre-authenticates a request.</para>
+ /// </devdoc>
+ public abstract Authorization PreAuthenticate(WebRequest request, ICredentials credentials);
+
+ /// <devdoc>
+ /// <para>Registers an authentication module with the authentication manager.</para>
+ /// </devdoc>
+ public abstract void Register(IAuthenticationModule authenticationModule);
+
+ /// <devdoc>
+ /// <para>Unregisters authentication modules for an authentication scheme.</para>
+ /// </devdoc>
+ public abstract void Unregister(IAuthenticationModule authenticationModule);
+ /// <devdoc>
+ /// <para>Unregisters authentication modules for an authentication scheme.</para>
+ /// </devdoc>
+ public abstract void Unregister(string authenticationScheme);
+
+ /// <devdoc>
+ /// <para>
+ /// Returns a list of registered authentication modules.
+ /// </para>
+ /// </devdoc>
+ public abstract IEnumerator RegisteredModules
+ {
+ get;
+ }
+
+ /// <devdoc>
+ /// <para>
+ /// Binds an authentication response to a request for pre-authentication.
+ /// </para>
+ /// </devdoc>
+ // Create binding between an authorization response and the module
+ // generating that response
+ // This association is used for deciding which module to invoke
+ // for preauthentication purposes
+ public abstract void BindModule(Uri uri, Authorization response, IAuthenticationModule module);
+
+ // This function returns a prefix of the given absolute Uri
+ // which will be used for associating authentication information
+ // The purpose is to associate the module-binding not with a single
+ // Uri but some collection generalizing that Uri to the loosely-defined
+ // notion of "protection realm"
+ protected static string generalize(Uri location)
+ {
+ string completeUri = location.GetComponents(UriComponents.AbsoluteUri
+ & ~(UriComponents.Query | UriComponents.Fragment), UriFormat.UriEscaped);
+ int lastFwdSlash = completeUri.LastIndexOf('/');
+ if (lastFwdSlash < 0)
+ {
+ return completeUri;
+ }
+ return completeUri.Substring(0, lastFwdSlash + 1);
+ }
+ }; // class AuthenticationManagerBase
+
+} // namespace System.Net
diff --git a/mcs/class/referencesource/System/net/System/Net/_AuthenticationManagerDefault.cs b/mcs/class/referencesource/System/net/System/Net/_AuthenticationManagerDefault.cs
new file mode 100644
index 00000000000..1cb8afb3021
--- /dev/null
+++ b/mcs/class/referencesource/System/net/System/Net/_AuthenticationManagerDefault.cs
@@ -0,0 +1,465 @@
+//------------------------------------------------------------------------------
+// <copyright file="_AuthenticationManagerDefault.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+//------------------------------------------------------------------------------
+
+namespace System.Net
+{
+ using System.Collections;
+ using System.Collections.Generic;
+ using System.Collections.Specialized;
+ using System.Configuration;
+ using System.Globalization;
+ using System.Net.Configuration;
+ using System.Reflection;
+ using System.Security.Authentication.ExtendedProtection;
+ using System.Security.Permissions;
+ using System;
+ using System.Threading;
+ using System.Diagnostics;
+ using System.Diagnostics.CodeAnalysis;
+
+ /// <devdoc>
+ /// <para>Manages the authentication modules called during the client authentication
+ /// process.</para>
+ /// </devdoc>
+ internal class AuthenticationManagerDefault : AuthenticationManagerBase
+ {
+ // Also used as a lock object.
+ private PrefixLookup moduleBinding = new PrefixLookup();
+ private volatile ArrayList moduleList;
+
+ public AuthenticationManagerDefault()
+ {
+ }
+
+ [SuppressMessage(
+ "Microsoft.Performance",
+ "CA1804",
+ Justification = "Original AuthenticationManager implementation: "
+ + "parameter o is used to trigger ModuleList initialization.")]
+ public override void EnsureConfigLoaded()
+ {
+ try
+ {
+ object o = ModuleList;
+ }
+ catch (Exception e)
+ {
+ // A Config System has circular dependency on HttpWebRequest so they call this method to
+ // trigger the config. For some reason they don't want any exceptions from here.
+ if (e is ThreadAbortException || e is OutOfMemoryException || e is StackOverflowException)
+ {
+ throw;
+ }
+ }
+ }
+
+ //
+ // ModuleList - static initialized property -
+ // contains list of Modules used for Authentication.
+ //
+ private ArrayList ModuleList
+ {
+
+ [SuppressMessage(
+ "Microsoft.Design",
+ "CA1031",
+ Justification = "Previous behavior of AuthenticationManager is to catch all exceptions thrown by all " +
+ "IAuthenticationModule plugins.")]
+#if !TRAVE
+ [SuppressMessage(
+ "Microsoft.Performance",
+ "CA1804",
+ Justification = "Variable exception is used for logging purposes.")]
+#endif
+ get
+ {
+ //
+ // GetConfig() might use us, so we have a circular dependency issue,
+ // that causes us to nest here, we grab the lock, only
+ // if we haven't initialized, or another thread is busy in initialization.
+ //
+ if (moduleList == null)
+ {
+ lock (moduleBinding)
+ {
+ if (moduleList == null)
+ {
+ GlobalLog.Print(
+ "AuthenticationManager::Initialize(): calling ConfigurationManager.GetSection()");
+
+ // This will never come back as null. Additionally, it will
+ // have the items the user wants available.
+ List<Type> authenticationModuleTypes =
+ AuthenticationModulesSectionInternal.GetSection().AuthenticationModules;
+
+ //
+ // Should be registered in a growing list of encryption/algorithm strengths
+ // basically, walk through a list of Types, and create new Auth objects
+ // from them.
+ //
+ // order is meaningful here:
+ // load the registered list of auth types
+ // with growing level of encryption.
+ //
+ ArrayList moduleListCopy = new ArrayList();
+ IAuthenticationModule moduleToRegister;
+ foreach (Type type in authenticationModuleTypes)
+ {
+ try
+ {
+ moduleToRegister = Activator.CreateInstance(type,
+ BindingFlags.CreateInstance
+ | BindingFlags.Instance
+ | BindingFlags.NonPublic
+ | BindingFlags.Public,
+ null, // Binder
+ new object[0], // no arguments
+ CultureInfo.InvariantCulture) as IAuthenticationModule;
+ if (moduleToRegister != null)
+ {
+ GlobalLog.Print(
+ "WebRequest::Initialize(): Register:" + moduleToRegister.AuthenticationType);
+ RemoveAuthenticationType(moduleListCopy, moduleToRegister.AuthenticationType);
+ moduleListCopy.Add(moduleToRegister);
+ }
+ }
+ catch (Exception exception)
+ {
+ //
+ // ignore failure (log exception for debugging)
+ //
+ GlobalLog.Print("AuthenticationManager::constructor failed to initialize: " + exception.ToString());
+ }
+ }
+
+ moduleList = moduleListCopy;
+ }
+ }
+ }
+
+ return moduleList;
+ }
+ }
+
+ private static void RemoveAuthenticationType(ArrayList list, string typeToRemove)
+ {
+ for (int i = 0; i < list.Count; ++i)
+ {
+ if (string.Compare(
+ ((IAuthenticationModule)list[i]).AuthenticationType,
+ typeToRemove,
+ StringComparison.OrdinalIgnoreCase) == 0)
+ {
+ list.RemoveAt(i);
+ break;
+ }
+
+ }
+ }
+
+ /// <devdoc>
+ /// <para>Call each registered authentication module to determine the first module that
+ /// can respond to the authentication request.</para>
+ /// </devdoc>
+ public override Authorization Authenticate(string challenge, WebRequest request, ICredentials credentials)
+ {
+ if (request == null)
+ {
+ throw new ArgumentNullException("request");
+ }
+ if (credentials == null)
+ {
+ throw new ArgumentNullException("credentials");
+ }
+ if (challenge == null)
+ {
+ throw new ArgumentNullException("challenge");
+ }
+
+ GlobalLog.Print("AuthenticationManager::Authenticate() challenge:[" + challenge + "]");
+
+ Authorization response = null;
+
+ HttpWebRequest httpWebRequest = request as HttpWebRequest;
+ if (httpWebRequest != null && httpWebRequest.CurrentAuthenticationState.Module != null)
+ {
+ response = httpWebRequest.CurrentAuthenticationState.Module.Authenticate(challenge, request, credentials);
+ }
+ else
+ {
+ // This is the case where we would try to find the module on the first server challenge
+ lock (moduleBinding)
+ {
+ //
+ // fastest way of iterating on the ArrayList
+ //
+ for (int i = 0; i < ModuleList.Count; i++)
+ {
+ IAuthenticationModule authenticationModule = (IAuthenticationModule)ModuleList[i];
+ //
+ // the AuthenticationModule will
+ // 1) return a valid string on success
+ // 2) return null if it knows it cannot respond
+ // 3) throw if it could have responded but unexpectedly failed to do so
+ //
+ if (httpWebRequest != null)
+ {
+ httpWebRequest.CurrentAuthenticationState.Module = authenticationModule;
+ }
+ response = authenticationModule.Authenticate(challenge, request, credentials);
+
+ if (response != null)
+ {
+ //
+ // found the Authentication Module, return it
+ //
+ GlobalLog.Print("AuthenticationManager::Authenticate() found IAuthenticationModule:[" + authenticationModule.AuthenticationType + "]");
+ break;
+ }
+ }
+ }
+ }
+
+ return response;
+ }
+
+ /// <devdoc>
+ /// <para>Pre-authenticates a request.</para>
+ /// </devdoc>
+ public override Authorization PreAuthenticate(WebRequest request, ICredentials credentials)
+ {
+ GlobalLog.Print(
+ "AuthenticationManager::PreAuthenticate() request:"
+ + ValidationHelper.HashString(request) + " credentials:" + ValidationHelper.HashString(credentials));
+
+ if (request == null)
+ {
+ throw new ArgumentNullException("request");
+ }
+
+ if (credentials == null)
+ {
+ return null;
+ }
+
+ HttpWebRequest httpWebRequest = request as HttpWebRequest;
+ IAuthenticationModule authenticationModule;
+ if (httpWebRequest == null)
+ {
+ return null;
+ }
+
+ //
+ // PrefixLookup is thread-safe
+ //
+ string moduleName = moduleBinding.Lookup(httpWebRequest.ChallengedUri.AbsoluteUri) as string;
+ GlobalLog.Print(
+ "AuthenticationManager::PreAuthenticate() s_ModuleBinding.Lookup returns:"
+ + ValidationHelper.ToString(moduleName));
+
+ if (moduleName == null)
+ {
+ return null;
+ }
+
+ authenticationModule = findModule(moduleName);
+ if (authenticationModule == null)
+ {
+ // The module could have been unregistered. No preauthentication is possible.
+ return null;
+ }
+
+ // Prepopulate the channel binding token so we can try preauth
+ // (but only for modules that actually need it!).
+ if (httpWebRequest.ChallengedUri.Scheme == Uri.UriSchemeHttps)
+ {
+ object binding = httpWebRequest.ServicePoint.CachedChannelBinding;
+
+#if DEBUG
+ // The ModuleRequiresChannelBinding method is only compiled in DEBUG so the assert must be restricted
+ // to DEBUG as well.
+
+ // If the authentication module does CBT, we require that it also caches channel bindings.
+ System.Diagnostics.Debug.Assert(
+ !(binding == null && ModuleRequiresChannelBinding(authenticationModule)));
+#endif
+
+ // can also be DBNull.Value, indicating "we previously succeeded without getting a CBT."
+ // (ie, unpatched SSP talking to a partially-hardened server)
+ ChannelBinding channelBinding = binding as ChannelBinding;
+ if (channelBinding != null)
+ {
+ httpWebRequest.CurrentAuthenticationState.TransportContext =
+ new CachedTransportContext(channelBinding);
+ }
+ }
+
+ // Otherwise invoke the PreAuthenticate method.
+ // We're guaranteed that CanPreAuthenticate is true because we check before calling BindModule().
+ Authorization authorization = authenticationModule.PreAuthenticate(request, credentials);
+
+ if (authorization != null && !authorization.Complete && httpWebRequest != null)
+ httpWebRequest.CurrentAuthenticationState.Module = authenticationModule;
+
+ GlobalLog.Print(
+ "AuthenticationManager::PreAuthenticate() "
+ + "IAuthenticationModule.PreAuthenticate() returned authorization:"
+ + ValidationHelper.HashString(authorization));
+
+ return authorization;
+ }
+
+ /// <devdoc>
+ /// <para>Registers an authentication module with the authentication manager.</para>
+ /// </devdoc>
+ public override void Register(IAuthenticationModule authenticationModule)
+ {
+ if (authenticationModule == null)
+ {
+ throw new ArgumentNullException("authenticationModule");
+ }
+
+ GlobalLog.Print(
+ "AuthenticationManager::Register() registering :[" + authenticationModule.AuthenticationType + "]");
+
+ lock (moduleBinding)
+ {
+ IAuthenticationModule existentModule = findModule(authenticationModule.AuthenticationType);
+ if (existentModule != null)
+ {
+ ModuleList.Remove(existentModule);
+ }
+
+ ModuleList.Add(authenticationModule);
+ }
+ }
+
+ /// <devdoc>
+ /// <para>Unregisters authentication modules for an authentication scheme.</para>
+ /// </devdoc>
+ public override void Unregister(IAuthenticationModule authenticationModule)
+ {
+ if (authenticationModule == null)
+ {
+ throw new ArgumentNullException("authenticationModule");
+ }
+
+ GlobalLog.Print(
+ "AuthenticationManager::Unregister() unregistering :["
+ + authenticationModule.AuthenticationType + "]");
+
+ lock (moduleBinding)
+ {
+ if (!ModuleList.Contains(authenticationModule))
+ {
+ throw new InvalidOperationException(SR.GetString(SR.net_authmodulenotregistered));
+ }
+
+ ModuleList.Remove(authenticationModule);
+ }
+ }
+
+ /// <devdoc>
+ /// <para>Unregisters authentication modules for an authentication scheme.</para>
+ /// </devdoc>
+ public override void Unregister(string authenticationScheme)
+ {
+ if (authenticationScheme == null)
+ {
+ throw new ArgumentNullException("authenticationScheme");
+ }
+
+ GlobalLog.Print("AuthenticationManager::Unregister() unregistering :[" + authenticationScheme + "]");
+ lock (moduleBinding)
+ {
+ IAuthenticationModule existentModule = findModule(authenticationScheme);
+ if (existentModule == null)
+ {
+ throw new InvalidOperationException(SR.GetString(SR.net_authschemenotregistered));
+ }
+
+ ModuleList.Remove(existentModule);
+ }
+ }
+
+ /// <devdoc>
+ /// <para>
+ /// Returns a list of registered authentication modules.
+ /// </para>
+ /// </devdoc>
+ public override IEnumerator RegisteredModules
+ {
+ get
+ {
+ return ModuleList.GetEnumerator();
+ }
+ }
+
+ /// <devdoc>
+ /// <para>
+ /// Binds an authentication response to a request for pre-authentication.
+ /// </para>
+ /// </devdoc>
+ // Create binding between an authorization response and the module
+ // generating that response
+ // This association is used for deciding which module to invoke
+ // for preauthentication purposes
+ public override void BindModule(Uri uri, Authorization response, IAuthenticationModule module)
+ {
+ GlobalLog.Assert(
+ module.CanPreAuthenticate,
+ "AuthenticationManager::BindModule()|module.CanPreAuthenticate == false");
+
+ if (response.ProtectionRealm != null)
+ {
+ // The authentication module specified which Uri prefixes
+ // will be preauthenticated
+ string[] prefix = response.ProtectionRealm;
+
+ for (int k = 0; k < prefix.Length; k++)
+ {
+ //
+ // PrefixLookup is thread-safe
+ //
+ moduleBinding.Add(prefix[k], module.AuthenticationType);
+ }
+ }
+ else
+ {
+ // Otherwise use the default policy for "fabricating"
+ // some protection realm generalizing the particular Uri
+ string prefix = generalize(uri);
+ //
+ // PrefixLookup is thread-safe
+ //
+ moduleBinding.Add(prefix, module.AuthenticationType);
+ }
+ }
+
+ //
+ // Lookup module by AuthenticationType
+ //
+ private IAuthenticationModule findModule(string authenticationType)
+ {
+ IAuthenticationModule returnAuthenticationModule = null;
+ ArrayList moduleList = ModuleList;
+ IAuthenticationModule authenticationModule;
+ for (int k = 0; k < moduleList.Count; k++)
+ {
+ authenticationModule = (IAuthenticationModule)moduleList[k];
+ if (string.Compare(
+ authenticationModule.AuthenticationType,
+ authenticationType,
+ StringComparison.OrdinalIgnoreCase) == 0)
+ {
+ returnAuthenticationModule = authenticationModule;
+ break;
+ }
+ }
+ return returnAuthenticationModule;
+ }
+ } // class AuthenticationManagerDefault
+} // namespace System.Net
diff --git a/mcs/class/referencesource/System/net/System/Net/_AuthenticationState.cs b/mcs/class/referencesource/System/net/System/Net/_AuthenticationState.cs
index 0c79291dac5..f019dd0183e 100644
--- a/mcs/class/referencesource/System/net/System/Net/_AuthenticationState.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_AuthenticationState.cs
@@ -325,7 +325,7 @@ namespace System.Net {
internal void Update(HttpWebRequest httpWebRequest) {
//
// RAID#86753
- // [....]: this is just a fix for redirection & kerberos.
+ // Microsoft: this is just a fix for redirection & kerberos.
// we need to close the Context and call ISC() again with the final
// blob returned from the server. to do this in general
// we would probably need to change the IAuthenticationMdule interface and
diff --git a/mcs/class/referencesource/System/net/System/Net/_AutoWebProxyScriptEngine.cs b/mcs/class/referencesource/System/net/System/Net/_AutoWebProxyScriptEngine.cs
index c37b50aa2a8..e2278a9eb3b 100644
--- a/mcs/class/referencesource/System/net/System/Net/_AutoWebProxyScriptEngine.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_AutoWebProxyScriptEngine.cs
@@ -258,7 +258,7 @@ namespace System.Net
internal WebProxyData GetWebProxyData()
{
- // PS DevDiv bug #217205 / TFS Dev10 #588370: use winhttp.WinhttpGetIEProxyConfigForCurrentUser
+ // PS DevDiv
WebProxyDataBuilder builder = null;
if (ComNetOS.IsWin7orLater)
diff --git a/mcs/class/referencesource/System/net/System/Net/_AutoWebProxyScriptHelper.cs b/mcs/class/referencesource/System/net/System/Net/_AutoWebProxyScriptHelper.cs
index 051e8fc935c..af1cbad4c97 100644
--- a/mcs/class/referencesource/System/net/System/Net/_AutoWebProxyScriptHelper.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_AutoWebProxyScriptHelper.cs
@@ -413,7 +413,7 @@ namespace System.Net
return true;
}
- // See bug 87334 for details on the implementation.
+ // See
public bool shExpMatch(string host, string pattern) {
GlobalLog.Print("WebProxyScriptHelper::shExpMatch() host:" + ValidationHelper.ToString(host) + " pattern:" + ValidationHelper.ToString(pattern));
if (host==null) {
diff --git a/mcs/class/referencesource/System/net/System/Net/_AutoWebProxyScriptWrapper.cs b/mcs/class/referencesource/System/net/System/Net/_AutoWebProxyScriptWrapper.cs
index a111964b734..eb2154db415 100644
--- a/mcs/class/referencesource/System/net/System/Net/_AutoWebProxyScriptWrapper.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_AutoWebProxyScriptWrapper.cs
@@ -671,15 +671,15 @@ namespace System.Net
GC.SuppressFinalize(this);
}
- // Bug 434828
- //
- // It's very hard to guarantee cleanup of an AppDomain. They aren't garbage collected, and Unload() is synchronous and
- // can't be called from the finalizer thread. So we must have a finalizer that uses another thread, in this case the
- // TimerThread, to unload the domain.
- //
- // A case this will come up is if the user replaces the DefaultWebProxy. The old one will be GC'd - there's no chance to
- // clean it up properly. If the user wants to avoid the TimerThread being spun up for that purpose, they should save the
- // existing DefaultWebProxy in a static before replacing it.
+ //
+
+
+
+
+
+
+
+
~AutoWebProxyScriptWrapper()
{
if (!NclUtilities.HasShutdownStarted && scriptDomain != null)
diff --git a/mcs/class/referencesource/System/net/System/Net/_BasicClient.cs b/mcs/class/referencesource/System/net/System/Net/_BasicClient.cs
index 5874e49f80b..4c79b8bdb30 100644
--- a/mcs/class/referencesource/System/net/System/Net/_BasicClient.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_BasicClient.cs
@@ -120,9 +120,9 @@ namespace System.Net {
//
// in order to know if there will not be any '?' translations (which means
// we should use the Default Encoding) we need to attempt encoding and then decoding.
- // <STRIP>this is a limitation only on win9x, if we ever drop support for this platform there might be
- // a more efficient way of doing this.</STRIP>
- //
+ // <
+
+
GlobalLog.Print("BasicClient::EncodingRightGetBytes(): Default Encoding is:" + Encoding.Default.EncodingName);
byte[] bytes = Encoding.Default.GetBytes(rawString);
@@ -131,15 +131,15 @@ namespace System.Net {
GlobalLog.Print("BasicClient::EncodingRightGetBytes(): canMapToCurrentCodePage:" + canMapToCurrentCodePage.ToString());
- //<STRIP>
- // if mapping to the current code page leaves characters out of the
- // [0x00, 0xFF] range, then we need to use the new encoding that IIS6.0
- // will support. do it when they decide it's good enough.
- // </STRIP>
+ //<
+
+
+
+
if (!canMapToCurrentCodePage) {
- //<STRIP>
- // for now throw. when IIS 6.0 adds support test it.
- //</STRIP>
+ //<
+
+
GlobalLog.LeaveException("BasicClient::EncodingRightGetBytes", ExceptionHelper.MethodNotSupportedException);
throw ExceptionHelper.MethodNotSupportedException;
/*
diff --git a/mcs/class/referencesource/System/net/System/Net/_ChunkParser.cs b/mcs/class/referencesource/System/net/System/Net/_ChunkParser.cs
index 8b48cb8cac0..47b3d460452 100644
--- a/mcs/class/referencesource/System/net/System/Net/_ChunkParser.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_ChunkParser.cs
@@ -12,7 +12,7 @@ using System.Threading;
namespace System.Net
{
- // This class is a helper for parsing chunked HTTP responses. Usage is to either call Read() ([....]) or ReadAsync()
+ // This class is a helper for parsing chunked HTTP responses. Usage is to either call Read() (sync) or ReadAsync()
// (async) methods to retrieve the response payload (without chunk metadata).
// The buffer passed to the .ctor is owned by the ChunkParser until the whole response is read (i.e. Read/
// ReadAsync return 0 bytes) or an error occurs.
diff --git a/mcs/class/referencesource/System/net/System/Net/_CommandStream.cs b/mcs/class/referencesource/System/net/System/Net/_CommandStream.cs
index 859f8764646..b98c090f2f9 100644
--- a/mcs/class/referencesource/System/net/System/Net/_CommandStream.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_CommandStream.cs
@@ -271,7 +271,7 @@ namespace System.Net {
** I don;t see how this code can be still relevant, remove it of no problems observed **
//
- // This is a general race condition in [....] mode, if the server returns an error
+ // This is a general race condition in Sync mode, if the server returns an error
// after we open the data connection, we will be off reading the data connection,
// and not the control connection. The best we can do is try to poll, and in the
// the worst case, we will timeout on establishing the data connection.
@@ -300,7 +300,7 @@ namespace System.Net {
} catch {
// If we get an exception on the QUIT command (which is
// always the last command), ignore the final exception
- // and continue with the pipeline regardlss of [....]/async
+ // and continue with the pipeline regardlss of sync/async
if (index < 0 || index >= commands.Length ||
commands[index].Command != "QUIT\r\n")
throw;
@@ -423,7 +423,7 @@ namespace System.Net {
//
/// <summary>
- /// <para>Provides a wrapper for the async operations, so that the code can be shared with [....]</para>
+ /// <para>Provides a wrapper for the async operations, so that the code can be shared with sync</para>
/// </summary>
private static void ReadCallback(IAsyncResult asyncResult) {
ReceiveState state = (ReceiveState)asyncResult.AsyncState;
@@ -502,7 +502,7 @@ namespace System.Net {
}
/// <summary>
- /// Kicks off an asynchronous or [....] request to receive a response from the server.
+ /// Kicks off an asynchronous or sync request to receive a response from the server.
/// Uses the Encoding <code>encoding</code> to transform the bytes received into a string to be
/// returned in the GeneralResponseDescription's StatusDescription field.
/// </summary>
diff --git a/mcs/class/referencesource/System/net/System/Net/_ConnectStream.cs b/mcs/class/referencesource/System/net/System/Net/_ConnectStream.cs
index 0b06f934322..8ecd19cc46f 100644
--- a/mcs/class/referencesource/System/net/System/Net/_ConnectStream.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_ConnectStream.cs
@@ -101,7 +101,7 @@ namespace System.Net {
private const string responseDrainTimeoutAppSetting = "responseDrainTimeout";
//
- // Timeout - timeout in ms for [....] reads & writes, passed in HttpWebRequest
+ // Timeout - timeout in ms for sync reads & writes, passed in HttpWebRequest
//
public override bool CanTimeout {
@@ -430,7 +430,7 @@ namespace System.Net {
if (returnResult == null) {
m_Connection.WriteStartNextRequest(m_Request, ref returnResult);
- // If the request is [....], then we do our Read here for data
+ // If the request is Sync, then we do our Read here for data
if (!m_Request.Async)
{
object syncReaderResult = m_Request.ConnectionReaderAsyncResult.InternalWaitForCompletion();
@@ -439,7 +439,7 @@ namespace System.Net {
//via poll when we handed back the request stream
if (syncReaderResult == null && m_Request.NeedsToReadForResponse)
#if DEBUG
- // Remove once mixed [....]/async requests are supported.
+ // Remove once mixed sync/async requests are supported.
using (GlobalLog.SetThreadKind(ThreadKinds.Sync))
#endif
{
@@ -891,7 +891,7 @@ namespace System.Net {
}
//
- // Handles either async or [....] Writing for *public* stream API
+ // Handles either async or sync Writing for *public* stream API
//
private IAsyncResult InternalWrite(bool async, byte[] buffer, int offset, int size, AsyncCallback callback, object state ) {
//
@@ -952,7 +952,7 @@ namespace System.Net {
m_BytesLeftToWrite -= size;
}
- GlobalLog.Print("ConnectStream#" + ValidationHelper.HashString(this) + "::InternalWrite() swallowing: size==0 || BufferOnly || IgnoreSocketErrors= " + (size==0) + BufferOnly + IgnoreSocketErrors);
+ GlobalLog.Print("ConnectStream#" + ValidationHelper.HashString(this) + "::InternalWrite() ----ing: size==0 || BufferOnly || IgnoreSocketErrors= " + (size==0) + BufferOnly + IgnoreSocketErrors);
if (async) {
asyncResult = new LazyAsyncResult(this, state, callback);
completeSync = true;
@@ -1006,7 +1006,7 @@ namespace System.Net {
// IgnoreSocketErrors can be set at any time - need to check it again.
if (IgnoreSocketErrors && !NclUtilities.IsFatal(exception))
{
- GlobalLog.Print("ConnectStream#" + ValidationHelper.HashString(this) + "::InternalWrite() swallowing: IgnoreSocketErrors set after throw.");
+ GlobalLog.Print("ConnectStream#" + ValidationHelper.HashString(this) + "::InternalWrite() ----ing: IgnoreSocketErrors set after throw.");
if (async)
{
completeSync = true;
@@ -1109,7 +1109,7 @@ namespace System.Net {
// IgnoreSocketErrors can be set at any time - need to check it again.
if (IgnoreSocketErrors && !NclUtilities.IsFatal(exception))
{
- GlobalLog.Print("ConnectStream#" + ValidationHelper.HashString(this) + "::InternalWrite() swallowing: IgnoreSocketErrors set after throw.");
+ GlobalLog.Print("ConnectStream#" + ValidationHelper.HashString(this) + "::InternalWrite() ----ing: IgnoreSocketErrors set after throw.");
if (async)
{
completeSync = true;
@@ -1577,7 +1577,7 @@ namespace System.Net {
GlobalLog.Print("m_ReadBytes = "+m_ReadBytes);
if (m_ReadBytes < 0)
- throw new InternalException(); // TODO consider changing on Assert or a user exception when stress gets stable-stable
+ throw new InternalException(); //
}
@@ -2596,7 +2596,7 @@ namespace System.Net {
SafeSetSocketTimeout(SocketShutdown.Send);
#if DEBUG
- // Until there is an async version of this, we have to assert [....] privileges here.
+ // Until there is an async version of this, we have to assert Sync privileges here.
using (GlobalLog.SetThreadKind(ThreadKinds.Sync)) {
#endif
m_Connection.Write(NclConstants.ChunkTerminator, 0, NclConstants.ChunkTerminator.Length);
diff --git a/mcs/class/referencesource/System/net/System/Net/_Connection.cs b/mcs/class/referencesource/System/net/System/Net/_Connection.cs
index b3e49c94092..7b32af35d87 100644
--- a/mcs/class/referencesource/System/net/System/Net/_Connection.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_Connection.cs
@@ -702,7 +702,7 @@ namespace System.Net {
if (startRequestResult != TriState.Unspecified) {
CompleteStartRequest(true, request, startRequestResult);
}
- // On [....], we wait for the Connection to be come availble here,
+ // On Sync, we wait for the Connection to be come availble here,
if (!request.Async)
{
object responseObject = request.ConnectionAsyncResult.InternalWaitForCompletion();
@@ -912,7 +912,7 @@ namespace System.Net {
//
// From now on the request.SetRequestSubmitDone must be called or it may hang
- // For a [....] request the write side reponse windowwas opened in HttpWebRequest.SubmitRequest
+ // For a sync request the write side reponse windowwas opened in HttpWebRequest.SubmitRequest
if (request.Async)
request.OpenWriteSideResponseWindow();
@@ -1078,7 +1078,7 @@ namespace System.Net {
WebExceptionStatus ws = WebExceptionStatus.ConnectFailure;
//
// From now on the request.SetRequestSubmitDone must be called or it may hang
- // For a [....] request the write side reponse windowwas opened in HttpWebRequest.SubmitRequest
+ // For a sync request the write side reponse windowwas opened in HttpWebRequest.SubmitRequest
if (request.Async)
request.OpenWriteSideResponseWindow();
@@ -1372,7 +1372,7 @@ namespace System.Net {
if (nextRequest != null )
{
// We cannot have HeadersCompleted on the request that was not placed yet on the write list
- if(nextRequest.HeadersCompleted) // TODO: change to be Assert but only when stress got stable-stable
+ if(nextRequest.HeadersCompleted) //
throw new InternalException();
// This codepath doesn't handle the case where the server has closed the
@@ -2124,7 +2124,7 @@ quit:
// IIS6 does not close the connection on 403 so all subsequent requests will fail to be authorized on THAT connection.
//-----------------------------------------------------------------------------------------------
//5/15/2006
- //[....]
+ //Microsoft
//The DTS Issue 595216 claims that we are unnecessarily closing the
//connection on 403 - even if it is a non SSL request. It seems
//that the original intention is to close the request for SSL requests
@@ -2153,7 +2153,7 @@ quit:
else
{
//QFE: 4599.
- //Author: [....]
+ //Author: Microsoft
//in v2.0, in case of SSL Requests through proxy that require NTLM authentication,
//we are not honoring the Proxy-Connection: Keep-Alive header and
//closing the connection.
@@ -2928,7 +2928,7 @@ quit:
{
if (m_Error == WebExceptionStatus.Success)
{
- throw new InternalException(); // TODO: replace it with a generic error for the product bits
+ throw new InternalException(); //
//m_Error = WebExceptionStatus.UnknownError;
}
@@ -3163,7 +3163,7 @@ quit:
}
}
//
- // Peforms a [....] Read and calls the ReadComplete to process the result
+ // Peforms a Sync Read and calls the ReadComplete to process the result
// The reads are done iteratively, until the Request has received enough
// data to contruct a response, or a 100-Continue is read, allowing the HttpWebRequest
// to return a write stream
@@ -3272,7 +3272,7 @@ quit:
if (probeRead)
{
- // [....] 100-Continue wait only
+ // Sync 100-Continue wait only
request.FinishContinueWait();
if (pollSuccess)
{
@@ -3468,7 +3468,7 @@ quit:
}
//
// Any exception is processed by HandleError() and ----ed to avoid throwing on a thread pool
- // In the [....] case the HandleError() will abort the request so the caller will pick up the result.
+ // In the sync case the HandleError() will abort the request so the caller will pick up the result.
//
catch (Exception exception) {
if (NclUtilities.IsFatal(exception)) throw;
diff --git a/mcs/class/referencesource/System/net/System/Net/_ContextAwareResult.cs b/mcs/class/referencesource/System/net/System/Net/_ContextAwareResult.cs
index c5c5dc42892..b94e26e4312 100644
--- a/mcs/class/referencesource/System/net/System/Net/_ContextAwareResult.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_ContextAwareResult.cs
@@ -359,7 +359,7 @@ namespace System.Net {
// to avoid flowing context. Even if the operation completes before this call, the callback won't have been
// called.
//
- // Returns whether the operation completed [....] or not.
+ // Returns whether the operation completed sync or not.
//
private bool CaptureOrComplete(ref ExecutionContext cachedContext, bool returnContext)
{
diff --git a/mcs/class/referencesource/System/net/System/Net/_DigestClient.cs b/mcs/class/referencesource/System/net/System/Net/_DigestClient.cs
index 04cf4ffdfae..ae4d780262f 100644
--- a/mcs/class/referencesource/System/net/System/Net/_DigestClient.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_DigestClient.cs
@@ -28,7 +28,7 @@ namespace System.Net {
private static PrefixLookup challengeCache = new PrefixLookup();
private static readonly char[] singleSpaceArray = new char[]{' '};
- // [....]: make sure WDigest fixes these bugs before we
+ // Microsoft: make sure WDigest fixes these bugs before we
// enable this code ("Windows OS" Product Studio database):
//
// 921024 1 Wdigest should support MD5, at least for explicit (non-default) credentials.
diff --git a/mcs/class/referencesource/System/net/System/Net/_HTTPDateParse.cs b/mcs/class/referencesource/System/net/System/Net/_HTTPDateParse.cs
index 666ccf9a39e..425f2422266 100644
--- a/mcs/class/referencesource/System/net/System/Net/_HTTPDateParse.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_HTTPDateParse.cs
@@ -42,7 +42,7 @@ namespace System.Net {
private const int DATE_TOKEN_JANUARY = 1;
private const int DATE_TOKEN_FEBRUARY = 2;
- private const int DATE_TOKEN_MARCH = 3;
+ private const int DATE_TOKEN_Microsoft = 3;
private const int DATE_TOKEN_APRIL = 4;
private const int DATE_TOKEN_MAY = 5;
private const int DATE_TOKEN_JUNE = 6;
@@ -148,7 +148,7 @@ namespace System.Net {
case 'A':
switch (MAKE_UPPER(lpszDay[index+2])) {
case 'R':
- return DATE_TOKEN_MARCH;
+ return DATE_TOKEN_Microsoft;
case 'Y':
return DATE_TOKEN_MAY;
}
diff --git a/mcs/class/referencesource/System/net/System/Net/_IAuthenticationManager.cs b/mcs/class/referencesource/System/net/System/Net/_IAuthenticationManager.cs
new file mode 100644
index 00000000000..541db54b424
--- /dev/null
+++ b/mcs/class/referencesource/System/net/System/Net/_IAuthenticationManager.cs
@@ -0,0 +1,60 @@
+//------------------------------------------------------------------------------
+// <copyright file="_IAuthenticationManager.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+//------------------------------------------------------------------------------
+
+namespace System.Net
+{
+ using System.Collections;
+ using System.Collections.Specialized;
+ using System.Net;
+
+ internal interface IAuthenticationManager
+ {
+ ICredentialPolicy CredentialPolicy
+ {
+ get;
+ set;
+ }
+
+ StringDictionary CustomTargetNameDictionary
+ {
+ get;
+ }
+
+ SpnDictionary SpnDictionary
+ {
+ get;
+ }
+
+ bool OSSupportsExtendedProtection
+ {
+ get;
+ }
+
+ bool SspSupportsExtendedProtection
+ {
+ get;
+ }
+
+ void EnsureConfigLoaded();
+
+ Authorization Authenticate(string challenge, WebRequest request, ICredentials credentials);
+
+ Authorization PreAuthenticate(WebRequest request, ICredentials credentials);
+
+ void Register(IAuthenticationModule authenticationModule);
+
+ void Unregister(IAuthenticationModule authenticationModule);
+
+ void Unregister(string authenticationScheme);
+
+ IEnumerator RegisteredModules
+ {
+ get;
+ }
+
+ void BindModule(Uri uri, Authorization response, IAuthenticationModule module);
+ } // class AuthenticationManager
+} // namespace System.Net
diff --git a/mcs/class/referencesource/System/net/System/Net/_LazyAsyncResult.cs b/mcs/class/referencesource/System/net/System/Net/_LazyAsyncResult.cs
index bbf9ab82202..17bd85e03d8 100644
--- a/mcs/class/referencesource/System/net/System/Net/_LazyAsyncResult.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_LazyAsyncResult.cs
@@ -18,7 +18,7 @@ namespace System.Net
private const int c_ForceAsyncCount = 50;
#if !NET_PERF
- // This is to avoid user mistakes when they queue another async op from a callback the completes [....].
+ // This is to avoid user mistakes when they queue another async op from a callback the completes sync.
[ThreadStatic]
private static ThreadContext t_ThreadContext;
diff --git a/mcs/class/referencesource/System/net/System/Net/_ListenerResponseStream.cs b/mcs/class/referencesource/System/net/System/Net/_ListenerResponseStream.cs
index 61c5adc6fdf..db4ba258c78 100644
--- a/mcs/class/referencesource/System/net/System/Net/_ListenerResponseStream.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_ListenerResponseStream.cs
@@ -463,7 +463,7 @@ namespace System.Net {
}
// The final Content-Length async write can only be cancelled by CancelIoEx.
- // [....] can only be cancelled by CancelSynchronousIo, but we don't attempt this right now.
+ // Sync can only be cancelled by CancelSynchronousIo, but we don't attempt this right now.
[SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", Justification =
"It is safe to ignore the return value on a cancel operation because the connection is being closed")]
internal void CancelLastWrite(CriticalHandle requestQueueHandle)
diff --git a/mcs/class/referencesource/System/net/System/Net/_PrefixLookup.cs b/mcs/class/referencesource/System/net/System/Net/_PrefixLookup.cs
new file mode 100644
index 00000000000..3a9dddc6255
--- /dev/null
+++ b/mcs/class/referencesource/System/net/System/Net/_PrefixLookup.cs
@@ -0,0 +1,173 @@
+//------------------------------------------------------------------------------
+// <copyright file="_PrefixLookup.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+//------------------------------------------------------------------------------
+
+//
+// This internal class implements a data structure which can be
+// used for storing a set of objects keyed by string prefixes
+// Looking up an object given a string returns the value associated
+// with the longest matching prefix
+// (A prefix "matches" a string IFF the string starts with that prefix
+// The degree of the match is prefix length)
+//
+// The class has a configurable maximum capacity. When adding items, if the
+// list is over capacity, then the least recently used (LRU) item is dropped.
+//
+
+namespace System.Net
+{
+ using System.Collections.Generic;
+ using System.Diagnostics;
+
+ internal class PrefixLookup
+ {
+
+ // Do not go over this limit. Discard old data elements
+ // Longer lists suffer a search penalty
+ private const int defaultCapacity = 100;
+ private volatile int capacity;
+
+ // LRU list - Least Recently Used.
+ // Add new items to the front. Drop items from the end if beyond capacity.
+ // Promote used items to the top.
+ private readonly LinkedList<PrefixValuePair> lruList = new LinkedList<PrefixValuePair>();
+
+ private class PrefixValuePair
+ {
+ public string prefix;
+ public object value;
+
+ public PrefixValuePair(string pre, object val)
+ {
+ prefix = pre;
+ value = val;
+ }
+ }
+
+ public PrefixLookup() : this(defaultCapacity)
+ {
+ }
+
+ public PrefixLookup(int capacity)
+ {
+ this.capacity = capacity;
+ }
+
+#if DEBUG
+ // this method is only called by test code
+ internal int Capacity
+ {
+ get { return capacity; }
+ set
+ {
+ lock (lruList)
+ {
+ if (value <= 0)
+ {
+ // Disabled, flush list
+ capacity = 0;
+ lruList.Clear();
+ }
+ else
+ {
+ capacity = value;
+
+ // Ensure list is still within capacity
+ while (lruList.Count > capacity)
+ {
+ lruList.RemoveLast();
+ }
+ }
+ }
+ }
+ }
+#endif
+
+ public void Add(string prefix, object value)
+ {
+ Debug.Assert(prefix != null, "PrefixLookup.Add; prefix must not be null");
+ Debug.Assert(prefix.Length > 0, "PrefixLookup.Add; prefix must not be empty");
+ Debug.Assert(value != null, "PrefixLookup.Add; value must not be null");
+
+ if (capacity == 0 || prefix == null || prefix.Length == 0 || value == null)
+ return;
+
+ // writers are locked
+ lock (lruList)
+ {
+ // Special case duplicate check at start of list, very common
+ if (lruList.First != null && lruList.First.Value.prefix.Equals(prefix))
+ {
+ // Already in list, update value
+ lruList.First.Value.value = value;
+ }
+ else
+ {
+ // New entry
+ // Duplicates will just be pushed down and eventually discarded
+ lruList.AddFirst(new PrefixValuePair(prefix, value));
+
+ // If full, drop the least recently used
+ while (lruList.Count > capacity)
+ {
+ lruList.RemoveLast();
+ }
+ }
+
+ }
+ }
+
+ public object Lookup(string lookupKey)
+ {
+ Debug.Assert(lookupKey != null, "PrefixLookup.Lookup; lookupKey must not be null");
+ Debug.Assert(lookupKey.Length > 0, "PrefixLookup.Lookup; lookupKey must not be empty");
+
+ if (lookupKey == null || lookupKey.Length == 0 || lruList.Count == 0)
+ {
+ return null;
+ }
+
+ LinkedListNode<PrefixValuePair> mostSpecificMatch = null;
+ lock (lruList)
+ {
+ //
+ // Normally readers don't need to be locked, but if the value is found
+ // then it is promoted to the top of the list.
+ //
+
+ // Oh well, do it the slow way, search for the longest partial match
+ string prefix;
+ int longestMatchPrefix = 0;
+ for (LinkedListNode<PrefixValuePair> pairNode = lruList.First;
+ pairNode != null; pairNode = pairNode.Next)
+ {
+ //
+ // check if the match is better than the current-most-specific match
+ //
+ prefix = pairNode.Value.prefix;
+ if (prefix.Length > longestMatchPrefix && lookupKey.StartsWith(prefix))
+ {
+ //
+ // Yes-- update the information about currently preferred match
+ //
+ longestMatchPrefix = prefix.Length;
+ mostSpecificMatch = pairNode;
+
+ if (longestMatchPrefix == lookupKey.Length)
+ break; // Exact match, optimal solution.
+ }
+ }
+
+ if (mostSpecificMatch != null && mostSpecificMatch != lruList.First)
+ {
+ // We have a match and it's not the first element, move it up in the list
+ lruList.Remove(mostSpecificMatch);
+ lruList.AddFirst(mostSpecificMatch);
+ }
+ }
+ return mostSpecificMatch != null ? mostSpecificMatch.Value.value : null;
+ }
+ } // class PrefixLookup
+}
diff --git a/mcs/class/referencesource/System/net/System/Net/_SafeNetHandles.cs b/mcs/class/referencesource/System/net/System/Net/_SafeNetHandles.cs
index 2eb0328b48f..1b5dc02582e 100644
--- a/mcs/class/referencesource/System/net/System/Net/_SafeNetHandles.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_SafeNetHandles.cs
@@ -2681,6 +2681,13 @@ namespace System.Net {
int status = (int)SecurityStatus.InvalidHandle;
bool b = false;
+ // SCHANNEL only supports SECPKG_ATTR_ENDPOINT_BINDINGS and SECPKG_ATTR_UNIQUE_BINDINGS which
+ // map to our enum ChannelBindingKind.Endpoint and ChannelBindingKind.Unique.
+ if (contextAttribute != ContextAttribute.EndpointBindings && contextAttribute != ContextAttribute.UniqueBindings)
+ {
+ return status;
+ }
+
// We don't want to be interrupted by thread abort exceptions or unexpected out-of-memory errors failing to jit
// one of the following methods. So run within a CER non-interruptible block.
RuntimeHelpers.PrepareConstrainedRegions();
diff --git a/mcs/class/referencesource/System/net/System/Net/_SecureChannel.cs b/mcs/class/referencesource/System/net/System/Net/_SecureChannel.cs
index b23222590db..4ab4c6b4301 100644
--- a/mcs/class/referencesource/System/net/System/Net/_SecureChannel.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_SecureChannel.cs
@@ -795,7 +795,8 @@ namespace System.Net.Security {
{
SecureCredential.Flags flags = SecureCredential.Flags.ValidateManual | SecureCredential.Flags.NoDefaultCred;
if (!ServicePointManager.DisableStrongCrypto
- && ((m_ProtocolFlags & (SchProtocols.Tls10 | SchProtocols.Tls11 | SchProtocols.Tls12)) != 0))
+ && ((m_ProtocolFlags & (SchProtocols.Tls10 | SchProtocols.Tls11 | SchProtocols.Tls12)) != 0)
+ && (m_EncryptionPolicy != EncryptionPolicy.AllowNoEncryption) && (m_EncryptionPolicy != EncryptionPolicy.NoEncryption))
{
flags |= SecureCredential.Flags.UseStrongCrypto;
}
diff --git a/mcs/class/referencesource/System/net/System/Net/_TLSstream.cs b/mcs/class/referencesource/System/net/System/Net/_TLSstream.cs
index 3a418304fd6..50f5265f53d 100644
--- a/mcs/class/referencesource/System/net/System/Net/_TLSstream.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_TLSstream.cs
@@ -106,7 +106,7 @@ namespace System.Net {
}
//
- // [....] Read version
+ // Sync Read version
//
public override int Read(byte[] buffer, int offset, int size) {
GlobalLog.Print("TlsStream#" + ValidationHelper.HashString(this) + "::Read() SecureWorker#" + ValidationHelper.HashString(m_Worker) + " offset:" + offset.ToString() + " size:" + size.ToString());
@@ -401,11 +401,11 @@ namespace System.Net {
//
// This methods ensures that IO is only issued when the handshake is completed in ether way
- // The very first coming IO will initiate the handshake and define it's flavor ([....]/async).
+ // The very first coming IO will initiate the handshake and define it's flavor (sync/async).
//
// Returns false if the handshake was already done.
// Returns true if the user IO is queued and the handshake is started.
- // Return value is not applicable in [....] case.
+ // Return value is not applicable in sync case.
//
private ArrayList m_PendingIO = new ArrayList();
internal bool ProcessAuthentication(LazyAsyncResult result)
@@ -483,7 +483,7 @@ namespace System.Net {
{
if(m_PendingIO.Count > 1)
{
- // It was a real [....] handshake (now completed) and another IO came in.
+ // It was a real sync handshake (now completed) and another IO came in.
// It's now waiting on us so resume.
ThreadPool.QueueUserWorkItem(new WaitCallback(StartWakeupPendingIO), null);
}
@@ -496,7 +496,7 @@ namespace System.Net {
}
else if (isSyncCall)
{
- GlobalLog.Assert(result != null, "TlsStream::ProcessAuthentication() this is a [....] call and it did not started the handshake hence null result must be wrapped into LazyAsyncResult");
+ GlobalLog.Assert(result != null, "TlsStream::ProcessAuthentication() this is a Sync call and it did not started the handshake hence null result must be wrapped into LazyAsyncResult");
Exception e = result.InternalWaitForCompletion() as Exception;
if (e != null)
throw e;
@@ -516,7 +516,7 @@ namespace System.Net {
}
// Here in the async case a user IO has been queued (and may be already completed)
- // For [....] case it does not matter since the caller will resume IO upon return
+ // For sync case it does not matter since the caller will resume IO upon return
return true;
}
//
@@ -581,7 +581,7 @@ namespace System.Net {
}
else
{
- //resume [....] IO waiting on other thread or signal waiting async handshake result.
+ //resume sync IO waiting on other thread or signal waiting async handshake result.
try {
lazyResult.InvokeCallback(exception);
}
diff --git a/mcs/class/referencesource/System/net/System/Net/_TimerThread.cs b/mcs/class/referencesource/System/net/System/Net/_TimerThread.cs
index 059e88d5bcd..2d11591ebfc 100644
--- a/mcs/class/referencesource/System/net/System/Net/_TimerThread.cs
+++ b/mcs/class/referencesource/System/net/System/Net/_TimerThread.cs
@@ -13,7 +13,7 @@ namespace System.Net {
using System.Runtime.InteropServices;
/// <summary>
- /// <para>Acts as countdown timer, used to measure elapsed time over a [....] operation.</para>
+ /// <para>Acts as countdown timer, used to measure elapsed time over a sync operation.</para>
/// </summary>
internal static class TimerThread {
/// <summary>
diff --git a/mcs/class/referencesource/System/net/System/Net/cookiecontainer.cs b/mcs/class/referencesource/System/net/System/Net/cookiecontainer.cs
index 3a127512306..fec514b0dbc 100644
--- a/mcs/class/referencesource/System/net/System/Net/cookiecontainer.cs
+++ b/mcs/class/referencesource/System/net/System/Net/cookiecontainer.cs
@@ -4,9 +4,56 @@
// </copyright>
//------------------------------------------------------------------------------
+// Relevant cookie specs:
+//
+// PERSISTENT CLIENT STATE HTTP COOKIES (1996)
+// From <http://web.archive.org/web/20020803110822/http://wp.netscape.com/newsref/std/cookie_spec.html>
+//
+// RFC2109 HTTP State Management Mechanism (February 1997)
+// From <http://tools.ietf.org/html/rfc2109>
+//
+// RFC2965 HTTP State Management Mechanism (October 2000)
+// From <http://tools.ietf.org/html/rfc2965>
+//
+// RFC6265 HTTP State Management Mechanism (April 2011)
+// From <http://tools.ietf.org/html/rfc6265>
+//
+// The Version attribute of the cookie header is defined and used only in RFC2109 and RFC2965 cookie
+// specs and specifies Version=1. The Version attribute is not used in the Netscape cookie spec
+// (considered as Version=0). Nor is it used in the most recent cookie spec, RFC6265, introduced in 2011.
+// RFC6265 deprecates all previous cookie specs including the Version attribute.
+//
+// Cookies without an explicit Domain attribute will only match a potential uri that matches the original
+// uri from where the cookie came from.
+//
+// For explicit Domain attribute in the cookie, the following rules apply:
+//
+// Version=0 (Netscape, RFC6265) allows the Domain attribute of the cookie to match any tail substring
+// of the host uri.
+//
+// Version=1 related cookie specs only allows the Domain attribute to match the host uri based on a
+// more restricted set of rules.
+//
+// According to RFC2109/RFC2965, the cookie will be rejected for matching if:
+// * The value for the Domain attribute contains no embedded dots or does not start with a dot.
+// * The value for the request-host does not domain-match the Domain attribute.
+// " The request-host is a FQDN (not IP address) and has the form HD, where D is the value of the Domain
+// attribute, and H is a string that contains one or more dots.
+//
+// Examples:
+// * A cookie from request-host y.x.foo.com for Domain=.foo.com would be rejected, because H is y.x
+// and contains a dot.
+//
+// * A cookie from request-host x.foo.com for Domain=.foo.com would be accepted.
+//
+// * A cookie with Domain=.com or Domain=.com., will always be rejected, because there is no embedded dot.
+//
+// * A cookie with Domain=ajax.com will be rejected because the value for Domain does not begin with a dot.
+
namespace System.Net {
using System.Collections;
+ using System.Collections.Generic;
using System.Threading;
using System.Globalization;
using System.Net.NetworkInformation;
@@ -656,37 +703,31 @@ namespace System.Net {
bool isSecure = (uri.Scheme == Uri.UriSchemeHttps);
int port = uri.Port;
CookieCollection cookies = new CookieCollection();
- ArrayList nameKeys = new ArrayList();
- int firstCompatibleVersion0SpecKey = 0;
+
+ List<string> domainAttributeMatchAnyCookieVariant = new List<string>();
+ List<string> domainAttributeMatchOnlyCookieVariantPlain = new List<string>();
string fqdnRemote = uri.Host;
+ // Add initial candidates to match Domain attribute of possible cookies.
+ // For these Domains, cookie can have any CookieVariant enum value.
+ domainAttributeMatchAnyCookieVariant.Add(fqdnRemote);
+ domainAttributeMatchAnyCookieVariant.Add("." + fqdnRemote);
+
int dot = fqdnRemote.IndexOf('.');
if (dot == -1) {
// DNS.resolve may return short names even for other inet domains ;-(
// We _don't_ know what the exact domain is, so try also grab short hostname cookies.
- nameKeys.Add(fqdnRemote);
- // add a preceding dot (null host)
- nameKeys.Add("." + fqdnRemote);
// grab long name from the local domain
if (m_fqdnMyDomain != null && m_fqdnMyDomain.Length != 0) {
- nameKeys.Add(fqdnRemote + m_fqdnMyDomain);
+ domainAttributeMatchAnyCookieVariant.Add(fqdnRemote + m_fqdnMyDomain);
// grab the local domain itself
- nameKeys.Add(m_fqdnMyDomain);
- firstCompatibleVersion0SpecKey = 3;
- }
- else {
- firstCompatibleVersion0SpecKey = 1;
+ domainAttributeMatchAnyCookieVariant.Add(m_fqdnMyDomain);
}
}
else {
- // grab the host itself
- nameKeys.Add(fqdnRemote);
- // add a preceding dot (null host)
- nameKeys.Add("." + fqdnRemote);
// grab the host domain
- nameKeys.Add(fqdnRemote.Substring(dot));
- firstCompatibleVersion0SpecKey = 2;
+ domainAttributeMatchAnyCookieVariant.Add(fqdnRemote.Substring(dot));
// The following block is only for compatibility with Version0 spec.
// Still, we'll add only Plain-Variant cookies if found under below keys
if (fqdnRemote.Length > 2) {
@@ -698,20 +739,27 @@ namespace System.Net {
}
if (last != -1) {
while ((dot < last) && (dot = fqdnRemote.IndexOf('.', dot+1)) != -1) {
- nameKeys.Add(fqdnRemote.Substring(dot));
+ // These candidates can only match CookieVariant.Plain cookies.
+ domainAttributeMatchOnlyCookieVariantPlain.Add(fqdnRemote.Substring(dot));
}
}
}
}
- foreach (string key in nameKeys) {
+ BuildCookieCollectionFromDomainMatches(uri, isSecure, port, cookies, domainAttributeMatchAnyCookieVariant, false);
+ BuildCookieCollectionFromDomainMatches(uri, isSecure, port, cookies, domainAttributeMatchOnlyCookieVariantPlain, true);
+
+ return cookies;
+ }
+
+ private void BuildCookieCollectionFromDomainMatches(Uri uri, bool isSecure, int port, CookieCollection cookies, List<string> domainAttribute, bool matchOnlyPlainCookie) {
+ for (int i = 0; i < domainAttribute.Count; i++) {
bool found = false;
bool defaultAdded = false;
PathList pathList;
lock (m_domainTable.SyncRoot) {
- pathList = (PathList)m_domainTable[key];
+ pathList = (PathList)m_domainTable[domainAttribute[i]];
}
- --firstCompatibleVersion0SpecKey;
if (pathList == null) {
continue;
@@ -725,7 +773,7 @@ namespace System.Net {
CookieCollection cc = (CookieCollection)entry.Value;
cc.TimeStamp(CookieCollection.Stamp.Set);
- MergeUpdateCollections(cookies, cc, port, isSecure, (firstCompatibleVersion0SpecKey<0));
+ MergeUpdateCollections(cookies, cc, port, isSecure, matchOnlyPlainCookie);
if (path == "/") {
defaultAdded = true;
@@ -742,21 +790,19 @@ namespace System.Net {
if (cc != null) {
cc.TimeStamp(CookieCollection.Stamp.Set);
- MergeUpdateCollections(cookies, cc, port, isSecure, (firstCompatibleVersion0SpecKey<0));
+ MergeUpdateCollections(cookies, cc, port, isSecure, matchOnlyPlainCookie);
}
}
// Remove unused domain
// (This is the only place that does domain removal)
- if(pathList.Count == 0) {
- AddRemoveDomain(key, null);
+ if (pathList.Count == 0) {
+ AddRemoveDomain(domainAttribute[i], null);
}
}
- return cookies;
}
private void MergeUpdateCollections(CookieCollection destination, CookieCollection source, int port, bool isSecure, bool isPlainOnly) {
-
// we may change it
lock (source) {
diff --git a/mcs/class/referencesource/System/net/System/Net/filewebrequest.cs b/mcs/class/referencesource/System/net/System/Net/filewebrequest.cs
index 89576beade9..4ae8d5c7c05 100644
--- a/mcs/class/referencesource/System/net/System/Net/filewebrequest.cs
+++ b/mcs/class/referencesource/System/net/System/Net/filewebrequest.cs
@@ -214,7 +214,7 @@ namespace System.Net {
public override IAsyncResult BeginGetRequestStream(AsyncCallback callback, object state)
{
GlobalLog.Enter("FileWebRequest::BeginGetRequestStream");
-
+ bool success = true;
try {
if (Aborted)
throw ExceptionHelper.RequestAbortedException;
@@ -242,19 +242,16 @@ namespace System.Net {
m_ReadAResult = new LazyAsyncResult(this, state, callback);
ThreadPool.QueueUserWorkItem(s_GetRequestStreamCallback, m_ReadAResult);
} catch (Exception exception) {
+ success = false;
if(Logging.On)Logging.Exception(Logging.Web, this, "BeginGetRequestStream", exception);
throw;
} finally {
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogBeginGetRequestStream(success, synchronous: false);
+ }
GlobalLog.Leave("FileWebRequest::BeginGetRequestSteam");
}
- string suri;
- if (FrameworkEventSource.Log.IsEnabled(EventLevel.Verbose, FrameworkEventSource.Keywords.NetClient))
- suri = this.RequestUri.ToString();
- else
- suri = this.RequestUri.OriginalString;
- if (FrameworkEventSource.Log.IsEnabled()) LogBeginGetRequestStream(suri);
-
return m_ReadAResult;
}
@@ -262,6 +259,7 @@ namespace System.Net {
public override IAsyncResult BeginGetResponse(AsyncCallback callback, object state)
{
GlobalLog.Enter("FileWebRequest::BeginGetResponse");
+ bool success = true;
try {
if (Aborted)
@@ -278,19 +276,16 @@ namespace System.Net {
m_WriteAResult = new LazyAsyncResult(this,state,callback);
ThreadPool.QueueUserWorkItem(s_GetResponseCallback,m_WriteAResult);
} catch (Exception exception) {
+ success = false;
if(Logging.On)Logging.Exception(Logging.Web, this, "BeginGetResponse", exception);
throw;
} finally {
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogBeginGetResponse(success, synchronous: false);
+ }
GlobalLog.Leave("FileWebRequest::BeginGetResponse");
}
- string suri;
- if (FrameworkEventSource.Log.IsEnabled(EventLevel.Verbose, FrameworkEventSource.Keywords.NetClient))
- suri = this.RequestUri.ToString();
- else
- suri = this.RequestUri.OriginalString;
- if (FrameworkEventSource.Log.IsEnabled()) LogBeginGetResponse(suri);
-
return m_WriteAResult;
}
@@ -303,6 +298,7 @@ namespace System.Net {
GlobalLog.Enter("FileWebRequest::EndGetRequestStream");
Stream stream;
+ bool success = false;
try {
LazyAsyncResult ar = asyncResult as LazyAsyncResult;
if (asyncResult == null || ar == null) {
@@ -317,15 +313,17 @@ namespace System.Net {
}
stream = (Stream) result;
m_writePending = false;
+ success = true;
} catch (Exception exception) {
if(Logging.On)Logging.Exception(Logging.Web, this, "EndGetRequestStream", exception);
throw;
} finally {
GlobalLog.Leave("FileWebRequest::EndGetRequestStream");
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogEndGetRequestStream(success, synchronous: false);
+ }
}
- if (FrameworkEventSource.Log.IsEnabled()) LogEndGetRequestStream();
-
return stream;
}
@@ -334,6 +332,7 @@ namespace System.Net {
GlobalLog.Enter("FileWebRequest::EndGetResponse");
WebResponse response;
+ bool success = false;
try {
LazyAsyncResult ar = asyncResult as LazyAsyncResult;
if (asyncResult == null || ar == null) {
@@ -349,14 +348,18 @@ namespace System.Net {
}
response = (WebResponse) result;
m_readPending = false;
+ success = true;
} catch (Exception exception) {
if(Logging.On)Logging.Exception(Logging.Web, this, "EndGetResponse", exception);
throw;
} finally {
GlobalLog.Leave("FileWebRequest::EndGetResponse");
- }
- if (FrameworkEventSource.Log.IsEnabled()) LogEndGetResponse();
+ // there is no statusCode in FileWebRequest object, defaulting it to zero.
+ if (FrameworkEventSource.Log.IsEnabled()) {
+ LogEndGetResponse(success, synchronous: false, statusCode: 0);
+ }
+ }
return response;
}
diff --git a/mcs/class/referencesource/System/net/System/Net/mail/IEncodableStream.cs b/mcs/class/referencesource/System/net/System/Net/mail/IEncodableStream.cs
index c08bb7b4cc2..3f410e924d3 100644
--- a/mcs/class/referencesource/System/net/System/Net/mail/IEncodableStream.cs
+++ b/mcs/class/referencesource/System/net/System/Net/mail/IEncodableStream.cs
@@ -9,4 +9,4 @@
string GetEncodedString();
Stream GetStream();
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/System/net/System/Net/mail/MailHeaderInfo.cs b/mcs/class/referencesource/System/net/System/Net/mail/MailHeaderInfo.cs
index cde8b0b45d8..eabb5954e50 100644
--- a/mcs/class/referencesource/System/net/System/Net/mail/MailHeaderInfo.cs
+++ b/mcs/class/referencesource/System/net/System/Net/mail/MailHeaderInfo.cs
@@ -67,7 +67,7 @@ namespace System.Net.Mail {
// Table of well-known mail headers.
- // Keep the initializers in [....] with the enum above.
+ // Keep the initializers in sync with the enum above.
private static readonly HeaderInfo[] m_HeaderInfo = {
// ID NormalizedString IsSingleton IsUserSettable AllowsUnicode
new HeaderInfo(MailHeaderID.Bcc, "Bcc", true, false, true),
@@ -110,10 +110,10 @@ namespace System.Net.Mail {
static MailHeaderInfo() {
#if DEBUG
- // Check that enum and header info array are in [....]
+ // Check that enum and header info array are in sync
for(int i = 0; i < m_HeaderInfo.Length; i++) {
if((int)m_HeaderInfo[i].ID != i) {
- throw new Exception("Header info data structures are not in [....]");
+ throw new Exception("Header info data structures are not in sync");
}
}
#endif
diff --git a/mcs/class/referencesource/System/net/System/Net/mail/SmtpClient.cs b/mcs/class/referencesource/System/net/System/Net/mail/SmtpClient.cs
index 38ccf0a7f33..d1632685a60 100644
--- a/mcs/class/referencesource/System/net/System/Net/mail/SmtpClient.cs
+++ b/mcs/class/referencesource/System/net/System/Net/mail/SmtpClient.cs
@@ -872,7 +872,7 @@ namespace System.Net.Mail
try {
writer = transport.EndSendMail(result);
// If some recipients failed but not others, send the e-mail anyways, but then return the
- // "Non-fatal" exception reporting the failures. The [....] code path does it this way.
+ // "Non-fatal" exception reporting the failures. The sync code path does it this way.
// Fatal exceptions would have thrown above at transport.EndSendMail(...)
SendMailAsyncResult sendResult = (SendMailAsyncResult)result;
// Save these and throw them later in SendMessageCallback, after the message has sent.
diff --git a/mcs/class/referencesource/System/net/System/Net/mail/SmtpDateTime.cs b/mcs/class/referencesource/System/net/System/Net/mail/SmtpDateTime.cs
index babca9f5a02..8dca2144ebb 100644
--- a/mcs/class/referencesource/System/net/System/Net/mail/SmtpDateTime.cs
+++ b/mcs/class/referencesource/System/net/System/Net/mail/SmtpDateTime.cs
@@ -278,7 +278,7 @@ namespace System.Net.Mime
// formats a date only. Does not include time zone
internal string FormatDate(DateTime value)
{
- string output = value.ToString("ddd, dd MMM yyyy H:mm:ss", CultureInfo.InvariantCulture);
+ string output = value.ToString("ddd, dd MMM yyyy HH:mm:ss", CultureInfo.InvariantCulture);
return output;
}
diff --git a/mcs/class/referencesource/System/net/System/Net/mail/SmtpTransport.cs b/mcs/class/referencesource/System/net/System/Net/mail/SmtpTransport.cs
index 99c36b866d0..a6333e70e1e 100644
--- a/mcs/class/referencesource/System/net/System/Net/mail/SmtpTransport.cs
+++ b/mcs/class/referencesource/System/net/System/Net/mail/SmtpTransport.cs
@@ -235,7 +235,7 @@ namespace System.Net.Mail
catch(Exception innerException){
throw new SmtpException(SR.GetString(SR.MailHostNotFound), innerException);
}
- GlobalLog.Leave("SmtpTransport#" + ValidationHelper.HashString(this) + "::BeginConnect [....] Completion");
+ GlobalLog.Leave("SmtpTransport#" + ValidationHelper.HashString(this) + "::BeginConnect Sync Completion");
return result;
}
diff --git a/mcs/class/referencesource/System/net/System/Net/mail/smtpconnection.cs b/mcs/class/referencesource/System/net/System/Net/mail/smtpconnection.cs
index a553312e247..ff9bddc7737 100644
--- a/mcs/class/referencesource/System/net/System/Net/mail/smtpconnection.cs
+++ b/mcs/class/referencesource/System/net/System/Net/mail/smtpconnection.cs
@@ -417,7 +417,7 @@ namespace System.Net.Mail
for (int i = 0; i < authenticationModules.Length; i++)
{
- //only authenticate if the auth protocol is supported - [....]
+ //only authenticate if the auth protocol is supported - Microsoft
if (!AuthSupported(authenticationModules[i])) {
continue;
}
@@ -650,7 +650,7 @@ namespace System.Net.Mail
internal void GetConnection(bool synchronous)
{
- GlobalLog.Enter("ConnectAndHandshakeAsyncResult#" + ValidationHelper.HashString(this) + "::Connect: [....]=" + (synchronous ? "true" : "false"));
+ GlobalLog.Enter("ConnectAndHandshakeAsyncResult#" + ValidationHelper.HashString(this) + "::Connect: sync=" + (synchronous ? "true" : "false"));
if (connection.isConnected)
{
throw new InvalidOperationException(SR.GetString(SR.SmtpAlreadyConnected));
diff --git a/mcs/class/referencesource/System/net/System/URI.cs b/mcs/class/referencesource/System/net/System/URI.cs
index 2113d24b5dd..76a5f3330b5 100644
--- a/mcs/class/referencesource/System/net/System/URI.cs
+++ b/mcs/class/referencesource/System/net/System/URI.cs
@@ -1295,7 +1295,7 @@ namespace System {
}
// Returns the host name represented as IDN (using punycode encoding) regardless of app.config settings
- internal string IdnHost {
+ public string IdnHost {
get {
string host = this.DnsSafeHost;
@@ -2057,7 +2057,7 @@ namespace System {
++length;
}
- // [....] codereview:
+ // Microsoft codereview:
// Old Uri parser tries to figure out on a DosPath in all cases.
// Hence http://c:/ is treated as as DosPath without the host while it should be a host "c", port 80
//
@@ -2376,7 +2376,7 @@ namespace System {
// Note we already checked on general port syntax in ParseMinimal()
// If iri parsing is on with unicode chars then the end of parsed host
- // points to m_[....] string and not m_String
+ // points to m_orig string and not m_String
bool UseOrigUnicodeStrOffset = ((cF& Flags.UseOrigUncdStrOffset) != 0);
// This should happen only once. Reset it
@@ -2555,7 +2555,7 @@ namespace System {
break;
case Flags.IPv6HostType:
- //[....] codereview
+ //Microsoft codereview
// The helper will return [...] string that is not suited for Dns.Resolve()
host = IPv6AddressHelper.ParseCanonicalName(str, idx, ref loopback, ref scopeId);
break;
@@ -2593,7 +2593,7 @@ namespace System {
host = string.Empty;
break;
- default: //it's a bug
+ default: //it's a
throw GetException(ParsingError.BadHostName);
}
@@ -2698,7 +2698,7 @@ namespace System {
//
private string GetEscapedParts(UriComponents uriParts) {
// Which Uri parts are not escaped canonically ?
- // Notice that public UriPart and private Flags must me in [....] so below code can work
+ // Notice that public UriPart and private Flags must me in Sync so below code can work
//
ushort nonCanonical = (ushort)(((ushort)m_Flags & ((ushort)Flags.CannotDisplayCanonical<<7)) >> 6);
if (InFact(Flags.SchemeNotCanonical)) {
@@ -2728,7 +2728,7 @@ namespace System {
private string GetUnescapedParts(UriComponents uriParts, UriFormat formatAs) {
// Which Uri parts are not escaped canonically ?
- // Notice that public UriComponents and private Uri.Flags must me in [....] so below code can work
+ // Notice that public UriComponents and private Uri.Flags must me in Sync so below code can work
//
ushort nonCanonical = (ushort)((ushort)m_Flags & (ushort)Flags.CannotDisplayCanonical);
@@ -3269,7 +3269,7 @@ namespace System {
cF |= Flags.SchemeNotCanonical;
}
// For an authority Uri only // after the scheme would be canonical
- // (compatibility bug http:\\host)
+ // (compatibility
if (((m_Flags & Flags.AuthorityFound) != 0) && (idx + i + 3 >= length || str[idx + i + 1] != '/' ||
str[idx + i + 2] != '/'))
{
@@ -3309,7 +3309,7 @@ namespace System {
// Parsing the Path if any
//
- // For iri parsing if we found unicode the idx has offset into m_[....] string..
+ // For iri parsing if we found unicode the idx has offset into m_orig string..
// so restart parsing from there and make m_Info.Offset.Path as m_string.length
idx = m_Info.Offset.Path;
@@ -3946,7 +3946,7 @@ namespace System {
if (iriParsing || (s_IdnScope != UriIdnScope.None)){
if (iriParsing && hasUnicode && hostNotUnicodeNormalized){
// Normalize user info
- userInfoString = EscapeUnescapeIri(pString, startInput, start + 1, UriComponents.UserInfo);
+ userInfoString = IriHelper.EscapeUnescapeIri(pString, startInput, start + 1, UriComponents.UserInfo);
try{
if (UriParser.ShouldUseLegacyV2Quirks)
userInfoString = userInfoString.Normalize(NormalizationForm.FormC);
@@ -4145,8 +4145,8 @@ namespace System {
{
//No user info for a Basic hostname
flags &= ~Flags.HasUserInfo;
- // Some schemes do not allow HostType = Basic (plus V1 almost never understands this cause of a bug)
- //
+ // Some schemes do not allow HostType = Basic (plus V1 almost never understands this cause of a
+
if(syntax.InFact(UriSyntaxFlags.AllowAnyOtherHost))
{
flags |= Flags.BasicHostType;
@@ -4436,11 +4436,11 @@ namespace System {
if (Char.IsHighSurrogate(c)){
if ((i + 1) < end){
bool surrPair = false;
- valid = CheckIriUnicodeRange(c, str[i + 1], ref surrPair, true);
+ valid = IriHelper.CheckIriUnicodeRange(c, str[i + 1], ref surrPair, true);
}
}
else{
- valid = CheckIriUnicodeRange(c, true);
+ valid = IriHelper.CheckIriUnicodeRange(c, true);
}
if (!valid) res |= Check.NotIriCanonical;
}
@@ -4546,8 +4546,8 @@ namespace System {
int dosPathIdx = SecuredPathIndex;
// Note that unescaping and then escapig back is not transitive hence not safe.
- // We are vulnerable due to the way the UserEscaped flag is processed (see NDPWhidbey#10612 bug).
- // Try to unescape only needed chars.
+ // We are vulnerable due to the way the UserEscaped flag is processed (see NDPWhidbey#10612
+
if (formatAs == UriFormat.UriEscaped)
{
if (InFact(Flags.ShouldBeCompressed))
@@ -5287,7 +5287,7 @@ namespace System {
[Obsolete("The method has been deprecated. It is not used by the system. http://go.microsoft.com/fwlink/?linkid=14202")]
protected virtual void Parse()
{
- // [....] cr: In V1-Everett this method if suppressed by the derived class
+ // Microsoft cr: In V1-Everett this method if suppressed by the derived class
// would lead to an unconstructed Uri instance.
// It does not make any sense and violates Fxcop on calling a virtual method in the ctor.
// Should be deprecated and removed asap.
@@ -5296,7 +5296,7 @@ namespace System {
[Obsolete("The method has been deprecated. It is not used by the system. http://go.microsoft.com/fwlink/?linkid=14202")]
protected virtual void Canonicalize()
{
- // [....] cr: In V1-Everett this method if suppressed by the derived class
+ // Microsoft cr: In V1-Everett this method if suppressed by the derived class
// would lead to supressing of a path compression
// It does not make much sense and violates Fxcop on calling a virtual method in the ctor.
// Should be deprecated and removed asap.
@@ -5305,7 +5305,7 @@ namespace System {
[Obsolete("The method has been deprecated. It is not used by the system. http://go.microsoft.com/fwlink/?linkid=14202")]
protected virtual void Escape()
{
- // [....] cr: In V1-Everett this method if suppressed by the derived class
+ // Microsoft cr: In V1-Everett this method if suppressed by the derived class
// would lead to the same effect as dontEscape=true.
// It does not make much sense and violates Fxcop on calling a virtual method in the ctor.
// Should be deprecated and removed asap.
@@ -5321,7 +5321,7 @@ namespace System {
[Obsolete("The method has been deprecated. Please use GetComponents() or static UnescapeDataString() to unescape a Uri component or a string. http://go.microsoft.com/fwlink/?linkid=14202")]
protected virtual string Unescape(string path) {
- // [....] cr: This method is dangerous since it gives path unescaping control
+ // Microsoft cr: This method is dangerous since it gives path unescaping control
// to the derived class without any permission demand.
// Should be deprecated and removed asap.
@@ -5335,7 +5335,7 @@ namespace System {
[Obsolete("The method has been deprecated. Please use GetComponents() or static EscapeUriString() to escape a Uri component or a string. http://go.microsoft.com/fwlink/?linkid=14202")]
protected static string EscapeString(string str) {
- // [....] cr: This method just does not make sense sa protected
+ // Microsoft cr: This method just does not make sense sa protected
// It should go public static asap
if ((object)str == null) {
@@ -5358,7 +5358,7 @@ namespace System {
[Obsolete("The method has been deprecated. It is not used by the system. http://go.microsoft.com/fwlink/?linkid=14202")]
protected virtual void CheckSecurity() {
- // [....] cr: This method just does not make sense
+ // Microsoft cr: This method just does not make sense
// Should be deprecated and removed asap.
if (Scheme == "telnet") {
@@ -5382,7 +5382,7 @@ namespace System {
[Obsolete("The method has been deprecated. It is not used by the system. http://go.microsoft.com/fwlink/?linkid=14202")]
protected virtual bool IsReservedCharacter(char character) {
- // [....] cr: This method just does not make sense as virtual protected
+ // Microsoft cr: This method just does not make sense as virtual protected
// It should go public static asap
return (character == ';')
@@ -5410,7 +5410,7 @@ namespace System {
[Obsolete("The method has been deprecated. It is not used by the system. http://go.microsoft.com/fwlink/?linkid=14202")]
protected static bool IsExcludedCharacter(char character) {
- // [....] cr: This method just does not make sense sa protected
+ // Microsoft cr: This method just does not make sense sa protected
// It should go public static asap
//
@@ -5453,7 +5453,7 @@ namespace System {
[Obsolete("The method has been deprecated. It is not used by the system. http://go.microsoft.com/fwlink/?linkid=14202")]
protected virtual bool IsBadFileSystemCharacter(char character) {
- // [....] cr: This method just does not make sense sa protected virtual
+ // Microsoft cr: This method just does not make sense sa protected virtual
// It should go public static asap
return (character < 0x20)
diff --git a/mcs/class/referencesource/System/net/System/UriEnumTypes.cs b/mcs/class/referencesource/System/net/System/UriEnumTypes.cs
index b1f4df2bda4..e7ae5527466 100644
--- a/mcs/class/referencesource/System/net/System/UriEnumTypes.cs
+++ b/mcs/class/referencesource/System/net/System/UriEnumTypes.cs
@@ -29,7 +29,7 @@ namespace System
public enum UriComponents
{
// Generic parts.
- // ATTN: The values must stay in [....] with Uri.Flags.xxxNotCanonical
+ // ATTN: The values must stay in sync with Uri.Flags.xxxNotCanonical
Scheme = 0x1,
UserInfo = 0x2,
Host = 0x4,
diff --git a/mcs/class/referencesource/System/net/System/UriExt.cs b/mcs/class/referencesource/System/net/System/UriExt.cs
index 2750c1b150b..8d03b121435 100644
--- a/mcs/class/referencesource/System/net/System/UriExt.cs
+++ b/mcs/class/referencesource/System/net/System/UriExt.cs
@@ -252,7 +252,7 @@ namespace System {
//
// Unescapes entire string and checks if it has unicode chars
//
- private unsafe bool CheckForUnicode(String data)
+ private bool CheckForUnicode(String data)
{
bool hasUnicode = false;
char[] chars = new char[data.Length];
@@ -261,16 +261,11 @@ namespace System {
chars = UriHelper.UnescapeString(data, 0, data.Length, chars, ref count, c_DummyChar, c_DummyChar,
c_DummyChar, UnescapeMode.Unescape | UnescapeMode.UnescapeAll, null, false);
- String tempStr = new string(chars, 0, count);
- int length = tempStr.Length;
-
- fixed (char* tempPtr = tempStr){
- for (int i = 0; i < length; ++i){
- if (tempPtr[i] > '\x7f'){
- // Unicode
- hasUnicode = true;
- break;
- }
+ for (int i = 0; i < count; ++i){
+ if (chars[i] > '\x7f'){
+ // Unicode
+ hasUnicode = true;
+ break;
}
}
return hasUnicode;
@@ -298,72 +293,6 @@ namespace System {
}
//
- // Check if the char (potentially surrogate) at given offset is in the iri range
- // Takes in isQuery because because iri restrictions for query are different
- //
- internal static bool CheckIriUnicodeRange(string uri, int offset, ref bool surrogatePair, bool isQuery)
- {
- char invalidLowSurr = '\uFFFF';
- return CheckIriUnicodeRange(uri[offset],(offset + 1 < uri.Length) ? uri[offset + 1] : invalidLowSurr,
- ref surrogatePair, isQuery);
- }
-
- //
- // Checks if provided non surrogate char lies in iri range
- //
- internal static bool CheckIriUnicodeRange(char unicode, bool isQuery)
- {
- if ((unicode >= '\u00A0' && unicode <= '\uD7FF') ||
- (unicode >= '\uF900' && unicode <= '\uFDCF') ||
- (unicode >= '\uFDF0' && unicode <= '\uFFEF') ||
- (isQuery && unicode >= '\uE000' && unicode <= '\uF8FF')){
- return true;
- }else{
- return false;
- }
- }
-
- //
- // Check if the highSurr is in the iri range or if highSurr and lowSurr are a surr pair then
- // it checks if the combined char is in the range
- // Takes in isQuery because because iri restrictions for query are different
- //
- internal static bool CheckIriUnicodeRange(char highSurr, char lowSurr, ref bool surrogatePair, bool isQuery)
- {
- bool inRange = false;
- surrogatePair = false;
-
- if (CheckIriUnicodeRange(highSurr, isQuery)){
- inRange = true;
- }
- else if (Char.IsHighSurrogate(highSurr)){
- if (Char.IsSurrogatePair(highSurr, lowSurr)){
- surrogatePair = true;
- char[] chars = new char[2] { highSurr, lowSurr };
- string surrPair = new string(chars);
- if (((surrPair.CompareTo("\U00010000") >= 0) && (surrPair.CompareTo("\U0001FFFD") <= 0)) ||
- ((surrPair.CompareTo("\U00020000") >= 0) && (surrPair.CompareTo("\U0002FFFD") <= 0)) ||
- ((surrPair.CompareTo("\U00030000") >= 0) && (surrPair.CompareTo("\U0003FFFD") <= 0)) ||
- ((surrPair.CompareTo("\U00040000") >= 0) && (surrPair.CompareTo("\U0004FFFD") <= 0)) ||
- ((surrPair.CompareTo("\U00050000") >= 0) && (surrPair.CompareTo("\U0005FFFD") <= 0)) ||
- ((surrPair.CompareTo("\U00060000") >= 0) && (surrPair.CompareTo("\U0006FFFD") <= 0)) ||
- ((surrPair.CompareTo("\U00070000") >= 0) && (surrPair.CompareTo("\U0007FFFD") <= 0)) ||
- ((surrPair.CompareTo("\U00080000") >= 0) && (surrPair.CompareTo("\U0008FFFD") <= 0)) ||
- ((surrPair.CompareTo("\U00090000") >= 0) && (surrPair.CompareTo("\U0009FFFD") <= 0)) ||
- ((surrPair.CompareTo("\U000A0000") >= 0) && (surrPair.CompareTo("\U000AFFFD") <= 0)) ||
- ((surrPair.CompareTo("\U000B0000") >= 0) && (surrPair.CompareTo("\U000BFFFD") <= 0)) ||
- ((surrPair.CompareTo("\U000C0000") >= 0) && (surrPair.CompareTo("\U000CFFFD") <= 0)) ||
- ((surrPair.CompareTo("\U000D0000") >= 0) && (surrPair.CompareTo("\U000DFFFD") <= 0)) ||
- ((surrPair.CompareTo("\U000E0000") >= 0) && (surrPair.CompareTo("\U000EFFFD") <= 0)) ||
- (isQuery && (((surrPair.CompareTo("\U000F0000") >= 0) && (surrPair.CompareTo("\U000FFFFD") <= 0)) ||
- ((surrPair.CompareTo("\U00100000") >= 0) && (surrPair.CompareTo("\U0010FFFD") <= 0)))))
- inRange = true;
- }
- }
-
- return inRange;
- }
- //
//
// Returns true if the string represents a valid argument to the Uri ctor
// If uriKind != AbsoluteUri then certain parsing erros are ignored but Uri usage is limited
@@ -482,9 +411,7 @@ namespace System {
comparisonType
);
}
-
-
public bool IsWellFormedOriginalString()
{
if (IsNotAbsoluteUri || Syntax.IsSimple)
@@ -703,52 +630,6 @@ namespace System {
}
//
- // Check reserved chars according to rfc 3987 in a sepecific component
- //
- internal bool CheckIsReserved(char ch, UriComponents component)
- {
- if ((component != UriComponents.Scheme) ||
- (component != UriComponents.UserInfo) ||
- (component != UriComponents.Host) ||
- (component != UriComponents.Port) ||
- (component != UriComponents.Path) ||
- (component != UriComponents.Query) ||
- (component != UriComponents.Fragment)
- )
- return (component == (UriComponents)0)? IsGenDelim(ch): false;
- else
- {
- switch(component)
- {
- // Reserved chars according to rfc 3987
- case UriComponents.UserInfo:
- if( ch == '/' || ch == '?' || ch == '#' || ch == '[' || ch == ']' || ch == '@' )
- return true;
- break;
- case UriComponents.Host:
- if( ch == ':' || ch == '/' || ch == '?' || ch == '#' || ch == '[' || ch == ']' || ch == '@' )
- return true;
- break;
- case UriComponents.Path:
- if( ch == '/' || ch == '?' || ch == '#' || ch == '[' || ch == ']' )
- return true;
- break;
- case UriComponents.Query:
- if(ch == '#' || ch == '[' || ch == ']')
- return true;
- break;
- case UriComponents.Fragment:
- if(ch == '#' || ch == '[' || ch == ']')
- return true;
- break;
- default:
- break;
- }
- return false;
- }
- }
-
- //
// Cleans up the specified component according to Iri rules
// a) Chars allowed by iri in a component are unescaped if found escaped
// b) Bidi chars are stripped
@@ -758,197 +639,10 @@ namespace System {
{
fixed (char *pInput = input)
{
- return EscapeUnescapeIri(pInput, start, end, component);
+ return IriHelper.EscapeUnescapeIri(pInput, start, end, component);
}
}
- //
- // See above explanation
- //
- internal unsafe string EscapeUnescapeIri(char* pInput, int start, int end, UriComponents component)
- {
-
- char [] dest = new char[ end - start ];
- byte[] bytes = null;
-
- // Pin the array to do pointer accesses
- GCHandle destHandle = GCHandle.Alloc(dest, GCHandleType.Pinned);
- char* pDest = (char*)destHandle.AddrOfPinnedObject();
-
- int escapedReallocations = 0;
- const int bufferCapacityIncrease = 30;
-
- int next = start;
- int destOffset = 0;
- char ch;
- bool escape = false;
- bool surrogatePair = false;
- bool isUnicode = false;
-
- for (;next < end; ++next)
- {
- escape = false;
- surrogatePair = false;
- isUnicode = false;
-
- if ((ch = pInput[next]) == '%'){
- if (next + 2 < end){
- ch = UriHelper.EscapedAscii(pInput[next + 1], pInput[next + 2]);
- // Do not unescape a reserved char
- if (ch == c_DummyChar || ch == '%' || CheckIsReserved(ch, component) || UriHelper.IsNotSafeForUnescape(ch)){
- // keep as is
- pDest[destOffset++] = pInput[next++];
- pDest[destOffset++] = pInput[next++];
- pDest[destOffset++] = pInput[next];
- continue;
- }
- else if (ch <= '\x7F'){
- //ASCII
- pDest[destOffset++] = ch;
- next += 2;
- continue;
- }else{
- // possibly utf8 encoded sequence of unicode
-
- // check if safe to unescape according to Iri rules
-
- int startSeq = next;
- int byteCount = 1;
- // lazy initialization of max size, will reuse the array for next sequences
- if ((object)bytes == null)
- bytes = new byte[end - next];
-
- bytes[0] = (byte)ch;
- next += 3;
- while (next < end)
- {
- // Check on exit criterion
- if ((ch = pInput[next]) != '%' || next + 2 >= end)
- break;
-
- // already made sure we have 3 characters in str
- ch = UriHelper.EscapedAscii(pInput[next + 1], pInput[next + 2]);
-
- //invalid hex sequence ?
- if (ch == c_DummyChar)
- break;
- // character is not part of a UTF-8 sequence ?
- else if (ch < '\x80')
- break;
- else
- {
- //a UTF-8 sequence
- bytes[byteCount++] = (byte)ch;
- next += 3;
- }
- }
- next--; // for loop will increment
-
- Encoding noFallbackCharUTF8 = (Encoding)Encoding.UTF8.Clone();
- noFallbackCharUTF8.EncoderFallback = new EncoderReplacementFallback("");
- noFallbackCharUTF8.DecoderFallback = new DecoderReplacementFallback("");
-
- char[] unescapedChars = new char[bytes.Length];
- int charCount = noFallbackCharUTF8.GetChars(bytes, 0, byteCount, unescapedChars, 0);
-
-
- if (charCount != 0){
-
- // need to check for invalid utf sequences that may not have given any chars
-
- // check if unicode value is allowed
- UriHelper.MatchUTF8Sequence( pDest, dest, ref destOffset, unescapedChars, charCount, bytes,
- byteCount, component == UriComponents.Query, true);
- }
- else
- {
- // copy escaped sequence as is
- for (int i = startSeq; i <= next; ++i)
- pDest[destOffset++] = pInput[i];
- }
-
- }
-
- }else{
- pDest[destOffset++] = pInput[next];
- }
- }
- else if (ch > '\x7f'){
- // unicode
-
- char ch2;
-
- if ((Char.IsHighSurrogate(ch)) && (next + 1 < end)){
- ch2 = pInput[next + 1];
- escape = !CheckIriUnicodeRange(ch, ch2, ref surrogatePair, component == UriComponents.Query);
- if (!escape){
- // copy the two chars
- pDest[destOffset++] = pInput[next++];
- pDest[destOffset++] = pInput[next];
- }else{
- isUnicode = true;
- }
- }else{
- if(CheckIriUnicodeRange(ch, component == UriComponents.Query)){
- if (!IsBidiControlCharacter(ch)){
- // copy it
- pDest[destOffset++] = pInput[next];
- }
- }else{
- // escape it
- escape = true;
- isUnicode = true;
- }
- }
- }else{
- // just copy the character
- pDest[destOffset++] = pInput[next];
- }
-
- if (escape){
- if (escapedReallocations < 4){
- // may need more memory since we didn't anticipate escaping
- int newBufferLength = dest.Length + (bufferCapacityIncrease - escapedReallocations) * 3;
- escapedReallocations = bufferCapacityIncrease;
-
- char[] newDest = new char[newBufferLength];
-
- fixed (char* pNewDest = newDest){
- Buffer.Memcpy((byte *)pNewDest, (byte *)pDest, destOffset * sizeof(char));
- }
- if (destHandle.IsAllocated)
- destHandle.Free();
- dest = newDest;
-
- // re-pin new dest[] array
- destHandle = GCHandle.Alloc(dest, GCHandleType.Pinned);
- pDest = (char*)destHandle.AddrOfPinnedObject();
- }else{
- if (isUnicode){
- if (surrogatePair)
- escapedReallocations -= 4;
- else
- escapedReallocations -= 3;
- }
- else
- --escapedReallocations;
- }
-
- byte[] encodedBytes = new byte[4];
- fixed (byte* pEncodedBytes = encodedBytes){
- int encodedBytesCount = Encoding.UTF8.GetBytes(pInput + next, surrogatePair ? 2 : 1, pEncodedBytes, 4);
-
- for (int count = 0; count < encodedBytesCount; ++count)
- UriHelper.EscapeAsciiChar((char)encodedBytes[count], dest, ref destOffset);
- }
- }
- }
-
- if (destHandle.IsAllocated)
- destHandle.Free();
- return new string(dest, 0 , destOffset );
- }
-
// Should never be used except by the below method
private Uri(Flags flags, UriParser uriParser, string uri)
{
diff --git a/mcs/class/referencesource/System/net/System/UriHelper.cs b/mcs/class/referencesource/System/net/System/UriHelper.cs
index 5d06aadf63c..0616d14927d 100644
--- a/mcs/class/referencesource/System/net/System/UriHelper.cs
+++ b/mcs/class/referencesource/System/net/System/UriHelper.cs
@@ -1,9 +1,9 @@
-using System.Globalization;
-using System.Text;
-
namespace System
{
-
+ using System.Globalization;
+ using System.Text;
+ using System.Diagnostics;
+
internal static class UriHelper
{
private static readonly char[] HexUpperChars = {
@@ -344,7 +344,7 @@ namespace System
continue;
}
else if (iriParsing && ((ch <='\x9F' && IsNotSafeForUnescape(ch)) ||
- (ch >'\x9F' &&!Uri.CheckIriUnicodeRange(ch, isQuery))))
+ (ch >'\x9F' &&!IriHelper.CheckIriUnicodeRange(ch, isQuery))))
{
// check if unenscaping gives a char ouside iri range
// if it does then keep it escaped
@@ -521,11 +521,11 @@ done: return dest;
if (iriParsing)
{
if (!isHighSurr)
- inIriRange = Uri.CheckIriUnicodeRange(unescapedChars[j], isQuery);
+ inIriRange = IriHelper.CheckIriUnicodeRange(unescapedChars[j], isQuery);
else
{
bool surrPair = false;
- inIriRange = Uri.CheckIriUnicodeRange(unescapedChars[j], unescapedChars[j + 1],
+ inIriRange = IriHelper.CheckIriUnicodeRange(unescapedChars[j], unescapedChars[j + 1],
ref surrPair, isQuery);
}
}
@@ -535,6 +535,7 @@ done: return dest;
// Escape any invalid bytes that were before this character
while (bytes[count] != encodedBytes[0])
{
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
EscapeAsciiChar((char)bytes[count++], dest, ref destOffset);
}
@@ -560,32 +561,43 @@ done: return dest;
// need to keep chars not allowed as escaped
for (int l = 0; l < encodedBytes.Length; ++l)
{
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
EscapeAsciiChar((char)encodedBytes[l], dest, ref destOffset);
}
}
else if (!Uri.IsBidiControlCharacter(unescapedCharsPtr[j]))
{
//copy chars
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
pDest[destOffset++] = unescapedCharsPtr[j];
+ if (isHighSurr)
+ {
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
+ pDest[destOffset++] = unescapedCharsPtr[j + 1];
+ }
}
- if (isHighSurr)
- pDest[destOffset++] = unescapedCharsPtr[j + 1];
}
else
{
//copy chars
+ Debug.Assert(dest.Length > destOffset);
pDest[destOffset++] = unescapedCharsPtr[j];
if (isHighSurr)
+ {
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
pDest[destOffset++] = unescapedCharsPtr[j + 1];
+ }
}
- break; // break out of while (true) since we've matched this char bytes
+
+ break; // break out of while (true) since we've matched this char bytes
}
else
{
// copy bytes till place where bytes dont match
for (int l = 0; l < k; ++l)
{
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
EscapeAsciiChar((char)bytes[count++], dest, ref destOffset);
}
}
@@ -599,6 +611,7 @@ done: return dest;
// Include any trailing invalid sequences
while (count < byteCount)
{
+ Debug.Assert(dest.Length > destOffset, "Buffer overrun detected");
EscapeAsciiChar((char)bytes[count++], dest, ref destOffset);
}
}
diff --git a/mcs/class/referencesource/System/net/System/_UriSyntax.cs b/mcs/class/referencesource/System/net/System/_UriSyntax.cs
index fc878fbddd3..d0b35ecf613 100644
--- a/mcs/class/referencesource/System/net/System/_UriSyntax.cs
+++ b/mcs/class/referencesource/System/net/System/_UriSyntax.cs
@@ -422,8 +422,8 @@ namespace System {
UriSyntaxFlags.AllowEmptyHost |
UriSyntaxFlags.AllowUncHost | //
UriSyntaxFlags.AllowAnInternetHost |
- // UriSyntaxFlags.AllowAnyOtherHost | // V1.1 has a bug and so does not support this case
- //
+ // UriSyntaxFlags.AllowAnyOtherHost | // V1.1 has a
+
UriSyntaxFlags.PathIsRooted |
UriSyntaxFlags.AllowDOSPath | //
UriSyntaxFlags.ConvertPathSlashes | // V1 compat, it will always convert backslashes
diff --git a/mcs/class/referencesource/System/regex/system/text/regularexpressions/Regex.cs b/mcs/class/referencesource/System/regex/system/text/regularexpressions/Regex.cs
index 8256cb7a417..dbe508857e2 100644
--- a/mcs/class/referencesource/System/regex/system/text/regularexpressions/Regex.cs
+++ b/mcs/class/referencesource/System/regex/system/text/regularexpressions/Regex.cs
@@ -445,7 +445,7 @@ namespace System.Text.RegularExpressions {
/// Unescapes any escaped characters in the input string.
/// </para>
/// </devdoc>
- [SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Unescape", Justification="[....]: already shipped since v1 - can't fix without causing a breaking change")]
+ [SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Unescape", Justification="Microsoft: already shipped since v1 - can't fix without causing a breaking change")]
public static String Unescape(String str) {
if (str==null)
throw new ArgumentNullException("str");
@@ -1200,7 +1200,7 @@ namespace System.Text.RegularExpressions {
#endif
[ResourceExposure(ResourceScope.Machine)] // The AssemblyName is interesting.
[ResourceConsumption(ResourceScope.Machine)]
- [SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="assemblyname", Justification="[....]: already shipped since v1 - can't fix without causing a breaking change")]
+ [SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="assemblyname", Justification="Microsoft: already shipped since v1 - can't fix without causing a breaking change")]
public static void CompileToAssembly(RegexCompilationInfo[] regexinfos, AssemblyName assemblyname) {
CompileToAssemblyInternal(regexinfos, assemblyname, null, null);
@@ -1213,7 +1213,7 @@ namespace System.Text.RegularExpressions {
#endif
[ResourceExposure(ResourceScope.Machine)] // The AssemblyName is interesting.
[ResourceConsumption(ResourceScope.Machine)]
- [SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="assemblyname", Justification="[....]: already shipped since v1 - can't fix without causing a breaking change")]
+ [SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="assemblyname", Justification="Microsoft: already shipped since v1 - can't fix without causing a breaking change")]
public static void CompileToAssembly(RegexCompilationInfo[] regexinfos, AssemblyName assemblyname, CustomAttributeBuilder[] attributes) {
CompileToAssemblyInternal(regexinfos, assemblyname, attributes, null);
}
@@ -1223,7 +1223,7 @@ namespace System.Text.RegularExpressions {
#endif
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
- [SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="assemblyname", Justification="[....]: already shipped since v1 - can't fix without causing a breaking change")]
+ [SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="assemblyname", Justification="Microsoft: already shipped since v1 - can't fix without causing a breaking change")]
public static void CompileToAssembly(RegexCompilationInfo[] regexinfos, AssemblyName assemblyname, CustomAttributeBuilder[] attributes, String resourceFile) {
CompileToAssemblyInternal(regexinfos, assemblyname, attributes, resourceFile);
}
diff --git a/mcs/class/referencesource/System/regex/system/text/regularexpressions/RegexBoyerMoore.cs b/mcs/class/referencesource/System/regex/system/text/regularexpressions/RegexBoyerMoore.cs
index cd1c87f36ac..5c33cee49e6 100644
--- a/mcs/class/referencesource/System/regex/system/text/regularexpressions/RegexBoyerMoore.cs
+++ b/mcs/class/referencesource/System/regex/system/text/regularexpressions/RegexBoyerMoore.cs
@@ -86,13 +86,13 @@ namespace System.Text.RegularExpressions
* if char "i" is the first one from the right that doesn't match,
* then we know the matcher can advance by _positive[i].
*
- * <STRIP> This algorithm appears to be a simplified variant of the
- * standard Boyer-Moore good suffix calculation. It could
- * be one of D.M. Sunday's variations, but I have not found which one.
- * </STRIP>
* <
+
+
+
+
*/
_positive = new int[pattern.Length];
@@ -143,15 +143,15 @@ namespace System.Text.RegularExpressions
// scan for the chars for which there are no shifts that yield a different candidate
- /* <STRIP>
- * The inside of the if statement used to say
- * "_positive[match] = last - beforefirst;"
- * I've changed it to the below code. This
- * is slightly less agressive in how much we skip, but at worst it
- * should mean a little more work rather than skipping a potential
- * match.
- * </STRIP>
- */
+ /* <
+
+
+
+
+
+
+
+*/
while (match != beforefirst) {
if (_positive[match] == 0)
_positive[match] = bump;
diff --git a/mcs/class/referencesource/System/regex/system/text/regularexpressions/RegexCompiler.cs b/mcs/class/referencesource/System/regex/system/text/regularexpressions/RegexCompiler.cs
index 69fcc04a1ea..36b5e8e07d0 100644
--- a/mcs/class/referencesource/System/regex/system/text/regularexpressions/RegexCompiler.cs
+++ b/mcs/class/referencesource/System/regex/system/text/regularexpressions/RegexCompiler.cs
@@ -212,7 +212,7 @@ namespace System.Text.RegularExpressions {
*/
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
- [SuppressMessage("Microsoft.Security","CA2106:SecureAsserts", Justification="[....]: SECREVIEW : Regex only generates string manipulation, so this is OK")]
+ [SuppressMessage("Microsoft.Security","CA2106:SecureAsserts", Justification="Microsoft: SECREVIEW : Regex only generates string manipulation, so this is OK")]
internal static void CompileToAssembly(RegexCompilationInfo[] regexes, AssemblyName an, CustomAttributeBuilder[] attribs, String resourceFile) {
RegexTypeCompiler c = new RegexTypeCompiler(an, attribs, resourceFile);
@@ -3038,7 +3038,7 @@ namespace System.Text.RegularExpressions {
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
- [SuppressMessage("Microsoft.Security","CA2106:SecureAsserts", Justification="[....]: SECREVIEW : Regex only generates string manipulation, so this is OK")]
+ [SuppressMessage("Microsoft.Security","CA2106:SecureAsserts", Justification="Microsoft: SECREVIEW : Regex only generates string manipulation, so this is OK")]
internal RegexTypeCompiler(AssemblyName an, CustomAttributeBuilder[] attribs, String resourceFile) {
// SECREVIEW : Regex only generates string manipulation, so this is
// : ok.
diff --git a/mcs/class/referencesource/System/security/system/security/cryptography/cryptoapi.cs b/mcs/class/referencesource/System/security/system/security/cryptography/cryptoapi.cs
index 81bfcadd0ba..82a6a95184e 100644
--- a/mcs/class/referencesource/System/security/system/security/cryptography/cryptoapi.cs
+++ b/mcs/class/referencesource/System/security/system/security/cryptography/cryptoapi.cs
@@ -18,10 +18,11 @@ namespace System.Security.Cryptography {
using System.Runtime.CompilerServices;
using System.Runtime.ConstrainedExecution;
using System.Runtime.Versioning;
+ using System.Security;
using System.Security.Cryptography.X509Certificates;
using System.Security.Permissions;
using System.Text;
-
+
using _FILETIME = System.Runtime.InteropServices.ComTypes.FILETIME;
internal abstract class CAPIBase {
@@ -1932,6 +1933,9 @@ namespace System.Security.Cryptography {
[In] IntPtr hModule,
[In] [MarshalAs(UnmanagedType.LPStr)] string lpProcName);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(KERNEL32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal static extern
@@ -1945,6 +1949,9 @@ namespace System.Security.Cryptography {
IntPtr LoadLibrary(
[In] [MarshalAs(UnmanagedType.LPStr)] string lpFileName);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.Machine)] // This is a way of recovering from process SxS problems.
internal static extern
@@ -1962,29 +1969,41 @@ namespace System.Security.Cryptography {
[In] SafeLocalAllocHandle pbCertEncoded,
[In] uint cbCertEncoded);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal static extern
SafeCertContextHandle CertDuplicateCertificateContext(
[In] IntPtr pCertContext);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal static extern
SafeCertContextHandle CertDuplicateCertificateContext(
[In] SafeCertContextHandle pCertContext);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal static extern
- SafeCertChainHandle CertDuplicateCertificateChain(
+ SafeX509ChainHandle CertDuplicateCertificateChain(
[In] IntPtr pChainContext);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal static extern
- SafeCertChainHandle CertDuplicateCertificateChain(
- [In] SafeCertChainHandle pChainContext);
+ SafeX509ChainHandle CertDuplicateCertificateChain(
+ [In] SafeX509ChainHandle pChainContext);
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
@@ -2006,6 +2025,9 @@ namespace System.Security.Cryptography {
bool CertFreeCertificateContext (
[In] IntPtr pCertContext);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal extern static
@@ -2017,8 +2039,11 @@ namespace System.Security.Cryptography {
[In] ref CERT_CHAIN_PARA pChainPara,
[In] uint dwFlags,
[In] IntPtr pvReserved,
- [In,Out] ref SafeCertChainHandle ppChainContext);
+ [In,Out] ref SafeX509ChainHandle ppChainContext);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal extern static
@@ -2037,6 +2062,9 @@ namespace System.Security.Cryptography {
[In] IntPtr pbKeyUsage,
[In,Out] uint cbKeyUsage);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Unicode, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal static extern
@@ -2055,6 +2083,9 @@ namespace System.Security.Cryptography {
[In] uint dwCertEncodingType,
[In] IntPtr pPublicKey); // PCERT_PUBLIC_KEY_INFO
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal static extern
@@ -2065,6 +2096,9 @@ namespace System.Security.Cryptography {
[In,Out] SafeLocalAllocHandle rghOIDs,
[In,Out] IntPtr pcbOIDs);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal static extern
@@ -2075,6 +2109,9 @@ namespace System.Security.Cryptography {
[In,Out] SafeLocalAllocHandle psz,
[In] uint csz);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal static extern
@@ -2103,15 +2140,21 @@ namespace System.Security.Cryptography {
[In,Out] ref _FILETIME pTimeToVerify,
[In] IntPtr pCertInfo);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal extern static
bool CertVerifyCertificateChainPolicy(
[In] IntPtr pszPolicyOID,
- [In] SafeCertChainHandle pChainContext,
+ [In] SafeX509ChainHandle pChainContext,
[In] ref CERT_CHAIN_POLICY_PARA pPolicyPara,
[In,Out] ref CERT_CHAIN_POLICY_STATUS pPolicyStatus);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal extern static
@@ -2123,6 +2166,9 @@ namespace System.Security.Cryptography {
[In,Out] ref uint pdwKeySpec,
[In,Out] ref bool pfCallerFreeProv);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal static extern
@@ -2135,6 +2181,9 @@ namespace System.Security.Cryptography {
[In,Out] SafeLocalAllocHandle pvStructInfo,
[In,Out] IntPtr pcbStructInfo);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal static extern
@@ -2147,6 +2196,9 @@ namespace System.Security.Cryptography {
[In,Out] SafeLocalAllocHandle pvStructInfo,
[In,Out] IntPtr pcbStructInfo);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal static extern
@@ -2157,6 +2209,9 @@ namespace System.Security.Cryptography {
[In,Out] SafeLocalAllocHandle pbEncoded,
[In,Out] IntPtr pcbEncoded);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true, BestFitMapping=false)]
[ResourceExposure(ResourceScope.None)]
internal static extern
@@ -2175,6 +2230,9 @@ namespace System.Security.Cryptography {
[In] IntPtr pvKey,
[In] OidGroup dwGroupId);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal extern static
@@ -2183,6 +2241,9 @@ namespace System.Security.Cryptography {
[In] SafeLocalAllocHandle pvKey,
[In] OidGroup dwGroupId);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true, BestFitMapping=false)]
[ResourceExposure(ResourceScope.None)]
internal extern static
@@ -2197,6 +2258,9 @@ namespace System.Security.Cryptography {
[In,Out] SafeLocalAllocHandle pbFormat,
[In,Out] IntPtr pcbFormat);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal extern static
@@ -2312,19 +2376,25 @@ namespace System.Security.Cryptography {
void SetLastError(uint dwErrorCode);
[DllImport(KERNEL32, SetLastError=true)]
+#if !FEATURE_CORESYSTEM
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
[ResourceExposure(ResourceScope.None)]
internal static extern
IntPtr LocalFree(IntPtr handle);
[DllImport(KERNEL32, SetLastError=true)]
+#if !FEATURE_CORESYSTEM
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
[ResourceExposure(ResourceScope.None)]
internal static extern
void ZeroMemory(IntPtr handle, uint length);
[DllImport(ADVAPI32, SetLastError=true)]
+#if !FEATURE_CORESYSTEM
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
[ResourceExposure(ResourceScope.None)]
internal static extern
int LsaNtStatusToWinError (
@@ -2383,6 +2453,9 @@ namespace System.Security.Cryptography {
[In] uint dwProvType,
[In] uint dwFlags);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal protected extern static
@@ -2392,6 +2465,9 @@ namespace System.Security.Cryptography {
[In] uint dwAddDisposition,
[In,Out] SafeCertContextHandle ppStoreContext);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal protected extern static
@@ -2401,12 +2477,18 @@ namespace System.Security.Cryptography {
[In] uint dwAddDisposition,
[In,Out] SafeCertContextHandle ppStoreContext);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal protected extern static
bool CertDeleteCertificateFromStore (
[In] SafeCertContextHandle pCertContext);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport (CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal protected static extern
@@ -2414,6 +2496,9 @@ namespace System.Security.Cryptography {
[In] SafeCertStoreHandle hCertStore,
[In] IntPtr pPrevCertContext);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport (CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal protected static extern
@@ -2422,6 +2507,9 @@ namespace System.Security.Cryptography {
[In] SafeCertContextHandle pPrevCertContext);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport (CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal protected static extern
@@ -2433,6 +2521,9 @@ namespace System.Security.Cryptography {
[In] IntPtr pvFindPara,
[In] SafeCertContextHandle pPrevCertContext);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Unicode, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal protected static extern
@@ -2443,6 +2534,9 @@ namespace System.Security.Cryptography {
[In] uint dwFlags,
[In] string pvPara); // we want this always as a Unicode string.
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport (CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal protected static extern
@@ -2454,6 +2548,9 @@ namespace System.Security.Cryptography {
[In,Out] IntPtr pvSaveToPara,
[In] uint dwFlags);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal protected extern static
@@ -2463,6 +2560,9 @@ namespace System.Security.Cryptography {
[In] uint dwFlags,
[In] IntPtr pvData);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal protected extern static
@@ -2472,6 +2572,9 @@ namespace System.Security.Cryptography {
[In] uint dwFlags,
[In] IntPtr pvData);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal protected extern static
@@ -2550,6 +2653,9 @@ namespace System.Security.Cryptography {
[In,Out] IntPtr phMsg,
[In,Out] IntPtr ppvContext);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal protected static extern
@@ -2590,6 +2696,9 @@ namespace System.Security.Cryptography {
[In] uint dwFlags,
[In,Out] IntPtr pDataBlob);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport (CRYPT32, CharSet=CharSet.Unicode, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal protected static extern
@@ -2599,6 +2708,9 @@ namespace System.Security.Cryptography {
[In] string szPassword,
[In] uint dwFlags);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[DllImport(CRYPT32, CharSet=CharSet.Unicode, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal protected static extern
@@ -2645,6 +2757,9 @@ namespace System.Security.Cryptography {
return BlobToByteArray(blob);
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
internal static
byte[] BlobToByteArray(CAPI.CRYPTOAPI_BLOB blob) {
if (blob.cbData == 0)
@@ -2695,6 +2810,9 @@ namespace System.Security.Cryptography {
return true;
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
internal static unsafe
bool DecodeObject(IntPtr pszStructType,
byte[] pbEncoded,
@@ -2768,6 +2886,9 @@ namespace System.Security.Cryptography {
return true;
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
internal static unsafe
bool EncodeObject(string lpszStructType,
IntPtr pvStructInfo,
@@ -2802,6 +2923,9 @@ namespace System.Security.Cryptography {
return true;
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
internal static unsafe
string GetCertNameInfo(
[In] SafeCertContextHandle safeCertContext,
@@ -2844,6 +2968,9 @@ namespace System.Security.Cryptography {
return name;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
new internal static
SafeLocalAllocHandle LocalAlloc(uint uFlags, IntPtr sizetdwBytes) {
SafeLocalAllocHandle safeLocalAllocHandle = CAPIMethods.LocalAlloc(uFlags, sizetdwBytes);
@@ -2854,7 +2981,9 @@ namespace System.Security.Cryptography {
}
[ResourceExposure(ResourceScope.Machine)]
+#if !FEATURE_CORESYSTEM
[ResourceConsumption(ResourceScope.Machine)]
+#endif
new internal static
bool CryptAcquireContext(
[In,Out] ref SafeCryptProvHandle hCryptProv,
@@ -2870,12 +2999,14 @@ namespace System.Security.Cryptography {
parameters.KeyNumber = -1;
parameters.Flags = (CspProviderFlags) ((dwFlags & CAPI.CRYPT_MACHINE_KEYSET) == CAPI.CRYPT_MACHINE_KEYSET ? CspProviderFlags.UseMachineKeyStore : 0);
+#if !FEATURE_CORESYSTEM
if (!CompatibilitySwitches.IsAppEarlierThanWindowsPhone8) {
KeyContainerPermission kp = new KeyContainerPermission(KeyContainerPermissionFlags.NoFlags);
KeyContainerPermissionAccessEntry entry = new KeyContainerPermissionAccessEntry(parameters, KeyContainerPermissionFlags.Open);
kp.AccessEntries.Add(entry);
kp.Demand();
}
+#endif
bool rc = CAPIMethods.CryptAcquireContext(ref hCryptProv,
pwszContainer,
@@ -2895,7 +3026,9 @@ namespace System.Security.Cryptography {
}
[ResourceExposure(ResourceScope.Machine)]
+#if !FEATURE_CORESYSTEM
[ResourceConsumption(ResourceScope.Machine)]
+#endif
internal static
bool CryptAcquireContext(
ref SafeCryptProvHandle hCryptProv,
@@ -2921,6 +3054,9 @@ namespace System.Security.Cryptography {
dwFlags);
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
new internal static
CRYPT_OID_INFO CryptFindOIDInfo(
[In] uint dwKeyType,
@@ -2941,6 +3077,9 @@ namespace System.Security.Cryptography {
return pOIDInfo;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
new internal static
CRYPT_OID_INFO CryptFindOIDInfo(
[In] uint dwKeyType,
@@ -2963,6 +3102,9 @@ namespace System.Security.Cryptography {
return pOIDInfo;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
internal static unsafe
string CryptFormatObject(
[In] uint dwCertEncodingType,
@@ -3010,6 +3152,9 @@ namespace System.Security.Cryptography {
return s;
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
internal static unsafe
string CryptFormatObject(
[In] uint dwCertEncodingType,
@@ -3142,6 +3287,9 @@ namespace System.Security.Cryptography {
pStreamInfo);
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
new internal static
bool CertSetCertificateContextProperty (
[In] IntPtr pCertContext,
@@ -3156,13 +3304,18 @@ namespace System.Security.Cryptography {
dwPropId != CERT_DELETE_KEYSET_PROP_ID && dwPropId != CERT_KEY_PROV_INFO_PROP_ID)
throw new ArgumentException(SR.GetString(SR.Security_InvalidValue), "dwFlags");
+#if !FEATURE_CORESYSTEM
// We do not want semi-trusted code to archive or set the friendly name property of a cert.
if (dwPropId == CERT_ARCHIVED_PROP_ID || dwPropId == CERT_FRIENDLY_NAME_PROP_ID || dwPropId == CERT_KEY_PROV_INFO_PROP_ID)
new PermissionSet(PermissionState.Unrestricted).Demand();
+#endif
return CAPIMethods.CertSetCertificateContextProperty(pCertContext, dwPropId, dwFlags, pvData);
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
new internal static
bool CertSetCertificateContextProperty (
[In] SafeCertContextHandle pCertContext,
@@ -3177,13 +3330,18 @@ namespace System.Security.Cryptography {
dwPropId != CERT_DELETE_KEYSET_PROP_ID && dwPropId != CERT_KEY_PROV_INFO_PROP_ID)
throw new ArgumentException(SR.GetString(SR.Security_InvalidValue), "dwFlags");
+#if !FEATURE_CORESYSTEM
// We do not want semi-trusted code to archive or set the friendly name property of a cert.
if (dwPropId == CERT_ARCHIVED_PROP_ID || dwPropId == CERT_FRIENDLY_NAME_PROP_ID || dwPropId == CERT_KEY_PROV_INFO_PROP_ID)
new PermissionSet(PermissionState.Unrestricted).Demand();
+#endif
return CAPIMethods.CertSetCertificateContextProperty(pCertContext, dwPropId, dwFlags, pvData);
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
new internal static
bool CertSetCertificateContextProperty (
[In] SafeCertContextHandle pCertContext,
@@ -3200,13 +3358,18 @@ namespace System.Security.Cryptography {
dwPropId != CERT_DELETE_KEYSET_PROP_ID && dwPropId != CERT_KEY_PROV_INFO_PROP_ID)
throw new ArgumentException(SR.GetString(SR.Security_InvalidValue), "dwFlags");
+#if !FEATURE_CORESYSTEM
// We do not want semi-trusted code to archive or set the friendly name property of a cert.
if (dwPropId == CERT_ARCHIVED_PROP_ID || dwPropId == CERT_FRIENDLY_NAME_PROP_ID || dwPropId == CERT_KEY_PROV_INFO_PROP_ID)
new PermissionSet(PermissionState.Unrestricted).Demand();
+#endif
return CAPIMethods.CertSetCertificateContextProperty(pCertContext, dwPropId, dwFlags, safeLocalAllocHandle);
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
new internal static
SafeCertContextHandle CertDuplicateCertificateContext (
[In] IntPtr pCertContext) {
@@ -3216,6 +3379,9 @@ namespace System.Security.Cryptography {
return CAPIMethods.CertDuplicateCertificateContext(pCertContext);
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
new internal static
SafeCertContextHandle CertDuplicateCertificateContext (
[In] SafeCertContextHandle pCertContext) {
@@ -3225,6 +3391,9 @@ namespace System.Security.Cryptography {
return CAPIMethods.CertDuplicateCertificateContext(pCertContext);
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
new internal static
IntPtr CertEnumCertificatesInStore (
[In] SafeCertStoreHandle hCertStore,
@@ -3235,10 +3404,12 @@ namespace System.Security.Cryptography {
if (hCertStore.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "hCertStore");
+#if !FEATURE_CORESYSTEM
if (pPrevCertContext == IntPtr.Zero) {
StorePermission sp = new StorePermission(StorePermissionFlags.EnumerateCertificates);
sp.Demand();
}
+#endif
IntPtr handle = CAPIMethods.CertEnumCertificatesInStore(hCertStore, pPrevCertContext);
if (handle == IntPtr.Zero) {
@@ -3251,6 +3422,9 @@ namespace System.Security.Cryptography {
return handle;
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
new internal static
SafeCertContextHandle CertEnumCertificatesInStore (
[In] SafeCertStoreHandle hCertStore,
@@ -3261,10 +3435,12 @@ namespace System.Security.Cryptography {
if (hCertStore.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "hCertStore");
+#if !FEATURE_CORESYSTEM
if (pPrevCertContext.IsInvalid) {
StorePermission sp = new StorePermission(StorePermissionFlags.EnumerateCertificates);
sp.Demand();
}
+#endif
SafeCertContextHandle safeCertContextHandle = CAPIMethods.CertEnumCertificatesInStore(hCertStore, pPrevCertContext);
if (safeCertContextHandle == null || safeCertContextHandle.IsInvalid) {
@@ -3279,8 +3455,13 @@ namespace System.Security.Cryptography {
// This override demands FileIOPermission.Read if dwObjectType is CERT_QUERY_OBJECT_FILE.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[ResourceExposure(ResourceScope.Machine)] // If you pass in a file name
+#if !FEATURE_CORESYSTEM
[ResourceConsumption(ResourceScope.Machine)]
+#endif
internal static unsafe
bool CryptQueryObject (
[In] uint dwObjectType,
@@ -3305,8 +3486,10 @@ namespace System.Security.Cryptography {
throw new ArgumentNullException("pvObject");
if (dwObjectType == CERT_QUERY_OBJECT_FILE) {
+#if !FEATURE_CORESYSTEM
string fullPath = Path.GetFullPath((string) pvObject);
new FileIOPermission(FileIOPermissionAccess.Read, fullPath).Demand();
+#endif
} else {
certBlob.cbData = (uint) ((byte[]) pvObject).Length;
certBlob.pbData = pbData;
@@ -3337,8 +3520,13 @@ namespace System.Security.Cryptography {
// This override demands FileIOPermission.Read if dwObjectType is CERT_QUERY_OBJECT_FILE.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[ResourceExposure(ResourceScope.Machine)] // If you passed in a file name
+#if !FEATURE_CORESYSTEM
[ResourceConsumption(ResourceScope.Machine)]
+#endif
internal static unsafe
bool CryptQueryObject (
[In] uint dwObjectType,
@@ -3363,8 +3551,10 @@ namespace System.Security.Cryptography {
throw new ArgumentNullException("pvObject");
if (dwObjectType == CERT_QUERY_OBJECT_FILE) {
+#if !FEATURE_CORESYSTEM
string fullPath = Path.GetFullPath((string) pvObject);
new FileIOPermission(FileIOPermissionAccess.Read, fullPath).Demand();
+#endif
} else {
certBlob.cbData = (uint) ((byte[]) pvObject).Length;
certBlob.pbData = pbData;
@@ -3395,8 +3585,13 @@ namespace System.Security.Cryptography {
// This override demands FileIOPermission.Read if dwObjectType is CERT_QUERY_OBJECT_FILE.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
[ResourceExposure(ResourceScope.Machine)] // If you pass in a file name
+#if !FEATURE_CORESYSTEM
[ResourceConsumption(ResourceScope.Machine)]
+#endif
internal static unsafe
SafeCertStoreHandle PFXImportCertStore(
[In] uint dwObjectType,
@@ -3415,6 +3610,7 @@ namespace System.Security.Cryptography {
pbData = (byte[]) pvObject;
}
+#if !FEATURE_CORESYSTEM
if (persistKeyContainers) {
//
// Right now, we always demand KeyContainerPermission regardless of whether the PFX contains a private key or not.
@@ -3425,6 +3621,7 @@ namespace System.Security.Cryptography {
kp.Demand();
}
}
+#endif
SafeCertStoreHandle safeCertStoreHandle = SafeCertStoreHandle.InvalidHandle;
GCHandle handle = GCHandle.Alloc(pbData, GCHandleType.Pinned);
@@ -3473,6 +3670,9 @@ namespace System.Security.Cryptography {
// This override demands StorePermission.AddToStore.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
new internal static
bool CertAddCertificateContextToStore (
[In] SafeCertStoreHandle hCertStore,
@@ -3490,8 +3690,10 @@ namespace System.Security.Cryptography {
if (pCertContext.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "pCertContext");
+#if !FEATURE_CORESYSTEM
StorePermission sp = new StorePermission(StorePermissionFlags.AddToStore);
sp.Demand();
+#endif
return CAPIMethods.CertAddCertificateContextToStore(hCertStore,
pCertContext,
@@ -3503,6 +3705,9 @@ namespace System.Security.Cryptography {
// This override demands StorePermission.AddToStore.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
new internal static
bool CertAddCertificateLinkToStore (
[In] SafeCertStoreHandle hCertStore,
@@ -3520,8 +3725,10 @@ namespace System.Security.Cryptography {
if (pCertContext.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "pCertContext");
+#if !FEATURE_CORESYSTEM
StorePermission sp = new StorePermission(StorePermissionFlags.AddToStore);
sp.Demand();
+#endif
return CAPIMethods.CertAddCertificateLinkToStore(hCertStore,
pCertContext,
@@ -3533,6 +3740,9 @@ namespace System.Security.Cryptography {
// This override demands StorePermission.RemoveFromStore.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
new internal static
bool CertDeleteCertificateFromStore (
[In] SafeCertContextHandle pCertContext) {
@@ -3542,8 +3752,10 @@ namespace System.Security.Cryptography {
if (pCertContext.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "pCertContext");
+#if !FEATURE_CORESYSTEM
StorePermission sp = new StorePermission(StorePermissionFlags.RemoveFromStore);
sp.Demand();
+#endif
return CAPIMethods.CertDeleteCertificateFromStore(pCertContext);
}
@@ -3552,6 +3764,9 @@ namespace System.Security.Cryptography {
// This override demands StorePermission.OpenStore.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
new internal static
SafeCertStoreHandle CertOpenStore(
[In] IntPtr lpszStoreProvider,
@@ -3563,6 +3778,7 @@ namespace System.Security.Cryptography {
if (lpszStoreProvider != new IntPtr(CERT_STORE_PROV_MEMORY) && lpszStoreProvider != new IntPtr(CERT_STORE_PROV_SYSTEM))
throw new ArgumentException(SR.GetString(SR.Security_InvalidValue), "lpszStoreProvider");
+#if !FEATURE_CORESYSTEM
if ((dwFlags & CERT_SYSTEM_STORE_LOCAL_MACHINE) == CERT_SYSTEM_STORE_LOCAL_MACHINE ||
(dwFlags & CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY) == CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY ||
(dwFlags & CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE) == CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE) {
@@ -3588,6 +3804,7 @@ namespace System.Security.Cryptography {
StorePermission sp = new StorePermission(StorePermissionFlags.CreateStore);
sp.Demand();
}
+#endif
return CAPIMethods.CertOpenStore(lpszStoreProvider,
dwMsgAndCertEncodingType,
@@ -3596,6 +3813,9 @@ namespace System.Security.Cryptography {
pvPara);
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
new internal static
SafeCertContextHandle CertFindCertificateInStore(
[In] SafeCertStoreHandle hCertStore,
@@ -3621,6 +3841,9 @@ namespace System.Security.Cryptography {
pPrevCertContext);
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
new internal static
bool PFXExportCertStore(
[In] SafeCertStoreHandle hCertStore,
@@ -3633,6 +3856,7 @@ namespace System.Security.Cryptography {
if (hCertStore.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "hCertStore");
+#if !FEATURE_CORESYSTEM
//
// Right now, we always demand KeyContainerPermission regardless of whether the PFX contains a private key or not.
// We could avoid that by looping through the certs in the store and find out whether there are actually private keys.
@@ -3641,6 +3865,7 @@ namespace System.Security.Cryptography {
KeyContainerPermission kp = new KeyContainerPermission(KeyContainerPermissionFlags.Open | KeyContainerPermissionFlags.Export);
kp.Demand();
}
+#endif
return CAPIMethods.PFXExportCertStore(hCertStore,
pPFX,
@@ -3648,6 +3873,9 @@ namespace System.Security.Cryptography {
dwFlags);
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
new internal static
bool CertSaveStore(
[In] SafeCertStoreHandle hCertStore,
@@ -3662,8 +3890,10 @@ namespace System.Security.Cryptography {
if (hCertStore.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "hCertStore");
+#if !FEATURE_CORESYSTEM
StorePermission sp = new StorePermission(StorePermissionFlags.EnumerateCertificates);
sp.Demand();
+#endif
if (dwSaveTo == CERT_STORE_SAVE_TO_FILENAME_A || dwSaveTo == CERT_STORE_SAVE_TO_FILENAME_W)
throw new ArgumentException(SR.GetString(SR.Security_InvalidValue), "pvSaveToPara");
@@ -3683,8 +3913,10 @@ namespace System.Security.Cryptography {
[DllImport(CAPI.KERNEL32, SetLastError = true),
SuppressUnmanagedCodeSecurity,
- ResourceExposure(ResourceScope.None),
- ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+ ResourceExposure(ResourceScope.None)]
+#if !FEATURE_CORESYSTEM
+ [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool FreeLibrary([In] IntPtr hModule);
@@ -3694,7 +3926,11 @@ namespace System.Security.Cryptography {
}
}
- internal sealed class SafeLocalAllocHandle : SafeHandleZeroOrMinusOneIsInvalid {
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
+ internal sealed class SafeLocalAllocHandle : SafeHandleZeroOrMinusOneIsInvalid
+ {
private SafeLocalAllocHandle () : base(true) {}
// 0 is an Invalid Handle
@@ -3707,11 +3943,16 @@ namespace System.Security.Cryptography {
}
[DllImport(CAPI.KERNEL32, SetLastError=true),
- SuppressUnmanagedCodeSecurity,
- ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+ SuppressUnmanagedCodeSecurity]
+#if !FEATURE_CORESYSTEM
+ [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
[ResourceExposure(ResourceScope.None)]
private static extern IntPtr LocalFree(IntPtr handle);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
override protected bool ReleaseHandle()
{
return LocalFree(handle) == IntPtr.Zero;
@@ -3732,8 +3973,10 @@ namespace System.Security.Cryptography {
[DllImport(CAPI.ADVAPI32, SetLastError=true),
SuppressUnmanagedCodeSecurity,
- ResourceExposure(ResourceScope.None),
- ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+ ResourceExposure(ResourceScope.None)]
+#if !FEATURE_CORESYSTEM
+ [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
private static extern bool CryptReleaseContext(IntPtr hCryptProv, uint dwFlags);
override protected bool ReleaseHandle()
@@ -3742,6 +3985,9 @@ namespace System.Security.Cryptography {
}
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
internal sealed class SafeCertContextHandle : SafeHandleZeroOrMinusOneIsInvalid {
private SafeCertContextHandle() : base (true) {}
@@ -3756,16 +4002,24 @@ namespace System.Security.Cryptography {
[DllImport(CAPI.CRYPT32, SetLastError=true),
SuppressUnmanagedCodeSecurity,
- ResourceExposure(ResourceScope.None),
- ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+ ResourceExposure(ResourceScope.None)]
+#if !FEATURE_CORESYSTEM
+ [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
private static extern bool CertFreeCertificateContext (IntPtr pCertContext);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
override protected bool ReleaseHandle()
{
return CertFreeCertificateContext(handle);
}
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
internal sealed class SafeCertStoreHandle : SafeHandleZeroOrMinusOneIsInvalid {
private SafeCertStoreHandle() : base (true) {}
@@ -3780,10 +4034,15 @@ namespace System.Security.Cryptography {
[DllImport(CAPI.CRYPT32, SetLastError=true),
SuppressUnmanagedCodeSecurity,
- ResourceExposure(ResourceScope.None),
- ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+ ResourceExposure(ResourceScope.None)]
+#if !FEATURE_CORESYSTEM
+ [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
private static extern bool CertCloseStore (IntPtr hCertStore, uint dwFlags);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
override protected bool ReleaseHandle()
{
return CertCloseStore(handle, 0);
@@ -3803,33 +4062,52 @@ namespace System.Security.Cryptography {
[DllImport(CAPI.CRYPT32, SetLastError=true),
SuppressUnmanagedCodeSecurity,
- ResourceExposure(ResourceScope.None),
- ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+ ResourceExposure(ResourceScope.None)]
+#if !FEATURE_CORESYSTEM
+ [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
private static extern bool CryptMsgClose(IntPtr handle);
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
override protected bool ReleaseHandle()
{
return CryptMsgClose(handle);
}
}
+}
- internal sealed class SafeCertChainHandle : SafeHandleZeroOrMinusOneIsInvalid {
- private SafeCertChainHandle () : base(true) {}
+namespace Microsoft.Win32.SafeHandles {
+ using System;
+ using System.Runtime.InteropServices;
+ using System.Runtime.ConstrainedExecution;
+ using System.Runtime.Versioning;
+ using System.Security;
+ using System.Security.Cryptography;
+
+ [SecurityCritical]
+ public sealed class SafeX509ChainHandle : SafeHandleZeroOrMinusOneIsInvalid {
+ private SafeX509ChainHandle () : base(true) {}
- internal SafeCertChainHandle (IntPtr handle) : base (true) {
+ internal SafeX509ChainHandle (IntPtr handle) : base (true) {
SetHandle(handle);
}
- internal static SafeCertChainHandle InvalidHandle {
- get { return new SafeCertChainHandle(IntPtr.Zero); }
+ internal static SafeX509ChainHandle InvalidHandle {
+ get { return new SafeX509ChainHandle(IntPtr.Zero); }
}
[DllImport(CAPI.CRYPT32, SetLastError=true),
SuppressUnmanagedCodeSecurity,
- ResourceExposure(ResourceScope.None),
- ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+ ResourceExposure(ResourceScope.None)]
+#if !FEATURE_CORESYSTEM
+ [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
private static extern void CertFreeCertificateChain(IntPtr handle);
+
+ [SecurityCritical]
override protected bool ReleaseHandle()
{
CertFreeCertificateChain(handle);
diff --git a/mcs/class/referencesource/System/security/system/security/cryptography/x509/x500Name.cs b/mcs/class/referencesource/System/security/system/security/cryptography/x509/x500Name.cs
index 612f341bae1..17233cd4355 100644
--- a/mcs/class/referencesource/System/security/system/security/cryptography/x509/x500Name.cs
+++ b/mcs/class/referencesource/System/security/system/security/cryptography/x509/x500Name.cs
@@ -70,6 +70,9 @@ namespace System.Security.Cryptography.X509Certificates {
// Public methods.
//
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public string Decode (X500DistinguishedNameFlags flag) {
uint dwStrType = CAPI.CERT_X500_NAME_STR | MapNameToStrFlag(flag);
unsafe {
@@ -101,6 +104,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public override string Format (bool multiLine) {
//
// We must override to use the "numeric" pointer version of
@@ -121,6 +127,9 @@ namespace System.Security.Cryptography.X509Certificates {
// Private methods.
//
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private unsafe static byte[] Encode (string distinguishedName, X500DistinguishedNameFlags flag) {
if (distinguishedName == null)
throw new ArgumentNullException("distinguishedName");
diff --git a/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509certificate2.cs b/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509certificate2.cs
index b9a9ce04d82..f83d6bb01f6 100644
--- a/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509certificate2.cs
+++ b/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509certificate2.cs
@@ -64,6 +64,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
internal uint AlgorithmId {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (m_aiPubKey == 0)
m_aiPubKey = X509Utils.OidToAlgId(m_oid.Value);
@@ -72,6 +75,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
private byte[] CspBlobData {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (m_cspBlobData == null)
DecodePublicKeyObject(AlgorithmId, m_encodedKeyValue.RawData, m_encodedParameters.RawData, out m_cspBlobData);
@@ -80,6 +86,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
public AsymmetricAlgorithm Key {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (m_key == null) {
switch (AlgorithmId) {
@@ -90,11 +99,13 @@ namespace System.Security.Cryptography.X509Certificates {
m_key = rsa;
break;
+#if !FEATURE_CORESYSTEM
case CAPI.CALG_DSS_SIGN:
DSACryptoServiceProvider dsa = new DSACryptoServiceProvider();
dsa.ImportCspBlob(CspBlobData);
m_key = dsa;
break;
+#endif
default:
throw new NotSupportedException(SR.GetString(SR.NotSupported_KeyAlgorithm));
@@ -120,6 +131,9 @@ namespace System.Security.Cryptography.X509Certificates {
// private static methods.
//
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private static void DecodePublicKeyObject(uint aiPubKey, byte[] encodedKeyValue, byte[] encodedParameters, out byte[] decodedData) {
// Initialize the out parameter
decodedData = null;
@@ -174,6 +188,9 @@ namespace System.Security.Cryptography.X509Certificates {
decodedKeyValue.Dispose();
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private static byte[] ConstructDSSPubKeyCspBlob (SafeLocalAllocHandle decodedKeyValue,
SafeLocalAllocHandle decodedParameters) {
@@ -256,7 +273,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
}
+#if !FEATURE_CORESYSTEM
[Serializable]
+#endif
public class X509Certificate2 : X509Certificate {
private int m_version;
private DateTime m_notBefore;
@@ -267,6 +286,9 @@ namespace System.Security.Cryptography.X509Certificates {
private Oid m_signatureAlgorithm;
private X500DistinguishedName m_subjectName;
private X500DistinguishedName m_issuerName;
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
private SafeCertContextHandle m_safeCertContext = SafeCertContextHandle.InvalidHandle;
private static int s_publicKeyOffset;
@@ -275,58 +297,96 @@ namespace System.Security.Cryptography.X509Certificates {
// public constructors
//
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public X509Certificate2 () : base() {}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public X509Certificate2 (byte[] rawData) : base (rawData) {
m_safeCertContext = CAPI.CertDuplicateCertificateContext(this.Handle);
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public X509Certificate2 (byte[] rawData, string password) : base (rawData, password) {
m_safeCertContext = CAPI.CertDuplicateCertificateContext(this.Handle);
}
+#if !FEATURE_CORESYSTEM
public X509Certificate2 (byte[] rawData, SecureString password) : base (rawData, password) {
m_safeCertContext = CAPI.CertDuplicateCertificateContext(this.Handle);
}
+#endif
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public X509Certificate2 (byte[] rawData, string password, X509KeyStorageFlags keyStorageFlags) : base (rawData, password, keyStorageFlags) {
m_safeCertContext = CAPI.CertDuplicateCertificateContext(this.Handle);
}
+#if !FEATURE_CORESYSTEM
public X509Certificate2 (byte[] rawData, SecureString password, X509KeyStorageFlags keyStorageFlags) : base (rawData, password, keyStorageFlags) {
m_safeCertContext = CAPI.CertDuplicateCertificateContext(this.Handle);
}
+#endif
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
[ResourceExposure(ResourceScope.Machine)]
+#if !FEATURE_CORESYSTEM
[ResourceConsumption(ResourceScope.Machine)]
+#endif
public X509Certificate2 (string fileName) : base (fileName) {
m_safeCertContext = CAPI.CertDuplicateCertificateContext(this.Handle);
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
[ResourceExposure(ResourceScope.Machine)]
+#if !FEATURE_CORESYSTEM
[ResourceConsumption(ResourceScope.Machine)]
+#endif
public X509Certificate2 (string fileName, string password) : base (fileName, password) {
m_safeCertContext = CAPI.CertDuplicateCertificateContext(this.Handle);
}
+#if !FEATURE_CORESYSTEM
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public X509Certificate2 (string fileName, SecureString password) : base (fileName, password) {
m_safeCertContext = CAPI.CertDuplicateCertificateContext(this.Handle);
}
+#endif
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
[ResourceExposure(ResourceScope.Machine)]
+#if !FEATURE_CORESYSTEM
[ResourceConsumption(ResourceScope.Machine)]
+#endif
public X509Certificate2 (string fileName, string password, X509KeyStorageFlags keyStorageFlags) : base (fileName, password, keyStorageFlags) {
m_safeCertContext = CAPI.CertDuplicateCertificateContext(this.Handle);
}
+#if !FEATURE_CORESYSTEM
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public X509Certificate2 (string fileName, SecureString password, X509KeyStorageFlags keyStorageFlags) : base (fileName, password, keyStorageFlags) {
m_safeCertContext = CAPI.CertDuplicateCertificateContext(this.Handle);
}
+#endif
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
// Package protected constructor for creating a certificate from a PCCERT_CONTEXT
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
[SecurityPermissionAttribute(SecurityAction.InheritanceDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
@@ -334,108 +394,165 @@ namespace System.Security.Cryptography.X509Certificates {
m_safeCertContext = CAPI.CertDuplicateCertificateContext(this.Handle);
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public X509Certificate2 (X509Certificate certificate) : base(certificate) {
m_safeCertContext = CAPI.CertDuplicateCertificateContext(this.Handle);
}
+#if !FEATURE_CORESYSTEM
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
[SecurityPermissionAttribute(SecurityAction.InheritanceDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
protected X509Certificate2(SerializationInfo info, StreamingContext context) : base(info, context) {
m_safeCertContext = CAPI.CertDuplicateCertificateContext(this.Handle);
}
+#endif
public override string ToString() {
return base.ToString(true);
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public override string ToString(bool verbose) {
if (verbose == false || m_safeCertContext.IsInvalid)
return ToString();
StringBuilder sb = new StringBuilder();
+ string newLine = Environment.NewLine;
+ string newLine2 = newLine + newLine;
+ string newLinesp2 = newLine + " ";
// Version
- sb.Append("[Version]" + Environment.NewLine + " ");
+ sb.Append("[Version]");
+ sb.Append(newLinesp2);
sb.Append("V" + this.Version);
// Subject
- sb.Append(Environment.NewLine + Environment.NewLine + "[Subject]" + Environment.NewLine + " ");
+ sb.Append(newLine2);
+ sb.Append("[Subject]");
+ sb.Append(newLinesp2);
sb.Append(this.SubjectName.Name);
string simpleName = GetNameInfo(X509NameType.SimpleName, false);
if (simpleName.Length > 0) {
- sb.Append(Environment.NewLine + " Simple Name: ");
+ sb.Append(newLinesp2);
+ sb.Append("Simple Name: ");
sb.Append(simpleName);
}
- string emailName = GetNameInfo(X509NameType.EmailName, false);
+ string emailName = GetNameInfo(X509NameType.EmailName, false);
if (emailName.Length > 0) {
- sb.Append(Environment.NewLine + " Email Name: ");
+ sb.Append(newLinesp2);
+ sb.Append("Email Name: ");
sb.Append(emailName);
}
- string upnName = GetNameInfo(X509NameType.UpnName, false);
+ string upnName = GetNameInfo(X509NameType.UpnName, false);
if (upnName.Length > 0) {
- sb.Append(Environment.NewLine + " UPN Name: ");
+ sb.Append(newLinesp2);
+ sb.Append("UPN Name: ");
sb.Append(upnName);
}
string dnsName = GetNameInfo(X509NameType.DnsName, false);
if (dnsName.Length > 0) {
- sb.Append(Environment.NewLine + " DNS Name: ");
+ sb.Append(newLinesp2);
+ sb.Append("DNS Name: ");
sb.Append(dnsName);
}
// Issuer
- sb.Append(Environment.NewLine + Environment.NewLine + "[Issuer]" + Environment.NewLine + " ");
+ sb.Append(newLine2);
+ sb.Append("[Issuer]");
+ sb.Append(newLinesp2);
sb.Append(this.IssuerName.Name);
simpleName = GetNameInfo(X509NameType.SimpleName, true);
if (simpleName.Length > 0) {
- sb.Append(Environment.NewLine + " Simple Name: ");
+ sb.Append(newLinesp2);
+ sb.Append("Simple Name: ");
sb.Append(simpleName);
}
- emailName = GetNameInfo(X509NameType.EmailName, true);
+ emailName = GetNameInfo(X509NameType.EmailName, true);
if (emailName.Length > 0) {
- sb.Append(Environment.NewLine + " Email Name: ");
+ sb.Append(newLinesp2);
+ sb.Append("Email Name: ");
sb.Append(emailName);
}
- upnName = GetNameInfo(X509NameType.UpnName, true);
+ upnName = GetNameInfo(X509NameType.UpnName, true);
if (upnName.Length > 0) {
- sb.Append(Environment.NewLine + " UPN Name: ");
+ sb.Append(newLinesp2);
+ sb.Append("UPN Name: ");
sb.Append(upnName);
}
dnsName = GetNameInfo(X509NameType.DnsName, true);
if (dnsName.Length > 0) {
- sb.Append(Environment.NewLine + " DNS Name: ");
+ sb.Append(newLinesp2);
+ sb.Append("DNS Name: ");
sb.Append(dnsName);
}
// Serial Number
- sb.Append(Environment.NewLine + Environment.NewLine + "[Serial Number]" + Environment.NewLine + " ");
+ sb.Append(newLine2);
+ sb.Append("[Serial Number]");
+ sb.Append(newLinesp2);
sb.Append(this.SerialNumber);
// NotBefore
- sb.Append(Environment.NewLine + Environment.NewLine + "[Not Before]" + Environment.NewLine + " ");
+ sb.Append(newLine2);
+ sb.Append("[Not Before]");
+ sb.Append(newLinesp2);
sb.Append(FormatDate(this.NotBefore));
// NotAfter
- sb.Append(Environment.NewLine + Environment.NewLine + "[Not After]" + Environment.NewLine + " ");
+ sb.Append(newLine2);
+ sb.Append("[Not After]");
+ sb.Append(newLinesp2);
sb.Append(FormatDate(this.NotAfter));
// Thumbprint
- sb.Append(Environment.NewLine + Environment.NewLine + "[Thumbprint]" + Environment.NewLine + " ");
+ sb.Append(newLine2);
+ sb.Append("[Thumbprint]");
+ sb.Append(newLinesp2);
sb.Append(this.Thumbprint);
// Signature Algorithm
- sb.Append(Environment.NewLine + Environment.NewLine + "[Signature Algorithm]" + Environment.NewLine + " ");
+ sb.Append(newLine2);
+ sb.Append("[Signature Algorithm]");
+ sb.Append(newLinesp2);
sb.Append(this.SignatureAlgorithm.FriendlyName + "(" + this.SignatureAlgorithm.Value + ")");
// Public Key
- PublicKey pubKey = this.PublicKey;
- sb.Append(Environment.NewLine + Environment.NewLine + "[Public Key]" + Environment.NewLine + " Algorithm: ");
- sb.Append(pubKey.Oid.FriendlyName);
- sb.Append(Environment.NewLine + " Length: ");
- sb.Append(pubKey.Key.KeySize);
- sb.Append(Environment.NewLine + " Key Blob: ");
- sb.Append(pubKey.EncodedKeyValue.Format(true));
- sb.Append(Environment.NewLine + " Parameters: ");
- sb.Append(pubKey.EncodedParameters.Format(true));
+ sb.Append(newLine2);
+ sb.Append("[Public Key]");
+ // It could throw if it's some user-defined CryptoServiceProvider
+ try {
+ PublicKey pubKey = this.PublicKey;
+
+ string temp = pubKey.Oid.FriendlyName;
+ sb.Append(newLinesp2);
+ sb.Append("Algorithm: ");
+ sb.Append(temp);
+ // So far, we only support RSACryptoServiceProvider & DSACryptoServiceProvider Keys
+ try {
+ temp = pubKey.Key.KeySize.ToString();
+ sb.Append(newLinesp2);
+ sb.Append("Length: ");
+ sb.Append(temp);
+ }
+ catch (NotSupportedException) {
+ }
+
+ temp = pubKey.EncodedKeyValue.Format(true);
+ sb.Append(newLinesp2);
+ sb.Append("Key Blob: ");
+ sb.Append(temp);
+
+ temp = pubKey.EncodedParameters.Format(true);
+ sb.Append(newLinesp2);
+ sb.Append("Parameters: ");
+ sb.Append(temp);
+ }
+ catch (CryptographicException) {
+ }
// Private key
AppendPrivateKeyInfo(sb);
@@ -443,17 +560,33 @@ namespace System.Security.Cryptography.X509Certificates {
// Extensions
X509ExtensionCollection extensions = this.Extensions;
if (extensions.Count > 0) {
- sb.Append(Environment.NewLine + Environment.NewLine + "[Extensions]");
- foreach(X509Extension extension in extensions) {
- sb.Append(Environment.NewLine + "* " + extension.Oid.FriendlyName + "(" + extension.Oid.Value + "):" + Environment.NewLine + " " + extension.Format(true));
+ sb.Append(newLine2);
+ sb.Append("[Extensions]");
+ string temp;
+ foreach (X509Extension extension in extensions) {
+ try {
+ temp = extension.Oid.FriendlyName;
+ sb.Append(newLine);
+ sb.Append("* " + temp);
+ sb.Append("(" + extension.Oid.Value + "):");
+
+ temp = extension.Format(true);
+ sb.Append(newLinesp2);
+ sb.Append(temp);
+ }
+ catch (CryptographicException) {
+ }
}
}
- sb.Append(Environment.NewLine);
+ sb.Append(newLine);
return sb.ToString();
}
public bool Archived {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (m_safeCertContext.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "m_safeCertContext");
@@ -464,6 +597,9 @@ namespace System.Security.Cryptography.X509Certificates {
SafeLocalAllocHandle.InvalidHandle,
ref cbData);
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
set {
SafeLocalAllocHandle ptr = SafeLocalAllocHandle.InvalidHandle;
if (value == true)
@@ -479,6 +615,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
public X509ExtensionCollection Extensions {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (m_safeCertContext.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "m_safeCertContext");
@@ -491,6 +630,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
public string FriendlyName {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (m_safeCertContext.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "m_safeCertContext");
@@ -514,6 +656,9 @@ namespace System.Security.Cryptography.X509Certificates {
ptr.Dispose();
return friendlyName;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
set {
if (m_safeCertContext.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "m_safeCertContext");
@@ -526,6 +671,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
public X500DistinguishedName IssuerName {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (m_safeCertContext.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "m_safeCertContext");
@@ -543,6 +691,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
public DateTime NotAfter {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (m_safeCertContext.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "m_safeCertContext");
@@ -561,6 +712,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
public DateTime NotBefore {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (m_safeCertContext.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "m_safeCertContext");
@@ -579,6 +733,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
public bool HasPrivateKey {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (m_safeCertContext.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "m_safeCertContext");
@@ -592,6 +749,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
public AsymmetricAlgorithm PrivateKey {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (!this.HasPrivateKey)
return null;
@@ -609,9 +769,11 @@ namespace System.Security.Cryptography.X509Certificates {
m_privateKey = new RSACryptoServiceProvider(parameters);
break;
+#if !FEATURE_CORESYSTEM
case CAPI.CALG_DSS_SIGN:
m_privateKey = new DSACryptoServiceProvider(parameters);
break;
+#endif
default:
throw new NotSupportedException(SR.GetString(SR.NotSupported_KeyAlgorithm));
@@ -620,6 +782,9 @@ namespace System.Security.Cryptography.X509Certificates {
return m_privateKey;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
[SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "Reviewed for thread-safety")]
set {
if (m_safeCertContext.IsInvalid)
@@ -669,6 +834,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
public PublicKey PublicKey {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (m_safeCertContext.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "m_safeCertContext");
@@ -698,6 +866,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
public X500DistinguishedName SubjectName {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (m_safeCertContext.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "m_safeCertContext");
@@ -715,6 +886,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
public Oid SignatureAlgorithm {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (m_safeCertContext.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "m_safeCertContext");
@@ -733,6 +907,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
public int Version {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (m_safeCertContext.IsInvalid)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidHandle), "m_safeCertContext");
@@ -744,6 +921,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
public unsafe string GetNameInfo(X509NameType nameType, bool forIssuer) {
uint issuerFlag = forIssuer ? CAPI.CERT_NAME_ISSUER_FLAG : 0;
uint type = X509Utils.MapNameType(nameType);
@@ -841,6 +1021,7 @@ namespace System.Security.Cryptography.X509Certificates {
return name;
}
+#if !FEATURE_CORESYSTEM
[SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Justification = "System.dll is still using pre-v4 security model and needs this demand")]
[PermissionSetAttribute(SecurityAction.LinkDemand, Unrestricted=true)]
[PermissionSetAttribute(SecurityAction.InheritanceDemand, Unrestricted=true)]
@@ -921,6 +1102,7 @@ namespace System.Security.Cryptography.X509Certificates {
}
base.Reset();
}
+#endif // !FEATURE_CORESYSTEM
public bool Verify () {
if (m_safeCertContext.IsInvalid)
@@ -952,13 +1134,17 @@ namespace System.Security.Cryptography.X509Certificates {
}
[ResourceExposure(ResourceScope.Machine)]
+#if !FEATURE_CORESYSTEM
[ResourceConsumption(ResourceScope.Machine)]
+#endif
public static X509ContentType GetCertContentType (string fileName) {
if (fileName == null)
throw new ArgumentNullException("fileName");
string fullPath = Path.GetFullPath(fileName);
+#if !FEATURE_CORESYSTEM
new FileIOPermission (FileIOPermissionAccess.Read, fullPath).Demand();
+#endif
uint contentType = QueryCertFileType(fileName);
return X509Utils.MapContentType(contentType);
}
@@ -968,11 +1154,17 @@ namespace System.Security.Cryptography.X509Certificates {
//
internal SafeCertContextHandle CertContext {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
return m_safeCertContext;
}
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
internal static bool GetPrivateKeyInfo (SafeCertContextHandle safeCertContext, ref CspParameters parameters) {
SafeLocalAllocHandle ptr = SafeLocalAllocHandle.InvalidHandle;
uint cbData = 0;
@@ -1014,6 +1206,9 @@ namespace System.Security.Cryptography.X509Certificates {
// Private
//
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private void AppendPrivateKeyInfo (StringBuilder sb) {
CspKeyContainerInfo cspKeyContainerInfo = null;
try {
@@ -1075,20 +1270,31 @@ namespace System.Security.Cryptography.X509Certificates {
catch (NotSupportedException) {}
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private static unsafe Oid GetSignatureAlgorithm (SafeCertContextHandle safeCertContextHandle) {
CAPI.CERT_CONTEXT pCertContext = *((CAPI.CERT_CONTEXT*) safeCertContextHandle.DangerousGetHandle());
CAPI.CERT_INFO pCertInfo = (CAPI.CERT_INFO) Marshal.PtrToStructure(pCertContext.pCertInfo, typeof(CAPI.CERT_INFO));
return new Oid(pCertInfo.SignatureAlgorithm.pszObjId, OidGroup.SignatureAlgorithm, false);
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private static unsafe uint GetVersion (SafeCertContextHandle safeCertContextHandle) {
CAPI.CERT_CONTEXT pCertContext = *((CAPI.CERT_CONTEXT*) safeCertContextHandle.DangerousGetHandle());
CAPI.CERT_INFO pCertInfo = (CAPI.CERT_INFO) Marshal.PtrToStructure(pCertContext.pCertInfo, typeof(CAPI.CERT_INFO));
return (pCertInfo.dwVersion + 1);
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
[ResourceExposure(ResourceScope.None)]
+#if !FEATURE_CORESYSTEM
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
+#endif
private static unsafe uint QueryCertBlobType(byte[] rawData) {
uint contentType = 0;
if (!CAPI.CryptQueryObject(CAPI.CERT_QUERY_OBJECT_BLOB,
@@ -1107,8 +1313,13 @@ namespace System.Security.Cryptography.X509Certificates {
return contentType;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
[ResourceExposure(ResourceScope.Machine)]
+#if !FEATURE_CORESYSTEM
[ResourceConsumption(ResourceScope.Machine)]
+#endif
private static unsafe uint QueryCertFileType(string fileName) {
uint contentType = 0;
if (!CAPI.CryptQueryObject(CAPI.CERT_QUERY_OBJECT_FILE,
@@ -1127,6 +1338,9 @@ namespace System.Security.Cryptography.X509Certificates {
return contentType;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private static unsafe void SetFriendlyNameExtendedProperty (SafeCertContextHandle safeCertContextHandle, string name) {
SafeLocalAllocHandle ptr = X509Utils.StringToUniPtr(name);
using (ptr) {
@@ -1142,6 +1356,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private static unsafe void SetPrivateKeyProperty (SafeCertContextHandle safeCertContextHandle, ICspAsymmetricAlgorithm asymmetricAlgorithm) {
SafeLocalAllocHandle ptr = SafeLocalAllocHandle.InvalidHandle;
if (asymmetricAlgorithm != null) {
diff --git a/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509certificate2collection.cs b/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509certificate2collection.cs
index a0db6c1a275..800313e2048 100644
--- a/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509certificate2collection.cs
+++ b/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509certificate2collection.cs
@@ -168,7 +168,11 @@ namespace System.Security.Cryptography.X509Certificates {
}
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public X509Certificate2Collection Find(X509FindType findType, Object findValue, bool validOnly) {
+#if !FEATURE_CORESYSTEM
//
// We need to Assert all StorePermission flags since this is a memory store and we want
// semi-trusted code to be able to find certificates in a memory store.
@@ -176,6 +180,7 @@ namespace System.Security.Cryptography.X509Certificates {
StorePermission sp = new StorePermission(StorePermissionFlags.AllFlags);
sp.Assert();
+#endif
SafeCertStoreHandle safeSourceStoreHandle = X509Utils.ExportToMemoryStore(this);
@@ -192,10 +197,14 @@ namespace System.Security.Cryptography.X509Certificates {
Import(rawData, null, X509KeyStorageFlags.DefaultKeySet);
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public void Import(byte[] rawData, string password, X509KeyStorageFlags keyStorageFlags) {
uint dwFlags = X509Utils.MapKeyStorageFlags(keyStorageFlags);
SafeCertStoreHandle safeCertStoreHandle = SafeCertStoreHandle.InvalidHandle;
+#if !FEATURE_CORESYSTEM
//
// We need to Assert all StorePermission flags since this is a memory store and we want
// semi-trusted code to be able to import certificates to a memory store.
@@ -203,6 +212,7 @@ namespace System.Security.Cryptography.X509Certificates {
StorePermission sp = new StorePermission(StorePermissionFlags.AllFlags);
sp.Assert();
+#endif
safeCertStoreHandle = LoadStoreFromBlob(rawData, password, dwFlags, (keyStorageFlags & X509KeyStorageFlags.PersistKeySet) != 0);
@@ -215,17 +225,25 @@ namespace System.Security.Cryptography.X509Certificates {
}
[ResourceExposure(ResourceScope.Machine)]
+#if !FEATURE_CORESYSTEM
[ResourceConsumption(ResourceScope.Machine)]
+#endif
public void Import(string fileName) {
Import(fileName, null, X509KeyStorageFlags.DefaultKeySet);
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
[ResourceExposure(ResourceScope.Machine)]
+#if !FEATURE_CORESYSTEM
[ResourceConsumption(ResourceScope.Machine)]
+#endif
public void Import(string fileName, string password, X509KeyStorageFlags keyStorageFlags) {
uint dwFlags = X509Utils.MapKeyStorageFlags(keyStorageFlags);
SafeCertStoreHandle safeCertStoreHandle = SafeCertStoreHandle.InvalidHandle;
+#if !FEATURE_CORESYSTEM
//
// We need to Assert all StorePermission flags since this is a memory store and we want
// semi-trusted code to be able to import certificates to a memory store.
@@ -233,6 +251,7 @@ namespace System.Security.Cryptography.X509Certificates {
StorePermission sp = new StorePermission(StorePermissionFlags.AllFlags);
sp.Assert();
+#endif
safeCertStoreHandle = LoadStoreFromFile(fileName, password, dwFlags, (keyStorageFlags & X509KeyStorageFlags.PersistKeySet) != 0);
@@ -244,11 +263,18 @@ namespace System.Security.Cryptography.X509Certificates {
this.AddRange(x509Certs);
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public byte[] Export(X509ContentType contentType) {
return Export(contentType, null);
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public byte[] Export(X509ContentType contentType, string password) {
+#if !FEATURE_CORESYSTEM
//
// We need to Assert all StorePermission flags since this is a memory store and we want
// semi-trusted code to be able to export certificates to a memory store.
@@ -256,6 +282,7 @@ namespace System.Security.Cryptography.X509Certificates {
StorePermission sp = new StorePermission(StorePermissionFlags.AllFlags);
sp.Assert();
+#endif
SafeCertStoreHandle safeCertStoreHandle = X509Utils.ExportToMemoryStore(this);
@@ -264,6 +291,9 @@ namespace System.Security.Cryptography.X509Certificates {
return result;
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
private unsafe static byte[] ExportCertificatesToBlob(SafeCertStoreHandle safeCertStoreHandle, X509ContentType contentType, string password) {
SafeCertContextHandle safeCertContextHandle = SafeCertContextHandle.InvalidHandle;
uint dwSaveAs = CAPI.CERT_STORE_SAVE_AS_PKCS7;
@@ -361,7 +391,13 @@ namespace System.Security.Cryptography.X509Certificates {
return pbBlob;
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
internal delegate int FindProcDelegate (SafeCertContextHandle safeCertContextHandle, object pvCallbackData);
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private unsafe static SafeCertStoreHandle FindCertInStore(SafeCertStoreHandle safeSourceStoreHandle, X509FindType findType, Object findValue, bool validOnly) {
if (findValue == null)
throw new ArgumentNullException("findValue");
@@ -576,6 +612,9 @@ namespace System.Security.Cryptography.X509Certificates {
return safeTargetStoreHandle;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private static void FindByCert(SafeCertStoreHandle safeSourceStoreHandle,
uint dwFindType,
IntPtr pvFindPara,
@@ -666,6 +705,9 @@ skip:
// Callback method to find certificates by subject DN.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
private static unsafe int FindSubjectDistinguishedNameCallback(SafeCertContextHandle safeCertContextHandle, object pvCallbackData) {
string rdn = CAPI.GetCertNameInfo(safeCertContextHandle, 0, CAPI.CERT_NAME_RDN_TYPE);
if (String.Compare(rdn, (string) pvCallbackData, StringComparison.OrdinalIgnoreCase) != 0)
@@ -677,6 +719,9 @@ skip:
// Callback method to find certificates by issuer DN.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
private static unsafe int FindIssuerDistinguishedNameCallback(SafeCertContextHandle safeCertContextHandle, object pvCallbackData) {
string rdn = CAPI.GetCertNameInfo(safeCertContextHandle, CAPI.CERT_NAME_ISSUER_FLAG, CAPI.CERT_NAME_RDN_TYPE);
if (String.Compare(rdn, (string) pvCallbackData, StringComparison.OrdinalIgnoreCase) != 0)
@@ -689,6 +734,9 @@ skip:
// This can be useful when using XML Digital Signature and X509Data.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
private static unsafe int FindSerialNumberCallback(SafeCertContextHandle safeCertContextHandle, object pvCallbackData) {
CAPI.CERT_CONTEXT pCertContext = *((CAPI.CERT_CONTEXT*) safeCertContextHandle.DangerousGetHandle());
CAPI.CERT_INFO pCertInfo = (CAPI.CERT_INFO) Marshal.PtrToStructure(pCertContext.pCertInfo, typeof(CAPI.CERT_INFO));
@@ -714,6 +762,9 @@ skip:
// The callback data has to be a UTC FILETEME.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
private static unsafe int FindTimeValidCallback(SafeCertContextHandle safeCertContextHandle, object pvCallbackData) {
_FILETIME ft = (_FILETIME) pvCallbackData;
CAPI.CERT_CONTEXT pCertContext = *((CAPI.CERT_CONTEXT*) safeCertContextHandle.DangerousGetHandle());
@@ -728,6 +779,9 @@ skip:
// The callback data has to be a UTC FILETEME.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
private static unsafe int FindTimeNotAfterCallback(SafeCertContextHandle safeCertContextHandle, object pvCallbackData) {
_FILETIME ft = (_FILETIME) pvCallbackData;
CAPI.CERT_CONTEXT pCertContext = *((CAPI.CERT_CONTEXT*) safeCertContextHandle.DangerousGetHandle());
@@ -742,6 +796,9 @@ skip:
// The callback data has to be a UTC FILETEME.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
private static unsafe int FindTimeNotBeforeCallback(SafeCertContextHandle safeCertContextHandle, object pvCallbackData) {
_FILETIME ft = (_FILETIME) pvCallbackData;
CAPI.CERT_CONTEXT pCertContext = *((CAPI.CERT_CONTEXT*) safeCertContextHandle.DangerousGetHandle());
@@ -758,6 +815,9 @@ skip:
// An example of Template Name can be "ClientAuth".
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
private static unsafe int FindTemplateNameCallback(SafeCertContextHandle safeCertContextHandle, object pvCallbackData) {
IntPtr pV1Template = IntPtr.Zero;
IntPtr pV2Template = IntPtr.Zero;
@@ -826,6 +886,9 @@ skip:
// An example of application policy can be: "Encrypting File System"
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
private static unsafe int FindApplicationPolicyCallback(SafeCertContextHandle safeCertContextHandle, object pvCallbackData) {
string eku = (string) pvCallbackData;
if (eku.Length == 0)
@@ -860,6 +923,9 @@ skip:
// This is only recognized in XP platforms. However, passing in an OID value should work on downlevel platforms as well.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
private static unsafe int FindCertificatePolicyCallback(SafeCertContextHandle safeCertContextHandle, object pvCallbackData) {
string certPolicy = (string) pvCallbackData;
if (certPolicy.Length == 0)
@@ -902,6 +968,9 @@ skip:
// The callback data can be either an OID friendly name or value (all should be ANSI strings).
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
private static unsafe int FindExtensionCallback(SafeCertContextHandle safeCertContextHandle, object pvCallbackData) {
CAPI.CERT_CONTEXT pCertContext = *((CAPI.CERT_CONTEXT*) safeCertContextHandle.DangerousGetHandle());
CAPI.CERT_INFO pCertInfo = (CAPI.CERT_INFO) Marshal.PtrToStructure(pCertContext.pCertInfo, typeof(CAPI.CERT_INFO));
@@ -922,6 +991,9 @@ skip:
// further restricting the set of selected certificates.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
private static unsafe int FindKeyUsageCallback(SafeCertContextHandle safeCertContextHandle, object pvCallbackData) {
CAPI.CERT_CONTEXT pCertContext = *((CAPI.CERT_CONTEXT*) safeCertContextHandle.DangerousGetHandle());
uint dwUsages = 0;
@@ -943,6 +1015,9 @@ skip:
// This can be useful when using XML Digital Signature and X509Data.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
private static unsafe int FindSubjectKeyIdentifierCallback(SafeCertContextHandle safeCertContextHandle, object pvCallbackData) {
SafeLocalAllocHandle ptr = SafeLocalAllocHandle.InvalidHandle;
// We look for the Key Id extended property
@@ -987,8 +1062,13 @@ skip:
CAPI.CERT_QUERY_CONTENT_FLAG_PFX |
CAPI.CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE);
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
[ResourceExposure(ResourceScope.None)]
+#if !FEATURE_CORESYSTEM
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
+#endif
private unsafe static SafeCertStoreHandle LoadStoreFromBlob(byte[] rawData, string password, uint dwFlags, bool persistKeyContainers) {
uint contentType = 0;
SafeCertStoreHandle safeCertStoreHandle = SafeCertStoreHandle.InvalidHandle;
@@ -1020,8 +1100,13 @@ skip:
return safeCertStoreHandle;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
[ResourceExposure(ResourceScope.Machine)]
+#if !FEATURE_CORESYSTEM
[ResourceConsumption(ResourceScope.Machine)]
+#endif
private unsafe static SafeCertStoreHandle LoadStoreFromFile(string fileName, string password, uint dwFlags, bool persistKeyContainers) {
uint contentType = 0;
SafeCertStoreHandle safeCertStoreHandle = SafeCertStoreHandle.InvalidHandle;
diff --git a/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509chain.cs b/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509chain.cs
index 50130d6751a..e2c94390214 100644
--- a/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509chain.cs
+++ b/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509chain.cs
@@ -17,6 +17,7 @@ namespace System.Security.Cryptography.X509Certificates {
using System.Security.Cryptography;
using System.Security.Permissions;
using System.Text;
+ using Microsoft.Win32.SafeHandles;
using _FILETIME = System.Runtime.InteropServices.ComTypes.FILETIME;
@@ -72,12 +73,16 @@ namespace System.Security.Cryptography.X509Certificates {
}
}
- public class X509Chain {
+ public class X509Chain
+ : IDisposable
+ {
private uint m_status;
private X509ChainPolicy m_chainPolicy;
private X509ChainStatus[] m_chainStatus;
private X509ChainElementCollection m_chainElementCollection;
- private SafeCertChainHandle m_safeCertChainHandle;
+
+ [SecurityCritical]
+ private SafeX509ChainHandle m_safeCertChainHandle;
private bool m_useMachineContext;
private readonly object m_syncRoot = new object();
@@ -85,14 +90,16 @@ namespace System.Security.Cryptography.X509Certificates {
return (X509Chain) CryptoConfig.CreateFromName("X509Chain");
}
+ [SecurityCritical]
public X509Chain () : this (false) {}
+ [SecurityCritical]
public X509Chain (bool useMachineContext) {
m_status = 0;
m_chainPolicy = null;
m_chainStatus = null;
m_chainElementCollection = new X509ChainElementCollection();
- m_safeCertChainHandle = SafeCertChainHandle.InvalidHandle;
+ m_safeCertChainHandle = SafeX509ChainHandle.InvalidHandle;
m_useMachineContext = useMachineContext;
}
@@ -103,7 +110,7 @@ namespace System.Security.Cryptography.X509Certificates {
if (chainContext == IntPtr.Zero)
throw new ArgumentNullException("chainContext");
m_safeCertChainHandle = CAPI.CertDuplicateCertificateChain(chainContext);
- if (m_safeCertChainHandle == null || m_safeCertChainHandle == SafeCertChainHandle.InvalidHandle)
+ if (m_safeCertChainHandle == null || m_safeCertChainHandle == SafeX509ChainHandle.InvalidHandle)
throw new CryptographicException(SR.GetString(SR.Cryptography_InvalidContextHandle), "chainContext");
Init();
@@ -117,6 +124,16 @@ namespace System.Security.Cryptography.X509Certificates {
}
}
+ public SafeX509ChainHandle SafeHandle {
+ [SecurityCritical]
+ [SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ [SecurityPermissionAttribute(SecurityAction.InheritanceDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ get
+ {
+ return m_safeCertChainHandle;
+ }
+ }
+
public X509ChainPolicy ChainPolicy {
get {
if (m_chainPolicy == null)
@@ -150,18 +167,26 @@ namespace System.Security.Cryptography.X509Certificates {
}
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
+#if !FEATURE_CORESYSTEM
[PermissionSetAttribute(SecurityAction.LinkDemand, Unrestricted=true)]
[PermissionSetAttribute(SecurityAction.InheritanceDemand, Unrestricted=true)]
+#endif
public bool Build (X509Certificate2 certificate) {
lock (m_syncRoot) {
if (certificate == null || certificate.CertContext.IsInvalid)
throw new ArgumentException(SR.GetString(SR.Cryptography_InvalidContextHandle), "certificate");
+#if !FEATURE_CORESYSTEM
// Chain building opens and enumerates the root store to see if the root of the chain is trusted.
StorePermission sp = new StorePermission(StorePermissionFlags.OpenStore | StorePermissionFlags.EnumerateCertificates);
sp.Demand();
+#endif
X509ChainPolicy chainPolicy = this.ChainPolicy;
+#if !FEATURE_CORESYSTEM
if (chainPolicy.RevocationMode == X509RevocationMode.Online) {
if (certificate.Extensions[CAPI.szOID_CRL_DIST_POINTS] != null ||
certificate.Extensions[CAPI.szOID_AUTHORITY_INFO_ACCESS] != null) {
@@ -173,6 +198,7 @@ namespace System.Security.Cryptography.X509Certificates {
ps.Demand();
}
}
+#endif
Reset();
int hr = BuildChain(m_useMachineContext ? new IntPtr(CAPI.HCCE_LOCAL_MACHINE) : new IntPtr(CAPI.HCCE_CURRENT_USER),
@@ -210,20 +236,41 @@ namespace System.Security.Cryptography.X509Certificates {
}
}
+ [SecurityCritical]
+#if !FEATURE_CORESYSTEM
[PermissionSetAttribute(SecurityAction.LinkDemand, Unrestricted=true)]
[PermissionSetAttribute(SecurityAction.InheritanceDemand, Unrestricted=true)]
+#endif
public void Reset () {
m_status = 0;
m_chainStatus = null;
m_chainElementCollection = new X509ChainElementCollection();
if (!m_safeCertChainHandle.IsInvalid) {
m_safeCertChainHandle.Dispose();
- m_safeCertChainHandle = SafeCertChainHandle.InvalidHandle;
+ m_safeCertChainHandle = SafeX509ChainHandle.InvalidHandle;
+ }
+ }
+
+ [SecuritySafeCritical]
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+
+
+ [SecuritySafeCritical]
+ protected virtual void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ Reset();
}
}
+ [SecurityCritical]
private unsafe void Init () {
- using (SafeCertChainHandle safeCertChainHandle = CAPI.CertDuplicateCertificateChain(m_safeCertChainHandle)) {
+ using (SafeX509ChainHandle safeCertChainHandle = CAPI.CertDuplicateCertificateChain(m_safeCertChainHandle)) {
CAPI.CERT_CHAIN_CONTEXT pChain = new CAPI.CERT_CHAIN_CONTEXT(Marshal.SizeOf(typeof(CAPI.CERT_CHAIN_CONTEXT)));
uint cbSize = (uint) Marshal.ReadInt32(safeCertChainHandle.DangerousGetHandle());
if (cbSize > Marshal.SizeOf(pChain))
@@ -237,6 +284,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
internal static X509ChainStatus[] GetChainStatusInformation (uint dwStatus) {
if (dwStatus == 0)
return new X509ChainStatus[0];
@@ -407,6 +457,8 @@ namespace System.Security.Cryptography.X509Certificates {
// Builds a certificate chain.
//
+
+ [SecurityCritical]
internal static unsafe int BuildChain (IntPtr hChainEngine,
SafeCertContextHandle pCertContext,
X509Certificate2Collection extraStore,
@@ -416,7 +468,7 @@ namespace System.Security.Cryptography.X509Certificates {
X509RevocationFlag revocationFlag,
DateTime verificationTime,
TimeSpan timeout,
- ref SafeCertChainHandle ppChainContext) {
+ ref SafeX509ChainHandle ppChainContext) {
if (pCertContext == null || pCertContext.IsInvalid)
throw new ArgumentException(SR.GetString(SR.Cryptography_InvalidContextHandle), "pCertContext");
diff --git a/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509chainelement.cs b/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509chainelement.cs
index 95eed2d1841..e2f537d6398 100644
--- a/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509chainelement.cs
+++ b/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509chainelement.cs
@@ -18,6 +18,10 @@ namespace System.Security.Cryptography.X509Certificates {
private string m_description;
private X509ChainElement () {}
+
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
internal unsafe X509ChainElement (IntPtr pChainElement) {
CAPI.CERT_CHAIN_ELEMENT chainElement = new CAPI.CERT_CHAIN_ELEMENT(Marshal.SizeOf(typeof(CAPI.CERT_CHAIN_ELEMENT)));
uint cbSize = (uint) Marshal.ReadInt32(pChainElement);
@@ -64,6 +68,9 @@ namespace System.Security.Cryptography.X509Certificates {
m_elements = new X509ChainElement[0];
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
internal unsafe X509ChainElementCollection (IntPtr pSimpleChain) {
CAPI.CERT_SIMPLE_CHAIN simpleChain = new CAPI.CERT_SIMPLE_CHAIN(Marshal.SizeOf(typeof(CAPI.CERT_SIMPLE_CHAIN)));
uint cbSize = (uint) Marshal.ReadInt32(pSimpleChain);
diff --git a/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509extension.cs b/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509extension.cs
index df9598e6ea6..56a0add6bbb 100644
--- a/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509extension.cs
+++ b/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509extension.cs
@@ -20,6 +20,9 @@ namespace System.Security.Cryptography.X509Certificates {
internal X509Extension(string oid) : base (new Oid(oid, OidGroup.ExtensionOrAttribute, false)) {}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
internal X509Extension(IntPtr pExtension) {
CAPI.CERT_EXTENSION extension = (CAPI.CERT_EXTENSION) Marshal.PtrToStructure(pExtension, typeof(CAPI.CERT_EXTENSION));
m_critical = extension.fCritical;
@@ -93,6 +96,9 @@ namespace System.Security.Cryptography.X509Certificates {
m_decoded = true;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public X509KeyUsageExtension (X509KeyUsageFlags keyUsages, bool critical) :
base (CAPI.szOID_KEY_USAGE, EncodeExtension(keyUsages), critical) {}
@@ -112,6 +118,9 @@ namespace System.Security.Cryptography.X509Certificates {
m_decoded = false;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private void DecodeExtension () {
uint cbDecoded = 0;
SafeLocalAllocHandle decoded = null;
@@ -135,6 +144,9 @@ namespace System.Security.Cryptography.X509Certificates {
decoded.Dispose();
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private static unsafe byte[] EncodeExtension (X509KeyUsageFlags keyUsages) {
CAPI.CRYPT_BIT_BLOB blob = new CAPI.CRYPT_BIT_BLOB();
blob.cbData = 2;
@@ -194,6 +206,9 @@ namespace System.Security.Cryptography.X509Certificates {
m_decoded = false;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private void DecodeExtension () {
uint cbDecoded = 0;
SafeLocalAllocHandle decoded = null;
@@ -236,6 +251,9 @@ namespace System.Security.Cryptography.X509Certificates {
decoded.Dispose();
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private static unsafe byte[] EncodeExtension (bool certificateAuthority, bool hasPathLengthConstraint, int pathLengthConstraint) {
CAPI.CERT_BASIC_CONSTRAINTS2_INFO pBasicConstraints2 = new CAPI.CERT_BASIC_CONSTRAINTS2_INFO();
pBasicConstraints2.fCA = certificateAuthority ? 1 : 0;
@@ -270,6 +288,9 @@ namespace System.Security.Cryptography.X509Certificates {
base (CAPI.szOID_ENHANCED_KEY_USAGE, encodedEnhancedKeyUsages.RawData, critical) {}
public OidCollection EnhancedKeyUsages {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (!m_decoded)
DecodeExtension();
@@ -286,6 +307,9 @@ namespace System.Security.Cryptography.X509Certificates {
m_decoded = false;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private void DecodeExtension () {
uint cbDecoded = 0;
SafeLocalAllocHandle decoded = null;
@@ -311,6 +335,9 @@ namespace System.Security.Cryptography.X509Certificates {
decoded.Dispose();
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private static unsafe byte[] EncodeExtension (OidCollection enhancedKeyUsages) {
if (enhancedKeyUsages == null)
throw new ArgumentNullException("enhancedKeyUsages");
@@ -344,22 +371,40 @@ namespace System.Security.Cryptography.X509Certificates {
m_decoded = true;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public X509SubjectKeyIdentifierExtension (string subjectKeyIdentifier, bool critical) :
base (CAPI.szOID_SUBJECT_KEY_IDENTIFIER, EncodeExtension(subjectKeyIdentifier), critical) {}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public X509SubjectKeyIdentifierExtension (byte[] subjectKeyIdentifier, bool critical) :
base (CAPI.szOID_SUBJECT_KEY_IDENTIFIER, EncodeExtension(subjectKeyIdentifier), critical) {}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public X509SubjectKeyIdentifierExtension (AsnEncodedData encodedSubjectKeyIdentifier, bool critical) :
base (CAPI.szOID_SUBJECT_KEY_IDENTIFIER, encodedSubjectKeyIdentifier.RawData, critical) {}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public X509SubjectKeyIdentifierExtension (PublicKey key, bool critical) :
base (CAPI.szOID_SUBJECT_KEY_IDENTIFIER, EncodePublicKey(key, X509SubjectKeyIdentifierHashAlgorithm.Sha1), critical) {}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public X509SubjectKeyIdentifierExtension (PublicKey key, X509SubjectKeyIdentifierHashAlgorithm algorithm, bool critical) :
base (CAPI.szOID_SUBJECT_KEY_IDENTIFIER, EncodePublicKey(key, algorithm), critical) {}
public string SubjectKeyIdentifier {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (!m_decoded)
DecodeExtension();
@@ -372,6 +417,9 @@ namespace System.Security.Cryptography.X509Certificates {
m_decoded = false;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private void DecodeExtension () {
uint cbDecoded = 0;
SafeLocalAllocHandle decoded = null;
@@ -400,6 +448,9 @@ namespace System.Security.Cryptography.X509Certificates {
return EncodeExtension(X509Utils.DecodeHexString(subjectKeyIdentifier));
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private static unsafe byte[] EncodeExtension (byte[] subjectKeyIdentifier) {
if (subjectKeyIdentifier == null)
throw new ArgumentNullException("subjectKeyIdentifier");
@@ -420,6 +471,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
// Construct CERT_PUBLIC_KEY_INFO2 in unmanged memory from given encoded blobs.
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private static unsafe SafeLocalAllocHandle EncodePublicKey (PublicKey key) {
SafeLocalAllocHandle publicKeyInfo = SafeLocalAllocHandle.InvalidHandle;
CAPI.CERT_PUBLIC_KEY_INFO2 * pPublicKeyInfo = null;
@@ -453,6 +507,9 @@ namespace System.Security.Cryptography.X509Certificates {
return publicKeyInfo;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private static unsafe byte[] EncodePublicKey (PublicKey key, X509SubjectKeyIdentifierHashAlgorithm algorithm) {
if (key == null)
throw new ArgumentNullException("key");
@@ -540,6 +597,9 @@ namespace System.Security.Cryptography.X509Certificates {
public X509ExtensionCollection() {}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
internal unsafe X509ExtensionCollection(SafeCertContextHandle safeCertContextHandle) {
using (SafeCertContextHandle certContext = CAPI.CertDuplicateCertificateContext(safeCertContextHandle)) {
CAPI.CERT_CONTEXT pCertContext = *((CAPI.CERT_CONTEXT*) certContext.DangerousGetHandle());
diff --git a/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509store.cs b/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509store.cs
index 7c06de7f388..f3dcee8d671 100644
--- a/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509store.cs
+++ b/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509store.cs
@@ -41,9 +41,12 @@ namespace System.Security.Cryptography.X509Certificates {
TrustedPublisher, // trusted publishers (used in Authenticode).
}
- public sealed class X509Store {
+ public sealed class X509Store : IDisposable{
private string m_storeName;
private StoreLocation m_location;
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
private SafeCertStoreHandle m_safeCertStoreHandle = SafeCertStoreHandle.InvalidHandle;
public X509Store () : this("MY", StoreLocation.CurrentUser) {}
@@ -54,6 +57,9 @@ namespace System.Security.Cryptography.X509Certificates {
public X509Store (StoreLocation storeLocation) : this ("MY", storeLocation) {}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public X509Store (StoreName storeName, StoreLocation storeLocation) {
if (storeLocation != StoreLocation.CurrentUser && storeLocation != StoreLocation.LocalMachine)
throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, SR.GetString(SR.Arg_EnumIllegalVal), "storeLocation"));
@@ -90,6 +96,9 @@ namespace System.Security.Cryptography.X509Certificates {
m_location = storeLocation;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public X509Store (string storeName, StoreLocation storeLocation) {
if (storeLocation != StoreLocation.CurrentUser && storeLocation != StoreLocation.LocalMachine)
throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, SR.GetString(SR.Arg_EnumIllegalVal), "storeLocation"));
@@ -128,8 +137,13 @@ namespace System.Security.Cryptography.X509Certificates {
get { return m_storeName; }
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
[ResourceExposure(ResourceScope.None)]
+#if !FEATURE_CORESYSTEM
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
+#endif
public void Open(OpenFlags flags) {
if (m_location != StoreLocation.CurrentUser && m_location != StoreLocation.LocalMachine)
throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, SR.GetString(SR.Arg_EnumIllegalVal), "m_location"));
@@ -158,12 +172,22 @@ namespace System.Security.Cryptography.X509Certificates {
CAPI.CERT_STORE_CTRL_AUTO_RESYNC,
IntPtr.Zero);
}
-
+
+ public void Dispose() {
+ Close();
+ }
+
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public void Close() {
if (m_safeCertStoreHandle != null && !m_safeCertStoreHandle.IsClosed)
m_safeCertStoreHandle.Dispose();
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public void Add(X509Certificate2 certificate) {
if (certificate == null)
throw new ArgumentNullException("certificate");
@@ -196,6 +220,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
public void Remove(X509Certificate2 certificate) {
if (certificate == null)
throw new ArgumentNullException("certificate");
@@ -222,6 +249,9 @@ namespace System.Security.Cryptography.X509Certificates {
}
public X509Certificate2Collection Certificates {
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
get {
if (m_safeCertStoreHandle.IsInvalid || m_safeCertStoreHandle.IsClosed)
return new X509Certificate2Collection();
@@ -233,6 +263,9 @@ namespace System.Security.Cryptography.X509Certificates {
// private static methods
//
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
private static void RemoveCertificateFromStore(SafeCertStoreHandle safeCertStoreHandle, SafeCertContextHandle safeCertContext) {
if (safeCertContext == null || safeCertContext.IsInvalid)
return;
diff --git a/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509utils.cs b/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509utils.cs
index 73684de4109..92fecf7812a 100644
--- a/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509utils.cs
+++ b/mcs/class/referencesource/System/security/system/security/cryptography/x509/x509utils.cs
@@ -19,6 +19,7 @@ namespace System.Security.Cryptography.X509Certificates {
using System.Security.Cryptography;
using System.Security.Permissions;
using System.Text;
+ using Microsoft.Win32.SafeHandles;
internal class X509Utils {
private X509Utils () {}
@@ -228,6 +229,9 @@ namespace System.Security.Cryptography.X509Certificates {
return index + 1;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
internal static SafeLocalAllocHandle ByteToPtr (byte[] managed) {
SafeLocalAllocHandle pb = CAPI.LocalAlloc(CAPI.LMEM_FIXED, new IntPtr(managed.Length));
Marshal.Copy(managed, 0, pb.DangerousGetHandle(), managed.Length);
@@ -240,12 +244,18 @@ namespace System.Security.Cryptography.X509Certificates {
// following the platform.
//
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
internal unsafe static void memcpy (IntPtr source, IntPtr dest, uint size) {
for (uint index = 0; index < size; index++) {
*(byte*) ((long)dest + index) = Marshal.ReadByte(new IntPtr((long)source + index));
}
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
internal static byte[] PtrToByte (IntPtr unmanaged, uint size) {
byte[] array = new byte[(int) size];
Marshal.Copy(unmanaged, array, 0, array.Length);
@@ -264,6 +274,9 @@ namespace System.Security.Cryptography.X509Certificates {
return true;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
internal static SafeLocalAllocHandle StringToAnsiPtr (string s) {
byte[] arr = new byte[s.Length + 1];
Encoding.ASCII.GetBytes(s, 0, s.Length, arr, 0);
@@ -272,6 +285,9 @@ namespace System.Security.Cryptography.X509Certificates {
return pb;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
internal static SafeLocalAllocHandle StringToUniPtr (string s) {
byte[] arr = new byte[2 * (s.Length + 1)];
Encoding.Unicode.GetBytes(s, 0, s.Length, arr, 0);
@@ -281,14 +297,19 @@ namespace System.Security.Cryptography.X509Certificates {
}
// this method create a memory store from a certificate collection
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
internal static SafeCertStoreHandle ExportToMemoryStore (X509Certificate2Collection collection) {
//
// We need to Assert all StorePermission flags since this is a memory store and we want
// semi-trusted code to be able to export certificates to a memory store.
//
+#if !FEATURE_CORESYSTEM
StorePermission sp = new StorePermission(StorePermissionFlags.AllFlags);
sp.Assert();
+#endif
SafeCertStoreHandle safeCertStoreHandle = SafeCertStoreHandle.InvalidHandle;
@@ -320,12 +341,18 @@ namespace System.Security.Cryptography.X509Certificates {
return safeCertStoreHandle;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
internal static uint OidToAlgId (string value) {
SafeLocalAllocHandle pszOid = StringToAnsiPtr(value);
CAPI.CRYPT_OID_INFO pOIDInfo = CAPI.CryptFindOIDInfo(CAPI.CRYPT_OID_INFO_OID_KEY, pszOid, 0);
return pOIDInfo.Algid;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
internal static string FindOidInfo(uint keyType, string keyValue, OidGroup oidGroup) {
if (keyValue == null)
throw new ArgumentNullException("keyValue");
@@ -417,6 +444,9 @@ error:
throw new ArgumentException(SR.GetString(SR.Argument_InvalidOidValue));
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
internal static SafeLocalAllocHandle CopyOidsToUnmanagedMemory (OidCollection oids) {
SafeLocalAllocHandle safeLocalAllocHandle = SafeLocalAllocHandle.InvalidHandle;
if (oids == null || oids.Count == 0)
@@ -451,6 +481,9 @@ error:
return safeLocalAllocHandle;
}
+#if FEATURE_CORESYSTEM
+ [SecuritySafeCritical]
+#endif
internal static X509Certificate2Collection GetCertificates(SafeCertStoreHandle safeCertStoreHandle) {
X509Certificate2Collection collection = new X509Certificate2Collection();
IntPtr pEnumContext = CAPI.CertEnumCertificatesInStore(safeCertStoreHandle, IntPtr.Zero);
@@ -469,6 +502,9 @@ error:
// Anything else is an error.
//
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
internal static unsafe int VerifyCertificate (SafeCertContextHandle pCertContext,
OidCollection applicationPolicy,
OidCollection certificatePolicy,
@@ -486,7 +522,7 @@ error:
CAPI.CERT_CHAIN_POLICY_STATUS PolicyStatus = new CAPI.CERT_CHAIN_POLICY_STATUS(Marshal.SizeOf(typeof(CAPI.CERT_CHAIN_POLICY_STATUS)));
// Build the chain.
- SafeCertChainHandle pChainContext = SafeCertChainHandle.InvalidHandle;
+ SafeX509ChainHandle pChainContext = SafeX509ChainHandle.InvalidHandle;
int hr = X509Chain.BuildChain(new IntPtr(CAPI.HCCE_CURRENT_USER),
pCertContext,
extraStore,
@@ -515,6 +551,9 @@ error:
return CAPI.S_OK;
}
+#if FEATURE_CORESYSTEM
+ [SecurityCritical]
+#endif
internal static string GetSystemErrorString (int hr) {
StringBuilder strMessage = new StringBuilder(512);
uint dwErrorCode = CAPI.FormatMessage (CAPI.FORMAT_MESSAGE_FROM_SYSTEM | CAPI.FORMAT_MESSAGE_IGNORE_INSERTS,
diff --git a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/AsyncStreamReader.cs b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/AsyncStreamReader.cs
index 767a9e576e2..f5fabc69b61 100644
--- a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/AsyncStreamReader.cs
+++ b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/AsyncStreamReader.cs
@@ -53,6 +53,9 @@ namespace System.Diagnostics {
private Queue messageQueue;
private StringBuilder sb;
private bool bLastCarriageReturn;
+
+ // Cache the last position scanned in sb when searching for lines.
+ private int currentLinePos;
internal AsyncStreamReader(Process process, Stream stream, UserCallBack callback, Encoding encoding)
: this(process, stream, callback, encoding, DefaultBufferSize) {
@@ -203,48 +206,57 @@ namespace System.Diagnostics {
//
private void GetLinesFromStringBuilder() {
- int i = 0;
+ int currentIndex = currentLinePos;
int lineStart = 0;
int len = sb.Length;
// skip a beginning '\n' character of new block if last block ended
// with '\r'
if (bLastCarriageReturn && (len > 0) && sb[0] == '\n')
- {
- i = 1;
+ {
+ currentIndex = 1;
lineStart = 1;
bLastCarriageReturn = false;
}
-
- while(i < len) {
- char ch = sb[i];
+
+ while (currentIndex < len) {
+ char ch = sb[currentIndex];
// Note the following common line feed chars:
// \n - UNIX \r\n - DOS \r - Mac
if (ch == '\r' || ch == '\n') {
- string s = sb.ToString(lineStart, i - lineStart);
- lineStart = i + 1;
+ string s = sb.ToString(lineStart, currentIndex - lineStart);
+ lineStart = currentIndex + 1;
// skip the "\n" character following "\r" character
if ((ch == '\r') && (lineStart < len) && (sb[lineStart] == '\n'))
{
lineStart++;
- i++;
+ currentIndex++;
}
lock(messageQueue) {
messageQueue.Enqueue(s);
}
}
- i++;
+ currentIndex++;
}
if (sb[len - 1] == '\r') {
bLastCarriageReturn = true;
- }
+ }
// Keep the rest characaters which can't form a new line in string builder.
- if( lineStart < len) {
- sb.Remove(0, lineStart);
+ if (lineStart < len) {
+ if (lineStart == 0) {
+ // we found no breaklines, in this case we cache the position
+ // so next time we don't have to restart from the beginning
+ currentLinePos = currentIndex;
+ }
+ else {
+ sb.Remove(0, lineStart);
+ currentLinePos = 0;
+ }
}
else {
sb.Length = 0;
+ currentLinePos = 0;
}
FlushMessageQueue();
diff --git a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLog.cs b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLog.cs
index faa25dd5ebe..1c8e71440db 100644
--- a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLog.cs
+++ b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLog.cs
@@ -150,8 +150,8 @@ namespace System.Diagnostics {
[MonitoringDescription(SR.LogLog)]
[DefaultValue("")]
[SettingsBindable(true)]
- [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Justification = "[....]: Safe, oldLog.machineName doesn't change")]
- [SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Justification = "[....]: By design, see justification above assert")]
+ [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Justification = "Microsoft: Safe, oldLog.machineName doesn't change")]
+ [SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Justification = "Microsoft: By design, see justification above assert")]
public string Log {
get {
return m_underlyingEventLog.Log;
@@ -181,7 +181,7 @@ namespace System.Diagnostics {
[MonitoringDescription(SR.LogMachineName)]
[DefaultValue(".")]
[SettingsBindable(true)]
- [SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Justification = "[....]: By design, see justification above assert")]
+ [SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Justification = "Microsoft: By design, see justification above assert")]
public string MachineName {
get {
return m_underlyingEventLog.MachineName;
@@ -292,8 +292,8 @@ namespace System.Diagnostics {
[MonitoringDescription(SR.LogSource)]
[DefaultValue("")]
[SettingsBindable(true)]
- [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Justification = "[....]: Safe, oldLog.machineName doesn't change")]
- [SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Justification = "[....]: By design, see justification above assert")]
+ [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Justification = "Microsoft: Safe, oldLog.machineName doesn't change")]
+ [SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Justification = "Microsoft: By design, see justification above assert")]
public string Source {
get {
return m_underlyingEventLog.Source;
@@ -1069,7 +1069,7 @@ namespace System.Diagnostics {
/// </devdoc>
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
- [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Justification = "[....]: Safe, machineName doesn't change")]
+ [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Justification = "Microsoft: Safe, machineName doesn't change")]
internal static bool SourceExists(string source, string machineName, bool wantToCreate) {
if (!SyntaxCheck.CheckMachineName(machineName)) {
throw new ArgumentException(SR.GetString(SR.InvalidParameter, "machineName", machineName));
diff --git a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLogEntry.cs b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLogEntry.cs
index 931faaa6aff..cd19c7cc6b7 100644
--- a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLogEntry.cs
+++ b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLogEntry.cs
@@ -426,7 +426,7 @@ namespace System.Diagnostics {
if ( percentIdx < 0 )
return msg; // no '%' at all
- int startCopyIdx = 0; // start idx of last [....] msg chars to copy
+ int startCopyIdx = 0; // start idx of last orig msg chars to copy
int msgLength = msg.Length;
StringBuilder buf = new StringBuilder();
string paramDLLNames = GetMessageLibraryNames("ParameterMessageFile");
diff --git a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLogEntryCollection.cs b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLogEntryCollection.cs
index 589a1d493f0..c095b36003a 100644
--- a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLogEntryCollection.cs
+++ b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLogEntryCollection.cs
@@ -9,7 +9,7 @@ namespace System.Diagnostics {
using System;
using System.Collections;
- //Consider, V2, [....]: Is there a way to implement Contains
+ //Consider, V2, Microsoft: Is there a way to implement Contains
//and IndexOf, can we live withouth this part of the ReadOnly
//collection pattern?
/// <devdoc>
diff --git a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLogInternal.cs b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLogInternal.cs
index 754ae4cb098..d43d0a8dfc3 100644
--- a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLogInternal.cs
+++ b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/EventLogInternal.cs
@@ -160,7 +160,7 @@ namespace System.Diagnostics {
/// <devdoc>
/// <para>[To be supplied.]</para>
/// </devdoc>
- [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Justification = "[....]: Safe, oldLog.machineName doesn't change")]
+ [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Justification = "Microsoft: Safe, oldLog.machineName doesn't change")]
public EventLogInternal(string logName, string machineName, string source, EventLog parent) {
//look out for invalid log names
if (logName == null)
@@ -316,7 +316,7 @@ namespace System.Diagnostics {
}
}
- [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Justification = "[....]: Safe, machineName doesn't change")]
+ [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Justification = "Microsoft: Safe, machineName doesn't change")]
private string GetLogName(string currentMachineName)
{
if ((logName == null || logName.Length == 0) && sourceName != null && sourceName.Length!=0) {
@@ -347,7 +347,7 @@ namespace System.Diagnostics {
}
[ComVisible(false)]
- [SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Justification = "[....]: MaximumKilobytes is the name of this property.")]
+ [SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Justification = "Microsoft: MaximumKilobytes is the name of this property.")]
public long MaximumKilobytes {
get {
string currentMachineName = this.machineName;
@@ -653,7 +653,7 @@ namespace System.Diagnostics {
Close(this.machineName);
}
- [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Justification = "[....]: Safe, currentMachineName doesn't change")]
+ [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Justification = "Microsoft: Safe, currentMachineName doesn't change")]
private void Close(string currentMachineName) {
EventLogPermission permission = new EventLogPermission(EventLogPermissionAccess.Write, currentMachineName);
permission.Demand();
@@ -730,7 +730,7 @@ namespace System.Diagnostics {
i = lastSeenCount;
}
- // NOTE, [....]: We have a double loop here so that we access the
+ // NOTE, Microsoft: We have a double loop here so that we access the
// EntryCount property as infrequently as possible. (It may be expensive
// to get the property.) Even though there are two loops, they will together
// only execute as many times as (final value of EntryCount) - lastSeenCount.
@@ -897,7 +897,7 @@ namespace System.Diagnostics {
oldestEntry+idx, buf, buf.Length, out bytesRead, out minBytesNeeded);
if (!success) {
error = Marshal.GetLastWin32Error();
- // NOTE, [....]: ERROR_PROC_NOT_FOUND used to get returned, but I think that
+ // NOTE, Microsoft: ERROR_PROC_NOT_FOUND used to get returned, but I think that
// was because I was calling GetLastError directly instead of GetLastWin32Error.
// Making the buffer bigger and trying again seemed to work. I've removed the check
// for ERROR_PROC_NOT_FOUND because I don't think it's necessary any more, but
@@ -1090,7 +1090,7 @@ namespace System.Diagnostics {
cache, cache.Length, out bytesRead, out minBytesNeeded);
if (!success) {
int error = Marshal.GetLastWin32Error();
- // NOTE, [....]: ERROR_PROC_NOT_FOUND used to get returned, but I think that
+ // NOTE, Microsoft: ERROR_PROC_NOT_FOUND used to get returned, but I think that
// was because I was calling GetLastError directly instead of GetLastWin32Error.
// Making the buffer bigger and trying again seemed to work. I've removed the check
// for ERROR_PROC_NOT_FOUND because I don't think it's necessary any more, but
@@ -1270,7 +1270,7 @@ namespace System.Diagnostics {
/// </devdoc>
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
- [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Justification = "[....]: Safe, machineName doesn't change")]
+ [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Justification = "Microsoft: Safe, machineName doesn't change")]
private void OpenForRead(string currentMachineName) {
Debug.WriteLineIf(CompModSwitches.EventLog.TraceVerbose, "EventLog::OpenForRead");
@@ -1286,13 +1286,13 @@ namespace System.Diagnostics {
if (logname == null || logname.Length==0)
throw new ArgumentException(SR.GetString(SR.MissingLogProperty));
- if (!EventLog.Exists(logname, currentMachineName) ) // do not open non-existing Log [[....]]
+ if (!EventLog.Exists(logname, currentMachineName) ) // do not open non-existing Log [Microsoft]
throw new InvalidOperationException( SR.GetString(SR.LogDoesNotExists, logname, currentMachineName) );
//Check environment before calling api
SharedUtils.CheckEnvironment();
// Clean up cache variables.
- // [[....]] The initilizing code is put here to guarantee, that first read of events
+ // [Microsoft] The initilizing code is put here to guarantee, that first read of events
// from log file will start by filling up the cache buffer.
lastSeenEntry = 0;
lastSeenPos = 0;
@@ -1506,7 +1506,7 @@ namespace System.Diagnostics {
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
- [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Justification = "[....]: Safe, machineName doesn't change")]
+ [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity", Justification = "Microsoft: Safe, machineName doesn't change")]
private void VerifyAndCreateSource(string sourceName, string currentMachineName) {
if (boolFlags[Flag_sourceVerified])
return;
diff --git a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/Process.cs b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/Process.cs
index a7be321fd46..43272662e97 100644
--- a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/Process.cs
+++ b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/Process.cs
@@ -356,6 +356,14 @@ namespace System.Diagnostics {
}
}
+ [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+ public SafeProcessHandle SafeHandle {
+ get {
+ EnsureState(State.Associated);
+ return OpenProcessHandle(this.m_processAccess);
+ }
+ }
+
#if !FEATURE_PAL
/// <devdoc>
/// <para>
diff --git a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/ProcessManager.cs b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/ProcessManager.cs
index 37390bf0e3b..9c9d5e9e41e 100644
--- a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/ProcessManager.cs
+++ b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/ProcessManager.cs
@@ -49,7 +49,7 @@ namespace System.Diagnostics {
if (NativeMethods.GetWindow(new HandleRef(this, handle), NativeMethods.GW_OWNER) != (IntPtr)0 || !NativeMethods.IsWindowVisible(new HandleRef(this, handle)))
return false;
- // [....]: should we use no window title to mean not a main window? (task man does)
+ // Microsoft: should we use no window title to mean not a main window? (task man does)
/*
int length = NativeMethods.GetWindowTextLength(handle) * 2;
@@ -1032,36 +1032,46 @@ namespace System.Diagnostics {
#pragma warning disable 169
public static ProcessInfo[] GetProcessInfos() {
- // On a normal machine, 30k to 40K will be enough.
- // We use 128K here to tolerate mutilple connections to a machine.
- int bufferSize = 128 * 1024;
-#if DEBUG
- // on debug build, use a smaller buffer size to make sure we hit the retrying code path
- bufferSize = 1024;
-#endif
+
int requiredSize = 0;
int status;
ProcessInfo[] processInfos;
GCHandle bufferHandle = new GCHandle();
+ // Start with the default buffer size.
+ int bufferSize = DefaultCachedBufferSize;
+
+ // Get the cached buffer.
+ long[] buffer = Interlocked.Exchange(ref CachedBuffer, null);
+
try {
// Retry until we get all the data
do {
- // Allocate buffer of longs since some platforms require the buffer to be 64-bit aligned.
- long[] buffer = new long[(bufferSize + 7) /8];
+ if (buffer == null)
+ {
+ // Allocate buffer of longs since some platforms require the buffer to be 64-bit aligned.
+ buffer = new long[(bufferSize + 7) / 8];
+ }
+ else
+ {
+ // If we have cached buffer, set the size properly.
+ bufferSize = buffer.Length * sizeof(long);
+ }
bufferHandle = GCHandle.Alloc(buffer, GCHandleType.Pinned);
- status = NativeMethods.NtQuerySystemInformation(
- NativeMethods.NtQuerySystemProcessInformation,
+ status = NativeMethods.NtQuerySystemInformation(
+ NativeMethods.NtQuerySystemProcessInformation,
bufferHandle.AddrOfPinnedObject(),
- bufferSize,
- out requiredSize);
+ bufferSize,
+ out requiredSize);
- if ((uint)status == NativeMethods.STATUS_INFO_LENGTH_MISMATCH) {
+ if ((uint)status == NativeMethods.STATUS_INFO_LENGTH_MISMATCH)
+ {
if (bufferHandle.IsAllocated) bufferHandle.Free();
- bufferSize = GetNewBufferSize( bufferSize, requiredSize);
- }
+ buffer = null;
+ bufferSize = GetNewBufferSize(bufferSize, requiredSize);
+ }
} while ((uint)status == NativeMethods.STATUS_INFO_LENGTH_MISMATCH);
if (status < 0) { // see definition of NT_SUCCESS(Status) in SDK
@@ -1072,12 +1082,25 @@ namespace System.Diagnostics {
processInfos = GetProcessInfos(bufferHandle.AddrOfPinnedObject());
}
finally {
+ // Cache the final buffer for use on the next call.
+ Interlocked.Exchange(ref CachedBuffer, buffer);
+
if (bufferHandle.IsAllocated) bufferHandle.Free();
}
return processInfos;
}
+ // Use a smaller buffer size on debug to ensure we hit the retry path.
+#if DEBUG
+ private const int DefaultCachedBufferSize = 1024;
+#else
+ private const int DefaultCachedBufferSize = 128 * 1024;
+#endif
+
+ // Cache a single buffer for use in GetProcessInfos().
+ private static long[] CachedBuffer;
+
static ProcessInfo[] GetProcessInfos(IntPtr dataPtr) {
// 60 is a reasonable number for processes on a normal machine.
Hashtable processInfos = new Hashtable(60);
diff --git a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/ProcessStartInfo.cs b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/ProcessStartInfo.cs
index 1d6347be7db..b57851de658 100644
--- a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/ProcessStartInfo.cs
+++ b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/ProcessStartInfo.cs
@@ -17,6 +17,7 @@ namespace System.Diagnostics {
using System.ComponentModel.Design;
using System.Collections.Specialized;
using System.Collections;
+ using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Runtime.Versioning;
@@ -166,7 +167,14 @@ namespace System.Diagnostics {
public StringDictionary EnvironmentVariables {
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
- get {
+ get {
+ // Note:
+ // Creating a detached ProcessStartInfo will pre-populate the environment
+ // with current environmental variables.
+
+ // When used with an existing Process.ProcessStartInfo the following behavior
+ // * Desktop - Populates with current Environment (rather than that of the process)
+
if (environmentVariables == null) {
#if PLATFORM_UNIX
environmentVariables = new CaseSensitiveStringDictionary();
@@ -180,15 +188,32 @@ namespace System.Diagnostics {
((Component)this.weakParentProcess.Target).Site != null &&
((Component)this.weakParentProcess.Target).Site.DesignMode)) {
- foreach (DictionaryEntry entry in Environment.GetEnvironmentVariables())
+ foreach (DictionaryEntry entry in System.Environment.GetEnvironmentVariables())
environmentVariables.Add((string)entry.Key, (string)entry.Value);
}
-
+
}
- return environmentVariables;
- }
+ return environmentVariables;
+ }
}
+ private IDictionary<string,string> environment;
+
+ [
+ DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
+ DefaultValue(null),
+ NotifyParentProperty(true)
+ ]
+ public IDictionary<string, string> Environment {
+ get {
+ if (environment == null) {
+ environment = this.EnvironmentVariables.AsGenericDictionary();
+ }
+
+ return environment;
+ }
+ }
+
/// <devdoc>
/// <para>[To be supplied.]</para>
/// </devdoc>
diff --git a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/SharedUtils.cs b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/SharedUtils.cs
index b1c4a860195..5b664f60ca1 100644
--- a/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/SharedUtils.cs
+++ b/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/SharedUtils.cs
@@ -112,7 +112,7 @@ namespace System.Diagnostics {
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
[SecurityPermission(SecurityAction.Assert, ControlPrincipal = true)]
- [SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Justification = "[....]: We pass fixed data into sec.AddAccessRule")]
+ [SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts", Justification = "Microsoft: We pass fixed data into sec.AddAccessRule")]
internal static void EnterMutexWithoutGlobal(string mutexName, ref Mutex mutex) {
bool createdNew;
MutexSecurity sec = new MutexSecurity();
diff --git a/mcs/class/referencesource/System/services/timers/system/timers/Timer.cs b/mcs/class/referencesource/System/services/timers/system/timers/Timer.cs
index 122d79c94b2..290f10ab21b 100644
--- a/mcs/class/referencesource/System/services/timers/system/timers/Timer.cs
+++ b/mcs/class/referencesource/System/services/timers/system/timers/Timer.cs
@@ -93,7 +93,7 @@ namespace System.Timers {
/// is able
/// to raise events at a defined interval.</para>
/// </devdoc>
- //[....] - The default value by design is false, don't change it.
+ //Microsoft - The default value by design is false, don't change it.
[Category("Behavior"), TimersDescription(SR.TimerEnabled), DefaultValue(false)]
public bool Enabled {
get {
diff --git a/mcs/class/referencesource/System/sys/AppContextDefaultValues.Defaults.cs b/mcs/class/referencesource/System/sys/AppContextDefaultValues.Defaults.cs
new file mode 100644
index 00000000000..a084bb5dc8e
--- /dev/null
+++ b/mcs/class/referencesource/System/sys/AppContextDefaultValues.Defaults.cs
@@ -0,0 +1,44 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+using System;
+
+namespace System
+{
+ internal static partial class AppContextDefaultValues
+ {
+ static partial void PopulateDefaultValuesPartial(string platformIdentifier, string profile, int version)
+ {
+ // When defining a new switch you should add it to the last known version.
+ // For instance, if you are adding a switch in .NET 4.6 (the release after 4.5.2) you should defined your switch
+ // like this:
+ // if (version <= 40502) ...
+ // This ensures that all previous versions of that platform (up-to 4.5.2) will get the old behavior by default
+ // NOTE: When adding a default value for a switch please make sure that the default value is added to ALL of the existing platforms!
+ // NOTE: When adding a new if statement for the version please ensure that ALL previous switches are enabled (ie. don't use else if)
+ switch (platformIdentifier)
+ {
+ case ".NETCore":
+ case ".NETFramework":
+ {
+ if (version <= 40502)
+ {
+ LocalAppContext.DefineSwitchDefault(LocalAppContextSwitches.DontEnableSchUseStrongCryptoName, true);
+ }
+ break;
+ }
+ case "WindowsPhone":
+ case "WindowsPhoneApp":
+ {
+ if (version <= 80100)
+ {
+ LocalAppContext.DefineSwitchDefault(LocalAppContextSwitches.DontEnableSchUseStrongCryptoName, true);
+ }
+ break;
+ }
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/System/sys/LocalAppContextSwitches.cs b/mcs/class/referencesource/System/sys/LocalAppContextSwitches.cs
new file mode 100644
index 00000000000..1d776627f77
--- /dev/null
+++ b/mcs/class/referencesource/System/sys/LocalAppContextSwitches.cs
@@ -0,0 +1,29 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+using System;
+using System.Runtime.CompilerServices;
+
+namespace System
+{
+ internal static class LocalAppContextSwitches
+ {
+
+#region System.Net quirks
+ private static int _dontEnableSchUseStrongCrypto;
+ internal const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";
+
+ public static bool DontEnableSchUseStrongCrypto
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ get
+ {
+ return LocalAppContext.GetCachedSwitchValue(DontEnableSchUseStrongCryptoName, ref _dontEnableSchUseStrongCrypto);
+ }
+ }
+#endregion
+
+ }
+}
diff --git a/mcs/class/referencesource/System/sys/baseline.cs b/mcs/class/referencesource/System/sys/baseline.cs
index 9d0addfb51d..e2edd217f5c 100644
--- a/mcs/class/referencesource/System/sys/baseline.cs
+++ b/mcs/class/referencesource/System/sys/baseline.cs
@@ -5,7 +5,7 @@ using System.Diagnostics.CodeAnalysis;
//////////////////////////////////////////////////////////////////////////////
// Date: Tuesday, May 19, 2009 11:00:00 AM
// Description: Baseline System violations from 3.5 SP1
-// User: REDMOND\[....]
+// User: REDMOND\davkean
//////////////////////////////////////////////////////////////////////////////
#if CODE_ANALYSIS_BASELINE
diff --git a/mcs/class/referencesource/System/sys/system/IO/compression/CompressionLevel.cs b/mcs/class/referencesource/System/sys/system/IO/compression/CompressionLevel.cs
index b43a1e5f35d..24170913252 100644
--- a/mcs/class/referencesource/System/sys/system/IO/compression/CompressionLevel.cs
+++ b/mcs/class/referencesource/System/sys/system/IO/compression/CompressionLevel.cs
@@ -25,4 +25,4 @@ namespace System.IO.Compression {
} // namespace System.IO.Compression
-// CompressionLevel.cs
+// CompressionLevel.cs \ No newline at end of file
diff --git a/mcs/class/referencesource/System/sys/system/IO/compression/FastEncoderWindow.cs b/mcs/class/referencesource/System/sys/system/IO/compression/FastEncoderWindow.cs
index 6b95ed1f66e..2fd3054cda6 100644
--- a/mcs/class/referencesource/System/sys/system/IO/compression/FastEncoderWindow.cs
+++ b/mcs/class/referencesource/System/sys/system/IO/compression/FastEncoderWindow.cs
@@ -109,9 +109,9 @@ namespace System.IO.Compression {
}
#if DEBUG
- // For debugging, wipe the window clean, so that if there is a bug in our hashing,
- // the hash pointers will now point to locations which are not valid for the hash value
- // (and will be caught by our ASSERTs).
+ // For debugging, wipe the window clean, so that if there is a
+
+
Array.Clear(window, FastEncoderWindowSize, window.Length - FastEncoderWindowSize);
#endif
diff --git a/mcs/class/referencesource/System/sys/system/IO/ports/SerialStream.cs b/mcs/class/referencesource/System/sys/system/IO/ports/SerialStream.cs
index 02e2d444528..358baee38d2 100644
--- a/mcs/class/referencesource/System/sys/system/IO/ports/SerialStream.cs
+++ b/mcs/class/referencesource/System/sys/system/IO/ports/SerialStream.cs
@@ -7,7 +7,7 @@
**
** Class: SerialStream
**
-** Purpose: Class for enabling low-level [....] and async control over a serial
+** Purpose: Class for enabling low-level sync and async control over a serial
** : communications resource.
**
** Date: August, 2002
diff --git a/mcs/class/referencesource/System/sys/system/Media/SoundPlayer.cs b/mcs/class/referencesource/System/sys/system/Media/SoundPlayer.cs
index 57e621ef4dc..3463d51e88a 100644
--- a/mcs/class/referencesource/System/sys/system/Media/SoundPlayer.cs
+++ b/mcs/class/referencesource/System/sys/system/Media/SoundPlayer.cs
@@ -227,7 +227,7 @@ namespace System.Media {
/// <include file='doc\SoundPlayer.uex' path='docs/doc[@for="SoundPlayer.Load"]/*' />
public void Load() {
// if we have a file there is nothing to load - we just pass the file to the PlaySound function
- // if we have a stream, then we start loading the stream [....]
+ // if we have a stream, then we start loading the stream sync
//
if (uri != null && uri.IsFile){
Debug.Assert(stream == null, "we can't have a stream and a path at the same time");
@@ -245,7 +245,7 @@ namespace System.Media {
[SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity")] // FileIOPermission based on URI path, but path isn't gonna change during scope of Demand
private void LoadAndPlay(int flags) {
- // bug 16794: when the user does not specify a sound location nor a stream, play Beep
+ //
if (String.IsNullOrEmpty(soundLocation) && stream == null) {
SystemSounds.Beep.Play();
return;
diff --git a/mcs/class/referencesource/System/sys/system/Reflection/ICustomTypeProvider.cs b/mcs/class/referencesource/System/sys/system/Reflection/ICustomTypeProvider.cs
index 2b2ede2885e..a6ac4af8ea9 100644
--- a/mcs/class/referencesource/System/sys/system/Reflection/ICustomTypeProvider.cs
+++ b/mcs/class/referencesource/System/sys/system/Reflection/ICustomTypeProvider.cs
@@ -21,4 +21,4 @@ public interface ICustomTypeProvider {
#endif // !SILVERLIGHT
-// ICustomTypeProvider.cs
+// ICustomTypeProvider.cs \ No newline at end of file
diff --git a/mcs/class/referencesource/System/sys/system/collections/concurrent/BlockingCollection.cs b/mcs/class/referencesource/System/sys/system/collections/concurrent/BlockingCollection.cs
index a5870e7b128..53f2bf210e2 100644
--- a/mcs/class/referencesource/System/sys/system/collections/concurrent/BlockingCollection.cs
+++ b/mcs/class/referencesource/System/sys/system/collections/concurrent/BlockingCollection.cs
@@ -1,4 +1,4 @@
-// ==++==
+// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
@@ -7,7 +7,7 @@
//
// BlockingCollection.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A class that implements the bounding and blocking functionality while abstracting away
// the underlying storage mechanism. This file also contains BlockingCollection's
@@ -53,7 +53,7 @@ namespace System.Collections.Concurrent
#endif
[DebuggerTypeProxy(typeof(SystemThreadingCollections_BlockingCollectionDebugView<>))]
[DebuggerDisplay("Count = {Count}, Type = {m_collection}")]
- public class BlockingCollection<T> : IEnumerable<T>, ICollection, IDisposable
+ public class BlockingCollection<T> : IEnumerable<T>, ICollection, IDisposable, IReadOnlyCollection<T>
{
private IProducerConsumerCollection<T> m_collection;
private int m_boundedCapacity;
@@ -499,7 +499,7 @@ namespace System.Collections.Concurrent
try
{
//The token may have been canceled before the collection had space available, so we need a check after the wait has completed.
- //This fixes bug #702328, case 2 of 2.
+ //This fixes
cancellationToken.ThrowIfCancellationRequested();
addingSucceeded = m_collection.TryAdd(item);
}
@@ -736,7 +736,7 @@ namespace System.Collections.Concurrent
try
{
//The token may have been canceled before an item arrived, so we need a check after the wait has completed.
- //This fixes bug #702328, case 1 of 2.
+ //This fixes
cancellationToken.ThrowIfCancellationRequested();
//If an item was successfully removed from the underlying collection.
diff --git a/mcs/class/referencesource/System/sys/system/collections/concurrent/ConcurrentBag.cs b/mcs/class/referencesource/System/sys/system/collections/concurrent/ConcurrentBag.cs
index e93b41d2dac..7e0903cc2d5 100644
--- a/mcs/class/referencesource/System/sys/system/collections/concurrent/ConcurrentBag.cs
+++ b/mcs/class/referencesource/System/sys/system/collections/concurrent/ConcurrentBag.cs
@@ -1,4 +1,4 @@
-// ==++==
+// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
@@ -7,7 +7,7 @@
//
// ConcurrentBag.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
//An unordered collection that allows duplicates and that provides add and get operations.
@@ -55,7 +55,7 @@ namespace System.Collections.Concurrent
#if !(FEATURE_NETCORE || DISABLE_CAS_USE)
[HostProtection(Synchronization = true, ExternalThreading = true)]
#endif
- public class ConcurrentBag<T> : IProducerConsumerCollection<T>
+ public class ConcurrentBag<T> : IProducerConsumerCollection<T>, IReadOnlyCollection<T>
{
// ThreadLocalList object that contains the data per thread
diff --git a/mcs/class/referencesource/System/sys/system/runtime/interopservices/handlecollector.cs b/mcs/class/referencesource/System/sys/system/runtime/interopservices/handlecollector.cs
index c5a0adfb4df..7b1692f2eb0 100644
--- a/mcs/class/referencesource/System/sys/system/runtime/interopservices/handlecollector.cs
+++ b/mcs/class/referencesource/System/sys/system/runtime/interopservices/handlecollector.cs
@@ -61,6 +61,9 @@ namespace System.Runtime.InteropServices
public string Name { get {return name;} }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods")] // Keep call to GC.Collect()
+#if FEATURE_LEGACYNETCF
+ [System.Security.SecuritySafeCritical]
+#endif// FEATURE_LEGACYNETCF
public void Add () {
int gen_collect = -1;
Interlocked.Increment( ref handleCount);
diff --git a/mcs/class/referencesource/System/sys/system/runtime/versioning/FrameworkName.cs b/mcs/class/referencesource/System/sys/system/runtime/versioning/FrameworkName.cs
index f93a558094c..75def132c2a 100644
--- a/mcs/class/referencesource/System/sys/system/runtime/versioning/FrameworkName.cs
+++ b/mcs/class/referencesource/System/sys/system/runtime/versioning/FrameworkName.cs
@@ -5,8 +5,9 @@ using System.Globalization;
using System.Text;
namespace System.Runtime.Versioning {
-
+#if !SILVERLIGHT
[Serializable]
+#endif
public sealed class FrameworkName : IEquatable<FrameworkName> {
// ---- SECTION: members supporting exposed properties -------------*
diff --git a/mcs/class/referencesource/System/sys/system/threading/Barrier.cs b/mcs/class/referencesource/System/sys/system/threading/Barrier.cs
index 35db6d1f9c7..25c0ed599a6 100644
--- a/mcs/class/referencesource/System/sys/system/threading/Barrier.cs
+++ b/mcs/class/referencesource/System/sys/system/threading/Barrier.cs
@@ -7,7 +7,7 @@
//
// Barrier.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A barrier allows multiple tasks to cooperatively work on some algorithm in parallel.
// A group of tasks cooperate by moving through a series of phases, where each in the group signals it has arrived at
diff --git a/mcs/class/referencesource/System/sys/system/threading/semaphore.cs b/mcs/class/referencesource/System/sys/system/threading/semaphore.cs
index fc22a2d625c..9a77cc0a64c 100644
--- a/mcs/class/referencesource/System/sys/system/threading/semaphore.cs
+++ b/mcs/class/referencesource/System/sys/system/threading/semaphore.cs
@@ -32,17 +32,19 @@ namespace System.Threading
// creates a nameless semaphore object
// Win32 only takes maximum count of Int32.MaxValue
[SecuritySafeCritical]
+#if !FEATURE_NETCORE
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
+#endif // !FEATURE_NETCORE
public Semaphore(int initialCount, int maximumCount) : this(initialCount,maximumCount,null){}
#if FEATURE_NETCORE
[SecurityCritical]
#else
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-#endif
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
+#endif
public Semaphore(int initialCount, int maximumCount, string name)
{
if (initialCount < 0)
@@ -82,9 +84,9 @@ namespace System.Threading
[SecurityCritical]
#else
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-#endif
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
+#endif
public Semaphore(int initialCount, int maximumCount, string name, out bool createdNew)
#if !FEATURE_PAL && !FEATURE_NETCORE
: this(initialCount, maximumCount, name, out createdNew, null)
@@ -148,9 +150,10 @@ namespace System.Threading
#if FEATURE_NETCORE
[SecurityCritical]
-#endif
+#else
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
+#endif
private Semaphore(SafeWaitHandle handle)
{
this.SafeWaitHandle = handle;
@@ -160,9 +163,9 @@ namespace System.Threading
[SecurityCritical]
#else
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-#endif
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
+#endif
public static Semaphore OpenExisting(string name)
{
#if !FEATURE_PAL && !FEATURE_NETCORE
@@ -197,9 +200,9 @@ namespace System.Threading
[SecurityCritical]
#else
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-#endif
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
+#endif
public static bool TryOpenExisting(string name, out Semaphore result)
{
#if !FEATURE_PAL && !FEATURE_NETCORE
@@ -219,7 +222,6 @@ namespace System.Threading
}
#endif
-#if !FEATURE_NETCORE
// This exists in WaitHandle, but is oddly ifdefed for some reason...
private enum OpenExistingResult
{
@@ -228,15 +230,14 @@ namespace System.Threading
PathNotFound,
NameInvalid
}
-#endif
#if FEATURE_NETCORE
[SecurityCritical]
#else
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
-#endif
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
+#endif
private static OpenExistingResult OpenExistingWorker(
string name,
#if !FEATURE_PAL && !FEATURE_NETCORE
@@ -261,7 +262,10 @@ namespace System.Threading
//Pass false to OpenSemaphore to prevent inheritedHandles
#if FEATURE_PAL || FEATURE_NETCORE
- SafeWaitHandle myHandle = SafeNativeMethods.OpenSemaphore(Win32Native.SEMAPHORE_MODIFY_STATE | Win32Native.SYNCHRONIZE, false, name);
+ const int SYNCHRONIZE = 0x00100000;
+ const int SEMAPHORE_MODIFY_STATE = 0x00000002;
+
+ SafeWaitHandle myHandle = SafeNativeMethods.OpenSemaphore(SEMAPHORE_MODIFY_STATE | SYNCHRONIZE, false, name);
#else
SafeWaitHandle myHandle = SafeNativeMethods.OpenSemaphore((int) rights, false, name);
#endif
@@ -285,8 +289,10 @@ namespace System.Threading
// increase the count on a semaphore, returns previous count
+#if !FEATURE_NETCORE
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[PrePrepareMethod]
+#endif
public int Release()
{
return Release(1);
@@ -295,10 +301,11 @@ namespace System.Threading
// increase the count on a semaphore, returns previous count
#if FEATURE_NETCORE
[SecuritySafeCritical]
-#endif
+#else
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#endif
public int Release(int releaseCount)
{
if (releaseCount < 1)
diff --git a/mcs/class/referencesource/System/sys/system/threading/semaphorefullexception.cs b/mcs/class/referencesource/System/sys/system/threading/semaphorefullexception.cs
index 4f4d174b0a7..f6d6d624d13 100644
--- a/mcs/class/referencesource/System/sys/system/threading/semaphorefullexception.cs
+++ b/mcs/class/referencesource/System/sys/system/threading/semaphorefullexception.cs
@@ -7,7 +7,7 @@
**
** Class: SemaphoreFullException
**
-** <OWNER>[....]</OWNER>
+** <OWNER>emadali</OWNER>
**
=============================================================================*/
diff --git a/mcs/class/referencesource/System/sys/system/windows/markup/ValueSerializerAttribute.cs b/mcs/class/referencesource/System/sys/system/windows/markup/ValueSerializerAttribute.cs
index 2a0102e8c57..083ec90e753 100644
--- a/mcs/class/referencesource/System/sys/system/windows/markup/ValueSerializerAttribute.cs
+++ b/mcs/class/referencesource/System/sys/system/windows/markup/ValueSerializerAttribute.cs
@@ -10,7 +10,7 @@
// an attached property by setting it on the static accessor
// for the attachable property).
//
-// Created: 04/28/2005 [....]
+// Created: 04/28/2005 Microsoft
//
//------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/System/sys/v4suppressions.cs b/mcs/class/referencesource/System/sys/v4suppressions.cs
index 79c2f2bfdfe..778e7450946 100644
--- a/mcs/class/referencesource/System/sys/v4suppressions.cs
+++ b/mcs/class/referencesource/System/sys/v4suppressions.cs
@@ -5,7 +5,7 @@ using System.Diagnostics.CodeAnalysis;
//////////////////////////////////////////////////////////////////////////////
// Date: June 4, 2009
// Description: Temporarily suppress System.dll v4 violations
-// User: REDMOND\[....]
+// User: REDMOND\kimhamil
//////////////////////////////////////////////////////////////////////////////
#if CODE_ANALYSIS_BASELINE
@@ -20,7 +20,7 @@ using System.Diagnostics.CodeAnalysis;
// System.Collections.Concurrent
//
[module: SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Collections.Concurrent.ConcurrentBag`1", Justification="We do not want to rename this class at this point.")]
-[module: SuppressMessage("Microsoft.Security","CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope="member", Target="System.Collections.Concurrent.ConcurrentBag`1.#System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification="From [....]: leave the attribute in place and suppress the FxCop warning until we can get the rule updated to understand that this is valid")]
+[module: SuppressMessage("Microsoft.Security","CA2123:OverrideLinkDemandsShouldBeIdenticalToBase", Scope="member", Target="System.Collections.Concurrent.ConcurrentBag`1.#System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification="From ShawnFa: leave the attribute in place and suppress the FxCop warning until we can get the rule updated to understand that this is valid")]
[module: SuppressMessage("Microsoft.Naming","CA1710:IdentifiersShouldHaveCorrectSuffix", Scope="type", Target="System.Collections.Generic.ISet`1", Justification="PFX: Not fixing this, not even sure that we own this.")]
[module: SuppressMessage("Microsoft.Usage","CA1816:CallGCSuppressFinalizeCorrectly", Scope="member", Target="System.Collections.Concurrent.BlockingCollection`1.#Dispose()", Justification="batch baselining v4 violations")]
[module: SuppressMessage("Microsoft.Usage","CA2208:InstantiateArgumentExceptionsCorrectly", Scope="member", Target="System.Collections.Concurrent.BlockingCollection`1.#ValidateCollectionsArray(System.Collections.Concurrent.BlockingCollection`1<!0>[],System.Collections.Concurrent.BlockingCollection`1<!0>+OperationMode)", Justification="batch baselining v4 violations")]
diff --git a/mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/CompilationPass2TaskInternal.cs b/mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/CompilationPass2TaskInternal.cs
index 32c16094170..0d0e43702f0 100644
--- a/mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/CompilationPass2TaskInternal.cs
+++ b/mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/CompilationPass2TaskInternal.cs
@@ -12,6 +12,7 @@ namespace Microsoft.Build.Tasks.Xaml
using System.Xml;
using System.Reflection;
using System.Runtime;
+ using System.Runtime.Remoting.Lifetime;
using System.Globalization;
using Microsoft.Build.Utilities;
using XamlBuildTask;
@@ -26,6 +27,14 @@ namespace Microsoft.Build.Tasks.Xaml
IList<string> generatedCodeFiles;
XamlBuildTypeInspectionExtensionContext buildContextForExtensions;
IDictionary<string, ITaskItem> applicationMarkupWithTypeName;
+
+ // Set the lease lifetime according to the environment variable with the name defined by RemotingLeaseLifetimeInMinutesEnvironmentVariableName
+ public override object InitializeLifetimeService()
+ {
+ ILease lease = (ILease)base.InitializeLifetimeService();
+ XamlBuildTaskLeaseLifetimeHelper.SetLeaseLifetimeFromEnvironmentVariable(lease);
+ return lease;
+ }
public IList<string> ApplicationMarkup
{
diff --git a/mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/PartialClassGenerationTaskInternal.cs b/mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/PartialClassGenerationTaskInternal.cs
index ec8bb612f86..423b3f8e050 100644
--- a/mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/PartialClassGenerationTaskInternal.cs
+++ b/mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/PartialClassGenerationTaskInternal.cs
@@ -16,6 +16,7 @@ namespace Microsoft.Build.Tasks.Xaml
using System.Xml;
using System.Reflection;
using System.Globalization;
+ using System.Runtime.Remoting.Lifetime;
using Microsoft.Build.Utilities;
using XamlBuildTask;
using Microsoft.Build.Framework;
@@ -37,6 +38,14 @@ namespace Microsoft.Build.Tasks.Xaml
IEnumerable<IXamlBuildTypeGenerationExtension> xamlBuildTypeGenerationExtensions;
XamlBuildTypeGenerationExtensionContext buildContextForExtensions;
+ // Set the lease lifetime according to the environment variable with the name defined by RemotingLeaseLifetimeInMinutesEnvironmentVariableName
+ public override object InitializeLifetimeService()
+ {
+ ILease lease = (ILease)base.InitializeLifetimeService();
+ XamlBuildTaskLeaseLifetimeHelper.SetLeaseLifetimeFromEnvironmentVariable(lease);
+ return lease;
+ }
+
public IList<ITaskItem> ApplicationMarkup
{
get
@@ -478,11 +487,11 @@ namespace Microsoft.Build.Tasks.Xaml
XamlXmlWriterSettings xamlSettings = new XamlXmlWriterSettings() { CloseOutput = true };
// Process EmbeddedResourceXaml to remove xml:space="preserve"
- // due to a bug in XamlXmlWriter. XamlXmlWriter throws
- // if there are duplicate xml:space attributes.
- // It is ok to remove the xml:space attribute
- // as the XamlXmlWriter would add it in the next step
- // if needed.
+ // due to a
+
+
+
+
RemoveXamlSpaceAttribute(classData);
using (XamlReader reader = classData.EmbeddedResourceXaml.GetReader())
diff --git a/mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/ResolveAssemblyHelper.cs b/mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/ResolveAssemblyHelper.cs
index 891e2e8cdbe..e498bca0215 100644
--- a/mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/ResolveAssemblyHelper.cs
+++ b/mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/ResolveAssemblyHelper.cs
@@ -44,9 +44,9 @@ namespace Microsoft.Build.Tasks.Xaml
public Assembly ResolveLocalProjectReferences(object sender, ResolveEventArgs args)
{
// Currently we are return the assembly just by matching the short name
- // of the assembly. Filed bug 172138 to figure out whether we need
- // to load the exact matching(version, culture, public key matches)
- // assembly.
+ // of the assembly. Filed
+
+
AssemblyName targetAssemblyName = new AssemblyName(args.Name);
string targetName = targetAssemblyName.Name;
diff --git a/mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/XamlBuildTaskLeaseLifetimeHelper.cs b/mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/XamlBuildTaskLeaseLifetimeHelper.cs
new file mode 100644
index 00000000000..7a031fca5b3
--- /dev/null
+++ b/mcs/class/referencesource/XamlBuildTask/Microsoft/Build/Tasks/Xaml/XamlBuildTaskLeaseLifetimeHelper.cs
@@ -0,0 +1,77 @@
+namespace Microsoft.Build.Tasks.Xaml
+{
+ using System;
+ using System.Globalization;
+ using System.Runtime;
+ using System.Runtime.Remoting.Lifetime;
+ using XamlBuildTask;
+
+ internal static class XamlBuildTaskLeaseLifetimeHelper
+ {
+ const string RemotingLeaseLifetimeInMinutesEnvironmentVariableName = "XamlBuildTaskTimeoutInMinutes";
+
+ // In order to take advantage of the XamlBuildTaskRemotingLeaseLifetimeInMinutes environment variable from an MSBuild
+ // project file (e.g. csproj file), the following needs to be added to that project file:
+ //
+ // After the initial "<Project ..." line:
+ // <UsingTask TaskName="MySetEnv" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" >
+ // <ParameterGroup>
+ // <Name Required="true" />
+ // <Value Required="false" />
+ // </ParameterGroup>
+ // <Task>
+ // <Code Type="Fragment" Language="cs">System.Environment.SetEnvironmentVariable(Name, Value);</Code>
+ // </Task>
+ // </UsingTask>
+ //
+ // And at the end of the project file, before the closing </Project> :
+ //
+ // <Target Name="BeforeBuild">
+ // <MySetEnv Name="XamlBuildTaskTimeoutInMinutes" Value="24" />
+ // </Target>
+ // <Target Name="AfterBuild">
+ // <MySetEnv Name="XamlBuildTaskRemotingLeaseLifetimeInMinutes" Value="" />
+ // </Target>
+ //
+ // This example uses a task name of "MySetEnv", but it that name could be anything desired.
+ // It also sets the timeout to 24 minutes, as defined as the Value specified to the MySetEnv task.
+ // The AfterBuild target is not required, but is probably desired so that the environment variable setting
+ // does not persist after the processing of this particular project file.
+ // The valid values for the environment variable are numbers between 1 and 2147483647 inclusive
+ // (positive 32-bit integers). Any other value will result in no change to the lease lifetime.
+ internal static void SetLeaseLifetimeFromEnvironmentVariable(ILease lease)
+ {
+ // We can only change the lease lifetime if we have an ILease and it is still in the Initial state.
+ if ((lease != null) && (lease.CurrentState == LeaseState.Initial))
+ {
+ try
+ {
+ string remotingLeaseLifetimeInMinutesStringValue = Environment.GetEnvironmentVariable(RemotingLeaseLifetimeInMinutesEnvironmentVariableName);
+ if (!string.IsNullOrEmpty(remotingLeaseLifetimeInMinutesStringValue))
+ {
+ int remotingLeaseLifetimeInMinutes = -1;
+ if (Int32.TryParse(remotingLeaseLifetimeInMinutesStringValue, NumberStyles.Integer, CultureInfo.InvariantCulture, out remotingLeaseLifetimeInMinutes))
+ {
+ // revert to the defauilt if the number specified is less than or equal to 0.
+ if (remotingLeaseLifetimeInMinutes > 0)
+ {
+ lease.InitialLeaseTime = TimeSpan.FromMinutes(remotingLeaseLifetimeInMinutes);
+ lease.RenewOnCallTime = TimeSpan.FromMinutes(remotingLeaseLifetimeInMinutes);
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ // simply ignore any exceptions that might have occurred and go with the default. We can't log it because
+ // we aren't initialized enough at this point.
+ if (Fx.IsFatal(ex))
+ {
+ throw;
+ }
+ }
+ }
+ }
+ }
+}
+
diff --git a/mcs/class/referencesource/mscorlib/GlobalSuppressions.cs b/mcs/class/referencesource/mscorlib/GlobalSuppressions.cs
index 25977499e31..cf40789a998 100644
--- a/mcs/class/referencesource/mscorlib/GlobalSuppressions.cs
+++ b/mcs/class/referencesource/mscorlib/GlobalSuppressions.cs
@@ -1,102 +1,102 @@
using System.Diagnostics.CodeAnalysis;
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.BINDPTR.#lpfuncdesc", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.BINDPTR.#lptcomp", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.BINDPTR.#lpvardesc", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.CriticalHandle.#handle", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.DISPPARAMS.#rgdispidNamedArgs", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.DISPPARAMS.#rgvarg", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.EXCEPINFO.#pfnDeferredFillIn", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.EXCEPINFO.#pvReserved", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.FUNCDESC.#lprgelemdescParam", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.FUNCDESC.#lprgscode", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.PARAMDESC.#lpVarValue", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.SafeHandle.#handle", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.TYPEATTR.#lpstrSchema", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.TYPEDESC.#lpValue", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.VARDESC+DESCUNION.#lpvarValue", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.BINDPTR.#lpfuncdesc", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.BINDPTR.#lptcomp", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.BINDPTR.#lpvardesc", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.DISPPARAMS.#rgdispidNamedArgs", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.DISPPARAMS.#rgvarg", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.EXCEPINFO.#pfnDeferredFillIn", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.EXCEPINFO.#pvReserved", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.FUNCDESC.#lprgelemdescParam", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.FUNCDESC.#lprgscode", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.IDLDESC.#dwReserved", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.PARAMDESC.#lpVarValue", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.TYPEATTR.#lpstrSchema", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.TYPEDESC.#lpValue", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.VARDESC+DESCUNION.#lpvarValue", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Threading.NativeOverlapped.#EventHandle", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Threading.NativeOverlapped.#InternalHigh", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Threading.NativeOverlapped.#InternalLow", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2105:ArrayFieldsShouldNotBeReadOnly", Scope="member", Target="System.IO.Path.#InvalidPathChars", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2105:ArrayFieldsShouldNotBeReadOnly", Scope="member", Target="System.Type.#EmptyTypes", Justification="[....]: We already shipped this and it would be a breaking change to fix it")]
-[module: SuppressMessage("Microsoft.Security","CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope="member", Target="System.IO.BinaryWriter.#Null", Justification="[....]: Underlying type is actually immutable")]
-[module: SuppressMessage("Microsoft.Security","CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope="member", Target="System.IO.Stream.#Null", Justification="[....]: Underlying type is actually immutable")]
-[module: SuppressMessage("Microsoft.Security","CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope="member", Target="System.IO.StreamReader.#Null", Justification="[....]: Underlying type is actually immutable")]
-[module: SuppressMessage("Microsoft.Security","CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope="member", Target="System.IO.StreamWriter.#Null", Justification="[....]: Underlying type is actually Immutable")]
-[module: SuppressMessage("Microsoft.Security","CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope="member", Target="System.IO.TextReader.#Null", Justification="[....]: Underlying type is actually immutable")]
-[module: SuppressMessage("Microsoft.Security","CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope="member", Target="System.IO.TextWriter.#Null", Justification="[....]: Underlying type is actually immutable")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Diagnostics.Tracing.EventSource.#GenerateGuidFromName(System.String)", Justification="[....]: Existing code that needs to interop with other components using SHA-1")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.IO.IsolatedStorage.IsolatedStorage.#GetHash(System.IO.Stream)", Justification="[....]: Existing code that needs to interop with other components using SHA-1")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.IO.IsolatedStorage.IsolatedStorageFile.#GetStrongHashSuitableForObjectName(System.String)", Justification="[....]: Existing code that needs to interop with other components using SHA-1")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Policy.HashMembershipCondition.#ParseHashAlgorithm()", Justification="[....]: Existing code that needs to interop with other components using SHA-1")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Policy.HashMembershipCondition.#.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification="[....]: Existing code that needs to interop with other components using SHA-1")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DES.#Create()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DES.#IsSemiWeakKey(System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DES.#IsWeakKey(System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DES.#get_Key()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DES.#set_Key(System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DESCryptoServiceProvider.#.ctor()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DESCryptoServiceProvider.#CreateDecryptor(System.Byte[],System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DESCryptoServiceProvider.#CreateEncryptor(System.Byte[],System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DESCryptoServiceProvider.#GenerateKey()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.DSACryptoServiceProvider.#.ctor(System.Int32,System.Security.Cryptography.CspParameters)", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5356:DSACannotBeUsed", Scope="member", Target="System.Security.Cryptography.DSASignatureFormatter.#CreateSignature(System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5350:MD5CannotBeUsed", Scope="member", Target="System.Security.Cryptography.HMACMD5.#.ctor()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5350:MD5CannotBeUsed", Scope="member", Target="System.Security.Cryptography.HMACMD5.#.ctor(System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.HMACRIPEMD160.#.ctor()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.HMACRIPEMD160.#.ctor(System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.HMACSHA1.#.ctor(System.Byte[],System.Boolean)", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.MACTripleDES.#.ctor()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.MACTripleDES.#.ctor(System.String,System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5350:MD5CannotBeUsed", Scope="member", Target="System.Security.Cryptography.MD5.#Create()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5350:MD5CannotBeUsed", Scope="member", Target="System.Security.Cryptography.MD5CryptoServiceProvider.#.ctor()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5352:RC2CannotBeUsed", Scope="member", Target="System.Security.Cryptography.RC2.#Create()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5352:RC2CannotBeUsed", Scope="member", Target="System.Security.Cryptography.RC2CryptoServiceProvider.#.ctor()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5352:RC2CannotBeUsed", Scope="member", Target="System.Security.Cryptography.RC2CryptoServiceProvider.#CreateDecryptor(System.Byte[],System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5352:RC2CannotBeUsed", Scope="member", Target="System.Security.Cryptography.RC2CryptoServiceProvider.#CreateEncryptor(System.Byte[],System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.RIPEMD160.#Create()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.RIPEMD160Managed.#.ctor()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.RIPEMD160Managed.#HashCore(System.Byte[],System.Int32,System.Int32)", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.RIPEMD160Managed.#HashFinal()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.RIPEMD160Managed.#Initialize()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.RIPEMD160Managed.#MDTransform(System.UInt32*,System.UInt32*,System.Byte*)", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.RIPEMD160Managed.#_EndHash()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.RIPEMD160Managed.#_HashData(System.Byte[],System.Int32,System.Int32)", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.RSAOAEPKeyExchangeDeformatter.#DecryptKeyExchange(System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.RSAOAEPKeyExchangeFormatter.#CreateKeyExchange(System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5357:RijndaelCannotBeUsed", Scope="member", Target="System.Security.Cryptography.Rijndael.#Create()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5357:RijndaelCannotBeUsed", Scope="member", Target="System.Security.Cryptography.RijndaelManaged.#.ctor()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5357:RijndaelCannotBeUsed", Scope="member", Target="System.Security.Cryptography.RijndaelManaged.#CreateDecryptor(System.Byte[],System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5357:RijndaelCannotBeUsed", Scope="member", Target="System.Security.Cryptography.RijndaelManaged.#CreateEncryptor(System.Byte[],System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1.#Create()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1CryptoServiceProvider.#.ctor()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1Managed.#.ctor()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1Managed.#HashCore(System.Byte[],System.Int32,System.Int32)", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1Managed.#HashFinal()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1Managed.#Initialize()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1Managed.#SHATransform(System.UInt32*,System.UInt32*,System.Byte*)", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1Managed.#_EndHash()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1Managed.#_HashData(System.Byte[],System.Int32,System.Int32)", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.TripleDES.#Create()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.TripleDES.#IsWeakKey(System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.TripleDES.#get_Key()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.TripleDES.#set_Key(System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.TripleDESCryptoServiceProvider.#.ctor()", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.TripleDESCryptoServiceProvider.#CreateDecryptor(System.Byte[],System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.TripleDESCryptoServiceProvider.#CreateEncryptor(System.Byte[],System.Byte[])", Justification="[....]: By design. Needed for implementation of security algorithms")]
-[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.TripleDESCryptoServiceProvider.#GenerateKey()", Justification="[....]: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.BINDPTR.#lpfuncdesc", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.BINDPTR.#lptcomp", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.BINDPTR.#lpvardesc", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.CriticalHandle.#handle", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.DISPPARAMS.#rgdispidNamedArgs", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.DISPPARAMS.#rgvarg", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.EXCEPINFO.#pfnDeferredFillIn", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.EXCEPINFO.#pvReserved", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.FUNCDESC.#lprgelemdescParam", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.FUNCDESC.#lprgscode", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.PARAMDESC.#lpVarValue", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.SafeHandle.#handle", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.TYPEATTR.#lpstrSchema", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.TYPEDESC.#lpValue", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.VARDESC+DESCUNION.#lpvarValue", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.BINDPTR.#lpfuncdesc", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.BINDPTR.#lptcomp", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.BINDPTR.#lpvardesc", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.DISPPARAMS.#rgdispidNamedArgs", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.DISPPARAMS.#rgvarg", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.EXCEPINFO.#pfnDeferredFillIn", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.EXCEPINFO.#pvReserved", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.FUNCDESC.#lprgelemdescParam", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.FUNCDESC.#lprgscode", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.IDLDESC.#dwReserved", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.PARAMDESC.#lpVarValue", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.TYPEATTR.#lpstrSchema", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.TYPEDESC.#lpValue", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Runtime.InteropServices.ComTypes.VARDESC+DESCUNION.#lpvarValue", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Threading.NativeOverlapped.#EventHandle", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Threading.NativeOverlapped.#InternalHigh", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2111:PointersShouldNotBeVisible", Scope="member", Target="System.Threading.NativeOverlapped.#InternalLow", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2105:ArrayFieldsShouldNotBeReadOnly", Scope="member", Target="System.IO.Path.#InvalidPathChars", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2105:ArrayFieldsShouldNotBeReadOnly", Scope="member", Target="System.Type.#EmptyTypes", Justification="matell: We already shipped this and it would be a breaking change to fix it")]
+[module: SuppressMessage("Microsoft.Security","CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope="member", Target="System.IO.BinaryWriter.#Null", Justification="matell: Underlying type is actually immutable")]
+[module: SuppressMessage("Microsoft.Security","CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope="member", Target="System.IO.Stream.#Null", Justification="matell: Underlying type is actually immutable")]
+[module: SuppressMessage("Microsoft.Security","CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope="member", Target="System.IO.StreamReader.#Null", Justification="matell: Underlying type is actually immutable")]
+[module: SuppressMessage("Microsoft.Security","CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope="member", Target="System.IO.StreamWriter.#Null", Justification="matell: Underlying type is actually Immutable")]
+[module: SuppressMessage("Microsoft.Security","CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope="member", Target="System.IO.TextReader.#Null", Justification="matell: Underlying type is actually immutable")]
+[module: SuppressMessage("Microsoft.Security","CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope="member", Target="System.IO.TextWriter.#Null", Justification="matell: Underlying type is actually immutable")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Diagnostics.Tracing.EventSource.#GenerateGuidFromName(System.String)", Justification="matell: Existing code that needs to interop with other components using SHA-1")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.IO.IsolatedStorage.IsolatedStorage.#GetHash(System.IO.Stream)", Justification="matell: Existing code that needs to interop with other components using SHA-1")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.IO.IsolatedStorage.IsolatedStorageFile.#GetStrongHashSuitableForObjectName(System.String)", Justification="matell: Existing code that needs to interop with other components using SHA-1")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Policy.HashMembershipCondition.#ParseHashAlgorithm()", Justification="matell: Existing code that needs to interop with other components using SHA-1")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Policy.HashMembershipCondition.#.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", Justification="matell: Existing code that needs to interop with other components using SHA-1")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DES.#Create()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DES.#IsSemiWeakKey(System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DES.#IsWeakKey(System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DES.#get_Key()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DES.#set_Key(System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DESCryptoServiceProvider.#.ctor()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DESCryptoServiceProvider.#CreateDecryptor(System.Byte[],System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DESCryptoServiceProvider.#CreateEncryptor(System.Byte[],System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5351:DESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.DESCryptoServiceProvider.#GenerateKey()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.DSACryptoServiceProvider.#.ctor(System.Int32,System.Security.Cryptography.CspParameters)", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5356:DSACannotBeUsed", Scope="member", Target="System.Security.Cryptography.DSASignatureFormatter.#CreateSignature(System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5350:MD5CannotBeUsed", Scope="member", Target="System.Security.Cryptography.HMACMD5.#.ctor()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5350:MD5CannotBeUsed", Scope="member", Target="System.Security.Cryptography.HMACMD5.#.ctor(System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.HMACRIPEMD160.#.ctor()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.HMACRIPEMD160.#.ctor(System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.HMACSHA1.#.ctor(System.Byte[],System.Boolean)", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.MACTripleDES.#.ctor()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.MACTripleDES.#.ctor(System.String,System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5350:MD5CannotBeUsed", Scope="member", Target="System.Security.Cryptography.MD5.#Create()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5350:MD5CannotBeUsed", Scope="member", Target="System.Security.Cryptography.MD5CryptoServiceProvider.#.ctor()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5352:RC2CannotBeUsed", Scope="member", Target="System.Security.Cryptography.RC2.#Create()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5352:RC2CannotBeUsed", Scope="member", Target="System.Security.Cryptography.RC2CryptoServiceProvider.#.ctor()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5352:RC2CannotBeUsed", Scope="member", Target="System.Security.Cryptography.RC2CryptoServiceProvider.#CreateDecryptor(System.Byte[],System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5352:RC2CannotBeUsed", Scope="member", Target="System.Security.Cryptography.RC2CryptoServiceProvider.#CreateEncryptor(System.Byte[],System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.RIPEMD160.#Create()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.RIPEMD160Managed.#.ctor()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.RIPEMD160Managed.#HashCore(System.Byte[],System.Int32,System.Int32)", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.RIPEMD160Managed.#HashFinal()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.RIPEMD160Managed.#Initialize()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.RIPEMD160Managed.#MDTransform(System.UInt32*,System.UInt32*,System.Byte*)", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.RIPEMD160Managed.#_EndHash()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5355:RIPEMD160IsNotRecommended", Scope="member", Target="System.Security.Cryptography.RIPEMD160Managed.#_HashData(System.Byte[],System.Int32,System.Int32)", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.RSAOAEPKeyExchangeDeformatter.#DecryptKeyExchange(System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.RSAOAEPKeyExchangeFormatter.#CreateKeyExchange(System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5357:RijndaelCannotBeUsed", Scope="member", Target="System.Security.Cryptography.Rijndael.#Create()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5357:RijndaelCannotBeUsed", Scope="member", Target="System.Security.Cryptography.RijndaelManaged.#.ctor()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5357:RijndaelCannotBeUsed", Scope="member", Target="System.Security.Cryptography.RijndaelManaged.#CreateDecryptor(System.Byte[],System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5357:RijndaelCannotBeUsed", Scope="member", Target="System.Security.Cryptography.RijndaelManaged.#CreateEncryptor(System.Byte[],System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1.#Create()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1CryptoServiceProvider.#.ctor()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1Managed.#.ctor()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1Managed.#HashCore(System.Byte[],System.Int32,System.Int32)", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1Managed.#HashFinal()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1Managed.#Initialize()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1Managed.#SHATransform(System.UInt32*,System.UInt32*,System.Byte*)", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1Managed.#_EndHash()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5354:SHA1CannotBeUsed", Scope="member", Target="System.Security.Cryptography.SHA1Managed.#_HashData(System.Byte[],System.Int32,System.Int32)", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.TripleDES.#Create()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.TripleDES.#IsWeakKey(System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.TripleDES.#get_Key()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.TripleDES.#set_Key(System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.TripleDESCryptoServiceProvider.#.ctor()", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.TripleDESCryptoServiceProvider.#CreateDecryptor(System.Byte[],System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.TripleDESCryptoServiceProvider.#CreateEncryptor(System.Byte[],System.Byte[])", Justification="matell: By design. Needed for implementation of security algorithms")]
+[module: SuppressMessage("Microsoft.Cryptographic.Standard","CA5353:TripleDESCannotBeUsed", Scope="member", Target="System.Security.Cryptography.TripleDESCryptoServiceProvider.#GenerateKey()", Justification="matell: By design. Needed for implementation of security algorithms")]
diff --git a/mcs/class/referencesource/mscorlib/InternalApis/NDP_Common/inc/PinnableBufferCache.cs b/mcs/class/referencesource/mscorlib/InternalApis/NDP_Common/inc/PinnableBufferCache.cs
index f87d992da12..872cfa80dd5 100644
--- a/mcs/class/referencesource/mscorlib/InternalApis/NDP_Common/inc/PinnableBufferCache.cs
+++ b/mcs/class/referencesource/mscorlib/InternalApis/NDP_Common/inc/PinnableBufferCache.cs
@@ -164,8 +164,10 @@ namespace System
if (GC.GetGeneration(buffer) < GC.MaxGeneration)
{
// The buffer is not aged, so put it in the non-aged free list.
+ m_moreThanFreeListNeeded = true;
PinnableBufferCacheEventSource.Log.FreeBufferStillTooYoung(m_CacheName, m_NotGen2.Count);
m_NotGen2.Add(buffer);
+ m_gen1CountAtLastRestock = GC.CollectionCount(GC.MaxGeneration - 1);
return;
}
}
@@ -310,6 +312,7 @@ namespace System
/// otherwise, we root the cache to the Gen2GcCallback object, and leak the cache even when
/// the application no longer needs it.
/// </summary>
+ [System.Security.SecuritySafeCritical]
private static bool Gen2GcCallbackFunc(object targetObj)
{
return ((PinnableBufferCache)(targetObj)).TrimFreeListIfNeeded();
@@ -509,6 +512,11 @@ namespace System
~Gen2GcCallback()
{
// Check to see if the target object is still alive.
+ if (!m_weakTargetObj.IsAllocated)
+ {
+ return;
+ }
+
object targetObj = m_weakTargetObj.Target;
if (targetObj == null)
{
@@ -636,6 +644,7 @@ namespace System
[Event(21)]
public void WalkFreeListResult(string cacheName, int freeListCount, int gen0BuffersInFreeList) { if (IsEnabled()) WriteEvent(21, cacheName, freeListCount, gen0BuffersInFreeList); }
+
static internal ulong AddressOf(object obj)
{
var asByteArray = obj as byte[];
diff --git a/mcs/class/referencesource/mscorlib/InternalApis/NDP_Common/inc/StrongNameHelpers.cs b/mcs/class/referencesource/mscorlib/InternalApis/NDP_Common/inc/StrongNameHelpers.cs
index 262070c90be..eca2861417d 100644
--- a/mcs/class/referencesource/mscorlib/InternalApis/NDP_Common/inc/StrongNameHelpers.cs
+++ b/mcs/class/referencesource/mscorlib/InternalApis/NDP_Common/inc/StrongNameHelpers.cs
@@ -20,7 +20,7 @@ namespace Microsoft.Runtime.Hosting {
[ThreadStatic]
private static IClrStrongName s_StrongName;
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
private static IClrStrongName StrongName {
[System.Security.SecurityCritical]
get {
@@ -33,7 +33,7 @@ namespace Microsoft.Runtime.Hosting {
}
}
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
private static IClrStrongNameUsingIntPtr StrongNameUsingIntPtr {
[System.Security.SecurityCritical]
get {
@@ -42,20 +42,20 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static int StrongNameErrorInfo() {
return ts_LastStrongNameHR;
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
[SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId = "Microsoft.Runtime.Hosting.IClrStrongNameUsingIntPtr.StrongNameFreeBuffer(System.IntPtr)", Justification = "StrongNameFreeBuffer returns void but the new runtime wrappers return an HRESULT.")]
public static void StrongNameFreeBuffer(IntPtr pbMemory) {
StrongNameUsingIntPtr.StrongNameFreeBuffer(pbMemory);
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameGetPublicKey(string pwzKeyContainer, IntPtr pbKeyBlob, int cbKeyBlob, out IntPtr ppbPublicKeyBlob, out int pcbPublicKeyBlob) {
int hr = StrongNameUsingIntPtr.StrongNameGetPublicKey(pwzKeyContainer, pbKeyBlob, cbKeyBlob, out ppbPublicKeyBlob, out pcbPublicKeyBlob);
if( hr < 0 )
@@ -70,7 +70,7 @@ namespace Microsoft.Runtime.Hosting {
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameKeyDelete(string pwzKeyContainer) {
int hr = StrongName.StrongNameKeyDelete(pwzKeyContainer);
if( hr < 0 )
@@ -82,7 +82,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameKeyGen(string pwzKeyContainer, int dwFlags, out IntPtr ppbKeyBlob, out int pcbKeyBlob) {
int hr = StrongName.StrongNameKeyGen(pwzKeyContainer, dwFlags, out ppbKeyBlob, out pcbKeyBlob);
if( hr < 0 )
@@ -96,7 +96,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameKeyInstall(string pwzKeyContainer, IntPtr pbKeyBlob, int cbKeyBlob) {
int hr = StrongNameUsingIntPtr.StrongNameKeyInstall(pwzKeyContainer, pbKeyBlob, cbKeyBlob);
if( hr < 0 )
@@ -108,7 +108,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameSignatureGeneration(string pwzFilePath, string pwzKeyContainer, IntPtr pbKeyBlob, int cbKeyBlob) {
IntPtr ppbSignatureBlob = IntPtr.Zero;
int cbSignatureBlob = 0;
@@ -117,7 +117,7 @@ namespace Microsoft.Runtime.Hosting {
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameSignatureGeneration(string pwzFilePath, string pwzKeyContainer, IntPtr pbKeyBlob, int cbKeyBlob, ref IntPtr ppbSignatureBlob, out int pcbSignatureBlob) {
int hr = StrongNameUsingIntPtr.StrongNameSignatureGeneration(pwzFilePath, pwzKeyContainer, pbKeyBlob, cbKeyBlob, ppbSignatureBlob, out pcbSignatureBlob);
if( hr < 0 )
@@ -130,7 +130,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameSignatureSize(IntPtr pbPublicKeyBlob, int cbPublicKeyBlob, out int pcbSize) {
int hr = StrongNameUsingIntPtr.StrongNameSignatureSize(pbPublicKeyBlob, cbPublicKeyBlob, out pcbSize);
if( hr < 0 )
@@ -143,7 +143,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameSignatureVerification(string pwzFilePath, int dwInFlags, out int pdwOutFlags) {
int hr = StrongName.StrongNameSignatureVerification(pwzFilePath, dwInFlags, out pdwOutFlags);
if( hr < 0 )
@@ -156,7 +156,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameSignatureVerificationEx(string pwzFilePath, bool fForceVerification, out bool pfWasVerified) {
int hr = StrongName.StrongNameSignatureVerificationEx(pwzFilePath, fForceVerification, out pfWasVerified);
if( hr < 0 )
@@ -169,7 +169,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameTokenFromPublicKey(IntPtr pbPublicKeyBlob, int cbPublicKeyBlob, out IntPtr ppbStrongNameToken, out int pcbStrongNameToken) {
int hr = StrongNameUsingIntPtr.StrongNameTokenFromPublicKey(pbPublicKeyBlob, cbPublicKeyBlob, out ppbStrongNameToken, out pcbStrongNameToken);
if( hr < 0 )
@@ -183,7 +183,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameSignatureSize(byte[] bPublicKeyBlob, int cbPublicKeyBlob, out int pcbSize) {
int hr = StrongName.StrongNameSignatureSize(bPublicKeyBlob, cbPublicKeyBlob, out pcbSize);
if( hr < 0 )
@@ -195,7 +195,7 @@ namespace Microsoft.Runtime.Hosting {
return true;
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameTokenFromPublicKey(byte[] bPublicKeyBlob, int cbPublicKeyBlob, out IntPtr ppbStrongNameToken, out int pcbStrongNameToken) {
int hr = StrongName.StrongNameTokenFromPublicKey(bPublicKeyBlob, cbPublicKeyBlob, out ppbStrongNameToken, out pcbStrongNameToken);
if( hr < 0 )
@@ -209,7 +209,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameGetPublicKey(string pwzKeyContainer, byte[] bKeyBlob, int cbKeyBlob, out IntPtr ppbPublicKeyBlob, out int pcbPublicKeyBlob) {
int hr = StrongName.StrongNameGetPublicKey(pwzKeyContainer, bKeyBlob, cbKeyBlob, out ppbPublicKeyBlob, out pcbPublicKeyBlob);
if( hr < 0 )
@@ -223,7 +223,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameKeyInstall(string pwzKeyContainer, byte[] bKeyBlob, int cbKeyBlob) {
int hr = StrongName.StrongNameKeyInstall(pwzKeyContainer, bKeyBlob, cbKeyBlob);
if( hr < 0 )
@@ -235,7 +235,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameSignatureGeneration(string pwzFilePath, string pwzKeyContainer, byte[] bKeyBlob, int cbKeyBlob) {
IntPtr ppbSignatureBlob = IntPtr.Zero;
int cbSignatureBlob = 0;
@@ -243,7 +243,7 @@ namespace Microsoft.Runtime.Hosting {
}
[System.Security.SecurityCritical]
- [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "[....]: This file is included in a lot of projects some of which only use a subset of the functions.")]
+ [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Microsoft: This file is included in a lot of projects some of which only use a subset of the functions.")]
public static bool StrongNameSignatureGeneration(string pwzFilePath, string pwzKeyContainer, byte[] bKeyBlob, int cbKeyBlob, ref IntPtr ppbSignatureBlob, out int pcbSignatureBlob) {
int hr = StrongName.StrongNameSignatureGeneration(pwzFilePath, pwzKeyContainer, bKeyBlob, cbKeyBlob, ppbSignatureBlob, out pcbSignatureBlob);
if( hr < 0 )
diff --git a/mcs/class/referencesource/mscorlib/microsoft/win32/RegistryOptions.cs b/mcs/class/referencesource/mscorlib/microsoft/win32/RegistryOptions.cs
index 962445b6667..07610bd3131 100644
--- a/mcs/class/referencesource/mscorlib/microsoft/win32/RegistryOptions.cs
+++ b/mcs/class/referencesource/mscorlib/microsoft/win32/RegistryOptions.cs
@@ -6,7 +6,7 @@
//
// File: RegistryOptions.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>JFREE</OWNER>
//
// Implements Microsoft.Win32.RegistryOptions
//
@@ -27,4 +27,4 @@ namespace Microsoft.Win32 {
/// BackupRestore = Win32Native.REG_OPTION_BACKUP_RESTORE,// 0x0004
};
}
-#endif // !FEATURE_PAL
+#endif // !FEATURE_PAL \ No newline at end of file
diff --git a/mcs/class/referencesource/mscorlib/microsoft/win32/RegistryView.cs b/mcs/class/referencesource/mscorlib/microsoft/win32/RegistryView.cs
index 41523761ba5..1401bf14850 100644
--- a/mcs/class/referencesource/mscorlib/microsoft/win32/RegistryView.cs
+++ b/mcs/class/referencesource/mscorlib/microsoft/win32/RegistryView.cs
@@ -6,7 +6,7 @@
//
// File: RegistryOptions.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>JFREE</OWNER>
//
// Implements Microsoft.Win32.RegistryView
//
@@ -21,4 +21,4 @@ namespace Microsoft.Win32 {
Registry32 = Win32Native.KEY_WOW64_32KEY, // 0x0200 operate on the 32-bit registry view
};
}
-#endif // !FEATURE_PAL
+#endif // !FEATURE_PAL \ No newline at end of file
diff --git a/mcs/class/referencesource/mscorlib/microsoft/win32/oavariantlib.cs b/mcs/class/referencesource/mscorlib/microsoft/win32/oavariantlib.cs
index 8b8d0b1cbe5..96525f5cdab 100644
--- a/mcs/class/referencesource/mscorlib/microsoft/win32/oavariantlib.cs
+++ b/mcs/class/referencesource/mscorlib/microsoft/win32/oavariantlib.cs
@@ -60,7 +60,7 @@ namespace Microsoft.Win32 {
typeof(DBNull),
};
- // Keep these numbers in [....] w/ the above array.
+ // Keep these numbers in sync w/ the above array.
private const int CV_OBJECT=0x12;
#endregion
diff --git a/mcs/class/referencesource/mscorlib/microsoft/win32/registrykey.cs b/mcs/class/referencesource/mscorlib/microsoft/win32/registrykey.cs
index a5a15a79ca9..0d1331ed759 100644
--- a/mcs/class/referencesource/mscorlib/microsoft/win32/registrykey.cs
+++ b/mcs/class/referencesource/mscorlib/microsoft/win32/registrykey.cs
@@ -305,6 +305,18 @@ namespace Microsoft.Win32 {
return CreateSubKeyInternal(subkey, permissionCheck, null, options);
}
+ [ComVisible(false)]
+ public RegistryKey CreateSubKey(String subkey, bool writable)
+ {
+ return CreateSubKeyInternal(subkey, writable ? RegistryKeyPermissionCheck.ReadWriteSubTree : RegistryKeyPermissionCheck.ReadSubTree, null, RegistryOptions.None);
+ }
+
+ [ComVisible(false)]
+ public RegistryKey CreateSubKey(String subkey, bool writable, RegistryOptions options)
+ {
+ return CreateSubKeyInternal(subkey, writable ? RegistryKeyPermissionCheck.ReadWriteSubTree : RegistryKeyPermissionCheck.ReadSubTree, null, options);
+ }
+
#if FEATURE_MACL
[ComVisible(false)]
@@ -755,6 +767,13 @@ namespace Microsoft.Win32 {
return InternalOpenSubKey(name, permissionCheck, GetRegistryKeyAccess(permissionCheck));
}
+ [System.Security.SecuritySafeCritical]
+ [ComVisible(false)]
+ public RegistryKey OpenSubKey(String name, RegistryRights rights)
+ {
+ return InternalOpenSubKey(name, this.checkMode, (int)rights);
+ }
+
[System.Security.SecuritySafeCritical] // auto-generated
[ComVisible(false)]
[ResourceExposure(ResourceScope.Machine)]
@@ -795,8 +814,8 @@ namespace Microsoft.Win32 {
return null;
}
-#endif
-
+#endif
+
// This required no security checks. This is to get around the Deleting SubKeys which only require
// write permission. They call OpenSubKey which required read. Now instead call this function w/o security checks
[System.Security.SecurityCritical] // auto-generated
@@ -830,6 +849,9 @@ namespace Microsoft.Win32 {
*/
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
+#if FEATURE_CORECLR
+ [System.Security.SecurityCritical]
+#endif
public RegistryKey OpenSubKey(String name) {
return OpenSubKey(name, false);
}
diff --git a/mcs/class/referencesource/mscorlib/microsoft/win32/safehandles/saferegistryhandle.cs b/mcs/class/referencesource/mscorlib/microsoft/win32/safehandles/saferegistryhandle.cs
index 7e94df2e869..d499eb2c117 100644
--- a/mcs/class/referencesource/mscorlib/microsoft/win32/safehandles/saferegistryhandle.cs
+++ b/mcs/class/referencesource/mscorlib/microsoft/win32/safehandles/saferegistryhandle.cs
@@ -6,7 +6,7 @@
//
// File: SafeRegistryHandle.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Implements Microsoft.Win32.SafeHandles.SafeRegistryHandle
//
diff --git a/mcs/class/referencesource/mscorlib/microsoft/win32/safehandles/safewaithandle.cs b/mcs/class/referencesource/mscorlib/microsoft/win32/safehandles/safewaithandle.cs
index 5d8009ed634..62505d1d1a3 100644
--- a/mcs/class/referencesource/mscorlib/microsoft/win32/safehandles/safewaithandle.cs
+++ b/mcs/class/referencesource/mscorlib/microsoft/win32/safehandles/safewaithandle.cs
@@ -29,21 +29,6 @@ namespace Microsoft.Win32.SafeHandles {
[System.Security.SecurityCritical] // auto-generated_required
public sealed class SafeWaitHandle : SafeHandleZeroOrMinusOneIsInvalid
{
-
-
- // Special case flags for Mutexes enables workaround for known OS bug at
- // http://support.microsoft.com/default.aspx?scid=kb;en-us;889318
- // One machine-wide mutex serializes all OpenMutex and CloseHandle operations.
-
- // bIsMutex: if true, we need to grab machine-wide mutex before doing any Close ops.
- // Initialized to false by the runtime.
- private bool bIsMutex;
-
- // bIsMutex: if true, we need to avoid grabbing the machine-wide mutex before Close ops,
- // since that mutex is, of course, this very handle.
- // Initialized to false by the runtime.
- private bool bIsReservedMutex;
-
// Called by P/Invoke marshaler
private SafeWaitHandle() : base(true)
{
@@ -64,41 +49,8 @@ namespace Microsoft.Win32.SafeHandles {
NativeEventCalls.CloseEvent_internal (handle);
return true;
#else
-#if !FEATURE_CORECLR
- if (!bIsMutex || Environment.HasShutdownStarted)
- return Win32Native.CloseHandle(handle);
-
- bool bReturn = false;
- bool bMutexObtained = false;
- try
- {
- if (!bIsReservedMutex)
- {
- Mutex.AcquireReservedMutex(ref bMutexObtained);
- }
- bReturn = Win32Native.CloseHandle(handle);
- }
- finally
- {
- if (bMutexObtained)
- Mutex.ReleaseReservedMutex();
- }
- return bReturn;
-#else
return Win32Native.CloseHandle(handle);
#endif
-#endif
- }
-
- internal void SetAsMutex()
- {
- bIsMutex = true;
}
-
- [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
- internal void SetAsReservedMutex()
- {
- bIsReservedMutex = true;
- }
}
}
diff --git a/mcs/class/referencesource/mscorlib/microsoft/win32/unsafenativemethods.cs b/mcs/class/referencesource/mscorlib/microsoft/win32/unsafenativemethods.cs
index 8285fd977ec..051f380c9f6 100644
--- a/mcs/class/referencesource/mscorlib/microsoft/win32/unsafenativemethods.cs
+++ b/mcs/class/referencesource/mscorlib/microsoft/win32/unsafenativemethods.cs
@@ -94,6 +94,8 @@ namespace Microsoft.Win32 {
internal const int ERROR_NOT_ENOUGH_MEMORY = 8;
internal const int ERROR_MORE_DATA = 0xEA;
+ internal const int ERROR_NOT_SUPPORTED = 50;
+ internal const int ERROR_INVALID_PARAMETER = 0x57;
//
// ETW Methods
@@ -167,10 +169,32 @@ namespace Microsoft.Win32 {
public int Type;
};
+ /// <summary>
+ /// Call the ETW native API EventWriteTransfer and checks for invalid argument error.
+ /// The implementation of EventWriteTransfer on some older OSes (Windows 2008) does not accept null relatedActivityId.
+ /// So, for these cases we will retry the call with an empty Guid.
+ /// </summary>
+ internal static int EventWriteTransferWrapper(long registrationHandle,
+ ref EventDescriptor eventDescriptor,
+ Guid* activityId,
+ Guid* relatedActivityId,
+ int userDataCount,
+ EventProvider.EventData* userData)
+ {
+ int HResult = EventWriteTransfer(registrationHandle, ref eventDescriptor, activityId, relatedActivityId, userDataCount, userData);
+ if (HResult == ERROR_INVALID_PARAMETER && relatedActivityId == null)
+ {
+ Guid emptyGuid = Guid.Empty;
+ HResult = EventWriteTransfer(registrationHandle, ref eventDescriptor, activityId, &emptyGuid, userDataCount, userData);
+ }
+
+ return HResult;
+ }
+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage")]
[DllImport(Win32Native.ADVAPI32, ExactSpelling = true, EntryPoint = "EventWriteTransfer", CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
[SuppressUnmanagedCodeSecurityAttribute] // Don't do security checks
- internal static extern int EventWriteTransfer(
+ private static extern int EventWriteTransfer(
[In] long registrationHandle,
[In] ref EventDescriptor eventDescriptor,
[In] Guid* activityId,
@@ -193,7 +217,23 @@ namespace Microsoft.Win32 {
[SuppressUnmanagedCodeSecurityAttribute] // Don't do security checks
internal static extern int EventActivityIdControl([In] ActivityControl ControlCode, [In][Out] ref Guid ActivityId);
- // Support for EnumerateTraceGuidsEx
+ internal enum EVENT_INFO_CLASS
+ {
+ BinaryTrackInfo,
+ SetEnableAllKeywords,
+ SetTraits,
+ }
+
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage")]
+ [DllImport(Win32Native.ADVAPI32, ExactSpelling = true, EntryPoint = "EventSetInformation", CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
+ [SuppressUnmanagedCodeSecurityAttribute] // Don't do security checks
+ internal static extern int EventSetInformation(
+ [In] long registrationHandle,
+ [In] EVENT_INFO_CLASS informationClass,
+ [In] void* eventInformation,
+ [In] int informationLength);
+
+ // Support for EnumerateTraceGuidsEx
internal enum TRACE_QUERY_INFO_CLASS
{
TraceGuidQueryList,
@@ -241,7 +281,7 @@ namespace Microsoft.Win32 {
ref int ReturnLength);
}
-#if !FEATURE_PAL && !FEATURE_CORECLR
+#if FEATURE_COMINTEROP
[SecurityCritical]
[DllImport("combase.dll", PreserveSig = true)]
internal static extern int RoGetActivationFactory(
diff --git a/mcs/class/referencesource/mscorlib/microsoft/win32/win32native.cs b/mcs/class/referencesource/mscorlib/microsoft/win32/win32native.cs
index 4a257e119ae..9c2df18a2da 100644
--- a/mcs/class/referencesource/mscorlib/microsoft/win32/win32native.cs
+++ b/mcs/class/referencesource/mscorlib/microsoft/win32/win32native.cs
@@ -112,19 +112,19 @@ namespace Microsoft.Win32 {
*/
// Remove the default demands for all P/Invoke methods with this
// global declaration on the class.
- // <STRIP>Developers - please do not mark this type with the FriendAccessAllowedAttribute.
- // Do it on a per-method basis if necessary. There's just too much surface area here
- // to accidentally take dependencies on, and it may have a few subtle bugs or some
- // liberties taken with the definition for our specific purposes. We can
- // tackle a global FX P/Invoke definitions feature at some point for size reasons, but
- // let's review that set in detail for correctness. This code is generally solid
- // but may have a few lingering issues:
- // * Using signed ints for the unsigned SIZE_T and DWORD types (use UIntPtr & UInt32)
- // * Consider using real pointer types where appropriate (byte*, void*, etc)
- // * Consider using SafeHandles in more places
- // * the mustBeZero parameters are simplifications for mscorlib's usages and may not
- // be appropriate for other FX teams.
- // -- Brian, 8/25/2010</STRIP>
+ // <
+
+
+
+
+
+
+
+
+
+
+
+
[System.Security.SecurityCritical]
[SuppressUnmanagedCodeSecurityAttribute()]
internal static class Win32Native {
@@ -687,11 +687,7 @@ namespace Microsoft.Win32 {
}
[StructLayout(LayoutKind.Sequential)]
- internal class MEMORYSTATUSEX {
- internal MEMORYSTATUSEX() {
- length = (int) Marshal.SizeOf(this);
- }
-
+ internal struct MEMORYSTATUSEX {
// The length field must be set to the size of this data structure.
internal int length;
internal int memoryLoad;
@@ -716,7 +712,6 @@ namespace Microsoft.Win32 {
}
#endif // !FEATURE_PAL
-#if !FEATURE_PAL
internal const String KERNEL32 = "kernel32.dll";
internal const String USER32 = "user32.dll";
internal const String ADVAPI32 = "advapi32.dll";
@@ -733,51 +728,6 @@ namespace Microsoft.Win32 {
internal const String MSCORWKS = "clr.dll";
#endif //FEATURE_MAIN_CLR_MODULE_USES_CORE_NAME
-#else // !FEATURE_PAL
-
- #if !PLATFORM_UNIX
- internal const String DLLPREFIX = "";
- internal const String DLLSUFFIX = ".dll";
- #else // !PLATFORM_UNIX
- #if __APPLE__
- internal const String DLLPREFIX = "lib";
- internal const String DLLSUFFIX = ".dylib";
- #else
- internal const String DLLPREFIX = "lib";
- internal const String DLLSUFFIX = ".so";
- #endif
- #endif // !PLATFORM_UNIX
-
-#if FEATURE_MAIN_CLR_MODULE_USES_CORE_NAME && __APPLE__
- internal const String KERNEL32 = "coreclr";
- internal const String USER32 = "coreclr";
- internal const String ADVAPI32 = "coreclr";
- internal const String OLE32 = "coreclr";
- internal const String OLEAUT32 = "coreclr";
- internal const String SHELL32 = "coreclr";
- internal const String SHIM = "coreclr";
-#else // FEATURE_MAIN_CLR_MODULE_USES_CORE_NAME && __APPLE__
- internal const String KERNEL32 = DLLPREFIX + "rotor_pal" + DLLSUFFIX;
- internal const String USER32 = DLLPREFIX + "rotor_pal" + DLLSUFFIX;
- internal const String ADVAPI32 = DLLPREFIX + "rotor_pal" + DLLSUFFIX;
- internal const String OLE32 = DLLPREFIX + "rotor_palrt" + DLLSUFFIX;
- internal const String OLEAUT32 = DLLPREFIX + "rotor_palrt" + DLLSUFFIX;
- internal const String SHELL32 = DLLPREFIX + "rotor_pal" + DLLSUFFIX;
- internal const String SHIM = DLLPREFIX + "sscoree" + DLLSUFFIX;
-#endif // FEATURE_CORECLR && __APPLE__
-
-#if FEATURE_MAIN_CLR_MODULE_USES_CORE_NAME
- #if __APPLE__
- internal const String MSCORWKS = "coreclr";
- #else // __APPLE__
- internal const String MSCORWKS = DLLPREFIX + "coreclr" + DLLSUFFIX;
- #endif // __APPLE__
-#else //FEATURE_MAIN_CLR_MODULE_USES_CORE_NAME
- internal const String MSCORWKS = DLLPREFIX + "clr" + DLLSUFFIX;
-#endif //FEATURE_MAIN_CLR_MODULE_USES_CORE_NAME
-
-#endif // !FEATURE_PAL
-
// From WinBase.h
internal const int SEM_FAILCRITICALERRORS = 1;
@@ -803,7 +753,7 @@ namespace Microsoft.Win32 {
}
else {
StringBuilderCache.Release(sb);
- return Environment.GetRuntimeResourceString("UnknownError_Num", errorCode);
+ return Environment.GetResourceString("UnknownError_Num", errorCode);
}
}
@@ -836,9 +786,15 @@ namespace Microsoft.Win32 {
internal static extern void ZeroMemory(IntPtr address, UIntPtr length);
#if !FEATURE_PAL
- [DllImport(KERNEL32, SetLastError=true)]
+ internal static bool GlobalMemoryStatusEx(ref MEMORYSTATUSEX buffer)
+ {
+ buffer.length = Marshal.SizeOf(typeof(MEMORYSTATUSEX));
+ return GlobalMemoryStatusExNative(ref buffer);
+ }
+
+ [DllImport(KERNEL32, SetLastError=true, EntryPoint="GlobalMemoryStatusEx")]
[ResourceExposure(ResourceScope.None)]
- internal static extern bool GlobalMemoryStatusEx([In, Out] MEMORYSTATUSEX buffer);
+ private static extern bool GlobalMemoryStatusExNative([In, Out] ref MEMORYSTATUSEX buffer);
[DllImport(KERNEL32, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
@@ -1103,7 +1059,7 @@ namespace Microsoft.Win32 {
// simultaneously: overlapped IO, free the memory for the overlapped
// struct in a callback (or an EndRead method called by that callback),
// and pass in an address for the numBytesRead parameter.
- // <STRIP> See Windows Bug 105512 for details. -- </STRIP>
+ // <
[DllImport(KERNEL32, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
@@ -1119,7 +1075,7 @@ namespace Microsoft.Win32 {
// simultaneously: overlapped IO, free the memory for the overlapped
// struct in a callback (or an EndWrite method called by that callback),
// and pass in an address for the numBytesRead parameter.
- // <STRIP> See Windows Bug 105512 for details. -- </STRIP>
+ // <
[DllImport(KERNEL32, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
@@ -1449,11 +1405,9 @@ namespace Microsoft.Win32 {
[ResourceExposure(ResourceScope.None)]
internal static extern bool SetFileAttributes(String name, int attr);
-#if !PLATFORM_UNIX
[DllImport(KERNEL32, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal static extern int GetLogicalDrives();
-#endif // !PLATFORM_UNIX
[DllImport(KERNEL32, CharSet=CharSet.Auto, SetLastError=true, BestFitMapping=false)]
[ResourceExposure(ResourceScope.None)]
@@ -1486,12 +1440,6 @@ namespace Microsoft.Win32 {
[ResourceExposure(ResourceScope.Machine)]
internal static extern bool SetCurrentDirectory(String path);
-#if __APPLE__
- // interop on the Mac doesn't play well with EntryPointAttribute on PAL-defined functions yet
- [DllImport(KERNEL32, SetLastError=false)]
- [ResourceExposure(ResourceScope.Process)]
- internal static extern int SetErrorMode(int newMode);
-#else // __APPLE__
[DllImport(KERNEL32, SetLastError=false, EntryPoint="SetErrorMode", ExactSpelling=true)]
[ResourceExposure(ResourceScope.Process)]
private static extern int SetErrorMode_VistaAndOlder(int newMode);
@@ -1519,7 +1467,6 @@ namespace Microsoft.Win32 {
#endif
return SetErrorMode_VistaAndOlder(newMode);
}
-#endif // __APPLE__
internal const int LCID_SUPPORTED = 0x00000002; // supported locale ids
@@ -1569,9 +1516,6 @@ namespace Microsoft.Win32 {
[DllImport(Win32Native.OLE32)]
[ResourceExposure(ResourceScope.None)]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
internal static extern IntPtr CoTaskMemAlloc(UIntPtr cb);
[DllImport(Win32Native.OLE32)]
@@ -1580,9 +1524,6 @@ namespace Microsoft.Win32 {
[DllImport(Win32Native.OLE32)]
[ResourceExposure(ResourceScope.None)]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
internal static extern void CoTaskMemFree(IntPtr ptr);
#if !FEATURE_PAL
@@ -1782,14 +1723,6 @@ namespace Microsoft.Win32 {
[ResourceExposure(ResourceScope.Process)]
internal static extern bool SetConsoleOutputCP(uint codePage);
-
- internal const int VER_PLATFORM_WIN32s = 0;
- internal const int VER_PLATFORM_WIN32_WINDOWS = 1;
- internal const int VER_PLATFORM_WIN32_NT = 2;
- internal const int VER_PLATFORM_WINCE = 3;
- internal const int VER_PLATFORM_UNIX = 10;
- internal const int VER_PLATFORM_MACOSX = 11;
-
#if !FEATURE_PAL
[DllImport(ADVAPI32, CharSet=CharSet.Auto, BestFitMapping=false)]
[ResourceExposure(ResourceScope.Machine)]
@@ -1926,32 +1859,32 @@ namespace Microsoft.Win32 {
//////!!!!!! 3) rotor\pal\inc\rotor_pal.h !!!!!!////////
//////!!!!!! 4) rotor\pal\corunix\shfolder\shfolder.cpp !!!!!!////////
//////!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!////////
-/*<STRIP>
- // .NET Framework 4.0 and newer - Vista+ ||| \public\sdk\inc\knownfolders.h
- internal const Guid FOLDERID_Contacts = new Guid("{56784854-C6CB-462b-8169-88E350ACB882}");
- internal const Guid FOLDERID_Downloads = new Guid("{374DE290-123F-4565-9164-39C4925E467B}");
- internal const Guid FOLDERID_GameTasks = new Guid("{054FAE61-4DD8-4787-80B6-090220C4B700}");
- internal const Guid FOLDERID_Links = new Guid("{bfb9d5e0-c6a9-404c-b2b2-ae6db6af4968}");
- internal const Guid FOLDERID_LocalAppDataLow = new Guid("{A520A1A4-1780-4FF6-BD18-167343C5AF16}");
- internal const Guid FOLDERID_OriginalImages = new Guid("{2C36C0AA-5812-4b87-BFD0-4CD0DFB19B39}");
- internal const Guid FOLDERID_PhotoAlbums = new Guid("{69D2CF90-FC33-4FB7-9A0C-EBB0F0FCB43C}");
- internal const Guid FOLDERID_Playlists = new Guid("{DE92C1C7-837F-4F69-A3BB-86E631204A23}");
- internal const Guid FOLDERID_QuickLaunch = new Guid("{52a4f021-7b75-48a9-9f6b-4b87a210bc8f}");
- internal const Guid FOLDERID_SavedGames = new Guid("{4C5C32FF-BB9D-43b0-B5B4-2D72E54EAAA4}");
- internal const Guid FOLDERID_SavedSearches = new Guid("{7d1d3a04-debb-4115-95cf-2f29da2920da}");
- internal const Guid FOLDERID_SidebarParts = new Guid("{A75D362E-50FC-4fb7-AC2C-A8BEAA314493}");
- internal const Guid FOLDERID_PublicDownloads = new Guid("{3D644C9B-1FB8-4f30-9B45-F670235F79C0}");
- internal const Guid FOLDERID_PublicGameTasks = new Guid("{DEBF2536-E1A8-4c59-B6A2-414586476AEA}");
- internal const Guid FOLDERID_SampleMusic = new Guid("{B250C668-F57D-4EE1-A63C-290EE7D1AA1F}");
- internal const Guid FOLDERID_SamplePictures = new Guid("{C4900540-2379-4C75-844B-64E6FAF8716B}");
- internal const Guid FOLDERID_SamplePlaylists = new Guid("{15CA69B3-30EE-49C1-ACE1-6B5EC372AFB5}");
- internal const Guid FOLDERID_SampleVideos = new Guid("{859EAD94-2E85-48AD-A71A-0969CB56A6CD}");
- internal const Guid FOLDERID_SidebarDefaultParts = new Guid("{7B396E54-9EC5-4300-BE0A-2482EBAE1A26}");
- internal const Guid FOLDERID_ProgramFilesCommonX64 = new Guid("{6365D5A7-0F0D-45e5-87F6-0DA56B6A4F7D}");
- internal const Guid FOLDERID_ProgramFilesX64 = new Guid("{6D809377-6AF0-444b-8957-A3773F02200E}");
- internal const Guid FOLDERID_Public = new Guid("{DFDF76A2-C82A-4D63-906A-5644AC457385}");
- internal const Guid FOLDERID_UserProfiles = new Guid("{0762D272-C50A-4BB0-A382-697DCD729B80}");
-</STRIP>*/
+/*<
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+*/
// .NET Framework 4.0 and newer - all versions of windows ||| \public\sdk\inc\shlobj.h
internal const int CSIDL_FLAG_CREATE = 0x8000; // force folder creation in SHGetFolderPath
internal const int CSIDL_FLAG_DONT_VERIFY = 0x4000; // return an unverified folder path
@@ -2101,7 +2034,7 @@ namespace Microsoft.Win32 {
[ResourceExposure(ResourceScope.None)]
internal static extern
bool AdjustTokenPrivileges (
- [In] SafeTokenHandle TokenHandle,
+ [In] SafeAccessTokenHandle TokenHandle,
[In] bool DisableAllPrivileges,
[In] ref TOKEN_PRIVILEGE NewState,
[In] uint BufferLength,
@@ -2118,9 +2051,9 @@ namespace Microsoft.Win32 {
[ResourceExposure(ResourceScope.None)]
internal static extern
bool CheckTokenMembership(
- [In] SafeTokenHandle TokenHandle,
- [In] byte[] SidToCheck,
- [In,Out] ref bool IsMember);
+ [In] SafeAccessTokenHandle TokenHandle,
+ [In] byte[] SidToCheck,
+ [In,Out] ref bool IsMember);
[DllImport(
ADVAPI32,
@@ -2200,7 +2133,7 @@ namespace Microsoft.Win32 {
[In] IntPtr hSourceProcessHandle,
[In] IntPtr hSourceHandle,
[In] IntPtr hTargetProcessHandle,
- [In,Out] ref SafeTokenHandle lpTargetHandle,
+ [In,Out] ref SafeAccessTokenHandle lpTargetHandle,
[In] uint dwDesiredAccess,
[In] bool bInheritHandle,
[In] uint dwOptions);
@@ -2211,9 +2144,9 @@ namespace Microsoft.Win32 {
internal static extern
bool DuplicateHandle (
[In] IntPtr hSourceProcessHandle,
- [In] SafeTokenHandle hSourceHandle,
+ [In] SafeAccessTokenHandle hSourceHandle,
[In] IntPtr hTargetProcessHandle,
- [In,Out] ref SafeTokenHandle lpTargetHandle,
+ [In,Out] ref SafeAccessTokenHandle lpTargetHandle,
[In] uint dwDesiredAccess,
[In] bool bInheritHandle,
[In] uint dwOptions);
@@ -2224,23 +2157,23 @@ namespace Microsoft.Win32 {
[ResourceExposure(ResourceScope.None)]
internal static extern
bool DuplicateTokenEx (
- [In] SafeTokenHandle ExistingTokenHandle,
+ [In] SafeAccessTokenHandle ExistingTokenHandle,
[In] TokenAccessLevels DesiredAccess,
[In] IntPtr TokenAttributes,
[In] SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
[In] System.Security.Principal.TokenType TokenType,
- [In,Out] ref SafeTokenHandle DuplicateTokenHandle );
+ [In,Out] ref SafeAccessTokenHandle DuplicateTokenHandle );
[DllImport(ADVAPI32, CharSet=CharSet.Auto, SetLastError=true)]
[ResourceExposure(ResourceScope.None)]
internal static extern
bool DuplicateTokenEx (
- [In] SafeTokenHandle hExistingToken,
+ [In] SafeAccessTokenHandle hExistingToken,
[In] uint dwDesiredAccess,
[In] IntPtr lpTokenAttributes, // LPSECURITY_ATTRIBUTES
[In] uint ImpersonationLevel,
[In] uint TokenType,
- [In,Out] ref SafeTokenHandle phNewToken);
+ [In,Out] ref SafeAccessTokenHandle phNewToken);
#endif
[DllImport(
ADVAPI32,
@@ -2324,7 +2257,7 @@ namespace Microsoft.Win32 {
[ResourceExposure(ResourceScope.None)]
internal static extern
bool GetTokenInformation (
- [In] SafeTokenHandle TokenHandle,
+ [In] SafeAccessTokenHandle TokenHandle,
[In] uint TokenInformationClass,
[In] SafeLocalAllocHandle TokenInformation,
[In] uint TokenInformationLength,
@@ -2624,7 +2557,7 @@ namespace Microsoft.Win32 {
[In,Out] ref SafeLsaReturnBufferHandle ProfileBuffer,
[In,Out] ref uint ProfileBufferLength,
[In,Out] ref LUID LogonId,
- [In,Out] ref SafeTokenHandle Token,
+ [In,Out] ref SafeAccessTokenHandle Token,
[In,Out] ref QUOTA_LIMITS Quotas,
[In,Out] ref int SubStatus);
@@ -2659,26 +2592,26 @@ namespace Microsoft.Win32 {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
internal static extern int LsaFreeReturnBuffer(IntPtr handle);
-#if FEATURE_IMPERSONATION || (FEATURE_CORECLR && !__APPLE__)
+#if FEATURE_IMPERSONATION || FEATURE_CORECLR
[DllImport (ADVAPI32, CharSet=CharSet.Unicode, SetLastError=true)]
[ResourceExposure(ResourceScope.Process)]
internal static extern
bool OpenProcessToken (
- [In] IntPtr ProcessToken,
- [In] TokenAccessLevels DesiredAccess,
- [Out] out SafeTokenHandle TokenHandle);
+ [In] IntPtr ProcessToken,
+ [In] TokenAccessLevels DesiredAccess,
+ [Out] out SafeAccessTokenHandle TokenHandle);
#endif
-#if FEATURE_CORECLR && !__APPLE__
+#if FEATURE_CORECLR
[DllImport (ADVAPI32, CharSet=CharSet.Unicode, SetLastError=true)]
[ResourceExposure(ResourceScope.Process)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern
bool OpenThreadToken (
- [In] IntPtr ThreadHandle,
- [In] TokenAccessLevels DesiredAccess,
- [In, MarshalAs(UnmanagedType.Bool)] bool OpenAsSelf,
- [Out] out SafeTokenHandle TokenHandle);
+ [In] IntPtr ThreadHandle,
+ [In] TokenAccessLevels DesiredAccess,
+ [In, MarshalAs(UnmanagedType.Bool)] bool OpenAsSelf,
+ [Out] out SafeAccessTokenHandle TokenHandle);
#endif
[DllImport(
@@ -2783,8 +2716,7 @@ namespace Microsoft.Win32 {
#endif // FEATURE_PAL
// Fusion APIs
-#if FEATURE_COMINTEROP && FEATURE_FUSION
-
+#if FEATURE_FUSION
[DllImport(MSCORWKS, CharSet=CharSet.Unicode)]
[ResourceExposure(ResourceScope.None)]
internal static extern int CreateAssemblyNameObject(out IAssemblyName ppEnum, String szAssemblyName, uint dwFlags, IntPtr pvReserved);
@@ -2792,18 +2724,7 @@ namespace Microsoft.Win32 {
[DllImport(MSCORWKS, CharSet=CharSet.Auto)]
[ResourceExposure(ResourceScope.None)]
internal static extern int CreateAssemblyEnum(out IAssemblyEnum ppEnum, IApplicationContext pAppCtx, IAssemblyName pName, uint dwFlags, IntPtr pvReserved);
-#else // FEATURE_COMINTEROP && FEATURE_FUSION
-
-#if FEATURE_FUSION
- [DllImport(MSCORWKS, CharSet=CharSet.Unicode)]
- [ResourceExposure(ResourceScope.None)]
- internal static extern int CreateAssemblyNameObject(out SafeFusionHandle ppEnum, String szAssemblyName, uint dwFlags, IntPtr pvReserved);
-
- [DllImport(MSCORWKS, CharSet=CharSet.Auto)]
- [ResourceExposure(ResourceScope.None)]
- internal static extern int CreateAssemblyEnum(out SafeFusionHandle ppEnum, SafeFusionHandle pAppCtx, SafeFusionHandle pName, uint dwFlags, IntPtr pvReserved);
#endif // FEATURE_FUSION
-#endif // FEATURE_COMINTEROP && FEATURE_FUSION
#if FEATURE_CORECLR
[DllImport(KERNEL32, CharSet=CharSet.Unicode)]
@@ -2829,10 +2750,8 @@ namespace Microsoft.Win32 {
int cchWideChar);
#endif // FEATURE_CORECLR
-#if !FEATURE_PAL && !FEATURE_CORESYSTEM
[DllImport(KERNEL32, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
internal extern static bool QueryUnbiasedInterruptTime(out ulong UnbiasedTime);
-#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/AggregateException.cs b/mcs/class/referencesource/mscorlib/system/AggregateException.cs
index 2a2561b05e8..5b442f2549e 100644
--- a/mcs/class/referencesource/mscorlib/system/AggregateException.cs
+++ b/mcs/class/referencesource/mscorlib/system/AggregateException.cs
@@ -7,7 +7,7 @@
//
// AggregateException.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Public type to communicate multiple failures to an end-user.
//
diff --git a/mcs/class/referencesource/mscorlib/system/AppContext/AppContext.cs b/mcs/class/referencesource/mscorlib/system/AppContext/AppContext.cs
new file mode 100644
index 00000000000..b24498b4258
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/AppContext/AppContext.cs
@@ -0,0 +1,171 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+
+using System.Collections.Generic;
+
+namespace System
+{
+ public static class AppContext
+ {
+ [Flags]
+ private enum SwitchValueState
+ {
+ HasFalseValue = 0x1,
+ HasTrueValue = 0x2,
+ HasLookedForOverride = 0x4,
+ UnknownValue = 0x8 // Has no default and could not find an override
+ }
+ private static Dictionary<string, SwitchValueState> s_switchMap = new Dictionary<string, SwitchValueState>();
+ private static readonly object s_syncLock = new object();
+
+ public static string BaseDirectory
+ {
+#if FEATURE_CORECLR
+ [System.Security.SecuritySafeCritical]
+#endif
+ get
+ {
+ return AppDomain.CurrentDomain.BaseDirectory;
+ }
+ }
+
+ #region Switch APIs
+
+ static AppContext()
+ {
+ // populate the AppContext with the default set of values
+ AppContextDefaultValues.PopulateDefaultValues();
+ }
+
+ /// <summary>
+ /// Try to get the value of the switch.
+ /// </summary>
+ /// <param name="switchName">The name of the switch</param>
+ /// <param name="isEnabled">A variable where to place the value of the switch</param>
+ /// <returns>A return value of true represents that the switch was set and <paramref name="isEnabled"/> contains the value of the switch</returns>
+ public static bool TryGetSwitch(string switchName, out bool isEnabled)
+ {
+ if (switchName == null)
+ throw new ArgumentNullException("switchName");
+ if (switchName.Length == 0)
+ throw new ArgumentException(Environment.GetResourceString("Argument_EmptyName"), "switchName");
+
+ // By default, the switch is not enabled.
+ isEnabled = false;
+
+ SwitchValueState switchValue;
+ lock (s_switchMap)
+ {
+ if (s_switchMap.TryGetValue(switchName, out switchValue))
+ {
+ // The value is in the dictionary.
+ // There are 3 cases here:
+ // 1. The value of the switch is 'unknown'. This means that the switch name is not known to the system (either via defaults or checking overrides).
+ // Example: This is the case when, during a servicing event, a switch is added to System.Xml which ships before mscorlib. The value of the switch
+ // Will be unknown to mscorlib.dll and we want to prevent checking the overrides every time we check this switch
+ // 2. The switch has a valid value AND we have read the overrides for it
+ // Example: TryGetSwitch is called for a switch set via SetSwitch
+ // 3. The switch has the default value and we need to check for overrides
+ // Example: TryGetSwitch is called for the first time for a switch that has a default value
+
+ // 1. The value is unknown
+ if (switchValue == SwitchValueState.UnknownValue)
+ {
+ isEnabled = false;
+ return false;
+ }
+
+ // We get the value of isEnabled from the value that we stored in the dictionary
+ isEnabled = (switchValue & SwitchValueState.HasTrueValue) == SwitchValueState.HasTrueValue;
+
+ // 2. The switch has a valid value AND we have checked for overrides
+ if ((switchValue & SwitchValueState.HasLookedForOverride) == SwitchValueState.HasLookedForOverride)
+ {
+ return true;
+ }
+
+ // 3. The switch has a valid value, but we need to check for overrides.
+ // Regardless of whether or not the switch has an override, we need to update the value to reflect
+ // the fact that we checked for overrides.
+ bool overrideValue;
+ if (AppContextDefaultValues.TryGetSwitchOverride(switchName, out overrideValue))
+ {
+ // we found an override!
+ isEnabled = overrideValue;
+ }
+
+ // Update the switch in the dictionary to mark it as 'checked for override'
+ s_switchMap[switchName] = (isEnabled ? SwitchValueState.HasTrueValue : SwitchValueState.HasFalseValue)
+ | SwitchValueState.HasLookedForOverride;
+
+ return true;
+ }
+ else
+ {
+ // The value is NOT in the dictionary
+ // In this case we need to see if we have an override defined for the value.
+ // There are 2 cases:
+ // 1. The value has an override specified. In this case we need to add the value to the dictionary
+ // and mark it as checked for overrides
+ // Example: In a servicing event, System.Xml introduces a switch and an override is specified.
+ // The value is not found in mscorlib (as System.Xml ships independent of mscorlib)
+ // 2. The value does not have an override specified
+ // In this case, we want to capture the fact that we looked for a value and found nothing by adding
+ // an entry in the dictionary with the 'sentinel' value of 'SwitchValueState.UnknownValue'.
+ // Example: This will prevent us from trying to find overrides for values that we don't have in the dictionary
+
+ // 1. The value has an override specified.
+ bool overrideValue;
+ if (AppContextDefaultValues.TryGetSwitchOverride(switchName, out overrideValue))
+ {
+ isEnabled = overrideValue;
+
+ // Update the switch in the dictionary to mark it as 'checked for override'
+ s_switchMap[switchName] = (isEnabled ? SwitchValueState.HasTrueValue : SwitchValueState.HasFalseValue)
+ | SwitchValueState.HasLookedForOverride;
+
+ return true;
+ }
+
+ // 2. The value does not have an override.
+ s_switchMap[switchName] = SwitchValueState.UnknownValue;
+ }
+ }
+ return false; // we did not find a value for the switch
+ }
+
+ /// <summary>
+ /// Assign a switch a value
+ /// </summary>
+ /// <param name="switchName">The name of the switch</param>
+ /// <param name="isEnabled">The value to assign</param>
+ public static void SetSwitch(string switchName, bool isEnabled)
+ {
+ if (switchName == null)
+ throw new ArgumentNullException("switchName");
+ if (switchName.Length == 0)
+ throw new ArgumentException(Environment.GetResourceString("Argument_EmptyName"), "switchName");
+
+ lock (s_syncLock)
+ {
+ // Store the new value and the fact that we checked in the dictionary
+ s_switchMap[switchName] = (isEnabled ? SwitchValueState.HasTrueValue : SwitchValueState.HasFalseValue)
+ | SwitchValueState.HasLookedForOverride;
+ }
+ }
+
+ /// <summary>
+ /// This method is going to be called from the AppContextDefaultValues class when setting up the
+ /// default values for the switches. !!!! This method is called during the static constructor so it does not
+ /// take a lock !!!! If you are planning to use this outside of that, please ensure proper locking.
+ /// </summary>
+ internal static void DefineSwitchDefault(string switchName, bool isEnabled)
+ {
+ s_switchMap[switchName] = isEnabled ? SwitchValueState.HasTrueValue : SwitchValueState.HasFalseValue;
+ }
+ #endregion
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/AppContext/AppContextDefaultValues.Defaults.Central.cs b/mcs/class/referencesource/mscorlib/system/AppContext/AppContextDefaultValues.Defaults.Central.cs
new file mode 100644
index 00000000000..5eefd234799
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/AppContext/AppContextDefaultValues.Defaults.Central.cs
@@ -0,0 +1,34 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+
+//
+// This file is used to provide an implementation for defining a default value
+// This should be compiled only in mscorlib where the AppContext class is available
+//
+
+namespace System
+{
+ internal static partial class AppContextDefaultValues
+ {
+ /// <summary>
+ /// This method allows reading the override for a switch.
+ /// The implementation is platform specific
+ /// </summary>
+ public static bool TryGetSwitchOverride(string switchName, out bool overrideValue)
+ {
+ // The default value for a switch is 'false'
+ overrideValue = false;
+
+ // Read the override value
+ bool overrideFound = false;
+
+ // This partial method will be removed if there are no implementations of it.
+ TryGetSwitchOverridePartial(switchName, ref overrideFound, ref overrideValue);
+
+ return overrideFound;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/AppContext/AppContextDefaultValues.Defaults.cs b/mcs/class/referencesource/mscorlib/system/AppContext/AppContextDefaultValues.Defaults.cs
new file mode 100644
index 00000000000..bc1f347abb0
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/AppContext/AppContextDefaultValues.Defaults.cs
@@ -0,0 +1,62 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+using System;
+
+namespace System
+{
+ internal static partial class AppContextDefaultValues
+ {
+
+ internal static readonly string SwitchNoAsyncCurrentCulture = "Switch.System.Globalization.NoAsyncCurrentCulture";
+ internal static readonly string SwitchThrowExceptionIfDisposedCancellationTokenSource = "Switch.System.Threading.ThrowExceptionIfDisposedCancellationTokenSource";
+ internal static readonly string SwitchPreserveEventListnerObjectIdentity = "Switch.System.Diagnostics.EventSource.PreserveEventListnerObjectIdentity";
+
+
+ // This is a partial method. Platforms can provide an implementation of it that will set override values
+ // from whatever mechanism is available on that platform. If no implementation is provided, the compiler is going to remove the calls
+ // to it from the code
+ // We are going to have an implementation of this method for the Desktop platform that will read the overrides from app.config, registry and
+ // the shim database. Additional implementation can be provided for other platforms.
+ static partial void PopulateOverrideValuesPartial();
+
+ static partial void PopulateDefaultValuesPartial(string platformIdentifier, string profile, int version)
+ {
+ // When defining a new switch you should add it to the last known version.
+ // For instance, if you are adding a switch in .NET 4.6 (the release after 4.5.2) you should defined your switch
+ // like this:
+ // if (version <= 40502) ...
+ // This ensures that all previous versions of that platform (up-to 4.5.2) will get the old behavior by default
+ // NOTE: When adding a default value for a switch please make sure that the default value is added to ALL of the existing platforms!
+ // NOTE: When adding a new if statement for the version please ensure that ALL previous switches are enabled (ie. don't use else if)
+ switch (platformIdentifier)
+ {
+ case ".NETCore":
+ case ".NETFramework":
+ {
+ if (version <= 40502)
+ {
+ AppContext.DefineSwitchDefault(SwitchNoAsyncCurrentCulture, true);
+ AppContext.DefineSwitchDefault(SwitchThrowExceptionIfDisposedCancellationTokenSource, true);
+ }
+ break;
+ }
+ case "WindowsPhone":
+ case "WindowsPhoneApp":
+ {
+ if (version <= 80100)
+ {
+ AppContext.DefineSwitchDefault(SwitchNoAsyncCurrentCulture, true);
+ AppContext.DefineSwitchDefault(SwitchThrowExceptionIfDisposedCancellationTokenSource, true);
+ }
+ break;
+ }
+ }
+
+ // At this point we should read the overrides if any are defined
+ PopulateOverrideValuesPartial();
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/AppContext/AppContextDefaultValues.DesktopOverrides.cs b/mcs/class/referencesource/mscorlib/system/AppContext/AppContextDefaultValues.DesktopOverrides.cs
new file mode 100644
index 00000000000..56e7e787369
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/AppContext/AppContextDefaultValues.DesktopOverrides.cs
@@ -0,0 +1,136 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+
+using Microsoft.Win32;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Security;
+
+namespace System
+{
+ internal static partial class AppContextDefaultValues
+ {
+ /// <summary>
+ /// This method is going to parse the <paramref name="overrides"/> parameter and set the values corresponding to them
+ /// in the AppContext object
+ /// </summary>
+ [SecuritySafeCritical]
+ static partial void PopulateOverrideValuesPartial()
+ {
+ // Retrieve the value from EE config.
+ string overrides = System.Runtime.Versioning.CompatibilitySwitch.GetAppContextOverridesInternalCall();
+
+ // If we have no override values, do nothing.
+ if (string.IsNullOrEmpty(overrides))
+ return;
+
+ bool encounteredEquals = false, encounteredCharsInKey = false, encounteredCharsInValue = false;
+ int previousSemicolonPos = -1, firstEqualsPos = -1;
+
+ // Iterate over the string one character at a time until we reach the end of the string.
+ for (int currentPos = 0; currentPos <= overrides.Length; currentPos++)
+ {
+ // If the current position is either ';' or 'end-of-string' then we potentially have a key=value pair
+ if (currentPos == overrides.Length || overrides[currentPos] == ';')
+ {
+ // We only have a key=value pair if we encountered an equals, characters in the key and in the value
+ // portion of the pair.
+ if (encounteredEquals && encounteredCharsInKey && encounteredCharsInValue)
+ {
+ // We compute the indexes in the string for key and value
+ int firstCharOfKey = previousSemicolonPos + 1; //+1 because we don't take the ';' char
+ int lenghtOfKey = firstEqualsPos - previousSemicolonPos - 1; //-1 because we don't take the '=' char
+ string name = overrides.Substring(firstCharOfKey, lenghtOfKey);
+
+ int firstCharOfValue = firstEqualsPos + 1; // +1 because we don't count the '='
+ int lengthOfValue = currentPos - firstEqualsPos - 1; // -1 because we don't count the '='
+ string value = overrides.Substring(firstCharOfValue, lengthOfValue);
+
+ // apply the value only if it parses as a boolean
+ bool switchValue;
+ if (bool.TryParse(value, out switchValue))
+ {
+ // If multiple switches have the same name, the last value that we find will win.
+ AppContext.SetSwitch(name, switchValue);
+ }
+ }
+ previousSemicolonPos = currentPos;
+
+ // We need to reset these flags once we encounter a ';'
+ encounteredCharsInKey = encounteredCharsInValue = encounteredEquals = false;
+ }
+ else if (overrides[currentPos] == '=')
+ {
+ // if the current character is '=' then we should flag it and remember it
+ if (!encounteredEquals)
+ {
+ encounteredEquals = true;
+ firstEqualsPos = currentPos;
+ }
+ }
+ else
+ {
+ // We need to know if the key or value contain any characters (other than ';' and '=');
+ if (encounteredEquals)
+ {
+ encounteredCharsInValue = true;
+ }
+ else
+ {
+ encounteredCharsInKey = true;
+ }
+ }
+ }
+ }
+
+ // Note -- partial methods cannot return a value so we use refs to return information
+ [SecuritySafeCritical]
+ static partial void TryGetSwitchOverridePartial(string switchName, ref bool overrideFound, ref bool overrideValue)
+ {
+ string valueFromConfig = null;
+ bool boolFromConfig;
+ overrideFound = false;
+
+ // Read the value from the registry if we can (ie. the key exists)
+ if (s_switchesRegKey != null)
+ {
+ // try to read it from the registry key and return null if the switch name is not found
+ valueFromConfig = s_switchesRegKey.GetValue(switchName, (string)null) as string;
+ }
+
+ // Note: valueFromConfig will be null only if the key is not found.
+ // Read the value from the Shim database.
+ if (valueFromConfig == null)
+ {
+ // We are only going to check the Shim Database for an override in this case
+ valueFromConfig = System.Runtime.Versioning.CompatibilitySwitch.GetValue(switchName);
+ }
+
+ if (valueFromConfig != null && bool.TryParse(valueFromConfig, out boolFromConfig))
+ {
+ // If we found a valid override value, we need to let the caller know that.
+ overrideValue = boolFromConfig;
+ overrideFound = true;
+ }
+ }
+
+ // Cached registry key used to read value overrides from the registry
+ private static RegistryKey s_switchesRegKey = OpenRegKeyNoThrow();
+
+ /// <summary>
+ /// Opens the registry key where the switches are stored and returns null if there is an issue opening the key
+ /// </summary>
+ private static RegistryKey OpenRegKeyNoThrow()
+ {
+ try
+ {
+ return Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\.NETFramework\AppContext");
+ }
+ catch { return null; }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/AppContext/AppContextDefaultValues.cs b/mcs/class/referencesource/mscorlib/system/AppContext/AppContextDefaultValues.cs
new file mode 100644
index 00000000000..124f9f45a4f
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/AppContext/AppContextDefaultValues.cs
@@ -0,0 +1,170 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+using System;
+using System.Collections.Generic;
+
+namespace System
+{
+ internal static partial class AppContextDefaultValues
+ {
+ public static void PopulateDefaultValues()
+ {
+ string platformIdentifier, profile;
+ int version;
+
+ ParseTargetFrameworkName(out platformIdentifier, out profile, out version);
+
+ // Call into each library to populate their default switches
+ PopulateDefaultValuesPartial(platformIdentifier, profile, version);
+ }
+
+ /// <summary>
+ /// We have this separate method for getting the parsed elements out of the TargetFrameworkName so we can
+ /// more easily support this on other platforms.
+ /// </summary>
+ [System.Security.SecuritySafeCritical]
+ private static void ParseTargetFrameworkName(out string identifier, out string profile, out int version)
+ {
+ string targetFrameworkMoniker = AppDomain.CurrentDomain.SetupInformation.TargetFrameworkName;
+
+ // If we don't have a TFM then we should default to the 4.0 behavior where all quirks are turned on.
+ if (!TryParseFrameworkName(targetFrameworkMoniker, out identifier, out version, out profile))
+ {
+#if FEATURE_CORECLR
+ if (CompatibilitySwitches.UseLatestBehaviorWhenTFMNotSpecified)
+ {
+ // If we want to use the latest behavior it is enough to set the value of the switch to string.Empty.
+ // When the get to the caller of this method (PopulateDefaultValuesPartial) we are going to use the
+ // identifier we just set to decide which switches to turn on. By having an empty string as the
+ // identifier we are simply saying -- don't turn on any switches, and we are going to get the latest
+ // behavior for all the switches
+ identifier = string.Empty;
+ }
+ else
+#endif
+ {
+ identifier = ".NETFramework";
+ version = 40000;
+ profile = string.Empty;
+ }
+ }
+ }
+
+ // This code was a constructor copied from the FrameworkName class, which is located in System.dll.
+ // Parses strings in the following format: "<identifier>, Version=[v|V]<version>, Profile=<profile>"
+ // - The identifier and version is required, profile is optional
+ // - Only three components are allowed.
+ // - The version string must be in the System.Version format; an optional "v" or "V" prefix is allowed
+ private static bool TryParseFrameworkName(String frameworkName, out String identifier, out int version, out String profile)
+ {
+ // For parsing a target Framework moniker, from the FrameworkName class
+ const char c_componentSeparator = ',';
+ const char c_keyValueSeparator = '=';
+ const char c_versionValuePrefix = 'v';
+ const String c_versionKey = "Version";
+ const String c_profileKey = "Profile";
+
+ identifier = profile = string.Empty;
+ version = 0;
+
+ if (frameworkName == null || frameworkName.Length == 0)
+ {
+ return false;
+ }
+
+ String[] components = frameworkName.Split(c_componentSeparator);
+ version = 0;
+
+ // Identifer and Version are required, Profile is optional.
+ if (components.Length < 2 || components.Length > 3)
+ {
+ return false;
+ }
+
+ //
+ // 1) Parse the "Identifier", which must come first. Trim any whitespace
+ //
+ identifier = components[0].Trim();
+
+ if (identifier.Length == 0)
+ {
+ return false;
+ }
+
+ bool versionFound = false;
+ profile = null;
+
+ //
+ // The required "Version" and optional "Profile" component can be in any order
+ //
+ for (int i = 1; i < components.Length; i++)
+ {
+ // Get the key/value pair separated by '='
+ string[] keyValuePair = components[i].Split(c_keyValueSeparator);
+
+ if (keyValuePair.Length != 2)
+ {
+ return false;
+ }
+
+ // Get the key and value, trimming any whitespace
+ string key = keyValuePair[0].Trim();
+ string value = keyValuePair[1].Trim();
+
+ //
+ // 2) Parse the required "Version" key value
+ //
+ if (key.Equals(c_versionKey, StringComparison.OrdinalIgnoreCase))
+ {
+ versionFound = true;
+
+ // Allow the version to include a 'v' or 'V' prefix...
+ if (value.Length > 0 && (value[0] == c_versionValuePrefix || value[0] == 'V'))
+ {
+ value = value.Substring(1);
+ }
+ Version realVersion = new Version(value);
+ // The version class will represent some unset values as -1 internally (instead of 0).
+ version = realVersion.Major * 10000;
+ if (realVersion.Minor > 0)
+ version += realVersion.Minor * 100;
+ if (realVersion.Build > 0)
+ version += realVersion.Build;
+ }
+ //
+ // 3) Parse the optional "Profile" key value
+ //
+ else if (key.Equals(c_profileKey, StringComparison.OrdinalIgnoreCase))
+ {
+ if (!String.IsNullOrEmpty(value))
+ {
+ profile = value;
+ }
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ if (!versionFound)
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ // This is a partial method. Platforms (such as Desktop) can provide an implementation of it that will read override value
+ // from whatever mechanism is available on that platform. If no implementation is provided, the compiler is going to remove the calls
+ // to it from the code
+ static partial void TryGetSwitchOverridePartial(string switchName, ref bool overrideFound, ref bool overrideValue);
+
+ /// This is a partial method. This method is responsible for populating the default values based on a TFM.
+ /// It is partial because each library should define this method in their code to contain their defaults.
+ static partial void PopulateDefaultValuesPartial(string platformIdentifier, string profile, int version);
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/AppContext/AppContextSwitches.cs b/mcs/class/referencesource/mscorlib/system/AppContext/AppContextSwitches.cs
new file mode 100644
index 00000000000..539e877016d
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/AppContext/AppContextSwitches.cs
@@ -0,0 +1,82 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+
+namespace System
+{
+ using System;
+ using System.Runtime.CompilerServices;
+
+ internal static class AppContextSwitches
+ {
+ private static int _noAsyncCurrentCulture;
+ public static bool NoAsyncCurrentCulture
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ get
+ {
+ return GetCachedSwitchValue(AppContextDefaultValues.SwitchNoAsyncCurrentCulture, ref _noAsyncCurrentCulture);
+ }
+ }
+
+ private static int _throwExceptionIfDisposedCancellationTokenSource;
+ public static bool ThrowExceptionIfDisposedCancellationTokenSource
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ get
+ {
+ return GetCachedSwitchValue(AppContextDefaultValues.SwitchThrowExceptionIfDisposedCancellationTokenSource, ref _throwExceptionIfDisposedCancellationTokenSource);
+ }
+ }
+
+ private static int _preserveEventListnerObjectIdentity;
+ public static bool PreserveEventListnerObjectIdentity
+ {
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ get
+ {
+ return GetCachedSwitchValue(AppContextDefaultValues.SwitchPreserveEventListnerObjectIdentity, ref _preserveEventListnerObjectIdentity);
+ }
+ }
+
+ //
+ // Implementation details
+ //
+
+ private static bool DisableCaching { get; set; }
+
+ static AppContextSwitches()
+ {
+ bool isEnabled;
+ if (AppContext.TryGetSwitch(@"TestSwitch.LocalAppContext.DisableCaching", out isEnabled))
+ {
+ DisableCaching = isEnabled;
+ }
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ internal static bool GetCachedSwitchValue(string switchName, ref int switchValue)
+ {
+ if (switchValue < 0) return false;
+ if (switchValue > 0) return true;
+
+ return GetCachedSwitchValueInternal(switchName, ref switchValue);
+ }
+
+ private static bool GetCachedSwitchValueInternal(string switchName, ref int switchValue)
+ {
+ bool isSwitchEnabled;
+ AppContext.TryGetSwitch(switchName, out isSwitchEnabled);
+
+ if (DisableCaching)
+ {
+ return isSwitchEnabled;
+ }
+
+ switchValue = isSwitchEnabled ? 1 /*true*/ : -1 /*false*/;
+ return isSwitchEnabled;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/AppDomainSetup.cs b/mcs/class/referencesource/mscorlib/system/AppDomainSetup.cs
new file mode 100644
index 00000000000..fb850445ce3
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/AppDomainSetup.cs
@@ -0,0 +1,1431 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+/*=============================================================================
+**
+** Class: AppDomainSetup
+**
+** <OWNER>blanders</OWNER>
+**
+** Purpose: Defines the settings that the loader uses to find assemblies in an
+** AppDomain
+**
+** Date: Dec 22, 2000
+**
+=============================================================================*/
+
+namespace System {
+ using System;
+#if FEATURE_CLICKONCE
+#if !FEATURE_PAL
+ using System.Deployment.Internal.Isolation;
+ using System.Deployment.Internal.Isolation.Manifest;
+ using System.Runtime.Hosting;
+#endif
+#endif
+ using System.Runtime.CompilerServices;
+ using System.Runtime;
+ using System.Text;
+ using System.Threading;
+ using System.Runtime.InteropServices;
+ using System.Runtime.Serialization;
+ using System.Reflection;
+ using System.Security;
+ using System.Security.Permissions;
+ using System.Security.Policy;
+ using System.Globalization;
+ using Path = System.IO.Path;
+ using System.Runtime.Versioning;
+ using System.Diagnostics.Contracts;
+ using System.Collections;
+ using System.Collections.Generic;
+
+ [Serializable]
+ [ClassInterface(ClassInterfaceType.None)]
+ [System.Runtime.InteropServices.ComVisible(true)]
+ public sealed class AppDomainSetup :
+ IAppDomainSetup
+ {
+ [Serializable]
+ internal enum LoaderInformation
+ {
+ // If you add a new value, add the corresponding property
+ // to AppDomain.GetData() and SetData()'s switch statements.
+ ApplicationBaseValue = LOADER_APPLICATION_BASE,
+ ConfigurationFileValue = LOADER_CONFIGURATION_BASE,
+ DynamicBaseValue = LOADER_DYNAMIC_BASE,
+ DevPathValue = LOADER_DEVPATH,
+ ApplicationNameValue = LOADER_APPLICATION_NAME,
+ PrivateBinPathValue = LOADER_PRIVATE_PATH,
+ PrivateBinPathProbeValue = LOADER_PRIVATE_BIN_PATH_PROBE,
+ ShadowCopyDirectoriesValue = LOADER_SHADOW_COPY_DIRECTORIES,
+ ShadowCopyFilesValue = LOADER_SHADOW_COPY_FILES,
+ CachePathValue = LOADER_CACHE_PATH,
+ LicenseFileValue = LOADER_LICENSE_FILE,
+ DisallowPublisherPolicyValue = LOADER_DISALLOW_PUBLISHER_POLICY,
+ DisallowCodeDownloadValue = LOADER_DISALLOW_CODE_DOWNLOAD,
+ DisallowBindingRedirectsValue = LOADER_DISALLOW_BINDING_REDIRECTS,
+ DisallowAppBaseProbingValue = LOADER_DISALLOW_APPBASE_PROBING,
+ ConfigurationBytesValue = LOADER_CONFIGURATION_BYTES,
+ LoaderMaximum = LOADER_MAXIMUM,
+ }
+
+ // This class has an unmanaged representation so be aware you will need to make edits in vm\object.h if you change the order
+ // of these fields or add new ones.
+
+ private string[] _Entries;
+ private LoaderOptimization _LoaderOptimization;
+#pragma warning disable 169
+ private String _AppBase; // for compat with v1.1
+#pragma warning restore 169
+ [OptionalField(VersionAdded = 2)]
+ private AppDomainInitializer _AppDomainInitializer;
+ [OptionalField(VersionAdded = 2)]
+ private string[] _AppDomainInitializerArguments;
+#if FEATURE_CLICKONCE
+ [OptionalField(VersionAdded = 2)]
+ private ActivationArguments _ActivationArguments;
+#endif
+#if FEATURE_CORECLR
+ // On the CoreCLR, this contains just the name of the permission set that we install in the new appdomain.
+ // Not the ToXml().ToString() of an ApplicationTrust object.
+#endif
+ [OptionalField(VersionAdded = 2)]
+ private string _ApplicationTrust;
+ [OptionalField(VersionAdded = 2)]
+ private byte[] _ConfigurationBytes;
+#if FEATURE_COMINTEROP
+ [OptionalField(VersionAdded = 3)]
+ private bool _DisableInterfaceCache = false;
+#endif // FEATURE_COMINTEROP
+ [OptionalField(VersionAdded = 4)]
+ private string _AppDomainManagerAssembly;
+ [OptionalField(VersionAdded = 4)]
+ private string _AppDomainManagerType;
+
+#if FEATURE_APTCA
+ [OptionalField(VersionAdded = 4)]
+ private string[] _AptcaVisibleAssemblies;
+#endif
+
+ // A collection of strings used to indicate which breaking changes shouldn't be applied
+ // to an AppDomain. We only use the keys, the values are ignored.
+ [OptionalField(VersionAdded = 4)]
+ private Dictionary<string, object> _CompatFlags;
+
+ [OptionalField(VersionAdded = 5)] // This was added in .NET FX v4.5
+ private String _TargetFrameworkName;
+
+#if !FEATURE_CORECLR
+ [NonSerialized]
+ internal AppDomainSortingSetupInfo _AppDomainSortingSetupInfo;
+#endif
+
+ [OptionalField(VersionAdded = 5)] // This was added in .NET FX v4.5
+ private bool _CheckedForTargetFrameworkName;
+
+#if FEATURE_RANDOMIZED_STRING_HASHING
+ [OptionalField(VersionAdded = 5)] // This was added in .NET FX v4.5
+ private bool _UseRandomizedStringHashing;
+#endif
+
+ [SecuritySafeCritical]
+ internal AppDomainSetup(AppDomainSetup copy, bool copyDomainBoundData)
+ {
+ string[] mine = Value;
+ if(copy != null) {
+ string[] other = copy.Value;
+ int mineSize = _Entries.Length;
+ int otherSize = other.Length;
+ int size = (otherSize < mineSize) ? otherSize : mineSize;
+
+ for (int i = 0; i < size; i++)
+ mine[i] = other[i];
+
+ if (size < mineSize)
+ {
+ // This case can happen when the copy is a deserialized version of
+ // an AppDomainSetup object serialized by Everett.
+ for (int i = size; i < mineSize; i++)
+ mine[i] = null;
+ }
+
+ _LoaderOptimization = copy._LoaderOptimization;
+
+ _AppDomainInitializerArguments = copy.AppDomainInitializerArguments;
+#if FEATURE_CLICKONCE
+ _ActivationArguments = copy.ActivationArguments;
+#endif
+ _ApplicationTrust = copy._ApplicationTrust;
+ if (copyDomainBoundData)
+ _AppDomainInitializer = copy.AppDomainInitializer;
+ else
+ _AppDomainInitializer = null;
+
+ _ConfigurationBytes = copy.GetConfigurationBytes();
+#if FEATURE_COMINTEROP
+ _DisableInterfaceCache = copy._DisableInterfaceCache;
+#endif // FEATURE_COMINTEROP
+ _AppDomainManagerAssembly = copy.AppDomainManagerAssembly;
+ _AppDomainManagerType = copy.AppDomainManagerType;
+#if FEATURE_APTCA
+ _AptcaVisibleAssemblies = copy.PartialTrustVisibleAssemblies;
+#endif
+
+ if (copy._CompatFlags != null)
+ {
+ SetCompatibilitySwitches(copy._CompatFlags.Keys);
+ }
+
+#if !FEATURE_CORECLR
+ if(copy._AppDomainSortingSetupInfo != null)
+ {
+ _AppDomainSortingSetupInfo = new AppDomainSortingSetupInfo(copy._AppDomainSortingSetupInfo);
+ }
+#endif
+ _TargetFrameworkName = copy._TargetFrameworkName;
+
+#if FEATURE_RANDOMIZED_STRING_HASHING
+ _UseRandomizedStringHashing = copy._UseRandomizedStringHashing;
+#endif
+
+ }
+ else
+ _LoaderOptimization = LoaderOptimization.NotSpecified;
+ }
+
+ public AppDomainSetup()
+ {
+ _LoaderOptimization = LoaderOptimization.NotSpecified;
+ }
+
+#if FEATURE_CLICKONCE
+ // Creates an AppDomainSetup object from an application identity.
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ public AppDomainSetup (ActivationContext activationContext) : this (new ActivationArguments(activationContext)) {}
+
+ [System.Security.SecuritySafeCritical] // auto-generated
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ public AppDomainSetup (ActivationArguments activationArguments) {
+ if (activationArguments == null)
+ throw new ArgumentNullException("activationArguments");
+ Contract.EndContractBlock();
+
+ _LoaderOptimization = LoaderOptimization.NotSpecified;
+ ActivationArguments = activationArguments;
+
+ Contract.Assert(activationArguments.ActivationContext != null, "Cannot set base directory without activation context");
+ string entryPointPath = CmsUtils.GetEntryPointFullPath(activationArguments);
+ if (!String.IsNullOrEmpty(entryPointPath))
+ SetupDefaults(entryPointPath);
+ else
+ ApplicationBase = activationArguments.ActivationContext.ApplicationDirectory;
+
+ }
+#endif // !FEATURE_CLICKONCE
+
+ #if FEATURE_CORECLR
+ [System.Security.SecurityCritical] // auto-generated
+ #endif
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ internal void SetupDefaults(string imageLocation, bool imageLocationAlreadyNormalized = false) {
+ char[] sep = {'\\', '/'};
+ int i = imageLocation.LastIndexOfAny(sep);
+
+ if (i == -1) {
+ ApplicationName = imageLocation;
+ }
+ else {
+ ApplicationName = imageLocation.Substring(i+1);
+ string appBase = imageLocation.Substring(0, i+1);
+
+ if (imageLocationAlreadyNormalized)
+ Value[(int) LoaderInformation.ApplicationBaseValue] = appBase;
+ else
+ ApplicationBase = appBase;
+ }
+ ConfigurationFile = ApplicationName + AppDomainSetup.ConfigurationExtension;
+ }
+
+ internal string[] Value
+ {
+ get {
+ if( _Entries == null)
+ _Entries = new String[LOADER_MAXIMUM];
+ return _Entries;
+ }
+ }
+
+ internal String GetUnsecureApplicationBase()
+ {
+ return Value[(int) LoaderInformation.ApplicationBaseValue];
+ }
+
+ public string AppDomainManagerAssembly
+ {
+ get { return _AppDomainManagerAssembly; }
+ set { _AppDomainManagerAssembly = value; }
+ }
+
+ public string AppDomainManagerType
+ {
+ get { return _AppDomainManagerType; }
+ set { _AppDomainManagerType = value; }
+ }
+
+#if FEATURE_APTCA
+ public string[] PartialTrustVisibleAssemblies
+ {
+ get { return _AptcaVisibleAssemblies; }
+ set {
+ if (value != null) {
+ _AptcaVisibleAssemblies = (string[])value.Clone();
+ Array.Sort<string>(_AptcaVisibleAssemblies, StringComparer.OrdinalIgnoreCase);
+ }
+ else {
+ _AptcaVisibleAssemblies = null;
+ }
+ }
+ }
+#endif
+
+ public String ApplicationBase
+ {
+ #if FEATURE_CORECLR
+ [System.Security.SecurityCritical] // auto-generated
+ #else
+ [System.Security.SecuritySafeCritical]
+ #endif
+ [Pure]
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ get {
+ return VerifyDir(GetUnsecureApplicationBase(), false);
+ }
+
+ #if FEATURE_CORECLR
+ [System.Security.SecurityCritical] // auto-generated
+ #endif
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ set {
+ Value[(int) LoaderInformation.ApplicationBaseValue] = NormalizePath(value, false);
+ }
+ }
+
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ private String NormalizePath(String path, bool useAppBase)
+ {
+ if(path == null)
+ return null;
+
+ // If we add very long file name support ("\\?\") to the Path class then this is unnecesary,
+ // but we do not plan on doing this for now.
+ if (!useAppBase)
+ path = System.Security.Util.URLString.PreProcessForExtendedPathRemoval(path, false);
+
+ int len = path.Length;
+ if (len == 0)
+ return null;
+
+ bool UNCpath = false;
+
+ if ((len > 7) &&
+ (String.Compare( path, 0, "file:", 0, 5, StringComparison.OrdinalIgnoreCase) == 0)) {
+ int trim;
+
+ if (path[6] == '\\') {
+ if ((path[7] == '\\') || (path[7] == '/')) {
+
+ // Don't allow "file:\\\\", because we can't tell the difference
+ // with it for "file:\\" + "\\server" and "file:\\\" + "\localpath"
+ if ( (len > 8) &&
+ ((path[8] == '\\') || (path[8] == '/')) )
+ throw new ArgumentException(Environment.GetResourceString("Argument_InvalidPathChars"));
+
+ // file:\\\ means local path
+ else
+ trim = 8;
+ }
+
+ // file:\\ means remote server
+ else {
+ trim = 5;
+ UNCpath = true;
+ }
+ }
+
+ // local path
+ else if (path[7] == '/')
+ trim = 8;
+
+ // remote
+ else {
+ // file://\\remote
+ if ( (len > 8) && (path[7] == '\\') && (path[8] == '\\') )
+ trim = 7;
+ else { // file://remote
+ trim = 5;
+ // Create valid UNC path by changing
+ // all occurences of '/' to '\\' in path
+ System.Text.StringBuilder winPathBuilder =
+ new System.Text.StringBuilder(len);
+ for (int i = 0; i < len; i++) {
+ char c = path[i];
+ if (c == '/')
+ winPathBuilder.Append('\\');
+ else
+ winPathBuilder.Append(c);
+ }
+ path = winPathBuilder.ToString();
+ }
+ UNCpath = true;
+ }
+
+ path = path.Substring(trim);
+ len -= trim;
+ }
+
+ bool localPath;
+
+ // UNC
+ if (UNCpath ||
+ ( (len > 1) &&
+ ( (path[0] == '/') || (path[0] == '\\') ) &&
+ ( (path[1] == '/') || (path[1] == '\\') ) ))
+ localPath = false;
+
+ else {
+ int colon = path.IndexOf(':') + 1;
+
+ // protocol other than file:
+ if ((colon != 0) &&
+ (len > colon+1) &&
+ ( (path[colon] == '/') || (path[colon] == '\\') ) &&
+ ( (path[colon+1] == '/') || (path[colon+1] == '\\') ))
+ localPath = false;
+
+ else
+ localPath = true;
+ }
+
+ if (localPath)
+ {
+
+ if (useAppBase &&
+ ( (len == 1) || (path[1] != ':') )) {
+ String appBase = Value[(int) LoaderInformation.ApplicationBaseValue];
+
+ if ((appBase == null) || (appBase.Length == 0))
+ throw new MemberAccessException(Environment.GetResourceString("AppDomain_AppBaseNotSet"));
+
+ StringBuilder result = StringBuilderCache.Acquire();
+
+ bool slash = false;
+ if ((path[0] == '/') || (path[0] == '\\')) {
+ String pathRoot = Path.GetPathRoot(appBase);
+ if (pathRoot.Length == 0) { // URL
+ int index = appBase.IndexOf(":/", StringComparison.Ordinal);
+ if (index == -1)
+ index = appBase.IndexOf(":\\", StringComparison.Ordinal);
+
+ // Get past last slashes of "url:http://"
+ int urlLen = appBase.Length;
+ for (index += 1;
+ (index < urlLen) && ((appBase[index] == '/') || (appBase[index] == '\\'));
+ index++);
+
+ // Now find the next slash to get domain name
+ for(; (index < urlLen) && (appBase[index] != '/') && (appBase[index] != '\\');
+ index++);
+
+ pathRoot = appBase.Substring(0, index);
+ }
+
+ result.Append(pathRoot);
+ slash = true;
+ }
+ else
+ result.Append(appBase);
+
+ // Make sure there's a slash separator (and only one)
+ int aLen = result.Length - 1;
+ if ((result[aLen] != '/') &&
+ (result[aLen] != '\\')) {
+ if (!slash) {
+ if (appBase.IndexOf(":/", StringComparison.Ordinal) == -1)
+ result.Append('\\');
+ else
+ result.Append('/');
+ }
+ }
+ else if (slash)
+ result.Remove(aLen, 1);
+
+ result.Append(path);
+ path = StringBuilderCache.GetStringAndRelease(result);
+ }
+ else
+ path = Path.GetFullPathInternal(path);
+ }
+
+ return path;
+ }
+
+ private bool IsFilePath(String path)
+ {
+ return (path[1] == ':') || ( (path[0] == '\\') && (path[1] == '\\') );
+ }
+
+ internal static String ApplicationBaseKey
+ {
+ get {
+ return ACTAG_APP_BASE_URL;
+ }
+ }
+
+ public String ConfigurationFile
+ {
+ [System.Security.SecuritySafeCritical] // auto-generated
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ get {
+ return VerifyDir(Value[(int) LoaderInformation.ConfigurationFileValue], true);
+ }
+
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ set {
+ Value[(int) LoaderInformation.ConfigurationFileValue] = value;
+ }
+ }
+
+ // Used by the ResourceManager internally. This must not do any
+ // security checks to avoid infinite loops.
+ internal String ConfigurationFileInternal
+ {
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ get {
+ return NormalizePath(Value[(int) LoaderInformation.ConfigurationFileValue], true);
+ }
+ }
+
+ internal static String ConfigurationFileKey
+ {
+ get {
+ return ACTAG_APP_CONFIG_FILE;
+ }
+ }
+
+ public byte[] GetConfigurationBytes()
+ {
+ if (_ConfigurationBytes == null)
+ return null;
+
+ return (byte[]) _ConfigurationBytes.Clone();
+ }
+
+ public void SetConfigurationBytes(byte[] value)
+ {
+ _ConfigurationBytes = value;
+ }
+
+ private static String ConfigurationBytesKey
+ {
+ get {
+ return ACTAG_APP_CONFIG_BLOB;
+ }
+ }
+
+ // only needed by AppDomain.Setup(). Not really needed by users.
+ internal Dictionary<string, object> GetCompatibilityFlags()
+ {
+ return _CompatFlags;
+ }
+
+ public void SetCompatibilitySwitches(IEnumerable<String> switches)
+ {
+
+#if !FEATURE_CORECLR
+ if(_AppDomainSortingSetupInfo != null)
+ {
+ _AppDomainSortingSetupInfo._useV2LegacySorting = false;
+ _AppDomainSortingSetupInfo._useV4LegacySorting = false;
+ }
+#endif
+
+#if FEATURE_RANDOMIZED_STRING_HASHING
+ _UseRandomizedStringHashing = false;
+#endif
+ if (switches != null)
+ {
+ _CompatFlags = new Dictionary<string, object>();
+ foreach (String str in switches)
+ {
+#if !FEATURE_CORECLR
+ if(StringComparer.OrdinalIgnoreCase.Equals("NetFx40_Legacy20SortingBehavior", str)) {
+ if(_AppDomainSortingSetupInfo == null)
+ {
+ _AppDomainSortingSetupInfo = new AppDomainSortingSetupInfo();
+ }
+ _AppDomainSortingSetupInfo._useV2LegacySorting = true;
+ }
+
+ if(StringComparer.OrdinalIgnoreCase.Equals("NetFx45_Legacy40SortingBehavior", str)) {
+ if(_AppDomainSortingSetupInfo == null)
+ {
+ _AppDomainSortingSetupInfo = new AppDomainSortingSetupInfo();
+ }
+ _AppDomainSortingSetupInfo._useV4LegacySorting = true;
+ }
+#endif
+
+#if FEATURE_RANDOMIZED_STRING_HASHING
+ if(StringComparer.OrdinalIgnoreCase.Equals("UseRandomizedStringHashAlgorithm", str)) {
+ _UseRandomizedStringHashing = true;
+ }
+#endif
+
+ _CompatFlags.Add(str, null);
+ }
+ }
+ else
+ {
+ _CompatFlags = null;
+ }
+
+ }
+
+ // A target Framework moniker, in a format parsible by the FrameworkName class.
+ public String TargetFrameworkName {
+ get {
+ return _TargetFrameworkName;
+ }
+ set {
+ _TargetFrameworkName = value;
+ }
+ }
+
+ internal bool CheckedForTargetFrameworkName
+ {
+ get { return _CheckedForTargetFrameworkName; }
+ set { _CheckedForTargetFrameworkName = value; }
+ }
+
+#if !FEATURE_CORECLR
+ [SecurityCritical]
+ public void SetNativeFunction(string functionName, int functionVersion, IntPtr functionPointer)
+ {
+ if(functionName == null)
+ {
+ throw new ArgumentNullException("functionName");
+ }
+
+ if(functionPointer == IntPtr.Zero)
+ {
+ throw new ArgumentNullException("functionPointer");
+ }
+
+ if(String.IsNullOrWhiteSpace(functionName))
+ {
+ throw new ArgumentException(Environment.GetResourceString("Argument_NPMSInvalidName"), "functionName");
+ }
+
+ Contract.EndContractBlock();
+
+ if(functionVersion < 1)
+ {
+ throw new ArgumentException(Environment.GetResourceString("ArgumentException_MinSortingVersion", 1, functionName));
+ }
+
+ if(_AppDomainSortingSetupInfo == null)
+ {
+ _AppDomainSortingSetupInfo = new AppDomainSortingSetupInfo();
+ }
+
+ if(String.Equals(functionName, "IsNLSDefinedString", StringComparison.OrdinalIgnoreCase))
+ {
+ _AppDomainSortingSetupInfo._pfnIsNLSDefinedString = functionPointer;
+ }
+
+ if (String.Equals(functionName, "CompareStringEx", StringComparison.OrdinalIgnoreCase))
+ {
+ _AppDomainSortingSetupInfo._pfnCompareStringEx = functionPointer;
+ }
+
+ if (String.Equals(functionName, "LCMapStringEx", StringComparison.OrdinalIgnoreCase))
+ {
+ _AppDomainSortingSetupInfo._pfnLCMapStringEx = functionPointer;
+ }
+
+ if (String.Equals(functionName, "FindNLSStringEx", StringComparison.OrdinalIgnoreCase))
+ {
+ _AppDomainSortingSetupInfo._pfnFindNLSStringEx = functionPointer;
+ }
+
+ if (String.Equals(functionName, "CompareStringOrdinal", StringComparison.OrdinalIgnoreCase))
+ {
+ _AppDomainSortingSetupInfo._pfnCompareStringOrdinal = functionPointer;
+ }
+
+ if (String.Equals(functionName, "GetNLSVersionEx", StringComparison.OrdinalIgnoreCase))
+ {
+ _AppDomainSortingSetupInfo._pfnGetNLSVersionEx = functionPointer;
+ }
+
+ if (String.Equals(functionName, "FindStringOrdinal", StringComparison.OrdinalIgnoreCase))
+ {
+ _AppDomainSortingSetupInfo._pfnFindStringOrdinal = functionPointer;
+ }
+ }
+#endif
+
+ public String DynamicBase
+ {
+ [System.Security.SecuritySafeCritical] // auto-generated
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ get {
+ return VerifyDir(Value[(int) LoaderInformation.DynamicBaseValue], true);
+ }
+
+ [System.Security.SecuritySafeCritical] // auto-generated
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ set {
+ if (value == null)
+ Value[(int) LoaderInformation.DynamicBaseValue] = null;
+ else {
+ if(ApplicationName == null)
+ throw new MemberAccessException(Environment.GetResourceString("AppDomain_RequireApplicationName"));
+
+ StringBuilder s = new StringBuilder( NormalizePath(value, false) );
+ s.Append('\\');
+ string h = ParseNumbers.IntToString(ApplicationName.GetLegacyNonRandomizedHashCode(),
+ 16, 8, '0', ParseNumbers.PrintAsI4);
+ s.Append(h);
+
+ Value[(int) LoaderInformation.DynamicBaseValue] = s.ToString();
+ }
+ }
+ }
+
+ internal static String DynamicBaseKey
+ {
+ get {
+ return ACTAG_APP_DYNAMIC_BASE;
+ }
+ }
+
+
+ public bool DisallowPublisherPolicy
+ {
+ get
+ {
+ return (Value[(int) LoaderInformation.DisallowPublisherPolicyValue] != null);
+ }
+ set
+ {
+ if (value)
+ Value[(int) LoaderInformation.DisallowPublisherPolicyValue]="true";
+ else
+ Value[(int) LoaderInformation.DisallowPublisherPolicyValue]=null;
+ }
+ }
+
+
+ public bool DisallowBindingRedirects
+ {
+ get
+ {
+ return (Value[(int) LoaderInformation.DisallowBindingRedirectsValue] != null);
+ }
+ set
+ {
+ if (value)
+ Value[(int) LoaderInformation.DisallowBindingRedirectsValue] = "true";
+ else
+ Value[(int) LoaderInformation.DisallowBindingRedirectsValue] = null;
+ }
+ }
+
+ public bool DisallowCodeDownload
+ {
+ get
+ {
+ return (Value[(int) LoaderInformation.DisallowCodeDownloadValue] != null);
+ }
+ set
+ {
+ if (value)
+ Value[(int) LoaderInformation.DisallowCodeDownloadValue] = "true";
+ else
+ Value[(int) LoaderInformation.DisallowCodeDownloadValue] = null;
+ }
+ }
+
+
+ public bool DisallowApplicationBaseProbing
+ {
+ get
+ {
+ return (Value[(int) LoaderInformation.DisallowAppBaseProbingValue] != null);
+ }
+ set
+ {
+ if (value)
+ Value[(int) LoaderInformation.DisallowAppBaseProbingValue] = "true";
+ else
+ Value[(int) LoaderInformation.DisallowAppBaseProbingValue] = null;
+ }
+ }
+
+ [System.Security.SecurityCritical] // auto-generated
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ private String VerifyDir(String dir, bool normalize)
+ {
+ if (dir != null) {
+ if (dir.Length == 0)
+ dir = null;
+ else {
+ if (normalize)
+ dir = NormalizePath(dir, true);
+
+ // The only way AppDomainSetup is exposed in coreclr is through the AppDomainManager
+ // and the AppDomainManager is a SecurityCritical type. Also, all callers of callstacks
+ // leading from VerifyDir are SecurityCritical. So we can remove the Demand because
+ // we have validated that all callers are SecurityCritical
+#if !FEATURE_CORECLR
+ if (IsFilePath(dir))
+ new FileIOPermission( FileIOPermissionAccess.PathDiscovery, dir ).Demand();
+#endif // !FEATURE_CORECLR
+ }
+ }
+
+ return dir;
+ }
+
+ [System.Security.SecurityCritical] // auto-generated
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ private void VerifyDirList(String dirs)
+ {
+ if (dirs != null) {
+ String[] dirArray = dirs.Split(';');
+ int len = dirArray.Length;
+
+ for (int i = 0; i < len; i++)
+ VerifyDir(dirArray[i], true);
+ }
+ }
+
+ internal String DeveloperPath
+ {
+ [System.Security.SecurityCritical] // auto-generated
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ get {
+ String dirs = Value[(int) LoaderInformation.DevPathValue];
+ VerifyDirList(dirs);
+ return dirs;
+ }
+
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ set {
+ if(value == null)
+ Value[(int) LoaderInformation.DevPathValue] = null;
+ else {
+ String[] directories = value.Split(';');
+ int size = directories.Length;
+ StringBuilder newPath = StringBuilderCache.Acquire();
+ bool fDelimiter = false;
+
+ for(int i = 0; i < size; i++) {
+ if(directories[i].Length != 0) {
+ if(fDelimiter)
+ newPath.Append(";");
+ else
+ fDelimiter = true;
+
+ newPath.Append(Path.GetFullPathInternal(directories[i]));
+ }
+ }
+
+ String newString = StringBuilderCache.GetStringAndRelease(newPath);
+ if (newString.Length == 0)
+ Value[(int) LoaderInformation.DevPathValue] = null;
+ else
+ Value[(int) LoaderInformation.DevPathValue] = newString;
+ }
+ }
+ }
+
+ internal static String DisallowPublisherPolicyKey
+ {
+ get
+ {
+ return ACTAG_DISALLOW_APPLYPUBLISHERPOLICY;
+ }
+ }
+
+ internal static String DisallowCodeDownloadKey
+ {
+ get
+ {
+ return ACTAG_CODE_DOWNLOAD_DISABLED;
+ }
+ }
+
+ internal static String DisallowBindingRedirectsKey
+ {
+ get
+ {
+ return ACTAG_DISALLOW_APP_BINDING_REDIRECTS;
+ }
+ }
+
+ internal static String DeveloperPathKey
+ {
+ get {
+ return ACTAG_DEV_PATH;
+ }
+ }
+
+ internal static String DisallowAppBaseProbingKey
+ {
+ get
+ {
+ return ACTAG_DISALLOW_APP_BASE_PROBING;
+ }
+ }
+
+ public String ApplicationName
+ {
+ get {
+ return Value[(int) LoaderInformation.ApplicationNameValue];
+ }
+
+ set {
+ Value[(int) LoaderInformation.ApplicationNameValue] = value;
+ }
+ }
+
+ internal static String ApplicationNameKey
+ {
+ get {
+ return ACTAG_APP_NAME;
+ }
+ }
+
+ [XmlIgnoreMember]
+ public AppDomainInitializer AppDomainInitializer
+ {
+ get {
+ return _AppDomainInitializer;
+ }
+
+ set {
+ _AppDomainInitializer = value;
+ }
+ }
+ public string[] AppDomainInitializerArguments
+ {
+ get {
+ return _AppDomainInitializerArguments;
+ }
+
+ set {
+ _AppDomainInitializerArguments = value;
+ }
+ }
+
+#if FEATURE_CLICKONCE
+ [XmlIgnoreMember]
+ public ActivationArguments ActivationArguments {
+ [Pure]
+ get {
+ return _ActivationArguments;
+ }
+ set {
+ _ActivationArguments = value;
+ }
+ }
+#endif // !FEATURE_CLICKONCE
+
+ internal ApplicationTrust InternalGetApplicationTrust()
+ {
+
+ if (_ApplicationTrust == null) return null;
+
+
+#if FEATURE_CORECLR
+ ApplicationTrust grantSet = new ApplicationTrust(NamedPermissionSet.GetBuiltInSet(_ApplicationTrust));
+#else
+ SecurityElement securityElement = SecurityElement.FromString(_ApplicationTrust);
+ ApplicationTrust grantSet = new ApplicationTrust();
+ grantSet.FromXml(securityElement);
+#endif
+ return grantSet;
+ }
+
+#if FEATURE_CORECLR
+ internal void InternalSetApplicationTrust(String permissionSetName)
+ {
+ _ApplicationTrust = permissionSetName;
+ }
+#else
+ internal void InternalSetApplicationTrust(ApplicationTrust value)
+ {
+ if (value != null)
+ {
+ _ApplicationTrust = value.ToXml().ToString();
+ }
+ else
+ {
+ _ApplicationTrust = null;
+ }
+ }
+#endif
+
+#if FEATURE_CLICKONCE
+ [XmlIgnoreMember]
+ public ApplicationTrust ApplicationTrust
+ {
+ get {
+ return InternalGetApplicationTrust();
+ }
+ set {
+ InternalSetApplicationTrust(value);
+ }
+ }
+#else // FEATURE_CLICKONCE
+ [XmlIgnoreMember]
+ internal ApplicationTrust ApplicationTrust
+ {
+ get {
+ return InternalGetApplicationTrust();
+ }
+#if !FEATURE_CORECLR
+ set {
+ InternalSetApplicationTrust(value);
+ }
+#endif
+ }
+#endif // FEATURE_CLICKONCE
+
+ public String PrivateBinPath
+ {
+ [System.Security.SecuritySafeCritical] // auto-generated
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ get {
+ String dirs = Value[(int) LoaderInformation.PrivateBinPathValue];
+ VerifyDirList(dirs);
+ return dirs;
+ }
+
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ set {
+ Value[(int) LoaderInformation.PrivateBinPathValue] = value;
+ }
+ }
+
+ internal static String PrivateBinPathKey
+ {
+ get {
+ return ACTAG_APP_PRIVATE_BINPATH;
+ }
+ }
+
+
+ public String PrivateBinPathProbe
+ {
+ get {
+ return Value[(int) LoaderInformation.PrivateBinPathProbeValue];
+ }
+
+ set {
+ Value[(int) LoaderInformation.PrivateBinPathProbeValue] = value;
+ }
+ }
+
+ internal static String PrivateBinPathProbeKey
+ {
+ get {
+ return ACTAG_BINPATH_PROBE_ONLY;
+ }
+ }
+
+ public String ShadowCopyDirectories
+ {
+ [System.Security.SecuritySafeCritical] // auto-generated
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ get {
+ String dirs = Value[(int) LoaderInformation.ShadowCopyDirectoriesValue];
+ VerifyDirList(dirs);
+ return dirs;
+ }
+
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ set {
+ Value[(int) LoaderInformation.ShadowCopyDirectoriesValue] = value;
+ }
+ }
+
+ internal static String ShadowCopyDirectoriesKey
+ {
+ get {
+ return ACTAG_APP_SHADOW_COPY_DIRS;
+ }
+ }
+
+ public String ShadowCopyFiles
+ {
+ get {
+ return Value[(int) LoaderInformation.ShadowCopyFilesValue];
+ }
+
+ set {
+ if((value != null) &&
+ (String.Compare(value, "true", StringComparison.OrdinalIgnoreCase) == 0))
+ Value[(int) LoaderInformation.ShadowCopyFilesValue] = value;
+ else
+ Value[(int) LoaderInformation.ShadowCopyFilesValue] = null;
+ }
+ }
+
+ internal static String ShadowCopyFilesKey
+ {
+ get {
+ return ACTAG_FORCE_CACHE_INSTALL;
+ }
+ }
+
+ public String CachePath
+ {
+ [System.Security.SecuritySafeCritical] // auto-generated
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ get {
+ return VerifyDir(Value[(int) LoaderInformation.CachePathValue], false);
+ }
+
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ set {
+ Value[(int) LoaderInformation.CachePathValue] = NormalizePath(value, false);
+ }
+ }
+
+ internal static String CachePathKey
+ {
+ get {
+ return ACTAG_APP_CACHE_BASE;
+ }
+ }
+
+ public String LicenseFile
+ {
+ [System.Security.SecuritySafeCritical] // auto-generated
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ get {
+ return VerifyDir(Value[(int) LoaderInformation.LicenseFileValue], true);
+ }
+
+ [ResourceExposure(ResourceScope.Machine)]
+ [ResourceConsumption(ResourceScope.Machine)]
+ set {
+ Value[(int) LoaderInformation.LicenseFileValue] = value;
+ }
+ }
+
+ public LoaderOptimization LoaderOptimization
+ {
+ get {
+ return _LoaderOptimization;
+ }
+
+ set {
+ _LoaderOptimization = value;
+ }
+ }
+
+ internal static string LoaderOptimizationKey
+ {
+ get {
+ return LOADER_OPTIMIZATION;
+ }
+ }
+
+ internal static string ConfigurationExtension
+ {
+ get {
+ return CONFIGURATION_EXTENSION;
+ }
+ }
+
+ internal static String PrivateBinPathEnvironmentVariable
+ {
+ get {
+ return APPENV_RELATIVEPATH;
+ }
+ }
+
+ internal static string RuntimeConfigurationFile
+ {
+ get {
+ return MACHINE_CONFIGURATION_FILE;
+ }
+ }
+
+ internal static string MachineConfigKey
+ {
+ get {
+ return ACTAG_MACHINE_CONFIG;
+ }
+ }
+
+ internal static string HostBindingKey
+ {
+ get {
+ return ACTAG_HOST_CONFIG_FILE;
+ }
+ }
+
+#if FEATURE_FUSION
+ [SecurityCritical]
+ [ResourceExposure(ResourceScope.None)]
+ [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
+ internal bool UpdateContextPropertyIfNeeded(LoaderInformation FieldValue, String FieldKey, String UpdatedField, IntPtr fusionContext, AppDomainSetup oldADS)
+ {
+ String FieldString = Value[(int) FieldValue],
+ OldFieldString = (oldADS == null ? null : oldADS.Value[(int) FieldValue]);
+ if (FieldString != OldFieldString) { // Compare references since strings are immutable
+ UpdateContextProperty(fusionContext, FieldKey, UpdatedField == null ? FieldString : UpdatedField);
+ return true;
+ }
+
+ return false;
+ }
+
+ [SecurityCritical]
+ [ResourceExposure(ResourceScope.None)]
+ [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
+ internal void UpdateBooleanContextPropertyIfNeeded(LoaderInformation FieldValue, String FieldKey, IntPtr fusionContext, AppDomainSetup oldADS)
+ {
+ if (Value[(int) FieldValue] != null)
+ UpdateContextProperty(fusionContext, FieldKey, "true");
+ else if (oldADS != null && oldADS.Value[(int) FieldValue] != null)
+ UpdateContextProperty(fusionContext, FieldKey, "false");
+ }
+
+ [SecurityCritical]
+ [ResourceExposure(ResourceScope.None)]
+ [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
+ internal static bool ByteArraysAreDifferent(Byte[] A, Byte[] B)
+ {
+ int length = A.Length;
+ if (length != B.Length)
+ return true;
+
+ for(int i = 0; i < length; i++) {
+ if (A[i] != B[i])
+ return true;
+ }
+
+ return false;
+ }
+
+ [System.Security.SecurityCritical] // auto-generated
+ [ResourceExposure(ResourceScope.None)]
+ [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
+ internal static void UpdateByteArrayContextPropertyIfNeeded(Byte[] NewArray, Byte[] OldArray, String FieldKey, IntPtr fusionContext)
+ {
+ if ((NewArray != null && OldArray == null) ||
+ (NewArray == null && OldArray != null) ||
+ (NewArray != null && OldArray != null && ByteArraysAreDifferent(NewArray, OldArray)))
+ UpdateContextProperty(fusionContext, FieldKey, NewArray);
+ }
+
+ [System.Security.SecurityCritical] // auto-generated
+ [ResourceExposure(ResourceScope.None)]
+ [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
+ internal void SetupFusionContext(IntPtr fusionContext, AppDomainSetup oldADS)
+ {
+ UpdateContextPropertyIfNeeded(LoaderInformation.ApplicationBaseValue, ApplicationBaseKey, null, fusionContext, oldADS);
+ UpdateContextPropertyIfNeeded(LoaderInformation.PrivateBinPathValue, PrivateBinPathKey, null, fusionContext, oldADS);
+ UpdateContextPropertyIfNeeded(LoaderInformation.DevPathValue, DeveloperPathKey, null, fusionContext, oldADS);
+
+ UpdateBooleanContextPropertyIfNeeded(LoaderInformation.DisallowPublisherPolicyValue, DisallowPublisherPolicyKey, fusionContext, oldADS);
+ UpdateBooleanContextPropertyIfNeeded(LoaderInformation.DisallowCodeDownloadValue, DisallowCodeDownloadKey, fusionContext, oldADS);
+ UpdateBooleanContextPropertyIfNeeded(LoaderInformation.DisallowBindingRedirectsValue, DisallowBindingRedirectsKey, fusionContext, oldADS);
+ UpdateBooleanContextPropertyIfNeeded(LoaderInformation.DisallowAppBaseProbingValue, DisallowAppBaseProbingKey, fusionContext, oldADS);
+
+ if(UpdateContextPropertyIfNeeded(LoaderInformation.ShadowCopyFilesValue, ShadowCopyFilesKey, ShadowCopyFiles, fusionContext, oldADS)) {
+
+ // If we are asking for shadow copy directories then default to
+ // only to the ones that are in the private bin path.
+ if(Value[(int) LoaderInformation.ShadowCopyDirectoriesValue] == null)
+ ShadowCopyDirectories = BuildShadowCopyDirectories();
+
+ UpdateContextPropertyIfNeeded(LoaderInformation.ShadowCopyDirectoriesValue, ShadowCopyDirectoriesKey, null, fusionContext, oldADS);
+ }
+
+ UpdateContextPropertyIfNeeded(LoaderInformation.CachePathValue, CachePathKey, null, fusionContext, oldADS);
+ UpdateContextPropertyIfNeeded(LoaderInformation.PrivateBinPathProbeValue, PrivateBinPathProbeKey, PrivateBinPathProbe, fusionContext, oldADS);
+ UpdateContextPropertyIfNeeded(LoaderInformation.ConfigurationFileValue, ConfigurationFileKey, null, fusionContext, oldADS);
+
+ UpdateByteArrayContextPropertyIfNeeded(_ConfigurationBytes, oldADS == null ? null : oldADS.GetConfigurationBytes(), ConfigurationBytesKey, fusionContext);
+
+ UpdateContextPropertyIfNeeded(LoaderInformation.ApplicationNameValue, ApplicationNameKey, ApplicationName, fusionContext, oldADS);
+ UpdateContextPropertyIfNeeded(LoaderInformation.DynamicBaseValue, DynamicBaseKey, null, fusionContext, oldADS);
+
+ // Always add the runtime configuration file to the appdomain
+ UpdateContextProperty(fusionContext, MachineConfigKey, RuntimeEnvironment.GetRuntimeDirectoryImpl() + RuntimeConfigurationFile);
+
+ String hostBindingFile = RuntimeEnvironment.GetHostBindingFile();
+ if(hostBindingFile != null || oldADS != null) // If oldADS != null, we don't know the old value of the hostBindingFile, so we force an update even when hostBindingFile == null.
+ UpdateContextProperty(fusionContext, HostBindingKey, hostBindingFile);
+ }
+
+ [System.Security.SecurityCritical] // auto-generated
+ [ResourceExposure(ResourceScope.None)]
+ [MethodImplAttribute(MethodImplOptions.InternalCall)]
+ internal static extern void UpdateContextProperty(IntPtr fusionContext, string key, Object value);
+#endif // FEATURE_FUSION
+
+ static internal int Locate(String s)
+ {
+ if(String.IsNullOrEmpty(s))
+ return -1;
+#if FEATURE_FUSION
+
+ // verify assumptions hardcoded into the switch below
+ Contract.Assert('A' == ACTAG_APP_CONFIG_FILE[0] , "Assumption violated");
+ Contract.Assert('A' == ACTAG_APP_NAME[0] , "Assumption violated");
+ Contract.Assert('A' == ACTAG_APP_BASE_URL[0] , "Assumption violated");
+ Contract.Assert('B' == ACTAG_BINPATH_PROBE_ONLY[0] , "Assumption violated");
+ Contract.Assert('C' == ACTAG_APP_CACHE_BASE[0] , "Assumption violated");
+ Contract.Assert('D' == ACTAG_DEV_PATH[0] , "Assumption violated");
+ Contract.Assert('D' == ACTAG_APP_DYNAMIC_BASE[0] , "Assumption violated");
+ Contract.Assert('F' == ACTAG_FORCE_CACHE_INSTALL[0] , "Assumption violated");
+ Contract.Assert('L' == LICENSE_FILE[0] , "Assumption violated");
+ Contract.Assert('P' == ACTAG_APP_PRIVATE_BINPATH[0] , "Assumption violated");
+ Contract.Assert('S' == ACTAG_APP_SHADOW_COPY_DIRS[0], "Assumption violated");
+ Contract.Assert('D' == ACTAG_DISALLOW_APPLYPUBLISHERPOLICY[0], "Assumption violated");
+ Contract.Assert('C' == ACTAG_CODE_DOWNLOAD_DISABLED[0], "Assumption violated");
+ Contract.Assert('D' == ACTAG_DISALLOW_APP_BINDING_REDIRECTS[0], "Assumption violated");
+ Contract.Assert('D' == ACTAG_DISALLOW_APP_BASE_PROBING[0], "Assumption violated");
+ Contract.Assert('A' == ACTAG_APP_CONFIG_BLOB[0], "Assumption violated");
+
+ switch (s[0]) {
+ case 'A':
+ if (s == ACTAG_APP_CONFIG_FILE) return (int)LoaderInformation.ConfigurationFileValue;
+ if (s == ACTAG_APP_NAME) return (int)LoaderInformation.ApplicationNameValue;
+ if (s == ACTAG_APP_BASE_URL) return (int)LoaderInformation.ApplicationBaseValue;
+ if (s == ACTAG_APP_CONFIG_BLOB) return (int)LoaderInformation.ConfigurationBytesValue;
+ break;
+ case 'B':
+ if (s == ACTAG_BINPATH_PROBE_ONLY) return (int)LoaderInformation.PrivateBinPathProbeValue;
+ break;
+ case 'C':
+ if (s == ACTAG_APP_CACHE_BASE) return (int)LoaderInformation.CachePathValue;
+ if (s == ACTAG_CODE_DOWNLOAD_DISABLED) return (int)LoaderInformation.DisallowCodeDownloadValue;
+ break;
+ case 'D':
+ if (s == ACTAG_DEV_PATH) return (int)LoaderInformation.DevPathValue;
+ if (s == ACTAG_APP_DYNAMIC_BASE) return (int)LoaderInformation.DynamicBaseValue;
+ if (s == ACTAG_DISALLOW_APPLYPUBLISHERPOLICY) return (int)LoaderInformation.DisallowPublisherPolicyValue;
+ if (s == ACTAG_DISALLOW_APP_BINDING_REDIRECTS) return (int)LoaderInformation.DisallowBindingRedirectsValue;
+ if (s == ACTAG_DISALLOW_APP_BASE_PROBING) return (int)LoaderInformation.DisallowAppBaseProbingValue;
+ break;
+ case 'F':
+ if (s == ACTAG_FORCE_CACHE_INSTALL) return (int)LoaderInformation.ShadowCopyFilesValue;
+ break;
+ case 'L':
+ if (s == LICENSE_FILE) return (int)LoaderInformation.LicenseFileValue;
+ break;
+ case 'P':
+ if (s == ACTAG_APP_PRIVATE_BINPATH) return (int)LoaderInformation.PrivateBinPathValue;
+ break;
+ case 'S':
+ if (s == ACTAG_APP_SHADOW_COPY_DIRS) return (int)LoaderInformation.ShadowCopyDirectoriesValue;
+ break;
+ }
+#else
+ Contract.Assert('A' == ACTAG_APP_BASE_URL[0] , "Assumption violated");
+ if (s[0]=='A' && s == ACTAG_APP_BASE_URL)
+ return (int)LoaderInformation.ApplicationBaseValue;
+
+#endif //FEATURE_FUSION
+
+ return -1;
+ }
+#if FEATURE_FUSION
+ private string BuildShadowCopyDirectories()
+ {
+ // Default to only to the ones that are in the private bin path.
+ String binPath = Value[(int) LoaderInformation.PrivateBinPathValue];
+ if(binPath == null)
+ return null;
+
+ StringBuilder result = StringBuilderCache.Acquire();
+ String appBase = Value[(int) LoaderInformation.ApplicationBaseValue];
+ if(appBase != null) {
+ char[] sep = {';'};
+ string[] directories = binPath.Split(sep);
+ int size = directories.Length;
+ bool appendSlash = !( (appBase[appBase.Length-1] == '/') ||
+ (appBase[appBase.Length-1] == '\\') );
+
+ if (size == 0) {
+ result.Append(appBase);
+ if (appendSlash)
+ result.Append('\\');
+ result.Append(binPath);
+ }
+ else {
+ for(int i = 0; i < size; i++) {
+ result.Append(appBase);
+ if (appendSlash)
+ result.Append('\\');
+ result.Append(directories[i]);
+
+ if (i < size-1)
+ result.Append(';');
+ }
+ }
+ }
+
+ return StringBuilderCache.GetStringAndRelease(result);
+ }
+#endif // FEATURE_FUSION
+
+#if FEATURE_COMINTEROP
+ public bool SandboxInterop
+ {
+ get
+ {
+ return _DisableInterfaceCache;
+ }
+ set
+ {
+ _DisableInterfaceCache = value;
+ }
+ }
+#endif // FEATURE_COMINTEROP
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/FormattableString.cs b/mcs/class/referencesource/mscorlib/system/FormattableString.cs
new file mode 100644
index 00000000000..c08054f3dcd
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/FormattableString.cs
@@ -0,0 +1,82 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+/*============================================================
+**
+** Class: FormattableString
+**
+**
+** Purpose: implementation of the FormattableString
+** class.
+**
+===========================================================*/
+namespace System
+{
+ /// <summary>
+ /// A composite format string along with the arguments to be formatted. An instance of this
+ /// type may result from the use of the C# or VB language primitive "interpolated string".
+ /// </summary>
+ public abstract class FormattableString : IFormattable
+ {
+ /// <summary>
+ /// The composite format string.
+ /// </summary>
+ public abstract string Format { get; }
+
+ /// <summary>
+ /// Returns an object array that contains zero or more objects to format. Clients should not
+ /// mutate the contents of the array.
+ /// </summary>
+ public abstract object[] GetArguments();
+
+ /// <summary>
+ /// The number of arguments to be formatted.
+ /// </summary>
+ public abstract int ArgumentCount { get; }
+
+ /// <summary>
+ /// Returns one argument to be formatted from argument position <paramref name="index"/>.
+ /// </summary>
+ public abstract object GetArgument(int index);
+
+ /// <summary>
+ /// Format to a string using the given culture.
+ /// </summary>
+ public abstract string ToString(IFormatProvider formatProvider);
+
+ string IFormattable.ToString(string ignored, IFormatProvider formatProvider)
+ {
+ return ToString(formatProvider);
+ }
+
+ /// <summary>
+ /// Format the given object in the invariant culture. This static method may be
+ /// imported in C# by
+ /// <code>
+ /// using static System.FormattableString;
+ /// </code>.
+ /// Within the scope
+ /// of that import directive an interpolated string may be formatted in the
+ /// invariant culture by writing, for example,
+ /// <code>
+ /// Invariant($"{{ lat = {latitude}; lon = {longitude} }}")
+ /// </code>
+ /// </summary>
+ public static string Invariant(FormattableString formattable)
+ {
+ if (formattable == null)
+ {
+ throw new ArgumentNullException("formattable");
+ }
+
+ return formattable.ToString(Globalization.CultureInfo.InvariantCulture);
+ }
+
+ public override string ToString()
+ {
+ return ToString(Globalization.CultureInfo.CurrentCulture);
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/Lazy.cs b/mcs/class/referencesource/mscorlib/system/Lazy.cs
index 9b118695f89..edb3f9e9368 100644
--- a/mcs/class/referencesource/mscorlib/system/Lazy.cs
+++ b/mcs/class/referencesource/mscorlib/system/Lazy.cs
@@ -8,7 +8,7 @@
//
// Lazy.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// --------------------------------------------------------------------------------------
//
@@ -51,7 +51,7 @@ namespace System
/// </remarks>
[Serializable]
[ComVisible(false)]
-#if !FEATURE_CORECLR && !FEATURE_NETCORE
+#if !FEATURE_CORECLR
[HostProtection(Synchronization = true, ExternalThreading = true)]
#endif
[DebuggerTypeProxy(typeof(System_LazyDebugView<>))]
@@ -283,9 +283,6 @@ namespace System
/// </remarks>
public bool IsValueCreated
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
return m_boxed != null && m_boxed is Boxed;
@@ -434,7 +431,7 @@ namespace System
}
else if (factory == ALREADY_INVOKED_SENTINEL)
{
- // Another thread ----d with us and beat us to successfully invoke the factory.
+ // Another thread raced with us and beat us to successfully invoke the factory.
return null;
}
boxed = new Boxed(factory());
diff --git a/mcs/class/referencesource/mscorlib/system/action.cs b/mcs/class/referencesource/mscorlib/system/action.cs
index eec39f8ab62..4cb94eb5e3f 100644
--- a/mcs/class/referencesource/mscorlib/system/action.cs
+++ b/mcs/class/referencesource/mscorlib/system/action.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>jfree</OWNER>
//
namespace System {
diff --git a/mcs/class/referencesource/mscorlib/system/activator.cs b/mcs/class/referencesource/mscorlib/system/activator.cs
index a0afe0c2ed9..758e9681363 100644
--- a/mcs/class/referencesource/mscorlib/system/activator.cs
+++ b/mcs/class/referencesource/mscorlib/system/activator.cs
@@ -31,8 +31,7 @@ namespace System {
using AssemblyHashAlgorithm = System.Configuration.Assemblies.AssemblyHashAlgorithm;
using System.Runtime.Versioning;
using System.Diagnostics.Contracts;
- using System.Diagnostics.Tracing;
-
+
// Only statics, does not need to be marked with the serializable attribute
[ClassInterface(ClassInterfaceType.None)]
[ComDefaultInterface(typeof(_Activator))]
@@ -110,12 +109,6 @@ namespace System {
static public Object CreateInstance(Type type, params Object[] args)
{
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && type != null)
- {
- FrameworkEventSource.Log.ActivatorCreateInstance(type.GetFullNameForEtw());
- }
-#endif
return CreateInstance(type,
Activator.ConstructorDefault,
null,
@@ -138,12 +131,6 @@ namespace System {
static public Object CreateInstance(Type type)
{
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && type != null)
- {
- FrameworkEventSource.Log.ActivatorCreateInstance(type.GetFullNameForEtw());
- }
-#endif
return Activator.CreateInstance(type, false);
}
@@ -218,12 +205,7 @@ namespace System {
static public T CreateInstance<T>()
{
RuntimeType rt = typeof(T) as RuntimeType;
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && rt != null)
- {
- FrameworkEventSource.Log.ActivatorCreateInstanceT(rt.GetFullNameForEtw());
- }
-#endif
+
// This is a hack to maintain compatibility with V2. Without this we would throw a NotSupportedException for void[].
// Array, Ref, and Pointer types don't have default constructors.
if (rt.HasElementType)
@@ -732,6 +714,7 @@ namespace System {
#endif
}
+#if !FEATURE_CORECLR
void _Activator.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -753,6 +736,7 @@ namespace System {
{
throw new NotImplementedException();
}
+#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/appdomain.cs b/mcs/class/referencesource/mscorlib/system/appdomain.cs
index de54d4d62c3..897696699cd 100644
--- a/mcs/class/referencesource/mscorlib/system/appdomain.cs
+++ b/mcs/class/referencesource/mscorlib/system/appdomain.cs
@@ -7,7 +7,7 @@
**
** Class: AppDomain
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Domains represent an application within the runtime. Objects can
@@ -362,17 +362,12 @@ namespace System {
#if FEATURE_APPX
private static APPX_FLAGS s_flags;
- private enum PROFILE_API_CHECK_FLAGS : uint
- {
- PROFILE_API_CHECK_FLAGS_NONE = 0,
- PROFILE_API_CHECK_FLAGS_ALWAYS = 1,
- PROFILE_API_CHECK_FLAGS_NEVER = 2,
- }
-
+ //
+ // Keep in async with vm\appdomainnative.cpp
+ //
[Flags]
private enum APPX_FLAGS
{
- APPX_FLAGS_UNKNOWN = 0x00,
APPX_FLAGS_INITIALIZED = 0x01,
APPX_FLAGS_APPX_MODEL = 0x02,
@@ -390,40 +385,10 @@ namespace System {
[SecuritySafeCritical]
get
{
- if ((s_flags & APPX_FLAGS.APPX_FLAGS_INITIALIZED) == 0)
- {
- APPX_FLAGS flags = APPX_FLAGS.APPX_FLAGS_UNKNOWN;
-
- if (nIsAppXModel())
- {
- flags |= APPX_FLAGS.APPX_FLAGS_APPX_MODEL;
-
- if (nIsAppXDesignMode())
- flags |= APPX_FLAGS.APPX_FLAGS_APPX_DESIGN_MODE;
- else
- flags |= APPX_FLAGS.APPX_FLAGS_API_CHECK;
-
- if (nIsAppXNGen())
- flags |= APPX_FLAGS.APPX_FLAGS_APPX_NGEN;
- }
-
- PROFILE_API_CHECK_FLAGS apicheck = AppDomain.nGetWindows8ProfileAPICheckFlag();
-
- switch (apicheck)
- {
- case PROFILE_API_CHECK_FLAGS.PROFILE_API_CHECK_FLAGS_ALWAYS:
- flags |= APPX_FLAGS.APPX_FLAGS_API_CHECK;
- break;
- case PROFILE_API_CHECK_FLAGS.PROFILE_API_CHECK_FLAGS_NEVER:
- flags &= ~APPX_FLAGS.APPX_FLAGS_API_CHECK;
- break;
- default:
- break;
- }
-
- s_flags = flags | APPX_FLAGS.APPX_FLAGS_INITIALIZED;
- }
+ if (s_flags == 0)
+ s_flags = nGetAppXFlags();
+ Contract.Assert(s_flags != 0);
return s_flags;
}
}
@@ -447,13 +412,6 @@ namespace System {
}
#endif // FEATURE_APPX
- // this method is required so Object.GetType is not made virtual by the compiler
- // _AppDomain.GetType()
- public new Type GetType()
- {
- return base.GetType();
- }
-
[DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
[SecurityCritical]
[ResourceExposure(ResourceScope.None)]
@@ -466,29 +424,8 @@ namespace System {
[SecurityCritical]
[ResourceExposure(ResourceScope.None)]
[SuppressUnmanagedCodeSecurity]
- [return: MarshalAs(UnmanagedType.U4)]
- private static extern PROFILE_API_CHECK_FLAGS nGetWindows8ProfileAPICheckFlag();
-
- [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
- [SecurityCritical]
- [ResourceExposure(ResourceScope.None)]
- [SuppressUnmanagedCodeSecurity]
- [return: MarshalAs(UnmanagedType.Bool)]
- private static extern bool nIsAppXModel();
-
- [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
- [SecurityCritical]
- [ResourceExposure(ResourceScope.None)]
- [SuppressUnmanagedCodeSecurity]
- [return: MarshalAs(UnmanagedType.Bool)]
- private static extern bool nIsAppXDesignMode();
-
- [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
- [SecurityCritical]
- [ResourceExposure(ResourceScope.None)]
- [SuppressUnmanagedCodeSecurity]
- [return: MarshalAs(UnmanagedType.Bool)]
- private static extern bool nIsAppXNGen();
+ [return: MarshalAs(UnmanagedType.I4)]
+ private static extern APPX_FLAGS nGetAppXFlags();
#endif
[DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
@@ -562,46 +499,33 @@ namespace System {
AppDomainSetup adSetup = FusionStore;
#if FEATURE_VERSIONING
- if (String.IsNullOrEmpty(adSetup.GetUnsecureManifestFilePath()))
+ String trustedPlatformAssemblies = (String)(GetData("TRUSTED_PLATFORM_ASSEMBLIES"));
+ if (trustedPlatformAssemblies != null)
{
- String trustedPlatformAssemblies = (String)(GetData("TRUSTED_PLATFORM_ASSEMBLIES"));
- if (trustedPlatformAssemblies != null)
+ String platformResourceRoots = (String)(GetData("PLATFORM_RESOURCE_ROOTS"));
+ if (platformResourceRoots == null)
{
- String platformResourceRoots = (String)(GetData("PLATFORM_RESOURCE_ROOTS"));
- if (platformResourceRoots == null)
- {
- platformResourceRoots = String.Empty;
- }
+ platformResourceRoots = String.Empty;
+ }
- String appPaths = (String)(GetData("APP_PATHS"));
- if (appPaths == null)
- {
- appPaths = String.Empty;
- }
+ String appPaths = (String)(GetData("APP_PATHS"));
+ if (appPaths == null)
+ {
+ appPaths = String.Empty;
+ }
- String appNiPaths = (String)(GetData("APP_NI_PATHS"));
- if (appNiPaths == null)
- {
- appNiPaths = String.Empty;
- }
- SetupBindingPaths(trustedPlatformAssemblies, platformResourceRoots, appPaths, appNiPaths);
+ String appNiPaths = (String)(GetData("APP_NI_PATHS"));
+ if (appNiPaths == null)
+ {
+ appNiPaths = String.Empty;
}
- } else
- {
- // Chicken-Egg problem: At this point, security is not yet fully up.
- // We need this information to power up the manifest to enable security.
- String manifestFilePath = adSetup.GetUnsecureManifestFilePath();
- bool fIsAssemblyPath = false;
- String applicationBase = adSetup.GetUnsecureApplicationBase();
- String applicationName = adSetup.ApplicationName;
-
- if ((manifestFilePath == null) && (applicationBase != null) && (applicationName != null))
+
+ String appLocalWinMD = (String)(GetData("APP_LOCAL_WINMETADATA"));
+ if (appLocalWinMD == null)
{
- manifestFilePath = Path.Combine(applicationBase, applicationName);
- fIsAssemblyPath = true;
+ appLocalWinMD = String.Empty;
}
-
- SetupManifest(manifestFilePath, fIsAssemblyPath);
+ SetupBindingPaths(trustedPlatformAssemblies, platformResourceRoots, appPaths, appNiPaths, appLocalWinMD);
}
#endif // FEATURE_VERSIONING
@@ -698,7 +622,6 @@ namespace System {
{
String targetFrameworkName = _FusionStore.TargetFrameworkName;
-#if !FEATURE_CORECLR // Assembly.GetEntryAssembly doesn't make sense nor exist on Silverlight
if (targetFrameworkName == null && IsDefaultAppDomain() && !_FusionStore.CheckedForTargetFrameworkName)
{
// This should only be run in the default appdomain. All other appdomains should have
@@ -716,7 +639,7 @@ namespace System {
}
_FusionStore.CheckedForTargetFrameworkName = true;
}
-#endif // !FEATURE_CORECLR
+
return targetFrameworkName;
}
@@ -2240,9 +2163,11 @@ namespace System {
get { return nGetFriendlyName(); }
}
-#if FEATURE_FUSION
public String BaseDirectory
{
+#if FEATURE_CORECLR
+ [System.Security.SecurityCritical]
+#endif
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
get {
@@ -2250,6 +2175,7 @@ namespace System {
}
}
+#if FEATURE_FUSION
public String RelativeSearchPath
{
[ResourceExposure(ResourceScope.Machine)]
@@ -2307,8 +2233,6 @@ namespace System {
return nGetAssemblies(true /* forIntrospection */);
}
-
-
[System.Security.SecuritySafeCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
@@ -2500,11 +2424,6 @@ namespace System {
case (int) AppDomainSetup.LoaderInformation.ConfigurationBytesValue:
FusionStore.SetConfigurationBytes((byte[]) data);
break;
-#if FEATURE_VERSIONING
- case (int) AppDomainSetup.LoaderInformation.ManifestFilePathValue:
- FusionStore.ManifestFilePath = (string) data;
- break;
-#endif // FEATURE_VERSIONING
default:
FusionStore.Value[key] = (string) data;
break;
@@ -2575,10 +2494,6 @@ namespace System {
return FusionStore.ApplicationBase;
case (int) AppDomainSetup.LoaderInformation.ApplicationNameValue:
return FusionStore.ApplicationName;
-#if FEATURE_VERSIONING
- case (int) AppDomainSetup.LoaderInformation.ManifestFilePathValue:
- return FusionStore.ManifestFilePath;
-#endif // FEATURE_VERSIONING
#if FEATURE_FUSION
case (int) AppDomainSetup.LoaderInformation.ConfigurationFileValue:
return FusionStore.ConfigurationFile;
@@ -3036,39 +2951,20 @@ namespace System {
#if FEATURE_VERSIONING
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- internal extern void nCreateContext(string applicationName);
+ internal extern void nCreateContext();
- [MethodImplAttribute(MethodImplOptions.InternalCall)]
- internal extern int nSetupManifest(String manifestOrAssemblyFile,
- String manifestBases,
- bool fIsAssemblyPath);
-
[System.Security.SecurityCritical]
[ResourceExposure(ResourceScope.None)]
[DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
[SuppressUnmanagedCodeSecurity]
- private static extern void nSetupBindingPaths(String trustedPlatformAssemblies, String platformResourceRoots, String appPath, String appNiPaths);
-
- #if FEATURE_CORECLR
- [System.Security.SecurityCritical] // auto-generated
- #endif
- internal int SetupManifest(String assemblyFile, bool fIsAssemblyPath)
- {
- if ((assemblyFile != null) && (assemblyFile.Length != 0))
- {
- return nSetupManifest(assemblyFile,
- FusionStore.VersioningManifestBase,
- fIsAssemblyPath);
- }
- return 0;
- }
+ private static extern void nSetupBindingPaths(String trustedPlatformAssemblies, String platformResourceRoots, String appPath, String appNiPaths, String appLocalWinMD);
#if FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
#endif
- internal void SetupBindingPaths(String trustedPlatformAssemblies, String platformResourceRoots, String appPath, String appNiPaths)
+ internal void SetupBindingPaths(String trustedPlatformAssemblies, String platformResourceRoots, String appPath, String appNiPaths, String appLocalWinMD)
{
- nSetupBindingPaths(trustedPlatformAssemblies, platformResourceRoots, appPath, appNiPaths);
+ nSetupBindingPaths(trustedPlatformAssemblies, platformResourceRoots, appPath, appNiPaths, appLocalWinMD);
}
#endif // FEATURE_VERSIONING
@@ -3246,48 +3142,6 @@ namespace System {
return null;
}
-#if FEATURE_VERSIONING
- [MethodImplAttribute(MethodImplOptions.InternalCall)]
- private extern bool nVerifyResolvedAssembly(String assemblyFullName,
- RuntimeAssembly candidateAssembly,
- bool fInspectionOnly);
-
- #if FEATURE_CORECLR
- [System.Security.SecurityCritical] // auto-generated
- #endif
- private RuntimeAssembly TryToResolveAssembly(RuntimeAssembly assembly, String assemblyFullName,
- ResolveEventHandler eventHandler,
- bool fInspectionOnly)
- {
- Delegate[] delegates = eventHandler.GetInvocationList();
- int len = delegates.Length;
- // Attempt all assembly resolve handlers before bailing out.
- // This by design can produce a number of loaded assemblies unused for the pending bind.
- for (int i = 0; i < len; i++) {
- RuntimeAssembly rtAssembly = null;
- // ---- handler exceptions to allow other handlers to proceed
- try {
- Assembly candidateAssembly =
- ((ResolveEventHandler) delegates[i])(this,
- new ResolveEventArgs(assemblyFullName, assembly));
- rtAssembly = GetRuntimeAssembly(candidateAssembly);
- }
- catch (Exception) {
- continue;
- }
- // Only accept assemblies that match the request
- if (rtAssembly != null)
- {
- if (nVerifyResolvedAssembly(assemblyFullName,
- rtAssembly,
- fInspectionOnly))
- return rtAssembly;
- }
- }
- return null;
- }
-#endif // FEATURE_VERSIONING
-
// This method is called by the VM.
[System.Security.SecurityCritical]
private RuntimeAssembly OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName)
@@ -3299,7 +3153,6 @@ namespace System {
return null;
}
-#if FEATURE_FUSION
Delegate[] ds = eventHandler.GetInvocationList();
int len = ds.Length;
for (int i = 0; i < len; i++) {
@@ -3310,11 +3163,6 @@ namespace System {
}
return null;
-#endif // FEATURE_FUSION
-
-#if FEATURE_VERSIONING
- return TryToResolveAssembly(assembly, assemblyFullName, eventHandler, false);
-#endif // FEATURE_VERSIONING
}
#if FEATURE_REFLECTION_ONLY_LOAD
@@ -3641,10 +3489,6 @@ namespace System {
#endif // FEATURE_CAS_POLICY
#if FEATURE_CORECLR
- // with Fusion gone we need another way to set those
- [MethodImplAttribute(MethodImplOptions.InternalCall)]
- private extern void nAddTrustedPath (string appBase);
-
[System.Security.SecurityCritical]
[ResourceExposure(ResourceScope.None)]
[DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
@@ -3713,7 +3557,7 @@ namespace System {
// Set loader optimization policy
#else
#if FEATURE_VERSIONING
- nCreateContext(info.ApplicationName);
+ nCreateContext();
#endif // FEATURE_VERSIONING
#endif // FEATURE_FUSION
@@ -3896,7 +3740,7 @@ namespace System {
for (int i=0; i<propertyNames.Length; i++)
{
- if(propertyNames[i]=="APPBASE") // make sure in [....] with Fusion
+ if(propertyNames[i]=="APPBASE") // make sure in sync with Fusion
{
if(propertyValues[i]==null)
throw new ArgumentNullException("APPBASE");
@@ -3907,27 +3751,14 @@ namespace System {
newSetup.ApplicationBase=Path.NormalizePath(propertyValues[i],true);
}
- else
- if(propertyNames[i]=="LOCATION_URI" && providedSecurityInfo==null)
- {
#if FEATURE_CAS_POLICY
+ else if(propertyNames[i]=="LOCATION_URI" && providedSecurityInfo==null)
+ {
providedSecurityInfo=new Evidence();
providedSecurityInfo.AddHostEvidence(new Url(propertyValues[i]));
-#endif // FEATURE_CAS_POLICY
ad.SetDataHelper(propertyNames[i],propertyValues[i],null);
}
-#if FEATURE_VERSIONING
- else if (propertyNames[i] == "MANIFEST_FILE_PATH")
- {
- newSetup.ManifestFilePath = propertyValues[i];
- ad.SetDataHelper(propertyNames[i], propertyValues[i],null);
- }
- else if (propertyNames[i] == "VERSIONING_MANIFEST_BASE")
- {
- newSetup.VersioningManifestBase = propertyValues[i];
- ad.SetDataHelper(propertyNames[i], propertyValues[i],null);
- }
-#endif // FEATURE_VERSIONING
+#endif // FEATURE_CAS_POLICY
#if FEATURE_LOADER_OPTIMIZATION
else
if(propertyNames[i]=="LOADER_OPTIMIZATION")
@@ -3946,43 +3777,6 @@ namespace System {
}
#endif // FEATURE_LOADER_OPTIMIZATION
#if FEATURE_CORECLR
- // TRUSTEDPATH is supported only by CoreCLR binder
- else
- if(propertyNames[i]=="TRUSTEDPATH")
- {
- if(propertyValues[i]==null)
- throw new ArgumentNullException("TRUSTEDPATH");
-
- StringBuilder normalisedTrustedPathList = new StringBuilder();
- foreach(string path in propertyValues[i].Split(Path.PathSeparator))
- {
-
- if( path.Length==0 ) // skip empty dirs
- continue;
-
- if (Path.IsRelative(path))
- throw new ArgumentException( Environment.GetResourceString( "Argument_AbsolutePathRequired" ) );
-
- string trustedPath=Path.NormalizePath(path,true);
- ad.nAddTrustedPath(trustedPath);
- normalisedTrustedPathList.Append(trustedPath);
- normalisedTrustedPathList.Append(Path.PathSeparator);
- }
- // Strip the last separator
- if (normalisedTrustedPathList.Length > 0)
- {
- normalisedTrustedPathList.Remove(normalisedTrustedPathList.Length - 1, 1);
- }
- ad.SetDataHelper(propertyNames[i],normalisedTrustedPathList.ToString(),null); // not supported by fusion, so set explicitly
- }
- else
- if(propertyNames[i]=="PLATFORM_ASSEMBLIES")
- {
- if(propertyValues[i]==null)
- throw new ArgumentNullException("PLATFORM_ASSEMBLIES");
-
- ad.SetDataHelper(propertyNames[i],propertyValues[i],null);
- }
else
if(propertyNames[i]=="NATIVE_DLL_SEARCH_DIRECTORIES")
{
@@ -4137,15 +3931,6 @@ namespace System {
// technically, we don't need this, newSetup refers to the same object as FusionStore
// but it's confusing since it isn't immediately obvious whether we have a ref or a copy
AppDomainSetup adSetup = ad.FusionStore;
-
-#if FEATURE_CORECLR
- // Silverlight2 implementation restriction (all hosts must specify the same PLATFORM_ASSEMBLIES list.)
- if (SharedStatics.ConflictsWithPriorPlatformList((String)(ad.GetData("PLATFORM_ASSEMBLIES"))))
- {
- throw new ArgumentOutOfRangeException("PLATFORM_ASSEMBLIES");
- }
-#endif // FEATURE_CORECLR
-
#if FEATURE_CORECLR
@@ -4209,31 +3994,6 @@ namespace System {
}
-#if FEATURE_CORECLR
- // This routine is invoked from coreclr.dll. This routine must return true
- // for "assemblyName" to be treated as a platform assembly.
- [System.Security.SecurityCritical] // auto-generated
- private static bool IsAssemblyOnHostPlatformList(String assemblyName)
- {
- AppDomain ad = AppDomain.CurrentDomain;
- String platformListString = (String)(ad.GetData("PLATFORM_ASSEMBLIES"));
- if (platformListString == null)
- {
- return false;
- }
- String[] platformList = platformListString.Split(';');
- for (int i = 0; i < platformList.Length; i++)
- {
- if (assemblyName.Equals(platformList[i], StringComparison.OrdinalIgnoreCase))
- {
- return true;
- }
- }
-
- return false;
- }
-#endif // FEATURE_CORECLR
-
#if FEATURE_APTCA
// Called from DomainAssembly in Conditional APTCA cases
[PermissionSet(SecurityAction.Assert, Unrestricted = true)]
@@ -4395,7 +4155,7 @@ namespace System {
// in via the default domain properties. That restriction could be lifted
// in a future release, at which point this assert should be removed.
//
- // This should be kept in [....] with the real externally facing filter code
+ // This should be kept in sync with the real externally facing filter code
// in CorHost2::SetPropertiesForDefaultAppDomain
BCLDebug.Assert(false, "Unexpected default domain property");
}
@@ -4530,6 +4290,7 @@ namespace System {
{
InternalSetDynamicBase(path);
}
+#endif // FEATURE_FUSION
public AppDomainSetup SetupInformation
{
@@ -4538,6 +4299,7 @@ namespace System {
}
}
+#if FEATURE_FUSION
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
@@ -4596,14 +4358,6 @@ namespace System {
FusionStore.Value[(int) AppDomainSetup.LoaderInformation.DynamicBaseValue]);
}
}
-#else // FEATURE_FUSION
- public AppDomainSetup SetupInformation
- {
- get {
- return new AppDomainSetup();
- }
- }
-
#endif // FEATURE_FUSION
[System.Security.SecurityCritical] // auto-generated
@@ -4917,10 +4671,6 @@ namespace System {
private static AppDomainSetup InternalCreateDomainSetup(String imageLocation)
{
int i = imageLocation.LastIndexOf('\\');
-#if PLATFORM_UNIX
- int j = imageLocation.LastIndexOf('/');
- i = i > j ? i : j;
-#endif
Contract.Assert(i != -1, "invalid image location");
@@ -4941,16 +4691,6 @@ namespace System {
private static AppDomain InternalCreateDomain(String imageLocation)
{
AppDomainSetup info = InternalCreateDomainSetup(imageLocation);
-#if FEATURE_VERSIONING
- String manifestFilePath = imageLocation + ".managed_manifest";
-
- // If the assembly to be validated comes with an manifest, use this for the app domain
- if (File.Exists(manifestFilePath))
- {
- info.ManifestFilePath = manifestFilePath;
- }
-#endif // FEATURE_VERSIONING
-
return CreateDomain("Validator",
null,
info);
@@ -5091,6 +4831,15 @@ namespace System {
SetupFusionStore(InternalCreateDomainSetup(imageLocation), null);
}
#endif
+
+#if !FEATURE_CORECLR
+ // this method is required so Object.GetType is not made virtual by the compiler
+ // _AppDomain.GetType()
+ public new Type GetType()
+ {
+ return base.GetType();
+ }
+
void _AppDomain.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -5112,6 +4861,7 @@ namespace System {
{
throw new NotImplementedException();
}
+#endif
}
// CallBacks provide a facility to request execution of some code
diff --git a/mcs/class/referencesource/mscorlib/system/appdomainattributes.cs b/mcs/class/referencesource/mscorlib/system/appdomainattributes.cs
index 52abb4ce80c..ec913e79703 100644
--- a/mcs/class/referencesource/mscorlib/system/appdomainattributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/appdomainattributes.cs
@@ -7,7 +7,7 @@
**
** File: AppDomainAttributes
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: For AppDomain-related custom attributes.
diff --git a/mcs/class/referencesource/mscorlib/system/appdomainmanager.cs b/mcs/class/referencesource/mscorlib/system/appdomainmanager.cs
index 7efb4ea03cb..a03842c443e 100644
--- a/mcs/class/referencesource/mscorlib/system/appdomainmanager.cs
+++ b/mcs/class/referencesource/mscorlib/system/appdomainmanager.cs
@@ -148,7 +148,6 @@ namespace System {
}
#endif // FEATURE_CAS_POLICY
-#if !FEATURE_CORECLR
[ResourceExposure(ResourceScope.None)]
[DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
private static extern void GetEntryAssembly(ObjectHandleOnStack retAssembly);
@@ -180,7 +179,6 @@ namespace System {
return m_entryAssembly;
}
}
-#endif // FEATURE_CORECLR
internal static AppDomainManager CurrentAppDomainManager {
[System.Security.SecurityCritical] // auto-generated
diff --git a/mcs/class/referencesource/mscorlib/system/appdomainunloadedexception.cs b/mcs/class/referencesource/mscorlib/system/appdomainunloadedexception.cs
index 6c21cf0bad0..b0518f6edfc 100644
--- a/mcs/class/referencesource/mscorlib/system/appdomainunloadedexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/appdomainunloadedexception.cs
@@ -7,7 +7,7 @@
**
** Class: AppDomainUnloadedException
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Exception class for attempt to access an unloaded AppDomain
diff --git a/mcs/class/referencesource/mscorlib/system/argiterator.cs b/mcs/class/referencesource/mscorlib/system/argiterator.cs
index 9edb731f19e..56b67d05cb7 100644
--- a/mcs/class/referencesource/mscorlib/system/argiterator.cs
+++ b/mcs/class/referencesource/mscorlib/system/argiterator.cs
@@ -13,7 +13,7 @@ namespace System {
// This class will not be marked serializable
// Note: This type must have the same layout as the CLR's VARARGS type in CLRVarArgs.h.
- // It also contains an inline SigPointer data structure - must keep those fields in [....].
+ // It also contains an inline SigPointer data structure - must keep those fields in sync.
[StructLayout(LayoutKind.Sequential)]
public struct ArgIterator
{
diff --git a/mcs/class/referencesource/mscorlib/system/argumentexception.cs b/mcs/class/referencesource/mscorlib/system/argumentexception.cs
index 6bf73cd1d71..2fbf9ff0867 100644
--- a/mcs/class/referencesource/mscorlib/system/argumentexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/argumentexception.cs
@@ -72,7 +72,7 @@ namespace System {
get {
String s = base.Message;
if (!String.IsNullOrEmpty(m_paramName)) {
- String resourceString = Environment.GetRuntimeResourceString("Arg_ParamName_Name", m_paramName);
+ String resourceString = Environment.GetResourceString("Arg_ParamName_Name", m_paramName);
return s + Environment.NewLine + resourceString;
}
else
diff --git a/mcs/class/referencesource/mscorlib/system/argumentoutofrangeexception.cs b/mcs/class/referencesource/mscorlib/system/argumentoutofrangeexception.cs
index d4e162c8792..2659dc9365a 100644
--- a/mcs/class/referencesource/mscorlib/system/argumentoutofrangeexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/argumentoutofrangeexception.cs
@@ -28,20 +28,14 @@ namespace System {
[Serializable]
public class ArgumentOutOfRangeException : ArgumentException, ISerializable {
-#if !FEATURE_SPLIT_RESOURCES
private static volatile String _rangeMessage;
-#endif
private Object m_actualValue;
private static String RangeMessage {
get {
-#if FEATURE_SPLIT_RESOURCES
- return Environment.GetResourceString("Arg_ArgumentOutOfRangeException");
-#else
if (_rangeMessage == null)
_rangeMessage = Environment.GetResourceString("Arg_ArgumentOutOfRangeException");
return _rangeMessage;
-#endif
}
}
@@ -80,7 +74,7 @@ namespace System {
get {
String s = base.Message;
if (m_actualValue != null) {
- String valueMessage = Environment.GetRuntimeResourceString("ArgumentOutOfRange_ActualValue", m_actualValue.ToString());
+ String valueMessage = Environment.GetResourceString("ArgumentOutOfRange_ActualValue", m_actualValue.ToString());
if (s == null)
return valueMessage;
return s + Environment.NewLine + valueMessage;
diff --git a/mcs/class/referencesource/mscorlib/system/array.cs b/mcs/class/referencesource/mscorlib/system/array.cs
index 0b0c4ee5d04..3c678360dfc 100644
--- a/mcs/class/referencesource/mscorlib/system/array.cs
+++ b/mcs/class/referencesource/mscorlib/system/array.cs
@@ -23,7 +23,6 @@ namespace System {
using System.Security;
using System.Security.Permissions;
using System.Diagnostics.Contracts;
- using System.Diagnostics.Tracing;
// Note that we make a T[] (single-dimensional w/ zero as the lower bound) implement both
// IList<U> and IReadOnlyList<U>, where T : U dynamically. See the SZArrayHelper class for details.
@@ -151,13 +150,7 @@ namespace System {
RuntimeType t = elementType.UnderlyingSystemType as RuntimeType;
if (t == null)
throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "elementType");
-
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.ArrayCreateInstance(t.GetFullNameForEtw());
- }
-#endif
+
// Check to make sure the lenghts are all positive. Note that we check this here to give
// a good exception message if they are not; however we check this again inside the execution
// engine's low level allocation function after having made a copy of the array to prevent a
@@ -216,12 +209,6 @@ namespace System {
if (t == null)
throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "elementType");
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.ArrayCreateInstance(t.GetFullNameForEtw());
- }
-#endif
// Check to make sure the lenghts are all positive. Note that we check this here to give
// a good exception message if they are not; however we check this again inside the execution
// engine's low level allocation function after having made a copy of the array to prevent a
@@ -631,8 +618,11 @@ namespace System {
// We impose limits on maximum array lenght in each dimension to allow efficient
// implementation of advanced range check elimination in future.
- // Keep in [....] with vm\gcscan.cpp and HashHelpers.MaxPrimeArrayLength.
+ // Keep in sync with vm\gcscan.cpp and HashHelpers.MaxPrimeArrayLength.
+ // The constants are defined in this method: inline SIZE_T MaxArrayLength(SIZE_T componentSize) from gcscan
+ // We have different max sizes for arrays with elements of size 1 for backwards compatibility
internal const int MaxArrayLength = 0X7FEFFFFF;
+ internal const int MaxByteArrayLength = 0x7FFFFFC7;
[ComVisible(false)]
public extern long LongLength {
@@ -680,9 +670,6 @@ namespace System {
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public extern int GetLowerBound(int dimension);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[ResourceExposure(ResourceScope.None)]
@@ -830,7 +817,7 @@ namespace System {
int ret = 0;
for (int i = (this.Length >= 8 ? this.Length - 8 : 0); i < this.Length; i++) {
- ret = CombineHashCodes(ret, comparer.GetHashCode(GetValue(0)));
+ ret = CombineHashCodes(ret, comparer.GetHashCode(GetValue(i)));
}
return ret;
@@ -1088,6 +1075,17 @@ namespace System {
this.CopyTo(array, (int) index);
}
+ [Pure]
+ [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
+ public static T[] Empty<T>()
+ {
+ Contract.Ensures(Contract.Result<T[]>() != null);
+ Contract.Ensures(Contract.Result<T[]>().Length == 0);
+ Contract.EndContractBlock();
+
+ return EmptyArray<T>.Value;
+ }
+
public static bool Exists<T>(T[] array, Predicate<T> match) {
return Array.FindIndex(array, match) != -1;
}
@@ -1831,10 +1829,10 @@ namespace System {
Contract.EndContractBlock();
if (length > 1) {
- // <STRIP>
- // TrySZSort is still faster than the generic implementation.
- // The reason is Int32.CompareTo is still expensive than just using "<" or ">".
- // </STRIP>
+ // <
+
+
+
if ( comparer == null || comparer == Comparer<T>.Default ) {
if(TrySZSort(array, null, index, index + length - 1)) {
return;
@@ -1982,6 +1980,13 @@ namespace System {
internal void Sort(int left, int length)
{
+#if FEATURE_CORECLR
+ // Since QuickSort and IntrospectiveSort produce different sorting sequence for equal keys the upgrade
+ // to IntrospectiveSort was quirked. However since the phone builds always shipped with the new sort aka
+ // IntrospectiveSort and we would want to continue using this sort moving forward CoreCLR always uses the new sort.
+
+ IntrospectiveSort(left, length);
+#else
if (BinaryCompatibility.TargetsAtLeast_Desktop_V4_5)
{
IntrospectiveSort(left, length);
@@ -1990,6 +1995,7 @@ namespace System {
{
DepthLimitedQuickSort(left, length + left - 1, IntrospectiveSortUtilities.QuickSortDepthThreshold);
}
+#endif
}
private void DepthLimitedQuickSort(int left, int right, int depthLimit)
@@ -2293,6 +2299,13 @@ namespace System {
internal void Sort(int left, int length)
{
+#if FEATURE_CORECLR
+ // Since QuickSort and IntrospectiveSort produce different sorting sequence for equal keys the upgrade
+ // to IntrospectiveSort was quirked. However since the phone builds always shipped with the new sort aka
+ // IntrospectiveSort and we would want to continue using this sort moving forward CoreCLR always uses the new sort.
+
+ IntrospectiveSort(left, length);
+#else
if (BinaryCompatibility.TargetsAtLeast_Desktop_V4_5)
{
IntrospectiveSort(left, length);
@@ -2301,6 +2314,7 @@ namespace System {
{
DepthLimitedQuickSort(left, length + left - 1, IntrospectiveSortUtilities.QuickSortDepthThreshold);
}
+#endif
}
private void DepthLimitedQuickSort(int left, int right, int depthLimit)
@@ -2724,7 +2738,6 @@ namespace System {
Contract.Assert(false, "Hey! How'd I get here?");
}
-
// -----------------------------------------------------------
// ------- Implement IEnumerable<T> interface methods --------
// -----------------------------------------------------------
@@ -2732,7 +2745,9 @@ namespace System {
internal IEnumerator<T> GetEnumerator<T>() {
//! Warning: "this" is an array, not an SZArrayHelper. See comments above
//! or you may introduce a security hole!
- return new SZGenericArrayEnumerator<T>(JitHelpers.UnsafeCast<T[]>(this));
+ T[] _this = JitHelpers.UnsafeCast<T[]>(this);
+ int length = _this.Length;
+ return length == 0 ? SZGenericArrayEnumerator<T>.Empty : new SZGenericArrayEnumerator<T>(_this, length);
}
// -----------------------------------------------------------
@@ -2839,12 +2854,17 @@ namespace System {
private T[] _array;
private int _index;
private int _endIndex; // cache array length, since it's a little slow.
-
- internal SZGenericArrayEnumerator(T[] array) {
- Contract.Assert(array.Rank == 1 && array.GetLowerBound(0) == 0, "SZArrayEnumerator<T> only works on single dimension arrays w/ a lower bound of zero.");
+
+ // Passing -1 for endIndex so that MoveNext always returns false without mutating _index
+ internal static readonly SZGenericArrayEnumerator<T> Empty = new SZGenericArrayEnumerator<T>(null, -1);
+
+ internal SZGenericArrayEnumerator(T[] array, int endIndex) {
+ // We allow passing null array in case of empty enumerator.
+ Contract.Assert((array == null && endIndex == -1) || (array.Rank == 1 && array.GetLowerBound(0) == 0),
+ "SZArrayEnumerator<T> only works on single dimension arrays w/ a lower bound of zero or with empty array for null enumerator.");
_array = array;
_index = -1;
- _endIndex = array.Length;
+ _endIndex = endIndex;
}
public bool MoveNext() {
diff --git a/mcs/class/referencesource/mscorlib/system/arraysegment.cs b/mcs/class/referencesource/mscorlib/system/arraysegment.cs
index c6cc6268640..0d51546f5e7 100644
--- a/mcs/class/referencesource/mscorlib/system/arraysegment.cs
+++ b/mcs/class/referencesource/mscorlib/system/arraysegment.cs
@@ -28,13 +28,7 @@ namespace System
// three fields from an ArraySegment may not see the same ArraySegment from one call to another
// (ie, users could assign a new value to the old location).
[Serializable]
-
-// After .NET 4.5 RTMs, we can undo this and expose the full surface area to CoreCLR
-#if !FEATURE_CORECLR || FEATURE_NETCORE
public struct ArraySegment<T> : IList<T>, IReadOnlyList<T>
-#else
- public struct ArraySegment<T>
-#endif
{
private T[] _array;
private int _offset;
@@ -148,8 +142,6 @@ namespace System
return !(a == b);
}
-// After .NET 4.5 RTMs, we can undo this and expose the full surface area to CoreCLR
-#if !FEATURE_CORECLR || FEATURE_NETCORE
#region IList<T>
T IList<T>.this[int index]
{
@@ -347,6 +339,5 @@ namespace System
{
}
}
-#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/attribute.cs b/mcs/class/referencesource/mscorlib/system/attribute.cs
index ebd18b0b342..853b279af42 100644
--- a/mcs/class/referencesource/mscorlib/system/attribute.cs
+++ b/mcs/class/referencesource/mscorlib/system/attribute.cs
@@ -140,12 +140,16 @@ namespace System {
List<Attribute> attributeList = new List<Attribute>();
CopyToArrayList(attributeList, attributes, types);
- PropertyInfo baseProp = GetParentDefinition(element);
+ //if this is an index we need to get the parameter types to help disambiguate
+ Type[] indexParamTypes = GetIndexParameterTypes(element);
+
+
+ PropertyInfo baseProp = GetParentDefinition(element, indexParamTypes);
while (baseProp != null)
{
attributes = GetCustomAttributes(baseProp, type, false);
AddAttributesToList(attributeList, attributes, types);
- baseProp = GetParentDefinition(baseProp);
+ baseProp = GetParentDefinition(baseProp, indexParamTypes);
}
Array array = CreateAttributeArrayHelper(type, attributeList.Count);
Array.Copy(attributeList.ToArray(), 0, array, 0, attributeList.Count);
@@ -165,21 +169,24 @@ namespace System {
if (!usage.Inherited)
return false;
- PropertyInfo baseProp = GetParentDefinition(element);
+ //if this is an index we need to get the parameter types to help disambiguate
+ Type[] indexParamTypes = GetIndexParameterTypes(element);
+
+ PropertyInfo baseProp = GetParentDefinition(element, indexParamTypes);
while (baseProp != null)
{
if (baseProp.IsDefined(attributeType, false))
return true;
- baseProp = GetParentDefinition(baseProp);
+ baseProp = GetParentDefinition(baseProp, indexParamTypes);
}
}
return false;
}
- private static PropertyInfo GetParentDefinition(PropertyInfo property)
+ private static PropertyInfo GetParentDefinition(PropertyInfo property, Type[] propertyParameters)
{
Contract.Requires(property != null);
@@ -209,7 +216,10 @@ namespace System {
return rtPropAccessor.DeclaringType.GetProperty(
property.Name,
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly,
- property.PropertyType);
+ null, //will use default binder
+ property.PropertyType,
+ propertyParameters, //used for index properties
+ null);
}
}
@@ -464,6 +474,23 @@ namespace System {
}
}
+ private static Type[] GetIndexParameterTypes(PropertyInfo element)
+ {
+ ParameterInfo[] indexParams = element.GetIndexParameters();
+
+ if (indexParams.Length > 0)
+ {
+ Type[] indexParamTypes = new Type[indexParams.Length];
+ for (int i = 0; i < indexParams.Length; i++)
+ {
+ indexParamTypes[i] = indexParams[i].ParameterType;
+ }
+ return indexParamTypes;
+ }
+
+ return Array.Empty<Type>();
+ }
+
private static void AddAttributesToList(List<Attribute> attributeList, Attribute[] attributes, Dictionary<Type, AttributeUsageAttribute> types)
{
for (int i = 0; i < attributes.Length; i++)
@@ -1017,7 +1044,8 @@ namespace System {
#region Public Members
public virtual bool IsDefaultAttribute() { return false; }
#endregion
-#if !MOBILE
+
+#if !FEATURE_CORECLR && !MOBILE
void _Attribute.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
diff --git a/mcs/class/referencesource/mscorlib/system/badimageformatexception.cs b/mcs/class/referencesource/mscorlib/system/badimageformatexception.cs
index 442639c09b4..19783eb44a9 100644
--- a/mcs/class/referencesource/mscorlib/system/badimageformatexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/badimageformatexception.cs
@@ -12,7 +12,7 @@
**
**
===========================================================*/
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace System {
diff --git a/mcs/class/referencesource/mscorlib/system/boolean.cs b/mcs/class/referencesource/mscorlib/system/boolean.cs
index bd4dc71ebb2..1f90f34978a 100644
--- a/mcs/class/referencesource/mscorlib/system/boolean.cs
+++ b/mcs/class/referencesource/mscorlib/system/boolean.cs
@@ -111,6 +111,7 @@ namespace System {
return (m_value==((Boolean)obj).m_value);
}
+ [System.Runtime.Versioning.NonVersionable]
public bool Equals(Boolean obj)
{
return m_value == obj;
diff --git a/mcs/class/referencesource/mscorlib/system/buffer.cs b/mcs/class/referencesource/mscorlib/system/buffer.cs
index 7b280fe7c3c..f3ec1082ff7 100644
--- a/mcs/class/referencesource/mscorlib/system/buffer.cs
+++ b/mcs/class/referencesource/mscorlib/system/buffer.cs
@@ -14,6 +14,7 @@ namespace System {
using System.Runtime.Versioning;
using System.Diagnostics.Contracts;
using System.Security;
+ using System.Runtime;
[System.Runtime.InteropServices.ComVisible(true)]
public static partial class Buffer
@@ -216,9 +217,6 @@ namespace System {
*(src + len) = 0;
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
internal unsafe static void Memcpy(byte[] dest, int destIndex, byte* src, int srcIndex, int len) {
@@ -233,9 +231,6 @@ namespace System {
}
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[SecurityCritical]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
internal unsafe static void Memcpy(byte* pDest, int destIndex, byte[] src, int srcIndex, int len)
@@ -253,10 +248,14 @@ namespace System {
#if !MONO
// This is tricky to get right AND fast, so lets make it useful for the whole Fx.
// E.g. System.Runtime.WindowsRuntime!WindowsRuntimeBufferExtensions.MemCopy uses it.
+
+ // This method has a slightly different behavior on arm and other platforms.
+ // On arm this method behaves like memcpy and does not handle overlapping buffers.
+ // While on other platforms it behaves like memmove and handles overlapping buffers.
+ // This behavioral difference is unfortunate but intentional because
+ // 1. This method is given access to other internal dlls and this close to release we do not want to change it.
+ // 2. It is difficult to get this right for arm and again due to release dates we would like to visit it later.
[FriendAccessAllowed]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
@@ -264,9 +263,30 @@ namespace System {
[MethodImplAttribute(MethodImplOptions.InternalCall)]
internal unsafe static extern void Memcpy(byte* dest, byte* src, int len);
#else // ARM
+ [MethodImplAttribute(MethodImplOptions.AggressiveInlining)]
internal unsafe static void Memcpy(byte* dest, byte* src, int len) {
Contract.Assert(len >= 0, "Negative length in memcopy!");
+ Memmove(dest, src, (uint)len);
+ }
+#endif // ARM
+ // This method has different signature for x64 and other platforms and is done for performance reasons.
+ [System.Security.SecurityCritical]
+ [ResourceExposure(ResourceScope.None)]
+ [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+#if WIN64
+ internal unsafe static void Memmove(byte* dest, byte* src, ulong len)
+#else
+ internal unsafe static void Memmove(byte* dest, byte* src, uint len)
+#endif
+ {
+ // P/Invoke into the native version when the buffers are overlapping and the copy needs to be performed backwards
+ // This check can produce false positives for lengths greater than Int32.MaxInt. It is fine because we want to use PInvoke path for the large lengths anyway.
+#if WIN64
+ if ((ulong)dest - (ulong)src < len) goto PInvoke;
+#else
+ if (((uint)dest - (uint)src) < len) goto PInvoke;
+#endif
//
// This is portable version of memcpy. It mirrors what the hand optimized assembly versions of memcpy typically do.
//
@@ -396,11 +416,7 @@ namespace System {
}
// P/Invoke into the native version for large lengths
- if (len >= 512)
- {
- _Memcpy(dest, src, len);
- return;
- }
+ if (len >= 512) goto PInvoke;
if (((int)dest & 3) != 0)
{
@@ -430,7 +446,11 @@ namespace System {
}
#endif
- int count = len / 16;
+#if WIN64
+ ulong count = len / 16;
+#else
+ uint count = len / 16;
+#endif
while (count > 0)
{
#if WIN64
@@ -471,7 +491,13 @@ namespace System {
src += 2;
}
if ((len & 1) != 0)
- *dest++ = *src++;
+ *dest = *src;
+
+ return;
+
+ PInvoke:
+ _Memmove(dest, src, len);
+
}
// Non-inlinable wrapper around the QCall that avoids poluting the fast path
@@ -480,9 +506,13 @@ namespace System {
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[MethodImplAttribute(MethodImplOptions.NoInlining)]
- private unsafe static void _Memcpy(byte* dest, byte* src, int len)
+#if WIN64
+ private unsafe static void _Memmove(byte* dest, byte* src, ulong len)
+#else
+ private unsafe static void _Memmove(byte* dest, byte* src, uint len)
+#endif
{
- __Memcpy(dest, src, len);
+ __Memmove(dest, src, len);
}
[DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
@@ -490,8 +520,49 @@ namespace System {
[SecurityCritical]
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
- extern private unsafe static void __Memcpy(byte* dest, byte* src, int len);
-#endif // ARM
+#if WIN64
+ extern private unsafe static void __Memmove(byte* dest, byte* src, ulong len);
+#else
+ extern private unsafe static void __Memmove(byte* dest, byte* src, uint len);
+#endif
+
+
+ // The attributes on this method are chosen for best JIT performance.
+ // Please do not edit unless intentional.
+ [System.Security.SecurityCritical]
+ [MethodImplAttribute(MethodImplOptions.AggressiveInlining)]
+ [CLSCompliant(false)]
+ public static unsafe void MemoryCopy(void* source, void* destination, long destinationSizeInBytes, long sourceBytesToCopy)
+ {
+ if (sourceBytesToCopy > destinationSizeInBytes)
+ {
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.sourceBytesToCopy);
+ }
+#if WIN64
+ Memmove((byte*)destination, (byte*)source, checked((ulong) sourceBytesToCopy));
+#else
+ Memmove((byte*)destination, (byte*)source, checked((uint)sourceBytesToCopy));
+#endif // WIN64
+ }
+
+
+ // The attributes on this method are chosen for best JIT performance.
+ // Please do not edit unless intentional.
+ [System.Security.SecurityCritical]
+ [MethodImplAttribute(MethodImplOptions.AggressiveInlining)]
+ [CLSCompliant(false)]
+ public static unsafe void MemoryCopy(void* source, void* destination, ulong destinationSizeInBytes, ulong sourceBytesToCopy)
+ {
+ if (sourceBytesToCopy > destinationSizeInBytes)
+ {
+ ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.sourceBytesToCopy);
+ }
+#if WIN64
+ Memmove((byte*)destination, (byte*)source, sourceBytesToCopy);
+#else
+ Memmove((byte*)destination, (byte*)source, checked((uint)sourceBytesToCopy));
+#endif // WIN64
+ }
#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/byte.cs b/mcs/class/referencesource/mscorlib/system/byte.cs
index 62b9c7cd129..981581ec6a6 100644
--- a/mcs/class/referencesource/mscorlib/system/byte.cs
+++ b/mcs/class/referencesource/mscorlib/system/byte.cs
@@ -76,6 +76,7 @@ namespace System {
return m_value == ((Byte)obj).m_value;
}
+ [System.Runtime.Versioning.NonVersionable]
public bool Equals(Byte obj)
{
return m_value == obj;
diff --git a/mcs/class/referencesource/mscorlib/system/cannotunloadappdomainexception.cs b/mcs/class/referencesource/mscorlib/system/cannotunloadappdomainexception.cs
index 1f3b6ff3758..6c9df903f78 100644
--- a/mcs/class/referencesource/mscorlib/system/cannotunloadappdomainexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/cannotunloadappdomainexception.cs
@@ -7,7 +7,7 @@
**
** Class: CannotUnloadAppDomainException
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Exception class for failed attempt to unload an AppDomain.
diff --git a/mcs/class/referencesource/mscorlib/system/char.cs b/mcs/class/referencesource/mscorlib/system/char.cs
index 7d5761dc17a..9f89528e2dc 100644
--- a/mcs/class/referencesource/mscorlib/system/char.cs
+++ b/mcs/class/referencesource/mscorlib/system/char.cs
@@ -116,6 +116,7 @@ namespace System {
return (m_value==((Char)obj).m_value);
}
+ [System.Runtime.Versioning.NonVersionable]
public bool Equals(Char obj)
{
return m_value == obj;
@@ -145,9 +146,6 @@ namespace System {
}
// Overrides System.Object.ToString.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[Pure]
public override String ToString() {
Contract.Ensures(Contract.Result<String>() != null);
@@ -270,9 +268,6 @@ namespace System {
**character c is considered to be a whitespace character. **
==============================================================================*/
// Determines whether a character is whitespace.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[Pure]
public static bool IsWhiteSpace(char c) {
@@ -361,9 +356,6 @@ namespace System {
}
// Determines whether a character is a letter or a digit.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[Pure]
public static bool IsLetterOrDigit(char c) {
if (IsLatin1(c)) {
@@ -377,9 +369,6 @@ namespace System {
==============================================================================*/
// Converts a character to upper-case for the specified culture.
// <;<;Not fully implemented>;>;
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static char ToUpper(char c, CultureInfo culture) {
if (culture==null)
throw new ArgumentNullException("culture");
@@ -395,14 +384,11 @@ namespace System {
// Converts a character to upper-case for the default culture.
//
public static char ToUpper(char c) {
- return ToUpper(c, String.LegacyMode ? CultureInfo.InvariantCulture : CultureInfo.CurrentCulture);
+ return ToUpper(c, CultureInfo.CurrentCulture);
}
// Converts a character to upper-case for invariant culture.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static char ToUpperInvariant(char c) {
return ToUpper(c, CultureInfo.InvariantCulture);
}
@@ -412,9 +398,6 @@ namespace System {
==============================================================================*/
// Converts a character to lower-case for the specified culture.
// <;<;Not fully implemented>;>;
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static char ToLower(char c, CultureInfo culture) {
if (culture==null)
throw new ArgumentNullException("culture");
@@ -429,14 +412,11 @@ namespace System {
==============================================================================*/
// Converts a character to lower-case for the default culture.
public static char ToLower(char c) {
- return ToLower(c, String.LegacyMode ? CultureInfo.InvariantCulture : CultureInfo.CurrentCulture);
+ return ToLower(c, CultureInfo.CurrentCulture);
}
// Converts a character to lower-case for invariant culture.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static char ToLowerInvariant(char c) {
return ToLower(c, CultureInfo.InvariantCulture);
}
@@ -819,9 +799,6 @@ namespace System {
return CharUnicodeInfo.IsWhiteSpace(s, index);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static UnicodeCategory GetUnicodeCategory(char c)
{
if (IsLatin1(c)) {
diff --git a/mcs/class/referencesource/mscorlib/system/collections/Concurrent/CDSCollectionETWBCLProvider.cs b/mcs/class/referencesource/mscorlib/system/collections/Concurrent/CDSCollectionETWBCLProvider.cs
index 318794b7fb8..793a0d9f1c4 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/Concurrent/CDSCollectionETWBCLProvider.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/Concurrent/CDSCollectionETWBCLProvider.cs
@@ -7,7 +7,7 @@
//
// CDSCollectionETWBCLProvider.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A helper class for firing ETW events related to the Coordination Data Structure
// collection types. This provider is used by CDS collections in both mscorlib.dll
diff --git a/mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentDictionary.cs b/mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentDictionary.cs
index f5737d43416..997f2871b93 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentDictionary.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentDictionary.cs
@@ -1,10 +1,10 @@
-// ==++==
+// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*============================================================
**
** Class: ConcurrentDictionary
@@ -57,7 +57,7 @@ namespace System.Collections.Concurrent
[DebuggerTypeProxy(typeof(Mscorlib_DictionaryDebugView<,>))]
[DebuggerDisplay("Count = {Count}")]
[HostProtection(Synchronization = true, ExternalThreading = true)]
- public class ConcurrentDictionary<TKey, TValue> : IDictionary<TKey, TValue>, IDictionary
+ public class ConcurrentDictionary<TKey, TValue> : IDictionary<TKey, TValue>, IDictionary, IReadOnlyDictionary<TKey, TValue>
{
/// <summary>
/// Tables that hold the internal state of the ConcurrentDictionary
@@ -95,6 +95,12 @@ namespace System.Collections.Concurrent
// How many times we resized becaused of collisions.
// This is used to make sure we don't resize the dictionary because of multi-threaded Add() calls
// that generate collisions. Whenever a GrowTable() should be the only place that changes this
+#if !FEATURE_CORECLR
+ // The field should be have been marked as NonSerialized but because we shipped it without that attribute in 4.5.1.
+ // we can't add it back without breaking compat. To maximize compat we are going to keep the OptionalField attribute
+ // This will prevent cases where the field was not serialized.
+ [OptionalField]
+#endif
private int m_keyRehashCount;
#if !FEATURE_CORECLR
@@ -810,7 +816,9 @@ namespace System.Collections.Concurrent
bool resizeDesired = false;
bool lockTaken = false;
#if FEATURE_RANDOMIZED_STRING_HASHING
+#if !FEATURE_CORECLR
bool resizeDueToCollisions = false;
+#endif // !FEATURE_CORECLR
#endif
try
@@ -826,7 +834,9 @@ namespace System.Collections.Concurrent
}
#if FEATURE_RANDOMIZED_STRING_HASHING
+#if !FEATURE_CORECLR
int collisionCount = 0;
+#endif // !FEATURE_CORECLR
#endif
// Try to find this key in the bucket
@@ -868,16 +878,20 @@ namespace System.Collections.Concurrent
prev = node;
#if FEATURE_RANDOMIZED_STRING_HASHING
+#if !FEATURE_CORECLR
collisionCount++;
+#endif // !FEATURE_CORECLR
#endif
}
#if FEATURE_RANDOMIZED_STRING_HASHING
+#if !FEATURE_CORECLR
if(collisionCount > HashHelpers.HashCollisionThreshold && HashHelpers.IsWellKnownEqualityComparer(comparer))
{
resizeDesired = true;
resizeDueToCollisions = true;
}
+#endif // !FEATURE_CORECLR
#endif
// The key was not found in the bucket. Insert the key-value pair.
@@ -914,11 +928,13 @@ namespace System.Collections.Concurrent
if (resizeDesired)
{
#if FEATURE_RANDOMIZED_STRING_HASHING
+#if !FEATURE_CORECLR
if (resizeDueToCollisions)
{
GrowTable(tables, (IEqualityComparer<TKey>)HashHelpers.GetRandomizedEqualityComparer(comparer), true, m_keyRehashCount);
}
else
+#endif // !FEATURE_CORECLR
{
GrowTable(tables, tables.m_comparer, false, m_keyRehashCount);
}
@@ -1237,6 +1253,17 @@ namespace System.Collections.Concurrent
}
/// <summary>
+ /// Gets an <see cref="T:System.Collections.Generic.IEnumerable{TKey}"/> containing the keys of
+ /// the <see cref="T:System.Collections.Generic.IReadOnlyDictionary{TKey,TValue}"/>.
+ /// </summary>
+ /// <value>An <see cref="T:System.Collections.Generic.IEnumerable{TKey}"/> containing the keys of
+ /// the <see cref="T:System.Collections.Generic.IReadOnlyDictionary{TKey,TValue}"/>.</value>
+ IEnumerable<TKey> IReadOnlyDictionary<TKey, TValue>.Keys
+ {
+ get { return GetKeys(); }
+ }
+
+ /// <summary>
/// Gets a collection containing the values in the <see
/// cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.
/// </summary>
@@ -1247,6 +1274,17 @@ namespace System.Collections.Concurrent
{
get { return GetValues(); }
}
+
+ /// <summary>
+ /// Gets an <see cref="T:System.Collections.Generic.IEnumerable{TValue}"/> containing the values
+ /// in the <see cref="T:System.Collections.Generic.IReadOnlyDictionary{TKey,TValue}"/>.
+ /// </summary>
+ /// <value>An <see cref="T:System.Collections.Generic.IEnumerable{TValue}"/> containing the
+ /// values in the <see cref="T:System.Collections.Generic.IReadOnlyDictionary{TKey,TValue}"/>.</value>
+ IEnumerable<TValue> IReadOnlyDictionary<TKey, TValue>.Values
+ {
+ get { return GetValues(); }
+ }
#endregion
#region ICollection<KeyValuePair<TKey,TValue>> Members
diff --git a/mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentQueue.cs b/mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentQueue.cs
index 4f03ff2f353..9a17c443642 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentQueue.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentQueue.cs
@@ -1,4 +1,4 @@
-#pragma warning disable 0420
+#pragma warning disable 0420
// ==++==
//
@@ -9,7 +9,7 @@
//
// ConcurrentQueue.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A lock-free, concurrent queue primitive, and its associated debugger view type.
//
@@ -43,7 +43,7 @@ namespace System.Collections.Concurrent
[DebuggerTypeProxy(typeof(SystemCollectionsConcurrent_ProducerConsumerCollectionDebugView<>))]
[HostProtection(Synchronization = true, ExternalThreading = true)]
[Serializable]
- public class ConcurrentQueue<T> : IProducerConsumerCollection<T>
+ public class ConcurrentQueue<T> : IProducerConsumerCollection<T>, IReadOnlyCollection<T>
{
//fields of ConcurrentQueue
[NonSerialized]
diff --git a/mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentStack.cs b/mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentStack.cs
index bf9263a04d2..8e5821f55c6 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentStack.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentStack.cs
@@ -9,7 +9,7 @@
//
// ConcurrentStack.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A lock-free, concurrent stack primitive, and its associated debugger view type.
//
@@ -52,7 +52,7 @@ namespace System.Collections.Concurrent
#if !FEATURE_CORECLR
[Serializable]
#endif //!FEATURE_CORECLR
- public class ConcurrentStack<T> : IProducerConsumerCollection<T>
+ public class ConcurrentStack<T> : IProducerConsumerCollection<T>, IReadOnlyCollection<T>
{
/// <summary>
/// A simple (internal) node type used to store elements of concurrent stacks and queues.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/Concurrent/IProducerConsumerCollection.cs b/mcs/class/referencesource/mscorlib/system/collections/Concurrent/IProducerConsumerCollection.cs
index d8b1a0bf1c2..6ed2935c881 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/Concurrent/IProducerConsumerCollection.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/Concurrent/IProducerConsumerCollection.cs
@@ -7,7 +7,7 @@
//
// IProducerConsumerCollection.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A common interface for all concurrent collections.
//
diff --git a/mcs/class/referencesource/mscorlib/system/collections/Concurrent/OrderablePartitioner.cs b/mcs/class/referencesource/mscorlib/system/collections/Concurrent/OrderablePartitioner.cs
index 82419f629b6..aaf92c0fc19 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/Concurrent/OrderablePartitioner.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/Concurrent/OrderablePartitioner.cs
@@ -7,7 +7,7 @@
//
// OrderablePartitioner.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/collections/Concurrent/Partitioner.cs b/mcs/class/referencesource/mscorlib/system/collections/Concurrent/Partitioner.cs
index 7b683d2473f..095777506e4 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/Concurrent/Partitioner.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/Concurrent/Partitioner.cs
@@ -7,7 +7,7 @@
//
// Partitioner.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Represents a particular way of splitting a collection into multiple partitions.
//
diff --git a/mcs/class/referencesource/mscorlib/system/collections/Concurrent/PartitionerStatic.cs b/mcs/class/referencesource/mscorlib/system/collections/Concurrent/PartitionerStatic.cs
index d53dd4b8043..232f75d54d8 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/Concurrent/PartitionerStatic.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/Concurrent/PartitionerStatic.cs
@@ -8,7 +8,7 @@
//
// PartitionerStatic.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A class of default partitioners for Partitioner<TSource>
//
diff --git a/mcs/class/referencesource/mscorlib/system/collections/arraylist.cs b/mcs/class/referencesource/mscorlib/system/collections/arraylist.cs
index bf7ec8f88e3..4118c5d5567 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/arraylist.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/arraylist.cs
@@ -7,7 +7,7 @@
**
** Class: ArrayList
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Implements a dynamically sized List as an array,
@@ -21,10 +21,8 @@ namespace System.Collections {
using System.Runtime;
using System.Security;
using System.Security.Permissions;
- using System.Diagnostics;
-#if FEATURE_NETCORE
+ using System.Diagnostics;
using System.Runtime.CompilerServices;
-#endif
using System.Runtime.Serialization;
using System.Diagnostics.CodeAnalysis;
using System.Diagnostics.Contracts;
@@ -35,7 +33,7 @@ namespace System.Collections {
// of the ArrayList is automatically increased as required by reallocating the
// internal array.
//
-#if FEATURE_NETCORE
+#if FEATURE_CORECLR
[FriendAccessAllowed]
#endif
[DebuggerTypeProxy(typeof(System.Collections.ArrayList.ArrayListDebugView))]
@@ -63,9 +61,6 @@ namespace System.Collections {
// Constructs a ArrayList. The list is initially empty and has a capacity
// of zero. Upon adding the first element to the list the capacity is
// increased to _defaultCapacity, and then increased in multiples of two as required.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public ArrayList() {
_items = emptyArray;
}
@@ -217,9 +212,6 @@ namespace System.Collections {
// required, the capacity of the list is increased to twice the previous
// capacity or the new size, whichever is larger.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual void AddRange(ICollection c) {
InsertRange(_size, c);
}
@@ -388,9 +380,6 @@ namespace System.Collections {
// while an enumeration is in progress, the MoveNext and
// GetObject methods of the enumerator will throw an exception.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual IEnumerator GetEnumerator() {
Contract.Ensures(Contract.Result<IEnumerator>() != null);
return new ArrayListEnumeratorSimple(this);
@@ -401,9 +390,6 @@ namespace System.Collections {
// while an enumeration is in progress, the MoveNext and
// GetObject methods of the enumerator will throw an exception.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual IEnumerator GetEnumerator(int index, int count) {
if (index < 0)
throw new ArgumentOutOfRangeException("index", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
@@ -425,9 +411,6 @@ namespace System.Collections {
// This method uses the Array.IndexOf method to perform the
// search.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual int IndexOf(Object value) {
Contract.Ensures(Contract.Result<int>() < Count);
return Array.IndexOf((Array)_items, value, 0, _size);
@@ -573,7 +556,7 @@ namespace System.Collections {
// Returns a read-only IList wrapper for the given IList.
//
-#if FEATURE_NETCORE
+#if FEATURE_CORECLR
[FriendAccessAllowed]
#endif
public static IList ReadOnly(IList list) {
@@ -597,9 +580,6 @@ namespace System.Collections {
// Removes the element at the given index. The size of the list is
// decreased by one.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual void Remove(Object obj) {
Contract.Ensures(Count >= 0);
@@ -1872,9 +1852,6 @@ namespace System.Collections {
}
public virtual int Count {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return _list.Count; }
}
@@ -1891,9 +1868,6 @@ namespace System.Collections {
}
public virtual Object this[int index] {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
return _list[index];
}
@@ -1922,9 +1896,6 @@ namespace System.Collections {
_list.CopyTo(array, index);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual IEnumerator GetEnumerator() {
return _list.GetEnumerator();
}
@@ -1956,9 +1927,6 @@ namespace System.Collections {
}
public override int Count {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return _list.Count; }
}
@@ -1975,9 +1943,6 @@ namespace System.Collections {
}
public override Object this[int index] {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
return _list[index];
}
diff --git a/mcs/class/referencesource/mscorlib/system/collections/bitarray.cs b/mcs/class/referencesource/mscorlib/system/collections/bitarray.cs
index dfe421f3102..67acd6a0726 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/bitarray.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/bitarray.cs
@@ -7,7 +7,7 @@
**
** Class: BitArray
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: The BitArray class manages a compact array of bit values.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/caseinsensitivecomparer.cs b/mcs/class/referencesource/mscorlib/system/collections/caseinsensitivecomparer.cs
index c6d46c10900..9e584ea823c 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/caseinsensitivecomparer.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/caseinsensitivecomparer.cs
@@ -7,7 +7,7 @@
**
** Class: CaseInsensitiveComparer
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
**
diff --git a/mcs/class/referencesource/mscorlib/system/collections/caseinsensitivehashcodeprovider.cs b/mcs/class/referencesource/mscorlib/system/collections/caseinsensitivehashcodeprovider.cs
index c9a9fd5c9eb..e9d24edc98d 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/caseinsensitivehashcodeprovider.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/caseinsensitivehashcodeprovider.cs
@@ -7,7 +7,7 @@
**
** Class: CaseInsensitiveHashCodeProvider
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Designed to support hashtables which require
diff --git a/mcs/class/referencesource/mscorlib/system/collections/collectionbase.cs b/mcs/class/referencesource/mscorlib/system/collections/collectionbase.cs
index 52355ea4c40..02ea374d2c3 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/collectionbase.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/collectionbase.cs
@@ -5,7 +5,7 @@
// ==--==
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Collections {
diff --git a/mcs/class/referencesource/mscorlib/system/collections/comparer.cs b/mcs/class/referencesource/mscorlib/system/collections/comparer.cs
index 89a67deff9f..4509457f85b 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/comparer.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/comparer.cs
@@ -7,7 +7,7 @@
**
** Class: Comparer
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Default IComparer implementation.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/compatiblecomparer.cs b/mcs/class/referencesource/mscorlib/system/collections/compatiblecomparer.cs
index a19337c90bf..92760855bd1 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/compatiblecomparer.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/compatiblecomparer.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System.Diagnostics.Contracts;
diff --git a/mcs/class/referencesource/mscorlib/system/collections/dictionarybase.cs b/mcs/class/referencesource/mscorlib/system/collections/dictionarybase.cs
index 022cc7355c3..a8bfc680cfb 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/dictionarybase.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/dictionarybase.cs
@@ -5,7 +5,7 @@
// ==--==
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Collections {
diff --git a/mcs/class/referencesource/mscorlib/system/collections/dictionaryentry.cs b/mcs/class/referencesource/mscorlib/system/collections/dictionaryentry.cs
index fe2e341487a..34ccbc28c0a 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/dictionaryentry.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/dictionaryentry.cs
@@ -7,7 +7,7 @@
**
** Interface: DictionaryEntry
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Return Value for IDictionaryEnumerator::GetEntry
diff --git a/mcs/class/referencesource/mscorlib/system/collections/emptyreadonlydictionaryinternal.cs b/mcs/class/referencesource/mscorlib/system/collections/emptyreadonlydictionaryinternal.cs
index da84bb45fd6..5fab81ba40c 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/emptyreadonlydictionaryinternal.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/emptyreadonlydictionaryinternal.cs
@@ -7,7 +7,7 @@
**
** Class: EmptyReadOnlyDictionaryInternal
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: List for exceptions.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/arraysorthelper.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/arraysorthelper.cs
index e4b469156a7..6fa9b12e3dc 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/arraysorthelper.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/arraysorthelper.cs
@@ -7,7 +7,7 @@
**
** Class: ArraySortHelper
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: class to sort arrays
@@ -139,6 +139,13 @@ namespace System.Collections.Generic
comparer = Comparer<T>.Default;
}
+#if FEATURE_CORECLR
+ // Since QuickSort and IntrospectiveSort produce different sorting sequence for equal keys the upgrade
+ // to IntrospectiveSort was quirked. However since the phone builds always shipped with the new sort aka
+ // IntrospectiveSort and we would want to continue using this sort moving forward CoreCLR always uses the new sort.
+
+ IntrospectiveSort(keys, index, length, comparer);
+#else
if (BinaryCompatibility.TargetsAtLeast_Desktop_V4_5)
{
IntrospectiveSort(keys, index, length, comparer);
@@ -147,6 +154,7 @@ namespace System.Collections.Generic
{
DepthLimitedQuickSort(keys, index, length + index - 1, comparer, IntrospectiveSortUtilities.QuickSortDepthThreshold);
}
+#endif
}
catch (IndexOutOfRangeException)
{
@@ -473,6 +481,14 @@ namespace System.Collections.Generic
#else
if (comparer == null || comparer == Comparer<T>.Default) {
#endif
+
+#if FEATURE_CORECLR
+ // Since QuickSort and IntrospectiveSort produce different sorting sequence for equal keys the upgrade
+ // to IntrospectiveSort was quirked. However since the phone builds always shipped with the new sort aka
+ // IntrospectiveSort and we would want to continue using this sort moving forward CoreCLR always uses the new sort.
+
+ IntrospectiveSort(keys, index, length);
+#else
// call the faster version of our sort algorithm if the user doesn't provide a comparer
if (BinaryCompatibility.TargetsAtLeast_Desktop_V4_5)
{
@@ -482,9 +498,17 @@ namespace System.Collections.Generic
{
DepthLimitedQuickSort(keys, index, length + index - 1, IntrospectiveSortUtilities.QuickSortDepthThreshold);
}
+#endif
}
else
{
+#if FEATURE_CORECLR
+ // Since QuickSort and IntrospectiveSort produce different sorting sequence for equal keys the upgrade
+ // to IntrospectiveSort was quirked. However since the phone builds always shipped with the new sort aka
+ // IntrospectiveSort and we would want to continue using this sort moving forward CoreCLR always uses the new sort.
+
+ ArraySortHelper<T>.IntrospectiveSort(keys, index, length, comparer);
+#else
if (BinaryCompatibility.TargetsAtLeast_Desktop_V4_5)
{
ArraySortHelper<T>.IntrospectiveSort(keys, index, length, comparer);
@@ -493,6 +517,7 @@ namespace System.Collections.Generic
{
ArraySortHelper<T>.DepthLimitedQuickSort(keys, index, length + index - 1, comparer, IntrospectiveSortUtilities.QuickSortDepthThreshold);
}
+#endif
}
}
catch (IndexOutOfRangeException)
@@ -890,6 +915,13 @@ namespace System.Collections.Generic
comparer = Comparer<TKey>.Default;
}
+#if FEATURE_CORECLR
+ // Since QuickSort and IntrospectiveSort produce different sorting sequence for equal keys the upgrade
+ // to IntrospectiveSort was quirked. However since the phone builds always shipped with the new sort aka
+ // IntrospectiveSort and we would want to continue using this sort moving forward CoreCLR always uses the new sort.
+
+ IntrospectiveSort(keys, values, index, length, comparer);
+#else
if (BinaryCompatibility.TargetsAtLeast_Desktop_V4_5)
{
IntrospectiveSort(keys, values, index, length, comparer);
@@ -898,6 +930,7 @@ namespace System.Collections.Generic
{
DepthLimitedQuickSort(keys, values, index, length + index - 1, comparer, IntrospectiveSortUtilities.QuickSortDepthThreshold);
}
+#endif
}
catch (IndexOutOfRangeException)
{
@@ -1211,6 +1244,13 @@ namespace System.Collections.Generic
{
if (comparer == null || comparer == Comparer<TKey>.Default)
{
+#if FEATURE_CORECLR
+ // Since QuickSort and IntrospectiveSort produce different sorting sequence for equal keys the upgrade
+ // to IntrospectiveSort was quirked. However since the phone builds always shipped with the new sort aka
+ // IntrospectiveSort and we would want to continue using this sort moving forward CoreCLR always uses the new sort.
+
+ IntrospectiveSort(keys, values, index, length);
+#else
// call the faster version of our sort algorithm if the user doesn't provide a comparer
if (BinaryCompatibility.TargetsAtLeast_Desktop_V4_5)
{
@@ -1220,9 +1260,17 @@ namespace System.Collections.Generic
{
DepthLimitedQuickSort(keys, values, index, length + index - 1, IntrospectiveSortUtilities.QuickSortDepthThreshold);
}
+#endif
}
else
{
+#if FEATURE_CORECLR
+ // Since QuickSort and IntrospectiveSort produce different sorting sequence for equal keys the upgrade
+ // to IntrospectiveSort was quirked. However since the phone builds always shipped with the new sort aka
+ // IntrospectiveSort and we would want to continue using this sort moving forward CoreCLR always uses the new sort.
+
+ ArraySortHelper<TKey, TValue>.IntrospectiveSort(keys, values, index, length, comparer);
+#else
if (BinaryCompatibility.TargetsAtLeast_Desktop_V4_5)
{
ArraySortHelper<TKey, TValue>.IntrospectiveSort(keys, values, index, length, comparer);
@@ -1231,6 +1279,7 @@ namespace System.Collections.Generic
{
ArraySortHelper<TKey, TValue>.DepthLimitedQuickSort(keys, values, index, length + index - 1, comparer, IntrospectiveSortUtilities.QuickSortDepthThreshold);
}
+#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/comparer.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/comparer.cs
index 3e79915d249..46ce4866cc8 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/comparer.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/comparer.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/debugview.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/debugview.cs
index e82dda98c3b..ac847ec06f9 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/debugview.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/debugview.cs
@@ -9,7 +9,7 @@
**
** Purpose: DebugView class for generic collections
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
=============================================================================*/
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/dictionary.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/dictionary.cs
index fbd02da4795..92b7c2ac587 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/dictionary.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/dictionary.cs
@@ -7,7 +7,7 @@
**
** Class: Dictionary
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Purpose: Generic hash table implementation
**
@@ -92,6 +92,13 @@ namespace System.Collections.Generic {
if (capacity < 0) ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.capacity);
if (capacity > 0) Initialize(capacity);
this.comparer = comparer ?? EqualityComparer<TKey>.Default;
+
+#if FEATURE_CORECLR
+ if (HashHelpers.s_UseRandomizedStringHashing && comparer == EqualityComparer<string>.Default)
+ {
+ this.comparer = (IEqualityComparer<TKey>) NonRandomizedStringEqualityComparer.Default;
+ }
+#endif // FEATURE_CORECLR
}
public Dictionary(IDictionary<TKey,TValue> dictionary): this(dictionary, null) {}
@@ -361,11 +368,26 @@ namespace System.Collections.Generic {
version++;
#if FEATURE_RANDOMIZED_STRING_HASHING
+
+#if FEATURE_CORECLR
+ // In case we hit the collision threshold we'll need to switch to the comparer which is using randomized string hashing
+ // in this case will be EqualityComparer<string>.Default.
+ // Note, randomized string hashing is turned on by default on coreclr so EqualityComparer<string>.Default will
+ // be using randomized string hashing
+
+ if (collisionCount > HashHelpers.HashCollisionThreshold && comparer == NonRandomizedStringEqualityComparer.Default)
+ {
+ comparer = (IEqualityComparer<TKey>) EqualityComparer<string>.Default;
+ Resize(entries.Length, true);
+ }
+#else
if(collisionCount > HashHelpers.HashCollisionThreshold && HashHelpers.IsWellKnownEqualityComparer(comparer))
{
comparer = (IEqualityComparer<TKey>) HashHelpers.GetRandomizedEqualityComparer(comparer);
Resize(entries.Length, true);
}
+#endif // FEATURE_CORECLR
+
#endif
}
@@ -776,7 +798,7 @@ namespace System.Collections.Generic {
[DebuggerTypeProxy(typeof(Mscorlib_DictionaryKeyCollectionDebugView<,>))]
[DebuggerDisplay("Count = {Count}")]
[Serializable]
- public sealed class KeyCollection: ICollection<TKey>, ICollection
+ public sealed class KeyCollection: ICollection<TKey>, ICollection, IReadOnlyCollection<TKey>
{
private Dictionary<TKey,TValue> dictionary;
@@ -963,7 +985,7 @@ namespace System.Collections.Generic {
[DebuggerTypeProxy(typeof(Mscorlib_DictionaryValueCollectionDebugView<,>))]
[DebuggerDisplay("Count = {Count}")]
[Serializable]
- public sealed class ValueCollection: ICollection<TValue>, ICollection
+ public sealed class ValueCollection: ICollection<TValue>, ICollection, IReadOnlyCollection<TValue>
{
private Dictionary<TKey,TValue> dictionary;
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/equalitycomparer.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/equalitycomparer.cs
index 693a7dd1e05..48c3c1f51d8 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/equalitycomparer.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/equalitycomparer.cs
@@ -3,13 +3,14 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
using System.Collections;
using System.Collections.Generic;
using System.Security;
+using System.Runtime.Serialization;
namespace System.Collections.Generic
{
@@ -25,9 +26,6 @@ namespace System.Collections.Generic
static volatile EqualityComparer<T> defaultComparer;
public static EqualityComparer<T> Default {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
Contract.Ensures(Contract.Result<EqualityComparer<T>>() != null);
@@ -79,15 +77,44 @@ namespace System.Collections.Generic
#endif
}
}
- // If T is an int-based Enum, return an EnumEqualityComparer<T>
+
// See the METHOD__JIT_HELPERS__UNSAFE_ENUM_CAST and METHOD__JIT_HELPERS__UNSAFE_ENUM_CAST_LONG cases in getILIntrinsicImplementation
- if (t.IsEnum && Enum.GetUnderlyingType(t) == typeof(int))
- {
+ if (t.IsEnum) {
+ TypeCode underlyingTypeCode = Type.GetTypeCode(Enum.GetUnderlyingType(t));
+
+ // Depending on the enum type, we need to special case the comparers so that we avoid boxing
+ // Note: We have different comparers for Short and SByte because for those types we need to make sure we call GetHashCode on the actual underlying type as the
+ // implementation of GetHashCode is more complex than for the other types.
+ switch (underlyingTypeCode) {
+ case TypeCode.Int16: // short
+#if MONO
+ return (EqualityComparer<T>)RuntimeType.CreateInstanceForAnotherGenericParameter (typeof(ShortEnumEqualityComparer<short>), t);
+#else
+ return (EqualityComparer<T>)RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter((RuntimeType)typeof(ShortEnumEqualityComparer<short>), t);
+#endif
+ case TypeCode.SByte:
+#if MONO
+ return (EqualityComparer<T>)RuntimeType.CreateInstanceForAnotherGenericParameter (typeof(SByteEnumEqualityComparer<sbyte>), t);
+#else
+ return (EqualityComparer<T>)RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter((RuntimeType)typeof(SByteEnumEqualityComparer<sbyte>), t);
+#endif
+ case TypeCode.Int32:
+ case TypeCode.UInt32:
+ case TypeCode.Byte:
+ case TypeCode.UInt16: //ushort
#if MONO
- return (EqualityComparer<T>)RuntimeType.CreateInstanceForAnotherGenericParameter (typeof(EnumEqualityComparer<>), t);
+ return (EqualityComparer<T>)RuntimeType.CreateInstanceForAnotherGenericParameter (typeof(EnumEqualityComparer<int>), t);
#else
- return (EqualityComparer<T>)RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter((RuntimeType)typeof(EnumEqualityComparer<int>), t);
+ return (EqualityComparer<T>)RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter((RuntimeType)typeof(EnumEqualityComparer<int>), t);
#endif
+ case TypeCode.Int64:
+ case TypeCode.UInt64:
+#if MONO
+ return (EqualityComparer<T>)RuntimeType.CreateInstanceForAnotherGenericParameter (typeof(LongEnumEqualityComparer<long>), t);
+#else
+ return (EqualityComparer<T>)RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter((RuntimeType)typeof(LongEnumEqualityComparer<long>), t);
+#endif
+ }
}
// Otherwise return an ObjectEqualityComparer<T>
return new ObjectEqualityComparer<T>();
@@ -146,9 +173,6 @@ namespace System.Collections.Generic
}
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override int GetHashCode(T obj) {
if (obj == null) return 0;
return obj.GetHashCode();
@@ -268,9 +292,6 @@ namespace System.Collections.Generic
}
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override int GetHashCode(T obj) {
if (obj == null) return 0;
return obj.GetHashCode();
@@ -317,6 +338,34 @@ namespace System.Collections.Generic
}
}
+#if FEATURE_CORECLR
+ // NonRandomizedStringEqualityComparer is the comparer used by default with the Dictionary<string,...>
+ // As the randomized string hashing is turned on by default on coreclr, we need to keep the performance not affected
+ // as much as possible in the main stream scenarios like Dictionary<string,…>
+ // We use NonRandomizedStringEqualityComparer as default comparer as it doesn’t use the randomized string hashing which
+ // keep the perofrmance not affected till we hit collision threshold and then we switch to the comparer which is using
+ // randomized string hashing GenericEqualityComparer<string>
+
+ internal class NonRandomizedStringEqualityComparer : GenericEqualityComparer<string> {
+ static IEqualityComparer<string> s_nonRandomizedComparer;
+
+ internal static IEqualityComparer<string> Default {
+ get {
+ if (s_nonRandomizedComparer == null) {
+ s_nonRandomizedComparer = new NonRandomizedStringEqualityComparer();
+ }
+ return s_nonRandomizedComparer;
+ }
+ }
+
+ [Pure]
+ public override int GetHashCode(string obj) {
+ if (obj == null) return 0;
+ return obj.GetLegacyNonRandomizedHashCode();
+ }
+ }
+#endif // FEATURE_CORECLR
+
// Performance of IndexOf on byte array is very important for some scenarios.
// We will call the C runtime function memchr, which is optimized.
[Serializable]
@@ -366,11 +415,10 @@ namespace System.Collections.Generic
public override int GetHashCode() {
return this.GetType().Name.GetHashCode();
}
-
}
[Serializable]
- internal sealed class EnumEqualityComparer<T>: EqualityComparer<T> where T : struct
+ internal class EnumEqualityComparer<T> : EqualityComparer<T>, ISerializable where T : struct
{
[Pure]
public override bool Equals(T x, T y) {
@@ -385,6 +433,19 @@ namespace System.Collections.Generic
return x_final.GetHashCode();
}
+ public EnumEqualityComparer() { }
+
+ // This is used by the serialization engine.
+ protected EnumEqualityComparer(SerializationInfo information, StreamingContext context) { }
+
+ [SecurityCritical]
+ public void GetObjectData(SerializationInfo info, StreamingContext context) {
+ // For back-compat we need to serialize the comparers for enums with underlying types other than int as ObjectEqualityComparer
+ if (Type.GetTypeCode(Enum.GetUnderlyingType(typeof(T))) != TypeCode.Int32) {
+ info.SetType(typeof(ObjectEqualityComparer<T>));
+ }
+ }
+
// Equals method for the comparer itself.
public override bool Equals(Object obj){
EnumEqualityComparer<T> comparer = obj as EnumEqualityComparer<T>;
@@ -397,7 +458,37 @@ namespace System.Collections.Generic
}
[Serializable]
- internal sealed class LongEnumEqualityComparer<T>: EqualityComparer<T> where T : struct
+ internal sealed class SByteEnumEqualityComparer<T> : EnumEqualityComparer<T>, ISerializable where T : struct
+ {
+ public SByteEnumEqualityComparer() { }
+
+ // This is used by the serialization engine.
+ public SByteEnumEqualityComparer(SerializationInfo information, StreamingContext context) { }
+
+ [Pure]
+ public override int GetHashCode(T obj) {
+ int x_final = System.Runtime.CompilerServices.JitHelpers.UnsafeEnumCast(obj);
+ return ((sbyte)x_final).GetHashCode();
+ }
+ }
+
+ [Serializable]
+ internal sealed class ShortEnumEqualityComparer<T> : EnumEqualityComparer<T>, ISerializable where T : struct
+ {
+ public ShortEnumEqualityComparer() { }
+
+ // This is used by the serialization engine.
+ public ShortEnumEqualityComparer(SerializationInfo information, StreamingContext context) { }
+
+ [Pure]
+ public override int GetHashCode(T obj) {
+ int x_final = System.Runtime.CompilerServices.JitHelpers.UnsafeEnumCast(obj);
+ return ((short)x_final).GetHashCode();
+ }
+ }
+
+ [Serializable]
+ internal sealed class LongEnumEqualityComparer<T> : EqualityComparer<T>, ISerializable where T : struct
{
[Pure]
public override bool Equals(T x, T y) {
@@ -421,6 +512,19 @@ namespace System.Collections.Generic
public override int GetHashCode() {
return this.GetType().Name.GetHashCode();
}
+
+ public LongEnumEqualityComparer() { }
+
+ // This is used by the serialization engine.
+ public LongEnumEqualityComparer(SerializationInfo information, StreamingContext context) { }
+
+ [SecurityCritical]
+ public void GetObjectData(SerializationInfo info, StreamingContext context)
+ {
+ // The LongEnumEqualityComparer does not exist on 4.0 so we need to serialize this comparer as ObjectEqualityComparer
+ // to allow for roundtrip between 4.0 and 4.5.
+ info.SetType(typeof(ObjectEqualityComparer<T>));
+ }
}
[Serializable]
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/icollection.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/icollection.cs
index 2ecd18dd8ab..479608d8d37 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/icollection.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/icollection.cs
@@ -7,7 +7,7 @@
**
** Interface: ICollection
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Base interface for all generic collections.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/icomparer.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/icomparer.cs
index 09350d61028..38722647b62 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/icomparer.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/icomparer.cs
@@ -7,7 +7,7 @@
**
** Interface: IComparer
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Interface for comparing two generic Objects.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/idictionary.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/idictionary.cs
index 238a7a67a01..8fad20061a5 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/idictionary.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/idictionary.cs
@@ -7,7 +7,7 @@
**
** Interface: IDictionary
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Base interface for all generic dictionaries.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/ienumerable.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/ienumerable.cs
index 8c1d9a14d93..80d082d400c 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/ienumerable.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/ienumerable.cs
@@ -7,7 +7,7 @@
**
** Interface: IEnumerable
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Interface for providing generic IEnumerators
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/ienumerator.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/ienumerator.cs
index 341c1d82ce8..d569ea4161f 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/ienumerator.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/ienumerator.cs
@@ -7,7 +7,7 @@
**
** Interface: IEnumerator
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Base interface for all generic enumerators.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/iequalitycomparer.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/iequalitycomparer.cs
index 2e7d8cc206f..7e52fd95411 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/iequalitycomparer.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/iequalitycomparer.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>kimhamil</OWNER>
//
namespace System.Collections.Generic {
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/ilist.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/ilist.cs
index 9cc7893c58c..48a213370ba 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/ilist.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/ilist.cs
@@ -7,7 +7,7 @@
**
** Interface: IList
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Base interface for all generic lists.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/ireadonlycollection.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/ireadonlycollection.cs
index bf84605c99a..cf2e46c523f 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/ireadonlycollection.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/ireadonlycollection.cs
@@ -7,7 +7,7 @@
**
** Interface: IReadOnlyCollection<T>
**
-** <OWNER>[....]</OWNER>
+** <OWNER>matell</OWNER>
**
** Purpose: Base interface for read-only generic lists.
**
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/ireadonlydictionary.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/ireadonlydictionary.cs
index 1ff56092f83..ff28a7e6ec1 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/ireadonlydictionary.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/ireadonlydictionary.cs
@@ -7,7 +7,7 @@
**
** Interface: IReadOnlyDictionary<TKey, TValue>
**
-** <OWNER>[....]</OWNER>
+** <OWNER>matell</OWNER>
**
** Purpose: Base interface for read-only generic dictionaries.
**
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/ireadonlylist.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/ireadonlylist.cs
index b8ffa913dd1..568e9d78c34 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/ireadonlylist.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/ireadonlylist.cs
@@ -7,7 +7,7 @@
**
** Interface: IReadOnlyList<T>
**
-** <OWNER>[....]</OWNER>
+** <OWNER>matell</OWNER>
**
** Purpose: Base interface for read-only generic lists.
**
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/keynotfoundexception.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/keynotfoundexception.cs
index 10477931a15..c8afceb3081 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/keynotfoundexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/keynotfoundexception.cs
@@ -7,7 +7,7 @@
**
** Class: KeyNotFoundException
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Exception class for Hashtable and Dictionary.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/keyvaluepair.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/keyvaluepair.cs
index 24baeb3f2a5..d6e298ee524 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/keyvaluepair.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/keyvaluepair.cs
@@ -7,7 +7,7 @@
**
** Interface: KeyValuePair
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Generic key-value pair for dictionary enumerators.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/generic/list.cs b/mcs/class/referencesource/mscorlib/system/collections/generic/list.cs
index 8ef9a0771d7..8be053eebde 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/generic/list.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/generic/list.cs
@@ -7,7 +7,7 @@
**
** Class: List
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Purpose: Implements a generic, dynamically sized list as an
** array.
@@ -49,9 +49,6 @@ namespace System.Collections.Generic {
// Constructs a List. The list is initially empty and has a capacity
// of zero. Upon adding the first element to the list the capacity is
// increased to 16, and then increased in multiples of two as required.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public List() {
_items = _emptyArray;
}
@@ -60,9 +57,6 @@ namespace System.Collections.Generic {
// initially empty, but will have room for the given number of elements
// before any reallocations are required.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public List(int capacity) {
if (capacity < 0) ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.capacity, ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);
Contract.EndContractBlock();
@@ -114,9 +108,6 @@ namespace System.Collections.Generic {
// array of the list is reallocated to the given capacity.
//
public int Capacity {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
Contract.Ensures(Contract.Result<int>() >= 0);
return _items.Length;
@@ -157,16 +148,10 @@ namespace System.Collections.Generic {
// Is this List read-only?
bool ICollection<T>.IsReadOnly {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return false; }
}
bool System.Collections.IList.IsReadOnly {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return false; }
}
@@ -187,9 +172,6 @@ namespace System.Collections.Generic {
// Sets or Gets the element at the given index.
//
public T this[int index] {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
#if MONO
[System.Runtime.CompilerServices.MethodImpl (System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
#endif
@@ -206,9 +188,6 @@ namespace System.Collections.Generic {
#endif
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
set {
if ((uint) index >= (uint)_size) {
ThrowHelper.ThrowArgumentOutOfRangeException();
@@ -385,9 +364,6 @@ namespace System.Collections.Generic {
// Copies this List into array, which must be of a
// compatible array type.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public void CopyTo(T[] array) {
CopyTo(array, 0);
}
@@ -395,9 +371,6 @@ namespace System.Collections.Generic {
// Copies this List into array, which must be of a
// compatible array type.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
void System.Collections.ICollection.CopyTo(Array array, int arrayIndex) {
if ((array != null) && (array.Rank != 1)) {
ThrowHelper.ThrowArgumentException(ExceptionResource.Arg_RankMultiDimNotSupported);
@@ -447,7 +420,6 @@ namespace System.Collections.Generic {
}
}
-#if FEATURE_LIST_PREDICATES || FEATURE_NETCORE
public bool Exists(Predicate<T> match) {
return FindIndex(match) != -1;
}
@@ -576,7 +548,6 @@ namespace System.Collections.Generic {
}
return -1;
}
-#endif // FEATURE_LIST_PREDICATES || FEATURE_NETCORE
public void ForEach(Action<T> action) {
if( action == null) {
@@ -602,24 +573,15 @@ namespace System.Collections.Generic {
// while an enumeration is in progress, the MoveNext and
// GetObject methods of the enumerator will throw an exception.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public Enumerator GetEnumerator() {
return new Enumerator(this);
}
/// <internalonly/>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
IEnumerator<T> IEnumerable<T>.GetEnumerator() {
return new Enumerator(this);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() {
return new Enumerator(this);
}
@@ -654,18 +616,12 @@ namespace System.Collections.Generic {
// This method uses the Array.IndexOf method to perform the
// search.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public int IndexOf(T item) {
Contract.Ensures(Contract.Result<int>() >= -1);
Contract.Ensures(Contract.Result<int>() < Count);
return Array.IndexOf(_items, item, 0, _size);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
int System.Collections.IList.IndexOf(Object item)
{
if(IsCompatibleObject(item)) {
@@ -871,9 +827,6 @@ namespace System.Collections.Generic {
// Removes the element at the given index. The size of the list is
// decreased by one.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public bool Remove(T item) {
int index = IndexOf(item);
if (index >= 0) {
@@ -1074,7 +1027,6 @@ namespace System.Collections.Generic {
}
}
-#if FEATURE_LIST_PREDICATES || FEATURE_NETCORE
public bool TrueForAll(Predicate<T> match) {
if( match == null) {
ThrowHelper.ThrowArgumentNullException(ExceptionArgument.match);
@@ -1088,7 +1040,6 @@ namespace System.Collections.Generic {
}
return true;
}
-#endif // FEATURE_LIST_PREDICATES || FEATURE_NETCORE
internal static IList<T> Synchronized(List<T> list) {
return new SynchronizedList(list);
@@ -1207,9 +1158,6 @@ namespace System.Collections.Generic {
current = default(T);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public void Dispose() {
}
diff --git a/mcs/class/referencesource/mscorlib/system/collections/hashtable.cs b/mcs/class/referencesource/mscorlib/system/collections/hashtable.cs
index 31009542d90..ee14bfa52bf 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/hashtable.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/hashtable.cs
@@ -7,7 +7,7 @@
**
** Class: Hashtable
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Hash table implementation
@@ -74,58 +74,58 @@ namespace System.Collections {
public class Hashtable : IDictionary, ISerializable, IDeserializationCallback, ICloneable {
/*
Implementation Notes:
- The generic Dictionary was copied from Hashtable's source - any bug
- fixes here probably need to be made to the generic Dictionary as well.
-
- This Hashtable uses double hashing. There are hashsize buckets in the
- table, and each bucket can contain 0 or 1 element. We a bit to mark
- whether there's been a collision when we inserted multiple elements
- (ie, an inserted item was hashed at least a second time and we probed
- this bucket, but it was already in use). Using the collision bit, we
- can terminate lookups & removes for elements that aren't in the hash
- table more quickly. We steal the most significant bit from the hash code
- to store the collision bit.
-
- Our hash function is of the following form:
-
- h(key, n) = h1(key) + n*h2(key)
-
- where n is the number of times we've hit a collided bucket and rehashed
- (on this particular lookup). Here are our hash functions:
-
- h1(key) = GetHash(key); // default implementation calls key.GetHashCode();
- h2(key) = 1 + (((h1(key) >> 5) + 1) % (hashsize - 1));
-
- The h1 can return any number. h2 must return a number between 1 and
- hashsize - 1 that is relatively prime to hashsize (not a problem if
- hashsize is prime). (Knuth's Art of Computer Programming, Vol. 3, p. 528-9)
- If this is true, then we are guaranteed to visit every bucket in exactly
- hashsize probes, since the least common multiple of hashsize and h2(key)
- will be hashsize * h2(key). (This is the first number where adding h2 to
- h1 mod hashsize will be 0 and we will search the same bucket twice).
-
- We previously used a different h2(key, n) that was not constant. That is a
- horrifically bad idea, unless you can prove that series will never produce
- any identical numbers that overlap when you mod them by hashsize, for all
- subranges from i to i+hashsize, for all i. It's not worth investigating,
- since there was no clear benefit from using that hash function, and it was
- broken.
-
- For efficiency reasons, we've implemented this by storing h1 and h2 in a
- temporary, and setting a variable called seed equal to h1. We do a probe,
- and if we collided, we simply add h2 to seed each time through the loop.
-
- A good test for h2() is to subclass Hashtable, provide your own implementation
- of GetHash() that returns a constant, then add many items to the hash table.
- Make sure Count equals the number of items you inserted.
+ The generic Dictionary was copied from Hashtable's source - any
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- Note that when we remove an item from the hash table, we set the key
- equal to buckets, if there was a collision in this bucket. Otherwise
- we'd either wipe out the collision bit, or we'd still have an item in
- the hash table.
- --
- */
+
+
+
+
+
+
+
+
+
+*/
internal const Int32 HashPrime = 101;
private const Int32 InitialSize = 3;
@@ -437,9 +437,6 @@ namespace System.Collections {
// ArgumentException is thrown if the key is null or if the key is already
// present in the hashtable.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual void Add(Object key, Object value) {
Insert(key, value, true);
}
@@ -495,9 +492,6 @@ namespace System.Collections {
}
// Checks if this hashtable contains the given key.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual bool Contains(Object key) {
return ContainsKey(key);
}
@@ -709,9 +703,6 @@ namespace System.Collections {
return null;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
set {
Insert(key, value, false);
}
@@ -786,9 +777,6 @@ namespace System.Collections {
// in progress, the MoveNext and Current methods of the
// enumerator will throw an exception.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
IEnumerator IEnumerable.GetEnumerator() {
return new HashtableEnumerator(this, HashtableEnumerator.DictEntry);
}
@@ -798,9 +786,6 @@ namespace System.Collections {
// in progress, the MoveNext and Current methods of the
// enumerator will throw an exception.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual IDictionaryEnumerator GetEnumerator() {
return new HashtableEnumerator(this, HashtableEnumerator.DictEntry);
}
@@ -808,9 +793,6 @@ namespace System.Collections {
// Internal method to get the hash code for an Object. This will call
// GetHashCode() on each object if you haven't provided an IHashCodeProvider
// instance. Otherwise, it calls hcp.GetHashCode(obj).
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
protected virtual int GetHash(Object key)
{
if (_keycomparer != null)
@@ -861,9 +843,6 @@ namespace System.Collections {
// a static copy of all the keys in the hash table.
//
public virtual ICollection Keys {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
if (keys == null) keys = new KeyCollection(this);
return keys;
@@ -881,9 +860,6 @@ namespace System.Collections {
// a static copy of all the keys in the hash table.
//
public virtual ICollection Values {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
if (values == null) values = new ValueCollection(this);
return values;
@@ -955,6 +931,9 @@ namespace System.Collections {
#endif
#if FEATURE_RANDOMIZED_STRING_HASHING
+#if !FEATURE_CORECLR
+ // coreclr has the randomized string hashing on by default so we don't need to resize at this point
+
if(ntry > HashHelpers.HashCollisionThreshold && HashHelpers.IsWellKnownEqualityComparer(_keycomparer))
{
// PERF: We don't want to rehash if _keycomparer is already a RandomizedObjectEqualityComparer since in some
@@ -965,7 +944,8 @@ namespace System.Collections {
rehash(buckets.Length, true);
}
}
-#endif
+#endif // !FEATURE_CORECLR
+#endif // FEATURE_RANDOMIZED_STRING_HASHING
return;
}
@@ -990,6 +970,7 @@ namespace System.Collections {
#endif
#if FEATURE_RANDOMIZED_STRING_HASHING
+#if !FEATURE_CORECLR
if(ntry > HashHelpers.HashCollisionThreshold && HashHelpers.IsWellKnownEqualityComparer(_keycomparer))
{
// PERF: We don't want to rehash if _keycomparer is already a RandomizedObjectEqualityComparer since in some
@@ -1000,6 +981,7 @@ namespace System.Collections {
rehash(buckets.Length, true);
}
}
+#endif // !FEATURE_CORECLR
#endif
return;
}
@@ -1037,6 +1019,7 @@ namespace System.Collections {
#endif
#if FEATURE_RANDOMIZED_STRING_HASHING
+#if !FEATURE_CORECLR
if(buckets.Length > HashHelpers.HashCollisionThreshold && HashHelpers.IsWellKnownEqualityComparer(_keycomparer))
{
// PERF: We don't want to rehash if _keycomparer is already a RandomizedObjectEqualityComparer since in some
@@ -1047,6 +1030,7 @@ namespace System.Collections {
rehash(buckets.Length, true);
}
}
+#endif // !FEATURE_CORECLR
#endif
return;
}
@@ -1333,9 +1317,6 @@ namespace System.Collections {
_hashtable.CopyKeys(array, arrayIndex);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual IEnumerator GetEnumerator() {
return new HashtableEnumerator(_hashtable, HashtableEnumerator.Keys);
}
@@ -1377,9 +1358,6 @@ namespace System.Collections {
_hashtable.CopyValues(array, arrayIndex);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual IEnumerator GetEnumerator() {
return new HashtableEnumerator(_hashtable, HashtableEnumerator.Values);
}
@@ -1455,9 +1433,6 @@ namespace System.Collections {
}
public override Object this[Object key] {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
return _table[key];
}
@@ -1484,16 +1459,10 @@ namespace System.Collections {
}
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override bool Contains(Object key) {
return _table.Contains(key);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override bool ContainsKey(Object key) {
if (key == null) {
throw new ArgumentNullException("key", Environment.GetResourceString("ArgumentNull_Key"));
@@ -1600,9 +1569,6 @@ namespace System.Collections {
}
public virtual Object Key {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
if (current == false) throw new InvalidOperationException(Environment.GetResourceString(ResId.InvalidOperation_EnumNotStarted));
return currentKey;
@@ -1647,9 +1613,6 @@ namespace System.Collections {
}
public virtual Object Value {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
if (current == false) throw new InvalidOperationException(Environment.GetResourceString(ResId.InvalidOperation_EnumOpCantHappen));
return currentValue;
diff --git a/mcs/class/referencesource/mscorlib/system/collections/icollection.cs b/mcs/class/referencesource/mscorlib/system/collections/icollection.cs
index a2fca2b769f..b67bf0aaa87 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/icollection.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/icollection.cs
@@ -7,7 +7,7 @@
**
** Interface: ICollection
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Base interface for all collections.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/icomparer.cs b/mcs/class/referencesource/mscorlib/system/collections/icomparer.cs
index f08dfd523a8..4d933560bdb 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/icomparer.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/icomparer.cs
@@ -7,7 +7,7 @@
**
** Interface: IComparer
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Interface for comparing two Objects.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/idictionary.cs b/mcs/class/referencesource/mscorlib/system/collections/idictionary.cs
index e0fddb21c01..b74b67268f8 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/idictionary.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/idictionary.cs
@@ -7,7 +7,7 @@
**
** Interface: IDictionary
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Base interface for all dictionaries.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/idictionaryenumerator.cs b/mcs/class/referencesource/mscorlib/system/collections/idictionaryenumerator.cs
index fea1ae27616..76bbd8c554b 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/idictionaryenumerator.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/idictionaryenumerator.cs
@@ -7,7 +7,7 @@
**
** Interface: IDictionaryEnumerator
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Base interface for dictionary enumerators.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/ienumerable.cs b/mcs/class/referencesource/mscorlib/system/collections/ienumerable.cs
index 77f172ddfdc..e6d7ac9216a 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/ienumerable.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/ienumerable.cs
@@ -7,7 +7,7 @@
**
** Interface: IEnumerable
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Interface for classes providing IEnumerators
diff --git a/mcs/class/referencesource/mscorlib/system/collections/ienumerator.cs b/mcs/class/referencesource/mscorlib/system/collections/ienumerator.cs
index 7a7bf63d07d..f9837c5c399 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/ienumerator.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/ienumerator.cs
@@ -7,7 +7,7 @@
**
** Interface: IEnumerator
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Base interface for all enumerators.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/iequalitycomparer.cs b/mcs/class/referencesource/mscorlib/system/collections/iequalitycomparer.cs
index 1432da48698..0413fa79161 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/iequalitycomparer.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/iequalitycomparer.cs
@@ -7,7 +7,7 @@
**
** Interface: IEqualityComparer
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: A mechanism to expose a simplified infrastructure for
diff --git a/mcs/class/referencesource/mscorlib/system/collections/ihashcodeprovider.cs b/mcs/class/referencesource/mscorlib/system/collections/ihashcodeprovider.cs
index 86e65ac59af..4e03ab2e4a4 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/ihashcodeprovider.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/ihashcodeprovider.cs
@@ -7,7 +7,7 @@
**
** Interface: IHashCodeProvider
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: A bunch of strings.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/ilist.cs b/mcs/class/referencesource/mscorlib/system/collections/ilist.cs
index 363fdf6cac3..fef171df6e4 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/ilist.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/ilist.cs
@@ -7,7 +7,7 @@
**
** Interface: IList
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Base interface for all Lists.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/istructuralequatable.cs b/mcs/class/referencesource/mscorlib/system/collections/istructuralequatable.cs
index d61ed827202..6a01334a160 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/istructuralequatable.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/istructuralequatable.cs
@@ -4,4 +4,4 @@ namespace System.Collections {
Boolean Equals(Object other, IEqualityComparer comparer);
int GetHashCode(IEqualityComparer comparer);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/mscorlib/system/collections/keyvaluepairs.cs b/mcs/class/referencesource/mscorlib/system/collections/keyvaluepairs.cs
index 345e2b506f4..06aeb09750c 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/keyvaluepairs.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/keyvaluepairs.cs
@@ -7,7 +7,7 @@
**
** Class: KeyValuePairs
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: KeyValuePairs to display items in collection class under debugger
diff --git a/mcs/class/referencesource/mscorlib/system/collections/listdictionaryinternal.cs b/mcs/class/referencesource/mscorlib/system/collections/listdictionaryinternal.cs
index db4fe1d05ac..b24b03ba769 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/listdictionaryinternal.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/listdictionaryinternal.cs
@@ -8,7 +8,7 @@ using System.Diagnostics.Contracts;
**
** Class: ListDictionaryInternal
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: List for exceptions.
diff --git a/mcs/class/referencesource/mscorlib/system/collections/objectmodel/collection.cs b/mcs/class/referencesource/mscorlib/system/collections/objectmodel/collection.cs
index 4aa3046c024..81eda7eda84 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/objectmodel/collection.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/objectmodel/collection.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Collections.ObjectModel
@@ -24,9 +24,6 @@ namespace System.Collections.ObjectModel
[NonSerialized]
private Object _syncRoot;
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public Collection() {
items = new List<T>();
}
@@ -39,9 +36,6 @@ namespace System.Collections.ObjectModel
}
public int Count {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return items.Count; }
}
@@ -50,9 +44,6 @@ namespace System.Collections.ObjectModel
}
public T this[int index] {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return items[index]; }
set {
if( items.IsReadOnly) {
@@ -76,9 +67,6 @@ namespace System.Collections.ObjectModel
InsertItem(index, item);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public void Clear() {
if( items.IsReadOnly) {
ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_ReadOnlyCollection);
@@ -87,16 +75,10 @@ namespace System.Collections.ObjectModel
ClearItems();
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public void CopyTo(T[] array, int index) {
items.CopyTo(array, index);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public bool Contains(T item) {
return items.Contains(item);
}
@@ -105,9 +87,6 @@ namespace System.Collections.ObjectModel
return items.GetEnumerator();
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public int IndexOf(T item) {
return items.IndexOf(item);
}
@@ -147,23 +126,14 @@ namespace System.Collections.ObjectModel
RemoveItem(index);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
protected virtual void ClearItems() {
items.Clear();
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
protected virtual void InsertItem(int index, T item) {
items.Insert(index, item);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
protected virtual void RemoveItem(int index) {
items.RemoveAt(index);
}
diff --git a/mcs/class/referencesource/mscorlib/system/collections/objectmodel/keyedcollection.cs b/mcs/class/referencesource/mscorlib/system/collections/objectmodel/keyedcollection.cs
index 014d889c47e..6fb1579254a 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/objectmodel/keyedcollection.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/objectmodel/keyedcollection.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Collections.ObjectModel
diff --git a/mcs/class/referencesource/mscorlib/system/collections/objectmodel/readonlycollection.cs b/mcs/class/referencesource/mscorlib/system/collections/objectmodel/readonlycollection.cs
index c6a87853f5f..30ab5372fc6 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/objectmodel/readonlycollection.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/objectmodel/readonlycollection.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Collections.ObjectModel
@@ -32,22 +32,13 @@ namespace System.Collections.ObjectModel
}
public int Count {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return list.Count; }
}
public T this[int index] {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return list[index]; }
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public bool Contains(T value) {
return list.Contains(value);
}
@@ -56,9 +47,6 @@ namespace System.Collections.ObjectModel
list.CopyTo(array, index);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public IEnumerator<T> GetEnumerator() {
return list.GetEnumerator();
}
@@ -196,9 +184,6 @@ namespace System.Collections.ObjectModel
}
object IList.this[int index] {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return list[index]; }
set {
ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_ReadOnlyCollection);
diff --git a/mcs/class/referencesource/mscorlib/system/collections/objectmodel/readonlydictionary.cs b/mcs/class/referencesource/mscorlib/system/collections/objectmodel/readonlydictionary.cs
index 57b650ca388..6be6429848e 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/objectmodel/readonlydictionary.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/objectmodel/readonlydictionary.cs
@@ -1,4 +1,4 @@
-// ==++==
+// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
@@ -353,7 +353,7 @@ namespace System.Collections.ObjectModel
[DebuggerTypeProxy(typeof(Mscorlib_CollectionDebugView<>))]
[DebuggerDisplay("Count = {Count}")]
[Serializable]
- public sealed class KeyCollection : ICollection<TKey>, ICollection {
+ public sealed class KeyCollection : ICollection<TKey>, ICollection, IReadOnlyCollection<TKey> {
private readonly ICollection<TKey> m_collection;
[NonSerialized]
private Object m_syncRoot;
@@ -452,7 +452,7 @@ namespace System.Collections.ObjectModel
[DebuggerTypeProxy(typeof(Mscorlib_CollectionDebugView<>))]
[DebuggerDisplay("Count = {Count}")]
[Serializable]
- public sealed class ValueCollection : ICollection<TValue>, ICollection {
+ public sealed class ValueCollection : ICollection<TValue>, ICollection, IReadOnlyCollection<TValue> {
private readonly ICollection<TValue> m_collection;
[NonSerialized]
private Object m_syncRoot;
diff --git a/mcs/class/referencesource/mscorlib/system/collections/queue.cs b/mcs/class/referencesource/mscorlib/system/collections/queue.cs
index ba67a2a3154..edfcd087341 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/queue.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/queue.cs
@@ -7,7 +7,7 @@
**
** Class: Queue
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Purpose: A circular-array implementation of a queue.
**
diff --git a/mcs/class/referencesource/mscorlib/system/collections/readonlycollectionbase.cs b/mcs/class/referencesource/mscorlib/system/collections/readonlycollectionbase.cs
index cf07d664e8f..c83271d24b9 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/readonlycollectionbase.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/readonlycollectionbase.cs
@@ -5,7 +5,7 @@
// ==--==
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Collections {
diff --git a/mcs/class/referencesource/mscorlib/system/collections/sortedlist.cs b/mcs/class/referencesource/mscorlib/system/collections/sortedlist.cs
index 011f33b5fb2..8cc406baf02 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/sortedlist.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/sortedlist.cs
@@ -7,7 +7,7 @@
**
** Class: SortedList
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Purpose: A sorted dictionary.
**
diff --git a/mcs/class/referencesource/mscorlib/system/collections/stack.cs b/mcs/class/referencesource/mscorlib/system/collections/stack.cs
index 158089a6216..de575ffbdae 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/stack.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/stack.cs
@@ -7,7 +7,7 @@
**
** Class: Stack
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Purpose: An array implementation of a stack.
**
@@ -30,7 +30,7 @@ namespace System.Collections {
private Object[] _array; // Storage for stack elements
[ContractPublicPropertyName("Count")]
private int _size; // Number of items in the stack.
- private int _version; // Used to keep enumerator in [....] w/ collection.
+ private int _version; // Used to keep enumerator in sync w/ collection.
[NonSerialized]
private Object _syncRoot;
diff --git a/mcs/class/referencesource/mscorlib/system/collections/structuralcomparisons.cs b/mcs/class/referencesource/mscorlib/system/collections/structuralcomparisons.cs
index 4d4252aaa22..e5a1aa5563b 100644
--- a/mcs/class/referencesource/mscorlib/system/collections/structuralcomparisons.cs
+++ b/mcs/class/referencesource/mscorlib/system/collections/structuralcomparisons.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/cominterfaces.cs b/mcs/class/referencesource/mscorlib/system/cominterfaces.cs
index 968579c87b1..4abde7c89e2 100644
--- a/mcs/class/referencesource/mscorlib/system/cominterfaces.cs
+++ b/mcs/class/referencesource/mscorlib/system/cominterfaces.cs
@@ -22,6 +22,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _Activator
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -29,6 +30,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
[GuidAttribute("917B14D0-2D9E-38B8-92A9-381ACF52F7C0")]
@@ -38,6 +40,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _Attribute
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -45,6 +48,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
[GuidAttribute("C281C7F1-4AA9-3517-961A-463CFED57E75")]
@@ -54,6 +58,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _Thread
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -61,5 +66,6 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/compatibilityswitches.cs b/mcs/class/referencesource/mscorlib/system/compatibilityswitches.cs
index fecb68f2c89..3eff91d486b 100644
--- a/mcs/class/referencesource/mscorlib/system/compatibilityswitches.cs
+++ b/mcs/class/referencesource/mscorlib/system/compatibilityswitches.cs
@@ -22,6 +22,11 @@ namespace System
private static bool s_isAppEarlierThanWindowsPhoneMango;
#endif //FEATURE_LEGACYNETCF
+#if FEATURE_CORECLR
+ private static bool s_isAppSilverlight81; // The app targets SL8.1 version
+ private static bool s_useLatestBehaviorWhenTFMNotSpecified; // Which behavior to use when the TFM is not specified.
+#endif //FEATURE_CORECLR
+
#if !FEATURE_CORECLR
private static bool s_isNetFx40TimeSpanLegacyFormatMode;
private static bool s_isNetFx40LegacySecurityPolicy;
@@ -48,6 +53,12 @@ namespace System
s_isAppEarlierThanSilverlight4 = IsCompatibilitySwitchSet("APP_EARLIER_THAN_SL4.0");
#endif //FEATURE_CORECLR && !FEATURE_CORESYSTEM
+
+#if FEATURE_CORECLR
+ s_isAppSilverlight81 = IsCompatibilitySwitchSet("WindowsPhone_5.1.0.0");
+ s_useLatestBehaviorWhenTFMNotSpecified = IsCompatibilitySwitchSet("UseLatestBehaviorWhenTFMMissing");
+#endif //FEATURE_CORECLR
+
#if FEATURE_LEGACYNETCF
s_isAppEarlierThanWindowsPhoneMango = IsCompatibilitySwitchSet("WindowsPhone_3.7.0.0");
s_isAppEarlierThanWindowsPhone8 = s_isAppEarlierThanWindowsPhoneMango ||
@@ -66,9 +77,6 @@ namespace System
public static bool IsAppEarlierThanSilverlight4
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
#if FEATURE_CORECLR && !FEATURE_CORESYSTEM
@@ -79,11 +87,33 @@ namespace System
}
}
+#if FEATURE_CORECLR
+ /// <summary>
+ /// This property returns whether the app is hosted under SL 8.1 version
+ /// </summary>
+ internal static bool IsAppSilverlight81
+ {
+ get
+ {
+ // PS - Do not use this property for adding quirks. Please use the exposed properties of BinaryCompatiblity class instead.
+ return s_isAppSilverlight81;
+ }
+ }
+
+ /// <summary>
+ /// This property returns whether to give the latest behavior when the TFM is missing
+ /// </summary>
+ internal static bool UseLatestBehaviorWhenTFMNotSpecified
+ {
+ get
+ {
+ return s_useLatestBehaviorWhenTFMNotSpecified;
+ }
+ }
+#endif //FEATURE_CORECLR
+
public static bool IsAppEarlierThanWindowsPhone8
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
#if FEATURE_LEGACYNETCF
@@ -96,9 +126,6 @@ namespace System
public static bool IsAppEarlierThanWindowsPhoneMango
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
#if FEATURE_LEGACYNETCF
@@ -111,9 +138,6 @@ namespace System
public static bool IsNetFx40TimeSpanLegacyFormatMode
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
#if !FEATURE_CORECLR
@@ -126,9 +150,6 @@ namespace System
public static bool IsNetFx40LegacySecurityPolicy
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
#if !FEATURE_CORECLR
@@ -141,9 +162,6 @@ namespace System
public static bool IsNetFx45LegacyManagedDeflateStream
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
#if !FEATURE_CORECLR
diff --git a/mcs/class/referencesource/mscorlib/system/configuration/assemblies/assemblyhashalgorithm.cs b/mcs/class/referencesource/mscorlib/system/configuration/assemblies/assemblyhashalgorithm.cs
index 645bf9ddd83..d433f758f1d 100644
--- a/mcs/class/referencesource/mscorlib/system/configuration/assemblies/assemblyhashalgorithm.cs
+++ b/mcs/class/referencesource/mscorlib/system/configuration/assemblies/assemblyhashalgorithm.cs
@@ -24,13 +24,11 @@ namespace System.Configuration.Assemblies {
None = 0,
MD5 = 0x8003,
SHA1 = 0x8004,
-#if !FEATURE_CORECLR || FEATURE_NETCORE
[ComVisible(false)]
SHA256 = 0x800c,
[ComVisible(false)]
SHA384 = 0x800d,
[ComVisible(false)]
SHA512 = 0x800e,
-#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/console.cs b/mcs/class/referencesource/mscorlib/system/console.cs
index 7e570bfb60c..c4143077591 100644
--- a/mcs/class/referencesource/mscorlib/system/console.cs
+++ b/mcs/class/referencesource/mscorlib/system/console.cs
@@ -1962,68 +1962,86 @@ namespace System {
_error = newError;
}
}
-
+
+ //
+ // Give a hint to the code generator to not inline the common console methods. The console methods are
+ // not performance critical. It is unnecessary code bloat to have them inlined.
+ //
+ // Moreover, simple repros for codegen bugs are often console-based. It is tedious to manually filter out
+ // the inlined console writelines from them.
+ //
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int Read()
{
return In.Read();
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static String ReadLine()
{
return In.ReadLine();
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine()
{
Out.WriteLine();
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(bool value)
{
Out.WriteLine(value);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(char value)
{
Out.WriteLine(value);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(char[] buffer)
{
Out.WriteLine(buffer);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(char[] buffer, int index, int count)
{
Out.WriteLine(buffer, index, count);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(decimal value)
{
Out.WriteLine(value);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(double value)
{
Out.WriteLine(value);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(float value)
{
Out.WriteLine(value);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(int value)
{
Out.WriteLine(value);
@@ -2031,12 +2049,14 @@ namespace System {
[HostProtection(UI=true)]
[CLSCompliant(false)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(uint value)
{
Out.WriteLine(value);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(long value)
{
Out.WriteLine(value);
@@ -2044,18 +2064,21 @@ namespace System {
[HostProtection(UI=true)]
[CLSCompliant(false)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(ulong value)
{
Out.WriteLine(value);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(Object value)
{
Out.WriteLine(value);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(String value)
{
Out.WriteLine(value);
@@ -2063,18 +2086,21 @@ namespace System {
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(String format, Object arg0)
{
Out.WriteLine(format, arg0);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(String format, Object arg0, Object arg1)
{
Out.WriteLine(format, arg0, arg1);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(String format, Object arg0, Object arg1, Object arg2)
{
Out.WriteLine(format, arg0, arg1, arg2);
@@ -2082,6 +2108,7 @@ namespace System {
[HostProtection(UI=true)]
[CLSCompliant(false)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(String format, Object arg0, Object arg1, Object arg2,Object arg3, __arglist)
{
Object[] objArgs;
@@ -2110,6 +2137,7 @@ namespace System {
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void WriteLine(String format, params Object[] arg)
{
if (arg == null) // avoid ArgumentNullException from String.Format
@@ -2119,18 +2147,21 @@ namespace System {
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(String format, Object arg0)
{
Out.Write(format, arg0);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(String format, Object arg0, Object arg1)
{
Out.Write(format, arg0, arg1);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(String format, Object arg0, Object arg1, Object arg2)
{
Out.Write(format, arg0, arg1, arg2);
@@ -2138,6 +2169,7 @@ namespace System {
[HostProtection(UI=true)]
[CLSCompliant(false)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(String format, Object arg0, Object arg1, Object arg2, Object arg3, __arglist)
{
Object[] objArgs;
@@ -2166,6 +2198,7 @@ namespace System {
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(String format, params Object[] arg)
{
if (arg == null) // avoid ArgumentNullException from String.Format
@@ -2175,48 +2208,56 @@ namespace System {
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(bool value)
{
Out.Write(value);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(char value)
{
Out.Write(value);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(char[] buffer)
{
Out.Write(buffer);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(char[] buffer, int index, int count)
{
Out.Write(buffer, index, count);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(double value)
{
Out.Write (value);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(decimal value)
{
Out.Write (value);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(float value)
{
Out.Write (value);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(int value)
{
Out.Write (value);
@@ -2224,12 +2265,14 @@ namespace System {
[HostProtection(UI=true)]
[CLSCompliant(false)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(uint value)
{
Out.Write (value);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(long value)
{
Out.Write (value);
@@ -2237,18 +2280,21 @@ namespace System {
[HostProtection(UI=true)]
[CLSCompliant(false)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(ulong value)
{
Out.Write (value);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(Object value)
{
Out.Write (value);
}
[HostProtection(UI=true)]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
public static void Write(String value)
{
Out.Write (value);
diff --git a/mcs/class/referencesource/mscorlib/system/contextboundobject.cs b/mcs/class/referencesource/mscorlib/system/contextboundobject.cs
index f8f166cbd0a..b0290241aa4 100644
--- a/mcs/class/referencesource/mscorlib/system/contextboundobject.cs
+++ b/mcs/class/referencesource/mscorlib/system/contextboundobject.cs
@@ -7,7 +7,7 @@
**
** File: ContextBoundObject.cs
**<EMAIL>
-** Author(s): Tarun Anand ([....])
+** Author(s): Tarun Anand (TarunA)
**</EMAIL>
**
** Purpose: Defines the root type for all context bound types
diff --git a/mcs/class/referencesource/mscorlib/system/currency.cs b/mcs/class/referencesource/mscorlib/system/currency.cs
index 3b4f7b3ccbd..26dd636cb02 100644
--- a/mcs/class/referencesource/mscorlib/system/currency.cs
+++ b/mcs/class/referencesource/mscorlib/system/currency.cs
@@ -10,9 +10,6 @@ namespace System {
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[Serializable]
internal struct Currency
{
@@ -20,9 +17,6 @@ namespace System {
// Constructs a Currency from a Decimal value.
//
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
public Currency(Decimal value) {
m_value = Decimal.ToCurrency(value).m_value;
}
diff --git a/mcs/class/referencesource/mscorlib/system/datetime.cs b/mcs/class/referencesource/mscorlib/system/datetime.cs
index 930ed91fd50..c09abb0e05b 100644
--- a/mcs/class/referencesource/mscorlib/system/datetime.cs
+++ b/mcs/class/referencesource/mscorlib/system/datetime.cs
@@ -84,7 +84,6 @@ namespace System {
private const int DaysTo1899 = DaysPer400Years * 4 + DaysPer100Years * 3 - 367;
// Number of days from 1/1/0001 to 12/31/1969
internal const int DaysTo1970 = DaysPer400Years * 4 + DaysPer100Years * 3 + DaysPer4Years * 17 + DaysPerYear; // 719,162
-
// Number of days from 1/1/0001 to 12/31/9999
private const int DaysTo10000 = DaysPer400Years * 25 - 366; // 3652059
@@ -324,18 +323,12 @@ namespace System {
internal Int64 InternalTicks {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
return (Int64)(dateData & TicksMask);
}
}
private UInt64 InternalKind {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
return (dateData & FlagsMask);
}
@@ -715,9 +708,6 @@ namespace System {
return TimeZoneInfo.Local.IsDaylightSavingTime(this, TimeZoneInfoOptions.NoThrowOnInvalidTime);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static DateTime SpecifyKind(DateTime value, DateTimeKind kind) {
return new DateTime(value.InternalTicks, kind);
}
@@ -749,9 +739,6 @@ namespace System {
// Return the underlying data, without adjust local times to the right time zone. Needed if performance
// or compatability are important.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal Int64 ToBinaryRaw() {
return (Int64)dateData;
}
@@ -761,9 +748,6 @@ namespace System {
// zero (midnight).
//
public DateTime Date {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
Int64 ticks = InternalTicks;
return new DateTime((UInt64)(ticks - ticks % TicksPerDay) | InternalKind);
@@ -834,9 +818,6 @@ namespace System {
// Thursday, 5 indicates Friday, and 6 indicates Saturday.
//
public DayOfWeek DayOfWeek {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
Contract.Ensures(Contract.Result<DayOfWeek>() >= DayOfWeek.Sunday);
Contract.Ensures(Contract.Result<DayOfWeek>() <= DayOfWeek.Saturday);
@@ -857,9 +838,6 @@ namespace System {
// Returns the hash code for this DateTime.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override int GetHashCode() {
Int64 ticks = InternalTicks;
return unchecked((int)ticks) ^ (int)(ticks >> 32);
@@ -869,9 +847,6 @@ namespace System {
// integer between 0 and 23.
//
public int Hour {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
Contract.Ensures(Contract.Result<int>() >= 0);
Contract.Ensures(Contract.Result<int>() < 24);
@@ -885,9 +860,6 @@ namespace System {
[Pure]
public DateTimeKind Kind {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
switch (InternalKind) {
case KindUnspecified:
@@ -904,9 +876,6 @@ namespace System {
// is an integer between 0 and 999.
//
public int Millisecond {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
Contract.Ensures(Contract.Result<int>() >= 0);
Contract.Ensures(Contract.Result<int>() < 1000);
@@ -918,9 +887,6 @@ namespace System {
// an integer between 0 and 59.
//
public int Minute {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
Contract.Ensures(Contract.Result<int>() >= 0);
Contract.Ensures(Contract.Result<int>() < 60);
@@ -964,9 +930,6 @@ namespace System {
public static DateTime UtcNow {
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
Contract.Ensures(Contract.Result<DateTime>().Kind == DateTimeKind.Utc);
// following code is tuned for speed. Don't change it without running benchmark.
@@ -996,9 +959,6 @@ namespace System {
// an integer between 0 and 59.
//
public int Second {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
Contract.Ensures(Contract.Result<int>() >= 0);
Contract.Ensures(Contract.Result<int>() < 60);
@@ -1020,9 +980,6 @@ namespace System {
// is a TimeSpan that indicates the time elapsed since midnight.
//
public TimeSpan TimeOfDay {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
return new TimeSpan(InternalTicks % TicksPerDay);
}
@@ -1033,9 +990,6 @@ namespace System {
// the returned value is zero (midnight).
//
public static DateTime Today {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
return DateTime.Now.Date;
}
@@ -1105,9 +1059,6 @@ namespace System {
return DateTimeParse.ParseExactMultiple(s, formats, DateTimeFormatInfo.GetInstance(provider), style);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public TimeSpan Subtract(DateTime value) {
return new TimeSpan(InternalTicks - value.InternalTicks);
}
@@ -1221,9 +1172,6 @@ namespace System {
return DateTimeFormat.Format(this, format, DateTimeFormatInfo.CurrentInfo);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public String ToString(IFormatProvider provider) {
Contract.Ensures(Contract.Result<String>() != null);
return DateTimeFormat.Format(this, null, DateTimeFormatInfo.GetInstance(provider));
@@ -1275,51 +1223,30 @@ namespace System {
return new DateTime((UInt64)(ticks - valueTicks) | d.InternalKind);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static TimeSpan operator -(DateTime d1, DateTime d2) {
return new TimeSpan(d1.InternalTicks - d2.InternalTicks);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool operator ==(DateTime d1, DateTime d2) {
return d1.InternalTicks == d2.InternalTicks;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool operator !=(DateTime d1, DateTime d2) {
return d1.InternalTicks != d2.InternalTicks;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool operator <(DateTime t1, DateTime t2) {
return t1.InternalTicks < t2.InternalTicks;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool operator <=(DateTime t1, DateTime t2) {
return t1.InternalTicks <= t2.InternalTicks;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool operator >(DateTime t1, DateTime t2) {
return t1.InternalTicks > t2.InternalTicks;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool operator >=(DateTime t1, DateTime t2) {
return t1.InternalTicks >= t2.InternalTicks;
}
@@ -1366,9 +1293,6 @@ namespace System {
// IConvertible implementation
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public TypeCode GetTypeCode() {
return TypeCode.DateTime;
}
@@ -1440,9 +1364,6 @@ namespace System {
}
/// <internalonly/>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
DateTime IConvertible.ToDateTime(IFormatProvider provider) {
return this;
}
diff --git a/mcs/class/referencesource/mscorlib/system/datetimeoffset.cs b/mcs/class/referencesource/mscorlib/system/datetimeoffset.cs
index 7f0348a838f..7db5c4ca8e1 100644
--- a/mcs/class/referencesource/mscorlib/system/datetimeoffset.cs
+++ b/mcs/class/referencesource/mscorlib/system/datetimeoffset.cs
@@ -43,10 +43,7 @@ namespace System {
private const long UnixEpochTicks = TimeSpan.TicksPerDay * DateTime.DaysTo1970; // 621,355,968,000,000,000
private const long UnixEpochSeconds = UnixEpochTicks / TimeSpan.TicksPerSecond; // 62,135,596,800
private const long UnixEpochMilliseconds = UnixEpochTicks / TimeSpan.TicksPerMillisecond; // 62,135,596,800,000
-
- internal const long UnixMinSeconds = DateTime.MinTicks / TimeSpan.TicksPerSecond - UnixEpochSeconds;
- internal const long UnixMaxSeconds = DateTime.MaxTicks / TimeSpan.TicksPerSecond - UnixEpochSeconds;
-
+
// Static Fields
public static readonly DateTimeOffset MinValue = new DateTimeOffset(DateTime.MinTicks, TimeSpan.Zero);
public static readonly DateTimeOffset MaxValue = new DateTimeOffset(DateTime.MaxTicks, TimeSpan.Zero);
@@ -477,9 +474,12 @@ namespace System {
}
public static DateTimeOffset FromUnixTimeSeconds(long seconds) {
- if (seconds < UnixMinSeconds || seconds > UnixMaxSeconds) {
+ const long MinSeconds = DateTime.MinTicks / TimeSpan.TicksPerSecond - UnixEpochSeconds;
+ const long MaxSeconds = DateTime.MaxTicks / TimeSpan.TicksPerSecond - UnixEpochSeconds;
+
+ if (seconds < MinSeconds || seconds > MaxSeconds) {
throw new ArgumentOutOfRangeException("seconds",
- string.Format(Environment.GetResourceString("ArgumentOutOfRange_Range"), UnixMinSeconds, UnixMaxSeconds));
+ string.Format(Environment.GetResourceString("ArgumentOutOfRange_Range"), MinSeconds, MaxSeconds));
}
long ticks = seconds * TimeSpan.TicksPerSecond + UnixEpochTicks;
diff --git a/mcs/class/referencesource/mscorlib/system/decimal.cs b/mcs/class/referencesource/mscorlib/system/decimal.cs
index 5e5bb6c6258..56428fd04bd 100644
--- a/mcs/class/referencesource/mscorlib/system/decimal.cs
+++ b/mcs/class/referencesource/mscorlib/system/decimal.cs
@@ -61,7 +61,8 @@ namespace System {
// the range of the Decimal type.
[StructLayout(LayoutKind.Sequential)]
[Serializable]
-[System.Runtime.InteropServices.ComVisible(true)]
+ [System.Runtime.InteropServices.ComVisible(true)]
+ [System.Runtime.Versioning.NonVersionable] // This only applies to field layout
#if GENERICS_WORK
public struct Decimal : IFormattable, IComparable, IConvertible, IDeserializationCallback
, IComparable<Decimal>, IEquatable<Decimal> {
@@ -238,9 +239,6 @@ namespace System {
#else
// Constructs a Decimal from a Currency value.
//
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
internal Decimal(Currency value) {
Decimal temp = Currency.ToDecimal(value);
this.lo = temp.lo;
diff --git a/mcs/class/referencesource/mscorlib/system/defaultbinder.cs b/mcs/class/referencesource/mscorlib/system/defaultbinder.cs
index af63a7c52b0..083df3ce606 100644
--- a/mcs/class/referencesource/mscorlib/system/defaultbinder.cs
+++ b/mcs/class/referencesource/mscorlib/system/defaultbinder.cs
@@ -227,10 +227,6 @@ namespace System {
{
if (argTypes[paramOrder[i][j]] == null || !CanConvertPrimitiveObjectToType(args[paramOrder[i][j]],(RuntimeType)pCls))
{
-#if !FEATURE_COMINTEROP
- if (CanChangeType(args[paramOrder[i][j]],pCls,cultureInfo))
- continue;
-#endif
break;
}
}
@@ -246,10 +242,6 @@ namespace System {
if (pCls.IsInstanceOfType(args[paramOrder[i][j]]))
continue;
}
-#if !FEATURE_COMINTEROP
- if (CanChangeType(args[paramOrder[i][j]],pCls,cultureInfo))
- continue;
-#endif
break;
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/delegate.cs b/mcs/class/referencesource/mscorlib/system/delegate.cs
index 5b1e854d2d8..3bc7e77bd0e 100644
--- a/mcs/class/referencesource/mscorlib/system/delegate.cs
+++ b/mcs/class/referencesource/mscorlib/system/delegate.cs
@@ -21,9 +21,6 @@ namespace System {
public abstract class Delegate : ICloneable, ISerializable
{
// _target is the object we will invoke on
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
internal Object _target;
@@ -34,9 +31,6 @@ namespace System {
// _methodPtr is a pointer to the method we will invoke
// It could be a small thunk if this is a static or UM call
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
internal IntPtr _methodPtr;
@@ -44,9 +38,6 @@ namespace System {
// whatever _methodPtr would have stored: and _methodPtr points to a
// small thunk which removes the "this" pointer before going on
// to _methodPtrAux.
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
internal IntPtr _methodPtrAux;
@@ -200,9 +191,6 @@ namespace System {
return GetType().GetHashCode();
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static Delegate Combine(Delegate a, Delegate b)
{
if ((Object)a == null) // cast to object for a more efficient test
@@ -583,9 +571,6 @@ namespace System {
return d;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool operator ==(Delegate d1, Delegate d2)
{
if ((Object)d1 == null)
@@ -774,9 +759,6 @@ namespace System {
[MethodImplAttribute(MethodImplOptions.InternalCall)]
internal extern IntPtr GetMulticastInvoke();
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization] // called from IL stubs
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
@@ -814,7 +796,7 @@ namespace System {
}
// These flags effect the way BindToMethodInfo and BindToMethodName are allowed to bind a delegate to a target method. Their
- // values must be kept in [....] with the definition in vm\comdelegate.h.
+ // values must be kept in sync with the definition in vm\comdelegate.h.
internal enum DelegateBindingFlags
{
StaticMethodOnly = 0x00000001, // Can only bind to static target methods
diff --git a/mcs/class/referencesource/mscorlib/system/deployment/cdf.cs b/mcs/class/referencesource/mscorlib/system/deployment/cdf.cs
index fec104162b6..969dfc9fc84 100644
--- a/mcs/class/referencesource/mscorlib/system/deployment/cdf.cs
+++ b/mcs/class/referencesource/mscorlib/system/deployment/cdf.cs
@@ -1,7 +1,3 @@
-#if !ISOLATION_IN_MSCORLIB
-#define FEATURE_COMINTEROP
-#endif
-
using System;
using System.IO;
using System.Runtime.InteropServices;
@@ -17,7 +13,6 @@ using System.Threading;
namespace System.Deployment.Internal.Isolation
{
-#if FEATURE_COMINTEROP
[ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown),Guid("285a8862-c84a-11d7-850f-005cd062464f")]
internal interface ISection
{
@@ -69,5 +64,4 @@ namespace System.Deployment.Internal.Isolation
uint Count { get; }
object GetItem(uint SectionId);
}
-#endif
}
diff --git a/mcs/class/referencesource/mscorlib/system/deployment/cmsinterop.cs b/mcs/class/referencesource/mscorlib/system/deployment/cmsinterop.cs
index 030011b9ca9..a3c78b7b63f 100644
--- a/mcs/class/referencesource/mscorlib/system/deployment/cmsinterop.cs
+++ b/mcs/class/referencesource/mscorlib/system/deployment/cmsinterop.cs
@@ -1,6 +1,3 @@
- #if !ISOLATION_IN_MSCORLIB
- #define FEATURE_COMINTEROP
- #endif
using System;
using System.IO;
@@ -14,7 +11,6 @@
namespace System.Deployment.Internal.Isolation.Manifest
{
- #if FEATURE_COMINTEROP
internal enum CMSSECTIONID
{
@@ -1595,7 +1591,6 @@
//++! end object [CompatibleFramework]
#endif
- #endif
}
diff --git a/mcs/class/referencesource/mscorlib/system/deployment/isolationinterop.cs b/mcs/class/referencesource/mscorlib/system/deployment/isolationinterop.cs
index 0e0f8e2023d..dc4a7da89a0 100644
--- a/mcs/class/referencesource/mscorlib/system/deployment/isolationinterop.cs
+++ b/mcs/class/referencesource/mscorlib/system/deployment/isolationinterop.cs
@@ -1,7 +1,3 @@
-#if !ISOLATION_IN_MSCORLIB
-#define FEATURE_COMINTEROP
-#endif
-
using System;
using System.Collections;
using System.Runtime.InteropServices;
@@ -12,7 +8,6 @@ using CMS=System.Deployment.Internal.Isolation.Manifest;
namespace System.Deployment.Internal.Isolation
{
-#if FEATURE_COMINTEROP
[StructLayout(LayoutKind.Sequential)]
internal struct BLOB : IDisposable
{
@@ -3333,6 +3328,5 @@ namespace System.Deployment.Internal.Isolation
[Out] out UInt32 Disposition
);
};
-#endif
}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/ICustomDebuggerNotification.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/ICustomDebuggerNotification.cs
index e91d5880fd0..3e397fea851 100644
--- a/mcs/class/referencesource/mscorlib/system/diagnostics/ICustomDebuggerNotification.cs
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/ICustomDebuggerNotification.cs
@@ -17,7 +17,7 @@ namespace System.Diagnostics {
// conditions. Users should implement this interface to be used as an argument to
// System.Diagnostics.Debugger.CustomNotification.
//
- // @dbgtodo [....]: when this goes public, it must be replaced by a custom attribute
+ // @dbgtodo dlaw: when this goes public, it must be replaced by a custom attribute
internal interface ICustomDebuggerNotification
{
// Interface does not need to be marked with the serializable attribute
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/assert.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/assert.cs
index 8b886267bc5..c737904c41a 100644
--- a/mcs/class/referencesource/mscorlib/system/diagnostics/assert.cs
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/assert.cs
@@ -15,8 +15,8 @@ namespace System.Diagnostics {
// Class which handles code asserts. Asserts are used to explicitly protect
// assumptions made in the code. In general if an assert fails, it indicates
- // a program bug so is immediately called to the attention of the user.
- // Only static data members, does not need to be marked with the serializable attribute
+ // a program
+
internal static class Assert
{
internal const int COR_E_FAILFAST = unchecked((int) 0x80131623);
@@ -102,13 +102,13 @@ namespace System.Diagnostics {
#else
// This assert dialog will be common for code contract failures. If a code contract failure
// occurs on an end user machine, we believe the right experience is to do a FailFast, which
- // will report this error via Watson, so someone could theoretically fix the bug.
- // However, in CLR v4, Environment.FailFast when a debugger is attached gives you an MDA
- // saying you've hit a bug in the runtime or unsafe managed code, and this is most likely caused
- // by heap corruption or a stack imbalance from COM Interop or P/Invoke. That extremely
- // misleading error isn't right, and we can temporarily work around this by using Environment.Exit
- // if a debugger is attached. The right fix is to plumb FailFast correctly through our native
- // Watson code, adding in a TypeOfReportedError for fatal managed errors.
+ // will report this error via Watson, so someone could theoretically fix the
+
+
+
+
+
+
if (Debugger.IsAttached)
Environment._Exit(exitCode);
else
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/contracts/contracts.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/contracts/contracts.cs
index fe943007d0b..e2fc7888f42 100644
--- a/mcs/class/referencesource/mscorlib/system/diagnostics/contracts/contracts.cs
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/contracts/contracts.cs
@@ -7,7 +7,7 @@
**
** Class: Contract
**
-** <OWNER>[....],mbarnett</OWNER>
+** <OWNER>Microsoft,mbarnett</OWNER>
**
** Purpose: The contract class allows for expressing preconditions,
** postconditions, and object invariants about methods in source
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/contracts/contractsbcl.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/contracts/contractsbcl.cs
index 39fca62b259..64659166499 100644
--- a/mcs/class/referencesource/mscorlib/system/diagnostics/contracts/contractsbcl.cs
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/contracts/contractsbcl.cs
@@ -7,7 +7,7 @@
**
** Class: Contract
**
-** <OWNER>maf,mbarnett,[....]</OWNER>
+** <OWNER>maf,mbarnett,Microsoft</OWNER>
**
** Implementation details of CLR Contracts.
**
@@ -113,7 +113,6 @@ namespace System.Diagnostics.Contracts {
System.Runtime.CompilerServices.ContractHelper.TriggerFailure(failureKind, displayMessage, userMessage, conditionText, innerException);
}
-#if !FEATURE_CORECLR || FEATURE_NETCORE
/// <summary>
/// Allows a managed application environment such as an interactive interpreter (IronPython)
/// to be notified of contract failures and
@@ -143,11 +142,9 @@ namespace System.Diagnostics.Contracts {
System.Runtime.CompilerServices.ContractHelper.InternalContractFailed -= value;
}
}
-#endif // !FEATURE_CORECLR || FEATURE_NETCORE
#endregion FailureBehavior
}
-#if !FEATURE_CORECLR || FEATURE_NETCORE // Not usable on Silverlight by end users due to security, and full trust users have not yet expressed an interest.
public sealed class ContractFailedEventArgs : EventArgs
{
private ContractFailureKind _failureKind;
@@ -207,7 +204,6 @@ namespace System.Diagnostics.Contracts {
_unwind = true;
}
}
-#endif // !FEATURE_CORECLR || FEATURE_NETCORE
#if FEATURE_SERIALIZATION
[Serializable]
@@ -279,15 +275,13 @@ namespace System.Runtime.CompilerServices
{
#region Private fields
-#if !FEATURE_CORECLR || FEATURE_NETCORE
private static volatile EventHandler<ContractFailedEventArgs> contractFailedEvent;
private static readonly Object lockObject = new Object();
-#endif // !FEATURE_CORECLR || FEATURE_NETCORE
+
internal const int COR_E_CODECONTRACTFAILED = unchecked((int)0x80131542);
#endregion
-#if !FEATURE_CORECLR || FEATURE_NETCORE
/// <summary>
/// Allows a managed application environment such as an interactive interpreter (IronPython) or a
/// web browser host (Jolt hosting Silverlight in IE) to be notified of contract failures and
@@ -325,7 +319,6 @@ namespace System.Runtime.CompilerServices
}
}
}
-#endif // !FEATURE_CORECLR || FEATURE_NETCORE
/// <summary>
/// Rewriter will call this method on a contract failure to allow listeners to be notified.
@@ -352,16 +345,13 @@ namespace System.Runtime.CompilerServices
string returnValue;
String displayMessage = "contract failed."; // Incomplete, but in case of OOM during resource lookup...
-#if !FEATURE_CORECLR || FEATURE_NETCORE
ContractFailedEventArgs eventArgs = null; // In case of OOM.
-#endif // !FEATURE_CORECLR || FEATURE_NETCORE
#if FEATURE_RELIABILITY_CONTRACTS
System.Runtime.CompilerServices.RuntimeHelpers.PrepareConstrainedRegions();
#endif
try
{
displayMessage = GetDisplayMessage(failureKind, userMessage, conditionText);
-#if !FEATURE_CORECLR || FEATURE_NETCORE
EventHandler<ContractFailedEventArgs> contractFailedEventLocal = contractFailedEvent;
if (contractFailedEventLocal != null)
{
@@ -389,17 +379,14 @@ namespace System.Runtime.CompilerServices
throw new ContractException(failureKind, displayMessage, userMessage, conditionText, innerException);
}
}
-#endif // !FEATURE_CORECLR || FEATURE_NETCORE
}
finally
{
-#if !FEATURE_CORECLR || FEATURE_NETCORE
if (eventArgs != null && eventArgs.Handled)
{
returnValue = null; // handled
}
else
-#endif // !FEATURE_CORECLR || FEATURE_NETCORE
{
returnValue = displayMessage;
}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/debugger.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/debugger.cs
index e31d0c26d13..60eeb750813 100644
--- a/mcs/class/referencesource/mscorlib/system/diagnostics/debugger.cs
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/debugger.cs
@@ -38,7 +38,7 @@ namespace System.Diagnostics
[ResourceConsumption(ResourceScope.Process)]
public static void Break()
{
- if (!IsDebuggerAttached())
+ if (!Debugger.IsAttached)
{
// Try and demand UnmanagedCodePermission. This is done in a try block because if this
// fails we want to be able to silently eat the exception and just return so
@@ -69,7 +69,7 @@ namespace System.Diagnostics
[ResourceConsumption(ResourceScope.Process)]
static void BreakCanThrow()
{
- if (!IsDebuggerAttached())
+ if (!Debugger.IsAttached)
{
#pragma warning disable 618
new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
@@ -93,7 +93,7 @@ namespace System.Diagnostics
[ResourceConsumption(ResourceScope.Machine)]
public static bool Launch()
{
- if (IsDebuggerAttached())
+ if (Debugger.IsAttached)
return (true);
// Try and demand UnmanagedCodePermission. This is done in a try block because if this
@@ -130,6 +130,14 @@ namespace System.Diagnostics
}
}
+ // Do not inline the slow path
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ private static void NotifyOfCrossThreadDependencySlow()
+ {
+ CrossThreadDependencyNotification notification = new CrossThreadDependencyNotification();
+ CustomNotification(notification);
+ }
+
// Sends a notification to the debugger to indicate that execution is about to enter a path
// involving a cross thread dependency. A debugger that has opted into this type of notification
// can take appropriate action on receipt. For example, performing a funceval normally requires
@@ -145,12 +153,10 @@ namespace System.Diagnostics
{
if (Debugger.IsAttached)
{
- CrossThreadDependencyNotification notification = new CrossThreadDependencyNotification();
- CustomNotification(notification);
+ NotifyOfCrossThreadDependencySlow();
}
}
-
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.Machine)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
@@ -158,18 +164,15 @@ namespace System.Diagnostics
// Returns whether or not a debugger is attached to the process.
//
- public static bool IsAttached
+ public static extern bool IsAttached
{
[ResourceExposure(ResourceScope.Process)]
[ResourceConsumption(ResourceScope.Process)]
- get { return IsDebuggerAttached(); }
+ [System.Security.SecuritySafeCritical] // auto-generated
+ [MethodImplAttribute(MethodImplOptions.InternalCall)]
+ get;
}
- [System.Security.SecuritySafeCritical] // auto-generated
- [ResourceExposure(ResourceScope.Process)]
- [MethodImplAttribute(MethodImplOptions.InternalCall)]
- private static extern bool IsDebuggerAttached();
-
// Constants representing the importance level of messages to be logged.
//
// An attached debugger can enable or disable which messages will
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/StubEnvironment.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/StubEnvironment.cs
new file mode 100644
index 00000000000..6c508e593c3
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/StubEnvironment.cs
@@ -0,0 +1,350 @@
+// Copyright (c) Microsoft Corporation. All rights reserved
+using System;
+using System.Collections.Generic;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing.Internal
+#else
+namespace System.Diagnostics.Tracing.Internal
+#endif
+{
+#if ES_BUILD_AGAINST_DOTNET_V35
+ using Microsoft.Internal;
+#endif
+ using Microsoft.Reflection;
+ using System.Reflection;
+
+ internal static class Environment
+ {
+ public static readonly string NewLine = System.Environment.NewLine;
+
+ public static int TickCount
+ { get { return System.Environment.TickCount; } }
+
+ public static string GetResourceString(string key, params object[] args)
+ {
+ string fmt = rm.GetString(key);
+ if (fmt != null)
+ return string.Format(fmt, args);
+
+ string sargs = String.Empty;
+ foreach(var arg in args)
+ {
+ if (sargs != String.Empty)
+ sargs += ", ";
+ sargs += arg.ToString();
+ }
+
+ return key + " (" + sargs + ")";
+ }
+
+ public static string GetRuntimeResourceString(string key, params object[] args)
+ {
+ return GetResourceString(key, args);
+ }
+
+ private static System.Resources.ResourceManager rm = new System.Resources.ResourceManager("Microsoft.Diagnostics.Tracing.Messages", typeof(Environment).Assembly());
+ }
+}
+
+#if ES_BUILD_AGAINST_DOTNET_V35
+
+namespace Microsoft.Diagnostics.Contracts.Internal
+{
+ internal class Contract
+ {
+ public static void Assert(bool invariant)
+ {
+ Assert(invariant, string.Empty);
+ }
+ public static void Assert(bool invariant, string message)
+ {
+ if (!invariant)
+ {
+ if (System.Diagnostics.Debugger.IsAttached)
+ System.Diagnostics.Debugger.Break();
+ throw new Exception("Assertion failed: " + message);
+ }
+ }
+ public static void EndContractBlock()
+ { }
+ }
+}
+
+
+namespace Microsoft.Internal
+{
+ using System.Text;
+
+ internal static class Tuple
+ {
+ public static Tuple<T1> Create<T1>(T1 item1)
+ {
+ return new Tuple<T1>(item1);
+ }
+
+ public static Tuple<T1, T2> Create<T1, T2>(T1 item1, T2 item2)
+ {
+ return new Tuple<T1, T2>(item1, item2);
+ }
+ }
+
+ [Serializable]
+ internal class Tuple<T1>
+ {
+ private readonly T1 m_Item1;
+
+ public T1 Item1 { get { return m_Item1; } }
+
+ public Tuple(T1 item1)
+ {
+ m_Item1 = item1;
+ }
+
+ public override string ToString()
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.Append("(");
+ sb.Append(m_Item1);
+ sb.Append(")");
+ return sb.ToString();
+ }
+
+ int Size
+ {
+ get
+ {
+ return 1;
+ }
+ }
+ }
+
+ [Serializable]
+ public class Tuple<T1, T2>
+ {
+ private readonly T1 m_Item1;
+ private readonly T2 m_Item2;
+
+ public T1 Item1 { get { return m_Item1; } }
+ public T2 Item2 { get { return m_Item2; } }
+
+ public Tuple(T1 item1, T2 item2)
+ {
+ m_Item1 = item1;
+ m_Item2 = item2;
+ }
+
+ public override string ToString()
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.Append("(");
+ sb.Append(m_Item1);
+ sb.Append(", ");
+ sb.Append(m_Item2);
+ sb.Append(")");
+ return sb.ToString();
+ }
+
+ int Size
+ {
+ get
+ {
+ return 2;
+ }
+ }
+ }
+}
+
+#endif
+
+namespace Microsoft.Reflection
+{
+ using System.Reflection;
+
+#if ES_BUILD_PCL
+ [Flags]
+ public enum BindingFlags
+ {
+ DeclaredOnly = 0x02, // Only look at the members declared on the Type
+ Instance = 0x04, // Include Instance members in search
+ Static = 0x08, // Include Static members in search
+ Public = 0x10, // Include Public members in search
+ NonPublic = 0x20, // Include Non-Public members in search
+ }
+
+ public enum TypeCode {
+ Empty = 0, // Null reference
+ Object = 1, // Instance that isn't a value
+ DBNull = 2, // Database null value
+ Boolean = 3, // Boolean
+ Char = 4, // Unicode character
+ SByte = 5, // Signed 8-bit integer
+ Byte = 6, // Unsigned 8-bit integer
+ Int16 = 7, // Signed 16-bit integer
+ UInt16 = 8, // Unsigned 16-bit integer
+ Int32 = 9, // Signed 32-bit integer
+ UInt32 = 10, // Unsigned 32-bit integer
+ Int64 = 11, // Signed 64-bit integer
+ UInt64 = 12, // Unsigned 64-bit integer
+ Single = 13, // IEEE 32-bit float
+ Double = 14, // IEEE 64-bit double
+ Decimal = 15, // Decimal
+ DateTime = 16, // DateTime
+ String = 18, // Unicode character string
+ }
+#endif
+ static class ReflectionExtensions
+ {
+#if !ES_BUILD_PCL
+
+ //
+ // Type extension methods
+ //
+ public static bool IsEnum(this Type type) { return type.IsEnum; }
+ public static bool IsAbstract(this Type type) { return type.IsAbstract; }
+ public static bool IsSealed(this Type type) { return type.IsSealed; }
+ public static Type BaseType(this Type type) { return type.BaseType; }
+ public static Assembly Assembly(this Type type) { return type.Assembly; }
+ public static TypeCode GetTypeCode(this Type type) { return Type.GetTypeCode(type); }
+
+ public static bool ReflectionOnly(this Assembly assm) { return assm.ReflectionOnly; }
+
+#else // ES_BUILD_PCL
+
+ //
+ // Type extension methods
+ //
+ public static bool IsEnum(this Type type) { return type.GetTypeInfo().IsEnum; }
+ public static bool IsAbstract(this Type type) { return type.GetTypeInfo().IsAbstract; }
+ public static bool IsSealed(this Type type) { return type.GetTypeInfo().IsSealed; }
+ public static Type BaseType(this Type type) { return type.GetTypeInfo().BaseType; }
+ public static Assembly Assembly(this Type type) { return type.GetTypeInfo().Assembly; }
+
+ public static MethodInfo[] GetMethods(this Type type, BindingFlags flags)
+ {
+ // Minimal implementation to cover only the cases we need
+ System.Diagnostics.Debug.Assert((flags & BindingFlags.DeclaredOnly) != 0);
+ System.Diagnostics.Debug.Assert((flags & ~(BindingFlags.DeclaredOnly|BindingFlags.Instance|BindingFlags.Static|BindingFlags.Public|BindingFlags.NonPublic)) == 0);
+ Func<MethodInfo, bool> visFilter;
+ Func<MethodInfo, bool> instFilter;
+ switch (flags & (BindingFlags.Public | BindingFlags.NonPublic))
+ {
+ case 0: visFilter = mi => false; break;
+ case BindingFlags.Public: visFilter = mi => mi.IsPublic; break;
+ case BindingFlags.NonPublic: visFilter = mi => !mi.IsPublic; break;
+ default: visFilter = mi => true; break;
+ }
+ switch (flags & (BindingFlags.Instance | BindingFlags.Static))
+ {
+ case 0: instFilter = mi => false; break;
+ case BindingFlags.Instance: instFilter = mi => !mi.IsStatic; break;
+ case BindingFlags.Static: instFilter = mi => mi.IsStatic; break;
+ default: instFilter = mi => true; break;
+ }
+ List<MethodInfo> methodInfos = new List<MethodInfo>();
+ foreach (var declaredMethod in type.GetTypeInfo().DeclaredMethods)
+ {
+ if (visFilter(declaredMethod) && instFilter(declaredMethod))
+ methodInfos.Add(declaredMethod);
+ }
+ return methodInfos.ToArray();
+ }
+ public static FieldInfo[] GetFields(this Type type, BindingFlags flags)
+ {
+ // Minimal implementation to cover only the cases we need
+ System.Diagnostics.Debug.Assert((flags & BindingFlags.DeclaredOnly) != 0);
+ System.Diagnostics.Debug.Assert((flags & ~(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)) == 0);
+ Func<FieldInfo, bool> visFilter;
+ Func<FieldInfo, bool> instFilter;
+ switch (flags & (BindingFlags.Public | BindingFlags.NonPublic))
+ {
+ case 0: visFilter = fi => false; break;
+ case BindingFlags.Public: visFilter = fi => fi.IsPublic; break;
+ case BindingFlags.NonPublic: visFilter = fi => !fi.IsPublic; break;
+ default: visFilter = fi => true; break;
+ }
+ switch (flags & (BindingFlags.Instance | BindingFlags.Static))
+ {
+ case 0: instFilter = fi => false; break;
+ case BindingFlags.Instance: instFilter = fi => !fi.IsStatic; break;
+ case BindingFlags.Static: instFilter = fi => fi.IsStatic; break;
+ default: instFilter = fi => true; break;
+ }
+ List<FieldInfo> fieldInfos = new List<FieldInfo>();
+ foreach (var declaredField in type.GetTypeInfo().DeclaredFields)
+ {
+ if (visFilter(declaredField) && instFilter(declaredField))
+ fieldInfos.Add(declaredField);
+ }
+ return fieldInfos.ToArray();
+ }
+ public static Type GetNestedType(this Type type, string nestedTypeName)
+ {
+ TypeInfo ti = null;
+ foreach(var nt in type.GetTypeInfo().DeclaredNestedTypes)
+ {
+ if (nt.Name == nestedTypeName)
+ {
+ ti = nt;
+ break;
+ }
+ }
+ return ti == null ? null : ti.AsType();
+ }
+ public static TypeCode GetTypeCode(this Type type)
+ {
+ if (type == typeof(bool)) return TypeCode.Boolean;
+ else if (type == typeof(byte)) return TypeCode.Byte;
+ else if (type == typeof(char)) return TypeCode.Char;
+ else if (type == typeof(ushort)) return TypeCode.UInt16;
+ else if (type == typeof(uint)) return TypeCode.UInt32;
+ else if (type == typeof(ulong)) return TypeCode.UInt64;
+ else if (type == typeof(sbyte)) return TypeCode.SByte;
+ else if (type == typeof(short)) return TypeCode.Int16;
+ else if (type == typeof(int)) return TypeCode.Int32;
+ else if (type == typeof(long)) return TypeCode.Int64;
+ else if (type == typeof(string)) return TypeCode.String;
+ else if (type == typeof(float)) return TypeCode.Single;
+ else if (type == typeof(double)) return TypeCode.Double;
+ else if (type == typeof(DateTime)) return TypeCode.DateTime;
+ else if (type == (typeof(Decimal))) return TypeCode.Decimal;
+ else return TypeCode.Object;
+ }
+
+ //
+ // FieldInfo extension methods
+ //
+ public static object GetRawConstantValue(this FieldInfo fi)
+ { return fi.GetValue(null); }
+
+ //
+ // Assembly extension methods
+ //
+ public static bool ReflectionOnly(this Assembly assm)
+ {
+ // In PCL we can't load in reflection-only context
+ return false;
+ }
+
+#endif
+ }
+}
+
+// Defining some no-ops in PCL builds
+#if ES_BUILD_PCL
+namespace System.Security
+{
+ class SuppressUnmanagedCodeSecurityAttribute : Attribute { }
+
+ enum SecurityAction { Demand }
+}
+namespace System.Security.Permissions
+{
+ class HostProtectionAttribute : Attribute { public bool MayLeakOnAbort { get; set; } }
+ class PermissionSetAttribute : Attribute
+ {
+ public PermissionSetAttribute(System.Security.SecurityAction action) { }
+ public bool Unrestricted { get; set; }
+ }
+}
+#endif
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/ArrayTypeInfo.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/ArrayTypeInfo.cs
new file mode 100644
index 00000000000..778fb0fab75
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/ArrayTypeInfo.cs
@@ -0,0 +1,60 @@
+using System;
+using System.Collections.Generic;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ internal sealed class ArrayTypeInfo<ElementType>
+ : TraceLoggingTypeInfo<ElementType[]>
+ {
+ private readonly TraceLoggingTypeInfo<ElementType> elementInfo;
+
+ public ArrayTypeInfo(TraceLoggingTypeInfo<ElementType> elementInfo)
+ {
+ this.elementInfo = elementInfo;
+ }
+
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.BeginBufferedArray();
+ this.elementInfo.WriteMetadata(collector, name, format);
+ collector.EndBufferedArray();
+ }
+
+ public override void WriteData(
+ TraceLoggingDataCollector collector,
+ ref ElementType[] value)
+ {
+ var bookmark = collector.BeginBufferedArray();
+
+ var count = 0;
+ if (value != null)
+ {
+ count = value.Length;
+ for (int i = 0; i < value.Length; i++)
+ {
+ this.elementInfo.WriteData(collector, ref value[i]);
+ }
+ }
+
+ collector.EndBufferedArray(bookmark, count);
+ }
+
+ public override object GetData(object value)
+ {
+ var array = (ElementType[])value;
+ var serializedArray = new object[array.Length];
+ for (int i = 0; i < array.Length; i++)
+ {
+ serializedArray[i] = this.elementInfo.GetData(array[i]);
+ }
+ return serializedArray;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/ConcurrentSet.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/ConcurrentSet.cs
new file mode 100644
index 00000000000..de80db07bf2
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/ConcurrentSet.cs
@@ -0,0 +1,123 @@
+using System;
+using Interlocked = System.Threading.Interlocked;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: A very simple lock-free add-only dictionary.
+ /// Warning: this is a copy-by-value type. Copying performs a snapshot.
+ /// Accessing a readonly field always makes a copy of the field, so the
+ /// GetOrAdd method will not work as expected if called on a readonly field.
+ /// </summary>
+ /// <typeparam name="KeyType">
+ /// The type of the key, used for TryGet.
+ /// </typeparam>
+ /// <typeparam name="ItemType">
+ /// The type of the item, used for GetOrAdd.
+ /// </typeparam>
+ internal struct ConcurrentSet<KeyType, ItemType>
+ where ItemType : ConcurrentSetItem<KeyType, ItemType>
+ {
+ private ItemType[] items;
+
+ public ItemType TryGet(KeyType key)
+ {
+ ItemType item;
+ var oldItems = this.items;
+
+ if (oldItems != null)
+ {
+ var lo = 0;
+ var hi = oldItems.Length;
+ do
+ {
+ int i = (lo + hi) / 2;
+ item = oldItems[i];
+
+ int cmp = item.Compare(key);
+ if (cmp == 0)
+ {
+ goto Done;
+ }
+ else if (cmp < 0)
+ {
+ lo = i + 1;
+ }
+ else
+ {
+ hi = i;
+ }
+ }
+ while (lo != hi);
+ }
+
+ item = null;
+
+ Done:
+
+ return item;
+ }
+
+ public ItemType GetOrAdd(ItemType newItem)
+ {
+ ItemType item;
+ var oldItems = this.items;
+ ItemType[] newItems;
+
+ Retry:
+
+ if (oldItems == null)
+ {
+ newItems = new ItemType[] { newItem };
+ }
+ else
+ {
+ var lo = 0;
+ var hi = oldItems.Length;
+ do
+ {
+ int i = (lo + hi) / 2;
+ item = oldItems[i];
+
+ int cmp = item.Compare(newItem);
+ if (cmp == 0)
+ {
+ goto Done;
+ }
+ else if (cmp < 0)
+ {
+ lo = i + 1;
+ }
+ else
+ {
+ hi = i;
+ }
+ }
+ while (lo != hi);
+
+ int oldLength = oldItems.Length;
+ newItems = new ItemType[oldLength + 1];
+ Array.Copy(oldItems, 0, newItems, 0, lo);
+ newItems[lo] = newItem;
+ Array.Copy(oldItems, lo, newItems, lo + 1, oldLength - lo);
+ }
+
+ newItems = Interlocked.CompareExchange(ref this.items, newItems, oldItems);
+ if (oldItems != newItems)
+ {
+ oldItems = newItems;
+ goto Retry;
+ }
+
+ item = newItem;
+
+ Done:
+
+ return item;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/ConcurrentSetItem.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/ConcurrentSetItem.cs
new file mode 100644
index 00000000000..4392781c2d9
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/ConcurrentSetItem.cs
@@ -0,0 +1,21 @@
+using System;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: Abstract base class that must be inherited by items in a
+ /// ConcurrentSet.
+ /// </summary>
+ /// <typeparam name="KeyType">Type of the set's key.</typeparam>
+ /// <typeparam name="ItemType">Type of the derived class.</typeparam>
+ internal abstract class ConcurrentSetItem<KeyType, ItemType>
+ where ItemType : ConcurrentSetItem<KeyType, ItemType>
+ {
+ public abstract int Compare(ItemType other);
+ public abstract int Compare(KeyType key);
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/DataCollector.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/DataCollector.cs
new file mode 100644
index 00000000000..715dbe83357
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/DataCollector.cs
@@ -0,0 +1,315 @@
+using System;
+using System.Runtime.InteropServices;
+using System.Security;
+
+#if ES_BUILD_STANDALONE
+using Environment = Microsoft.Diagnostics.Tracing.Internal.Environment;
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: This is the implementation of the DataCollector
+ /// functionality. To enable safe access to the DataCollector from
+ /// untrusted code, there is one thread-local instance of this structure
+ /// per thread. The instance must be Enabled before any data is written to
+ /// it. The instance must be Finished before the data is passed to
+ /// EventWrite. The instance must be Disabled before the arrays referenced
+ /// by the pointers are freed or unpinned.
+ /// </summary>
+ [SecurityCritical]
+ internal unsafe struct DataCollector
+ {
+ [ThreadStatic]
+ internal static DataCollector ThreadInstance;
+
+ private byte* scratchEnd;
+ private EventSource.EventData* datasEnd;
+ private GCHandle* pinsEnd;
+ private EventSource.EventData* datasStart;
+ private byte* scratch;
+ private EventSource.EventData* datas;
+ private GCHandle* pins;
+ private byte[] buffer;
+ private int bufferPos;
+ private int bufferNesting; // We may merge many fields int a single blob. If we are doing this we increment this.
+ private bool writingScalars;
+
+ internal void Enable(
+ byte* scratch,
+ int scratchSize,
+ EventSource.EventData* datas,
+ int dataCount,
+ GCHandle* pins,
+ int pinCount)
+ {
+ this.datasStart = datas;
+ this.scratchEnd = scratch + scratchSize;
+ this.datasEnd = datas + dataCount;
+ this.pinsEnd = pins + pinCount;
+ this.scratch = scratch;
+ this.datas = datas;
+ this.pins = pins;
+ this.writingScalars = false;
+ }
+
+ internal void Disable()
+ {
+ this = new DataCollector();
+ }
+
+ /// <summary>
+ /// Completes the list of scalars. Finish must be called before the data
+ /// descriptor array is passed to EventWrite.
+ /// </summary>
+ /// <returns>
+ /// A pointer to the next unused data descriptor, or datasEnd if they were
+ /// all used. (Descriptors may be unused if a string or array was null.)
+ /// </returns>
+ internal EventSource.EventData* Finish()
+ {
+ this.ScalarsEnd();
+ return this.datas;
+ }
+
+ internal void AddScalar(void* value, int size)
+ {
+ var pb = (byte*)value;
+ if (this.bufferNesting == 0)
+ {
+ var scratchOld = this.scratch;
+ var scratchNew = scratchOld + size;
+ if (this.scratchEnd < scratchNew)
+ {
+ throw new IndexOutOfRangeException(Environment.GetResourceString("EventSource_AddScalarOutOfRange"));
+ }
+
+ this.ScalarsBegin();
+ this.scratch = scratchNew;
+
+ for (int i = 0; i != size; i++)
+ {
+ scratchOld[i] = pb[i];
+ }
+ }
+ else
+ {
+ var oldPos = this.bufferPos;
+ this.bufferPos = checked(this.bufferPos + size);
+ this.EnsureBuffer();
+ for (int i = 0; i != size; i++, oldPos++)
+ {
+ this.buffer[oldPos] = pb[i];
+ }
+ }
+ }
+
+ internal void AddBinary(string value, int size)
+ {
+ if (size > ushort.MaxValue)
+ {
+ size = ushort.MaxValue - 1;
+ }
+
+ if (this.bufferNesting != 0)
+ {
+ this.EnsureBuffer(size + 2);
+ }
+
+ this.AddScalar(&size, 2);
+
+ if (size != 0)
+ {
+ if (this.bufferNesting == 0)
+ {
+ this.ScalarsEnd();
+ this.PinArray(value, size);
+ }
+ else
+ {
+ var oldPos = this.bufferPos;
+ this.bufferPos = checked(this.bufferPos + size);
+ this.EnsureBuffer();
+ fixed (void* p = value)
+ {
+ Marshal.Copy((IntPtr)p, this.buffer, oldPos, size);
+ }
+ }
+ }
+ }
+
+ internal void AddBinary(Array value, int size)
+ {
+ this.AddArray(value, size, 1);
+ }
+
+ internal void AddArray(Array value, int length, int itemSize)
+ {
+ if (length > ushort.MaxValue)
+ {
+ length = ushort.MaxValue;
+ }
+
+ var size = length * itemSize;
+ if (this.bufferNesting != 0)
+ {
+ this.EnsureBuffer(size + 2);
+ }
+
+ this.AddScalar(&length, 2);
+
+ if (length != 0)
+ {
+ if (this.bufferNesting == 0)
+ {
+ this.ScalarsEnd();
+ this.PinArray(value, size);
+ }
+ else
+ {
+ var oldPos = this.bufferPos;
+ this.bufferPos = checked(this.bufferPos + size);
+ this.EnsureBuffer();
+ Buffer.BlockCopy(value, 0, this.buffer, oldPos, size);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Marks the start of a non-blittable array or enumerable.
+ /// </summary>
+ /// <returns>Bookmark to be passed to EndBufferedArray.</returns>
+ internal int BeginBufferedArray()
+ {
+ this.BeginBuffered();
+ this.bufferPos += 2; // Reserve space for the array length (filled in by EndEnumerable)
+ return this.bufferPos;
+ }
+
+ /// <summary>
+ /// Marks the end of a non-blittable array or enumerable.
+ /// </summary>
+ /// <param name="bookmark">The value returned by BeginBufferedArray.</param>
+ /// <param name="count">The number of items in the array.</param>
+ internal void EndBufferedArray(int bookmark, int count)
+ {
+ this.EnsureBuffer();
+ this.buffer[bookmark - 2] = unchecked((byte)count);
+ this.buffer[bookmark - 1] = unchecked((byte)(count >> 8));
+ this.EndBuffered();
+ }
+
+ /// <summary>
+ /// Marks the start of dynamically-buffered data.
+ /// </summary>
+ internal void BeginBuffered()
+ {
+ this.ScalarsEnd();
+ this.bufferNesting += 1;
+ }
+
+ /// <summary>
+ /// Marks the end of dynamically-buffered data.
+ /// </summary>
+ internal void EndBuffered()
+ {
+ this.bufferNesting -= 1;
+
+ if (this.bufferNesting == 0)
+ {
+ /*
+
+
+
+
+
+*/
+
+ this.EnsureBuffer();
+ this.PinArray(this.buffer, this.bufferPos);
+ this.buffer = null;
+ this.bufferPos = 0;
+ }
+ }
+
+ private void EnsureBuffer()
+ {
+ var required = this.bufferPos;
+ if (this.buffer == null || this.buffer.Length < required)
+ {
+ this.GrowBuffer(required);
+ }
+ }
+
+ private void EnsureBuffer(int additionalSize)
+ {
+ var required = this.bufferPos + additionalSize;
+ if (this.buffer == null || this.buffer.Length < required)
+ {
+ this.GrowBuffer(required);
+ }
+ }
+
+ private void GrowBuffer(int required)
+ {
+ var newSize = this.buffer == null ? 64 : this.buffer.Length;
+
+ do
+ {
+ newSize *= 2;
+ }
+ while (newSize < required);
+
+ Array.Resize(ref this.buffer, newSize);
+ }
+
+ private void PinArray(object value, int size)
+ {
+ var pinsTemp = this.pins;
+ if (this.pinsEnd <= pinsTemp)
+ {
+ throw new IndexOutOfRangeException(Environment.GetResourceString("EventSource_PinArrayOutOfRange"));
+ }
+
+ var datasTemp = this.datas;
+ if (this.datasEnd <= datasTemp)
+ {
+ throw new IndexOutOfRangeException(Environment.GetResourceString("EventSource_DataDescriptorsOutOfRange"));
+ }
+
+ this.pins = pinsTemp + 1;
+ this.datas = datasTemp + 1;
+
+ *pinsTemp = GCHandle.Alloc(value, GCHandleType.Pinned);
+ datasTemp->m_Ptr = (long)(ulong)(UIntPtr)(void*)pinsTemp->AddrOfPinnedObject();
+ datasTemp->m_Size = size;
+ }
+
+ private void ScalarsBegin()
+ {
+ if (!this.writingScalars)
+ {
+ var datasTemp = this.datas;
+ if (this.datasEnd <= datasTemp)
+ {
+ throw new IndexOutOfRangeException(Environment.GetResourceString("EventSource_DataDescriptorsOutOfRange"));
+ }
+
+ datasTemp->m_Ptr = (long)(ulong)(UIntPtr)this.scratch;
+ this.writingScalars = true;
+ }
+ }
+
+ private void ScalarsEnd()
+ {
+ if (this.writingScalars)
+ {
+ var datasTemp = this.datas;
+ datasTemp->m_Size = checked((int)(this.scratch - (byte*)datasTemp->m_Ptr));
+ this.datas = datasTemp + 1;
+ this.writingScalars = false;
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EmptyStruct.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EmptyStruct.cs
new file mode 100644
index 00000000000..f13cd953ecd
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EmptyStruct.cs
@@ -0,0 +1,13 @@
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: Empty struct indicating no payload data.
+ /// </summary>
+ internal struct EmptyStruct
+ {
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EnumHelper.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EnumHelper.cs
new file mode 100644
index 00000000000..acef8d7f3da
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EnumHelper.cs
@@ -0,0 +1,42 @@
+using System;
+using System.Reflection;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// Provides support for casting enums to their underlying type
+ /// from within generic context.
+ /// </summary>
+ /// <typeparam name="UnderlyingType">
+ /// The underlying type of the enum.
+ /// </typeparam>
+ internal static class EnumHelper<UnderlyingType>
+ {
+ private delegate UnderlyingType Transformer<ValueType>(ValueType value);
+
+ private static readonly MethodInfo IdentityInfo =
+ Statics.GetDeclaredStaticMethod(typeof(EnumHelper<UnderlyingType>), "Identity");
+
+ public static UnderlyingType Cast<ValueType>(ValueType value)
+ {
+ return Caster<ValueType>.Instance(value);
+ }
+
+ internal static UnderlyingType Identity(UnderlyingType value)
+ {
+ return value;
+ }
+
+ private static class Caster<ValueType>
+ {
+ public static readonly Transformer<ValueType> Instance =
+ (Transformer<ValueType>)Statics.CreateDelegate(
+ typeof(Transformer<ValueType>),
+ IdentityInfo);
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EnumerableTypeInfo.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EnumerableTypeInfo.cs
new file mode 100644
index 00000000000..0713e11bffb
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EnumerableTypeInfo.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ internal sealed class EnumerableTypeInfo<IterableType, ElementType>
+ : TraceLoggingTypeInfo<IterableType>
+ where IterableType : IEnumerable<ElementType>
+ {
+ private readonly TraceLoggingTypeInfo<ElementType> elementInfo;
+
+ public EnumerableTypeInfo(TraceLoggingTypeInfo<ElementType> elementInfo)
+ {
+ this.elementInfo = elementInfo;
+ }
+
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.BeginBufferedArray();
+ this.elementInfo.WriteMetadata(collector, name, format);
+ collector.EndBufferedArray();
+ }
+
+ public override void WriteData(
+ TraceLoggingDataCollector collector,
+ ref IterableType value)
+ {
+ var bookmark = collector.BeginBufferedArray();
+
+ var count = 0;
+ if (value != null)
+ {
+ foreach (var element in value)
+ {
+ var el = element;
+ this.elementInfo.WriteData(collector, ref el);
+ count++;
+ }
+ }
+
+ collector.EndBufferedArray(bookmark, count);
+ }
+
+ public override object GetData(object value)
+ {
+ var iterType = (IterableType)value;
+ List<object> serializedEnumerable = new List<object>();
+ foreach (var element in iterType)
+ {
+ serializedEnumerable.Add(elementInfo.GetData(element));
+ }
+ return serializedEnumerable.ToArray();
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventDataAttribute.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventDataAttribute.cs
new file mode 100644
index 00000000000..bf341ace1a6
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventDataAttribute.cs
@@ -0,0 +1,142 @@
+using System;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// Used when authoring types that will be passed to EventSource.Write.
+ /// EventSource.Write&lt;T> only works when T is either an anonymous type
+ /// or a type with an [EventData] attribute. In addition, the properties
+ /// of T must be supported property types. Supported property types include
+ /// simple built-in types (int, string, Guid, DateTime, DateTimeOffset,
+ /// KeyValuePair, etc.), anonymous types that only contain supported types,
+ /// types with an [EventData] attribute, arrays of the above, and IEnumerable
+ /// of the above.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, Inherited = false)]
+ public class EventDataAttribute
+ : Attribute
+ {
+ private EventLevel level = (EventLevel)(-1);
+ private EventOpcode opcode = (EventOpcode)(-1);
+
+ /// <summary>
+ /// Gets or sets the name to use if this type is used for an
+ /// implicitly-named event or an implicitly-named property.
+ ///
+ /// Example 1:
+ ///
+ /// EventSource.Write(null, new T()); // implicitly-named event
+ ///
+ /// The name of the event will be determined as follows:
+ ///
+ /// if (T has an EventData attribute and attribute.Name != null)
+ /// eventName = attribute.Name;
+ /// else
+ /// eventName = typeof(T).Name;
+ ///
+ /// Example 2:
+ ///
+ /// EventSource.Write(name, new { _1 = new T() }); // implicitly-named field
+ ///
+ /// The name of the field will be determined as follows:
+ ///
+ /// if (T has an EventData attribute and attribute.Name != null)
+ /// fieldName = attribute.Name;
+ /// else
+ /// fieldName = typeof(T).Name;
+ /// </summary>
+ public string Name
+ {
+ get;
+ set;
+ }
+
+ /// <summary>
+ /// Gets or sets the level to use for the event.
+ /// Invalid levels (outside the range 0..255) are treated as unset.
+ /// Note that the Level attribute can bubble-up, i.e. if a type contains
+ /// a sub-object (a field or property), and the sub-object's type has a
+ /// TraceLoggingEvent attribute, the Level from the sub-object's attribute
+ /// can affect the event's level.
+ ///
+ /// Example: for EventSource.Write(name, options, data), the level of the
+ /// event will be determined as follows:
+ ///
+ /// if (options.Level has been set)
+ /// eventLevel = options.Level;
+ /// else if (data.GetType() has a TraceLoggingEvent attribute and attribute.Level has been set)
+ /// eventLevel = attribute.Level;
+ /// else if (a field/property contained in data has a TraceLoggingEvent attribute and attribute.Level has been set)
+ /// eventLevel = attribute.Level;
+ /// else
+ /// eventLevel = EventLevel.LogAlways;
+ /// </summary>
+ internal EventLevel Level
+ {
+ get { return this.level; }
+ set { this.level = value; }
+ }
+
+ /// <summary>
+ /// Gets or sets the opcode to use for the event.
+ /// Invalid opcodes (outside the range 0..255) are treated as unset.
+ /// Note that the Opcode attribute can bubble-up, i.e. if a type contains
+ /// a sub-object (a field or property), and the sub-object's type has a
+ /// TraceLoggingEvent attribute, the Opcode from the sub-object's attribute
+ /// can affect the event's opcode.
+ ///
+ /// Example: for EventSource.Write(name, options, data), the opcode of the
+ /// event will be determined as follows:
+ ///
+ /// if (options.Opcode has been set)
+ /// eventOpcode = options.Opcode;
+ /// else if (data.GetType() has a TraceLoggingEvent attribute and attribute.Opcode has been set)
+ /// eventOpcode = attribute.Opcode;
+ /// else if (a field/property contained in data has a TraceLoggingEvent attribute and attribute.Opcode has been set)
+ /// eventOpcode = attribute.Opcode;
+ /// else
+ /// eventOpcode = EventOpcode.Info;
+ /// </summary>
+ internal EventOpcode Opcode
+ {
+ get { return this.opcode; }
+ set { this.opcode = value; }
+ }
+
+ /// <summary>
+ /// Gets or sets the keywords to use for the event.
+ /// Note that the Keywords attribute can bubble-up, i.e. if a type contains
+ /// a sub-object (a field or property), and the sub-object's type has a
+ /// TraceLoggingEvent attribute, the Keywords from the sub-object's attribute
+ /// can affect the event's keywords.
+ ///
+ /// Example: for EventSource.Write(name, options, data), the keywords of the
+ /// event will be determined as follows:
+ ///
+ /// eventKeywords = options.Keywords;
+ /// if (data.GetType() has a TraceLoggingEvent attribute)
+ /// eventKeywords |= attribute.Keywords;
+ /// if (a field/property contained in data has a TraceLoggingEvent attribute)
+ /// eventKeywords |= attribute.Keywords;
+ /// </summary>
+ internal EventKeywords Keywords
+ {
+ get;
+ set;
+ }
+
+ /// <summary>
+ /// Gets or sets the flags for an event. These flags are ignored by ETW,
+ /// but can have meaning to the event consumer.
+ /// </summary>
+ internal EventTags Tags
+ {
+ get;
+ set;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventFieldAttribute.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventFieldAttribute.cs
new file mode 100644
index 00000000000..bd2b6645ecd
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventFieldAttribute.cs
@@ -0,0 +1,72 @@
+using System;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// Tags are flags that are not interpreted by EventSource but are passed along
+ /// to the EventListener. The EventListener determines the semantics of the flags.
+ /// </summary>
+ [Flags]
+ public enum EventFieldTags
+ {
+ /// <summary>
+ /// No special traits are added to the field.
+ /// </summary>
+ None = 0,
+
+ /* Bits below 0x10000 are available for any use by the provider. */
+ /* Bits at or above 0x10000 are reserved for definition by Microsoft. */
+ }
+
+ /// <summary>
+ /// TraceLogging: used when authoring types that will be passed to EventSource.Write.
+ /// Controls how a field or property is handled when it is written as a
+ /// field in a TraceLogging event. Apply this attribute to a field or
+ /// property if the default handling is not correct. (Apply the
+ /// TraceLoggingIgnore attribute if the property should not be
+ /// included as a field in the event.)
+ /// The default for Name is null, which means that the name of the
+ /// underlying field or property will be used as the event field's name.
+ /// The default for PiiTag is 0, which means that the event field does not
+ /// contain personally-identifiable information.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Property)]
+ public class EventFieldAttribute
+ : Attribute
+ {
+ /// <summary>
+ /// User defined options for the field. These are not interpreted by the EventSource
+ /// but are available to the Listener. See EventFieldSettings for details
+ /// </summary>
+ public EventFieldTags Tags
+ {
+ get;
+ set;
+ }
+
+ /// <summary>
+ /// Gets or sets the name to use for the field. This defaults to null.
+ /// If null, the name of the corresponding property will be used
+ /// as the event field's name.
+ ///
+
+ internal string Name
+ {
+ get;
+ set;
+ }
+
+ /// <summary>
+ /// Gets or sets a field formatting hint.
+ /// </summary>
+ public EventFieldFormat Format
+ {
+ get;
+ set;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventFieldFormat.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventFieldFormat.cs
new file mode 100644
index 00000000000..7065fd40e1c
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventFieldFormat.cs
@@ -0,0 +1,126 @@
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// Provides a hint that may be used by an event listener when formatting
+ /// an event field for display. Note that the event listener may ignore the
+ /// hint if it does not recognize a particular combination of type and format.
+ /// Similar to TDH_OUTTYPE.
+ /// </summary>
+ public enum EventFieldFormat
+ {
+ /// <summary>
+ /// Field receives default formatting based on the field's underlying type.
+ /// </summary>
+ Default = 0,
+#if false
+ /// <summary>
+ /// Field should not be displayed.
+ /// </summary>
+ NoPrint = 1,
+#endif
+ /// <summary>
+ /// Field should be formatted as character or string data.
+ /// Typically applied to 8-bit or 16-bit integers.
+ /// This is the default format for String and Char types.
+ /// </summary>
+ String = 2,
+
+ /// <summary>
+ /// Field should be formatted as boolean data. Typically applied to 8-bit
+ /// or 32-bit integers. This is the default format for the Boolean type.
+ /// </summary>
+ Boolean = 3,
+
+ /// <summary>
+ /// Field should be formatted as hexadecimal data. Typically applied to
+ /// integer types.
+ /// </summary>
+ Hexadecimal = 4,
+
+#if false
+ /// <summary>
+ /// Field should be formatted as a process identifier. Typically applied to
+ /// 32-bit integer types.
+ /// </summary>
+ ProcessId = 5,
+
+ /// <summary>
+ /// Field should be formatted as a thread identifier. Typically applied to
+ /// 32-bit integer types.
+ /// </summary>
+ ThreadId = 6,
+
+ /// <summary>
+ /// Field should be formatted as an Internet port. Typically applied to 16-bit integer
+ /// types.
+ /// </summary>
+ Port = 7,
+ /// <summary>
+ /// Field should be formatted as an Internet Protocol v4 address. Typically applied to
+ /// 32-bit integer types.
+ /// </summary>
+ Ipv4Address = 8,
+
+ /// <summary>
+ /// Field should be formatted as an Internet Protocol v6 address. Typically applied to
+ /// byte[] types.
+ /// </summary>
+ Ipv6Address = 9,
+ /// <summary>
+ /// Field should be formatted as a SOCKADDR. Typically applied to byte[] types.
+ /// </summary>
+ SocketAddress = 10,
+#endif
+ /// <summary>
+ /// Field should be formatted as XML string data. Typically applied to
+ /// strings or arrays of 8-bit or 16-bit integers.
+ /// </summary>
+ Xml = 11,
+
+ /// <summary>
+ /// Field should be formatted as JSON string data. Typically applied to
+ /// strings or arrays of 8-bit or 16-bit integers.
+ /// </summary>
+ Json = 12,
+#if false
+ /// <summary>
+ /// Field should be formatted as a Win32 error code. Typically applied to
+ /// 32-bit integer types.
+ /// </summary>
+ Win32Error = 13,
+
+ /// <summary>
+ /// Field should be formatted as an NTSTATUS code. Typically applied to
+ /// 32-bit integer types.
+ /// </summary>
+ NTStatus = 14,
+#endif
+ /// <summary>
+ /// Field should be formatted as an HRESULT code. Typically applied to
+ /// 32-bit integer types.
+ /// </summary>
+ HResult = 15,
+#if false
+ /// <summary>
+ /// Field should be formatted as a FILETIME. Typically applied to 64-bit
+ /// integer types. This is the default format for DateTime types.
+ /// </summary>
+ FileTime = 16,
+ /// <summary>
+ /// When applied to a numeric type, indicates that the type should be formatted
+ /// as a signed integer. This is the default format for signed integer types.
+ /// </summary>
+ Signed = 17,
+
+ /// <summary>
+ /// When applied to a numeric type, indicates that the type should be formatted
+ /// as an unsigned integer. This is the default format for unsigned integer types.
+ /// </summary>
+ Unsigned = 18,
+#endif
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventIgnoreAttribute.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventIgnoreAttribute.cs
new file mode 100644
index 00000000000..862842f7ab7
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventIgnoreAttribute.cs
@@ -0,0 +1,21 @@
+using System;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// Used when authoring types that will be passed to EventSource.Write.
+ /// By default, EventSource.Write will write all of an object's public
+ /// properties to the event payload. Apply [EventIgnore] to a public
+ /// property to prevent EventSource.Write from including the property in
+ /// the event.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Property)]
+ public class EventIgnoreAttribute
+ : Attribute
+ {
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventPayload.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventPayload.cs
new file mode 100644
index 00000000000..3240a8d738d
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventPayload.cs
@@ -0,0 +1,147 @@
+using System.Collections.Generic;
+using System.Collections;
+
+#if !ES_BUILD_AGAINST_DOTNET_V35
+using Contract = System.Diagnostics.Contracts.Contract;
+#else
+using Contract = Microsoft.Diagnostics.Contracts.Internal.Contract;
+#endif
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// EventPayload class holds the list of parameters and their corresponding values for user defined types passed to
+ /// EventSource APIs.
+ /// Preserving the order of the elements as they were found inside user defined types is the most important characteristic of this class.
+ /// </summary>
+ internal class EventPayload : IDictionary<string, object>
+ {
+ internal EventPayload(List<string> payloadNames, List<object> payloadValues)
+ {
+ Contract.Assert(payloadNames.Count == payloadValues.Count);
+
+ m_names = payloadNames;
+ m_values = payloadValues;
+ }
+
+ public ICollection<string> Keys { get { return m_names; } }
+ public ICollection<object> Values { get { return m_values; } }
+
+ public object this[string key]
+ {
+ get
+ {
+ if (key == null)
+ throw new System.ArgumentNullException("key");
+
+ int position = 0;
+ foreach(var name in m_names)
+ {
+ if (name == key)
+ {
+ return m_values[position];
+ }
+ position++;
+ }
+
+ throw new System.Collections.Generic.KeyNotFoundException();
+ }
+ set
+ {
+ throw new System.NotSupportedException();
+ }
+ }
+
+ public void Add(string key, object value)
+ {
+ throw new System.NotSupportedException();
+ }
+
+ public void Add(KeyValuePair<string, object> payloadEntry)
+ {
+ throw new System.NotSupportedException();
+ }
+
+ public void Clear()
+ {
+ throw new System.NotSupportedException();
+ }
+
+ public bool Contains(KeyValuePair<string, object> entry)
+ {
+ return ContainsKey(entry.Key);
+ }
+
+ public bool ContainsKey(string key)
+ {
+ if (key == null)
+ throw new System.ArgumentNullException("key");
+
+ foreach (var item in m_names)
+ {
+ if (item == key)
+ return true;
+ }
+ return false;
+ }
+
+ public int Count { get { return m_names.Count; } }
+
+ public bool IsReadOnly { get { return true; } }
+
+ public IEnumerator<KeyValuePair<string, object>> GetEnumerator()
+ {
+ throw new System.NotSupportedException();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ var instance = this as IEnumerable<KeyValuePair<string, object>>;
+ return instance.GetEnumerator();
+ }
+
+ public void CopyTo(KeyValuePair<string, object>[] payloadEntries, int count)
+ {
+ throw new System.NotSupportedException();
+ }
+
+ public bool Remove(string key)
+ {
+ throw new System.NotSupportedException();
+ }
+
+ public bool Remove(KeyValuePair<string, object> entry)
+ {
+ throw new System.NotSupportedException();
+ }
+
+ public bool TryGetValue(string key, out object value)
+ {
+ if (key == null)
+ throw new System.ArgumentNullException("key");
+
+ int position = 0;
+ foreach (var name in m_names)
+ {
+ if (name == key)
+ {
+ value = m_values[position];
+ return true;
+ }
+ position++;
+ }
+
+ value = default(object);
+ return false;
+ }
+
+ #region private
+ private List<string> m_names;
+ private List<object> m_values;
+ #endregion
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventSourceActivity.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventSourceActivity.cs
new file mode 100644
index 00000000000..168492477e4
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventSourceActivity.cs
@@ -0,0 +1,317 @@
+using System;
+
+#if !ES_BUILD_AGAINST_DOTNET_V35
+using Contract = System.Diagnostics.Contracts.Contract;
+#else
+using Contract = Microsoft.Diagnostics.Contracts.Internal.Contract;
+#endif
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// Provides support for EventSource activities by marking the start and
+ /// end of a particular operation.
+ /// </summary>
+ internal sealed class EventSourceActivity
+ : IDisposable
+ {
+ /// <summary>
+ /// Initializes a new instance of the EventSourceActivity class that
+ /// is attached to the specified event source. The new activity will
+ /// not be attached to any related (parent) activity.
+ /// The activity is created in the Initialized state.
+ /// </summary>
+ /// <param name="eventSource">
+ /// The event source to which the activity information is written.
+ /// </param>
+ public EventSourceActivity(EventSource eventSource)
+ {
+ if (eventSource == null)
+ throw new ArgumentNullException("eventSource");
+ Contract.EndContractBlock();
+
+ this.eventSource = eventSource;
+ }
+
+ /// <summary>
+ /// You can make an activity out of just an EventSource.
+ /// </summary>
+ public static implicit operator EventSourceActivity(EventSource eventSource) { return new EventSourceActivity(eventSource); }
+
+ /* Properties */
+ /// <summary>
+ /// Gets the event source to which this activity writes events.
+ /// </summary>
+ public EventSource EventSource
+ {
+ get { return this.eventSource; }
+ }
+
+ /// <summary>
+ /// Gets this activity's unique identifier, or the default Guid if the
+ /// event source was disabled when the activity was initialized.
+ /// </summary>
+ public Guid Id
+ {
+ get { return this.activityId; }
+ }
+
+#if false // don't expose RelatedActivityId unless there is a need.
+ /// <summary>
+ /// Gets the unique identifier of this activity's related (parent)
+ /// activity.
+ /// </summary>
+ public Guid RelatedId
+ {
+ get { return this.relatedActivityId; }
+ }
+#endif
+
+ /// <summary>
+ /// Writes a Start event with the specified name and data. If the start event is not active (because the provider
+ /// is not on or keyword-level indiates the event is off, then the returned activity is simply the 'this' poitner
+ /// and it is effectively like the Start d
+ ///
+ /// A new activityID GUID is generated and the returned
+ /// EventSourceActivity remembers this activity and will mark every event (including the start stop and any writes)
+ /// with this activityID. In addition the Start activity will log a 'relatedActivityID' that was the activity
+ /// ID before the start event. This way event processors can form a linked list of all the activities that
+ /// caused this one (directly or indirectly).
+ /// </summary>
+ /// <param name="eventName">
+ /// The name to use for the event. It is strongly suggested that this name end in 'Start' (e.g. DownloadStart).
+ /// If you do this, then the Stop() method will automatically replace the 'Start' suffix with a 'Stop' suffix.
+ /// </param>
+ /// <param name="options">Allow options (keywords, level) to be set for the write associated with this start
+ /// These will also be used for the stop event.</param>
+ /// <param name="data">The data to include in the event.</param>
+ public EventSourceActivity Start<T>(string eventName, EventSourceOptions options, T data)
+ {
+ return this.Start(eventName, ref options, ref data);
+ }
+ /// <summary>
+ /// Shortcut version see Start(string eventName, EventSourceOptions options, T data) Options is empty (no keywords
+ /// and level==Info) Data payload is empty.
+ /// </summary>
+ public EventSourceActivity Start(string eventName)
+ {
+ var options = new EventSourceOptions();
+ var data = new EmptyStruct();
+ return this.Start(eventName, ref options, ref data);
+ }
+ /// <summary>
+ /// Shortcut version see Start(string eventName, EventSourceOptions options, T data). Data payload is empty.
+ /// </summary>
+ public EventSourceActivity Start(string eventName, EventSourceOptions options)
+ {
+ var data = new EmptyStruct();
+ return this.Start(eventName, ref options, ref data);
+ }
+ /// <summary>
+ /// Shortcut version see Start(string eventName, EventSourceOptions options, T data) Options is empty (no keywords
+ /// and level==Info)
+ /// </summary>
+ public EventSourceActivity Start<T>(string eventName, T data)
+ {
+ var options = new EventSourceOptions();
+ return this.Start(eventName, ref options, ref data);
+ }
+
+ /// <summary>
+ /// Writes a Stop event with the specified data, and sets the activity
+ /// to the Stopped state. The name is determined by the eventName used in Start.
+ /// If that Start event name is suffixed with 'Start' that is removed, and regardless
+ /// 'Stop' is appended to the result to form the Stop event name.
+ /// May only be called when the activity is in the Started state.
+ /// </summary>
+ /// <param name="data">The data to include in the event.</param>
+ public void Stop<T>(T data)
+ {
+ this.Stop(null, ref data);
+ }
+ /// <summary>
+ /// Used if you wish to use the non-default stop name (which is the start name with Start replace with 'Stop')
+ /// This can be useful to indicate unusual ways of stoping (but it is still STRONGLY recommeded that
+ /// you start with the same prefix used for the start event and you end with the 'Stop' suffix.
+ /// </summary>
+ public void Stop<T>(string eventName)
+ {
+ var data = new EmptyStruct();
+ this.Stop(eventName, ref data);
+ }
+ /// <summary>
+ /// Used if you wish to use the non-default stop name (which is the start name with Start replace with 'Stop')
+ /// This can be useful to indicate unusual ways of stoping (but it is still STRONGLY recommeded that
+ /// you start with the same prefix used for the start event and you end with the 'Stop' suffix.
+ /// </summary>
+ public void Stop<T>(string eventName, T data)
+ {
+ this.Stop(eventName, ref data);
+ }
+
+ /// <summary>
+ /// Writes an event associated with this activity to the eventSource associted with this activity.
+ /// May only be called when the activity is in the Started state.
+ /// </summary>
+ /// <param name="eventName">
+ /// The name to use for the event. If null, the name is determined from
+ /// data's type.
+ /// </param>
+ /// <param name="options">
+ /// The options to use for the event.
+ /// </param>
+ /// <param name="data">The data to include in the event.</param>
+ public void Write<T>(string eventName, EventSourceOptions options, T data)
+ {
+ this.Write(this.eventSource, eventName, ref options, ref data);
+ }
+ /// <summary>
+ /// Writes an event associated with this activity.
+ /// May only be called when the activity is in the Started state.
+ /// </summary>
+ /// <param name="eventName">
+ /// The name to use for the event. If null, the name is determined from
+ /// data's type.
+ /// </param>
+ /// <param name="data">The data to include in the event.</param>
+ public void Write<T>(string eventName, T data)
+ {
+ var options = new EventSourceOptions();
+ this.Write(this.eventSource, eventName, ref options, ref data);
+ }
+ /// <summary>
+ /// Writes a trivial event associated with this activity.
+ /// May only be called when the activity is in the Started state.
+ /// </summary>
+ /// <param name="eventName">
+ /// The name to use for the event. Must not be null.
+ /// </param>
+ /// <param name="options">
+ /// The options to use for the event.
+ /// </param>
+ public void Write(string eventName, EventSourceOptions options)
+ {
+ var data = new EmptyStruct();
+ this.Write(this.eventSource, eventName, ref options, ref data);
+ }
+ /// <summary>
+ /// Writes a trivial event associated with this activity.
+ /// May only be called when the activity is in the Started state.
+ /// </summary>
+ /// <param name="eventName">
+ /// The name to use for the event. Must not be null.
+ /// </param>
+ public void Write(string eventName)
+ {
+ var options = new EventSourceOptions();
+ var data = new EmptyStruct();
+ this.Write(this.eventSource, eventName, ref options, ref data);
+ }
+ /// <summary>
+ /// Writes an event to a arbitrary eventSource stamped with the activity ID of this activity.
+ /// </summary>
+ public void Write<T>(EventSource source, string eventName, EventSourceOptions options, T data)
+ {
+ this.Write(source, eventName, ref options, ref data);
+ }
+
+ /// <summary>
+ /// Releases any unmanaged resources associated with this object.
+ /// If the activity is in the Started state, calls Stop().
+ /// </summary>
+ public void Dispose()
+ {
+ if (this.state == State.Started)
+ {
+ var data = new EmptyStruct();
+ this.Stop(null, ref data);
+ }
+ }
+
+ #region private
+ private EventSourceActivity Start<T>(string eventName, ref EventSourceOptions options, ref T data)
+ {
+ if (this.state != State.Started)
+ throw new InvalidOperationException();
+
+ // If the source is not on at all, then we don't need to do anything and we can simply return ourselves.
+ if (!this.eventSource.IsEnabled())
+ return this;
+
+ var newActivity = new EventSourceActivity(eventSource);
+ if (!this.eventSource.IsEnabled(options.Level, options.Keywords))
+ {
+ // newActivity.relatedActivityId = this.Id;
+ Guid relatedActivityId = this.Id;
+ newActivity.activityId = Guid.NewGuid();
+ newActivity.startStopOptions = options;
+ newActivity.eventName = eventName;
+ newActivity.startStopOptions.Opcode = EventOpcode.Start;
+ this.eventSource.Write(eventName, ref newActivity.startStopOptions, ref newActivity.activityId, ref relatedActivityId, ref data);
+ }
+ else
+ {
+ // If we are not active, we don't set the eventName, which basically also turns off the Stop event as well.
+ newActivity.activityId = this.Id;
+ }
+
+ return newActivity;
+ }
+
+ private void Write<T>(EventSource eventSource, string eventName, ref EventSourceOptions options, ref T data)
+ {
+ if (this.state != State.Started)
+ throw new InvalidOperationException(); // Write after stop.
+ if (eventName == null)
+ throw new ArgumentNullException();
+
+ eventSource.Write(eventName, ref options, ref this.activityId, ref s_empty, ref data);
+ }
+
+ private void Stop<T>(string eventName, ref T data)
+ {
+ if (this.state != State.Started)
+ throw new InvalidOperationException();
+
+ // If start was not fired, then stop isn't as well.
+ if (!StartEventWasFired)
+ return;
+
+ this.state = State.Stopped;
+ if (eventName == null)
+ {
+ eventName = this.eventName;
+ if (eventName.EndsWith("Start"))
+ eventName = eventName.Substring(0, eventName.Length - 5);
+ eventName = eventName + "Stop";
+ }
+ this.startStopOptions.Opcode = EventOpcode.Stop;
+ this.eventSource.Write(eventName, ref this.startStopOptions, ref this.activityId, ref s_empty, ref data);
+ }
+
+ private enum State
+ {
+ Started,
+ Stopped
+ }
+
+ /// <summary>
+ /// If eventName is non-null then we logged a start event
+ /// </summary>
+ private bool StartEventWasFired { get { return eventName != null; }}
+
+ private readonly EventSource eventSource;
+ private EventSourceOptions startStopOptions;
+ internal Guid activityId;
+ // internal Guid relatedActivityId;
+ private State state;
+ private string eventName;
+
+ static internal Guid s_empty;
+ #endregion
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventSourceOptions.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventSourceOptions.cs
new file mode 100644
index 00000000000..69741d8d850
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/EventSourceOptions.cs
@@ -0,0 +1,126 @@
+using System;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// Used when calling EventSource.Write.
+ /// Optional overrides for event settings such as Level, Keywords, or Opcode.
+ /// If overrides are not provided for a setting, default values will be used.
+ /// </summary>
+ public struct EventSourceOptions
+ {
+ internal EventKeywords keywords;
+ internal EventTags tags;
+ internal EventActivityOptions activityOptions;
+ internal byte level;
+ internal byte opcode;
+ internal byte valuesSet;
+
+ internal const byte keywordsSet = 0x1;
+ internal const byte tagsSet = 0x2;
+ internal const byte levelSet = 0x4;
+ internal const byte opcodeSet = 0x8;
+ internal const byte activityOptionsSet = 0x10;
+
+ /// <summary>
+ /// Gets or sets the level to use for the specified event. If this property
+ /// is unset, the event's level will be 5 (Verbose).
+ /// </summary>
+ public EventLevel Level
+ {
+ get
+ {
+ return (EventLevel)this.level;
+ }
+
+ set
+ {
+ this.level = checked((byte)value);
+ this.valuesSet |= levelSet;
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets the opcode to use for the specified event. If this property
+ /// is unset, the event's opcode will 0 (Info).
+ /// </summary>
+ public EventOpcode Opcode
+ {
+ get
+ {
+ return (EventOpcode)this.opcode;
+ }
+
+ set
+ {
+ this.opcode = checked((byte)value);
+ this.valuesSet |= opcodeSet;
+ }
+ }
+
+ internal bool IsOpcodeSet
+ {
+ get
+ {
+ return (this.valuesSet & opcodeSet) != 0;
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets the keywords to use for the specified event. If this
+ /// property is unset, the event's keywords will be 0.
+ /// </summary>
+ public EventKeywords Keywords
+ {
+ get
+ {
+ return this.keywords;
+ }
+
+ set
+ {
+ this.keywords = value;
+ this.valuesSet |= keywordsSet;
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets the tags to use for the specified event. If this property is
+ /// unset, the event's tags will be 0.
+ /// </summary>
+ public EventTags Tags
+ {
+ get
+ {
+ return this.tags;
+ }
+
+ set
+ {
+ this.tags = value;
+ this.valuesSet |= tagsSet;
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets the activity options for this specified events. If this property is
+ /// unset, the event's activity options will be 0.
+ /// </summary>
+ public EventActivityOptions ActivityOptions
+ {
+ get
+ {
+ return this.activityOptions;
+ }
+ set
+ {
+ this.activityOptions = value;
+ this.valuesSet |= activityOptionsSet;
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/FieldMetadata.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/FieldMetadata.cs
new file mode 100644
index 00000000000..03cc9977b58
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/FieldMetadata.cs
@@ -0,0 +1,227 @@
+using System;
+using Encoding = System.Text.Encoding;
+
+#if ES_BUILD_STANDALONE
+using Environment = Microsoft.Diagnostics.Tracing.Internal.Environment;
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: Contains the information needed to generate tracelogging
+ /// metadata for an event field.
+ /// </summary>
+ internal class FieldMetadata
+ {
+ /// <summary>
+ /// Name of the field
+ /// </summary>
+ private readonly string name;
+
+ /// <summary>
+ /// The number of bytes in the UTF8 Encoding of 'name' INCLUDING a null terminator.
+ /// </summary>
+ private readonly int nameSize;
+ private readonly EventFieldTags tags;
+ private readonly byte[] custom;
+
+ /// <summary>
+ /// ETW supports fixed sized arrays. If inType has the InTypeFixedCountFlag then this is the
+ /// statically known count for the array. It is also used to encode the number of bytes of
+ /// custom meta-data if InTypeCustomCountFlag set.
+ /// </summary>
+ private readonly ushort fixedCount;
+
+ private byte inType;
+ private byte outType;
+
+ /// <summary>
+ /// Scalar or variable-length array.
+ /// </summary>
+ public FieldMetadata(
+ string name,
+ TraceLoggingDataType type,
+ EventFieldTags tags,
+ bool variableCount)
+ : this(
+ name,
+ type,
+ tags,
+ variableCount ? Statics.InTypeVariableCountFlag : (byte)0,
+ 0,
+ null)
+ {
+ return;
+ }
+
+ /// <summary>
+ /// Fixed-length array.
+ /// </summary>
+ public FieldMetadata(
+ string name,
+ TraceLoggingDataType type,
+ EventFieldTags tags,
+ ushort fixedCount)
+ : this(
+ name,
+ type,
+ tags,
+ Statics.InTypeFixedCountFlag,
+ fixedCount,
+ null)
+ {
+ return;
+ }
+
+ /// <summary>
+ /// Custom serializer
+ /// </summary>
+ public FieldMetadata(
+ string name,
+ TraceLoggingDataType type,
+ EventFieldTags tags,
+ byte[] custom)
+ : this(
+ name,
+ type,
+ tags,
+ Statics.InTypeCustomCountFlag,
+ checked((ushort)(custom == null ? 0 : custom.Length)),
+ custom)
+ {
+ return;
+ }
+
+ private FieldMetadata(
+ string name,
+ TraceLoggingDataType dataType,
+ EventFieldTags tags,
+ byte countFlags,
+ ushort fixedCount = 0,
+ byte[] custom = null)
+ {
+ if (name == null)
+ {
+ throw new ArgumentNullException(
+ "name",
+ "This usually means that the object passed to Write is of a type that"
+ + " does not support being used as the top-level object in an event,"
+ + " e.g. a primitive or built-in type.");
+ }
+
+ Statics.CheckName(name);
+ var coreType = (int)dataType & Statics.InTypeMask;
+ this.name = name;
+ this.nameSize = Encoding.UTF8.GetByteCount(this.name) + 1;
+ this.inType = (byte)(coreType | countFlags);
+ this.outType = (byte)(((int)dataType >> 8) & Statics.OutTypeMask);
+ this.tags = tags;
+ this.fixedCount = fixedCount;
+ this.custom = custom;
+
+ if (countFlags != 0)
+ {
+ if (coreType == (int)TraceLoggingDataType.Nil)
+ {
+ throw new NotSupportedException(Environment.GetResourceString("EventSource_NotSupportedArrayOfNil"));
+ }
+ if (coreType == (int)TraceLoggingDataType.Binary)
+ {
+ throw new NotSupportedException(Environment.GetResourceString("EventSource_NotSupportedArrayOfBinary"));
+ }
+#if !BROKEN_UNTIL_M3
+ if (coreType == (int)TraceLoggingDataType.Utf16String ||
+ coreType == (int)TraceLoggingDataType.MbcsString)
+ {
+ throw new NotSupportedException(Environment.GetResourceString("EventSource_NotSupportedArrayOfNullTerminatedString"));
+ }
+#endif
+ }
+
+ if (((int)this.tags & 0xfffffff) != 0)
+ {
+ this.outType |= Statics.OutTypeChainFlag;
+ }
+
+ if (this.outType != 0)
+ {
+ this.inType |= Statics.InTypeChainFlag;
+ }
+ }
+
+ public void IncrementStructFieldCount()
+ {
+ this.inType |= Statics.InTypeChainFlag;
+ this.outType++;
+ if ((this.outType & Statics.OutTypeMask) == 0)
+ {
+ throw new NotSupportedException(Environment.GetResourceString("EventSource_TooManyFields"));
+ }
+ }
+
+ /// <summary>
+ /// This is the main routine for FieldMetaData. Basically it will serialize the data in
+ /// this structure as TraceLogging style meta-data into the array 'metaArray' starting at
+ /// 'pos' (pos is updated to reflect the bytes written).
+ ///
+ /// Note that 'metaData' can be null, in which case it only updates 'pos'. This is useful
+ /// for a 'two pass' approach where you figure out how big to make the array, and then you
+ /// fill it in.
+ /// </summary>
+ public void Encode(ref int pos, byte[] metadata)
+ {
+ // Write out the null terminated UTF8 encoded name
+ if (metadata != null)
+ {
+ Encoding.UTF8.GetBytes(this.name, 0, this.name.Length, metadata, pos);
+ }
+ pos += this.nameSize;
+
+ // Write 1 byte for inType
+ if (metadata != null)
+ {
+ metadata[pos] = this.inType;
+ }
+ pos += 1;
+
+ // If InTypeChainFlag set, then write out the outType
+ if (0 != (this.inType & Statics.InTypeChainFlag))
+ {
+ if (metadata != null)
+ {
+ metadata[pos] = this.outType;
+ }
+ pos += 1;
+
+ // If OutTypeChainFlag set, then write out tags
+ if (0 != (this.outType & Statics.OutTypeChainFlag))
+ {
+ Statics.EncodeTags((int)this.tags, ref pos, metadata);
+ }
+ }
+
+ // If InTypeFixedCountFlag set, write out the fixedCount (2 bytes little endian)
+ if (0 != (this.inType & Statics.InTypeFixedCountFlag))
+ {
+ if (metadata != null)
+ {
+ metadata[pos + 0] = unchecked((byte)this.fixedCount);
+ metadata[pos + 1] = (byte)(this.fixedCount >> 8);
+ }
+ pos += 2;
+
+ // If InTypeCustomCountFlag set, write out the blob of custom meta-data.
+ if (Statics.InTypeCustomCountFlag == (this.inType & Statics.InTypeCountMask) &&
+ this.fixedCount != 0)
+ {
+ if (metadata != null)
+ {
+ Buffer.BlockCopy(this.custom, 0, metadata, pos, this.fixedCount);
+ }
+ pos += this.fixedCount;
+ }
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/InvokeTypeInfo.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/InvokeTypeInfo.cs
new file mode 100644
index 00000000000..804d617b216
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/InvokeTypeInfo.cs
@@ -0,0 +1,114 @@
+using System;
+using System.Collections.Generic;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: An implementation of TraceLoggingTypeInfo that works
+ /// for arbitrary types. It writes all public instance properties of
+ /// the type. Implemented using Delegate.CreateDelegate(property.Getter).
+ /// </summary>
+ /// <typeparam name="ContainerType">
+ /// Type from which to read values.
+ /// </typeparam>
+ internal sealed class InvokeTypeInfo<ContainerType>
+ : TraceLoggingTypeInfo<ContainerType>
+ {
+ private readonly PropertyAnalysis[] properties;
+ private readonly PropertyAccessor<ContainerType>[] accessors;
+
+ public InvokeTypeInfo(
+ TypeAnalysis typeAnalysis)
+ : base(
+ typeAnalysis.name,
+ typeAnalysis.level,
+ typeAnalysis.opcode,
+ typeAnalysis.keywords,
+ typeAnalysis.tags)
+ {
+ if (typeAnalysis.properties.Length != 0)
+ {
+ this.properties = typeAnalysis.properties;
+ this.accessors = new PropertyAccessor<ContainerType>[this.properties.Length];
+ for (int i = 0; i < this.accessors.Length; i++)
+ {
+ this.accessors[i] = PropertyAccessor<ContainerType>.Create(this.properties[i]);
+ }
+ }
+ }
+
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ var groupCollector = collector.AddGroup(name);
+ if (this.properties != null)
+ {
+ foreach (var property in this.properties)
+ {
+ var propertyFormat = EventFieldFormat.Default;
+ var propertyAttribute = property.fieldAttribute;
+ if (propertyAttribute != null)
+ {
+ groupCollector.Tags = propertyAttribute.Tags;
+ propertyFormat = propertyAttribute.Format;
+ }
+
+ property.typeInfo.WriteMetadata(
+ groupCollector,
+ property.name,
+ propertyFormat);
+ }
+ }
+ }
+
+ public override void WriteData(
+ TraceLoggingDataCollector collector,
+ ref ContainerType value)
+ {
+ if (this.accessors != null)
+ {
+ foreach (var accessor in this.accessors)
+ {
+ accessor.Write(collector, ref value);
+ }
+ }
+ }
+
+ public override object GetData(object value)
+ {
+ if (this.properties != null)
+ {
+ var membersNames = new List<string>();
+ var memebersValues = new List<object>();
+ for (int i = 0; i < this.properties.Length; i++)
+ {
+ var propertyValue = accessors[i].GetData((ContainerType)value);
+ membersNames.Add(properties[i].name);
+ memebersValues.Add(properties[i].typeInfo.GetData(propertyValue));
+ }
+ return new EventPayload(membersNames, memebersValues);
+ }
+
+ return null;
+ }
+
+ public override void WriteObjectData(
+ TraceLoggingDataCollector collector,
+ object valueObj)
+ {
+ if (this.accessors != null)
+ {
+ var value = valueObj == null
+ ? default(ContainerType)
+ : (ContainerType)valueObj;
+ this.WriteData(collector, ref value);
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/NameInfo.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/NameInfo.cs
new file mode 100644
index 00000000000..3fa2f08bc42
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/NameInfo.cs
@@ -0,0 +1,75 @@
+using System;
+using System.Collections.Generic;
+using Interlocked = System.Threading.Interlocked;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: Stores the metadata and event identifier corresponding
+ /// to a tracelogging event type+name+tags combination.
+ /// </summary>
+ internal sealed class NameInfo
+ : ConcurrentSetItem<KeyValuePair<string, EventTags>, NameInfo>
+ {
+ /// <summary>
+ /// Insure that eventIds strictly less than 'eventId' will not be
+ /// used by the SelfDescribing events.
+ /// </summary>
+ internal static void ReserveEventIDsBelow(int eventId)
+ {
+ for(;;)
+ {
+ int snapshot =lastIdentity;
+ int newIdentity = (lastIdentity & ~0xFFFFFF) + eventId;
+ newIdentity = Math.Max(newIdentity, snapshot); // Should be redundant. as we only create descriptors once.
+ if (Interlocked.CompareExchange(ref lastIdentity, newIdentity, snapshot) == snapshot)
+ break;
+ }
+ }
+
+ private static int lastIdentity = Statics.TraceLoggingChannel << 24;
+ internal readonly string name;
+ internal readonly EventTags tags;
+ internal readonly int identity;
+ internal readonly byte[] nameMetadata;
+
+ public NameInfo(string name, EventTags tags, int typeMetadataSize)
+ {
+ this.name = name;
+ this.tags = tags & Statics.EventTagsMask;
+ this.identity = Interlocked.Increment(ref lastIdentity);
+
+ int tagsPos = 0;
+ Statics.EncodeTags((int)this.tags, ref tagsPos, null);
+
+ this.nameMetadata = Statics.MetadataForString(name, tagsPos, 0, typeMetadataSize);
+
+ tagsPos = 2;
+ Statics.EncodeTags((int)this.tags, ref tagsPos, this.nameMetadata);
+ }
+
+ public override int Compare(NameInfo other)
+ {
+ return this.Compare(other.name, other.tags);
+ }
+
+ public override int Compare(KeyValuePair<string, EventTags> key)
+ {
+ return this.Compare(key.Key, key.Value & Statics.EventTagsMask);
+ }
+
+ private int Compare(string otherName, EventTags otherTags)
+ {
+ int result = StringComparer.Ordinal.Compare(this.name, otherName);
+ if (result == 0 && this.tags != otherTags)
+ {
+ result = this.tags < otherTags ? -1 : 1;
+ }
+ return result;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/PropertyAccessor.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/PropertyAccessor.cs
new file mode 100644
index 00000000000..a1f1ffc7519
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/PropertyAccessor.cs
@@ -0,0 +1,154 @@
+using System;
+using System.Reflection;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: Each PropertyAccessor instance encapsulates the information
+ /// needed to read a particular property from an instance of ContainerType
+ /// and write the value to a DataCollector. Used by InvokeTypeInfo.
+ /// </summary>
+ /// <typeparam name="ContainerType">
+ /// The type of the object from which properties are read.
+ /// </typeparam>
+ internal abstract class PropertyAccessor<ContainerType>
+ {
+ public abstract void Write(TraceLoggingDataCollector collector, ref ContainerType value);
+ public abstract object GetData(ContainerType value);
+
+ public static PropertyAccessor<ContainerType> Create(PropertyAnalysis property)
+ {
+ // Due to current Project N limitations on handling generic instantiations with
+ // 2 generic parameters we have to explicitly create the instantiations that we consider
+ // important to EventSource performance (we have considered int, long, string for the moment).
+ // Everything else is handled by NonGenericPropertyWriter that ends up boxing the container object.
+ var retType = property.getterInfo.ReturnType;
+ if (!Statics.IsValueType(typeof(ContainerType)))
+ {
+ if (retType == typeof(int))
+ return new ClassPropertyWriter<ContainerType, int>(property);
+ else if (retType == typeof(long))
+ return new ClassPropertyWriter<ContainerType, long>(property);
+ else if (retType == typeof(string))
+ return new ClassPropertyWriter<ContainerType, string>(property);
+ }
+ else
+ {
+ // Handle the case if it is a struct (DD 1027919)
+ }
+
+ // Otherwise use the boxing one.
+ return new NonGenericProperytWriter<ContainerType>(property);
+ }
+ }
+
+ /// <summary>
+ /// The type specific version of the property writers uses generics in a way
+ /// that Project N can't handle at the moment. To avoid this we simply
+ /// use reflection completely.
+ /// </summary>
+ internal class NonGenericProperytWriter<ContainerType> : PropertyAccessor<ContainerType>
+ {
+ public NonGenericProperytWriter(PropertyAnalysis property)
+ {
+ getterInfo = property.getterInfo;
+ typeInfo = property.typeInfo;
+ }
+
+ public override void Write(TraceLoggingDataCollector collector, ref ContainerType container)
+ {
+ object value = container == null
+ ? null
+ : getterInfo.Invoke((object)container, null);
+ this.typeInfo.WriteObjectData(collector, value);
+ }
+
+ public override object GetData(ContainerType container)
+ {
+ return container == null
+ ? default(ValueType)
+ : getterInfo.Invoke((object)container, null);
+ }
+
+ private readonly TraceLoggingTypeInfo typeInfo;
+ private readonly MethodInfo getterInfo;
+ }
+
+ /// <summary>
+ /// Implementation of PropertyAccessor for use when ContainerType is a
+ /// value type.
+ /// </summary>
+ /// <typeparam name="ContainerType">The type of the object from which properties are read.</typeparam>
+ /// <typeparam name="ValueType">Type of the property being read.</typeparam>
+ internal class StructPropertyWriter<ContainerType, ValueType>
+ : PropertyAccessor<ContainerType>
+ {
+ private delegate ValueType Getter(ref ContainerType container);
+ private readonly TraceLoggingTypeInfo<ValueType> valueTypeInfo;
+ private readonly Getter getter;
+
+ public StructPropertyWriter(PropertyAnalysis property)
+ {
+ this.valueTypeInfo = (TraceLoggingTypeInfo<ValueType>)property.typeInfo;
+ this.getter = (Getter)Statics.CreateDelegate(
+ typeof(Getter),
+ property.getterInfo);
+ }
+
+ public override void Write(TraceLoggingDataCollector collector, ref ContainerType container)
+ {
+ var value = container == null
+ ? default(ValueType)
+ : getter(ref container);
+ this.valueTypeInfo.WriteData(collector, ref value);
+ }
+
+ public override object GetData(ContainerType container)
+ {
+ return container == null
+ ? default(ValueType)
+ : getter(ref container);
+ }
+ }
+
+ /// <summary>
+ /// Implementation of PropertyAccessor for use when ContainerType is a
+ /// reference type.
+ /// </summary>
+ /// <typeparam name="ContainerType">The type of the object from which properties are read.</typeparam>
+ /// <typeparam name="ValueType">Type of the property being read.</typeparam>
+ internal class ClassPropertyWriter<ContainerType, ValueType>
+ : PropertyAccessor<ContainerType>
+ {
+ private delegate ValueType Getter(ContainerType container);
+ private readonly TraceLoggingTypeInfo<ValueType> valueTypeInfo;
+ private readonly Getter getter;
+
+ public ClassPropertyWriter(PropertyAnalysis property)
+ {
+ this.valueTypeInfo = (TraceLoggingTypeInfo<ValueType>)property.typeInfo;
+ this.getter = (Getter)Statics.CreateDelegate(
+ typeof(Getter),
+ property.getterInfo);
+ }
+
+ public override void Write(TraceLoggingDataCollector collector, ref ContainerType container)
+ {
+ var value = container == null
+ ? default(ValueType)
+ : getter(container);
+ this.valueTypeInfo.WriteData(collector, ref value);
+ }
+
+ public override object GetData(ContainerType container)
+ {
+ return container == null
+ ? default(ValueType)
+ : getter(container);
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/PropertyAnalysis.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/PropertyAnalysis.cs
new file mode 100644
index 00000000000..705c05a2a4d
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/PropertyAnalysis.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Reflection;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: stores the per-property information obtained by
+ /// reflecting over a type.
+ /// </summary>
+ internal sealed class PropertyAnalysis
+ {
+ internal readonly string name;
+ internal readonly MethodInfo getterInfo;
+ internal readonly TraceLoggingTypeInfo typeInfo;
+ internal readonly EventFieldAttribute fieldAttribute;
+
+ public PropertyAnalysis(
+ string name,
+ MethodInfo getterInfo,
+ TraceLoggingTypeInfo typeInfo,
+ EventFieldAttribute fieldAttribute)
+ {
+ this.name = name;
+ this.getterInfo = getterInfo;
+ this.typeInfo = typeInfo;
+ this.fieldAttribute = fieldAttribute;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/SimpleEventTypes.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/SimpleEventTypes.cs
new file mode 100644
index 00000000000..8a3fcc9e5b7
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/SimpleEventTypes.cs
@@ -0,0 +1,46 @@
+using System;
+using Interlocked = System.Threading.Interlocked;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: Contains the metadata needed to emit an event, optimized
+ /// for events with one top-level compile-time-typed payload object.
+ /// </summary>
+ /// <typeparam name="T">
+ /// Type of the top-level payload object. Should be EmptyStruct if the
+ /// event has no payload.
+ /// </typeparam>
+ internal class SimpleEventTypes<T>
+ : TraceLoggingEventTypes
+ {
+ private static SimpleEventTypes<T> instance;
+
+ internal readonly TraceLoggingTypeInfo<T> typeInfo;
+
+ private SimpleEventTypes(TraceLoggingTypeInfo<T> typeInfo)
+ : base(
+ typeInfo.Name,
+ typeInfo.Tags,
+ new TraceLoggingTypeInfo[] { typeInfo })
+ {
+ this.typeInfo = typeInfo;
+ }
+
+ public static SimpleEventTypes<T> Instance
+ {
+ get { return instance ?? InitInstance(); }
+ }
+
+ private static SimpleEventTypes<T> InitInstance()
+ {
+ var newInstance = new SimpleEventTypes<T>(TraceLoggingTypeInfo<T>.Instance);
+ Interlocked.CompareExchange(ref instance, newInstance, null);
+ return instance;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/SimpleTypeInfos.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/SimpleTypeInfos.cs
new file mode 100644
index 00000000000..f08ef29f5f2
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/SimpleTypeInfos.cs
@@ -0,0 +1,1044 @@
+using System;
+using System.Collections.Generic;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ #region NullTypeInfo
+
+ /// <summary>
+ /// TraceLogging: Type handler for empty or unsupported types.
+ /// </summary>
+ /// <typeparam name="DataType">The type to handle.</typeparam>
+ internal sealed class NullTypeInfo<DataType>
+ : TraceLoggingTypeInfo<DataType>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddGroup(name);
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref DataType value)
+ {
+ return;
+ }
+
+ public override object GetData(object value)
+ {
+ return null;
+ }
+ }
+
+ #endregion
+
+ #region Primitive scalars
+
+ /// <summary>
+ /// TraceLogging: Type handler for Boolean.
+ /// </summary>
+ internal sealed class BooleanTypeInfo
+ : TraceLoggingTypeInfo<Boolean>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format8(format, TraceLoggingDataType.Boolean8));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Boolean value)
+ {
+ collector.AddScalar(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Byte.
+ /// </summary>
+ internal sealed class ByteTypeInfo
+ : TraceLoggingTypeInfo<Byte>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format8(format, TraceLoggingDataType.UInt8));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Byte value)
+ {
+ collector.AddScalar(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for SByte.
+ /// </summary>
+ internal sealed class SByteTypeInfo
+ : TraceLoggingTypeInfo<SByte>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format8(format, TraceLoggingDataType.Int8));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref SByte value)
+ {
+ collector.AddScalar(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Int16.
+ /// </summary>
+ internal sealed class Int16TypeInfo
+ : TraceLoggingTypeInfo<Int16>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format16(format, TraceLoggingDataType.Int16));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Int16 value)
+ {
+ collector.AddScalar(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for UInt16.
+ /// </summary>
+ internal sealed class UInt16TypeInfo
+ : TraceLoggingTypeInfo<UInt16>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format16(format, TraceLoggingDataType.UInt16));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref UInt16 value)
+ {
+ collector.AddScalar(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Int32.
+ /// </summary>
+ internal sealed class Int32TypeInfo
+ : TraceLoggingTypeInfo<Int32>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format32(format, TraceLoggingDataType.Int32));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Int32 value)
+ {
+ collector.AddScalar(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for UInt32.
+ /// </summary>
+ internal sealed class UInt32TypeInfo
+ : TraceLoggingTypeInfo<UInt32>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format32(format, TraceLoggingDataType.UInt32));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref UInt32 value)
+ {
+ collector.AddScalar(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Int64.
+ /// </summary>
+ internal sealed class Int64TypeInfo
+ : TraceLoggingTypeInfo<Int64>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format64(format, TraceLoggingDataType.Int64));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Int64 value)
+ {
+ collector.AddScalar(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for UInt64.
+ /// </summary>
+ internal sealed class UInt64TypeInfo
+ : TraceLoggingTypeInfo<UInt64>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format64(format, TraceLoggingDataType.UInt64));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref UInt64 value)
+ {
+ collector.AddScalar(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for IntPtr.
+ /// </summary>
+ internal sealed class IntPtrTypeInfo
+ : TraceLoggingTypeInfo<IntPtr>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.FormatPtr(format, Statics.IntPtrType));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref IntPtr value)
+ {
+ collector.AddScalar(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for UIntPtr.
+ /// </summary>
+ internal sealed class UIntPtrTypeInfo
+ : TraceLoggingTypeInfo<UIntPtr>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.FormatPtr(format, Statics.UIntPtrType));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref UIntPtr value)
+ {
+ collector.AddScalar(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Double.
+ /// </summary>
+ internal sealed class DoubleTypeInfo
+ : TraceLoggingTypeInfo<Double>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format64(format, TraceLoggingDataType.Double));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Double value)
+ {
+ collector.AddScalar(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Single.
+ /// </summary>
+ internal sealed class SingleTypeInfo
+ : TraceLoggingTypeInfo<Single>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format32(format, TraceLoggingDataType.Float));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Single value)
+ {
+ collector.AddScalar(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Char.
+ /// </summary>
+ internal sealed class CharTypeInfo
+ : TraceLoggingTypeInfo<Char>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format16(format, TraceLoggingDataType.Char16));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Char value)
+ {
+ collector.AddScalar(value);
+ }
+ }
+
+ #endregion
+
+ #region Primitive arrays
+
+ /// <summary>
+ /// TraceLogging: Type handler for Boolean[].
+ /// </summary>
+ internal sealed class BooleanArrayTypeInfo
+ : TraceLoggingTypeInfo<Boolean[]>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddArray(name, Statics.Format8(format, TraceLoggingDataType.Boolean8));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Boolean[] value)
+ {
+ collector.AddArray(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Byte[].
+ /// </summary>
+ internal sealed class ByteArrayTypeInfo
+ : TraceLoggingTypeInfo<Byte[]>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ switch (format)
+ {
+ default:
+ collector.AddBinary(name, Statics.MakeDataType(TraceLoggingDataType.Binary, format));
+ break;
+ case EventFieldFormat.String:
+ collector.AddBinary(name, TraceLoggingDataType.CountedMbcsString);
+ break;
+ case EventFieldFormat.Xml:
+ collector.AddBinary(name, TraceLoggingDataType.CountedMbcsXml);
+ break;
+ case EventFieldFormat.Json:
+ collector.AddBinary(name, TraceLoggingDataType.CountedMbcsJson);
+ break;
+ case EventFieldFormat.Boolean:
+ collector.AddArray(name, TraceLoggingDataType.Boolean8);
+ break;
+ case EventFieldFormat.Hexadecimal:
+ collector.AddArray(name, TraceLoggingDataType.HexInt8);
+ break;
+#if false
+ case EventSourceFieldFormat.Signed:
+ collector.AddArray(name, TraceLoggingDataType.Int8);
+ break;
+ case EventSourceFieldFormat.Unsigned:
+ collector.AddArray(name, TraceLoggingDataType.UInt8);
+ break;
+#endif
+ }
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Byte[] value)
+ {
+ collector.AddBinary(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for SByte[].
+ /// </summary>
+ internal sealed class SByteArrayTypeInfo
+ : TraceLoggingTypeInfo<SByte[]>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddArray(name, Statics.Format8(format, TraceLoggingDataType.Int8));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref SByte[] value)
+ {
+ collector.AddArray(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Int16[].
+ /// </summary>
+ internal sealed class Int16ArrayTypeInfo
+ : TraceLoggingTypeInfo<Int16[]>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddArray(name, Statics.Format16(format, TraceLoggingDataType.Int16));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Int16[] value)
+ {
+ collector.AddArray(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for UInt16[].
+ /// </summary>
+ internal sealed class UInt16ArrayTypeInfo
+ : TraceLoggingTypeInfo<UInt16[]>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddArray(name, Statics.Format16(format, TraceLoggingDataType.UInt16));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref UInt16[] value)
+ {
+ collector.AddArray(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Int32[].
+ /// </summary>
+ internal sealed class Int32ArrayTypeInfo
+ : TraceLoggingTypeInfo<Int32[]>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddArray(name, Statics.Format32(format, TraceLoggingDataType.Int32));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Int32[] value)
+ {
+ collector.AddArray(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for UInt32[].
+ /// </summary>
+ internal sealed class UInt32ArrayTypeInfo
+ : TraceLoggingTypeInfo<UInt32[]>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddArray(name, Statics.Format32(format, TraceLoggingDataType.UInt32));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref UInt32[] value)
+ {
+ collector.AddArray(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Int64[].
+ /// </summary>
+ internal sealed class Int64ArrayTypeInfo
+ : TraceLoggingTypeInfo<Int64[]>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddArray(name, Statics.Format64(format, TraceLoggingDataType.Int64));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Int64[] value)
+ {
+ collector.AddArray(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for UInt64[].
+ /// </summary>
+ internal sealed class UInt64ArrayTypeInfo
+ : TraceLoggingTypeInfo<UInt64[]>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddArray(name, Statics.Format64(format, TraceLoggingDataType.UInt64));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref UInt64[] value)
+ {
+ collector.AddArray(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for IntPtr[].
+ /// </summary>
+ internal sealed class IntPtrArrayTypeInfo
+ : TraceLoggingTypeInfo<IntPtr[]>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddArray(name, Statics.FormatPtr(format, Statics.IntPtrType));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref IntPtr[] value)
+ {
+ collector.AddArray(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for UIntPtr[].
+ /// </summary>
+ internal sealed class UIntPtrArrayTypeInfo
+ : TraceLoggingTypeInfo<UIntPtr[]>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddArray(name, Statics.FormatPtr(format, Statics.UIntPtrType));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref UIntPtr[] value)
+ {
+ collector.AddArray(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Char[].
+ /// </summary>
+ internal sealed class CharArrayTypeInfo
+ : TraceLoggingTypeInfo<Char[]>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddArray(name, Statics.Format16(format, TraceLoggingDataType.Char16));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Char[] value)
+ {
+ collector.AddArray(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Double[].
+ /// </summary>
+ internal sealed class DoubleArrayTypeInfo
+ : TraceLoggingTypeInfo<Double[]>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddArray(name, Statics.Format64(format, TraceLoggingDataType.Double));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Double[] value)
+ {
+ collector.AddArray(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Single[].
+ /// </summary>
+ internal sealed class SingleArrayTypeInfo
+ : TraceLoggingTypeInfo<Single[]>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddArray(name, Statics.Format32(format, TraceLoggingDataType.Float));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Single[] value)
+ {
+ collector.AddArray(value);
+ }
+ }
+
+ #endregion
+
+ #region Enum scalars
+
+ internal sealed class EnumByteTypeInfo<EnumType>
+ : TraceLoggingTypeInfo<EnumType>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format8(format, TraceLoggingDataType.UInt8));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref EnumType value)
+ {
+ collector.AddScalar(EnumHelper<Byte>.Cast(value));
+ }
+
+ public override object GetData(object value)
+ {
+ return (Byte)value;
+ }
+ }
+
+ internal sealed class EnumSByteTypeInfo<EnumType>
+ : TraceLoggingTypeInfo<EnumType>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format8(format, TraceLoggingDataType.Int8));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref EnumType value)
+ {
+ collector.AddScalar(EnumHelper<SByte>.Cast(value));
+ }
+
+ public override object GetData(object value)
+ {
+ return (SByte)value;
+ }
+ }
+
+ internal sealed class EnumInt16TypeInfo<EnumType>
+ : TraceLoggingTypeInfo<EnumType>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format16(format, TraceLoggingDataType.Int16));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref EnumType value)
+ {
+ collector.AddScalar(EnumHelper<Int16>.Cast(value));
+ }
+
+ public override object GetData(object value)
+ {
+ return (Int16)value;
+ }
+ }
+
+ internal sealed class EnumUInt16TypeInfo<EnumType>
+ : TraceLoggingTypeInfo<EnumType>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format16(format, TraceLoggingDataType.UInt16));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref EnumType value)
+ {
+ collector.AddScalar(EnumHelper<UInt16>.Cast(value));
+ }
+
+ public override object GetData(object value)
+ {
+ return (UInt16)value;
+ }
+ }
+
+ internal sealed class EnumInt32TypeInfo<EnumType>
+ : TraceLoggingTypeInfo<EnumType>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format32(format, TraceLoggingDataType.Int32));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref EnumType value)
+ {
+ collector.AddScalar(EnumHelper<Int32>.Cast(value));
+ }
+
+ public override object GetData(object value)
+ {
+ return (Int32)value;
+ }
+ }
+
+ internal sealed class EnumUInt32TypeInfo<EnumType>
+ : TraceLoggingTypeInfo<EnumType>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format32(format, TraceLoggingDataType.UInt32));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref EnumType value)
+ {
+ collector.AddScalar(EnumHelper<UInt32>.Cast(value));
+ }
+
+ public override object GetData(object value)
+ {
+ return (UInt32)value;
+ }
+ }
+
+ internal sealed class EnumInt64TypeInfo<EnumType>
+ : TraceLoggingTypeInfo<EnumType>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format64(format, TraceLoggingDataType.Int64));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref EnumType value)
+ {
+ collector.AddScalar(EnumHelper<Int64>.Cast(value));
+ }
+
+ public override object GetData(object value)
+ {
+ return (Int64)value;
+ }
+ }
+
+ internal sealed class EnumUInt64TypeInfo<EnumType>
+ : TraceLoggingTypeInfo<EnumType>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.Format64(format, TraceLoggingDataType.UInt64));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref EnumType value)
+ {
+ collector.AddScalar(EnumHelper<UInt64>.Cast(value));
+ }
+
+ public override object GetData(object value)
+ {
+ return (UInt64)value;
+ }
+ }
+
+ #endregion
+
+ #region Other built-in types
+
+ /// <summary>
+ /// TraceLogging: Type handler for String.
+ /// </summary>
+ internal sealed class StringTypeInfo
+ : TraceLoggingTypeInfo<String>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddBinary(name, Statics.MakeDataType(TraceLoggingDataType.CountedUtf16String, format));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref String value)
+ {
+ collector.AddBinary(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Guid.
+ /// </summary>
+ internal sealed class GuidTypeInfo
+ : TraceLoggingTypeInfo<Guid>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.MakeDataType(TraceLoggingDataType.Guid, format));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Guid value)
+ {
+ collector.AddScalar(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Guid[].
+ /// </summary>
+ internal sealed class GuidArrayTypeInfo
+ : TraceLoggingTypeInfo<Guid[]>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddArray(name, Statics.MakeDataType(TraceLoggingDataType.Guid, format));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref Guid[] value)
+ {
+ collector.AddArray(value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for DateTime.
+ /// </summary>
+ internal sealed class DateTimeTypeInfo
+ : TraceLoggingTypeInfo<DateTime>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.MakeDataType(TraceLoggingDataType.FileTime, format));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref DateTime value)
+ {
+ var ticks = value.Ticks;
+ collector.AddScalar(ticks < 504911232000000000 ? 0 : ticks - 504911232000000000);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for DateTimeOffset.
+ /// </summary>
+ internal sealed class DateTimeOffsetTypeInfo
+ : TraceLoggingTypeInfo<DateTimeOffset>
+ {
+ public override void WriteMetadata(TraceLoggingMetadataCollector collector, string name, EventFieldFormat format)
+ {
+ var group = collector.AddGroup(name);
+ group.AddScalar("Ticks", Statics.MakeDataType(TraceLoggingDataType.FileTime, format));
+ group.AddScalar("Offset", TraceLoggingDataType.Int64);
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref DateTimeOffset value)
+ {
+ var ticks = value.Ticks;
+ collector.AddScalar(ticks < 504911232000000000 ? 0 : ticks - 504911232000000000);
+ collector.AddScalar(value.Offset.Ticks);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for TimeSpan.
+ /// </summary>
+ internal sealed class TimeSpanTypeInfo
+ : TraceLoggingTypeInfo<TimeSpan>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.MakeDataType(TraceLoggingDataType.Int64, format));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref TimeSpan value)
+ {
+ collector.AddScalar(value.Ticks);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Decimal. (Note: not full-fidelity, exposed as Double.)
+ /// </summary>
+ internal sealed class DecimalTypeInfo
+ : TraceLoggingTypeInfo<Decimal>
+ {
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ collector.AddScalar(name, Statics.MakeDataType(TraceLoggingDataType.Double, format));
+ }
+
+ public override void WriteData(TraceLoggingDataCollector collector, ref decimal value)
+ {
+ collector.AddScalar((double)value);
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for KeyValuePair.
+ /// </summary>
+ /// <typeparam name="K">Type of the KeyValuePair's Key property.</typeparam>
+ /// <typeparam name="V">Type of the KeyValuePair's Value property.</typeparam>
+ internal sealed class KeyValuePairTypeInfo<K, V>
+ : TraceLoggingTypeInfo<KeyValuePair<K, V>>
+ {
+ private readonly TraceLoggingTypeInfo<K> keyInfo;
+ private readonly TraceLoggingTypeInfo<V> valueInfo;
+
+ public KeyValuePairTypeInfo(List<Type> recursionCheck)
+ {
+ this.keyInfo = TraceLoggingTypeInfo<K>.GetInstance(recursionCheck);
+ this.valueInfo = TraceLoggingTypeInfo<V>.GetInstance(recursionCheck);
+ }
+
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ var group = collector.AddGroup(name);
+ this.keyInfo.WriteMetadata(group, "Key", EventFieldFormat.Default);
+ this.valueInfo.WriteMetadata(group, "Value", format);
+ }
+
+ public override void WriteData(
+ TraceLoggingDataCollector collector,
+ ref KeyValuePair<K, V> value)
+ {
+ var key = value.Key;
+ var val = value.Value;
+ this.keyInfo.WriteData(collector, ref key);
+ this.valueInfo.WriteData(collector, ref val);
+ }
+
+ public override object GetData(object value)
+ {
+ var serializedType = new Dictionary<string, object>();
+ var keyValuePair = (KeyValuePair<K, V>) value;
+ serializedType.Add("Key", this.keyInfo.GetData(keyValuePair.Key));
+ serializedType.Add("Value", this.valueInfo.GetData(keyValuePair.Value));
+ return serializedType;
+ }
+ }
+
+ /// <summary>
+ /// TraceLogging: Type handler for Nullable.
+ /// </summary>
+ /// <typeparam name="T">Type of the Nullable's Value property.</typeparam>
+ internal sealed class NullableTypeInfo<T>
+ : TraceLoggingTypeInfo<Nullable<T>>
+ where T : struct
+ {
+ private readonly TraceLoggingTypeInfo<T> valueInfo;
+
+ public NullableTypeInfo(List<Type> recursionCheck)
+ {
+ this.valueInfo = TraceLoggingTypeInfo<T>.GetInstance(recursionCheck);
+ }
+
+ public override void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format)
+ {
+ var group = collector.AddGroup(name);
+ group.AddScalar("HasValue", TraceLoggingDataType.Boolean8);
+ this.valueInfo.WriteMetadata(group, "Value", format);
+ }
+
+ public override void WriteData(
+ TraceLoggingDataCollector collector,
+ ref Nullable<T> value)
+ {
+ var hasValue = value.HasValue;
+ collector.AddScalar(hasValue);
+ var val = hasValue ? value.Value : default(T);
+ this.valueInfo.WriteData(collector, ref val);
+ }
+ }
+
+ #endregion
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/Statics.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/Statics.cs
new file mode 100644
index 00000000000..a566d56a3b1
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/Statics.cs
@@ -0,0 +1,827 @@
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using Encoding = System.Text.Encoding;
+
+#if ES_BUILD_STANDALONE
+using Environment = Microsoft.Diagnostics.Tracing.Internal.Environment;
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: Constants and utility functions.
+ /// </summary>
+ internal static class Statics
+ {
+ #region Constants
+
+ public const byte DefaultLevel = 5;
+ public const byte TraceLoggingChannel = 0xb;
+ public const byte InTypeMask = 31;
+ public const byte InTypeFixedCountFlag = 32;
+ public const byte InTypeVariableCountFlag = 64;
+ public const byte InTypeCustomCountFlag = 96;
+ public const byte InTypeCountMask = 96;
+ public const byte InTypeChainFlag = 128;
+ public const byte OutTypeMask = 127;
+ public const byte OutTypeChainFlag = 128;
+ public const EventTags EventTagsMask = (EventTags)0xfffffff;
+
+ public static readonly TraceLoggingDataType IntPtrType = IntPtr.Size == 8
+ ? TraceLoggingDataType.Int64
+ : TraceLoggingDataType.Int32;
+ public static readonly TraceLoggingDataType UIntPtrType = IntPtr.Size == 8
+ ? TraceLoggingDataType.UInt64
+ : TraceLoggingDataType.UInt32;
+ public static readonly TraceLoggingDataType HexIntPtrType = IntPtr.Size == 8
+ ? TraceLoggingDataType.HexInt64
+ : TraceLoggingDataType.HexInt32;
+
+ #endregion
+
+ #region Metadata helpers
+
+ /// <summary>
+ /// A complete metadata chunk can be expressed as:
+ /// length16 + prefix + null-terminated-utf8-name + suffix + additionalData.
+ /// We assume that excludedData will be provided by some other means,
+ /// but that its size is known. This function returns a blob containing
+ /// length16 + prefix + name + suffix, with prefix and suffix initialized
+ /// to 0's. The length16 value is initialized to the length of the returned
+ /// blob plus additionalSize, so that the concatenation of the returned blob
+ /// plus a blob of size additionalSize constitutes a valid metadata blob.
+ /// </summary>
+ /// <param name="name">
+ /// The name to include in the blob.
+ /// </param>
+ /// <param name="prefixSize">
+ /// Amount of space to reserve before name. For provider or field blobs, this
+ /// should be 0. For event blobs, this is used for the tags field and will vary
+ /// from 1 to 4, depending on how large the tags field needs to be.
+ /// </param>
+ /// <param name="suffixSize">
+ /// Amount of space to reserve after name. For example, a provider blob with no
+ /// traits would reserve 0 extra bytes, but a provider blob with a single GroupId
+ /// field would reserve 19 extra bytes.
+ /// </param>
+ /// <param name="additionalSize">
+ /// Amount of additional data in another blob. This value will be counted in the
+ /// blob's length field, but will not be included in the returned byte[] object.
+ /// The complete blob would then be the concatenation of the returned byte[] object
+ /// with another byte[] object of length additionalSize.
+ /// </param>
+ /// <returns>
+ /// A byte[] object with the length and name fields set, with room reserved for
+ /// prefix and suffix. If additionalSize was 0, the byte[] object is a complete
+ /// blob. Otherwise, another byte[] of size additionalSize must be concatenated
+ /// with this one to form a complete blob.
+ /// </returns>
+ public static byte[] MetadataForString(
+ string name,
+ int prefixSize,
+ int suffixSize,
+ int additionalSize)
+ {
+ Statics.CheckName(name);
+ int metadataSize = Encoding.UTF8.GetByteCount(name) + 3 + prefixSize + suffixSize;
+ var metadata = new byte[metadataSize];
+ ushort totalSize = checked((ushort)(metadataSize + additionalSize));
+ metadata[0] = unchecked((byte)totalSize);
+ metadata[1] = unchecked((byte)(totalSize >> 8));
+ Encoding.UTF8.GetBytes(name, 0, name.Length, metadata, 2 + prefixSize);
+ return metadata;
+ }
+
+ /// <summary>
+ /// Serialize the low 28 bits of the tags value into the metadata stream,
+ /// starting at the index given by pos. Updates pos. Writes 1 to 4 bytes,
+ /// depending on the value of the tags variable. Usable for event tags and
+ /// field tags.
+ ///
+ /// Note that 'metadata' can be null, in which case it only updates 'pos'.
+ /// This is useful for a two pass approach where you figure out how big to
+ /// make the array, and then you fill it in.
+ /// </summary>
+ public static void EncodeTags(int tags, ref int pos, byte[] metadata)
+ {
+ // We transmit the low 28 bits of tags, high bits first, 7 bits at a time.
+ var tagsLeft = tags & 0xfffffff;
+ bool more;
+ do
+ {
+ byte current = (byte)((tagsLeft >> 21) & 0x7f);
+ more = (tagsLeft & 0x1fffff) != 0;
+ current |= (byte)(more ? 0x80 : 0x00);
+ tagsLeft = tagsLeft << 7;
+
+ if (metadata != null)
+ {
+ metadata[pos] = current;
+ }
+ pos += 1;
+ }
+ while (more);
+ }
+
+ public static byte Combine(
+ int settingValue,
+ byte defaultValue)
+ {
+ unchecked
+ {
+ return (byte)settingValue == settingValue
+ ? (byte)settingValue
+ : defaultValue;
+ }
+ }
+
+ public static byte Combine(
+ int settingValue1,
+ int settingValue2,
+ byte defaultValue)
+ {
+ unchecked
+ {
+ return (byte)settingValue1 == settingValue1
+ ? (byte)settingValue1
+ : (byte)settingValue2 == settingValue2
+ ? (byte)settingValue2
+ : defaultValue;
+ }
+ }
+
+ public static int Combine(
+ int settingValue1,
+ int settingValue2)
+ {
+ unchecked
+ {
+ return (byte)settingValue1 == settingValue1
+ ? settingValue1
+ : settingValue2;
+ }
+ }
+
+ public static void CheckName(string name)
+ {
+ if (name != null && 0 <= name.IndexOf('\0'))
+ {
+ throw new ArgumentOutOfRangeException("name");
+ }
+ }
+
+ public static bool ShouldOverrideFieldName(string fieldName)
+ {
+ return (fieldName.Length <= 2 && fieldName[0] == '_');
+ }
+
+ public static TraceLoggingDataType MakeDataType(
+ TraceLoggingDataType baseType,
+ EventFieldFormat format)
+ {
+ return (TraceLoggingDataType)(((int)baseType & 0x1f) | ((int)format << 8));
+ }
+
+ /// <summary>
+ /// Adjusts the native type based on format.
+ /// - If format is default, return native.
+ /// - If format is recognized, return the canonical type for that format.
+ /// - Otherwise remove existing format from native and apply the requested format.
+ /// </summary>
+ public static TraceLoggingDataType Format8(
+ EventFieldFormat format,
+ TraceLoggingDataType native)
+ {
+ switch (format)
+ {
+ case EventFieldFormat.Default:
+ return native;
+ case EventFieldFormat.String:
+ return TraceLoggingDataType.Char8;
+ case EventFieldFormat.Boolean:
+ return TraceLoggingDataType.Boolean8;
+ case EventFieldFormat.Hexadecimal:
+ return TraceLoggingDataType.HexInt8;
+#if false
+ case EventSourceFieldFormat.Signed:
+ return TraceLoggingDataType.Int8;
+ case EventSourceFieldFormat.Unsigned:
+ return TraceLoggingDataType.UInt8;
+#endif
+ default:
+ return MakeDataType(native, format);
+ }
+ }
+
+ /// <summary>
+ /// Adjusts the native type based on format.
+ /// - If format is default, return native.
+ /// - If format is recognized, return the canonical type for that format.
+ /// - Otherwise remove existing format from native and apply the requested format.
+ /// </summary>
+ public static TraceLoggingDataType Format16(
+ EventFieldFormat format,
+ TraceLoggingDataType native)
+ {
+ switch (format)
+ {
+ case EventFieldFormat.Default:
+ return native;
+ case EventFieldFormat.String:
+ return TraceLoggingDataType.Char16;
+ case EventFieldFormat.Hexadecimal:
+ return TraceLoggingDataType.HexInt16;
+#if false
+ case EventSourceFieldFormat.Port:
+ return TraceLoggingDataType.Port;
+ case EventSourceFieldFormat.Signed:
+ return TraceLoggingDataType.Int16;
+ case EventSourceFieldFormat.Unsigned:
+ return TraceLoggingDataType.UInt16;
+#endif
+ default:
+ return MakeDataType(native, format);
+ }
+ }
+
+ /// <summary>
+ /// Adjusts the native type based on format.
+ /// - If format is default, return native.
+ /// - If format is recognized, return the canonical type for that format.
+ /// - Otherwise remove existing format from native and apply the requested format.
+ /// </summary>
+ public static TraceLoggingDataType Format32(
+ EventFieldFormat format,
+ TraceLoggingDataType native)
+ {
+ switch (format)
+ {
+ case EventFieldFormat.Default:
+ return native;
+ case EventFieldFormat.Boolean:
+ return TraceLoggingDataType.Boolean32;
+ case EventFieldFormat.Hexadecimal:
+ return TraceLoggingDataType.HexInt32;
+#if false
+ case EventSourceFieldFormat.Ipv4Address:
+ return TraceLoggingDataType.Ipv4Address;
+ case EventSourceFieldFormat.ProcessId:
+ return TraceLoggingDataType.ProcessId;
+ case EventSourceFieldFormat.ThreadId:
+ return TraceLoggingDataType.ThreadId;
+ case EventSourceFieldFormat.Win32Error:
+ return TraceLoggingDataType.Win32Error;
+ case EventSourceFieldFormat.NTStatus:
+ return TraceLoggingDataType.NTStatus;
+#endif
+ case EventFieldFormat.HResult:
+ return TraceLoggingDataType.HResult;
+#if false
+ case EventSourceFieldFormat.Signed:
+ return TraceLoggingDataType.Int32;
+ case EventSourceFieldFormat.Unsigned:
+ return TraceLoggingDataType.UInt32;
+#endif
+ default:
+ return MakeDataType(native, format);
+ }
+ }
+
+ /// <summary>
+ /// Adjusts the native type based on format.
+ /// - If format is default, return native.
+ /// - If format is recognized, return the canonical type for that format.
+ /// - Otherwise remove existing format from native and apply the requested format.
+ /// </summary>
+ public static TraceLoggingDataType Format64(
+ EventFieldFormat format,
+ TraceLoggingDataType native)
+ {
+ switch (format)
+ {
+ case EventFieldFormat.Default:
+ return native;
+ case EventFieldFormat.Hexadecimal:
+ return TraceLoggingDataType.HexInt64;
+#if false
+ case EventSourceFieldFormat.FileTime:
+ return TraceLoggingDataType.FileTime;
+ case EventSourceFieldFormat.Signed:
+ return TraceLoggingDataType.Int64;
+ case EventSourceFieldFormat.Unsigned:
+ return TraceLoggingDataType.UInt64;
+#endif
+ default:
+ return MakeDataType(native, format);
+ }
+ }
+
+ /// <summary>
+ /// Adjusts the native type based on format.
+ /// - If format is default, return native.
+ /// - If format is recognized, return the canonical type for that format.
+ /// - Otherwise remove existing format from native and apply the requested format.
+ /// </summary>
+ public static TraceLoggingDataType FormatPtr(
+ EventFieldFormat format,
+ TraceLoggingDataType native)
+ {
+ switch (format)
+ {
+ case EventFieldFormat.Default:
+ return native;
+ case EventFieldFormat.Hexadecimal:
+ return HexIntPtrType;
+#if false
+ case EventSourceFieldFormat.Signed:
+ return IntPtrType;
+ case EventSourceFieldFormat.Unsigned:
+ return UIntPtrType;
+#endif
+ default:
+ return MakeDataType(native, format);
+ }
+ }
+
+ #endregion
+
+ #region Reflection helpers
+
+ /*
+ All TraceLogging use of reflection APIs should go through wrappers here.
+ This helps with portability, and it also makes it easier to audit what
+ kinds of reflection operations are being done.
+ */
+
+ public static object CreateInstance(Type type, params object[] parameters)
+ {
+ return Activator.CreateInstance(type, parameters);
+ }
+
+ public static bool IsValueType(Type type)
+ {
+ bool result;
+#if ES_BUILD_PCL
+ result = type.GetTypeInfo().IsValueType;
+#else
+ result = type.IsValueType;
+#endif
+ return result;
+ }
+
+ public static bool IsEnum(Type type)
+ {
+ bool result;
+#if ES_BUILD_PCL
+ result = type.GetTypeInfo().IsEnum;
+#else
+ result = type.IsEnum;
+#endif
+ return result;
+ }
+
+ public static IEnumerable<PropertyInfo> GetProperties(Type type)
+ {
+ IEnumerable<PropertyInfo> result;
+#if ES_BUILD_PCL
+ result = type.GetRuntimeProperties();
+#else
+ result = type.GetProperties();
+#endif
+ return result;
+ }
+
+ public static MethodInfo GetGetMethod(PropertyInfo propInfo)
+ {
+ MethodInfo result;
+#if ES_BUILD_PCL
+ result = propInfo.GetMethod;
+#else
+ result = propInfo.GetGetMethod();
+#endif
+ return result;
+ }
+
+ public static MethodInfo GetDeclaredStaticMethod(Type declaringType, string name)
+ {
+ MethodInfo result;
+#if ES_BUILD_PCL
+ result = declaringType.GetTypeInfo().GetDeclaredMethod(name);
+#else
+ result = declaringType.GetMethod(
+ name,
+ BindingFlags.DeclaredOnly | BindingFlags.Static | BindingFlags.NonPublic);
+#endif
+ return result;
+ }
+
+ public static bool HasCustomAttribute(
+ PropertyInfo propInfo,
+ Type attributeType)
+ {
+ bool result;
+#if ES_BUILD_PCL
+ result = propInfo.IsDefined(attributeType);
+#else
+ var attributes = propInfo.GetCustomAttributes(
+ attributeType,
+ false);
+ result = attributes.Length != 0;
+#endif
+ return result;
+ }
+
+ public static AttributeType GetCustomAttribute<AttributeType>(PropertyInfo propInfo)
+ where AttributeType : Attribute
+ {
+ AttributeType result = null;
+#if ES_BUILD_PCL
+ foreach (var attrib in propInfo.GetCustomAttributes<AttributeType>(false))
+ {
+ result = attrib;
+ break;
+ }
+#else
+ var attributes = propInfo.GetCustomAttributes(typeof(AttributeType), false);
+ if (attributes.Length != 0)
+ {
+ result = (AttributeType)attributes[0];
+ }
+#endif
+ return result;
+ }
+
+ public static AttributeType GetCustomAttribute<AttributeType>(Type type)
+ where AttributeType : Attribute
+ {
+ AttributeType result = null;
+#if ES_BUILD_PCL
+ foreach (var attrib in type.GetTypeInfo().GetCustomAttributes<AttributeType>(false))
+ {
+ result = attrib;
+ break;
+ }
+#else
+ var attributes = type.GetCustomAttributes(typeof(AttributeType), false);
+ if (attributes.Length != 0)
+ {
+ result = (AttributeType)attributes[0];
+ }
+#endif
+ return result;
+ }
+
+ public static Type[] GetGenericArguments(Type type)
+ {
+#if ES_BUILD_PCL
+ return type.GenericTypeArguments;
+#else
+ return type.GetGenericArguments();
+#endif
+ }
+
+ public static Type FindEnumerableElementType(Type type)
+ {
+ Type elementType = null;
+
+ if (IsGenericMatch(type, typeof(IEnumerable<>)))
+ {
+ elementType = GetGenericArguments(type)[0];
+ }
+ else
+ {
+#if ES_BUILD_PCL
+ var ifaceTypes = type.GetTypeInfo().ImplementedInterfaces;
+#else
+ var ifaceTypes = type.FindInterfaces(IsGenericMatch, typeof(IEnumerable<>));
+#endif
+
+ foreach (var ifaceType in ifaceTypes)
+ {
+#if ES_BUILD_PCL
+ if (!IsGenericMatch(ifaceType, typeof(IEnumerable<>)))
+ {
+ continue;
+ }
+#endif
+
+ if (elementType != null)
+ {
+ // ambiguous match. report no match at all.
+ elementType = null;
+ break;
+ }
+
+ elementType = GetGenericArguments(ifaceType)[0];
+ }
+ }
+
+ return elementType;
+ }
+
+ public static bool IsGenericMatch(Type type, object openType)
+ {
+ bool isGeneric;
+#if ES_BUILD_PCL
+ isGeneric = type.IsConstructedGenericType;
+#else
+ isGeneric = type.IsGenericType;
+#endif
+ return isGeneric && type.GetGenericTypeDefinition() == (Type)openType;
+ }
+
+ public static Delegate CreateDelegate(Type delegateType, MethodInfo methodInfo)
+ {
+ Delegate result;
+#if ES_BUILD_PCL
+ result = methodInfo.CreateDelegate(
+ delegateType);
+#else
+ result = Delegate.CreateDelegate(
+ delegateType,
+ methodInfo);
+#endif
+ return result;
+ }
+
+ public static TraceLoggingTypeInfo GetTypeInfoInstance(Type dataType, List<Type> recursionCheck)
+ {
+ TraceLoggingTypeInfo result;
+
+ if (dataType == typeof(Int32))
+ {
+ result = TraceLoggingTypeInfo<Int32>.Instance;
+ }
+ else if (dataType == typeof(Int64))
+ {
+ result = TraceLoggingTypeInfo<Int64>.Instance;
+ }
+ else if (dataType == typeof(String))
+ {
+ result = TraceLoggingTypeInfo<String>.Instance;
+ }
+ else
+ {
+ var getInstanceInfo = Statics.GetDeclaredStaticMethod(
+ typeof(TraceLoggingTypeInfo<>).MakeGenericType(dataType),
+ "GetInstance");
+ var typeInfoObj = getInstanceInfo.Invoke(null, new object[] { recursionCheck });
+ result = (TraceLoggingTypeInfo)typeInfoObj;
+ }
+
+ return result;
+ }
+
+ public static TraceLoggingTypeInfo<DataType> CreateDefaultTypeInfo<DataType>(
+ List<Type> recursionCheck)
+ {
+ TraceLoggingTypeInfo result;
+ var dataType = typeof(DataType);
+
+ if (recursionCheck.Contains(dataType))
+ {
+ throw new NotSupportedException(Environment.GetResourceString("EventSource_RecursiveTypeDefinition"));
+ }
+
+ recursionCheck.Add(dataType);
+
+ var eventAttrib = Statics.GetCustomAttribute<EventDataAttribute>(dataType);
+ if (eventAttrib != null ||
+ Statics.GetCustomAttribute<CompilerGeneratedAttribute>(dataType) != null)
+ {
+ var analysis = new TypeAnalysis(dataType, eventAttrib, recursionCheck);
+ result = new InvokeTypeInfo<DataType>(analysis);
+ }
+ else if (dataType.IsArray)
+ {
+ var elementType = dataType.GetElementType();
+ if (elementType == typeof(Boolean))
+ {
+ result = new BooleanArrayTypeInfo();
+ }
+ else if (elementType == typeof(Byte))
+ {
+ result = new ByteArrayTypeInfo();
+ }
+ else if (elementType == typeof(SByte))
+ {
+ result = new SByteArrayTypeInfo();
+ }
+ else if (elementType == typeof(Int16))
+ {
+ result = new Int16ArrayTypeInfo();
+ }
+ else if (elementType == typeof(UInt16))
+ {
+ result = new UInt16ArrayTypeInfo();
+ }
+ else if (elementType == typeof(Int32))
+ {
+ result = new Int32ArrayTypeInfo();
+ }
+ else if (elementType == typeof(UInt32))
+ {
+ result = new UInt32ArrayTypeInfo();
+ }
+ else if (elementType == typeof(Int64))
+ {
+ result = new Int64ArrayTypeInfo();
+ }
+ else if (elementType == typeof(UInt64))
+ {
+ result = new UInt64ArrayTypeInfo();
+ }
+ else if (elementType == typeof(Char))
+ {
+ result = new CharArrayTypeInfo();
+ }
+ else if (elementType == typeof(Double))
+ {
+ result = new DoubleArrayTypeInfo();
+ }
+ else if (elementType == typeof(Single))
+ {
+ result = new SingleArrayTypeInfo();
+ }
+ else if (elementType == typeof(IntPtr))
+ {
+ result = new IntPtrArrayTypeInfo();
+ }
+ else if (elementType == typeof(UIntPtr))
+ {
+ result = new UIntPtrArrayTypeInfo();
+ }
+ else if (elementType == typeof(Guid))
+ {
+ result = new GuidArrayTypeInfo();
+ }
+ else
+ {
+ result = (TraceLoggingTypeInfo<DataType>)CreateInstance(
+ typeof(ArrayTypeInfo<>).MakeGenericType(elementType),
+ GetTypeInfoInstance(elementType, recursionCheck));
+ }
+ }
+ else if (Statics.IsEnum(dataType))
+ {
+ var underlyingType = Enum.GetUnderlyingType(dataType);
+ if (underlyingType == typeof(Int32))
+ {
+ result = new EnumInt32TypeInfo<DataType>();
+ }
+ else if (underlyingType == typeof(UInt32))
+ {
+ result = new EnumUInt32TypeInfo<DataType>();
+ }
+ else if (underlyingType == typeof(Byte))
+ {
+ result = new EnumByteTypeInfo<DataType>();
+ }
+ else if (underlyingType == typeof(SByte))
+ {
+ result = new EnumSByteTypeInfo<DataType>();
+ }
+ else if (underlyingType == typeof(Int16))
+ {
+ result = new EnumInt16TypeInfo<DataType>();
+ }
+ else if (underlyingType == typeof(UInt16))
+ {
+ result = new EnumUInt16TypeInfo<DataType>();
+ }
+ else if (underlyingType == typeof(Int64))
+ {
+ result = new EnumInt64TypeInfo<DataType>();
+ }
+ else if (underlyingType == typeof(UInt64))
+ {
+ result = new EnumUInt64TypeInfo<DataType>();
+ }
+ else
+ {
+ // Unexpected
+ throw new NotSupportedException(Environment.GetResourceString("EventSource_NotSupportedEnumType", dataType.Name, underlyingType.Name));
+ }
+ }
+ else if (dataType == typeof(String))
+ {
+ result = new StringTypeInfo();
+ }
+ else if (dataType == typeof(Boolean))
+ {
+ result = new BooleanTypeInfo();
+ }
+ else if (dataType == typeof(Byte))
+ {
+ result = new ByteTypeInfo();
+ }
+ else if (dataType == typeof(SByte))
+ {
+ result = new SByteTypeInfo();
+ }
+ else if (dataType == typeof(Int16))
+ {
+ result = new Int16TypeInfo();
+ }
+ else if (dataType == typeof(UInt16))
+ {
+ result = new UInt16TypeInfo();
+ }
+ else if (dataType == typeof(Int32))
+ {
+ result = new Int32TypeInfo();
+ }
+ else if (dataType == typeof(UInt32))
+ {
+ result = new UInt32TypeInfo();
+ }
+ else if (dataType == typeof(Int64))
+ {
+ result = new Int64TypeInfo();
+ }
+ else if (dataType == typeof(UInt64))
+ {
+ result = new UInt64TypeInfo();
+ }
+ else if (dataType == typeof(Char))
+ {
+ result = new CharTypeInfo();
+ }
+ else if (dataType == typeof(Double))
+ {
+ result = new DoubleTypeInfo();
+ }
+ else if (dataType == typeof(Single))
+ {
+ result = new SingleTypeInfo();
+ }
+ else if (dataType == typeof(DateTime))
+ {
+ result = new DateTimeTypeInfo();
+ }
+ else if (dataType == typeof(Decimal))
+ {
+ result = new DecimalTypeInfo();
+ }
+ else if (dataType == typeof(IntPtr))
+ {
+ result = new IntPtrTypeInfo();
+ }
+ else if (dataType == typeof(UIntPtr))
+ {
+ result = new UIntPtrTypeInfo();
+ }
+ else if (dataType == typeof(Guid))
+ {
+ result = new GuidTypeInfo();
+ }
+ else if (dataType == typeof(TimeSpan))
+ {
+ result = new TimeSpanTypeInfo();
+ }
+ else if (dataType == typeof(DateTimeOffset))
+ {
+ result = new DateTimeOffsetTypeInfo();
+ }
+ else if (dataType == typeof(EmptyStruct))
+ {
+ result = new NullTypeInfo<EmptyStruct>();
+ }
+ else if (IsGenericMatch(dataType, typeof(KeyValuePair<,>)))
+ {
+ var args = GetGenericArguments(dataType);
+ result = (TraceLoggingTypeInfo<DataType>)CreateInstance(
+ typeof(KeyValuePairTypeInfo<,>).MakeGenericType(args[0], args[1]),
+ recursionCheck);
+ }
+ else if (IsGenericMatch(dataType, typeof(Nullable<>)))
+ {
+ var args = GetGenericArguments(dataType);
+ result = (TraceLoggingTypeInfo<DataType>)CreateInstance(
+ typeof(NullableTypeInfo<>).MakeGenericType(args[0]),
+ recursionCheck);
+ }
+ else
+ {
+ var elementType = FindEnumerableElementType(dataType);
+ if (elementType != null)
+ {
+ result = (TraceLoggingTypeInfo<DataType>)CreateInstance(
+ typeof(EnumerableTypeInfo<,>).MakeGenericType(dataType, elementType),
+ GetTypeInfoInstance(elementType, recursionCheck));
+ }
+ else
+ {
+ throw new ArgumentException(Environment.GetResourceString("EventSource_NonCompliantTypeError", dataType.Name));
+ }
+ }
+
+ return (TraceLoggingTypeInfo<DataType>)result;
+ }
+
+ #endregion
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingDataCollector.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingDataCollector.cs
new file mode 100644
index 00000000000..fee27366d72
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingDataCollector.cs
@@ -0,0 +1,392 @@
+using System;
+using System.Security;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: Used when implementing a custom TraceLoggingTypeInfo.
+ /// The instance of this type is provided to the TypeInfo.WriteData method.
+ /// All operations are forwarded to the current thread's DataCollector.
+ /// Note that this abstraction would allow us to expose the custom
+ /// serialization system to partially-trusted code. If we end up not
+ /// making custom serialization public, or if we only expose it to
+ /// full-trust code, this abstraction is unnecessary (though it probably
+ /// doesn't hurt anything).
+ /// </summary>
+ [SecuritySafeCritical]
+ internal unsafe class TraceLoggingDataCollector
+ {
+ internal static readonly TraceLoggingDataCollector Instance = new TraceLoggingDataCollector();
+
+ private TraceLoggingDataCollector()
+ {
+ return;
+ }
+
+ /// <summary>
+ /// Marks the start of a non-blittable array or enumerable.
+ /// </summary>
+ /// <returns>Bookmark to be passed to EndBufferedArray.</returns>
+ public int BeginBufferedArray()
+ {
+ return DataCollector.ThreadInstance.BeginBufferedArray();
+ }
+
+ /// <summary>
+ /// Marks the end of a non-blittable array or enumerable.
+ /// </summary>
+ /// <param name="bookmark">The value returned by BeginBufferedArray.</param>
+ /// <param name="count">The number of items in the array.</param>
+ public void EndBufferedArray(int bookmark, int count)
+ {
+ DataCollector.ThreadInstance.EndBufferedArray(bookmark, count);
+ }
+
+ /// <summary>
+ /// Adds the start of a group to the event.
+ /// This has no effect on the event payload, but is provided to allow
+ /// WriteMetadata and WriteData implementations to have similar
+ /// sequences of calls, allowing for easier verification of correctness.
+ /// </summary>
+ public TraceLoggingDataCollector AddGroup()
+ {
+ return this;
+ }
+
+ /// <summary>
+ /// Adds a Boolean value to the event payload.
+ /// </summary>
+ /// <param name="value">Value to be added.</param>
+ public void AddScalar(bool value)
+ {
+ DataCollector.ThreadInstance.AddScalar(&value, sizeof(bool));
+ }
+
+ /// <summary>
+ /// Adds an SByte value to the event payload.
+ /// </summary>
+ /// <param name="value">Value to be added.</param>
+ //[CLSCompliant(false)]
+ public void AddScalar(sbyte value)
+ {
+ DataCollector.ThreadInstance.AddScalar(&value, sizeof(sbyte));
+ }
+
+ /// <summary>
+ /// Adds a Byte value to the event payload.
+ /// </summary>
+ /// <param name="value">Value to be added.</param>
+ public void AddScalar(byte value)
+ {
+ DataCollector.ThreadInstance.AddScalar(&value, sizeof(byte));
+ }
+
+ /// <summary>
+ /// Adds an Int16 value to the event payload.
+ /// </summary>
+ /// <param name="value">Value to be added.</param>
+ public void AddScalar(short value)
+ {
+ DataCollector.ThreadInstance.AddScalar(&value, sizeof(short));
+ }
+
+ /// <summary>
+ /// Adds a UInt16 value to the event payload.
+ /// </summary>
+ /// <param name="value">Value to be added.</param>
+ //[CLSCompliant(false)]
+ public void AddScalar(ushort value)
+ {
+ DataCollector.ThreadInstance.AddScalar(&value, sizeof(ushort));
+ }
+
+ /// <summary>
+ /// Adds an Int32 value to the event payload.
+ /// </summary>
+ /// <param name="value">Value to be added.</param>
+ public void AddScalar(int value)
+ {
+ DataCollector.ThreadInstance.AddScalar(&value, sizeof(int));
+ }
+
+ /// <summary>
+ /// Adds a UInt32 value to the event payload.
+ /// </summary>
+ /// <param name="value">Value to be added.</param>
+ //[CLSCompliant(false)]
+ public void AddScalar(uint value)
+ {
+ DataCollector.ThreadInstance.AddScalar(&value, sizeof(uint));
+ }
+
+ /// <summary>
+ /// Adds an Int64 value to the event payload.
+ /// </summary>
+ /// <param name="value">Value to be added.</param>
+ public void AddScalar(long value)
+ {
+ DataCollector.ThreadInstance.AddScalar(&value, sizeof(long));
+ }
+
+ /// <summary>
+ /// Adds a UInt64 value to the event payload.
+ /// </summary>
+ /// <param name="value">Value to be added.</param>
+ //[CLSCompliant(false)]
+ public void AddScalar(ulong value)
+ {
+ DataCollector.ThreadInstance.AddScalar(&value, sizeof(ulong));
+ }
+
+ /// <summary>
+ /// Adds an IntPtr value to the event payload.
+ /// </summary>
+ /// <param name="value">Value to be added.</param>
+ public void AddScalar(IntPtr value)
+ {
+ DataCollector.ThreadInstance.AddScalar(&value, IntPtr.Size);
+ }
+
+ /// <summary>
+ /// Adds a UIntPtr value to the event payload.
+ /// </summary>
+ /// <param name="value">Value to be added.</param>
+ //[CLSCompliant(false)]
+ public void AddScalar(UIntPtr value)
+ {
+ DataCollector.ThreadInstance.AddScalar(&value, UIntPtr.Size);
+ }
+
+ /// <summary>
+ /// Adds a Single value to the event payload.
+ /// </summary>
+ /// <param name="value">Value to be added.</param>
+ public void AddScalar(float value)
+ {
+ DataCollector.ThreadInstance.AddScalar(&value, sizeof(float));
+ }
+
+ /// <summary>
+ /// Adds a Double value to the event payload.
+ /// </summary>
+ /// <param name="value">Value to be added.</param>
+ public void AddScalar(double value)
+ {
+ DataCollector.ThreadInstance.AddScalar(&value, sizeof(double));
+ }
+
+ /// <summary>
+ /// Adds a Char value to the event payload.
+ /// </summary>
+ /// <param name="value">Value to be added.</param>
+ public void AddScalar(char value)
+ {
+ DataCollector.ThreadInstance.AddScalar(&value, sizeof(char));
+ }
+
+ /// <summary>
+ /// Adds a Guid value to the event payload.
+ /// </summary>
+ /// <param name="value">Value to be added.</param>
+ public void AddScalar(Guid value)
+ {
+ DataCollector.ThreadInstance.AddScalar(&value, 16);
+ }
+
+ /// <summary>
+ /// Adds a counted String value to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length string.
+ /// </param>
+ public void AddBinary(string value)
+ {
+ DataCollector.ThreadInstance.AddBinary(value, value == null ? 0 : value.Length * 2);
+ }
+
+ /// <summary>
+ /// Adds an array of Byte values to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length array.
+ /// </param>
+ public void AddBinary(byte[] value)
+ {
+ DataCollector.ThreadInstance.AddBinary(value, value == null ? 0 : value.Length);
+ }
+
+ /// <summary>
+ /// Adds an array of Boolean values to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length array.
+ /// </param>
+ public void AddArray(bool[] value)
+ {
+ DataCollector.ThreadInstance.AddArray(value, value == null ? 0 : value.Length, sizeof(bool));
+ }
+
+ /// <summary>
+ /// Adds an array of SByte values to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length array.
+ /// </param>
+ //[CLSCompliant(false)]
+ public void AddArray(sbyte[] value)
+ {
+ DataCollector.ThreadInstance.AddArray(value, value == null ? 0 : value.Length, sizeof(sbyte));
+ }
+
+ /// <summary>
+ /// Adds an array of Int16 values to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length array.
+ /// </param>
+ public void AddArray(short[] value)
+ {
+ DataCollector.ThreadInstance.AddArray(value, value == null ? 0 : value.Length, sizeof(short));
+ }
+
+ /// <summary>
+ /// Adds an array of UInt16 values to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length array.
+ /// </param>
+ //[CLSCompliant(false)]
+ public void AddArray(ushort[] value)
+ {
+ DataCollector.ThreadInstance.AddArray(value, value == null ? 0 : value.Length, sizeof(ushort));
+ }
+
+ /// <summary>
+ /// Adds an array of Int32 values to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length array.
+ /// </param>
+ public void AddArray(int[] value)
+ {
+ DataCollector.ThreadInstance.AddArray(value, value == null ? 0 : value.Length, sizeof(int));
+ }
+
+ /// <summary>
+ /// Adds an array of UInt32 values to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length array.
+ /// </param>
+ //[CLSCompliant(false)]
+ public void AddArray(uint[] value)
+ {
+ DataCollector.ThreadInstance.AddArray(value, value == null ? 0 : value.Length, sizeof(uint));
+ }
+
+ /// <summary>
+ /// Adds an array of Int64 values to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length array.
+ /// </param>
+ public void AddArray(long[] value)
+ {
+ DataCollector.ThreadInstance.AddArray(value, value == null ? 0 : value.Length, sizeof(long));
+ }
+
+ /// <summary>
+ /// Adds an array of UInt64 values to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length array.
+ /// </param>
+ //[CLSCompliant(false)]
+ public void AddArray(ulong[] value)
+ {
+ DataCollector.ThreadInstance.AddArray(value, value == null ? 0 : value.Length, sizeof(ulong));
+ }
+
+ /// <summary>
+ /// Adds an array of IntPtr values to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length array.
+ /// </param>
+ public void AddArray(IntPtr[] value)
+ {
+ DataCollector.ThreadInstance.AddArray(value, value == null ? 0 : value.Length, IntPtr.Size);
+ }
+
+ /// <summary>
+ /// Adds an array of UIntPtr values to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length array.
+ /// </param>
+ //[CLSCompliant(false)]
+ public void AddArray(UIntPtr[] value)
+ {
+ DataCollector.ThreadInstance.AddArray(value, value == null ? 0 : value.Length, UIntPtr.Size);
+ }
+
+ /// <summary>
+ /// Adds an array of Single values to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length array.
+ /// </param>
+ public void AddArray(float[] value)
+ {
+ DataCollector.ThreadInstance.AddArray(value, value == null ? 0 : value.Length, sizeof(float));
+ }
+
+ /// <summary>
+ /// Adds an array of Double values to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length array.
+ /// </param>
+ public void AddArray(double[] value)
+ {
+ DataCollector.ThreadInstance.AddArray(value, value == null ? 0 : value.Length, sizeof(double));
+ }
+
+ /// <summary>
+ /// Adds an array of Char values to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length array.
+ /// </param>
+ public void AddArray(char[] value)
+ {
+ DataCollector.ThreadInstance.AddArray(value, value == null ? 0 : value.Length, sizeof(char));
+ }
+
+ /// <summary>
+ /// Adds an array of Guid values to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length array.
+ /// </param>
+ public void AddArray(Guid[] value)
+ {
+ DataCollector.ThreadInstance.AddArray(value, value == null ? 0 : value.Length, 16);
+ }
+
+ /// <summary>
+ /// Adds an array of Byte values to the event payload.
+ /// </summary>
+ /// <param name="value">
+ /// Value to be added. A null value is treated as a zero-length array.
+ /// </param>
+ public void AddCustom(byte[] value)
+ {
+ DataCollector.ThreadInstance.AddArray(value, value == null ? 0 : value.Length, sizeof(byte));
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingDataType.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingDataType.cs
new file mode 100644
index 00000000000..fd3b920df88
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingDataType.cs
@@ -0,0 +1,354 @@
+using System;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: Used when implementing a custom TraceLoggingTypeInfo.
+ /// These are passed to metadataCollector.Add to specify the low-level
+ /// type of a field in the event payload. Note that a "formatted"
+ /// TraceLoggingDataType consists of a core TraceLoggingDataType value
+ /// (a TraceLoggingDataType with a value less than 32) plus an OutType.
+ /// Any combination of TraceLoggingDataType + OutType is valid, but not
+ /// all are useful. In particular, combinations not explicitly listed
+ /// below are unlikely to be recognized by decoders, and will typically
+ /// be decoded as the corresponding core type (i.e. the decoder will
+ /// mask off any unrecognized OutType value).
+ /// </summary>
+ internal enum TraceLoggingDataType
+ {
+ /// <summary>
+ /// Core type.
+ /// Data type with no value (0-length payload).
+ /// NOTE: arrays of Nil are illegal.
+ /// NOTE: a fixed-length array of Nil is interpreted by the decoder as
+ /// a struct (obsolete but retained for backwards-compatibility).
+ /// </summary>
+ Nil = 0,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes null-terminated Char16 string.
+ /// Decoding treats as UTF-16LE string.
+ /// NOTE: arrays of Utf16String will not be supported until M3.
+ /// </summary>
+ Utf16String = 1,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes null-terminated Char8 string.
+ /// Decoding treats as MBCS string.
+ /// NOTE: arrays of MbcsString will not be supported until M3.
+ /// </summary>
+ MbcsString = 2,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 8-bit value.
+ /// Decoding treats as signed integer.
+ /// </summary>
+ Int8 = 3,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 8-bit value.
+ /// Decoding treats as unsigned integer.
+ /// </summary>
+ UInt8 = 4,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 16-bit value.
+ /// Decoding treats as signed integer.
+ /// </summary>
+ Int16 = 5,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 16-bit value.
+ /// Decoding treats as unsigned integer.
+ /// </summary>
+ UInt16 = 6,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 32-bit value.
+ /// Decoding treats as signed integer.
+ /// </summary>
+ Int32 = 7,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 32-bit value.
+ /// Decoding treats as unsigned integer.
+ /// </summary>
+ UInt32 = 8,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 64-bit value.
+ /// Decoding treats as signed integer.
+ /// </summary>
+ Int64 = 9,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 64-bit value.
+ /// Decoding treats as unsigned integer.
+ /// </summary>
+ UInt64 = 10,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 32-bit value.
+ /// Decoding treats as Float.
+ /// </summary>
+ Float = 11,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 64-bit value.
+ /// Decoding treats as Double.
+ /// </summary>
+ Double = 12,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 32-bit value.
+ /// Decoding treats as Boolean.
+ /// </summary>
+ Boolean32 = 13,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 16-bit bytecount followed by binary data.
+ /// Decoding treats as binary data.
+ /// NOTE: arrays of Binary will not be supported until M3.
+ /// </summary>
+ Binary = 14,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 16-byte value.
+ /// Decoding treats as GUID.
+ /// </summary>
+ Guid = 15,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 64-bit value.
+ /// Decoding treats as FILETIME.
+ /// </summary>
+ FileTime = 17,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 16-byte value.
+ /// Decoding treats as SYSTEMTIME.
+ /// </summary>
+ SystemTime = 18,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 32-bit value.
+ /// Decoding treats as hexadecimal unsigned integer.
+ /// </summary>
+ HexInt32 = 20,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 64-bit value.
+ /// Decoding treats as hexadecimal unsigned integer.
+ /// </summary>
+ HexInt64 = 21,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 16-bit bytecount followed by Char16 data.
+ /// Decoding treats as UTF-16LE string.
+ /// </summary>
+ CountedUtf16String = 22,
+
+ /// <summary>
+ /// Core type.
+ /// Encoding assumes 16-bit bytecount followed by Char8 data.
+ /// Decoding treats as MBCS string.
+ /// </summary>
+ CountedMbcsString = 23,
+
+ /// <summary>
+ /// Core type.
+ /// Special case: Struct indicates that this field plus the the
+ /// subsequent N logical fields are to be considered as one logical
+ /// field (i.e. a nested structure). The OutType is used to encode N.
+ /// The maximum value for N is 127. This field has no payload by
+ /// itself, but logically contains the payload of the following N
+ /// fields. It is legal to have an array of Struct.
+ /// </summary>
+ Struct = 24,
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 16-bit value.
+ /// Decoding treats as UTF-16LE character.
+ /// </summary>
+ Char16 = UInt16 + (EventFieldFormat.String << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 8-bit value.
+ /// Decoding treats as character.
+ /// </summary>
+ Char8 = UInt8 + (EventFieldFormat.String << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 8-bit value.
+ /// Decoding treats as Boolean.
+ /// </summary>
+ Boolean8 = UInt8 + (EventFieldFormat.Boolean << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 8-bit value.
+ /// Decoding treats as hexadecimal unsigned integer.
+ /// </summary>
+ HexInt8 = UInt8 + (EventFieldFormat.Hexadecimal << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 16-bit value.
+ /// Decoding treats as hexadecimal unsigned integer.
+ /// </summary>
+ HexInt16 = UInt16 + (EventFieldFormat.Hexadecimal << 8),
+
+#if false
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 32-bit value.
+ /// Decoding treats as process identifier.
+ /// </summary>
+ ProcessId = UInt32 + (EventSourceFieldFormat.ProcessId << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 32-bit value.
+ /// Decoding treats as thread identifier.
+ /// </summary>
+ ThreadId = UInt32 + (EventSourceFieldFormat.ThreadId << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 16-bit value.
+ /// Decoding treats as IP port.
+ /// </summary>
+ Port = UInt16 + (EventSourceFieldFormat.Port << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 32-bit value.
+ /// Decoding treats as IPv4 address.
+ /// </summary>
+ Ipv4Address = UInt32 + (EventSourceFieldFormat.Ipv4Address << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 16-bit bytecount followed by binary data.
+ /// Decoding treats as IPv6 address.
+ /// NOTE: arrays of Ipv6Address will not be supported until M3.
+ /// </summary>
+ Ipv6Address = Binary + (EventSourceFieldFormat.Ipv6Address << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 16-bit bytecount followed by binary data.
+ /// Decoding treats as SOCKADDR.
+ /// NOTE: arrays of SocketAddress will not be supported until M3.
+ /// </summary>
+ SocketAddress = Binary + (EventSourceFieldFormat.SocketAddress << 8),
+#endif
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes null-terminated Char16 string.
+ /// Decoding treats as UTF-16LE XML string.
+ /// NOTE: arrays of Utf16Xml will not be supported until M3.
+ /// </summary>
+ Utf16Xml = Utf16String + (EventFieldFormat.Xml << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes null-terminated Char8 string.
+ /// Decoding treats as MBCS XML string.
+ /// NOTE: arrays of MbcsXml will not be supported until M3.
+ /// </summary>
+ MbcsXml = MbcsString + (EventFieldFormat.Xml << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 16-bit bytecount followed by Char16 data.
+ /// Decoding treats as UTF-16LE XML.
+ /// </summary>
+ CountedUtf16Xml = CountedUtf16String + (EventFieldFormat.Xml << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 16-bit bytecount followed by Char8 data.
+ /// Decoding treats as MBCS XML.
+ /// </summary>
+ CountedMbcsXml = CountedMbcsString + (EventFieldFormat.Xml << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes null-terminated Char16 string.
+ /// Decoding treats as UTF-16LE JSON string.
+ /// NOTE: arrays of Utf16Json will not be supported until M3.
+ /// </summary>
+ Utf16Json = Utf16String + (EventFieldFormat.Json << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes null-terminated Char8 string.
+ /// Decoding treats as MBCS JSON string.
+ /// NOTE: arrays of MbcsJson will not be supported until M3.
+ /// </summary>
+ MbcsJson = MbcsString + (EventFieldFormat.Json << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 16-bit bytecount followed by Char16 data.
+ /// Decoding treats as UTF-16LE JSON.
+ /// </summary>
+ CountedUtf16Json = CountedUtf16String + (EventFieldFormat.Json << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 16-bit bytecount followed by Char8 data.
+ /// Decoding treats as MBCS JSON.
+ /// </summary>
+ CountedMbcsJson = CountedMbcsString + (EventFieldFormat.Json << 8),
+#if false
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 32-bit value.
+ /// Decoding treats as Win32 error.
+ /// </summary>
+ Win32Error = UInt32 + (EventSourceFieldFormat.Win32Error << 8),
+
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 32-bit value.
+ /// Decoding treats as NTSTATUS.
+ /// </summary>
+ NTStatus = UInt32 + (EventSourceFieldFormat.NTStatus << 8),
+#endif
+ /// <summary>
+ /// Formatted type.
+ /// Encoding assumes 32-bit value.
+ /// Decoding treats as HRESULT.
+ /// </summary>
+ HResult = Int32 + (EventFieldFormat.HResult << 8)
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingEventSource.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingEventSource.cs
new file mode 100644
index 00000000000..d620ff96357
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingEventSource.cs
@@ -0,0 +1,844 @@
+// Copyright (c) Microsoft Corporation. All rights reserved
+// This program uses code hyperlinks available as part of the HyperAddin Visual Studio plug-in.
+// It is available from http://www.codeplex.com/hyperAddin
+#define FEATURE_MANAGED_ETW
+
+#if !ES_BUILD_STANDALONE
+#define FEATURE_ACTIVITYSAMPLING
+#endif
+
+#if ES_BUILD_STANDALONE
+#define FEATURE_MANAGED_ETW_CHANNELS
+// #define FEATURE_ADVANCED_MANAGED_ETW_CHANNELS
+#endif
+
+#if ES_BUILD_STANDALONE
+using Environment = Microsoft.Diagnostics.Tracing.Internal.Environment;
+#endif
+
+using System;
+using System.Runtime.InteropServices;
+using System.Security;
+using System.Collections.ObjectModel;
+
+#if !ES_BUILD_AGAINST_DOTNET_V35
+using Contract = System.Diagnostics.Contracts.Contract;
+using System.Collections.Generic;
+using System.Text;
+#else
+using Contract = Microsoft.Diagnostics.Contracts.Internal.Contract;
+using System.Collections.Generic;
+using System.Text;
+#endif
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ public partial class EventSource
+ {
+ private byte[] providerMetadata;
+
+ /// <summary>
+ /// Construct an EventSource with a given name for non-contract based events (e.g. those using the Write() API).
+ /// </summary>
+ /// <param name="eventSourceName">
+ /// The name of the event source. Must not be null.
+ /// </param>
+ public EventSource(
+ string eventSourceName)
+ : this(eventSourceName, EventSourceSettings.EtwSelfDescribingEventFormat)
+ { }
+
+ /// <summary>
+ /// Construct an EventSource with a given name for non-contract based events (e.g. those using the Write() API).
+ /// </summary>
+ /// <param name="eventSourceName">
+ /// The name of the event source. Must not be null.
+ /// </param>
+ /// <param name="config">
+ /// Configuration options for the EventSource as a whole.
+ /// </param>
+ public EventSource(
+ string eventSourceName,
+ EventSourceSettings config)
+ : this(eventSourceName, config, null) { }
+
+ /// <summary>
+ /// Construct an EventSource with a given name for non-contract based events (e.g. those using the Write() API).
+ ///
+ /// Also specify a list of key-value pairs called traits (you must pass an even number of strings).
+ /// The first string is the key and the second is the value. These are not interpreted by EventSource
+ /// itself but may be interprated the listeners. Can be fetched with GetTrait(string).
+ /// </summary>
+ /// <param name="eventSourceName">
+ /// The name of the event source. Must not be null.
+ /// </param>
+ /// <param name="config">
+ /// Configuration options for the EventSource as a whole.
+ /// </param>
+ /// <param name="traits">A collection of key-value strings (must be an even number).</param>
+ public EventSource(
+ string eventSourceName,
+ EventSourceSettings config,
+ params string[] traits)
+ : this(
+ eventSourceName == null ? new Guid() : GenerateGuidFromName(eventSourceName.ToUpperInvariant()),
+ eventSourceName,
+ config, traits)
+ {
+ if (eventSourceName == null)
+ {
+ throw new ArgumentNullException("eventSourceName");
+ }
+ Contract.EndContractBlock();
+ }
+
+ /// <summary>
+ /// Writes an event with no fields and default options.
+ /// (Native API: EventWriteTransfer)
+ /// </summary>
+ /// <param name="eventName">The name of the event. Must not be null.</param>
+ [SecuritySafeCritical]
+ public unsafe void Write(string eventName)
+ {
+ if (eventName == null)
+ {
+ throw new ArgumentNullException("eventName");
+ }
+
+ Contract.EndContractBlock();
+
+ if (!this.IsEnabled())
+ {
+ return;
+ }
+
+ var options = new EventSourceOptions();
+ var data = new EmptyStruct();
+ this.WriteImpl(eventName, ref options, ref data, null, null);
+ }
+
+ /// <summary>
+ /// Writes an event with no fields.
+ /// (Native API: EventWriteTransfer)
+ /// </summary>
+ /// <param name="eventName">The name of the event. Must not be null.</param>
+ /// <param name="options">
+ /// Options for the event, such as the level, keywords, and opcode. Unset
+ /// options will be set to default values.
+ /// </param>
+ [SecuritySafeCritical]
+ public unsafe void Write(string eventName, EventSourceOptions options)
+ {
+ if (eventName == null)
+ {
+ throw new ArgumentNullException("eventName");
+ }
+
+ Contract.EndContractBlock();
+
+ if (!this.IsEnabled())
+ {
+ return;
+ }
+
+ var data = new EmptyStruct();
+ this.WriteImpl(eventName, ref options, ref data, null, null);
+ }
+
+ /// <summary>
+ /// Writes an event.
+ /// (Native API: EventWriteTransfer)
+ /// </summary>
+ /// <typeparam name="T">
+ /// The type that defines the event and its payload. This must be an
+ /// anonymous type or a type with an [EventData] attribute.
+ /// </typeparam>
+ /// <param name="eventName">
+ /// The name for the event. If null, the event name is automatically
+ /// determined based on T, either from the Name property of T's EventData
+ /// attribute or from typeof(T).Name.
+ /// </param>
+ /// <param name="data">
+ /// The object containing the event payload data. The type T must be
+ /// an anonymous type or a type with an [EventData] attribute. The
+ /// public instance properties of data will be written recursively to
+ /// create the fields of the event.
+ /// </param>
+ [SecuritySafeCritical]
+ public unsafe void Write<T>(
+ string eventName,
+ T data)
+ {
+ if (!this.IsEnabled())
+ {
+ return;
+ }
+
+ var options = new EventSourceOptions();
+ this.WriteImpl(eventName, ref options, ref data, null, null);
+ }
+
+ /// <summary>
+ /// Writes an event.
+ /// (Native API: EventWriteTransfer)
+ /// </summary>
+ /// <typeparam name="T">
+ /// The type that defines the event and its payload. This must be an
+ /// anonymous type or a type with an [EventData] attribute.
+ /// </typeparam>
+ /// <param name="eventName">
+ /// The name for the event. If null, the event name is automatically
+ /// determined based on T, either from the Name property of T's EventData
+ /// attribute or from typeof(T).Name.
+ /// </param>
+ /// <param name="options">
+ /// Options for the event, such as the level, keywords, and opcode. Unset
+ /// options will be set to default values.
+ /// </param>
+ /// <param name="data">
+ /// The object containing the event payload data. The type T must be
+ /// an anonymous type or a type with an [EventData] attribute. The
+ /// public instance properties of data will be written recursively to
+ /// create the fields of the event.
+ /// </param>
+ [SecuritySafeCritical]
+ public unsafe void Write<T>(
+ string eventName,
+ EventSourceOptions options,
+ T data)
+ {
+ if (!this.IsEnabled())
+ {
+ return;
+ }
+
+ this.WriteImpl(eventName, ref options, ref data, null, null);
+ }
+
+ /// <summary>
+ /// Writes an event.
+ /// This overload is for use with extension methods that wish to efficiently
+ /// forward the options or data parameter without performing an extra copy.
+ /// (Native API: EventWriteTransfer)
+ /// </summary>
+ /// <typeparam name="T">
+ /// The type that defines the event and its payload. This must be an
+ /// anonymous type or a type with an [EventData] attribute.
+ /// </typeparam>
+ /// <param name="eventName">
+ /// The name for the event. If null, the event name is automatically
+ /// determined based on T, either from the Name property of T's EventData
+ /// attribute or from typeof(T).Name.
+ /// </param>
+ /// <param name="options">
+ /// Options for the event, such as the level, keywords, and opcode. Unset
+ /// options will be set to default values.
+ /// </param>
+ /// <param name="data">
+ /// The object containing the event payload data. The type T must be
+ /// an anonymous type or a type with an [EventData] attribute. The
+ /// public instance properties of data will be written recursively to
+ /// create the fields of the event.
+ /// </param>
+ [SecuritySafeCritical]
+ public unsafe void Write<T>(
+ string eventName,
+ ref EventSourceOptions options,
+ ref T data)
+ {
+ if (!this.IsEnabled())
+ {
+ return;
+ }
+
+ this.WriteImpl(eventName, ref options, ref data, null, null);
+ }
+
+ /// <summary>
+ /// Writes an event.
+ /// This overload is meant for clients that need to manipuate the activityId
+ /// and related ActivityId for the event.
+ /// </summary>
+ /// <typeparam name="T">
+ /// The type that defines the event and its payload. This must be an
+ /// anonymous type or a type with an [EventData] attribute.
+ /// </typeparam>
+ /// <param name="eventName">
+ /// The name for the event. If null, the event name is automatically
+ /// determined based on T, either from the Name property of T's EventData
+ /// attribute or from typeof(T).Name.
+ /// </param>
+ /// <param name="options">
+ /// Options for the event, such as the level, keywords, and opcode. Unset
+ /// options will be set to default values.
+ /// </param>
+ /// <param name="activityId">
+ /// The GUID of the activity associated with this event.
+ /// </param>
+ /// <param name="relatedActivityId">
+ /// The GUID of another activity that is related to this activity, or Guid.Empty
+ /// if there is no related activity. Most commonly, the Start operation of a
+ /// new activity specifies a parent activity as its related activity.
+ /// </param>
+ /// <param name="data">
+ /// The object containing the event payload data. The type T must be
+ /// an anonymous type or a type with an [EventData] attribute. The
+ /// public instance properties of data will be written recursively to
+ /// create the fields of the event.
+ /// </param>
+ [SecuritySafeCritical]
+ public unsafe void Write<T>(
+ string eventName,
+ ref EventSourceOptions options,
+ ref Guid activityId,
+ ref Guid relatedActivityId,
+ ref T data)
+ {
+ if (!this.IsEnabled())
+ {
+ return;
+ }
+
+ fixed (Guid* pActivity = &activityId, pRelated = &relatedActivityId)
+ {
+ this.WriteImpl(
+ eventName,
+ ref options,
+ ref data,
+ pActivity,
+ relatedActivityId == Guid.Empty ? null : pRelated);
+ }
+ }
+
+ /// <summary>
+ /// Writes an extended event, where the values of the event are the
+ /// combined properties of any number of values. This method is
+ /// intended for use in advanced logging scenarios that support a
+ /// dynamic set of event context providers.
+ /// This method does a quick check on whether this event is enabled.
+ /// </summary>
+ /// <param name="eventName">
+ /// The name for the event. If null, the name from eventTypes is used.
+ /// (Note that providing the event name via the name parameter is slightly
+ /// less efficient than using the name from eventTypes.)
+ /// </param>
+ /// <param name="options">
+ /// Optional overrides for the event, such as the level, keyword, opcode,
+ /// activityId, and relatedActivityId. Any settings not specified by options
+ /// are obtained from eventTypes.
+ /// </param>
+ /// <param name="eventTypes">
+ /// Information about the event and the types of the values in the event.
+ /// Must not be null. Note that the eventTypes object should be created once and
+ /// saved. It should not be recreated for each event.
+ /// </param>
+ /// <param name="values">
+ /// The values to include in the event. Must not be null. The number and types of
+ /// the values must match the number and types of the fields described by the
+ /// eventTypes parameter.
+ /// </param>
+ [SecuritySafeCritical]
+ private unsafe void WriteMultiMerge(
+ string eventName,
+ ref EventSourceOptions options,
+ TraceLoggingEventTypes eventTypes,
+ Guid* activityID,
+ Guid* childActivityID,
+ params object[] values)
+ {
+ if (!this.IsEnabled())
+ {
+ return;
+ }
+ byte level = (options.valuesSet & EventSourceOptions.levelSet) != 0
+ ? options.level
+ : eventTypes.level;
+ EventKeywords keywords = (options.valuesSet & EventSourceOptions.keywordsSet) != 0
+ ? options.keywords
+ : eventTypes.keywords;
+
+ if (this.IsEnabled((EventLevel)level, keywords))
+ {
+ WriteMultiMergeInner(eventName, ref options, eventTypes, activityID, childActivityID, values);
+ }
+ }
+
+ /// <summary>
+ /// Writes an extended event, where the values of the event are the
+ /// combined properties of any number of values. This method is
+ /// intended for use in advanced logging scenarios that support a
+ /// dynamic set of event context providers.
+ /// Attention: This API does not check whether the event is enabled or not.
+ /// Please use WriteMultiMerge to avoid spending CPU cycles for events that are
+ /// not enabled.
+ /// </summary>
+ /// <param name="eventName">
+ /// The name for the event. If null, the name from eventTypes is used.
+ /// (Note that providing the event name via the name parameter is slightly
+ /// less efficient than using the name from eventTypes.)
+ /// </param>
+ /// <param name="options">
+ /// Optional overrides for the event, such as the level, keyword, opcode,
+ /// activityId, and relatedActivityId. Any settings not specified by options
+ /// are obtained from eventTypes.
+ /// </param>
+ /// <param name="eventTypes">
+ /// Information about the event and the types of the values in the event.
+ /// Must not be null. Note that the eventTypes object should be created once and
+ /// saved. It should not be recreated for each event.
+ /// </param>
+ /// <param name="values">
+ /// The values to include in the event. Must not be null. The number and types of
+ /// the values must match the number and types of the fields described by the
+ /// eventTypes parameter.
+ /// </param>
+ [SecuritySafeCritical]
+ private unsafe void WriteMultiMergeInner(
+ string eventName,
+ ref EventSourceOptions options,
+ TraceLoggingEventTypes eventTypes,
+ Guid* activityID,
+ Guid* childActivityID,
+ params object[] values)
+ {
+ int identity = 0;
+ byte level = (options.valuesSet & EventSourceOptions.levelSet) != 0
+ ? options.level
+ : eventTypes.level;
+ byte opcode = (options.valuesSet & EventSourceOptions.opcodeSet) != 0
+ ? options.opcode
+ : eventTypes.opcode;
+ EventTags tags = (options.valuesSet & EventSourceOptions.tagsSet) != 0
+ ? options.tags
+ : eventTypes.Tags;
+ EventKeywords keywords = (options.valuesSet & EventSourceOptions.keywordsSet) != 0
+ ? options.keywords
+ : eventTypes.keywords;
+
+ var nameInfo = eventTypes.GetNameInfo(eventName ?? eventTypes.Name, tags);
+ if (nameInfo == null)
+ {
+ return;
+ }
+ identity = nameInfo.identity;
+ EventDescriptor descriptor = new EventDescriptor(identity, level, opcode, (long)keywords);
+
+ var pinCount = eventTypes.pinCount;
+ var scratch = stackalloc byte[eventTypes.scratchSize];
+ var descriptors = stackalloc EventData[eventTypes.dataCount + 3];
+ var pins = stackalloc GCHandle[pinCount];
+
+ fixed (byte*
+ pMetadata0 = this.providerMetadata,
+ pMetadata1 = nameInfo.nameMetadata,
+ pMetadata2 = eventTypes.typeMetadata)
+ {
+ descriptors[0].SetMetadata(pMetadata0, this.providerMetadata.Length, 2);
+ descriptors[1].SetMetadata(pMetadata1, nameInfo.nameMetadata.Length, 1);
+ descriptors[2].SetMetadata(pMetadata2, eventTypes.typeMetadata.Length, 1);
+
+#if !ES_BUILD_PCL
+ System.Runtime.CompilerServices.RuntimeHelpers.PrepareConstrainedRegions();
+#endif
+ try
+ {
+ DataCollector.ThreadInstance.Enable(
+ scratch,
+ eventTypes.scratchSize,
+ descriptors + 3,
+ eventTypes.dataCount,
+ pins,
+ pinCount);
+
+ for (int i = 0; i < eventTypes.typeInfos.Length; i++)
+ {
+ eventTypes.typeInfos[i].WriteObjectData(TraceLoggingDataCollector.Instance, values[i]);
+ }
+
+ this.WriteEventRaw(
+ ref descriptor,
+ activityID,
+ childActivityID,
+ (int)(DataCollector.ThreadInstance.Finish() - descriptors),
+ (IntPtr)descriptors);
+ }
+ finally
+ {
+ this.WriteCleanup(pins, pinCount);
+ }
+ }
+
+ }
+
+ /// <summary>
+ /// Writes an extended event, where the values of the event have already
+ /// been serialized in "data".
+ /// </summary>
+ /// <param name="eventName">
+ /// The name for the event. If null, the name from eventTypes is used.
+ /// (Note that providing the event name via the name parameter is slightly
+ /// less efficient than using the name from eventTypes.)
+ /// </param>
+ /// <param name="options">
+ /// Optional overrides for the event, such as the level, keyword, opcode,
+ /// activityId, and relatedActivityId. Any settings not specified by options
+ /// are obtained from eventTypes.
+ /// </param>
+ /// <param name="eventTypes">
+ /// Information about the event and the types of the values in the event.
+ /// Must not be null. Note that the eventTypes object should be created once and
+ /// saved. It should not be recreated for each event.
+ /// </param>
+ /// <param name="data">
+ /// The previously serialized values to include in the event. Must not be null.
+ /// The number and types of the values must match the number and types of the
+ /// fields described by the eventTypes parameter.
+ /// </param>
+ [SecuritySafeCritical]
+ internal unsafe void WriteMultiMerge(
+ string eventName,
+ ref EventSourceOptions options,
+ TraceLoggingEventTypes eventTypes,
+ Guid* activityID,
+ Guid* childActivityID,
+ EventData* data)
+ {
+ if (!this.IsEnabled())
+ {
+ return;
+ }
+
+ fixed (EventSourceOptions* pOptions = &options)
+ {
+ EventDescriptor descriptor;
+ var nameInfo = this.UpdateDescriptor(eventName, eventTypes, ref options, out descriptor);
+ if (nameInfo == null)
+ {
+ return;
+ }
+
+ // We make a descriptor for each EventData, and because we morph strings to counted strings
+ // we may have 2 for each arg, so we allocate enough for this.
+ var descriptors = stackalloc EventData[eventTypes.dataCount + eventTypes.typeInfos.Length * 2 + 3];
+
+ fixed (byte*
+ pMetadata0 = this.providerMetadata,
+ pMetadata1 = nameInfo.nameMetadata,
+ pMetadata2 = eventTypes.typeMetadata)
+ {
+ descriptors[0].SetMetadata(pMetadata0, this.providerMetadata.Length, 2);
+ descriptors[1].SetMetadata(pMetadata1, nameInfo.nameMetadata.Length, 1);
+ descriptors[2].SetMetadata(pMetadata2, eventTypes.typeMetadata.Length, 1);
+ int numDescrs = 3;
+
+ for (int i = 0; i < eventTypes.typeInfos.Length; i++)
+ {
+ // Until M3, we need to morph strings to a counted representation
+ // When TDH supports null terminated strings, we can remove this.
+ if (eventTypes.typeInfos[i].DataType == typeof(string))
+ {
+ // Write out the size of the string
+ descriptors[numDescrs].m_Ptr = (long)&descriptors[numDescrs + 1].m_Size;
+ descriptors[numDescrs].m_Size = 2;
+ numDescrs++;
+
+ descriptors[numDescrs].m_Ptr = data[i].m_Ptr;
+ descriptors[numDescrs].m_Size = data[i].m_Size - 2; // Remove the null terminator
+ numDescrs++;
+ }
+ else
+ {
+ descriptors[numDescrs].m_Ptr = data[i].m_Ptr;
+ descriptors[numDescrs].m_Size = data[i].m_Size;
+
+ // old conventions for bool is 4 bytes, but meta-data assumes 1.
+ if (data[i].m_Size == 4 && eventTypes.typeInfos[i].DataType == typeof(bool))
+ descriptors[numDescrs].m_Size = 1;
+
+ numDescrs++;
+ }
+ }
+
+ this.WriteEventRaw(
+ ref descriptor,
+ activityID,
+ childActivityID,
+ numDescrs,
+ (IntPtr)descriptors);
+ }
+ }
+ }
+
+ [SecuritySafeCritical]
+ private unsafe void WriteImpl<T>(
+ string eventName,
+ ref EventSourceOptions options,
+ ref T data,
+ Guid* pActivityId,
+ Guid* pRelatedActivityId)
+ {
+ try
+ {
+ var eventTypes = SimpleEventTypes<T>.Instance;
+
+ fixed (EventSourceOptions* pOptions = &options)
+ {
+ EventDescriptor descriptor;
+ options.Opcode = options.IsOpcodeSet ? options.Opcode : GetOpcodeWithDefault(options.Opcode, eventName);
+ var nameInfo = this.UpdateDescriptor(eventName, eventTypes, ref options, out descriptor);
+ if (nameInfo == null)
+ {
+ return;
+ }
+
+ var pinCount = eventTypes.pinCount;
+ var scratch = stackalloc byte[eventTypes.scratchSize];
+ var descriptors = stackalloc EventData[eventTypes.dataCount + 3];
+ var pins = stackalloc GCHandle[pinCount];
+
+ fixed (byte*
+ pMetadata0 = this.providerMetadata,
+ pMetadata1 = nameInfo.nameMetadata,
+ pMetadata2 = eventTypes.typeMetadata)
+ {
+ descriptors[0].SetMetadata(pMetadata0, this.providerMetadata.Length, 2);
+ descriptors[1].SetMetadata(pMetadata1, nameInfo.nameMetadata.Length, 1);
+ descriptors[2].SetMetadata(pMetadata2, eventTypes.typeMetadata.Length, 1);
+
+#if !ES_BUILD_PCL
+ System.Runtime.CompilerServices.RuntimeHelpers.PrepareConstrainedRegions();
+#endif
+ EventOpcode opcode = (EventOpcode)descriptor.Opcode;
+
+ Guid activityId = Guid.Empty;
+ Guid relatedActivityId = Guid.Empty;
+ if (pActivityId == null && pRelatedActivityId == null &&
+ ((options.ActivityOptions & EventActivityOptions.Disable) == 0))
+ {
+ if (opcode == EventOpcode.Start)
+ {
+ m_activityTracker.OnStart(m_name, eventName, 0, ref activityId, ref relatedActivityId, options.ActivityOptions);
+ }
+ else if (opcode == EventOpcode.Stop)
+ {
+ m_activityTracker.OnStop(m_name, eventName, 0, ref activityId);
+ }
+ if (activityId != Guid.Empty)
+ pActivityId = &activityId;
+ if (relatedActivityId != Guid.Empty)
+ pRelatedActivityId = &relatedActivityId;
+ }
+
+ try
+ {
+ DataCollector.ThreadInstance.Enable(
+ scratch,
+ eventTypes.scratchSize,
+ descriptors + 3,
+ eventTypes.dataCount,
+ pins,
+ pinCount);
+
+ eventTypes.typeInfo.WriteData(TraceLoggingDataCollector.Instance, ref data);
+
+ this.WriteEventRaw(
+ ref descriptor,
+ pActivityId,
+ pRelatedActivityId,
+ (int)(DataCollector.ThreadInstance.Finish() - descriptors),
+ (IntPtr)descriptors);
+
+ //
+ if (m_Dispatchers != null)
+ {
+ var eventData = (EventPayload)(eventTypes.typeInfo.GetData(data));
+ WriteToAllListeners(eventName, ref descriptor, nameInfo.tags, pActivityId, eventData);
+ }
+
+ }
+ catch(Exception ex)
+ {
+ if (ex is EventSourceException)
+ throw;
+ else
+ ThrowEventSourceException(ex);
+ }
+ finally
+ {
+ this.WriteCleanup(pins, pinCount);
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ if (ex is EventSourceException)
+ throw;
+ else
+ ThrowEventSourceException(ex);
+ }
+ }
+
+ [SecurityCritical]
+ private unsafe void WriteToAllListeners(string eventName, ref EventDescriptor eventDescriptor, EventTags tags, Guid* pActivityId, EventPayload payload)
+ {
+ EventWrittenEventArgs eventCallbackArgs = new EventWrittenEventArgs(this);
+ eventCallbackArgs.EventName = eventName;
+ eventCallbackArgs.m_keywords = (EventKeywords) eventDescriptor.Keywords;
+ eventCallbackArgs.m_opcode = (EventOpcode) eventDescriptor.Opcode;
+ eventCallbackArgs.m_tags = tags;
+
+ // Self described events do not have an id attached. We mark it internally with -1.
+ eventCallbackArgs.EventId = -1;
+ if (pActivityId != null)
+ eventCallbackArgs.RelatedActivityId = *pActivityId;
+
+ if (payload != null)
+ {
+ eventCallbackArgs.Payload = new ReadOnlyCollection<object>((IList<object>)payload.Values);
+ eventCallbackArgs.PayloadNames = new ReadOnlyCollection<string>((IList<string>)payload.Keys);
+ }
+
+ DisptachToAllListeners(-1, pActivityId, eventCallbackArgs);
+ }
+
+#if !ES_BUILD_PCL
+ [System.Runtime.ConstrainedExecution.ReliabilityContract(
+ System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState,
+ System.Runtime.ConstrainedExecution.Cer.Success)]
+#endif
+ [SecurityCritical]
+ [NonEvent]
+ private unsafe void WriteCleanup(GCHandle* pPins, int cPins)
+ {
+ DataCollector.ThreadInstance.Disable();
+
+ for (int i = 0; i != cPins; i++)
+ {
+ if (IntPtr.Zero != (IntPtr)pPins[i])
+ {
+ pPins[i].Free();
+ }
+ }
+ }
+
+ private void InitializeProviderMetadata()
+ {
+ if (m_traits != null)
+ {
+ List<byte> traitMetaData = new List<byte>(100);
+ for (int i = 0; i < m_traits.Length - 1; i += 2)
+ {
+ if (m_traits[i].StartsWith("ETW_"))
+ {
+ string etwTrait = m_traits[i].Substring(4);
+ byte traitNum;
+ if (!byte.TryParse(etwTrait, out traitNum))
+ {
+ if (etwTrait == "GROUP")
+ traitNum = 1;
+ else
+ throw new ArgumentException(Environment.GetResourceString("UnknownEtwTrait", etwTrait), "traits");
+ }
+ string value = m_traits[i + 1];
+ int lenPos = traitMetaData.Count;
+ traitMetaData.Add(0); // Emit size (to be filled in later)
+ traitMetaData.Add(0);
+ traitMetaData.Add(traitNum); // Emit Trait number
+ var valueLen = AddValueToMetaData(traitMetaData, value) + 3; // Emit the value bytes +3 accounts for 3 bytes we emited above.
+ traitMetaData[lenPos] = unchecked((byte)valueLen); // Fill in size
+ traitMetaData[lenPos + 1] = unchecked((byte)(valueLen >> 8));
+ }
+ }
+ providerMetadata = Statics.MetadataForString(this.Name, 0, traitMetaData.Count, 0);
+ int startPos = providerMetadata.Length-traitMetaData.Count;
+ foreach (var b in traitMetaData)
+ providerMetadata[startPos++] = b;
+ }
+ else
+ providerMetadata = Statics.MetadataForString(this.Name, 0, 0, 0);
+ }
+
+ private static int AddValueToMetaData(List<byte> metaData, string value)
+ {
+ if (value.Length == 0)
+ return 0;
+
+ int startPos = metaData.Count;
+ char firstChar = value[0];
+
+ if (firstChar == '@')
+ metaData.AddRange(Encoding.UTF8.GetBytes(value.Substring(1)));
+ else if (firstChar == '{')
+ metaData.AddRange(new Guid(value).ToByteArray());
+ else if (firstChar == '#')
+ {
+ for (int i = 1; i < value.Length; i++)
+ {
+ if (value[i] != ' ') // Skp spaces between bytes.
+ {
+ if (!(i + 1 < value.Length))
+ throw new ArgumentException(Environment.GetResourceString("EvenHexDigits"), "traits");
+ metaData.Add((byte)(HexDigit(value[i]) * 16 + HexDigit(value[i + 1])));
+ i++;
+ }
+ }
+ }
+ else if (' ' <= firstChar) // Is it alphabetic (excludes digits and most punctuation.
+ metaData.AddRange(Encoding.UTF8.GetBytes(value));
+ else
+ throw new ArgumentException(Environment.GetResourceString("IllegalValue", value), "traits");
+
+ return metaData.Count - startPos;
+ }
+
+ /// <summary>
+ /// Returns a value 0-15 if 'c' is a hexadecimal digit. If it throws an argument exception.
+ /// </summary>
+ private static int HexDigit(char c)
+ {
+ if ('0' <= c && c <= '9')
+ return (c - '0');
+ if ('a' <= c)
+ c = unchecked((char) (c - ('a' - 'A'))); // Convert to lower case
+ if ('A' <= c && c <= 'F')
+ return (c - 'A' + 10);
+ throw new ArgumentException(Environment.GetResourceString("BadHexDigit", c), "traits");
+ }
+
+ private NameInfo UpdateDescriptor(
+ string name,
+ TraceLoggingEventTypes eventInfo,
+ ref EventSourceOptions options,
+ out EventDescriptor descriptor)
+ {
+ NameInfo nameInfo = null;
+ int identity = 0;
+ byte level = (options.valuesSet & EventSourceOptions.levelSet) != 0
+ ? options.level
+ : eventInfo.level;
+ byte opcode = (options.valuesSet & EventSourceOptions.opcodeSet) != 0
+ ? options.opcode
+ : eventInfo.opcode;
+ EventTags tags = (options.valuesSet & EventSourceOptions.tagsSet) != 0
+ ? options.tags
+ : eventInfo.Tags;
+ EventKeywords keywords = (options.valuesSet & EventSourceOptions.keywordsSet) != 0
+ ? options.keywords
+ : eventInfo.keywords;
+
+ if (this.IsEnabled((EventLevel)level, keywords))
+ {
+ nameInfo = eventInfo.GetNameInfo(name ?? eventInfo.Name, tags);
+ identity = nameInfo.identity;
+ }
+
+ descriptor = new EventDescriptor(identity, level, opcode, (long)keywords);
+ return nameInfo;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingEventTraits.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingEventTraits.cs
new file mode 100644
index 00000000000..91f64acd68b
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingEventTraits.cs
@@ -0,0 +1,24 @@
+using System;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// Tags are flags that are not interpreted by EventSource but are passed along
+ /// to the EventListener. The EventListener determines the semantics of the flags.
+ /// </summary>
+ [Flags]
+ public enum EventTags
+ {
+ /// <summary>
+ /// No special traits are added to the event.
+ /// </summary>
+ None = 0,
+
+ /* Bits below 0x10000 are available for any use by the provider. */
+ /* Bits at or above 0x10000 are reserved for definition by Microsoft. */
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingEventTypes.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingEventTypes.cs
new file mode 100644
index 00000000000..1d56773a18f
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingEventTypes.cs
@@ -0,0 +1,258 @@
+using System;
+using System.Collections.Generic;
+using Interlocked = System.Threading.Interlocked;
+
+#if !ES_BUILD_AGAINST_DOTNET_V35
+using Contract = System.Diagnostics.Contracts.Contract;
+#else
+using Contract = Microsoft.Diagnostics.Contracts.Internal.Contract;
+#endif
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: Used when calling EventSource.WriteMultiMerge.
+ /// Stores the type information to use when writing the event fields.
+ /// </summary>
+ internal class TraceLoggingEventTypes
+ {
+ internal readonly TraceLoggingTypeInfo[] typeInfos;
+ internal readonly string name;
+ internal readonly EventTags tags;
+ internal readonly byte level;
+ internal readonly byte opcode;
+ internal readonly EventKeywords keywords;
+ internal readonly byte[] typeMetadata;
+ internal readonly int scratchSize;
+ internal readonly int dataCount;
+ internal readonly int pinCount;
+ private ConcurrentSet<KeyValuePair<string, EventTags>, NameInfo> nameInfos;
+
+ /// <summary>
+ /// Initializes a new instance of TraceLoggingEventTypes corresponding
+ /// to the name, flags, and types provided. Always uses the default
+ /// TypeInfo for each Type.
+ /// </summary>
+ /// <param name="name">
+ /// The name to use when the name parameter passed to
+ /// EventSource.Write is null. This value must not be null.
+ /// </param>
+ /// <param name="tags">
+ /// Tags to add to the event if the tags are not set via options.
+ /// </param>
+ /// <param name="types">
+ /// The types of the fields in the event. This value must not be null.
+ /// </param>
+ internal TraceLoggingEventTypes(
+ string name,
+ EventTags tags,
+ params Type[] types)
+ : this(tags, name, MakeArray(types))
+ {
+ return;
+ }
+
+ /// <summary>
+ /// Returns a new instance of TraceLoggingEventInfo corresponding to the name,
+ /// flags, and typeInfos provided.
+ /// </summary>
+ /// <param name="name">
+ /// The name to use when the name parameter passed to
+ /// EventSource.Write is null. This value must not be null.
+ /// </param>
+ /// <param name="tags">
+ /// Tags to add to the event if the tags are not set via options.
+ /// </param>
+ /// <param name="typeInfos">
+ /// The types of the fields in the event. This value must not be null.
+ /// </param>
+ /// <returns>
+ /// An instance of TraceLoggingEventInfo with DefaultName set to the specified name
+ /// and with the specified typeInfos.
+ /// </returns>
+ internal TraceLoggingEventTypes(
+ string name,
+ EventTags tags,
+ params TraceLoggingTypeInfo[] typeInfos)
+ : this(tags, name, MakeArray(typeInfos))
+ {
+ return;
+ }
+
+ internal TraceLoggingEventTypes(
+ string name,
+ EventTags tags,
+ System.Reflection.ParameterInfo[] paramInfos)
+ {
+ if (name == null)
+ {
+ throw new ArgumentNullException("name");
+ }
+
+ Contract.EndContractBlock();
+
+ this.typeInfos = MakeArray(paramInfos);
+ this.name = name;
+ this.tags = tags;
+ this.level = Statics.DefaultLevel;
+
+ var collector = new TraceLoggingMetadataCollector();
+ for (int i = 0; i < typeInfos.Length; ++i)
+ {
+ var typeInfo = typeInfos[i];
+ this.level = Statics.Combine((int)typeInfo.Level, this.level);
+ this.opcode = Statics.Combine((int)typeInfo.Opcode, this.opcode);
+ this.keywords |= typeInfo.Keywords;
+ var paramName = paramInfos[i].Name;
+ if (Statics.ShouldOverrideFieldName(paramName))
+ {
+ paramName = typeInfo.Name;
+ }
+ typeInfo.WriteMetadata(collector, paramName, EventFieldFormat.Default);
+ }
+
+ this.typeMetadata = collector.GetMetadata();
+ this.scratchSize = collector.ScratchSize;
+ this.dataCount = collector.DataCount;
+ this.pinCount = collector.PinCount;
+ }
+
+ private TraceLoggingEventTypes(
+ EventTags tags,
+ string defaultName,
+ TraceLoggingTypeInfo[] typeInfos)
+ {
+ if (defaultName == null)
+ {
+ throw new ArgumentNullException("defaultName");
+ }
+
+ Contract.EndContractBlock();
+
+ this.typeInfos = typeInfos;
+ this.name = defaultName;
+ this.tags = tags;
+ this.level = Statics.DefaultLevel;
+
+ var collector = new TraceLoggingMetadataCollector();
+ foreach (var typeInfo in typeInfos)
+ {
+ this.level = Statics.Combine((int)typeInfo.Level, this.level);
+ this.opcode = Statics.Combine((int)typeInfo.Opcode, this.opcode);
+ this.keywords |= typeInfo.Keywords;
+ typeInfo.WriteMetadata(collector, null, EventFieldFormat.Default);
+ }
+
+ this.typeMetadata = collector.GetMetadata();
+ this.scratchSize = collector.ScratchSize;
+ this.dataCount = collector.DataCount;
+ this.pinCount = collector.PinCount;
+ }
+
+ /// <summary>
+ /// Gets the default name that will be used for events with this descriptor.
+ /// </summary>
+ internal string Name
+ {
+ get { return this.name; }
+ }
+
+ /// <summary>
+ /// Gets the default level that will be used for events with this descriptor.
+ /// </summary>
+ internal EventLevel Level
+ {
+ get { return (EventLevel)this.level; }
+ }
+
+ /// <summary>
+ /// Gets the default opcode that will be used for events with this descriptor.
+ /// </summary>
+ internal EventOpcode Opcode
+ {
+ get { return (EventOpcode)this.opcode; }
+ }
+
+ /// <summary>
+ /// Gets the default set of keywords that will added to events with this descriptor.
+ /// </summary>
+ internal EventKeywords Keywords
+ {
+ get { return (EventKeywords)this.keywords; }
+ }
+
+ /// <summary>
+ /// Gets the default tags that will be added events with this descriptor.
+ /// </summary>
+ internal EventTags Tags
+ {
+ get { return this.tags; }
+ }
+
+ internal NameInfo GetNameInfo(string name, EventTags tags)
+ {
+ var ret = this.nameInfos.TryGet(new KeyValuePair<string, EventTags>(name, tags));
+ if (ret == null)
+ {
+ ret = this.nameInfos.GetOrAdd(new NameInfo(name, tags, this.typeMetadata.Length));
+ }
+
+ return ret;
+ }
+
+ private TraceLoggingTypeInfo[] MakeArray(System.Reflection.ParameterInfo[] paramInfos)
+ {
+ if (paramInfos == null)
+ {
+ throw new ArgumentNullException("paramInfos");
+ }
+
+ Contract.EndContractBlock();
+
+ var recursionCheck = new List<Type>(paramInfos.Length);
+ var result = new TraceLoggingTypeInfo[paramInfos.Length];
+ for (int i = 0; i < paramInfos.Length; ++i)
+ {
+ result[i] = Statics.GetTypeInfoInstance(paramInfos[i].ParameterType, recursionCheck);
+ }
+
+ return result;
+ }
+
+ private static TraceLoggingTypeInfo[] MakeArray(Type[] types)
+ {
+ if (types == null)
+ {
+ throw new ArgumentNullException("types");
+ }
+
+ Contract.EndContractBlock();
+
+ var recursionCheck = new List<Type>(types.Length);
+ var result = new TraceLoggingTypeInfo[types.Length];
+ for (int i = 0; i < types.Length; i++)
+ {
+ result[i] = Statics.GetTypeInfoInstance(types[i], recursionCheck);
+ }
+
+ return result;
+ }
+
+ private static TraceLoggingTypeInfo[] MakeArray(
+ TraceLoggingTypeInfo[] typeInfos)
+ {
+ if (typeInfos == null)
+ {
+ throw new ArgumentNullException("typeInfos");
+ }
+
+ Contract.EndContractBlock();
+
+ return (TraceLoggingTypeInfo[])typeInfos.Clone(); ;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingMetadataCollector.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingMetadataCollector.cs
new file mode 100644
index 00000000000..1d1f1e708fe
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingMetadataCollector.cs
@@ -0,0 +1,366 @@
+using System;
+using System.Collections.Generic;
+
+#if ES_BUILD_STANDALONE
+using Environment = Microsoft.Diagnostics.Tracing.Internal.Environment;
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: used when implementing a custom TraceLoggingTypeInfo.
+ /// An instance of this type is provided to the TypeInfo.WriteMetadata method.
+ /// </summary>
+ internal class TraceLoggingMetadataCollector
+ {
+ private readonly Impl impl;
+ private readonly FieldMetadata currentGroup;
+ private int bufferedArrayFieldCount = int.MinValue;
+
+ /// <summary>
+ /// Creates a root-level collector.
+ /// </summary>
+ internal TraceLoggingMetadataCollector()
+ {
+ this.impl = new Impl();
+ }
+
+ /// <summary>
+ /// Creates a collector for a group.
+ /// </summary>
+ /// <param name="other">Parent collector</param>
+ /// <param name="group">The field that starts the group</param>
+ private TraceLoggingMetadataCollector(
+ TraceLoggingMetadataCollector other,
+ FieldMetadata group)
+ {
+ this.impl = other.impl;
+ this.currentGroup = group;
+ }
+
+ /// <summary>
+ /// The field tags to be used for the next field.
+ /// This will be reset to None each time a field is written.
+ /// </summary>
+ internal EventFieldTags Tags
+ {
+ get;
+ set;
+ }
+
+ internal int ScratchSize
+ {
+ get { return this.impl.scratchSize; }
+ }
+
+ internal int DataCount
+ {
+ get { return this.impl.dataCount; }
+ }
+
+ internal int PinCount
+ {
+ get { return this.impl.pinCount; }
+ }
+
+ private bool BeginningBufferedArray
+ {
+ get { return this.bufferedArrayFieldCount == 0; }
+ }
+
+ /// <summary>
+ /// Call this method to add a group to the event and to return
+ /// a new metadata collector that can be used to add fields to the
+ /// group. After all of the fields in the group have been written,
+ /// switch back to the original metadata collector to add fields
+ /// outside of the group.
+ /// Special-case: if name is null, no group is created, and AddGroup
+ /// returns the original metadata collector. This is useful when
+ /// adding the top-level group for an event.
+ /// Note: do not use the original metadata collector while the group's
+ /// metadata collector is in use, and do not use the group's metadata
+ /// collector after switching back to the original.
+ /// </summary>
+ /// <param name="name">
+ /// The name of the group. If name is null, the call to AddGroup is a
+ /// no-op (collector.AddGroup(null) returns collector).
+ /// </param>
+ /// <returns>
+ /// A new metadata collector that can be used to add fields to the group.
+ /// </returns>
+ public TraceLoggingMetadataCollector AddGroup(string name)
+ {
+ TraceLoggingMetadataCollector result = this;
+
+ if (name != null || // Normal.
+ this.BeginningBufferedArray) // Error, FieldMetadata's constructor will throw the appropriate exception.
+ {
+ var newGroup = new FieldMetadata(
+ name,
+ TraceLoggingDataType.Struct,
+ 0,
+ this.BeginningBufferedArray);
+ this.AddField(newGroup);
+ result = new TraceLoggingMetadataCollector(this, newGroup);
+ }
+
+ return result;
+ }
+
+ /// <summary>
+ /// Adds a scalar field to an event.
+ /// </summary>
+ /// <param name="name">
+ /// The name to use for the added field. This value must not be null.
+ /// </param>
+ /// <param name="type">
+ /// The type code for the added field. This must be a fixed-size type
+ /// (e.g. string types are not supported).
+ /// </param>
+ public void AddScalar(string name, TraceLoggingDataType type)
+ {
+ int size;
+ switch ((TraceLoggingDataType)((int)type & Statics.InTypeMask))
+ {
+ case TraceLoggingDataType.Int8:
+ case TraceLoggingDataType.UInt8:
+ case TraceLoggingDataType.Char8:
+ size = 1;
+ break;
+ case TraceLoggingDataType.Int16:
+ case TraceLoggingDataType.UInt16:
+ case TraceLoggingDataType.Char16:
+ size = 2;
+ break;
+ case TraceLoggingDataType.Int32:
+ case TraceLoggingDataType.UInt32:
+ case TraceLoggingDataType.HexInt32:
+ case TraceLoggingDataType.Float:
+ case TraceLoggingDataType.Boolean32:
+ size = 4;
+ break;
+ case TraceLoggingDataType.Int64:
+ case TraceLoggingDataType.UInt64:
+ case TraceLoggingDataType.HexInt64:
+ case TraceLoggingDataType.Double:
+ case TraceLoggingDataType.FileTime:
+ size = 8;
+ break;
+ case TraceLoggingDataType.Guid:
+ case TraceLoggingDataType.SystemTime:
+ size = 16;
+ break;
+ default:
+ throw new ArgumentOutOfRangeException("type");
+ }
+
+ this.impl.AddScalar(size);
+ this.AddField(new FieldMetadata(name, type, this.Tags, this.BeginningBufferedArray));
+ }
+
+ /// <summary>
+ /// Adds a binary-format field to an event.
+ /// Compatible with core types: Binary, CountedUtf16String, CountedMbcsString.
+ /// Compatible with dataCollector methods: AddBinary(string), AddArray(Any8bitType[]).
+ /// </summary>
+ /// <param name="name">
+ /// The name to use for the added field. This value must not be null.
+ /// </param>
+ /// <param name="type">
+ /// The type code for the added field. This must be a Binary or CountedString type.
+ /// </param>
+ public void AddBinary(string name, TraceLoggingDataType type)
+ {
+ switch ((TraceLoggingDataType)((int)type & Statics.InTypeMask))
+ {
+ case TraceLoggingDataType.Binary:
+ case TraceLoggingDataType.CountedMbcsString:
+ case TraceLoggingDataType.CountedUtf16String:
+ break;
+ default:
+ throw new ArgumentOutOfRangeException("type");
+ }
+
+ this.impl.AddScalar(2);
+ this.impl.AddNonscalar();
+ this.AddField(new FieldMetadata(name, type, this.Tags, this.BeginningBufferedArray));
+ }
+
+ /// <summary>
+ /// Adds an array field to an event.
+ /// </summary>
+ /// <param name="name">
+ /// The name to use for the added field. This value must not be null.
+ /// </param>
+ /// <param name="type">
+ /// The type code for the added field. This must be a fixed-size type
+ /// or a string type. In the case of a string type, this adds an array
+ /// of characters, not an array of strings.
+ /// </param>
+ public void AddArray(string name, TraceLoggingDataType type)
+ {
+ switch ((TraceLoggingDataType)((int)type & Statics.InTypeMask))
+ {
+ case TraceLoggingDataType.Utf16String:
+ case TraceLoggingDataType.MbcsString:
+ case TraceLoggingDataType.Int8:
+ case TraceLoggingDataType.UInt8:
+ case TraceLoggingDataType.Int16:
+ case TraceLoggingDataType.UInt16:
+ case TraceLoggingDataType.Int32:
+ case TraceLoggingDataType.UInt32:
+ case TraceLoggingDataType.Int64:
+ case TraceLoggingDataType.UInt64:
+ case TraceLoggingDataType.Float:
+ case TraceLoggingDataType.Double:
+ case TraceLoggingDataType.Boolean32:
+ case TraceLoggingDataType.Guid:
+ case TraceLoggingDataType.FileTime:
+ case TraceLoggingDataType.HexInt32:
+ case TraceLoggingDataType.HexInt64:
+ case TraceLoggingDataType.Char16:
+ case TraceLoggingDataType.Char8:
+ break;
+ default:
+ throw new ArgumentOutOfRangeException("type");
+ }
+
+ if (this.BeginningBufferedArray)
+ {
+ throw new NotSupportedException(Environment.GetResourceString("EventSource_NotSupportedNestedArraysEnums"));
+ }
+
+ this.impl.AddScalar(2);
+ this.impl.AddNonscalar();
+ this.AddField(new FieldMetadata(name, type, this.Tags, true));
+ }
+
+ public void BeginBufferedArray()
+ {
+ if (this.bufferedArrayFieldCount >= 0)
+ {
+ throw new NotSupportedException(Environment.GetResourceString("EventSource_NotSupportedNestedArraysEnums"));
+ }
+
+ this.bufferedArrayFieldCount = 0;
+ this.impl.BeginBuffered();
+ }
+
+ public void EndBufferedArray()
+ {
+ if (this.bufferedArrayFieldCount != 1)
+ {
+ throw new InvalidOperationException(Environment.GetResourceString("EventSource_IncorrentlyAuthoredTypeInfo"));
+ }
+
+ this.bufferedArrayFieldCount = int.MinValue;
+ this.impl.EndBuffered();
+ }
+
+ /// <summary>
+ /// Adds a custom-serialized field to an event.
+ /// </summary>
+ /// <param name="name">
+ /// The name to use for the added field. This value must not be null.
+ /// </param>
+ /// <param name="type">The encoding type for the field.</param>
+ /// <param name="metadata">Additional information needed to decode the field, if any.</param>
+ public void AddCustom(string name, TraceLoggingDataType type, byte[] metadata)
+ {
+ if (this.BeginningBufferedArray)
+ {
+ throw new NotSupportedException(Environment.GetResourceString("EventSource_NotSupportedCustomSerializedData"));
+ }
+
+ this.impl.AddScalar(2);
+ this.impl.AddNonscalar();
+ this.AddField(new FieldMetadata(
+ name,
+ type,
+ this.Tags,
+ metadata));
+ }
+
+ internal byte[] GetMetadata()
+ {
+ var size = this.impl.Encode(null);
+ var metadata = new byte[size];
+ this.impl.Encode(metadata);
+ return metadata;
+ }
+
+ private void AddField(FieldMetadata fieldMetadata)
+ {
+ this.Tags = EventFieldTags.None;
+ this.bufferedArrayFieldCount++;
+ this.impl.fields.Add(fieldMetadata);
+
+ if (this.currentGroup != null)
+ {
+ this.currentGroup.IncrementStructFieldCount();
+ }
+ }
+
+ private class Impl
+ {
+ internal readonly List<FieldMetadata> fields = new List<FieldMetadata>();
+ internal short scratchSize;
+ internal sbyte dataCount;
+ internal sbyte pinCount;
+ private int bufferNesting;
+ private bool scalar;
+
+ public void AddScalar(int size)
+ {
+ if (this.bufferNesting == 0)
+ {
+ if (!this.scalar)
+ {
+ this.dataCount = checked((sbyte)(this.dataCount + 1));
+ }
+
+ this.scalar = true;
+ this.scratchSize = checked((short)(this.scratchSize + size));
+ }
+ }
+
+ public void AddNonscalar()
+ {
+ if (this.bufferNesting == 0)
+ {
+ this.scalar = false;
+ this.pinCount = checked((sbyte)(this.pinCount + 1));
+ this.dataCount = checked((sbyte)(this.dataCount + 1));
+ }
+ }
+
+ public void BeginBuffered()
+ {
+ if (this.bufferNesting == 0)
+ {
+ this.AddNonscalar();
+ }
+
+ this.bufferNesting++;
+ }
+
+ public void EndBuffered()
+ {
+ this.bufferNesting--;
+ }
+
+ public int Encode(byte[] metadata)
+ {
+ int size = 0;
+
+ foreach (var field in this.fields)
+ {
+ field.Encode(ref size, metadata);
+ }
+
+ return size;
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingTypeInfo.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingTypeInfo.cs
new file mode 100644
index 00000000000..392f119f9b8
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingTypeInfo.cs
@@ -0,0 +1,176 @@
+using System;
+
+#if !ES_BUILD_AGAINST_DOTNET_V35
+using Contract = System.Diagnostics.Contracts.Contract;
+#else
+using Contract = Microsoft.Diagnostics.Contracts.Internal.Contract;
+#endif
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: used when implementing a custom TraceLoggingTypeInfo.
+ /// Non-generic base class for TraceLoggingTypeInfo&lt;DataType>. Do not derive
+ /// from this class. Instead, derive from TraceLoggingTypeInfo&lt;DataType>.
+ /// </summary>
+ internal abstract class TraceLoggingTypeInfo
+ {
+ private readonly string name;
+ private readonly EventKeywords keywords;
+ private readonly EventLevel level = (EventLevel)(-1);
+ private readonly EventOpcode opcode = (EventOpcode)(-1);
+ private readonly EventTags tags;
+ private readonly Type dataType;
+
+ internal TraceLoggingTypeInfo(Type dataType)
+ {
+ if (dataType == null)
+ {
+ throw new ArgumentNullException("dataType");
+ }
+
+ Contract.EndContractBlock();
+
+ this.name = dataType.Name;
+ this.dataType = dataType;
+ }
+
+ internal TraceLoggingTypeInfo(
+ Type dataType,
+ string name,
+ EventLevel level,
+ EventOpcode opcode,
+ EventKeywords keywords,
+ EventTags tags)
+ {
+ if (dataType == null)
+ {
+ throw new ArgumentNullException("dataType");
+ }
+
+ if (name == null)
+ {
+ throw new ArgumentNullException("eventName");
+ }
+
+ Contract.EndContractBlock();
+
+ Statics.CheckName(name);
+
+ this.name = name;
+ this.keywords = keywords;
+ this.level = level;
+ this.opcode = opcode;
+ this.tags = tags;
+ this.dataType = dataType;
+ }
+
+ /// <summary>
+ /// Gets the name to use for the event if this type is the top-level type,
+ /// or the name to use for an implicitly-named field.
+ /// Never null.
+ /// </summary>
+ public string Name
+ {
+ get { return this.name; }
+ }
+
+ /// <summary>
+ /// Gets the event level associated with this type. Any value in the range 0..255
+ /// is an associated event level. Any value outside the range 0..255 is invalid and
+ /// indicates that this type has no associated event level.
+ /// </summary>
+ public EventLevel Level
+ {
+ get { return this.level; }
+ }
+
+ /// <summary>
+ /// Gets the event opcode associated with this type. Any value in the range 0..255
+ /// is an associated event opcode. Any value outside the range 0..255 is invalid and
+ /// indicates that this type has no associated event opcode.
+ /// </summary>
+ public EventOpcode Opcode
+ {
+ get { return this.opcode; }
+ }
+
+ /// <summary>
+ /// Gets the keyword(s) associated with this type.
+ /// </summary>
+ public EventKeywords Keywords
+ {
+ get { return this.keywords; }
+ }
+
+ /// <summary>
+ /// Gets the event tags associated with this type.
+ /// </summary>
+ public EventTags Tags
+ {
+ get { return this.tags; }
+ }
+
+ internal Type DataType
+ {
+ get { return this.dataType; }
+ }
+
+ /// <summary>
+ /// When overridden by a derived class, writes the metadata (schema) for
+ /// this type. Note that the sequence of operations in WriteMetadata should be
+ /// essentially identical to the sequence of operations in
+ /// WriteData/WriteObjectData. Otherwise, the metadata and data will not match,
+ /// which may cause trouble when decoding the event.
+ /// </summary>
+ /// <param name="collector">
+ /// The object that collects metadata for this object's type. Metadata is written
+ /// by calling methods on the collector object. Note that if the type contains
+ /// sub-objects, the implementation of this method may need to call the
+ /// WriteMetadata method for the type of the sub-object, e.g. by calling
+ /// TraceLoggingTypeInfo&lt;SubType&gt;.Instance.WriteMetadata(...).
+ /// </param>
+ /// <param name="name">
+ /// The name of the property that contains an object of this type, or null if this
+ /// object is being written as a top-level object of an event. Typical usage
+ /// is to pass this value to collector.AddGroup.
+ /// </param>
+ /// <param name="format">
+ /// The format attribute for the field that contains an object of this type.
+ /// </param>
+ public abstract void WriteMetadata(
+ TraceLoggingMetadataCollector collector,
+ string name,
+ EventFieldFormat format);
+
+ /// <summary>
+ /// Refer to TraceLoggingTypeInfo.WriteObjectData for information about this
+ /// method.
+ /// </summary>
+ /// <param name="collector">
+ /// Refer to TraceLoggingTypeInfo.WriteObjectData for information about this
+ /// method.
+ /// </param>
+ /// <param name="value">
+ /// Refer to TraceLoggingTypeInfo.WriteObjectData for information about this
+ /// method.
+ /// </param>
+ public abstract void WriteObjectData(
+ TraceLoggingDataCollector collector,
+ object value);
+
+ /// <summary>
+ /// Fetches the event parameter data for internal serialization.
+ /// </summary>
+ /// <param name="value"></param>
+ /// <returns></returns>
+ public virtual object GetData(object value)
+ {
+ return value;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingTypeInfo_T.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingTypeInfo_T.cs
new file mode 100644
index 00000000000..c5569ba32a3
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TraceLoggingTypeInfo_T.cs
@@ -0,0 +1,158 @@
+using System;
+using System.Collections.Generic;
+using Interlocked = System.Threading.Interlocked;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: used when implementing a custom TraceLoggingTypeInfo.
+ /// Implementations of this type provide the behaviors that TraceLogging
+ /// uses to turn objects into event data. TraceLogging provides default
+ /// implementations of this type, but custom implementations can be used
+ /// when the default TraceLogging implementation is insufficient.
+ /// </summary>
+ /// <typeparam name="DataType">
+ /// The type of object that is handled by this implementation.
+ /// </typeparam>
+ internal abstract class TraceLoggingTypeInfo<DataType>
+ : TraceLoggingTypeInfo
+ {
+ private static TraceLoggingTypeInfo<DataType> instance;
+
+ /// <summary>
+ /// Initializes a new instance of the TraceLoggingTypeInfo class with
+ /// default settings. Uses typeof(DataType).Name for EventName and FieldName.
+ /// Marks Level and Opcode as unset. Sets Keywords and Traits to 0.
+ /// </summary>
+ protected TraceLoggingTypeInfo()
+ : base(typeof(DataType))
+ {
+ return;
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the TraceLoggingTypeInfo class, using
+ /// the specified values for the EventName, Level, Opcode, Keywords,
+ /// FieldName, and Traits properties.
+ /// </summary>
+ /// <param name="name">
+ /// The value for the Name property. Must not contain '\0' characters.
+ /// Must not be null.
+ /// </param>
+ /// <param name="level">
+ /// The value for the Level property, or -1 to mark Level as unset.
+ /// </param>
+ /// <param name="opcode">
+ /// The value for the Opcode property, or -1 to mark Opcode as unset.
+ /// </param>
+ /// <param name="keywords">
+ /// The value for the Keywords property.
+ /// </param>
+ /// <param name="tags">
+ /// The value for the Tags property.
+ /// </param>
+ protected TraceLoggingTypeInfo(
+ string name,
+ EventLevel level,
+ EventOpcode opcode,
+ EventKeywords keywords,
+ EventTags tags)
+ : base(
+ typeof(DataType),
+ name,
+ level,
+ opcode,
+ keywords,
+ tags)
+ {
+ return;
+ }
+
+ /// <summary>
+ /// Gets the type info that will be used for handling instances of
+ /// DataType. If the instance has not already been set, this will
+ /// call TrySetInstance(automaticSerializer) to set one, where
+ /// automaticSerializer is the value returned from CreateDefault(),
+ /// or a do-nothing serializer if CreateDefault() fails.
+ /// </summary>
+ public static TraceLoggingTypeInfo<DataType> Instance
+ {
+ get
+ {
+ return instance ?? InitInstance();
+ }
+ }
+
+ /// <summary>
+ /// When overridden by a derived class, writes the data (fields) for an instance
+ /// of DataType. Note that the sequence of operations in WriteData should be
+ /// essentially identical to the sequence of operations in WriteMetadata. Otherwise,
+ /// the metadata and data will not match, which may cause trouble when decoding the
+ /// event.
+ /// </summary>
+ /// <param name="collector">
+ /// The object that collects the data for the instance. Data is written by calling
+ /// methods on the collector object. Note that if the type contains sub-objects,
+ /// the implementation of this method may need to call the WriteData method
+ /// for the sub-object, e.g. by calling
+ /// TraceLoggingTypeInfo&lt;SubType&gt;.Instance.WriteData(...).
+ /// </param>
+ /// <param name="value">
+ /// The value for which data is to be written.
+ /// </param>
+ public abstract void WriteData(
+ TraceLoggingDataCollector collector,
+ ref DataType value);
+
+ /// <summary>
+ /// When overridden in a derived class, writes the data (fields) for an instance
+ /// of DataType. The default implementation of WriteObjectData calls
+ /// WriteData(collector, (DataType)value). Normally, you will override WriteData
+ /// and not WriteObjectData. However, if your implementation of WriteData has to
+ /// cast the value to object, it may be more efficient to reverse this calling
+ /// pattern, i.e. to implement WriteObjectData, and then implement WriteData as a
+ /// call to WriteObjectData.
+ /// </summary>
+ /// <param name="collector">
+ /// The object that collects the data for the instance. Data is written by calling
+ /// methods on the collector object. Note that if the type contains sub-objects,
+ /// the implementation of this method may need to call the WriteData method
+ /// for the sub-object, e.g. by calling
+ /// TraceLoggingTypeInfo&lt;SubType&gt;.Instance.WriteData(...).
+ /// </param>
+ /// <param name="value">
+ /// The value for which data is to be written. Note that this value may be null
+ /// (even for value types) if the property from which the value was read is
+ /// missing or null.
+ /// </param>
+ public override void WriteObjectData(
+ TraceLoggingDataCollector collector,
+ object value)
+ {
+ var val = value == null ? default(DataType) : (DataType)value;
+ this.WriteData(collector, ref val);
+ }
+
+ internal static TraceLoggingTypeInfo<DataType> GetInstance(List<Type> recursionCheck)
+ {
+ if (instance == null)
+ {
+ var recursionCheckCount = recursionCheck.Count;
+ var newInstance = Statics.CreateDefaultTypeInfo<DataType>(recursionCheck);
+ Interlocked.CompareExchange(ref instance, newInstance, null);
+ recursionCheck.RemoveRange(recursionCheckCount, recursionCheck.Count - recursionCheckCount);
+ }
+
+ return instance;
+ }
+
+ private static TraceLoggingTypeInfo<DataType> InitInstance()
+ {
+ return GetInstance(new List<Type>());
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TypeAnalysis.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TypeAnalysis.cs
new file mode 100644
index 00000000000..a7aecba3234
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/TraceLogging/TypeAnalysis.cs
@@ -0,0 +1,99 @@
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// TraceLogging: stores the per-type information obtained by reflecting over a type.
+ /// </summary>
+ internal sealed class TypeAnalysis
+ {
+ internal readonly PropertyAnalysis[] properties;
+ internal readonly string name;
+ internal readonly EventKeywords keywords;
+ internal readonly EventLevel level = (EventLevel)(-1);
+ internal readonly EventOpcode opcode = (EventOpcode)(-1);
+ internal readonly EventTags tags;
+
+ public TypeAnalysis(
+ Type dataType,
+ EventDataAttribute eventAttrib,
+ List<Type> recursionCheck)
+ {
+ var propertyInfos = Statics.GetProperties(dataType);
+ var propertyList = new List<PropertyAnalysis>();
+
+ foreach (var propertyInfo in propertyInfos)
+ {
+ if (Statics.HasCustomAttribute(propertyInfo, typeof(EventIgnoreAttribute)))
+ {
+ continue;
+ }
+
+ if (!propertyInfo.CanRead ||
+ propertyInfo.GetIndexParameters().Length != 0)
+ {
+ continue;
+ }
+
+ MethodInfo getterInfo = Statics.GetGetMethod(propertyInfo);
+ if (getterInfo == null)
+ {
+ continue;
+ }
+
+ if (getterInfo.IsStatic || !getterInfo.IsPublic)
+ {
+ continue;
+ }
+
+ var propertyType = propertyInfo.PropertyType;
+ var propertyTypeInfo = Statics.GetTypeInfoInstance(propertyType, recursionCheck);
+ var fieldAttribute = Statics.GetCustomAttribute<EventFieldAttribute>(propertyInfo);
+
+ string propertyName =
+ fieldAttribute != null && fieldAttribute.Name != null
+ ? fieldAttribute.Name
+ : Statics.ShouldOverrideFieldName(propertyInfo.Name)
+ ? propertyTypeInfo.Name
+ : propertyInfo.Name;
+ propertyList.Add(new PropertyAnalysis(
+ propertyName,
+ getterInfo,
+ propertyTypeInfo,
+ fieldAttribute));
+ }
+
+ this.properties = propertyList.ToArray();
+
+ foreach (var property in this.properties)
+ {
+ var typeInfo = property.typeInfo;
+ this.level = (EventLevel)Statics.Combine((int)typeInfo.Level, (int)this.level);
+ this.opcode = (EventOpcode)Statics.Combine((int)typeInfo.Opcode, (int)this.opcode);
+ this.keywords |= typeInfo.Keywords;
+ this.tags |= typeInfo.Tags;
+ }
+
+ if (eventAttrib != null)
+ {
+ this.level = (EventLevel)Statics.Combine((int)eventAttrib.Level, (int)this.level);
+ this.opcode = (EventOpcode)Statics.Combine((int)eventAttrib.Opcode, (int)this.opcode);
+ this.keywords |= eventAttrib.Keywords;
+ this.tags |= eventAttrib.Tags;
+ this.name = eventAttrib.Name;
+ }
+
+ if (this.name == null)
+ {
+ this.name = dataType.Name;
+ }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/activitytracker.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/activitytracker.cs
new file mode 100644
index 00000000000..6d33bb5feda
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/activitytracker.cs
@@ -0,0 +1,564 @@
+using System;
+using System.Diagnostics;
+using System.Threading;
+using System.Threading.Tasks;
+
+#if !ES_BUILD_AGAINST_DOTNET_V35
+using Contract = System.Diagnostics.Contracts.Contract;
+#else
+using Contract = Microsoft.Diagnostics.Contracts.Internal.Contract;
+#endif
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// Tracks activities. This is meant to be a singledon (accessed by the ActivityTracer.Instance static property)
+ ///
+ /// Logically this is simply holds the m_current variable that holds the async local that holds the current ActivityInfo
+ /// An ActivityInfo is represents a actvity (which knows its creator and thus knows its path).
+ ///
+ /// Most of the magic is in the async local (it gets copied to new tasks)
+ ///
+ /// On every start event call OnStart
+ ///
+ /// Guid activityID;
+ /// Guid relatedActivityID;
+ /// if (OnStart(activityName, out activityID, out relatedActivityID, ForceStop, options))
+ /// // Log Start event with activityID and relatedActivityID
+ ///
+ /// On every stop event call OnStop
+ ///
+ /// Guid activityID;
+ /// if (OnStop(activityName, ref activityID ForceStop))
+ /// // Stop event with activityID
+ ///
+ /// On any normal event log the event with activityTracker.CurrentActivityId
+ /// </summary>
+ internal class ActivityTracker
+ {
+
+ /// <summary>
+ /// Called on work item begins. The activity name = providerName + activityName without 'Start' suffix.
+ /// It updates CurrentActivityId to track.
+ ///
+ /// It returns true if the Start should be logged, otherwise (if it is illegal recurision) it return false.
+ ///
+ /// The start event should use as its activity ID the CurrentActivityId AFTER calling this routine and its
+ /// RelatedActivityID the CurrentActivityId BEFORE calling this routine (the creator).
+ ///
+ /// If activity tracing is not on, then activityId and relatedActivityId are not set
+ /// </summary>
+ public void OnStart(string providerName, string activityName, int task, ref Guid activityId, ref Guid relatedActivityId, EventActivityOptions options)
+ {
+ if (m_current == null) // We are not enabled
+ return;
+
+ Contract.Assert((options & EventActivityOptions.Disable) == 0);
+
+ var currentActivity = m_current.Value;
+ var fullActivityName = NormalizeActivityName(providerName, activityName, task);
+
+ var etwLog = TplEtwProvider.Log;
+ if (etwLog.Debug)
+ {
+ etwLog.DebugFacilityMessage("OnStartEnter", fullActivityName);
+ etwLog.DebugFacilityMessage("OnStartEnterActivityState", ActivityInfo.LiveActivities(currentActivity));
+ }
+
+ if (currentActivity != null)
+ {
+ // Stop activity tracking if we reached the maximum allowed depth
+ if (currentActivity.m_level >= MAX_ACTIVITY_DEPTH)
+ {
+ activityId = Guid.Empty;
+ relatedActivityId = Guid.Empty;
+ if (etwLog.Debug)
+ etwLog.DebugFacilityMessage("OnStartRET", "Fail");
+ return;
+ }
+ // Check for recursion, and force-stop any activities if the activity already started.
+ if ((options & EventActivityOptions.Recursive) == 0)
+ {
+ ActivityInfo existingActivity = FindActiveActivity(fullActivityName, currentActivity);
+ if (existingActivity != null)
+ {
+ //
+ OnStop(providerName, activityName, task, ref activityId);
+ currentActivity = m_current.Value;
+ }
+ }
+ }
+
+ // Get a unique ID for this activity.
+ long id;
+ if (currentActivity == null)
+ id = Interlocked.Increment(ref m_nextId);
+ else
+ id = Interlocked.Increment(ref currentActivity.m_lastChildID);
+
+ // Remember the previous ID so we can log it
+ relatedActivityId = currentActivity != null ? currentActivity.ActivityId : Guid.Empty;
+
+ // Add to the list of started but not stopped activities.
+ ActivityInfo newActivity = new ActivityInfo(fullActivityName, id, currentActivity, options);
+ m_current.Value = newActivity;
+
+ // Remember the current ID so we can log it
+ activityId = newActivity.ActivityId;
+
+ if (etwLog.Debug)
+ {
+ etwLog.DebugFacilityMessage("OnStartRetActivityState", ActivityInfo.LiveActivities(newActivity));
+ etwLog.DebugFacilityMessage1("OnStartRet", activityId.ToString(), relatedActivityId.ToString());
+ }
+ }
+
+ /// <summary>
+ /// Called when a work item stops. The activity name = providerName + activityName without 'Stop' suffix.
+ /// It updates CurrentActivityId to track this fact. The Stop event associated with stop should log the ActivityID associated with the event.
+ ///
+ /// If activity tracing is not on, then activityId and relatedActivityId are not set
+ /// </summary>
+ public void OnStop(string providerName, string activityName, int task, ref Guid activityId)
+ {
+ if (m_current == null) // We are not enabled
+ return;
+
+ var fullActivityName = NormalizeActivityName(providerName, activityName, task);
+
+ var etwLog = TplEtwProvider.Log;
+ if (etwLog.Debug)
+ {
+ etwLog.DebugFacilityMessage("OnStopEnter", fullActivityName);
+ etwLog.DebugFacilityMessage("OnStopEnterActivityState", ActivityInfo.LiveActivities(m_current.Value));
+ }
+
+ for (; ;) // This is a retry loop.
+ {
+ ActivityInfo currentActivity = m_current.Value;
+ ActivityInfo newCurrentActivity = null; // if we have seen any live activities (orphans), at he first one we have seen.
+
+ // Search to find the activity to stop in one pass. This insures that we don't let one mistake
+ // (stopping something that was not started) cause all active starts to be stopped
+ // By first finding the target start to stop we are more robust.
+ ActivityInfo activityToStop = FindActiveActivity(fullActivityName, currentActivity);
+
+ // ignore stops where we can't find a start because we may have popped them previously.
+ if (activityToStop == null)
+ {
+ activityId = Guid.Empty;
+ //
+ if (etwLog.Debug)
+ etwLog.DebugFacilityMessage("OnStopRET", "Fail");
+ return;
+ }
+
+ activityId = activityToStop.ActivityId;
+
+ // See if there are any orphans that need to be stopped.
+ ActivityInfo orphan = currentActivity;
+ while (orphan != activityToStop && orphan != null)
+ {
+ if (orphan.m_stopped != 0) // Skip dead activities.
+ {
+ orphan = orphan.m_creator;
+ continue;
+ }
+ if (orphan.CanBeOrphan())
+ {
+ // We can't pop anything after we see a valid orphan, remember this for later when we update m_current.
+ if (newCurrentActivity == null)
+ newCurrentActivity = orphan;
+ }
+ else
+ {
+ orphan.m_stopped = 1;
+ Contract.Assert(orphan.m_stopped != 0);
+ }
+ orphan = orphan.m_creator;
+ }
+
+ // try to Stop the activity atomically. Other threads may be trying to do this as well.
+ if (Interlocked.CompareExchange(ref activityToStop.m_stopped, 1, 0) == 0)
+ {
+ // I succeeded stopping this activity. Now we update our m_current pointer
+
+ // If I haven't yet determined the new current activity, it is my creator.
+ if (newCurrentActivity == null)
+ newCurrentActivity = activityToStop.m_creator;
+
+ m_current.Value = newCurrentActivity;
+
+ if (etwLog.Debug)
+ {
+ etwLog.DebugFacilityMessage("OnStopRetActivityState", ActivityInfo.LiveActivities(newCurrentActivity));
+ etwLog.DebugFacilityMessage("OnStopRet", activityId.ToString());
+ }
+ return;
+ }
+ // We failed to stop it. We must have hit a ---- to stop it. Just start over and try again.
+ }
+ }
+
+ /// <summary>
+ /// Turns on activity tracking. It is sticky, once on it stays on (---- issues otherwise)
+ /// </summary>
+ [System.Security.SecuritySafeCritical]
+ public void Enable()
+ {
+ if (m_current == null)
+ {
+ m_current = new AsyncLocal<ActivityInfo>(ActivityChanging);
+ }
+ }
+
+ /// <summary>
+ /// An activity tracker is a singleton, this is how you get the one and only instance.
+ /// </summary>
+ public static ActivityTracker Instance { get { return s_activityTrackerInstance; } }
+
+
+ #region private
+
+ /// <summary>
+ /// The current activity ID. Use this to log normal events.
+ /// </summary>
+ private Guid CurrentActivityId { get { return m_current.Value.ActivityId; } }
+
+ /// <summary>
+ /// Searched for a active (nonstopped) activity with the given name. Returns null if not found.
+ /// </summary>
+ private ActivityInfo FindActiveActivity(string name, ActivityInfo startLocation)
+ {
+ var activity = startLocation;
+ while (activity != null)
+ {
+ if (name == activity.m_name && activity.m_stopped == 0)
+ return activity;
+ activity = activity.m_creator;
+ }
+ return null;
+ }
+
+ /// <summary>
+ /// Strip out "Start" or "End" suffix from activity name and add providerName prefix.
+ /// If 'task' it does not end in Start or Stop and Task is non-zero use that as the name of the activity
+ /// </summary>
+ private string NormalizeActivityName(string providerName, string activityName, int task)
+ {
+ if (activityName.EndsWith(EventSource.s_ActivityStartSuffix))
+ activityName = activityName.Substring(0, activityName.Length - EventSource.s_ActivityStartSuffix.Length);
+ else if (activityName.EndsWith(EventSource.s_ActivityStopSuffix))
+ activityName = activityName.Substring(0, activityName.Length - EventSource.s_ActivityStopSuffix.Length);
+ else if (task != 0)
+ activityName = "task" + task.ToString();
+
+ // We use provider name to distinguish between activities from different providers.
+ return providerName + activityName;
+ }
+
+ // *******************************************************************************
+ /// <summary>
+ /// An ActivityInfo repesents a particular activity. It is almost read-only the only
+ /// fields that change after creation are
+ /// m_lastChildID - used to generate unique IDs for the children activities and for the most part can be ignored.
+ /// m_stopped - indicates that this activity is dead
+ /// This read-only ness is important because an activity's m_creator chain forms the
+ /// 'Path of creation' for the activity (which is also its unique ID) but is also used as
+ /// the 'list of live parents' which indicate of those ancestors, which are alive (if they
+ /// are not marked dead they are alive).
+ /// </summary>
+ private class ActivityInfo
+ {
+ public ActivityInfo(string name, long uniqueId, ActivityInfo creator, EventActivityOptions options)
+ {
+ m_name = name;
+ m_eventOptions = options;
+ m_creator = creator;
+ m_uniqueId = uniqueId;
+ m_level = creator != null ? creator.m_level + 1 : 0;
+
+ // Create a nice GUID that encodes the chain of activities that started this one.
+ CreateActivityPathGuid(out m_guid, out m_activityPathGuidOffset);
+ }
+
+ public Guid ActivityId
+ {
+ get
+ {
+ return m_guid;
+ }
+ }
+
+ public static string Path(ActivityInfo activityInfo)
+ {
+ if (activityInfo == null)
+ return("");
+ return Path(activityInfo.m_creator) + "/" + activityInfo.m_uniqueId;
+ }
+
+ public override string ToString()
+ {
+ string dead = "";
+ if (m_stopped != 0)
+ dead = ",DEAD";
+ return m_name + "(" + Path(this) + dead + ")";
+ }
+
+ public static string LiveActivities(ActivityInfo list)
+ {
+ if (list == null)
+ return "";
+ return list.ToString() + ";" + LiveActivities(list.m_creator);
+ }
+
+ public bool CanBeOrphan()
+ {
+ if ((m_eventOptions & EventActivityOptions.Detachable) != 0)
+ return true;
+ return false;
+ }
+
+ #region private
+
+ #region CreateActivityPathGuid
+ /// <summary>
+ /// Logically every activity Path (see Path()) that describes the activities that caused this
+ /// (rooted in an activity that predates activity tracking.
+ ///
+ /// We wish to encode this path in the Guid to the extent that we can. Many of the paths have
+ /// many small numbers in them and we take advatage of this in the encoding to output as long
+ /// a path in the GUID as possible.
+ ///
+ /// Because of the possiblility of GUID collistion, we only use 96 of the 128 bits of the GUID
+ /// for encoding the path. The last 32 bits are a simple checksum (and random number) that
+ /// identifies this as using the convention defined here.
+ ///
+ /// It returns both the GUID which has the path as well as the offset that points just beyond
+ /// the end of the activity (so it can be appended to). Note that if the end is in a nibble
+ /// (it uses nibbles instead of bytes as the unit of encoding, then it will point at the unfinished
+ /// byte (since the top nibble can't be zero you can determine if this is true by seeing if
+ /// this byte is nonZero. This offset is needed to efficiently create the ID for child activities.
+ /// </summary>
+ [System.Security.SecuritySafeCritical]
+ private unsafe void CreateActivityPathGuid(out Guid idRet, out int activityPathGuidOffset)
+ {
+ fixed (Guid* outPtr = &idRet)
+ {
+ int activityPathGuidOffsetStart = 0;
+ if (m_creator != null)
+ {
+ activityPathGuidOffsetStart = m_creator.m_activityPathGuidOffset;
+ idRet = m_creator.m_guid;
+ }
+ else
+ {
+ // We start with the appdomain number to make this unique among appdomains.
+ activityPathGuidOffsetStart = AddIdToGuid(outPtr, activityPathGuidOffsetStart, (uint) System.Threading.Thread.GetDomainID());
+ }
+
+ activityPathGuidOffset = AddIdToGuid(outPtr, activityPathGuidOffsetStart, (uint) m_uniqueId);
+
+
+ // If the path does not fit, Make a GUID by incrementing rather than as a path, keeping as much of the path as possible
+ if (12 < activityPathGuidOffset)
+ CreateOverflowGuid(outPtr);
+ }
+ }
+
+ /// <summary>
+ /// If we can't fit the activity Path into the GUID we come here. What we do is simply
+ /// generate a 4 byte number (s_nextOverflowId). Then look for an anscesor that has
+ /// sufficient space for this ID. By doing this, we preserve the fact that this activity
+ /// is a child (of unknown depth) from that ancestor.
+ /// </summary>
+ [System.Security.SecurityCritical]
+ private unsafe void CreateOverflowGuid(Guid* outPtr)
+ {
+ // Seach backwards for an ancestor that has sufficient space to put the ID.
+ for(ActivityInfo ancestor = m_creator; ancestor != null; ancestor = ancestor.m_creator)
+ {
+ if (ancestor.m_activityPathGuidOffset <= 10) // we need at least 2 bytes.
+ {
+ uint id = (uint) Interlocked.Increment(ref ancestor.m_lastChildID); // Get a unique ID
+ // Try to put the ID into the GUID
+ *outPtr = ancestor.m_guid;
+ int endId = AddIdToGuid(outPtr, ancestor.m_activityPathGuidOffset, id, true);
+
+ // Does it fit?
+ if (endId <= 12)
+ break;
+ }
+ }
+ }
+
+ /// <summary>
+ /// The encoding for a list of numbers used to make Activity Guids. Basically
+ /// we operate on nibbles (which are nice becase they show up as hex digits). The
+ /// list is ended with a end nibble (0) and depending on the nibble value (Below)
+ /// the value is either encoded into nibble itself or it can spill over into the
+ /// bytes that follow.
+ /// </summary>
+ enum NumberListCodes : byte
+ {
+ End = 0x0, // ends the list. No valid value has this prefix.
+ LastImmediateValue = 0xA,
+
+ PrefixCode = 0xB, // all the 'long' encodings go here. If the next nibble is MultiByte1-4
+ // than this is a 'overflow' id. Unlike the hierarchitcal IDs these are
+ // allocated densly but don't tell you anything about nesting. we use
+ // these when we run out of space in the GUID to store the path.
+
+ MultiByte1 = 0xC, // 1 byte follows. If this Nibble is in the high bits, it the high bits of the number are stored in the low nibble.
+ // commented out because the code does not explicitly reference the names (but they are logically defined).
+ // MultiByte2 = 0xD, // 2 bytes follow (we don't bother with the nibble optimzation)
+ // MultiByte3 = 0xE, // 3 bytes follow (we don't bother with the nibble optimzation)
+ // MultiByte4 = 0xF, // 4 bytes follow (we don't bother with the nibble optimzation)
+ }
+
+ /// Add the acivity id 'id' to the output Guid 'outPtr' starting at the offset 'whereToAddId'
+ /// Thus if this number is 6 that is where 'id' will be added. This will return 13 (12
+ /// is the maximum number of bytes that fit in a GUID) if the path did not fit.
+ /// If 'overflow' is true, then the number is encoded as an 'overflow number (which has a
+ /// special (longer prefix) that indicates that this ID is allocated differently
+ [System.Security.SecurityCritical]
+ private static unsafe int AddIdToGuid(Guid* outPtr, int whereToAddId, uint id, bool overflow = false)
+ {
+ byte* ptr = (byte*)outPtr;
+ byte* endPtr = ptr + 12;
+ ptr += whereToAddId;
+ if (endPtr <= ptr)
+ return 13; // 12 means we might exactly fit, 13 means we definately did not fit
+
+ if (0 < id && id <= (uint)NumberListCodes.LastImmediateValue && !overflow)
+ WriteNibble(ref ptr, endPtr, id);
+ else
+ {
+ uint len = 4;
+ if (id <= 0xFF)
+ len = 1;
+ else if (id <= 0xFFFF)
+ len = 2;
+ else if (id <= 0xFFFFFF)
+ len = 3;
+
+ if (overflow)
+ {
+ if (endPtr <= ptr + 2) // I need at least 2 bytes
+ return 13;
+
+ // Write out the prefix code nibble and the length nibble
+ WriteNibble(ref ptr, endPtr, (uint) NumberListCodes.PrefixCode);
+ }
+ // The rest is the same for overflow and non-overflow case
+ WriteNibble(ref ptr, endPtr, (uint)NumberListCodes.MultiByte1 + (len - 1));
+
+ // Do we have an odd nibble? If so flush it or use it for the 12 byte case.
+ if (ptr < endPtr && *ptr != 0)
+ {
+ // If the value < 4096 we can use the nibble we are otherwise just outputing as padding.
+ if (id < 4096)
+ {
+ // Indicate this is a 1 byte multicode with 4 high order bits in the lower nibble.
+ *ptr = (byte)(((uint)NumberListCodes.MultiByte1 << 4) + (id >> 8));
+ id &= 0xFF; // Now we only want the low order bits.
+ }
+ ptr++;
+ }
+
+ // Write out the bytes.
+ while(0 < len)
+ {
+ if (endPtr <= ptr)
+ {
+ ptr++; // Indicate that we have overflowed
+ break;
+ }
+ *ptr++ = (byte)id;
+ id = (id >> 8);
+ --len;
+ }
+ }
+
+ // Compute the checksum
+ uint* sumPtr = (uint*)outPtr;
+ // We set the last DWORD the sum of the first 3 DWORDS in the GUID. This
+ sumPtr[3] = sumPtr[0] + sumPtr[1] + sumPtr[2] + 0x599D99AD; // This last number is a random number (it identifies us as us)
+
+ return (int)(ptr - ((byte*)outPtr));
+ }
+
+ /// <summary>
+ /// Write a single Nible 'value' (must be 0-15) to the byte buffer represented by *ptr.
+ /// Will not go past 'endPtr'. Also it assumes that we never write 0 so we can detect
+ /// whether a nibble has already been written to ptr because it will be nonzero.
+ /// Thus if it is non-zero it adds to the current byte, otherwise it advances and writes
+ /// the new byte (in the high bits) of the next byte.
+ /// </summary>
+ [System.Security.SecurityCritical]
+ private static unsafe void WriteNibble(ref byte* ptr, byte* endPtr, uint value)
+ {
+ Contract.Assert(0 <= value && value < 16);
+ Contract.Assert(ptr < endPtr);
+
+ if (*ptr != 0)
+ *ptr++ |= (byte)value;
+ else
+ *ptr = (byte)(value << 4);
+ }
+
+ #endregion // CreateGuidForActivityPath
+
+ readonly internal string m_name; // The name used in the 'start' and 'stop' APIs to help match up
+ readonly long m_uniqueId; // a small number that makes this activity unique among its siblings
+ internal readonly Guid m_guid; // Activity Guid, it is bascially an encoding of the Path() (see CreateActivityPathGuid)
+ internal readonly int m_activityPathGuidOffset; // Keeps track of where in m_guid the causality path stops (used to generated child GUIDs)
+ internal readonly int m_level; // current depth of the Path() of the activity (used to keep recursion under control)
+ readonly internal EventActivityOptions m_eventOptions; // Options passed to start.
+ internal long m_lastChildID; // used to create a unique ID for my children activities
+ internal int m_stopped; // This work item has stopped
+ readonly internal ActivityInfo m_creator; // My parent (creator). Forms the Path() for the activity.
+ #endregion
+ }
+
+ // This callback is used to initialize the m_current AsyncLocal Variable.
+ // Its job is to keep the ETW Activity ID (part of thread local storage) in sync
+ // with m_current.ActivityID
+ void ActivityChanging(AsyncLocalValueChangedArgs<ActivityInfo> args)
+ {
+ if (args.PreviousValue == args.CurrentValue)
+ return;
+
+ if (args.CurrentValue != null)
+ {
+ // Allow subsequent activities inside this thread to automatically get the current activity ID.
+ EventSource.SetCurrentThreadActivityId(args.CurrentValue.ActivityId);
+ }
+ else
+ EventSource.SetCurrentThreadActivityId(Guid.Empty);
+ }
+
+ /// <summary>
+ /// Async local variables have the propery that the are automatically copied whenever a task is created and used
+ /// while that task is running. Thus m_current 'flows' to any task that is caused by the current thread that
+ /// last set it.
+ ///
+ /// This variable points a a linked list that represents all Activities that have started but have not stopped.
+ /// </summary>
+ AsyncLocal<ActivityInfo> m_current;
+
+ // Singleton
+ private static ActivityTracker s_activityTrackerInstance = new ActivityTracker();
+
+ // Used to create unique IDs at the top level. Not used for nested Ids (each activity has its own id generator)
+ static long m_nextId = 0;
+ private const ushort MAX_ACTIVITY_DEPTH = 100; // Limit maximum depth of activities to be tracked at 100.
+ // This will avoid leaking memory in case of activities that are never stopped.
+
+ #endregion
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventactivityoptions.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventactivityoptions.cs
new file mode 100644
index 00000000000..0562c2f8959
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventactivityoptions.cs
@@ -0,0 +1,40 @@
+//------------------------------------------------------------------------------
+// <copyright file="etwprovider.cs" company="Microsoft">
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// </copyright>
+//------------------------------------------------------------------------------
+using System;
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// EventActivityOptions flags allow to specify different activity related characteristics.
+ /// </summary>
+ [Flags]
+ public enum EventActivityOptions
+ {
+ /// <summary>
+ /// No special options are added to the event.
+ /// </summary>
+ None = 0,
+
+ /// <summary>
+ /// Disable Implicit Activity Tracking
+ /// </summary>
+ Disable = 0x2,
+
+ /// <summary>
+ /// Allow activity event to call itself (directly or indirectly)
+ /// </summary>
+ Recursive = 0x4,
+
+ /// <summary>
+ /// Allows event activity to live beyond its parent.
+ /// </summary>
+ Detachable = 0x8
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventdescriptor.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventdescriptor.cs
index 665e7bc0b1a..60eae4d2d7d 100644
--- a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventdescriptor.cs
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventdescriptor.cs
@@ -2,13 +2,26 @@
// <copyright file="etwprovider.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//------------------------------------------------------------------------------
using System;
using System.Runtime.InteropServices;
-using System.Diagnostics.Contracts;
+#if ES_BUILD_STANDALONE
+using Environment = Microsoft.Diagnostics.Tracing.Internal.Environment;
+#endif
+
+#if !ES_BUILD_AGAINST_DOTNET_V35
+using Contract = System.Diagnostics.Contracts.Contract;
+#else
+using Contract = Microsoft.Diagnostics.Contracts.Internal.Contract;
+#endif
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
namespace System.Diagnostics.Tracing
+#endif
{
[StructLayout(LayoutKind.Explicit, Size = 16)]
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
@@ -16,6 +29,8 @@ namespace System.Diagnostics.Tracing
{
# region private
[FieldOffset(0)]
+ private int m_traceloggingId;
+ [FieldOffset(0)]
private ushort m_id;
[FieldOffset(2)]
private byte m_version;
@@ -32,6 +47,23 @@ namespace System.Diagnostics.Tracing
#endregion
public EventDescriptor(
+ int traceloggingId,
+ byte level,
+ byte opcode,
+ long keywords
+ )
+ {
+ this.m_id = 0;
+ this.m_version = 0;
+ this.m_channel = 0;
+ this.m_traceloggingId = traceloggingId;
+ this.m_level = level;
+ this.m_opcode = opcode;
+ this.m_task = 0;
+ this.m_keywords = keywords;
+ }
+
+ public EventDescriptor(
int id,
byte version,
byte channel,
@@ -51,6 +83,7 @@ namespace System.Diagnostics.Tracing
throw new ArgumentOutOfRangeException("id", Environment.GetResourceString("ArgumentOutOfRange_NeedValidId", 1, ushort.MaxValue));
}
+ m_traceloggingId = 0;
m_id = (ushort)id;
m_version = version;
m_channel = channel;
@@ -58,12 +91,12 @@ namespace System.Diagnostics.Tracing
m_opcode = opcode;
m_keywords = keywords;
- if (id < 0)
+ if (task < 0)
{
throw new ArgumentOutOfRangeException("task", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
}
- if (id > ushort.MaxValue)
+ if (task > ushort.MaxValue)
{
throw new ArgumentOutOfRangeException("task", Environment.GetResourceString("ArgumentOutOfRange_NeedValidId", 1, ushort.MaxValue));
}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventprovider.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventprovider.cs
index b4b5df2f8cb..8a3fec6e6f4 100644
--- a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventprovider.cs
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventprovider.cs
@@ -2,14 +2,11 @@
// <copyright file="etwprovider.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
-// <OWNER>[....]</OWNER>
//------------------------------------------------------------------------------
using Microsoft.Win32;
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
-using System.Diagnostics.Contracts;
-using System.Diagnostics.Tracing;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Security;
@@ -17,7 +14,21 @@ using System.Security.Permissions;
using System.Threading;
using System;
+#if !ES_BUILD_AGAINST_DOTNET_V35
+using Contract = System.Diagnostics.Contracts.Contract;
+#else
+using Contract = Microsoft.Diagnostics.Contracts.Internal.Contract;
+#endif
+
+#if ES_BUILD_AGAINST_DOTNET_V35
+using Microsoft.Internal; // for Tuple (can't define alias for open generic types so we "use" the whole namespace)
+#endif
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
namespace System.Diagnostics.Tracing
+#endif
{
// New in CLR4.0
internal enum ControllerCommand
@@ -63,6 +74,8 @@ namespace System.Diagnostics.Tracing
{ sessionIdBit = sessionIdBit_; etwSessionId = etwSessionId_; }
}
+ private static bool m_setInformationMissing;
+
[SecurityCritical]
UnsafeNativeMethods.ManifestEtw.EtwEnableCallback m_etwCallback; // Trace Callback function
private long m_regHandle; // Trace Registration Handle
@@ -72,14 +85,14 @@ namespace System.Diagnostics.Tracing
private List<SessionInfo> m_liveSessions; // current live sessions (Tuple<sessionIdBit, etwSessionId>)
private bool m_enabled; // Enabled flag from Trace callback
private Guid m_providerId; // Control Guid
- private int m_disposed; // when 1, provider has unregister
+ internal bool m_disposed; // when true provider has unregistered
[ThreadStatic]
private static WriteEventErrorCode s_returnCode; // The last return code
private const int s_basicTypeAllocationBufferSize = 16;
- private const int s_etwMaxMumberArguments = 32;
- private const int s_etwAPIMaxStringCount = 8;
+ private const int s_etwMaxNumberArguments = 32;
+ private const int s_etwAPIMaxRefObjCount = 8;
private const int s_maxEventDataDescriptors = 128;
private const int s_traceEventMaximumSize = 65482;
private const int s_traceEventMaximumStringSize = 32724;
@@ -146,6 +159,33 @@ namespace System.Diagnostics.Tracing
}
}
+ [System.Security.SecurityCritical]
+ internal unsafe int SetInformation(
+ UnsafeNativeMethods.ManifestEtw.EVENT_INFO_CLASS eventInfoClass,
+ void* data,
+ int dataSize)
+ {
+ int status = UnsafeNativeMethods.ManifestEtw.ERROR_NOT_SUPPORTED;
+
+ if (!m_setInformationMissing)
+ {
+ try
+ {
+ status = UnsafeNativeMethods.ManifestEtw.EventSetInformation(
+ m_regHandle,
+ eventInfoClass,
+ data,
+ dataSize);
+ }
+ catch (TypeLoadException)
+ {
+ m_setInformationMissing = true;
+ }
+ }
+
+ return status;
+ }
+
//
// implement Dispose Pattern to early deregister from ETW insted of waiting for
// the finalizer to call deregistration.
@@ -174,21 +214,21 @@ namespace System.Diagnostics.Tracing
//
// check if the object has been allready disposed
//
- if (m_disposed == 1) return;
-
- if (Interlocked.Exchange(ref m_disposed, 1) != 0)
- {
- // somebody is allready disposing the provider
- return;
- }
-
- //
- // Disables Tracing in the provider, then unregister
- //
+ if (m_disposed) return;
+ // Disable the provider.
m_enabled = false;
- Deregister();
+ // Do most of the work under a lock to avoid shutdown ----.
+ lock (EventListener.EventListenersLock)
+ {
+ // Double check
+ if (m_disposed)
+ return;
+
+ Deregister();
+ m_disposed = true;
+ }
}
/// <summary>
@@ -242,87 +282,77 @@ namespace System.Diagnostics.Tracing
[In] void* callbackContext
)
{
- ControllerCommand command = ControllerCommand.Update;
- IDictionary<string, string> args = null;
- byte[] data;
- int keyIndex;
- bool skipFinalOnControllerCommand = false;
- EventSource.OutputDebugString(string.Format("EtwEnableCallBack(ctrl {0}, lvl {1}, any {2:x}, all {3:x})",
- controlCode, setLevel, anyKeyword, allKeyword));
- if (controlCode == UnsafeNativeMethods.ManifestEtw.EVENT_CONTROL_CODE_ENABLE_PROVIDER)
+ // This is an optional callback API. We will therefore ignore any failures that happen as a
+ // result of turning on this provider as to not crash the app.
+ // EventSource has code to validate whther initialization it expected to occur actually occurred
+ try
{
- m_enabled = true;
- m_level = setLevel;
- m_anyKeywordMask = anyKeyword;
- m_allKeywordMask = allKeyword;
-
- List<Tuple<SessionInfo, bool>> sessionsChanged = GetSessions();
- foreach (var session in sessionsChanged)
+ ControllerCommand command = ControllerCommand.Update;
+ IDictionary<string, string> args = null;
+ byte[] data;
+ int keyIndex;
+ bool skipFinalOnControllerCommand = false;
+ if (controlCode == UnsafeNativeMethods.ManifestEtw.EVENT_CONTROL_CODE_ENABLE_PROVIDER)
{
- int sessionChanged = session.Item1.sessionIdBit;
- int etwSessionId = session.Item1.etwSessionId;
- bool bEnabling = session.Item2;
+ m_enabled = true;
+ m_level = setLevel;
+ m_anyKeywordMask = anyKeyword;
+ m_allKeywordMask = allKeyword;
- EventSource.OutputDebugString(string.Format(CultureInfo.InvariantCulture, "EtwEnableCallBack: session changed {0}:{1}:{2}",
- sessionChanged, etwSessionId, bEnabling));
+ List<Tuple<SessionInfo, bool>> sessionsChanged = GetSessions();
+ foreach (var session in sessionsChanged)
+ {
+ int sessionChanged = session.Item1.sessionIdBit;
+ int etwSessionId = session.Item1.etwSessionId;
+ bool bEnabling = session.Item2;
- skipFinalOnControllerCommand = true;
- args = null; // reinitialize args for every session...
+ skipFinalOnControllerCommand = true;
+ args = null; // reinitialize args for every session...
- // if we get more than one session changed we have no way
- // of knowing which one "filterData" belongs to
- if (sessionsChanged.Count > 1)
- filterData = null;
+ // if we get more than one session changed we have no way
+ // of knowing which one "filterData" belongs to
+ if (sessionsChanged.Count > 1)
+ filterData = null;
- // read filter data only when a session is being *added*
- if (bEnabling &&
- GetDataFromController(etwSessionId, filterData, out command, out data, out keyIndex))
- {
- args = new Dictionary<string, string>(4);
- while (keyIndex < data.Length)
+ // read filter data only when a session is being *added*
+ if (bEnabling &&
+ GetDataFromController(etwSessionId, filterData, out command, out data, out keyIndex))
{
- int keyEnd = FindNull(data, keyIndex);
- int valueIdx = keyEnd + 1;
- int valueEnd = FindNull(data, valueIdx);
- if (valueEnd < data.Length)
+ args = new Dictionary<string, string>(4);
+ while (keyIndex < data.Length)
{
- string key = System.Text.Encoding.UTF8.GetString(data, keyIndex, keyEnd - keyIndex);
- string value = System.Text.Encoding.UTF8.GetString(data, valueIdx, valueEnd - valueIdx);
- args[key] = value;
+ int keyEnd = FindNull(data, keyIndex);
+ int valueIdx = keyEnd + 1;
+ int valueEnd = FindNull(data, valueIdx);
+ if (valueEnd < data.Length)
+ {
+ string key = System.Text.Encoding.UTF8.GetString(data, keyIndex, keyEnd - keyIndex);
+ string value = System.Text.Encoding.UTF8.GetString(data, valueIdx, valueEnd - valueIdx);
+ args[key] = value;
+ }
+ keyIndex = valueEnd + 1;
}
- keyIndex = valueEnd + 1;
}
- }
- // execute OnControllerCommand once for every session that has changed.
- try
- {
+ // execute OnControllerCommand once for every session that has changed.
OnControllerCommand(command, args, (bEnabling ? sessionChanged : -sessionChanged), etwSessionId);
}
- catch (Exception)
- {
- // We want to ignore any failures that happen as a result of turning on this provider as to
- // not crash the app.
- }
}
- }
- else if (controlCode == UnsafeNativeMethods.ManifestEtw.EVENT_CONTROL_CODE_DISABLE_PROVIDER)
- {
- m_enabled = false;
- m_level = 0;
- m_anyKeywordMask = 0;
- m_allKeywordMask = 0;
- m_liveSessions = null;
- }
- else if (controlCode == UnsafeNativeMethods.ManifestEtw.EVENT_CONTROL_CODE_CAPTURE_STATE)
- {
- command = ControllerCommand.SendManifest;
- }
- else
- return; // per spec you ignore commands you don't recognise.
+ else if (controlCode == UnsafeNativeMethods.ManifestEtw.EVENT_CONTROL_CODE_DISABLE_PROVIDER)
+ {
+ m_enabled = false;
+ m_level = 0;
+ m_anyKeywordMask = 0;
+ m_allKeywordMask = 0;
+ m_liveSessions = null;
+ }
+ else if (controlCode == UnsafeNativeMethods.ManifestEtw.EVENT_CONTROL_CODE_CAPTURE_STATE)
+ {
+ command = ControllerCommand.SendManifest;
+ }
+ else
+ return; // per spec you ignore commands you don't recognise.
- try
- {
if (!skipFinalOnControllerCommand)
OnControllerCommand(command, args, 0, 0);
}
@@ -336,8 +366,8 @@ namespace System.Diagnostics.Tracing
// New in CLR4.0
protected virtual void OnControllerCommand(ControllerCommand command, IDictionary<string, string> arguments, int sessionId, int etwSessionId) { }
protected EventLevel Level { get { return (EventLevel)m_level; } set { m_level = (byte)value; } }
- protected EventKeywords MatchAnyKeyword { get { return (EventKeywords)m_anyKeywordMask; } set { m_anyKeywordMask = (long)value; } }
- protected EventKeywords MatchAllKeyword { get { return (EventKeywords)m_allKeywordMask; } set { m_allKeywordMask = (long)value; } }
+ protected EventKeywords MatchAnyKeyword { get { return (EventKeywords)m_anyKeywordMask; } set { m_anyKeywordMask = unchecked((long)value); } }
+ protected EventKeywords MatchAllKeyword { get { return (EventKeywords)m_allKeywordMask; } set { m_allKeywordMask = unchecked((long)value); } }
static private int FindNull(byte[] buffer, int idx)
{
@@ -401,13 +431,13 @@ namespace System.Diagnostics.Tracing
/// <summary>
/// This method is the callback used by GetSessions() when it calls into GetSessionInfo().
- /// It updates a List<SessionInfo> based on the etwSessionId and matchAllKeywords that
+ /// It updates a List{SessionInfo} based on the etwSessionId and matchAllKeywords that
/// GetSessionInfo() passes in.
/// </summary>
private static void GetSessionInfoCallback(int etwSessionId, long matchAllKeywords,
ref List<SessionInfo> sessionList)
{
- uint sessionIdBitMask = (uint)SessionMask.FromEventKeywords((ulong)matchAllKeywords);
+ uint sessionIdBitMask = (uint)SessionMask.FromEventKeywords(unchecked((ulong)matchAllKeywords));
// an ETW controller that specifies more than the mandated bit for our EventSource
// will be ignored...
if (bitcount(sessionIdBitMask) > 1)
@@ -457,7 +487,7 @@ namespace System.Diagnostics.Tracing
var providerInfos = (UnsafeNativeMethods.ManifestEtw.TRACE_GUID_INFO*)buffer;
var providerInstance = (UnsafeNativeMethods.ManifestEtw.TRACE_PROVIDER_INSTANCE_INFO*)&providerInfos[1];
- int processId = (int)Win32Native.GetCurrentProcessId();
+ int processId = unchecked((int)Win32Native.GetCurrentProcessId());
// iterate over the instances of the EventProvider in all processes
for (int i = 0; i < providerInfos->InstanceCount; i++)
{
@@ -479,7 +509,7 @@ namespace System.Diagnostics.Tracing
/// <summary>
/// Returns the index of the SesisonInfo from 'sessions' that has the specified 'etwSessionId'
/// or -1 if the value is not present.
- /// <summary>
+ /// </summary>
private static int IndexOfSessionInList(List<SessionInfo> sessions, int etwSessionId)
{
if (sessions == null)
@@ -496,7 +526,7 @@ namespace System.Diagnostics.Tracing
/// <summary>
/// Gets any data to be passed from the controller to the provider. It starts with what is passed
/// into the callback, but unfortunately this data is only present for when the provider is active
- /// at the the time the controller issues the command. To allow for providers to activate after the
+ /// at the time the controller issues the command. To allow for providers to activate after the
/// controller issued a command, we also check the registry and use that to get the data. The function
/// returns an array of bytes representing the data, the index into that byte array where the data
/// starts, and the command being issued associated with that data.
@@ -509,6 +539,7 @@ namespace System.Diagnostics.Tracing
dataStart = 0;
if (filterData == null)
{
+#if !ES_BUILD_PCL
string regKey = @"\Microsoft\Windows\CurrentVersion\Winevt\Publishers\{" + m_providerId + "}";
if (System.Runtime.InteropServices.Marshal.SizeOf(typeof(IntPtr)) == 8)
regKey = @"HKEY_LOCAL_MACHINE\Software" + @"\Wow6432Node" + regKey;
@@ -518,8 +549,7 @@ namespace System.Diagnostics.Tracing
string valueName = "ControllerData_Session_" + etwSessionId.ToString(CultureInfo.InvariantCulture);
// we need to assert this permission for partial trust scenarios
- new RegistryPermission(RegistryPermissionAccess.Read, regKey).Assert();
-
+ (new RegistryPermission(RegistryPermissionAccess.Read, regKey)).Assert();
data = Microsoft.Win32.Registry.GetValue(regKey, valueName, null) as byte[];
if (data != null)
{
@@ -527,6 +557,7 @@ namespace System.Diagnostics.Tracing
command = ControllerCommand.Update;
return true;
}
+#endif
}
else
{
@@ -554,10 +585,10 @@ namespace System.Diagnostics.Tracing
/// <summary>
/// IsEnabled, method used to test if event is enabled
/// </summary>
- /// <param name="Lvl">
+ /// <param name="level">
/// Level to test
/// </param>
- /// <param name="Keyword">
+ /// <param name="keywords">
/// Keyword to test
/// </param>
public bool IsEnabled(byte level, long keywords)
@@ -590,6 +621,11 @@ namespace System.Diagnostics.Tracing
return false;
}
+ // There's a small window of time in EventSource code where m_provider is non-null but the
+ // m_regHandle has not been set yet. This method allows EventSource to check if this is the case...
+ internal bool IsValid()
+ { return m_regHandle != 0; }
+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate")]
public static WriteEventErrorCode GetLastWriteEventError()
{
@@ -634,7 +670,7 @@ namespace System.Diagnostics.Tracing
// <UsesUnsafeCode Name="Parameter dataBuffer of type: Byte*" />
// </SecurityKernel>
[System.Security.SecurityCritical]
- private static unsafe string EncodeObject(ref object data, EventData* dataDescriptor, byte* dataBuffer)
+ private static unsafe object EncodeObject(ref object data, ref EventData* dataDescriptor, ref byte* dataBuffer, ref uint totalEventSize)
/*++
Routine Description:
@@ -646,13 +682,14 @@ namespace System.Diagnostics.Tracing
data - argument to be decoded
- dataDescriptor - pointer to the descriptor to be filled
+ dataDescriptor - pointer to the descriptor to be filled (updated to point to the next empty entry)
dataBuffer - storage buffer for storing user data, needed because cant get the address of the object
+ (updated to point to the next empty entry)
Return Value:
- null if the object is a basic type other than string. String otherwise
+ null if the object is a basic type other than string or byte[]. String otherwise
--*/
{
@@ -660,13 +697,26 @@ namespace System.Diagnostics.Tracing
dataDescriptor->Reserved = 0;
string sRet = data as string;
+ byte[] blobRet = null;
+
if (sRet != null)
{
- dataDescriptor->Size = (uint)((sRet.Length + 1) * 2);
- return sRet;
+ dataDescriptor->Size = ((uint)sRet.Length + 1) * 2;
}
+ else if ((blobRet = data as byte[]) != null)
+ {
+ // first store array length
+ *(int*)dataBuffer = blobRet.Length;
+ dataDescriptor->Ptr = (ulong)dataBuffer;
+ dataDescriptor->Size = 4;
+ totalEventSize += dataDescriptor->Size;
- if (data is IntPtr)
+ // then the array parameters
+ dataDescriptor++;
+ dataBuffer += s_basicTypeAllocationBufferSize;
+ dataDescriptor->Size = (uint)blobRet.Length;
+ }
+ else if (data is IntPtr)
{
dataDescriptor->Size = (uint)sizeof(IntPtr);
IntPtr* intptrPtr = (IntPtr*)dataBuffer;
@@ -781,7 +831,12 @@ namespace System.Diagnostics.Tracing
}
else if (data is DateTime)
{
- long dateTimeTicks = ((DateTime)data).ToFileTimeUtc();
+ const long UTCMinTicks = 504911232000000000;
+ long dateTimeTicks = 0;
+ // We cannot translate dates sooner than 1/1/1601 in UTC.
+ // To avoid getting an ArgumentOutOfRangeException we compare with 1/1/1601 DateTime ticks
+ if (((DateTime)data).Ticks > UTCMinTicks)
+ dateTimeTicks = ((DateTime)data).ToFileTimeUtc();
dataDescriptor->Size = (uint)sizeof(long);
long* longptr = (long*)dataBuffer;
*longptr = dateTimeTicks;
@@ -794,34 +849,53 @@ namespace System.Diagnostics.Tracing
Type underlyingType = Enum.GetUnderlyingType(data.GetType());
if (underlyingType == typeof(int))
{
+#if !ES_BUILD_PCL
data = ((IConvertible)data).ToInt32(null);
+#else
+ data = (int)data;
+#endif
goto Again;
}
else if (underlyingType == typeof(long))
{
+#if !ES_BUILD_PCL
data = ((IConvertible)data).ToInt64(null);
+#else
+ data = (long)data;
+#endif
goto Again;
}
}
- //To our eyes, everything else is a just a string
+ // To our eyes, everything else is a just a string
if (data == null)
sRet = "";
else
sRet = data.ToString();
- dataDescriptor->Size = (uint)((sRet.Length + 1) * 2);
- return sRet;
+ dataDescriptor->Size = ((uint)sRet.Length + 1) * 2;
}
- return null;
+ totalEventSize += dataDescriptor->Size;
+
+ // advance buffers
+ dataDescriptor++;
+ dataBuffer += s_basicTypeAllocationBufferSize;
+
+ return (object)sRet ?? (object)blobRet;
}
/// <summary>
/// WriteEvent, method to write a parameters with event schema properties
/// </summary>
- /// <param name="EventDescriptor">
+ /// <param name="eventDescriptor">
/// Event Descriptor for this event.
/// </param>
+ /// <param name="childActivityID">
+ /// childActivityID is marked as 'related' to the current activity ID.
+ /// </param>
+ /// <param name="eventPayload">
+ /// Payload for the ETW event.
+ /// </param>
// <SecurityKernel Critical="True" Ring="0">
// <CallsSuppressUnmanagedCode Name="UnsafeNativeMethods.ManifestEtw.EventWrite(System.Int64,EventDescriptor&,System.UInt32,System.Void*):System.UInt32" />
// <UsesUnsafeCode Name="Local dataBuffer of type: Byte*" />
@@ -842,7 +916,7 @@ namespace System.Diagnostics.Tracing
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification = "Performance-critical code")]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1045:DoNotPassTypesByReference")]
[System.Security.SecurityCritical]
- internal unsafe bool WriteEvent(ref EventDescriptor eventDescriptor, Guid* childActivityID, params object[] eventPayload)
+ internal unsafe bool WriteEvent(ref EventDescriptor eventDescriptor, Guid* activityID, Guid* childActivityID, params object[] eventPayload)
{
int status = 0;
@@ -853,7 +927,7 @@ namespace System.Diagnostics.Tracing
{
argCount = eventPayload.Length;
- if (argCount > s_etwMaxMumberArguments)
+ if (argCount > s_etwMaxNumberArguments)
{
s_returnCode = WriteEventErrorCode.TooManyArgs;
return false;
@@ -861,12 +935,12 @@ namespace System.Diagnostics.Tracing
uint totalEventSize = 0;
int index;
- int stringIndex = 0;
- List<int> stringPosition = new List<int>(s_etwAPIMaxStringCount);
- List<string> dataString = new List<string>(s_etwAPIMaxStringCount);
- EventData* userData = stackalloc EventData[argCount];
+ int refObjIndex = 0;
+ List<int> refObjPosition = new List<int>(s_etwAPIMaxRefObjCount);
+ List<object> dataRefObj = new List<object>(s_etwAPIMaxRefObjCount);
+ EventData* userData = stackalloc EventData[2 * argCount];
EventData* userDataPtr = (EventData*)userData;
- byte* dataBuffer = stackalloc byte[s_basicTypeAllocationBufferSize * argCount]; // Assume 16 chars for non-string argument
+ byte* dataBuffer = stackalloc byte[s_basicTypeAllocationBufferSize * 2 * argCount]; // Assume 16 chars for non-string argument
byte* currentBuffer = dataBuffer;
//
@@ -875,20 +949,30 @@ namespace System.Diagnostics.Tracing
// Calculates the total size of the event by adding the data descriptor
// size value set in EncodeObject method.
//
+ bool hasNonStringRefArgs = false;
for (index = 0; index < eventPayload.Length; index++)
{
if (eventPayload[index] != null)
{
- string isString;
- isString = EncodeObject(ref eventPayload[index], userDataPtr, currentBuffer);
- currentBuffer += s_basicTypeAllocationBufferSize;
- totalEventSize += userDataPtr->Size;
- userDataPtr++;
- if (isString != null)
+ object supportedRefObj;
+ supportedRefObj = EncodeObject(ref eventPayload[index], ref userDataPtr, ref currentBuffer, ref totalEventSize);
+
+ if (supportedRefObj != null)
{
- dataString.Add(isString);
- stringPosition.Add(index);
- stringIndex++;
+ // EncodeObject advanced userDataPtr to the next empty slot
+ int idx = (int)(userDataPtr - userData - 1);
+ if (!(supportedRefObj is string))
+ {
+ if (eventPayload.Length + idx + 1 - index > s_etwMaxNumberArguments)
+ {
+ s_returnCode = WriteEventErrorCode.TooManyArgs;
+ return false;
+ }
+ hasNonStringRefArgs = true;
+ }
+ dataRefObj.Add(supportedRefObj);
+ refObjPosition.Add(idx);
+ refObjIndex++;
}
}
else
@@ -898,68 +982,69 @@ namespace System.Diagnostics.Tracing
}
}
+ // update argCount based on ctual number of arguments written to 'userData'
+ argCount = (int)(userDataPtr - userData);
+
if (totalEventSize > s_traceEventMaximumSize)
{
s_returnCode = WriteEventErrorCode.EventTooBig;
return false;
}
- if (stringIndex < s_etwAPIMaxStringCount)
+ // the optimized path (using "fixed" instead of allocating pinned GCHandles
+ if (!hasNonStringRefArgs && (refObjIndex < s_etwAPIMaxRefObjCount))
{
// Fast path: at most 8 string arguments
// ensure we have at least s_etwAPIMaxStringCount in dataString, so that
// the "fixed" statement below works
- while (stringIndex < s_etwAPIMaxStringCount)
+ while (refObjIndex < s_etwAPIMaxRefObjCount)
{
- dataString.Add(null);
- ++stringIndex;
+ dataRefObj.Add(null);
+ ++refObjIndex;
}
//
// now fix any string arguments and set the pointer on the data descriptor
//
- fixed (char* v0 = dataString[0], v1 = dataString[1], v2 = dataString[2], v3 = dataString[3],
- v4 = dataString[4], v5 = dataString[5], v6 = dataString[6], v7 = dataString[7])
+ fixed (char* v0 = (string)dataRefObj[0], v1 = (string)dataRefObj[1], v2 = (string)dataRefObj[2], v3 = (string)dataRefObj[3],
+ v4 = (string)dataRefObj[4], v5 = (string)dataRefObj[5], v6 = (string)dataRefObj[6], v7 = (string)dataRefObj[7])
{
userDataPtr = (EventData*)userData;
- if (dataString[0] != null)
+ if (dataRefObj[0] != null)
{
- userDataPtr[stringPosition[0]].Ptr = (ulong)v0;
+ userDataPtr[refObjPosition[0]].Ptr = (ulong)v0;
}
- if (dataString[1] != null)
+ if (dataRefObj[1] != null)
{
- userDataPtr[stringPosition[1]].Ptr = (ulong)v1;
+ userDataPtr[refObjPosition[1]].Ptr = (ulong)v1;
}
- if (dataString[2] != null)
+ if (dataRefObj[2] != null)
{
- userDataPtr[stringPosition[2]].Ptr = (ulong)v2;
+ userDataPtr[refObjPosition[2]].Ptr = (ulong)v2;
}
- if (dataString[3] != null)
+ if (dataRefObj[3] != null)
{
- userDataPtr[stringPosition[3]].Ptr = (ulong)v3;
+ userDataPtr[refObjPosition[3]].Ptr = (ulong)v3;
}
- if (dataString[4] != null)
+ if (dataRefObj[4] != null)
{
- userDataPtr[stringPosition[4]].Ptr = (ulong)v4;
+ userDataPtr[refObjPosition[4]].Ptr = (ulong)v4;
}
- if (dataString[5] != null)
+ if (dataRefObj[5] != null)
{
- userDataPtr[stringPosition[5]].Ptr = (ulong)v5;
+ userDataPtr[refObjPosition[5]].Ptr = (ulong)v5;
}
- if (dataString[6] != null)
+ if (dataRefObj[6] != null)
{
- userDataPtr[stringPosition[6]].Ptr = (ulong)v6;
+ userDataPtr[refObjPosition[6]].Ptr = (ulong)v6;
}
- if (dataString[7] != null)
+ if (dataRefObj[7] != null)
{
- userDataPtr[stringPosition[7]].Ptr = (ulong)v7;
+ userDataPtr[refObjPosition[7]].Ptr = (ulong)v7;
}
- if (childActivityID == null)
- status = UnsafeNativeMethods.ManifestEtw.EventWrite(m_regHandle, ref eventDescriptor, argCount, userData);
- else
- status = UnsafeNativeMethods.ManifestEtw.EventWriteTransfer(m_regHandle, ref eventDescriptor, null, childActivityID, argCount, userData);
+ status = UnsafeNativeMethods.ManifestEtw.EventWriteTransferWrapper(m_regHandle, ref eventDescriptor, activityID, childActivityID, argCount, userData);
}
}
else
@@ -967,25 +1052,31 @@ namespace System.Diagnostics.Tracing
// Slow path: use pinned handles
userDataPtr = (EventData*)userData;
- GCHandle[] rgGCHandle = new GCHandle[stringIndex];
- for (int i = 0; i < stringIndex; ++i)
+ GCHandle[] rgGCHandle = new GCHandle[refObjIndex];
+ for (int i = 0; i < refObjIndex; ++i)
{
- rgGCHandle[i] = GCHandle.Alloc(dataString[i], GCHandleType.Pinned);
- fixed (char* p = dataString[i])
- userDataPtr[stringPosition[i]].Ptr = (ulong)p;
+ // below we still use "fixed" to avoid taking dependency on the offset of the first field
+ // in the object (the way we would need to if we used GCHandle.AddrOfPinnedObject)
+ rgGCHandle[i] = GCHandle.Alloc(dataRefObj[i], GCHandleType.Pinned);
+ if (dataRefObj[i] is string)
+ {
+ fixed (char* p = (string)dataRefObj[i])
+ userDataPtr[refObjPosition[i]].Ptr = (ulong)p;
+ }
+ else
+ {
+ fixed (byte* p = (byte[])dataRefObj[i])
+ userDataPtr[refObjPosition[i]].Ptr = (ulong)p;
+ }
}
- if (childActivityID == null)
- status = UnsafeNativeMethods.ManifestEtw.EventWrite(m_regHandle, ref eventDescriptor, argCount, userData);
- else
- status = UnsafeNativeMethods.ManifestEtw.EventWriteTransfer(m_regHandle, ref eventDescriptor, null, childActivityID, argCount, userData);
+ status = UnsafeNativeMethods.ManifestEtw.EventWriteTransferWrapper(m_regHandle, ref eventDescriptor, activityID, childActivityID, argCount, userData);
- for (int i = 0; i < stringIndex; ++i)
+ for (int i = 0; i < refObjIndex; ++i)
{
rgGCHandle[i].Free();
}
}
-
}
}
@@ -1019,20 +1110,19 @@ namespace System.Diagnostics.Tracing
// </SecurityKernel>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1045:DoNotPassTypesByReference")]
[System.Security.SecurityCritical]
- internal unsafe protected bool WriteEvent(ref EventDescriptor eventDescriptor, Guid* childActivityID, int dataCount, IntPtr data)
+ internal unsafe protected bool WriteEvent(ref EventDescriptor eventDescriptor, Guid* activityID, Guid* childActivityID, int dataCount, IntPtr data)
{
- int status;
- if (childActivityID == null)
- {
- status = UnsafeNativeMethods.ManifestEtw.EventWrite(m_regHandle, ref eventDescriptor, dataCount, (EventData*)data);
- }
- else
+ if (childActivityID != null)
{
// activity transfers are supported only for events that specify the Send or Receive opcode
- Contract.Assert((EventOpcode)eventDescriptor.Opcode == EventOpcode.Send ||
- (EventOpcode)eventDescriptor.Opcode == EventOpcode.Receive);
- status = UnsafeNativeMethods.ManifestEtw.EventWriteTransfer(m_regHandle, ref eventDescriptor, null, childActivityID, dataCount, (EventData*)data);
+ Contract.Assert((EventOpcode)eventDescriptor.Opcode == EventOpcode.Send ||
+ (EventOpcode)eventDescriptor.Opcode == EventOpcode.Receive ||
+ (EventOpcode)eventDescriptor.Opcode == EventOpcode.Start ||
+ (EventOpcode)eventDescriptor.Opcode == EventOpcode.Stop);
}
+
+ int status = UnsafeNativeMethods.ManifestEtw.EventWriteTransferWrapper(m_regHandle, ref eventDescriptor, activityID, childActivityID, dataCount, (EventData*)data);
+
if (status != 0)
{
SetLastError(status);
@@ -1041,12 +1131,24 @@ namespace System.Diagnostics.Tracing
return true;
}
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1045:DoNotPassTypesByReference")]
[System.Security.SecurityCritical]
- internal unsafe protected bool WriteEventString(EventLevel level, long keywords, string msg)
+ internal unsafe bool WriteEventRaw(
+ ref EventDescriptor eventDescriptor,
+ Guid* activityID,
+ Guid* relatedActivityID,
+ int dataCount,
+ IntPtr data)
{
int status;
- status = UnsafeNativeMethods.ManifestEtw.EventWriteString(m_regHandle, (byte) level, keywords, msg);
+ status = UnsafeNativeMethods.ManifestEtw.EventWriteTransferWrapper(
+ m_regHandle,
+ ref eventDescriptor,
+ activityID,
+ relatedActivityID,
+ dataCount,
+ (EventData*)data);
if (status != 0)
{
@@ -1056,6 +1158,7 @@ namespace System.Diagnostics.Tracing
return true;
}
+
// These are look-alikes to the Manifest based ETW OS APIs that have been shimmed to work
// either with Manifest ETW or Classic ETW (if Manifest based ETW is not available).
[SecurityCritical]
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventsource.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventsource.cs
new file mode 100644
index 00000000000..49652982979
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventsource.cs
@@ -0,0 +1,6634 @@
+// Copyright (c) Microsoft Corporation. All rights reserved
+// This program uses code hyperlinks available as part of the HyperAddin Visual Studio plug-in.
+// It is available from http://www.codeplex.com/hyperAddin
+#define FEATURE_MANAGED_ETW
+
+#if !ES_BUILD_STANDALONE
+#define FEATURE_ACTIVITYSAMPLING
+#endif // !ES_BUILD_STANDALONE
+
+#if ES_BUILD_STANDALONE
+#define FEATURE_MANAGED_ETW_CHANNELS
+// #define FEATURE_ADVANCED_MANAGED_ETW_CHANNELS
+#endif
+
+/* DESIGN NOTES DESIGN NOTES DESIGN NOTES DESIGN NOTES */
+// DESIGN NOTES
+// Over the years EventSource has become more complex and so it is important to understand
+// the basic structure of the code to insure that it does not grow more complex.
+//
+// Basic Model
+//
+// PRINCIPLE: EventSource - ETW decoupling
+//
+// Conceptually and EventSouce is something takes event logging data from the source methods
+// To the EventListener that can subscribe them. Note that CONCEPTUALLY EVENTSOURCES DON'T
+// KNOW ABOUT ETW!. The MODEL of the system is that there is a special EventListern Which
+// we will call the EtwEventListener, that forwards commands from ETW to EventSources and
+// listeners to the EventSources and forwards on those events to ETW. THus the model should
+// be that you DON'T NEED ETW.
+//
+// Now in actual practice, EventSouce have rather intimate knowledge of ETW and send events
+// to it directly, but this can be VIEWED AS AN OPTIMIATION.
+//
+// Basic Event Data Flow:
+//
+// There are two ways for event Data to enter the system
+// 1) WriteEvent* and friends. This is called the 'contract' based approach because
+// you write a method per event which forms a contract that is know at compile time.
+// In this scheme each event is given an EVENTID (small integer). which is its identity
+// 2) Write<T> methods. This is called the 'dynamic' approach because new events
+// can be created on the fly. Event identity is determined by the event NAME, and these
+// are not quite as efficient at runtime since you have at least a hash table lookup
+// on every event write.
+//
+// EventSource-EventListener transfer fully support both ways of writing events (either contract
+// based (WriteEvent*) or dynamic (Write<T>). Both way fully support the same set of data
+// types. It is suggested, however, that you use the contract based approach when the event scheme
+// is known at compile time (that is whenever possible). It is more efficient, but more importantly
+// it makes the contract very explicit, and centralizes all policy about logging. These are good
+// things. The Write<T> API is really meant for more ad-hoc
+//
+// Allowed Data.
+//
+// Note that EventSource-EventListeners have a conceptual serialization-deserialization that happens
+// during the transfer. In particular object identity is not preserved, some objects are morphed,
+// and not all data types are supported. In particular you can pass
+//
+// A Valid type to log to an EventSource include
+// * Primitive data types
+// * IEnumerable<T> of valid types T (this include arrays) (* New for V4.6)
+// * Explicitly Opted in class or struct with public property Getters over Valid types. (* New for V4.6)
+//
+// This set of types is roughly a generalization of JSON support (Basically primitives, bags, and arrays).
+//
+// Explicitly allowed structs include (* New for V4.6)
+// * Marked with the EventData attribute
+// * implicitly defined (e.g the C# new {x = 3, y = 5} syntax)
+// * KeyValuePair<K,V> (thus dictionaries can be passed since they are an IEnumerable of KeyValuePair)
+//
+// When classes are returned in an EventListener, what is returned is something that implements
+// IDictionary<string, T>. Thus when objects are passed to an EventSource they are transformed
+// into a key-value bag (the IDictionary<string, T>) for consumption in the listener. These
+// are obvious NOT the original objects.
+//
+// ETWserialization formats:
+//
+// As mentioned conceptually EventSource's send data to EventListeners and there is a conceptual
+// copy/morph of that data as described above. In addition the .NET framework supports a conceptual
+// ETWListener that will send the data to then ETW stream. If you use this feature, the data needs
+// to be serialized in a way that ETW supports. ETW supports the following serialization formats
+//
+// 1) Manifest Based serialization.
+// 2) SelfDescribing serialization (TraceLogging style in the TraceLogging directory)
+//
+// A key factor is that the Write<T> method, which support on the fly definition of events, can't
+// support the manifest based serialization because the manifest needs the schema of all events
+// to be known before any events are emitted. This implies the following
+//
+// If you use Write<T> and the output goes to ETW it will use the SelfDescribing format.
+// If you use the EventSource(string) constructor for an eventSource (in which you don't
+// create a subclass), the default is also to use Self-Describing serialization. In addition
+// you can use the EventSoruce(EventSourceSettings) constructor to also explicitly specify
+// Self-Describing serialization format. These effect the WriteEvent* APIs going to ETW.
+//
+// Note that none of this ETW serialization logic affects EventListeners. Only the ETW listener.
+//
+// *************************************************************************************
+// *** INTERNALS: Event Propagation
+//
+// Data enters the system either though
+//
+// 1) A user defined method in the user defined subclass of EventSource which calls
+// A) A typesafe type specific overload of WriteEvent(ID, ...) e.g. WriteEvent(ID, string, string)
+// * which calls into the unsafe WriteEventCore(ID COUNT EventData*) WriteEventWithRelatedActivityIdCore()
+// B) The typesafe overload WriteEvent(ID, object[]) which calls the private helper WriteEventVarargs(ID, Guid* object[])
+// C) Directly into the unsafe WriteEventCore(ID, COUNT EventData*) or WriteEventWithRelatedActivityIdCore()
+//
+// All event data eventually flows to one of
+// * WriteEventWithRelatedActivityIdCore(ID, Guid*, COUNT, EventData*)
+// * WriteEventVarargs(ID, Guid*, object[])
+//
+// 2) A call to one of the overloads of Write<T>. All these overloads end up in
+// * WriteImpl<T>(EventName, Options, Data, Guid*, Guid*)
+//
+// On output there are the following routines
+// Writing to all listeners that are NOT ETW, we have the following routines
+// * WriteToAllListeners(ID, Guid*, COUNT, EventData*)
+// * WriteToAllListeners(ID, Guid*, object[])
+// * WriteToAllListeners(NAME, Guid*, EventPayload)
+//
+// EventPayload is the internal type that implements the IDictionary<string, object> interface
+// The EventListeners will pass back for serialized classes for nested object, but
+// WriteToAllListeners(NAME, Guid*, EventPayload) unpacks this uses the fields as if they
+// were parameters to a method.
+//
+// The first two are used for the WriteEvent* case, and the later is used for the Write<T> case.
+//
+// Writing to ETW, Manifest Based
+// EventProvider.WriteEvent(EventDescriptor, Guid*, COUNT, EventData*)
+// EventProvider.WriteEvent(EventDescriptor, Guid*, object[])
+// Writing to ETW, Self-Describing format
+// WriteMultiMerge(NAME, Options, Types, EventData*)
+// WriteMultiMerge(NAME, Options, Types, object[])
+// WriteImpl<T> has logic that knows how to serialize (like WriteMultiMerge) but also knows
+// will write it to
+//
+// All ETW writes eventually call
+// EventWriteTransfer (native PINVOKE wrapper)
+// EventWriteTransferWrapper (fixes compat problem if you pass null as the related activityID)
+// EventProvider.WriteEventRaw - sets last error
+// EventSource.WriteEventRaw - Does EventSource exception handling logic
+// WriteMultiMerge
+// WriteImpl<T>
+// EventProvider.WriteEvent(EventDescriptor, Guid*, COUNT, EventData*)
+// EventProvider.WriteEvent(EventDescriptor, Guid*, object[])
+//
+// Serialization: We have a bit of a hodge-podge of serializers right now. Only the one for ETW knows
+// how to deal with nested classes or arrays. I will call this serializer the 'TypeInfo' serializer
+// since it is the TraceLoggingTypeInfo structure that knows how to do this. Effectively for a type you
+// can call one of these
+// WriteMetadata - transforms the type T into serialization meta data blob for that type
+// WriteObjectData - transforms an object of T into serialization meta data blob for that type
+// GetData - transforms an object of T into its deserialized form suitable for passing to EventListener.
+// The first two are used to serialize something for ETW. The second one is used to transform the object
+// for use by the EventListener. We also have a 'DecodeObject' method that will take a EventData* and
+// deserialize to pass to an EventListener, but it only works on primitive types (types supported in version V4.5).
+//
+// It is an important observation that while EventSource does support users directly calling with EventData*
+// blobs, we ONLY support that for the primitive types (V4.5 level support). Thus while there is a EventData*
+// path through the system it is only for some types. The object[] path is the more general (but less efficient) path.
+//
+//
+
+
+
+
+
+
+
+using System;
+#if FEATURE_ACTIVITYSAMPLING
+using System.Collections.Concurrent;
+#endif
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
+using System.Globalization;
+using System.Reflection;
+using System.Resources;
+using System.Security;
+using System.Security.Permissions;
+using System.Text;
+using System.Threading;
+using Microsoft.Win32;
+
+#if ES_BUILD_STANDALONE
+using Environment = Microsoft.Diagnostics.Tracing.Internal.Environment;
+using EventDescriptor = Microsoft.Diagnostics.Tracing.EventDescriptor;
+#else
+using EventDescriptor = System.Diagnostics.Tracing.EventDescriptor;
+#endif
+
+using Microsoft.Reflection;
+
+#if !ES_BUILD_AGAINST_DOTNET_V35
+using Contract = System.Diagnostics.Contracts.Contract;
+#else
+using Contract = Microsoft.Diagnostics.Contracts.Internal.Contract;
+#endif
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ /// <summary>
+ /// This class is meant to be inherited by a user-defined event source in order to define a managed
+ /// ETW provider. Please See DESIGN NOTES above for the internal architecture.
+ /// The minimal definition of an EventSource simply specifies a number of ETW event methods that
+ /// call one of the EventSource.WriteEvent overloads, <see cref="EventSource.WriteEventCore"/>,
+ /// or <see cref="EventSource.WriteEventWithRelatedActivityIdCore"/> to log them. This functionality
+ /// is sufficient for many users.
+ /// <para>
+ /// To achieve more control over the ETW provider manifest exposed by the event source type, the
+ /// [<see cref="EventAttribute"/>] attributes can be specified for the ETW event methods.
+ /// </para><para>
+ /// For very advanced EventSources, it is possible to intercept the commands being given to the
+ /// eventSource and change what filtering is done (see EventListener.EnableEvents and
+ /// <see cref="EventListener.DisableEvents"/>) or cause actions to be performed by the eventSource,
+ /// e.g. dumping a data structure (see EventSource.SendCommand and
+ /// <see cref="EventSource.OnEventCommand"/>).
+ /// </para><para>
+ /// The eventSources can be turned on with Windows ETW controllers (e.g. logman), immediately.
+ /// It is also possible to control and intercept the data dispatcher programmatically. See
+ /// <see cref="EventListener"/> for more.
+ /// </para>
+ /// </summary>
+ /// <remarks>
+ /// This is a minimal definition for a custom event source:
+ /// <code>
+ /// [EventSource(Name="Samples-Demos-Minimal")]
+ /// sealed class MinimalEventSource : EventSource
+ /// {
+ /// public static MinimalEventSource Log = new MinimalEventSource();
+ /// public void Load(long ImageBase, string Name) { WriteEvent(1, ImageBase, Name); }
+ /// public void Unload(long ImageBase) { WriteEvent(2, ImageBase); }
+ /// private MinimalEventSource() {}
+ /// }
+ /// </code>
+ /// </remarks>
+ public partial class EventSource : IDisposable
+ {
+ /// <summary>
+ /// The human-friendly name of the eventSource. It defaults to the simple name of the class
+ /// </summary>
+ public string Name { get { return m_name; } }
+ /// <summary>
+ /// Every eventSource is assigned a GUID to uniquely identify it to the system.
+ /// </summary>
+ public Guid Guid { get { return m_guid; } }
+
+ /// <summary>
+ /// Returns true if the eventSource has been enabled at all. This is the prefered test
+ /// to be performed before a relatively expensive EventSource operation.
+ /// </summary>
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ public bool IsEnabled()
+ {
+ return m_eventSourceEnabled;
+ }
+
+ /// <summary>
+ /// Returns true if events with greater than or equal 'level' and have one of 'keywords' set are enabled.
+ ///
+ /// Note that the result of this function is only an approximation on whether a particular
+ /// event is active or not. It is only meant to be used as way of avoiding expensive
+ /// computation for logging when logging is not on, therefore it sometimes returns false
+ /// positives (but is always accurate when returning false). EventSources are free to
+ /// have additional filtering.
+ /// </summary>
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ public bool IsEnabled(EventLevel level, EventKeywords keywords)
+ {
+ return IsEnabled(level, keywords, EventChannel.None);
+ }
+
+ /// <summary>
+ /// Returns true if events with greater than or equal 'level' and have one of 'keywords' set are enabled, or
+ /// if 'keywords' specifies a channel bit for a channel that is enabled.
+ ///
+ /// Note that the result of this function only an approximation on whether a particular
+ /// event is active or not. It is only meant to be used as way of avoiding expensive
+ /// computation for logging when logging is not on, therefore it sometimes returns false
+ /// positives (but is always accurate when returning false). EventSources are free to
+ /// have additional filtering.
+ /// </summary>
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ public bool IsEnabled(EventLevel level, EventKeywords keywords, EventChannel channel)
+ {
+ if (!m_eventSourceEnabled)
+ return false;
+
+ if (!IsEnabledCommon(m_eventSourceEnabled, m_level, m_matchAnyKeyword, level, keywords, channel))
+ return false;
+
+#if !FEATURE_ACTIVITYSAMPLING
+
+ return true;
+
+#else // FEATURE_ACTIVITYSAMPLING
+
+ return true;
+
+#if OPTIMIZE_IS_ENABLED
+ //================================================================================
+ // 2013/03/06 - The code below is a possible optimization for IsEnabled(level, kwd)
+ // in case activity tracing/sampling is enabled. The added complexity of this
+ // code however weighs against having it "on" until we know it's really needed.
+ // For now we'll have this #ifdef-ed out in case we see evidence this is needed.
+ //================================================================================
+
+ // At this point we believe the event is enabled, however we now need to check
+ // if we filter because of activity
+
+ // Optimization, all activity filters also register a delegate here, so if there
+ // is no delegate, we know there are no activity filters, which means that there
+ // is no additional filtering, which means that we can return true immediately.
+ if (s_activityDying == null)
+ return true;
+
+ // if there's at least one legacy ETW listener we can't filter this
+ if (m_legacySessions != null && m_legacySessions.Count > 0)
+ return true;
+
+ // if any event ID that triggers a new activity, or "transfers" activities
+ // is covered by 'keywords' we can't filter this
+ if (unchecked(((long)keywords & m_keywordTriggers)) != 0)
+ return true;
+
+ // See if all listeners have activity filters that would block the event.
+ for (int perEventSourceSessionId = 0; perEventSourceSessionId < SessionMask.MAX; ++perEventSourceSessionId)
+ {
+ EtwSession etwSession = m_etwSessionIdMap[perEventSourceSessionId];
+ if (etwSession == null)
+ continue;
+
+ ActivityFilter activityFilter = etwSession.m_activityFilter;
+ if (activityFilter == null ||
+ ActivityFilter.GetFilter(activityFilter, this) == null)
+ {
+ // No activity filter for ETW, if event is active for ETW, we can't filter.
+ for (int i = 0; i < m_eventData.Length; i++)
+ if (m_eventData[i].EnabledForETW)
+ return true;
+ }
+ else if (ActivityFilter.IsCurrentActivityActive(activityFilter))
+ return true;
+ }
+
+ // for regular event listeners
+ var curDispatcher = m_Dispatchers;
+ while (curDispatcher != null)
+ {
+ ActivityFilter activityFilter = curDispatcher.m_Listener.m_activityFilter;
+ if (activityFilter == null)
+ {
+ // See if any event is enabled.
+ for (int i = 0; i < curDispatcher.m_EventEnabled.Length; i++)
+ if (curDispatcher.m_EventEnabled[i])
+ return true;
+ }
+ else if (ActivityFilter.IsCurrentActivityActive(activityFilter))
+ return true;
+ curDispatcher = curDispatcher.m_Next;
+ }
+
+ // Every listener has an activity filter that is blocking writing the event,
+ // thus the event is not enabled.
+ return false;
+#endif // OPTIMIZE_IS_ENABLED
+
+#endif // FEATURE_ACTIVITYSAMPLING
+ }
+
+ /// <summary>
+ /// Returns the settings for the event source instance
+ /// </summary>
+ public EventSourceSettings Settings
+ {
+ get { return m_config; }
+ }
+
+ // Manifest support
+ /// <summary>
+ /// Returns the GUID that uniquely identifies the eventSource defined by 'eventSourceType'.
+ /// This API allows you to compute this without actually creating an instance of the EventSource.
+ /// It only needs to reflect over the type.
+ /// </summary>
+ public static Guid GetGuid(Type eventSourceType)
+ {
+ if (eventSourceType == null)
+ throw new ArgumentNullException("eventSourceType");
+ Contract.EndContractBlock();
+
+ EventSourceAttribute attrib = (EventSourceAttribute)GetCustomAttributeHelper(eventSourceType, typeof(EventSourceAttribute));
+ string name = eventSourceType.Name;
+ if (attrib != null)
+ {
+ if (attrib.Guid != null)
+ {
+ Guid g = Guid.Empty;
+#if !ES_BUILD_AGAINST_DOTNET_V35
+ if (Guid.TryParse(attrib.Guid, out g))
+ return g;
+#else
+ try { return new Guid(attrib.Guid); }
+ catch (Exception) { }
+#endif
+ }
+
+ if (attrib.Name != null)
+ name = attrib.Name;
+ }
+
+ if (name == null)
+ throw new ArgumentException(Environment.GetResourceString("Argument_InvalidTypeName"), "eventSourceType");
+
+ return GenerateGuidFromName(name.ToUpperInvariant()); // Make it case insensitive.
+ }
+ /// <summary>
+ /// Returns the official ETW Provider name for the eventSource defined by 'eventSourceType'.
+ /// This API allows you to compute this without actually creating an instance of the EventSource.
+ /// It only needs to reflect over the type.
+ /// </summary>
+ public static string GetName(Type eventSourceType)
+ {
+ return GetName(eventSourceType, EventManifestOptions.None);
+ }
+
+ /// <summary>
+ /// Returns a string of the XML manifest associated with the eventSourceType. The scheme for this XML is
+ /// documented at in EventManifest Schema http://msdn.microsoft.com/en-us/library/aa384043(VS.85).aspx.
+ /// This is the preferred way of generating a manifest to be embedded in the ETW stream as it is fast and
+ /// the fact that it only includes localized entries for the current UI culture is an acceptable tradeoff.
+ /// </summary>
+ /// <param name="eventSourceType">The type of the event source class for which the manifest is generated</param>
+ /// <param name="assemblyPathToIncludeInManifest">The manifest XML fragment contains the string name of the DLL name in
+ /// which it is embedded. This parameter specifies what name will be used</param>
+ /// <returns>The XML data string</returns>
+ public static string GenerateManifest(Type eventSourceType, string assemblyPathToIncludeInManifest)
+ {
+ return GenerateManifest(eventSourceType, assemblyPathToIncludeInManifest, EventManifestOptions.None);
+ }
+ /// <summary>
+ /// Returns a string of the XML manifest associated with the eventSourceType. The scheme for this XML is
+ /// documented at in EventManifest Schema http://msdn.microsoft.com/en-us/library/aa384043(VS.85).aspx.
+ /// Pass EventManifestOptions.AllCultures when generating a manifest to be registered on the machine. This
+ /// ensures that the entries in the event log will be "optimally" localized.
+ /// </summary>
+ /// <param name="eventSourceType">The type of the event source class for which the manifest is generated</param>
+ /// <param name="assemblyPathToIncludeInManifest">The manifest XML fragment contains the string name of the DLL name in
+ /// which it is embedded. This parameter specifies what name will be used</param>
+ /// <param name="flags">The flags to customize manifest generation. If flags has bit OnlyIfNeededForRegistration specified
+ /// this returns null when the eventSourceType does not require explicit registration</param>
+ /// <returns>The XML data string or null</returns>
+ public static string GenerateManifest(Type eventSourceType, string assemblyPathToIncludeInManifest, EventManifestOptions flags)
+ {
+ if (eventSourceType == null)
+ throw new ArgumentNullException("eventSourceType");
+ Contract.EndContractBlock();
+
+ byte[] manifestBytes = EventSource.CreateManifestAndDescriptors(eventSourceType, assemblyPathToIncludeInManifest, null, flags);
+ return (manifestBytes == null) ? null : Encoding.UTF8.GetString(manifestBytes, 0, manifestBytes.Length);
+ }
+
+ // EventListener support
+ /// <summary>
+ /// returns a list (IEnumerable) of all sources in the appdomain). EventListeners typically need this.
+ /// </summary>
+ /// <returns></returns>
+ public static IEnumerable<EventSource> GetSources()
+ {
+ var ret = new List<EventSource>();
+ lock (EventListener.EventListenersLock)
+ {
+ foreach (WeakReference eventSourceRef in EventListener.s_EventSources)
+ {
+ EventSource eventSource = eventSourceRef.Target as EventSource;
+ if (eventSource != null && !eventSource.IsDisposed)
+ ret.Add(eventSource);
+ }
+ }
+ return ret;
+ }
+
+ /// <summary>
+ /// Send a command to a particular EventSource identified by 'eventSource'.
+ /// Calling this routine simply forwards the command to the EventSource.OnEventCommand
+ /// callback. What the EventSource does with the command and its arguments are from
+ /// that point EventSource-specific.
+ /// </summary>
+ /// <param name="eventSource">The instance of EventSource to send the command to</param>
+ /// <param name="command">A positive user-defined EventCommand, or EventCommand.SendManifest</param>
+ /// <param name="commandArguments">A set of (name-argument, value-argument) pairs associated with the command</param>
+ public static void SendCommand(EventSource eventSource, EventCommand command, IDictionary<string, string> commandArguments)
+ {
+ if (eventSource == null)
+ throw new ArgumentNullException("eventSource");
+
+ // User-defined EventCommands should not conflict with the reserved commands.
+ if ((int)command <= (int)EventCommand.Update && (int)command != (int)EventCommand.SendManifest)
+ throw new ArgumentException(Environment.GetResourceString("EventSource_InvalidCommand"), "command");
+
+ eventSource.SendCommand(null, 0, 0, command, true, EventLevel.LogAlways, EventKeywords.None, commandArguments);
+ }
+
+ // ActivityID support (see also WriteEventWithRelatedActivityIdCore)
+ /// <summary>
+ /// When a thread starts work that is on behalf of 'something else' (typically another
+ /// thread or network request) it should mark the thread as working on that other work.
+ /// This API marks the current thread as working on activity 'activityID'. This API
+ /// should be used when the caller knows the thread's current activity (the one being
+ /// overwritten) has completed. Otherwise, callers should prefer the overload that
+ /// return the oldActivityThatWillContinue (below).
+ ///
+ /// All events created with the EventSource on this thread are also tagged with the
+ /// activity ID of the thread.
+ ///
+ /// It is common, and good practice after setting the thread to an activity to log an event
+ /// with a 'start' opcode to indicate that precise time/thread where the new activity
+ /// started.
+ /// </summary>
+ /// <param name="activityId">A Guid that represents the new activity with which to mark
+ /// the current thread</param>
+ [System.Security.SecuritySafeCritical]
+ public static void SetCurrentThreadActivityId(Guid activityId)
+ {
+#if FEATURE_ACTIVITYSAMPLING
+ Guid newId = activityId;
+#endif // FEATURE_ACTIVITYSAMPLING
+ // We ignore errors to keep with the convention that EventSources do not throw errors.
+ // Note we can't access m_throwOnWrites because this is a static method.
+ if (UnsafeNativeMethods.ManifestEtw.EventActivityIdControl(
+ UnsafeNativeMethods.ManifestEtw.ActivityControl.EVENT_ACTIVITY_CTRL_GET_SET_ID,
+ ref activityId) == 0)
+ {
+#if FEATURE_ACTIVITYSAMPLING
+ var activityDying = s_activityDying;
+ if (activityDying != null && newId != activityId)
+ {
+ if (activityId == Guid.Empty)
+ {
+ activityId = FallbackActivityId;
+ }
+ // OutputDebugString(string.Format("Activity dying: {0} -> {1}", activityId, newId));
+ activityDying(activityId); // This is actually the OLD activity ID.
+ }
+#endif // FEATURE_ACTIVITYSAMPLING
+ }
+ if (System.Threading.Tasks.TplEtwProvider.Log != null)
+ System.Threading.Tasks.TplEtwProvider.Log.SetActivityId(activityId);
+ }
+
+ /// <summary>
+ /// When a thread starts work that is on behalf of 'something else' (typically another
+ /// thread or network request) it should mark the thread as working on that other work.
+ /// This API marks the current thread as working on activity 'activityID'. It returns
+ /// whatever activity the thread was previously marked with. There is a convention that
+ /// callers can assume that callees restore this activity mark before the callee returns.
+ /// To encourage this this API returns the old activity, so that it can be restored later.
+ ///
+ /// All events created with the EventSource on this thread are also tagged with the
+ /// activity ID of the thread.
+ ///
+ /// It is common, and good practice after setting the thread to an activity to log an event
+ /// with a 'start' opcode to indicate that precise time/thread where the new activity
+ /// started.
+ /// </summary>
+ /// <param name="activityId">A Guid that represents the new activity with which to mark
+ /// the current thread</param>
+ /// <param name="oldActivityThatWillContinue">The Guid that represents the current activity
+ /// which will continue at some point in the future, on the current thread</param>
+ [System.Security.SecuritySafeCritical]
+ public static void SetCurrentThreadActivityId(Guid activityId, out Guid oldActivityThatWillContinue)
+ {
+ oldActivityThatWillContinue = activityId;
+ // We ignore errors to keep with the convention that EventSources do not throw errors.
+ // Note we can't access m_throwOnWrites because this is a static method.
+ UnsafeNativeMethods.ManifestEtw.EventActivityIdControl(
+ UnsafeNativeMethods.ManifestEtw.ActivityControl.EVENT_ACTIVITY_CTRL_GET_SET_ID,
+ ref oldActivityThatWillContinue);
+
+ // We don't call the activityDying callback here because the caller has declared that
+ // it is not dying.
+ if (System.Threading.Tasks.TplEtwProvider.Log != null)
+ System.Threading.Tasks.TplEtwProvider.Log.SetActivityId(activityId);
+ }
+
+ /// <summary>
+ /// Retrieves the ETW activity ID associated with the current thread.
+ /// </summary>
+ public static Guid CurrentThreadActivityId
+ {
+ [System.Security.SecurityCritical]
+ get
+ {
+ // We ignore errors to keep with the convention that EventSources do not throw
+ // errors. Note we can't access m_throwOnWrites because this is a static method.
+ Guid retVal = new Guid();
+ UnsafeNativeMethods.ManifestEtw.EventActivityIdControl(
+ UnsafeNativeMethods.ManifestEtw.ActivityControl.EVENT_ACTIVITY_CTRL_GET_ID,
+ ref retVal);
+ return retVal;
+ }
+ }
+
+#if !ES_BUILD_STANDALONE
+ /// <summary>
+ /// This property allows EventSource code to appropriately handle as "different"
+ /// activities started on different threads that have not had an activity created on them.
+ /// </summary>
+ internal static Guid InternalCurrentThreadActivityId
+ {
+ [System.Security.SecurityCritical]
+ get
+ {
+ Guid retval = CurrentThreadActivityId;
+ if (retval == Guid.Empty)
+ {
+ retval = FallbackActivityId;
+ }
+ return retval;
+ }
+ }
+
+ internal static Guid FallbackActivityId
+ {
+ [System.Security.SecurityCritical]
+ get
+ {
+#pragma warning disable 612, 618
+ // Managed thread IDs are more aggressively re-used than native thread IDs,
+ // so we'll use the latter...
+ return new Guid(unchecked((uint)AppDomain.GetCurrentThreadId()),
+ unchecked((ushort)s_currentPid), unchecked((ushort)(s_currentPid >> 16)),
+ 0x94, 0x1b, 0x87, 0xd5, 0xa6, 0x5c, 0x36, 0x64);
+#pragma warning restore 612, 618
+ }
+ }
+#endif // !ES_BUILD_STANDALONE
+
+ // Error APIs. (We don't throw by default, but you can probe for status)
+ /// <summary>
+ /// Because
+ ///
+ /// 1) Logging is often optional and thus should not generate fatal errors (exceptions)
+ /// 2) EventSources are often initialized in class constructors (which propagate exceptions poorly)
+ ///
+ /// The event source constructor does not throw exceptions. Instead we remember any exception that
+ /// was generated (it is also logged to Trace.WriteLine).
+ /// </summary>
+ public Exception ConstructionException { get { return m_constructionException; } }
+
+ /// <summary>
+ /// EventSources can have arbitrary string key-value pairs associated with them called Traits.
+ /// These traits are not interpreted by the EventSource but may be interpreted by EventListeners
+ /// (e.g. like the built in ETW listener). These traits are specififed at EventSource
+ /// construction time and can be retrieved by using this GetTrait API.
+ /// </summary>
+ /// <param name="key">The key to look up in the set of key-value pairs passed to the EventSource constructor</param>
+ /// <returns>The value string associated iwth key. Will return null if there is no such key.</returns>
+ public string GetTrait(string key)
+ {
+ if (m_traits != null)
+ {
+ for (int i = 0; i < m_traits.Length - 1; i += 2)
+ {
+ if (m_traits[i] == key)
+ return m_traits[i + 1];
+ }
+ }
+ return null;
+ }
+
+ /// <summary>
+ /// Displays the name and GUID for the eventSource for debugging purposes.
+ /// </summary>
+ public override string ToString() { return Environment.GetResourceString("EventSource_ToString", Name, Guid); }
+
+ #region protected
+ /// <summary>
+ /// This is the constructor that most users will use to create their eventSource. It takes
+ /// no parameters. The ETW provider name and GUID of the EventSource are determined by the EventSource
+ /// custom attribute (so you can determine these things declaratively). If the GUID for the eventSource
+ /// is not specified in the EventSourceAttribute (recommended), it is Generated by hashing the name.
+ /// If the ETW provider name of the EventSource is not given, the name of the EventSource class is used as
+ /// the ETW provider name.
+ /// </summary>
+ protected EventSource()
+ : this(EventSourceSettings.EtwManifestEventFormat)
+ {
+ }
+
+ /// <summary>
+ /// By default calling the 'WriteEvent' methods do NOT throw on errors (they silently discard the event).
+ /// This is because in most cases users assume logging is not 'precious' and do NOT wish to have logging failures
+ /// crash the program. However for those applications where logging is 'precious' and if it fails the caller
+ /// wishes to react, setting 'throwOnEventWriteErrors' will cause an exception to be thrown if WriteEvent
+ /// fails. Note the fact that EventWrite succeeds does not necessarily mean that the event reached its destination
+ /// only that operation of writing it did not fail. These EventSources will not generate self-describing ETW events.
+ ///
+ /// For compatibility only use the EventSourceSettings.ThrowOnEventWriteErrors flag instead.
+ /// </summary>
+ // [Obsolete("Use the EventSource(EventSourceSettings) overload")]
+ protected EventSource(bool throwOnEventWriteErrors)
+ : this(EventSourceSettings.EtwManifestEventFormat | (throwOnEventWriteErrors ? EventSourceSettings.ThrowOnEventWriteErrors : 0))
+ { }
+
+ /// <summary>
+ /// Construct an EventSource with additional non-default settings (see EventSourceSettings for more)
+ /// </summary>
+ protected EventSource(EventSourceSettings settings) : this(settings, null) { }
+
+ /// <summary>
+ /// Construct an EventSource with additional non-default settings.
+ ///
+ /// Also specify a list of key-value pairs called traits (you must pass an even number of strings).
+ /// The first string is the key and the second is the value. These are not interpreted by EventSource
+ /// itself but may be interprated the listeners. Can be fetched with GetTrait(string).
+ /// </summary>
+ /// <param name="settings">See EventSourceSettings for more.</param>
+ /// <param name="traits">A collection of key-value strings (must be an even number).</param>
+ protected EventSource(EventSourceSettings settings, params string[] traits)
+ {
+ m_config = ValidateSettings(settings);
+ var myType = this.GetType();
+ Initialize(GetGuid(myType), GetName(myType), traits);
+ }
+
+ /// <summary>
+ /// This method is called when the eventSource is updated by the controller.
+ /// </summary>
+ protected virtual void OnEventCommand(EventCommandEventArgs command) { }
+
+#pragma warning disable 1591
+ // optimized for common signatures (no args)
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId)
+ {
+ WriteEventCore(eventId, 0, null);
+ }
+
+ // optimized for common signatures (ints)
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, int arg1)
+ {
+ if (m_eventSourceEnabled)
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[1];
+ descrs[0].DataPointer = (IntPtr)(&arg1);
+ descrs[0].Size = 4;
+ WriteEventCore(eventId, 1, descrs);
+ }
+ }
+
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, int arg1, int arg2)
+ {
+ if (m_eventSourceEnabled)
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[2];
+ descrs[0].DataPointer = (IntPtr)(&arg1);
+ descrs[0].Size = 4;
+ descrs[1].DataPointer = (IntPtr)(&arg2);
+ descrs[1].Size = 4;
+ WriteEventCore(eventId, 2, descrs);
+ }
+ }
+
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, int arg1, int arg2, int arg3)
+ {
+ if (m_eventSourceEnabled)
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[3];
+ descrs[0].DataPointer = (IntPtr)(&arg1);
+ descrs[0].Size = 4;
+ descrs[1].DataPointer = (IntPtr)(&arg2);
+ descrs[1].Size = 4;
+ descrs[2].DataPointer = (IntPtr)(&arg3);
+ descrs[2].Size = 4;
+ WriteEventCore(eventId, 3, descrs);
+ }
+ }
+
+ // optimized for common signatures (longs)
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, long arg1)
+ {
+ if (m_eventSourceEnabled)
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[1];
+ descrs[0].DataPointer = (IntPtr)(&arg1);
+ descrs[0].Size = 8;
+ WriteEventCore(eventId, 1, descrs);
+ }
+ }
+
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, long arg1, long arg2)
+ {
+ if (m_eventSourceEnabled)
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[2];
+ descrs[0].DataPointer = (IntPtr)(&arg1);
+ descrs[0].Size = 8;
+ descrs[1].DataPointer = (IntPtr)(&arg2);
+ descrs[1].Size = 8;
+ WriteEventCore(eventId, 2, descrs);
+ }
+ }
+
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, long arg1, long arg2, long arg3)
+ {
+ if (m_eventSourceEnabled)
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[3];
+ descrs[0].DataPointer = (IntPtr)(&arg1);
+ descrs[0].Size = 8;
+ descrs[1].DataPointer = (IntPtr)(&arg2);
+ descrs[1].Size = 8;
+ descrs[2].DataPointer = (IntPtr)(&arg3);
+ descrs[2].Size = 8;
+ WriteEventCore(eventId, 3, descrs);
+ }
+ }
+
+ // optimized for common signatures (strings)
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, string arg1)
+ {
+ if (m_eventSourceEnabled)
+ {
+ if (arg1 == null) arg1 = "";
+ fixed (char* string1Bytes = arg1)
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[1];
+ descrs[0].DataPointer = (IntPtr)string1Bytes;
+ descrs[0].Size = ((arg1.Length + 1) * 2);
+ WriteEventCore(eventId, 1, descrs);
+ }
+ }
+ }
+
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, string arg1, string arg2)
+ {
+ if (m_eventSourceEnabled)
+ {
+ if (arg1 == null) arg1 = "";
+ if (arg2 == null) arg2 = "";
+ fixed (char* string1Bytes = arg1)
+ fixed (char* string2Bytes = arg2)
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[2];
+ descrs[0].DataPointer = (IntPtr)string1Bytes;
+ descrs[0].Size = ((arg1.Length + 1) * 2);
+ descrs[1].DataPointer = (IntPtr)string2Bytes;
+ descrs[1].Size = ((arg2.Length + 1) * 2);
+ WriteEventCore(eventId, 2, descrs);
+ }
+ }
+ }
+
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, string arg1, string arg2, string arg3)
+ {
+ if (m_eventSourceEnabled)
+ {
+ if (arg1 == null) arg1 = "";
+ if (arg2 == null) arg2 = "";
+ if (arg3 == null) arg3 = "";
+ fixed (char* string1Bytes = arg1)
+ fixed (char* string2Bytes = arg2)
+ fixed (char* string3Bytes = arg3)
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[3];
+ descrs[0].DataPointer = (IntPtr)string1Bytes;
+ descrs[0].Size = ((arg1.Length + 1) * 2);
+ descrs[1].DataPointer = (IntPtr)string2Bytes;
+ descrs[1].Size = ((arg2.Length + 1) * 2);
+ descrs[2].DataPointer = (IntPtr)string3Bytes;
+ descrs[2].Size = ((arg3.Length + 1) * 2);
+ WriteEventCore(eventId, 3, descrs);
+ }
+ }
+ }
+
+ // optimized for common signatures (string and ints)
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, string arg1, int arg2)
+ {
+ if (m_eventSourceEnabled)
+ {
+ if (arg1 == null) arg1 = "";
+ fixed (char* string1Bytes = arg1)
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[2];
+ descrs[0].DataPointer = (IntPtr)string1Bytes;
+ descrs[0].Size = ((arg1.Length + 1) * 2);
+ descrs[1].DataPointer = (IntPtr)(&arg2);
+ descrs[1].Size = 4;
+ WriteEventCore(eventId, 2, descrs);
+ }
+ }
+ }
+
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, string arg1, int arg2, int arg3)
+ {
+ if (m_eventSourceEnabled)
+ {
+ if (arg1 == null) arg1 = "";
+ fixed (char* string1Bytes = arg1)
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[3];
+ descrs[0].DataPointer = (IntPtr)string1Bytes;
+ descrs[0].Size = ((arg1.Length + 1) * 2);
+ descrs[1].DataPointer = (IntPtr)(&arg2);
+ descrs[1].Size = 4;
+ descrs[2].DataPointer = (IntPtr)(&arg3);
+ descrs[2].Size = 4;
+ WriteEventCore(eventId, 3, descrs);
+ }
+ }
+ }
+
+ // optimized for common signatures (string and longs)
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, string arg1, long arg2)
+ {
+ if (m_eventSourceEnabled)
+ {
+ if (arg1 == null) arg1 = "";
+ fixed (char* string1Bytes = arg1)
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[2];
+ descrs[0].DataPointer = (IntPtr)string1Bytes;
+ descrs[0].Size = ((arg1.Length + 1) * 2);
+ descrs[1].DataPointer = (IntPtr)(&arg2);
+ descrs[1].Size = 8;
+ WriteEventCore(eventId, 2, descrs);
+ }
+ }
+ }
+
+ // optimized for common signatures (long and string)
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, long arg1, string arg2)
+ {
+ if (m_eventSourceEnabled)
+ {
+ if (arg2 == null) arg2 = "";
+ fixed (char* string2Bytes = arg2)
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[2];
+ descrs[0].DataPointer = (IntPtr)(&arg1);
+ descrs[0].Size = 8;
+ descrs[1].DataPointer = (IntPtr)string2Bytes;
+ descrs[1].Size = ((arg2.Length + 1) * 2);
+ WriteEventCore(eventId, 2, descrs);
+ }
+ }
+ }
+
+ // optimized for common signatures (int and string)
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, int arg1, string arg2)
+ {
+ if (m_eventSourceEnabled)
+ {
+ if (arg2 == null) arg2 = "";
+ fixed (char* string2Bytes = arg2)
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[2];
+ descrs[0].DataPointer = (IntPtr)(&arg1);
+ descrs[0].Size = 4;
+ descrs[1].DataPointer = (IntPtr)string2Bytes;
+ descrs[1].Size = ((arg2.Length + 1) * 2);
+ WriteEventCore(eventId, 2, descrs);
+ }
+ }
+ }
+
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, byte[] arg1)
+ {
+ if (m_eventSourceEnabled)
+ {
+ if (arg1 == null) arg1 = new byte[0];
+ int blobSize = arg1.Length;
+ fixed (byte* blob = &arg1[0])
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[2];
+ descrs[0].DataPointer = (IntPtr)(&blobSize);
+ descrs[0].Size = 4;
+ descrs[1].DataPointer = (IntPtr)blob;
+ descrs[1].Size = blobSize;
+ WriteEventCore(eventId, 2, descrs);
+ }
+ }
+ }
+
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, long arg1, byte[] arg2)
+ {
+ if (m_eventSourceEnabled)
+ {
+ if (arg2 == null) arg2 = new byte[0];
+ int blobSize = arg2.Length;
+ fixed (byte* blob = &arg2[0])
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[3];
+ descrs[0].DataPointer = (IntPtr)(&arg1);
+ descrs[0].Size = 8;
+ descrs[1].DataPointer = (IntPtr)(&blobSize);
+ descrs[1].Size = 4;
+ descrs[2].DataPointer = (IntPtr)blob;
+ descrs[2].Size = blobSize;
+ WriteEventCore(eventId, 3, descrs);
+ }
+ }
+ }
+
+#pragma warning restore 1591
+
+ /// <summary>
+ /// Used to construct the data structure to be passed to the native ETW APIs - EventWrite and EventWriteTransfer.
+ /// </summary>
+ protected internal struct EventData
+ {
+ /// <summary>
+ /// Address where the one argument lives (if this points to managed memory you must ensure the
+ /// managed object is pinned.
+ /// </summary>
+ public IntPtr DataPointer { get { return (IntPtr)m_Ptr; } set { m_Ptr = unchecked((long)value); } }
+ /// <summary>
+ /// Size of the argument referenced by DataPointer
+ /// </summary>
+ public int Size { get { return m_Size; } set { m_Size = value; } }
+
+ #region private
+ /// <summary>
+ /// Initializes the members of this EventData object to point at a previously-pinned
+ /// tracelogging-compatible metadata blob.
+ /// </summary>
+ /// <param name="pointer">Pinned tracelogging-compatible metadata blob.</param>
+ /// <param name="size">The size of the metadata blob.</param>
+ /// <param name="reserved">Value for reserved: 2 for per-provider metadata, 1 for per-event metadata</param>
+ [SecurityCritical]
+ internal unsafe void SetMetadata(byte* pointer, int size, int reserved)
+ {
+ this.m_Ptr = (long)(ulong)(UIntPtr)pointer;
+ this.m_Size = size;
+ this.m_Reserved = reserved; // Mark this descriptor as containing tracelogging-compatible metadata.
+ }
+
+ //Important, we pass this structure directly to the Win32 EventWrite API, so this structure must be layed out exactly
+ // the way EventWrite wants it.
+ internal long m_Ptr;
+ internal int m_Size;
+#pragma warning disable 0649
+ internal int m_Reserved; // Used to pad the size to match the Win32 API
+#pragma warning restore 0649
+ #endregion
+ }
+
+ /// <summary>
+ /// This routine allows you to create efficient WriteEvent helpers, however the code that you use to
+ /// do this, while straightforward, is unsafe.
+ /// </summary>
+ /// <remarks>
+ /// <code>
+ /// protected unsafe void WriteEvent(int eventId, string arg1, long arg2)
+ /// {
+ /// if (IsEnabled())
+ /// {
+ /// if (arg2 == null) arg2 = "";
+ /// fixed (char* string2Bytes = arg2)
+ /// {
+ /// EventSource.EventData* descrs = stackalloc EventSource.EventData[2];
+ /// descrs[0].DataPointer = (IntPtr)(&amp;arg1);
+ /// descrs[0].Size = 8;
+ /// descrs[1].DataPointer = (IntPtr)string2Bytes;
+ /// descrs[1].Size = ((arg2.Length + 1) * 2);
+ /// WriteEventCore(eventId, 2, descrs);
+ /// }
+ /// }
+ /// }
+ /// </code>
+ /// </remarks>
+ [SecurityCritical]
+ [CLSCompliant(false)]
+ protected unsafe void WriteEventCore(int eventId, int eventDataCount, EventSource.EventData* data)
+ {
+ WriteEventWithRelatedActivityIdCore(eventId, null, eventDataCount, data);
+ }
+
+ /// <summary>
+ /// This routine allows you to create efficient WriteEventWithRelatedActivityId helpers, however the code
+ /// that you use to do this, while straightforward, is unsafe. The only difference from
+ /// <see cref="WriteEventCore"/> is that you pass the relatedActivityId from caller through to this API
+ /// </summary>
+ /// <remarks>
+ /// <code>
+ /// protected unsafe void WriteEventWithRelatedActivityId(int eventId, Guid relatedActivityId, string arg1, long arg2)
+ /// {
+ /// if (IsEnabled())
+ /// {
+ /// if (arg2 == null) arg2 = "";
+ /// fixed (char* string2Bytes = arg2)
+ /// {
+ /// EventSource.EventData* descrs = stackalloc EventSource.EventData[2];
+ /// descrs[0].DataPointer = (IntPtr)(&amp;arg1);
+ /// descrs[0].Size = 8;
+ /// descrs[1].DataPointer = (IntPtr)string2Bytes;
+ /// descrs[1].Size = ((arg2.Length + 1) * 2);
+ /// WriteEventWithRelatedActivityIdCore(eventId, relatedActivityId, 2, descrs);
+ /// }
+ /// }
+ /// }
+ /// </code>
+ /// </remarks>
+ [SecurityCritical]
+ [CLSCompliant(false)]
+ protected unsafe void WriteEventWithRelatedActivityIdCore(int eventId, Guid* relatedActivityId, int eventDataCount, EventSource.EventData* data)
+ {
+ if (m_eventSourceEnabled)
+ {
+ try
+ {
+ Contract.Assert(m_eventData != null); // You must have initialized this if you enabled the source.
+ if (relatedActivityId != null)
+ ValidateEventOpcodeForTransfer(ref m_eventData[eventId]);
+
+#if FEATURE_MANAGED_ETW
+ if (m_eventData[eventId].EnabledForETW)
+ {
+ EventOpcode opcode = (EventOpcode)m_eventData[eventId].Descriptor.Opcode;
+ EventActivityOptions activityOptions = m_eventData[eventId].ActivityOptions;
+ Guid* pActivityId = null;
+ Guid activityId = Guid.Empty;
+ Guid relActivityId = Guid.Empty;
+
+ if (opcode != EventOpcode.Info && relatedActivityId == null &&
+ ((activityOptions & EventActivityOptions.Disable) == 0))
+ {
+ if (opcode == EventOpcode.Start)
+ {
+ m_activityTracker.OnStart(m_name, m_eventData[eventId].Name, m_eventData[eventId].Descriptor.Task, ref activityId, ref relActivityId, m_eventData[eventId].ActivityOptions);
+ }
+ else if (opcode == EventOpcode.Stop)
+ {
+ m_activityTracker.OnStop(m_name, m_eventData[eventId].Name, m_eventData[eventId].Descriptor.Task, ref activityId);
+ }
+
+ if (activityId != Guid.Empty)
+ pActivityId = &activityId;
+ if (relActivityId != Guid.Empty)
+ relatedActivityId = &relActivityId;
+ }
+
+#if FEATURE_ACTIVITYSAMPLING
+ // this code should be kept in sync with WriteEventVarargs().
+ SessionMask etwSessions = SessionMask.All;
+ // only compute etwSessions if there are *any* ETW filters enabled...
+ if ((ulong)m_curLiveSessions != 0)
+ etwSessions = GetEtwSessionMask(eventId, relatedActivityId);
+ // OutputDebugString(string.Format("{0}.WriteEvent(id {1}) -> to sessions {2:x}",
+ // m_name, m_eventData[eventId].Name, (ulong) etwSessions));
+
+ if ((ulong)etwSessions != 0 || m_legacySessions != null && m_legacySessions.Count > 0)
+ {
+ if (!SelfDescribingEvents)
+ {
+ if (etwSessions.IsEqualOrSupersetOf(m_curLiveSessions))
+ {
+ // OutputDebugString(string.Format(" (1) id {0}, kwd {1:x}",
+ // m_eventData[eventId].Name, m_eventData[eventId].Descriptor.Keywords));
+ // by default the Descriptor.Keyword will have the perEventSourceSessionId bit
+ // mask set to 0x0f so, when all ETW sessions want the event we don't need to
+ // synthesize a new one
+ if (!m_provider.WriteEvent(ref m_eventData[eventId].Descriptor, pActivityId, relatedActivityId, eventDataCount, (IntPtr)data))
+ ThrowEventSourceException();
+ }
+ else
+ {
+ long origKwd = unchecked((long)((ulong)m_eventData[eventId].Descriptor.Keywords & ~(SessionMask.All.ToEventKeywords())));
+ // OutputDebugString(string.Format(" (2) id {0}, kwd {1:x}",
+ // m_eventData[eventId].Name, etwSessions.ToEventKeywords() | (ulong) origKwd));
+ // only some of the ETW sessions will receive this event. Synthesize a new
+ // Descriptor whose Keywords field will have the appropriate bits set.
+ // etwSessions might be 0, if there are legacy ETW listeners that want this event
+ var desc = new EventDescriptor(
+ m_eventData[eventId].Descriptor.EventId,
+ m_eventData[eventId].Descriptor.Version,
+ m_eventData[eventId].Descriptor.Channel,
+ m_eventData[eventId].Descriptor.Level,
+ m_eventData[eventId].Descriptor.Opcode,
+ m_eventData[eventId].Descriptor.Task,
+ unchecked((long)etwSessions.ToEventKeywords() | origKwd));
+
+ if (!m_provider.WriteEvent(ref desc, pActivityId, relatedActivityId, eventDataCount, (IntPtr)data))
+ ThrowEventSourceException();
+ }
+ }
+ else
+ {
+ TraceLoggingEventTypes tlet = m_eventData[eventId].TraceLoggingEventTypes;
+ if (tlet == null)
+ {
+ tlet = new TraceLoggingEventTypes(m_eventData[eventId].Name,
+ EventTags.None,
+ m_eventData[eventId].Parameters);
+ Interlocked.CompareExchange(ref m_eventData[eventId].TraceLoggingEventTypes, tlet, null);
+
+ }
+ long origKwd = unchecked((long)((ulong)m_eventData[eventId].Descriptor.Keywords & ~(SessionMask.All.ToEventKeywords())));
+ //
+ EventSourceOptions opt = new EventSourceOptions
+ {
+ Keywords = (EventKeywords)unchecked((long)etwSessions.ToEventKeywords() | origKwd),
+ Level = (EventLevel)m_eventData[eventId].Descriptor.Level,
+ Opcode = (EventOpcode)m_eventData[eventId].Descriptor.Opcode
+ };
+
+ WriteMultiMerge(m_eventData[eventId].Name, ref opt, tlet, pActivityId, relatedActivityId, data);
+ }
+ }
+#else
+ if (!SelfDescribingEvents)
+ {
+ if (!m_provider.WriteEvent(ref m_eventData[eventId].Descriptor, pActivityId, relatedActivityId, eventDataCount, (IntPtr)data))
+ ThrowEventSourceException();
+ }
+ else
+ {
+ TraceLoggingEventTypes tlet = m_eventData[eventId].TraceLoggingEventTypes;
+ if (tlet == null)
+ {
+ tlet = new TraceLoggingEventTypes(m_eventData[eventId].Name,
+ m_eventData[eventId].Tags,
+ m_eventData[eventId].Parameters);
+ Interlocked.CompareExchange(ref m_eventData[eventId].TraceLoggingEventTypes, tlet, null);
+
+ }
+ EventSourceOptions opt = new EventSourceOptions
+ {
+ Keywords = (EventKeywords)m_eventData[eventId].Descriptor.Keywords,
+ Level = (EventLevel)m_eventData[eventId].Descriptor.Level,
+ Opcode = (EventOpcode)m_eventData[eventId].Descriptor.Opcode
+ };
+
+ WriteMultiMerge(m_eventData[eventId].Name, ref opt, tlet, pActivityId, relatedActivityId, data);
+ }
+#endif // FEATURE_ACTIVITYSAMPLING
+ }
+#endif // FEATURE_MANAGED_ETW
+
+ if (m_Dispatchers != null && m_eventData[eventId].EnabledForAnyListener)
+ WriteToAllListeners(eventId, relatedActivityId, eventDataCount, data);
+ }
+ catch (Exception ex)
+ {
+ if (ex is EventSourceException)
+ throw;
+ else
+ ThrowEventSourceException(ex);
+ }
+ }
+ }
+
+ // fallback varags helpers.
+ /// <summary>
+ /// This is the varargs helper for writing an event. It does create an array and box all the arguments so it is
+ /// relatively inefficient and should only be used for relatively rare events (e.g. less than 100 / sec). If your
+ /// rates are faster than that you should use <see cref="WriteEventCore"/> to create fast helpers for your particular
+ /// method signature. Even if you use this for rare events, this call should be guarded by an <see cref="IsEnabled()"/>
+ /// check so that the varargs call is not made when the EventSource is not active.
+ /// </summary>
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ protected unsafe void WriteEvent(int eventId, params object[] args)
+ {
+ WriteEventVarargs(eventId, null, args);
+ }
+
+ /// <summary>
+ /// This is the varargs helper for writing an event which also specifies a related activity. It is completely analogous
+ /// to corresponding WriteEvent (they share implementation). It does create an array and box all the arguments so it is
+ /// relatively inefficient and should only be used for relatively rare events (e.g. less than 100 / sec). If your
+ /// rates are faster than that you should use <see cref="WriteEventWithRelatedActivityIdCore"/> to create fast helpers for your
+ /// particular method signature. Even if you use this for rare events, this call should be guarded by an <see cref="IsEnabled()"/>
+ /// check so that the varargs call is not made when the EventSource is not active.
+ /// </summary>
+ [SecuritySafeCritical]
+ protected unsafe void WriteEventWithRelatedActivityId(int eventId, Guid relatedActivityId, params object[] args)
+ {
+ WriteEventVarargs(eventId, &relatedActivityId, args);
+ }
+
+ #endregion
+
+ #region IDisposable Members
+ /// <summary>
+ /// Disposes of an EventSource.
+ /// </summary>
+ public void Dispose()
+ {
+ this.Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+ /// <summary>
+ /// Disposes of an EventSource.
+ /// </summary>
+ /// <remarks>
+ /// Called from Dispose() with disposing=true, and from the finalizer (~EventSource) with disposing=false.
+ /// Guidelines:
+ /// 1. We may be called more than once: do nothing after the first call.
+ /// 2. Avoid throwing exceptions if disposing is false, i.e. if we're being finalized.
+ /// </remarks>
+ /// <param name="disposing">True if called from Dispose(), false if called from the finalizer.</param>
+ protected virtual void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+#if FEATURE_MANAGED_ETW
+ // Send the manifest one more time to ensure circular buffers have a chance to get to this information
+ // even in scenarios with a high volume of ETW events.
+ if (m_eventSourceEnabled)
+ {
+ try
+ {
+ SendManifest(m_rawManifest);
+ }
+ catch (Exception)
+ { } // If it fails, simply give up.
+ m_eventSourceEnabled = false;
+ }
+ if (m_provider != null)
+ {
+ m_provider.Dispose();
+ m_provider = null;
+ }
+#endif
+ }
+ m_eventSourceEnabled = false;
+ }
+ /// <summary>
+ /// Finalizer for EventSource
+ /// </summary>
+ ~EventSource()
+ {
+ this.Dispose(false);
+ }
+ #endregion
+
+ #region private
+#if FEATURE_ACTIVITYSAMPLING
+ internal void WriteStringToListener(EventListener listener, string msg, SessionMask m)
+ {
+ Contract.Assert(listener == null || (uint)m == (uint)SessionMask.FromId(0));
+
+ if (m_eventSourceEnabled)
+ {
+ if (listener == null)
+ {
+ WriteEventString(0, unchecked((long)m.ToEventKeywords()), msg);
+ }
+ else
+ {
+ List<object> arg = new List<object>();
+ arg.Add(msg);
+ EventWrittenEventArgs eventCallbackArgs = new EventWrittenEventArgs(this);
+ eventCallbackArgs.EventId = 0;
+ eventCallbackArgs.Payload = new ReadOnlyCollection<object>(arg);
+ listener.OnEventWritten(eventCallbackArgs);
+ }
+ }
+ }
+#endif
+ [SecurityCritical]
+ private unsafe void WriteEventRaw(
+ ref EventDescriptor eventDescriptor,
+ Guid* activityID,
+ Guid* relatedActivityID,
+ int dataCount,
+ IntPtr data)
+ {
+ if (m_provider == null)
+ {
+ ThrowEventSourceException();
+ }
+ else
+ {
+ if (!m_provider.WriteEventRaw(ref eventDescriptor, activityID, relatedActivityID, dataCount, data))
+ ThrowEventSourceException();
+ }
+ }
+
+ // FrameworkEventSource is on the startup path for the framework, so we have this internal overload that it can use
+ // to prevent the working set hit from looking at the custom attributes on the type to get the Guid.
+ internal EventSource(Guid eventSourceGuid, string eventSourceName)
+ : this(eventSourceGuid, eventSourceName, EventSourceSettings.EtwManifestEventFormat)
+ { }
+
+ // Used by the internal FrameworkEventSource constructor and the TraceLogging-style event source constructor
+ internal EventSource(Guid eventSourceGuid, string eventSourceName, EventSourceSettings settings, string[] traits = null)
+ {
+ m_config = ValidateSettings(settings);
+ Initialize(eventSourceGuid, eventSourceName, traits);
+ }
+
+ /// <summary>
+ /// This method is responsible for the common initialization path from our constructors. It must
+ /// not leak any exceptions (otherwise, since most EventSource classes define a static member,
+ /// "Log", such an exception would become a cached exception for the initialization of the static
+ /// member, and any future access to the "Log" would throw the cached exception).
+ /// </summary>
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", MessageId = "guid")]
+ [SecuritySafeCritical]
+ private unsafe void Initialize(Guid eventSourceGuid, string eventSourceName, string[] traits)
+ {
+ try
+ {
+ m_traits = traits;
+ if (m_traits != null && m_traits.Length % 2 != 0)
+ throw new ArgumentException(Environment.GetResourceString("TraitEven"), "traits");
+
+ if (eventSourceGuid == Guid.Empty)
+ throw new ArgumentException(Environment.GetResourceString("EventSource_NeedGuid"));
+
+ if (eventSourceName == null)
+ throw new ArgumentException(Environment.GetResourceString("EventSource_NeedName"));
+
+ m_name = eventSourceName;
+ m_guid = eventSourceGuid;
+#if FEATURE_ACTIVITYSAMPLING
+ m_curLiveSessions = new SessionMask(0);
+ m_etwSessionIdMap = new EtwSession[SessionMask.MAX];
+#endif // FEATURE_ACTIVITYSAMPLING
+
+ //Enable Implicit Activity tracker
+ m_activityTracker = ActivityTracker.Instance;
+
+#if FEATURE_MANAGED_ETW
+ // Create and register our provider traits. We do this early because it is needed to log errors
+ // In the self-describing event case.
+ this.InitializeProviderMetadata();
+
+ // Register the provider with ETW
+ var provider = new OverideEventProvider(this);
+ provider.Register(eventSourceGuid);
+#endif
+ // Add the eventSource to the global (weak) list.
+ // This also sets m_id, which is the index in the list.
+ EventListener.AddEventSource(this);
+
+#if FEATURE_MANAGED_ETW
+ // OK if we get this far without an exception, then we can at least write out error messages.
+ // Set m_provider, which allows this.
+ m_provider = provider;
+#endif
+
+#if !ES_BUILD_STANDALONE
+ // API available on OS >= Win 8 and patched Win 7.
+ // Disable only for FrameworkEventSource to avoid recursion inside exception handling.
+ var osVer = Environment.OSVersion.Version.Major * 10 + Environment.OSVersion.Version.Minor;
+ if (this.Name != "System.Diagnostics.Eventing.FrameworkEventSource" || osVer >= 62)
+#endif
+ {
+ int setInformationResult;
+ fixed (void* providerMetadata = this.providerMetadata)
+ {
+ setInformationResult = m_provider.SetInformation(
+ UnsafeNativeMethods.ManifestEtw.EVENT_INFO_CLASS.SetTraits,
+ providerMetadata,
+ this.providerMetadata.Length);
+ }
+ }
+
+ Contract.Assert(!m_eventSourceEnabled); // We can't be enabled until we are completely initted.
+ // We are logically completely initialized at this point.
+ m_completelyInited = true;
+ }
+ catch (Exception e)
+ {
+ if (m_constructionException == null)
+ m_constructionException = e;
+ ReportOutOfBandMessage("ERROR: Exception during construction of EventSource " + Name + ": " + e.Message, true);
+ }
+
+ // Once m_completelyInited is set, you can have concurrency, so all work is under the lock.
+ lock (EventListener.EventListenersLock)
+ {
+ // If there are any deferred commands, we can do them now.
+ // This is the most likely place for exceptions to happen.
+ while (m_deferredCommands != null)
+ {
+ DoCommand(m_deferredCommands); // This can never throw, it catches them and reports the errors.
+ m_deferredCommands = m_deferredCommands.nextCommand;
+ }
+ }
+ }
+
+ private static string GetName(Type eventSourceType, EventManifestOptions flags)
+ {
+ if (eventSourceType == null)
+ throw new ArgumentNullException("eventSourceType");
+ Contract.EndContractBlock();
+
+ EventSourceAttribute attrib = (EventSourceAttribute)GetCustomAttributeHelper(eventSourceType, typeof(EventSourceAttribute), flags);
+ if (attrib != null && attrib.Name != null)
+ return attrib.Name;
+
+ return eventSourceType.Name;
+ }
+
+ /// <summary>
+ /// Implements the SHA1 hashing algorithm. Note that this
+ /// implementation is for hashing public information. Do not
+ /// use this code to hash private data, as this implementation does
+ /// not take any steps to avoid information disclosure.
+ /// </summary>
+ private struct Sha1ForNonSecretPurposes
+ {
+ private long length; // Total message length in bits
+ private uint[] w; // Workspace
+ private int pos; // Length of current chunk in bytes
+
+ /// <summary>
+ /// Call Start() to initialize the hash object.
+ /// </summary>
+ public void Start()
+ {
+ if (this.w == null)
+ {
+ this.w = new uint[85];
+ }
+
+ this.length = 0;
+ this.pos = 0;
+ this.w[80] = 0x67452301;
+ this.w[81] = 0xEFCDAB89;
+ this.w[82] = 0x98BADCFE;
+ this.w[83] = 0x10325476;
+ this.w[84] = 0xC3D2E1F0;
+ }
+
+ /// <summary>
+ /// Adds an input byte to the hash.
+ /// </summary>
+ /// <param name="input">Data to include in the hash.</param>
+ public void Append(byte input)
+ {
+ this.w[this.pos / 4] = (this.w[this.pos / 4] << 8) | input;
+ if (64 == ++this.pos)
+ {
+ this.Drain();
+ }
+ }
+
+ /// <summary>
+ /// Adds input bytes to the hash.
+ /// </summary>
+ /// <param name="input">
+ /// Data to include in the hash. Must not be null.
+ /// </param>
+ public void Append(byte[] input)
+ {
+ foreach (var b in input)
+ {
+ this.Append(b);
+ }
+ }
+
+ /// <summary>
+ /// Retrieves the hash value.
+ /// Note that after calling this function, the hash object should
+ /// be considered uninitialized. Subsequent calls to Append or
+ /// Finish will produce useless results. Call Start() to
+ /// reinitialize.
+ /// </summary>
+ /// <param name="output">
+ /// Buffer to receive the hash value. Must not be null.
+ /// Up to 20 bytes of hash will be written to the output buffer.
+ /// If the buffer is smaller than 20 bytes, the remaining hash
+ /// bytes will be lost. If the buffer is larger than 20 bytes, the
+ /// rest of the buffer is left unmodified.
+ /// </param>
+ public void Finish(byte[] output)
+ {
+ long l = this.length + 8 * this.pos;
+ this.Append(0x80);
+ while (this.pos != 56)
+ {
+ this.Append(0x00);
+ }
+
+ unchecked
+ {
+ this.Append((byte)(l >> 56));
+ this.Append((byte)(l >> 48));
+ this.Append((byte)(l >> 40));
+ this.Append((byte)(l >> 32));
+ this.Append((byte)(l >> 24));
+ this.Append((byte)(l >> 16));
+ this.Append((byte)(l >> 8));
+ this.Append((byte)l);
+
+ int end = output.Length < 20 ? output.Length : 20;
+ for (int i = 0; i != end; i++)
+ {
+ uint temp = this.w[80 + i / 4];
+ output[i] = (byte)(temp >> 24);
+ this.w[80 + i / 4] = temp << 8;
+ }
+ }
+ }
+
+ /// <summary>
+ /// Called when this.pos reaches 64.
+ /// </summary>
+ private void Drain()
+ {
+ for (int i = 16; i != 80; i++)
+ {
+ this.w[i] = Rol1((this.w[i - 3] ^ this.w[i - 8] ^ this.w[i - 14] ^ this.w[i - 16]));
+ }
+
+ unchecked
+ {
+ uint a = this.w[80];
+ uint b = this.w[81];
+ uint c = this.w[82];
+ uint d = this.w[83];
+ uint e = this.w[84];
+
+ for (int i = 0; i != 20; i++)
+ {
+ const uint k = 0x5A827999;
+ uint f = (b & c) | ((~b) & d);
+ uint temp = Rol5(a) + f + e + k + this.w[i]; e = d; d = c; c = Rol30(b); b = a; a = temp;
+ }
+
+ for (int i = 20; i != 40; i++)
+ {
+ uint f = b ^ c ^ d;
+ const uint k = 0x6ED9EBA1;
+ uint temp = Rol5(a) + f + e + k + this.w[i]; e = d; d = c; c = Rol30(b); b = a; a = temp;
+ }
+
+ for (int i = 40; i != 60; i++)
+ {
+ uint f = (b & c) | (b & d) | (c & d);
+ const uint k = 0x8F1BBCDC;
+ uint temp = Rol5(a) + f + e + k + this.w[i]; e = d; d = c; c = Rol30(b); b = a; a = temp;
+ }
+
+ for (int i = 60; i != 80; i++)
+ {
+ uint f = b ^ c ^ d;
+ const uint k = 0xCA62C1D6;
+ uint temp = Rol5(a) + f + e + k + this.w[i]; e = d; d = c; c = Rol30(b); b = a; a = temp;
+ }
+
+ this.w[80] += a;
+ this.w[81] += b;
+ this.w[82] += c;
+ this.w[83] += d;
+ this.w[84] += e;
+ }
+
+ this.length += 512; // 64 bytes == 512 bits
+ this.pos = 0;
+ }
+
+ private static uint Rol1(uint input)
+ {
+ return (input << 1) | (input >> 31);
+ }
+
+ private static uint Rol5(uint input)
+ {
+ return (input << 5) | (input >> 27);
+ }
+
+ private static uint Rol30(uint input)
+ {
+ return (input << 30) | (input >> 2);
+ }
+ }
+
+ private static Guid GenerateGuidFromName(string name)
+ {
+ byte[] bytes = Encoding.BigEndianUnicode.GetBytes(name);
+ var hash = new Sha1ForNonSecretPurposes();
+ hash.Start();
+ hash.Append(namespaceBytes);
+ hash.Append(bytes);
+ Array.Resize(ref bytes, 16);
+ hash.Finish(bytes);
+
+ bytes[7] = unchecked((byte)((bytes[7] & 0x0F) | 0x50)); // Set high 4 bits of octet 7 to 5, as per RFC 4122
+ return new Guid(bytes);
+ }
+
+ [SecurityCritical]
+ private unsafe object DecodeObject(int eventId, int parameterId, ref EventSource.EventData* data)
+ {
+ IntPtr dataPointer = data->DataPointer;
+ // advance to next EventData in array
+ ++data;
+
+ Type dataType = m_eventData[eventId].Parameters[parameterId].ParameterType;
+
+ Again:
+ if (dataType == typeof(IntPtr))
+ {
+ return *((IntPtr*)dataPointer);
+ }
+ else if (dataType == typeof(int))
+ {
+ return *((int*)dataPointer);
+ }
+ else if (dataType == typeof(uint))
+ {
+ return *((uint*)dataPointer);
+ }
+ else if (dataType == typeof(long))
+ {
+ return *((long*)dataPointer);
+ }
+ else if (dataType == typeof(ulong))
+ {
+ return *((ulong*)dataPointer);
+ }
+ else if (dataType == typeof(byte))
+ {
+ return *((byte*)dataPointer);
+ }
+ else if (dataType == typeof(sbyte))
+ {
+ return *((sbyte*)dataPointer);
+ }
+ else if (dataType == typeof(short))
+ {
+ return *((short*)dataPointer);
+ }
+ else if (dataType == typeof(ushort))
+ {
+ return *((ushort*)dataPointer);
+ }
+ else if (dataType == typeof(float))
+ {
+ return *((float*)dataPointer);
+ }
+ else if (dataType == typeof(double))
+ {
+ return *((double*)dataPointer);
+ }
+ else if (dataType == typeof(decimal))
+ {
+ return *((decimal*)dataPointer);
+ }
+ else if (dataType == typeof(bool))
+ {
+ // The manifest defines a bool as a 32bit type (WIN32 BOOL), not 1 bit as CLR Does.
+ if (*((int*)dataPointer) == 1)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else if (dataType == typeof(Guid))
+ {
+ return *((Guid*)dataPointer);
+ }
+ else if (dataType == typeof(char))
+ {
+ return *((char*)dataPointer);
+ }
+ else if (dataType == typeof(DateTime))
+ {
+ long dateTimeTicks = *((long*)dataPointer);
+ return DateTime.FromFileTimeUtc(dateTimeTicks);
+ }
+ else if (dataType == typeof(byte[]))
+ {
+ // byte[] are written to EventData* as an int followed by a blob
+ int cbSize = *((int*)dataPointer);
+ byte[] blob = new byte[cbSize];
+ dataPointer = data->DataPointer;
+ data++;
+ for (int i = 0; i < cbSize; ++i)
+ blob[i] = *((byte*)dataPointer);
+ return blob;
+ }
+ else if (dataType == typeof(byte*))
+ {
+ //
+ return null;
+ }
+ else
+ {
+ if (dataType.IsEnum())
+ {
+ dataType = Enum.GetUnderlyingType(dataType);
+ goto Again;
+ }
+
+ // Everything else is marshaled as a string.
+ // ETW strings are NULL-terminated, so marshal everything up to the first
+ // null in the string.
+ return System.Runtime.InteropServices.Marshal.PtrToStringUni(dataPointer);
+ }
+ }
+
+ // Finds the Dispatcher (which holds the filtering state), for a given dispatcher for the current
+ // eventSource).
+ private EventDispatcher GetDispatcher(EventListener listener)
+ {
+ EventDispatcher dispatcher = m_Dispatchers;
+ while (dispatcher != null)
+ {
+ if (dispatcher.m_Listener == listener)
+ return dispatcher;
+ dispatcher = dispatcher.m_Next;
+ }
+ return dispatcher;
+ }
+
+ [SecurityCritical]
+ private unsafe void WriteEventVarargs(int eventId, Guid* childActivityID, object[] args)
+ {
+ if (m_eventSourceEnabled)
+ {
+ try
+ {
+ Contract.Assert(m_eventData != null); // You must have initialized this if you enabled the source.
+ if (childActivityID != null)
+ ValidateEventOpcodeForTransfer(ref m_eventData[eventId]);
+
+#if FEATURE_MANAGED_ETW
+ if (m_eventData[eventId].EnabledForETW)
+ {
+ Guid* pActivityId = null;
+ Guid activityId = Guid.Empty;
+ Guid relatedActivityId = Guid.Empty;
+ EventOpcode opcode = (EventOpcode)m_eventData[eventId].Descriptor.Opcode;
+ EventActivityOptions activityOptions = m_eventData[eventId].ActivityOptions;
+
+ if (childActivityID == null &&
+ ((activityOptions & EventActivityOptions.Disable) == 0))
+ {
+ if (opcode == EventOpcode.Start)
+ {
+ m_activityTracker.OnStart(m_name, m_eventData[eventId].Name, m_eventData[eventId].Descriptor.Task, ref activityId, ref relatedActivityId, m_eventData[eventId].ActivityOptions);
+ }
+ else if (opcode == EventOpcode.Stop)
+ {
+ m_activityTracker.OnStop(m_name, m_eventData[eventId].Name, m_eventData[eventId].Descriptor.Task, ref activityId);
+ }
+
+ if (activityId != Guid.Empty)
+ pActivityId = &activityId;
+ if (relatedActivityId != Guid.Empty)
+ childActivityID = &relatedActivityId;
+ }
+
+#if FEATURE_ACTIVITYSAMPLING
+ // this code should be kept in sync with WriteEventWithRelatedActivityIdCore().
+ SessionMask etwSessions = SessionMask.All;
+ // only compute etwSessions if there are *any* ETW filters enabled...
+ if ((ulong)m_curLiveSessions != 0)
+ etwSessions = GetEtwSessionMask(eventId, childActivityID);
+
+ if ((ulong)etwSessions != 0 || m_legacySessions != null && m_legacySessions.Count > 0)
+ {
+ if (!SelfDescribingEvents)
+ {
+ if (etwSessions.IsEqualOrSupersetOf(m_curLiveSessions))
+ {
+ // by default the Descriptor.Keyword will have the perEventSourceSessionId bit
+ // mask set to 0x0f so, when all ETW sessions want the event we don't need to
+ // synthesize a new one
+ if (!m_provider.WriteEvent(ref m_eventData[eventId].Descriptor, pActivityId, childActivityID, args))
+ ThrowEventSourceException();
+ }
+ else
+ {
+ long origKwd = unchecked((long)((ulong)m_eventData[eventId].Descriptor.Keywords & ~(SessionMask.All.ToEventKeywords())));
+ // only some of the ETW sessions will receive this event. Synthesize a new
+ // Descriptor whose Keywords field will have the appropriate bits set.
+ var desc = new EventDescriptor(
+ m_eventData[eventId].Descriptor.EventId,
+ m_eventData[eventId].Descriptor.Version,
+ m_eventData[eventId].Descriptor.Channel,
+ m_eventData[eventId].Descriptor.Level,
+ m_eventData[eventId].Descriptor.Opcode,
+ m_eventData[eventId].Descriptor.Task,
+ unchecked((long)(ulong)etwSessions | origKwd));
+
+ if (!m_provider.WriteEvent(ref desc, pActivityId, childActivityID, args))
+ ThrowEventSourceException();
+ }
+ }
+ else
+ {
+ TraceLoggingEventTypes tlet = m_eventData[eventId].TraceLoggingEventTypes;
+ if (tlet == null)
+ {
+ tlet = new TraceLoggingEventTypes(m_eventData[eventId].Name,
+ EventTags.None,
+ m_eventData[eventId].Parameters);
+ Interlocked.CompareExchange(ref m_eventData[eventId].TraceLoggingEventTypes, tlet, null);
+
+ }
+ long origKwd = unchecked((long)((ulong)m_eventData[eventId].Descriptor.Keywords & ~(SessionMask.All.ToEventKeywords())));
+ //
+ EventSourceOptions opt = new EventSourceOptions
+ {
+ Keywords = (EventKeywords)unchecked((long)(ulong)etwSessions | origKwd),
+ Level = (EventLevel)m_eventData[eventId].Descriptor.Level,
+ Opcode = (EventOpcode)m_eventData[eventId].Descriptor.Opcode
+ };
+
+ WriteMultiMerge(m_eventData[eventId].Name, ref opt, tlet, pActivityId, childActivityID, args);
+ }
+ }
+#else
+ if (!SelfDescribingEvents)
+ {
+ if (!m_provider.WriteEvent(ref m_eventData[eventId].Descriptor, pActivityId, childActivityID, args))
+ ThrowEventSourceException();
+ }
+ else
+ {
+ TraceLoggingEventTypes tlet = m_eventData[eventId].TraceLoggingEventTypes;
+ if (tlet == null)
+ {
+ tlet = new TraceLoggingEventTypes(m_eventData[eventId].Name,
+ EventTags.None,
+ m_eventData[eventId].Parameters);
+ Interlocked.CompareExchange(ref m_eventData[eventId].TraceLoggingEventTypes, tlet, null);
+
+ }
+ //
+ EventSourceOptions opt = new EventSourceOptions
+ {
+ Keywords = (EventKeywords)m_eventData[eventId].Descriptor.Keywords,
+ Level = (EventLevel)m_eventData[eventId].Descriptor.Level,
+ Opcode = (EventOpcode)m_eventData[eventId].Descriptor.Opcode
+ };
+
+ WriteMultiMerge(m_eventData[eventId].Name, ref opt, tlet, pActivityId, childActivityID, args);
+ }
+#endif // FEATURE_ACTIVITYSAMPLING
+ }
+#endif // FEATURE_MANAGED_ETW
+ if (m_Dispatchers != null && m_eventData[eventId].EnabledForAnyListener)
+ {
+#if !ES_BUILD_STANDALONE
+ // Maintain old behavior - object identity is preserved
+ if (AppContextSwitches.PreserveEventListnerObjectIdentity)
+ {
+ WriteToAllListeners(eventId, childActivityID, args);
+ }
+ else
+#endif // !ES_BUILD_STANDALONE
+ {
+ object[] serializedArgs = SerializeEventArgs(eventId, args);
+ WriteToAllListeners(eventId, childActivityID, serializedArgs);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ if (ex is EventSourceException)
+ throw;
+ else
+ ThrowEventSourceException(ex);
+ }
+ }
+ }
+
+ [SecurityCritical]
+ unsafe private object[] SerializeEventArgs(int eventId, object[] args)
+ {
+ TraceLoggingEventTypes eventTypes = m_eventData[eventId].TraceLoggingEventTypes;
+ if (eventTypes == null)
+ {
+ eventTypes = new TraceLoggingEventTypes(m_eventData[eventId].Name,
+ EventTags.None,
+ m_eventData[eventId].Parameters);
+ Interlocked.CompareExchange(ref m_eventData[eventId].TraceLoggingEventTypes, eventTypes, null);
+ }
+ var eventData = new object[eventTypes.typeInfos.Length];
+ for (int i = 0; i < eventTypes.typeInfos.Length; i++)
+ {
+ eventData[i] = eventTypes.typeInfos[i].GetData(args[i]);
+ }
+ return eventData;
+ }
+
+ [SecurityCritical]
+ unsafe private void WriteToAllListeners(int eventId, Guid* childActivityID, int eventDataCount, EventSource.EventData* data)
+ {
+ int paramCount = m_eventData[eventId].Parameters.Length;
+ if (eventDataCount != paramCount)
+ {
+ ReportOutOfBandMessage(Environment.GetResourceString("EventSource_EventParametersMismatch", eventId, eventDataCount, paramCount), true);
+ paramCount = Math.Min(paramCount, eventDataCount);
+ }
+
+ object[] args = new object[paramCount];
+
+ EventSource.EventData* dataPtr = data;
+ for (int i = 0; i < paramCount; i++)
+ args[i] = DecodeObject(eventId, i, ref dataPtr);
+ WriteToAllListeners(eventId, childActivityID, args);
+ }
+
+ // helper for writing to all EventListeners attached the current eventSource.
+ [SecurityCritical]
+ unsafe private void WriteToAllListeners(int eventId, Guid* childActivityID, params object[] args)
+ {
+ EventWrittenEventArgs eventCallbackArgs = new EventWrittenEventArgs(this);
+ eventCallbackArgs.EventId = eventId;
+ if (childActivityID != null)
+ eventCallbackArgs.RelatedActivityId = *childActivityID;
+ eventCallbackArgs.EventName = m_eventData[eventId].Name;
+ eventCallbackArgs.Message = m_eventData[eventId].Message;
+ eventCallbackArgs.Payload = new ReadOnlyCollection<object>(args);
+
+ DisptachToAllListeners(eventId, childActivityID, eventCallbackArgs);
+ }
+
+ [SecurityCritical]
+ private unsafe void DisptachToAllListeners(int eventId, Guid* childActivityID, EventWrittenEventArgs eventCallbackArgs)
+ {
+ Exception lastThrownException = null;
+ for (EventDispatcher dispatcher = m_Dispatchers; dispatcher != null; dispatcher = dispatcher.m_Next)
+ {
+ Contract.Assert(dispatcher.m_EventEnabled != null);
+ if (eventId == -1 || dispatcher.m_EventEnabled[eventId])
+ {
+#if FEATURE_ACTIVITYSAMPLING
+ var activityFilter = dispatcher.m_Listener.m_activityFilter;
+ // order below is important as PassesActivityFilter will "flow" active activities
+ // even when the current EventSource doesn't have filtering enabled. This allows
+ // interesting activities to be updated so that sources that do sample can get
+ // accurate data
+ if (activityFilter == null ||
+ ActivityFilter.PassesActivityFilter(activityFilter, childActivityID,
+ m_eventData[eventId].TriggersActivityTracking > 0,
+ this, eventId) ||
+ !dispatcher.m_activityFilteringEnabled)
+#endif // FEATURE_ACTIVITYSAMPLING
+ {
+ try
+ {
+ dispatcher.m_Listener.OnEventWritten(eventCallbackArgs);
+ }
+ catch (Exception e)
+ {
+ ReportOutOfBandMessage("ERROR: Exception during EventSource.OnEventWritten: "
+ + e.Message, false);
+ lastThrownException = e;
+ }
+ }
+ }
+ }
+
+ if (lastThrownException != null)
+ {
+ throw new EventSourceException(lastThrownException);
+ }
+ }
+
+ [SecuritySafeCritical]
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ private unsafe void WriteEventString(EventLevel level, long keywords, string msgString)
+ {
+ if (m_provider != null)
+ {
+ string eventName = "EventSourceMessage";
+ if (SelfDescribingEvents)
+ {
+ EventSourceOptions opt = new EventSourceOptions
+ {
+ Keywords = (EventKeywords)unchecked(keywords),
+ Level = level
+ };
+ var msg = new { message = msgString };
+ var tlet = new TraceLoggingEventTypes(eventName, EventTags.None, new Type[] { msg.GetType() });
+ WriteMultiMergeInner(eventName, ref opt, tlet, null, null, msg);
+ }
+ else
+ {
+ // We want the name of the provider to show up so if we don't have a manifest we create
+ // on that at least has the provider name (I don't define any events).
+ if (m_rawManifest == null && m_outOfBandMessageCount == 1)
+ {
+ ManifestBuilder manifestBuilder = new ManifestBuilder(Name, Guid, Name, null, EventManifestOptions.None);
+ manifestBuilder.StartEvent(eventName, new EventAttribute(0) { Level = EventLevel.LogAlways, Task = (EventTask)0xFFFE });
+ manifestBuilder.AddEventParameter(typeof(string), "message");
+ manifestBuilder.EndEvent();
+ SendManifest(manifestBuilder.CreateManifest());
+ }
+
+ // We use this low level routine to to bypass the enabled checking, since the eventSource itself is only partially inited.
+ fixed (char* msgStringPtr = msgString)
+ {
+ EventDescriptor descr = new EventDescriptor(0, 0, 0, (byte)level, 0, 0, keywords);
+ EventProvider.EventData data = new EventProvider.EventData();
+ data.Ptr = (ulong)msgStringPtr;
+ data.Size = (uint)(2 * (msgString.Length + 1));
+ data.Reserved = 0;
+ m_provider.WriteEvent(ref descr, null, null, 1, (IntPtr)((void*)&data));
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// Since this is a means of reporting errors (see ReportoutOfBandMessage) any failure encountered
+ /// while writing the message to any one of the listeners will be silently ignored.
+ /// </summary>
+ private void WriteStringToAllListeners(string eventName, string msg)
+ {
+ EventWrittenEventArgs eventCallbackArgs = new EventWrittenEventArgs(this);
+ eventCallbackArgs.EventId = 0;
+ eventCallbackArgs.Message = msg;
+ eventCallbackArgs.Payload = new ReadOnlyCollection<object>(new List<object>() { msg });
+ eventCallbackArgs.PayloadNames = new ReadOnlyCollection<string>(new List<string> { "message" });
+ eventCallbackArgs.EventName = eventName;
+
+ for (EventDispatcher dispatcher = m_Dispatchers; dispatcher != null; dispatcher = dispatcher.m_Next)
+ {
+ bool dispatcherEnabled = false;
+ if (dispatcher.m_EventEnabled == null)
+ {
+ // if the listeners that weren't correctly initialized, we will send to it
+ // since this is an error message and we want to see it go out.
+ dispatcherEnabled = true;
+ }
+ else
+ {
+ // if there's *any* enabled event on the dispatcher we'll write out the string
+ // otherwise we'll treat the listener as disabled and skip it
+ for (int evtId = 0; evtId < dispatcher.m_EventEnabled.Length; ++evtId)
+ {
+ if (dispatcher.m_EventEnabled[evtId])
+ {
+ dispatcherEnabled = true;
+ break;
+ }
+ }
+ }
+ try
+ {
+ if (dispatcherEnabled)
+ dispatcher.m_Listener.OnEventWritten(eventCallbackArgs);
+ }
+ catch
+ {
+ // ignore any exceptions thrown by listeners' OnEventWritten
+ }
+ }
+ }
+
+#if FEATURE_ACTIVITYSAMPLING
+ [SecurityCritical]
+ unsafe private SessionMask GetEtwSessionMask(int eventId, Guid* childActivityID)
+ {
+ SessionMask etwSessions = new SessionMask();
+
+ for (int i = 0; i < SessionMask.MAX; ++i)
+ {
+ EtwSession etwSession = m_etwSessionIdMap[i];
+ if (etwSession != null)
+ {
+ ActivityFilter activityFilter = etwSession.m_activityFilter;
+ // PassesActivityFilter() will flow "interesting" activities, so make sure
+ // to perform this test first, before ORing with ~m_activityFilteringForETWEnabled
+ // (note: the first test for !m_activityFilteringForETWEnabled[i] ensures we
+ // do not fire events indiscriminately, when no filters are specified, but only
+ // if, in addition, the session did not also enable ActivitySampling)
+ if (activityFilter == null && !m_activityFilteringForETWEnabled[i] ||
+ activityFilter != null &&
+ ActivityFilter.PassesActivityFilter(activityFilter, childActivityID,
+ m_eventData[eventId].TriggersActivityTracking > 0, this, eventId) ||
+ !m_activityFilteringForETWEnabled[i])
+ {
+ etwSessions[i] = true;
+ }
+ }
+ }
+ // flow "interesting" activities for all legacy sessions in which there's some
+ // level of activity tracing enabled (even other EventSources)
+ if (m_legacySessions != null && m_legacySessions.Count > 0 &&
+ (EventOpcode)m_eventData[eventId].Descriptor.Opcode == EventOpcode.Send)
+ {
+ // only calculate InternalCurrentThreadActivityId once
+ Guid* pCurrentActivityId = null;
+ Guid currentActivityId;
+ foreach (var legacyEtwSession in m_legacySessions)
+ {
+ if (legacyEtwSession == null)
+ continue;
+
+ ActivityFilter activityFilter = legacyEtwSession.m_activityFilter;
+ if (activityFilter != null)
+ {
+ if (pCurrentActivityId == null)
+ {
+ currentActivityId = InternalCurrentThreadActivityId;
+ pCurrentActivityId = &currentActivityId;
+ }
+ ActivityFilter.FlowActivityIfNeeded(activityFilter, pCurrentActivityId, childActivityID);
+ }
+ }
+ }
+
+ return etwSessions;
+ }
+#endif // FEATURE_ACTIVITYSAMPLING
+
+ /// <summary>
+ /// Returns true if 'eventNum' is enabled if you only consider the level and matchAnyKeyword filters.
+ /// It is possible that eventSources turn off the event based on additional filtering criteria.
+ /// </summary>
+ private bool IsEnabledByDefault(int eventNum, bool enable, EventLevel currentLevel, EventKeywords currentMatchAnyKeyword)
+ {
+ if (!enable)
+ return false;
+
+ EventLevel eventLevel = (EventLevel)m_eventData[eventNum].Descriptor.Level;
+ EventKeywords eventKeywords = unchecked((EventKeywords)((ulong)m_eventData[eventNum].Descriptor.Keywords & (~(SessionMask.All.ToEventKeywords()))));
+
+#if FEATURE_MANAGED_ETW_CHANNELS
+ EventChannel channel = unchecked((EventChannel)m_eventData[eventNum].Descriptor.Channel);
+#else
+ EventChannel channel = EventChannel.None;
+#endif
+
+ return IsEnabledCommon(enable, currentLevel, currentMatchAnyKeyword, eventLevel, eventKeywords, channel);
+ }
+
+ private bool IsEnabledCommon(bool enabled, EventLevel currentLevel, EventKeywords currentMatchAnyKeyword,
+ EventLevel eventLevel, EventKeywords eventKeywords, EventChannel eventChannel)
+ {
+ if (!enabled)
+ return false;
+
+ // does is pass the level test?
+ if ((currentLevel != 0) && (currentLevel < eventLevel))
+ return false;
+
+ // if yes, does it pass the keywords test?
+ if (currentMatchAnyKeyword != 0 && eventKeywords != 0)
+ {
+#if FEATURE_MANAGED_ETW_CHANNELS
+ // is there a channel with keywords that match currentMatchAnyKeyword?
+ if (eventChannel != EventChannel.None && this.m_channelData != null && this.m_channelData.Length > (int)eventChannel)
+ {
+ EventKeywords channel_keywords = unchecked((EventKeywords)(m_channelData[(int)eventChannel] | (ulong)eventKeywords));
+ if (channel_keywords != 0 && (channel_keywords & currentMatchAnyKeyword) == 0)
+ return false;
+ }
+ else
+#endif
+ {
+ if ((unchecked((ulong)eventKeywords & (ulong)currentMatchAnyKeyword)) == 0)
+ return false;
+ }
+ }
+ return true;
+
+ }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+ private void ThrowEventSourceException(Exception innerEx = null)
+ {
+ // If we fail during ouf of band logging we may end up trying
+ // to throw another EventSourceException, thus hitting a StackOverflowException.
+ // Avoid StackOverflow by making sure we do not recursively call this method.
+ if (m_EventSourceExceptionRecurenceCount > 0)
+ return;
+ try
+ {
+ m_EventSourceExceptionRecurenceCount++;
+
+ //
+ switch (EventProvider.GetLastWriteEventError())
+ {
+ case EventProvider.WriteEventErrorCode.EventTooBig:
+ ReportOutOfBandMessage("EventSourceException: " + Environment.GetResourceString("EventSource_EventTooBig"), true);
+ if (ThrowOnEventWriteErrors) throw new EventSourceException(Environment.GetResourceString("EventSource_EventTooBig"), innerEx);
+ break;
+ case EventProvider.WriteEventErrorCode.NoFreeBuffers:
+ ReportOutOfBandMessage("EventSourceException: " + Environment.GetResourceString("EventSource_NoFreeBuffers"), true);
+ if (ThrowOnEventWriteErrors) throw new EventSourceException(Environment.GetResourceString("EventSource_NoFreeBuffers"), innerEx);
+ break;
+ case EventProvider.WriteEventErrorCode.NullInput:
+ ReportOutOfBandMessage("EventSourceException: " + Environment.GetResourceString("EventSource_NullInput"), true);
+ if (ThrowOnEventWriteErrors) throw new EventSourceException(Environment.GetResourceString("EventSource_NullInput"), innerEx);
+ break;
+ case EventProvider.WriteEventErrorCode.TooManyArgs:
+ ReportOutOfBandMessage("EventSourceException: " + Environment.GetResourceString("EventSource_TooManyArgs"), true);
+ if (ThrowOnEventWriteErrors) throw new EventSourceException(Environment.GetResourceString("EventSource_TooManyArgs"), innerEx);
+ break;
+ default:
+ if (innerEx != null)
+ ReportOutOfBandMessage("EventSourceException: " + innerEx.GetType() + ":" + innerEx.Message, true);
+ else
+ ReportOutOfBandMessage("EventSourceException", true);
+ if (ThrowOnEventWriteErrors) throw new EventSourceException(innerEx);
+ break;
+ }
+ }
+ finally
+ {
+ m_EventSourceExceptionRecurenceCount--;
+ }
+ }
+
+ private void ValidateEventOpcodeForTransfer(ref EventMetadata eventData)
+ {
+ if ((EventOpcode)eventData.Descriptor.Opcode != EventOpcode.Send &&
+ (EventOpcode)eventData.Descriptor.Opcode != EventOpcode.Receive)
+ {
+ ThrowEventSourceException();
+ }
+ }
+
+ internal static EventOpcode GetOpcodeWithDefault(EventOpcode opcode, string eventName)
+ {
+ if (opcode == EventOpcode.Info)
+ {
+ if (eventName.EndsWith(s_ActivityStartSuffix))
+ {
+ return EventOpcode.Start;
+ }
+ else if (eventName.EndsWith(s_ActivityStopSuffix))
+ {
+ return EventOpcode.Stop;
+ }
+ }
+
+ return opcode;
+ }
+
+#if FEATURE_MANAGED_ETW
+ /// <summary>
+ /// This class lets us hook the 'OnEventCommand' from the eventSource.
+ /// </summary>
+ private class OverideEventProvider : EventProvider
+ {
+ public OverideEventProvider(EventSource eventSource)
+ {
+ this.m_eventSource = eventSource;
+ }
+ protected override void OnControllerCommand(ControllerCommand command, IDictionary<string, string> arguments,
+ int perEventSourceSessionId, int etwSessionId)
+ {
+ // We use null to represent the ETW EventListener.
+ EventListener listener = null;
+ m_eventSource.SendCommand(listener, perEventSourceSessionId, etwSessionId,
+ (EventCommand)command, IsEnabled(), Level, MatchAnyKeyword, arguments);
+ }
+ private EventSource m_eventSource;
+ }
+#endif
+
+ /// <summary>
+ /// Used to hold all the static information about an event. This includes everything in the event
+ /// descriptor as well as some stuff we added specifically for EventSource. see the
+ /// code:m_eventData for where we use this.
+ /// </summary>
+ internal struct EventMetadata
+ {
+ public EventDescriptor Descriptor;
+ public EventTags Tags;
+ public bool EnabledForAnyListener; // true if any dispatcher has this event turned on
+ public bool EnabledForETW; // is this event on for the OS ETW data dispatcher?
+#if !FEATURE_ACTIVITYSAMPLING
+#pragma warning disable 0649
+#endif
+ public byte TriggersActivityTracking; // count of listeners that marked this event as trigger for start of activity logging.
+#if !FEATURE_ACTIVITYSAMPLING
+#pragma warning restore 0649
+#endif
+ public string Name; // the name of the event
+ public string Message; // If the event has a message associated with it, this is it.
+ public ParameterInfo[] Parameters; //
+
+ public TraceLoggingEventTypes TraceLoggingEventTypes;
+ public EventActivityOptions ActivityOptions;
+ };
+
+ // This is the internal entry point that code:EventListeners call when wanting to send a command to a
+ // eventSource. The logic is as follows
+ //
+ // * if Command == Update
+ // * perEventSourceSessionId specifies the per-provider ETW session ID that the command applies
+ // to (if listener != null)
+ // perEventSourceSessionId = 0 - reserved for EventListeners
+ // perEventSourceSessionId = 1..SessionMask.MAX - reserved for activity tracing aware ETW sessions
+ // perEventSourceSessionId-1 represents the bit in the reserved field (bits 44..47) in
+ // Keywords that identifies the session
+ // perEventSourceSessionId = SessionMask.MAX+1 - reserved for legacy ETW sessions; these are
+ // discriminated by etwSessionId
+ // * etwSessionId specifies a machine-wide ETW session ID; this allows correlation of
+ // activity tracing across different providers (which might have different sessionIds
+ // for the same ETW session)
+ // * enable, level, matchAnyKeywords are used to set a default for all events for the
+ // eventSource. In particular, if 'enabled' is false, 'level' and
+ // 'matchAnyKeywords' are not used.
+ // * OnEventCommand is invoked, which may cause calls to
+ // code:EventSource.EnableEventForDispatcher which may cause changes in the filtering
+ // depending on the logic in that routine.
+ // * else (command != Update)
+ // * Simply call OnEventCommand. The expectation is that filtering is NOT changed.
+ // * The 'enabled' 'level', matchAnyKeyword' arguments are ignored (must be true, 0, 0).
+ //
+ // dispatcher == null has special meaning. It is the 'ETW' dispatcher.
+ internal void SendCommand(EventListener listener, int perEventSourceSessionId, int etwSessionId,
+ EventCommand command, bool enable,
+ EventLevel level, EventKeywords matchAnyKeyword,
+ IDictionary<string, string> commandArguments)
+ {
+ var commandArgs = new EventCommandEventArgs(command, commandArguments, this, listener, perEventSourceSessionId, etwSessionId, enable, level, matchAnyKeyword);
+ lock (EventListener.EventListenersLock)
+ {
+ if (m_completelyInited) // We are fully initialized, do the command
+ DoCommand(commandArgs);
+ else
+ {
+ // We can't do the command, simply remember it and we do it when we are fully constructed.
+ commandArgs.nextCommand = m_deferredCommands;
+ m_deferredCommands = commandArgs;
+ }
+ }
+ }
+
+ /// <summary>
+ /// We want the eventSource to be fully initialized when we do commands because that way we can send
+ /// error messages and other logging directly to the event stream. Unfortunately we can get callbacks
+ /// when we are not fully initialized. In that case we store them in 'commandArgs' and do them later.
+ /// This helper actually does all actual command logic.
+ /// </summary>
+ internal void DoCommand(EventCommandEventArgs commandArgs)
+ {
+ // PRECONDITION: We should be holding the EventListener.EventListenersLock
+ // We defer commands until we are completely inited. This allows error messages to be sent.
+ Contract.Assert(m_completelyInited);
+
+ if (m_provider == null) // If we failed to construct
+ return;
+
+ m_outOfBandMessageCount = 0;
+ bool shouldReport = (commandArgs.perEventSourceSessionId > 0) && (commandArgs.perEventSourceSessionId <= SessionMask.MAX);
+ try
+ {
+ EnsureDescriptorsInitialized();
+ Contract.Assert(m_eventData != null);
+
+ // Find the per-EventSource dispatcher corresponding to registered dispatcher
+ commandArgs.dispatcher = GetDispatcher(commandArgs.listener);
+ if (commandArgs.dispatcher == null && commandArgs.listener != null) // dispatcher == null means ETW dispatcher
+ throw new ArgumentException(Environment.GetResourceString("EventSource_ListenerNotFound"));
+
+ if (commandArgs.Arguments == null)
+ commandArgs.Arguments = new Dictionary<string, string>();
+
+ if (commandArgs.Command == EventCommand.Update)
+ {
+ // Set it up using the 'standard' filtering bitfields (use the "global" enable, not session specific one)
+ for (int i = 0; i < m_eventData.Length; i++)
+ EnableEventForDispatcher(commandArgs.dispatcher, i, IsEnabledByDefault(i, commandArgs.enable, commandArgs.level, commandArgs.matchAnyKeyword));
+
+ if (commandArgs.enable)
+ {
+ if (!m_eventSourceEnabled)
+ {
+ // EventSource turned on for the first time, simply copy the bits.
+ m_level = commandArgs.level;
+ m_matchAnyKeyword = commandArgs.matchAnyKeyword;
+ }
+ else
+ {
+ // Already enabled, make it the most verbose of the existing and new filter
+ if (commandArgs.level > m_level)
+ m_level = commandArgs.level;
+ if (commandArgs.matchAnyKeyword == 0)
+ m_matchAnyKeyword = 0;
+ else if (m_matchAnyKeyword != 0)
+ m_matchAnyKeyword = unchecked(m_matchAnyKeyword | commandArgs.matchAnyKeyword);
+ }
+ }
+
+ // interpret perEventSourceSessionId's sign, and adjust perEventSourceSessionId to
+ // represent 0-based positive values
+ bool bSessionEnable = (commandArgs.perEventSourceSessionId >= 0);
+ if (commandArgs.perEventSourceSessionId == 0 && commandArgs.enable == false)
+ bSessionEnable = false;
+
+ if (commandArgs.listener == null)
+ {
+ if (!bSessionEnable)
+ commandArgs.perEventSourceSessionId = -commandArgs.perEventSourceSessionId;
+ // for "global" enable/disable (passed in with listener == null and
+ // perEventSourceSessionId == 0) perEventSourceSessionId becomes -1
+ --commandArgs.perEventSourceSessionId;
+ }
+
+ commandArgs.Command = bSessionEnable ? EventCommand.Enable : EventCommand.Disable;
+
+ // perEventSourceSessionId = -1 when ETW sent a notification, but the set of active sessions
+ // hasn't changed.
+ // sesisonId = SessionMask.MAX when one of the legacy ETW sessions changed
+ // 0 <= perEventSourceSessionId < SessionMask.MAX for activity-tracing aware sessions
+ Contract.Assert(commandArgs.perEventSourceSessionId >= -1 && commandArgs.perEventSourceSessionId <= SessionMask.MAX);
+
+ // Send the manifest if we are enabling an ETW session
+ if (bSessionEnable && commandArgs.dispatcher == null)
+ {
+ // eventSourceDispatcher == null means this is the ETW manifest
+
+ // Note that we unconditionally send the manifest whenever we are enabled, even if
+ // we were already enabled. This is because there may be multiple sessions active
+ // and we can't know that all the sessions have seen the manifest.
+ if (!SelfDescribingEvents)
+ SendManifest(m_rawManifest);
+ }
+
+#if FEATURE_ACTIVITYSAMPLING
+ if (bSessionEnable && commandArgs.perEventSourceSessionId != -1)
+ {
+ bool participateInSampling = false;
+ string activityFilters;
+ int sessionIdBit;
+
+ ParseCommandArgs(commandArgs.Arguments, out participateInSampling,
+ out activityFilters, out sessionIdBit);
+
+ if (commandArgs.listener == null && commandArgs.Arguments.Count > 0 && commandArgs.perEventSourceSessionId != sessionIdBit)
+ {
+ throw new ArgumentException(Environment.GetResourceString("EventSource_SessionIdError",
+ commandArgs.perEventSourceSessionId + SessionMask.SHIFT_SESSION_TO_KEYWORD,
+ sessionIdBit + SessionMask.SHIFT_SESSION_TO_KEYWORD));
+ }
+
+ if (commandArgs.listener == null)
+ {
+ UpdateEtwSession(commandArgs.perEventSourceSessionId, commandArgs.etwSessionId, true, activityFilters, participateInSampling);
+ }
+ else
+ {
+ ActivityFilter.UpdateFilter(ref commandArgs.listener.m_activityFilter, this, 0, activityFilters);
+ commandArgs.dispatcher.m_activityFilteringEnabled = participateInSampling;
+ }
+ }
+ else if (!bSessionEnable && commandArgs.listener == null)
+ {
+ // if we disable an ETW session, indicate that in a synthesized command argument
+ if (commandArgs.perEventSourceSessionId >= 0 && commandArgs.perEventSourceSessionId < SessionMask.MAX)
+ {
+ commandArgs.Arguments["EtwSessionKeyword"] = (commandArgs.perEventSourceSessionId + SessionMask.SHIFT_SESSION_TO_KEYWORD).ToString(CultureInfo.InvariantCulture);
+ }
+ }
+#endif // FEATURE_ACTIVITYSAMPLING
+
+ // Turn on the enable bit before making the OnEventCommand callback This allows you to do useful
+ // things like log messages, or test if keywords are enabled in the callback.
+ if (commandArgs.enable)
+ {
+ Contract.Assert(m_eventData != null);
+ m_eventSourceEnabled = true;
+ }
+
+ this.OnEventCommand(commandArgs);
+
+#if FEATURE_ACTIVITYSAMPLING
+ if (commandArgs.listener == null && !bSessionEnable && commandArgs.perEventSourceSessionId != -1)
+ {
+ // if we disable an ETW session, complete disabling it
+ UpdateEtwSession(commandArgs.perEventSourceSessionId, commandArgs.etwSessionId, false, null, false);
+ }
+#endif // FEATURE_ACTIVITYSAMPLING
+
+ if (!commandArgs.enable)
+ {
+ // If we are disabling, maybe we can turn on 'quick checks' to filter
+ // quickly. These are all just optimizations (since later checks will still filter)
+
+#if FEATURE_ACTIVITYSAMPLING
+ // Turn off (and forget) any information about Activity Tracing.
+ if (commandArgs.listener == null)
+ {
+ // reset all filtering information for activity-tracing-aware sessions
+ for (int i = 0; i < SessionMask.MAX; ++i)
+ {
+ EtwSession etwSession = m_etwSessionIdMap[i];
+ if (etwSession != null)
+ ActivityFilter.DisableFilter(ref etwSession.m_activityFilter, this);
+ }
+ m_activityFilteringForETWEnabled = new SessionMask(0);
+ m_curLiveSessions = new SessionMask(0);
+ // reset activity-tracing-aware sessions
+ if (m_etwSessionIdMap != null)
+ for (int i = 0; i < SessionMask.MAX; ++i)
+ m_etwSessionIdMap[i] = null;
+ // reset legacy sessions
+ if (m_legacySessions != null)
+ m_legacySessions.Clear();
+ }
+ else
+ {
+ ActivityFilter.DisableFilter(ref commandArgs.listener.m_activityFilter, this);
+ commandArgs.dispatcher.m_activityFilteringEnabled = false;
+ }
+#endif // FEATURE_ACTIVITYSAMPLING
+
+ // There is a good chance EnabledForAnyListener are not as accurate as
+ // they could be, go ahead and get a better estimate.
+ for (int i = 0; i < m_eventData.Length; i++)
+ {
+ bool isEnabledForAnyListener = false;
+ for (EventDispatcher dispatcher = m_Dispatchers; dispatcher != null; dispatcher = dispatcher.m_Next)
+ {
+ if (dispatcher.m_EventEnabled[i])
+ {
+ isEnabledForAnyListener = true;
+ break;
+ }
+ }
+ m_eventData[i].EnabledForAnyListener = isEnabledForAnyListener;
+ }
+
+ // If no events are enabled, disable the global enabled bit.
+ if (!AnyEventEnabled())
+ {
+ m_level = 0;
+ m_matchAnyKeyword = 0;
+ m_eventSourceEnabled = false;
+ }
+ }
+#if FEATURE_ACTIVITYSAMPLING
+ UpdateKwdTriggers(commandArgs.enable);
+#endif // FEATURE_ACTIVITYSAMPLING
+ }
+ else
+ {
+ if (commandArgs.Command == EventCommand.SendManifest)
+ {
+ //
+ if (m_rawManifest != null)
+ SendManifest(m_rawManifest);
+ }
+
+ // These are not used for non-update commands and thus should always be 'default' values
+ // Contract.Assert(enable == true);
+ // Contract.Assert(level == EventLevel.LogAlways);
+ // Contract.Assert(matchAnyKeyword == EventKeywords.None);
+
+ this.OnEventCommand(commandArgs);
+ }
+
+#if FEATURE_ACTIVITYSAMPLING
+ if (m_completelyInited && (commandArgs.listener != null || shouldReport))
+ {
+ SessionMask m = SessionMask.FromId(commandArgs.perEventSourceSessionId);
+ ReportActivitySamplingInfo(commandArgs.listener, m);
+ }
+#endif // FEATURE_ACTIVITYSAMPLING
+ }
+ catch (Exception e)
+ {
+ // When the ETW session is created after the EventSource has registered with the ETW system
+ // we can send any error messages here.
+ ReportOutOfBandMessage("ERROR: Exception in Command Processing for EventSource " + Name + ": " + e.Message, true);
+ // We never throw when doing a command.
+ }
+ }
+
+#if FEATURE_ACTIVITYSAMPLING
+
+ internal void UpdateEtwSession(
+ int sessionIdBit,
+ int etwSessionId,
+ bool bEnable,
+ string activityFilters,
+ bool participateInSampling)
+ {
+ if (sessionIdBit < SessionMask.MAX)
+ {
+ // activity-tracing-aware etw session
+ if (bEnable)
+ {
+ var etwSession = EtwSession.GetEtwSession(etwSessionId, true);
+ ActivityFilter.UpdateFilter(ref etwSession.m_activityFilter, this, sessionIdBit, activityFilters);
+ m_etwSessionIdMap[sessionIdBit] = etwSession;
+ m_activityFilteringForETWEnabled[sessionIdBit] = participateInSampling;
+ }
+ else
+ {
+ var etwSession = EtwSession.GetEtwSession(etwSessionId);
+ m_etwSessionIdMap[sessionIdBit] = null;
+ m_activityFilteringForETWEnabled[sessionIdBit] = false;
+ if (etwSession != null)
+ {
+ ActivityFilter.DisableFilter(ref etwSession.m_activityFilter, this);
+ // the ETW session is going away; remove it from the global list
+ EtwSession.RemoveEtwSession(etwSession);
+ }
+ }
+ m_curLiveSessions[sessionIdBit] = bEnable;
+ }
+ else
+ {
+ // legacy etw session
+ if (bEnable)
+ {
+ if (m_legacySessions == null)
+ m_legacySessions = new List<EtwSession>(8);
+ var etwSession = EtwSession.GetEtwSession(etwSessionId, true);
+ if (!m_legacySessions.Contains(etwSession))
+ m_legacySessions.Add(etwSession);
+ }
+ else
+ {
+ var etwSession = EtwSession.GetEtwSession(etwSessionId);
+ if (etwSession != null)
+ {
+ if (m_legacySessions != null)
+ m_legacySessions.Remove(etwSession);
+ // the ETW session is going away; remove it from the global list
+ EtwSession.RemoveEtwSession(etwSession);
+ }
+ }
+ }
+ }
+
+ internal static bool ParseCommandArgs(
+ IDictionary<string, string> commandArguments,
+ out bool participateInSampling,
+ out string activityFilters,
+ out int sessionIdBit)
+ {
+ bool res = true;
+ participateInSampling = false;
+ string activityFilterString;
+ if (commandArguments.TryGetValue("ActivitySamplingStartEvent", out activityFilters))
+ {
+ // if a start event is specified default the event source to participate in sampling
+ participateInSampling = true;
+ }
+
+ if (commandArguments.TryGetValue("ActivitySampling", out activityFilterString))
+ {
+ if (string.Compare(activityFilterString, "false", StringComparison.OrdinalIgnoreCase) == 0 ||
+ activityFilterString == "0")
+ participateInSampling = false;
+ else
+ participateInSampling = true;
+ }
+
+ string sSessionKwd;
+ int sessionKwd = -1;
+ if (!commandArguments.TryGetValue("EtwSessionKeyword", out sSessionKwd) ||
+ !int.TryParse(sSessionKwd, out sessionKwd) ||
+ sessionKwd < SessionMask.SHIFT_SESSION_TO_KEYWORD ||
+ sessionKwd >= SessionMask.SHIFT_SESSION_TO_KEYWORD + SessionMask.MAX)
+ {
+ sessionIdBit = -1;
+ res = false;
+ }
+ else
+ {
+ sessionIdBit = sessionKwd - SessionMask.SHIFT_SESSION_TO_KEYWORD;
+ }
+ return res;
+ }
+
+ internal void UpdateKwdTriggers(bool enable)
+ {
+ if (enable)
+ {
+ // recompute m_keywordTriggers
+ ulong gKeywords = unchecked((ulong)m_matchAnyKeyword);
+ if (gKeywords == 0)
+ gKeywords = 0xFFFFffffFFFFffff;
+
+ m_keywordTriggers = 0;
+ for (int sessId = 0; sessId < SessionMask.MAX; ++sessId)
+ {
+ EtwSession etwSession = m_etwSessionIdMap[sessId];
+ if (etwSession == null)
+ continue;
+
+ ActivityFilter activityFilter = etwSession.m_activityFilter;
+ ActivityFilter.UpdateKwdTriggers(activityFilter, m_guid, this, unchecked((EventKeywords)gKeywords));
+ }
+ }
+ else
+ {
+ m_keywordTriggers = 0;
+ }
+ }
+
+#endif // FEATURE_ACTIVITYSAMPLING
+
+ /// <summary>
+ /// If 'value is 'true' then set the eventSource so that 'dispatcher' will receive event with the eventId
+ /// of 'eventId. If value is 'false' disable the event for that dispatcher. If 'eventId' is out of
+ /// range return false, otherwise true.
+ /// </summary>
+ internal bool EnableEventForDispatcher(EventDispatcher dispatcher, int eventId, bool value)
+ {
+ if (dispatcher == null)
+ {
+ if (eventId >= m_eventData.Length)
+ return false;
+#if FEATURE_MANAGED_ETW
+ if (m_provider != null)
+ m_eventData[eventId].EnabledForETW = value;
+#endif
+ }
+ else
+ {
+ if (eventId >= dispatcher.m_EventEnabled.Length)
+ return false;
+ dispatcher.m_EventEnabled[eventId] = value;
+ if (value)
+ m_eventData[eventId].EnabledForAnyListener = true;
+ }
+ return true;
+ }
+
+ /// <summary>
+ /// Returns true if any event at all is on.
+ /// </summary>
+ private bool AnyEventEnabled()
+ {
+ for (int i = 0; i < m_eventData.Length; i++)
+ if (m_eventData[i].EnabledForETW || m_eventData[i].EnabledForAnyListener)
+ return true;
+ return false;
+ }
+
+ private bool IsDisposed { get { return m_provider == null || m_provider.m_disposed; } }
+
+ [SecuritySafeCritical]
+ private void EnsureDescriptorsInitialized()
+ {
+#if !ES_BUILD_STANDALONE
+ Contract.Assert(Monitor.IsEntered(EventListener.EventListenersLock));
+#endif
+ if (m_eventData == null)
+ {
+ Contract.Assert(m_rawManifest == null);
+ m_rawManifest = CreateManifestAndDescriptors(this.GetType(), Name, this);
+ Contract.Assert(m_eventData != null);
+
+ //
+ foreach (WeakReference eventSourceRef in EventListener.s_EventSources)
+ {
+ EventSource eventSource = eventSourceRef.Target as EventSource;
+ if (eventSource != null && eventSource.Guid == m_guid && !eventSource.IsDisposed)
+ {
+ if (eventSource != this)
+ throw new ArgumentException(Environment.GetResourceString("EventSource_EventSourceGuidInUse", m_guid));
+ }
+ }
+
+ // Make certain all dispatchers also have their arrays initialized
+ EventDispatcher dispatcher = m_Dispatchers;
+ while (dispatcher != null)
+ {
+ if (dispatcher.m_EventEnabled == null)
+ dispatcher.m_EventEnabled = new bool[m_eventData.Length];
+ dispatcher = dispatcher.m_Next;
+ }
+ }
+ if (s_currentPid == 0)
+ {
+#if ES_BUILD_STANDALONE && !ES_BUILD_PCL
+ // for non-BCL EventSource we must assert SecurityPermission
+ new SecurityPermission(PermissionState.Unrestricted).Assert();
+#endif
+ s_currentPid = Win32Native.GetCurrentProcessId();
+ }
+ }
+
+ // Send out the ETW manifest XML out to ETW
+ // Today, we only send the manifest to ETW, custom listeners don't get it.
+ [SecuritySafeCritical]
+ private unsafe bool SendManifest(byte[] rawManifest)
+ {
+ bool success = true;
+
+ if (rawManifest == null)
+ return false;
+
+ Contract.Assert(!SelfDescribingEvents);
+
+#if FEATURE_MANAGED_ETW
+ fixed (byte* dataPtr = rawManifest)
+ {
+ // we don't want the manifest to show up in the event log channels so we specify as keywords
+ // everything but the first 8 bits (reserved for the 8 channels)
+ var manifestDescr = new EventDescriptor(0xFFFE, 1, 0, 0, 0xFE, 0xFFFE, 0x00ffFFFFffffFFFF);
+ ManifestEnvelope envelope = new ManifestEnvelope();
+
+ envelope.Format = ManifestEnvelope.ManifestFormats.SimpleXmlFormat;
+ envelope.MajorVersion = 1;
+ envelope.MinorVersion = 0;
+ envelope.Magic = 0x5B; // An unusual number that can be checked for consistency.
+ int dataLeft = rawManifest.Length;
+ envelope.ChunkNumber = 0;
+
+ EventProvider.EventData* dataDescrs = stackalloc EventProvider.EventData[2];
+ dataDescrs[0].Ptr = (ulong)&envelope;
+ dataDescrs[0].Size = (uint)sizeof(ManifestEnvelope);
+ dataDescrs[0].Reserved = 0;
+
+ dataDescrs[1].Ptr = (ulong)dataPtr;
+ dataDescrs[1].Reserved = 0;
+
+ int chunkSize = ManifestEnvelope.MaxChunkSize;
+ TRY_AGAIN_WITH_SMALLER_CHUNK_SIZE:
+ envelope.TotalChunks = (ushort)((dataLeft + (chunkSize - 1)) / chunkSize);
+ while (dataLeft > 0)
+ {
+ dataDescrs[1].Size = (uint)Math.Min(dataLeft, chunkSize);
+ if (m_provider != null)
+ {
+ if (!m_provider.WriteEvent(ref manifestDescr, null, null, 2, (IntPtr)dataDescrs))
+ {
+ // Turns out that if users set the BufferSize to something less than 64K then WriteEvent
+ // can fail. If we get this failure on the first chunk try again with something smaller
+ // The smallest BufferSize is 1K so if we get to 256 (to account for envelope overhead), we can give up making it smaller.
+ if (EventProvider.GetLastWriteEventError() == EventProvider.WriteEventErrorCode.EventTooBig)
+ {
+ if (envelope.ChunkNumber == 0 && chunkSize > 256)
+ {
+ chunkSize = chunkSize / 2;
+ goto TRY_AGAIN_WITH_SMALLER_CHUNK_SIZE;
+ }
+ }
+ success = false;
+ if (ThrowOnEventWriteErrors)
+ ThrowEventSourceException();
+ break;
+ }
+ }
+ dataLeft -= chunkSize;
+ dataDescrs[1].Ptr += (uint)chunkSize;
+ envelope.ChunkNumber++;
+ }
+ }
+#endif
+ return success;
+ }
+
+#if ES_BUILD_PCL
+ internal static Attribute GetCustomAttributeHelper(Type type, Type attributeType, EventManifestOptions flags = EventManifestOptions.None)
+ {
+ return GetCustomAttributeHelper(type.GetTypeInfo(), attributeType, flags);
+ }
+#endif
+
+ // Helper to deal with the fact that the type we are reflecting over might be loaded in the ReflectionOnly context.
+ // When that is the case, we have the build the custom assemblies on a member by hand.
+ internal static Attribute GetCustomAttributeHelper(MemberInfo member, Type attributeType, EventManifestOptions flags = EventManifestOptions.None)
+ {
+ if (!member.Module.Assembly.ReflectionOnly() && (flags & EventManifestOptions.AllowEventSourceOverride) == 0)
+ {
+ // Let the runtime to the work for us, since we can execute code in this context.
+ Attribute firstAttribute = null;
+ foreach (var attribute in member.GetCustomAttributes(attributeType, false))
+ {
+ firstAttribute = (Attribute)attribute;
+ break;
+ }
+ return firstAttribute;
+ }
+
+#if !ES_BUILD_PCL
+ // In the reflection only context, we have to do things by hand.
+ string fullTypeNameToFind = attributeType.FullName;
+
+#if EVENT_SOURCE_LEGACY_NAMESPACE_SUPPORT
+ fullTypeNameToFind = fullTypeNameToFind.Replace("System.Diagnostics.Eventing", "System.Diagnostics.Tracing");
+#endif
+
+ foreach (CustomAttributeData data in CustomAttributeData.GetCustomAttributes(member))
+ {
+ if (AttributeTypeNamesMatch(attributeType, data.Constructor.ReflectedType))
+ {
+ Attribute attr = null;
+
+ Contract.Assert(data.ConstructorArguments.Count <= 1);
+
+ if (data.ConstructorArguments.Count == 1)
+ {
+ attr = (Attribute)Activator.CreateInstance(attributeType, new object[] { data.ConstructorArguments[0].Value });
+ }
+ else if (data.ConstructorArguments.Count == 0)
+ {
+ attr = (Attribute)Activator.CreateInstance(attributeType);
+ }
+
+ if (attr != null)
+ {
+ Type t = attr.GetType();
+
+ foreach (CustomAttributeNamedArgument namedArgument in data.NamedArguments)
+ {
+ PropertyInfo p = t.GetProperty(namedArgument.MemberInfo.Name, BindingFlags.Public | BindingFlags.Instance);
+ object value = namedArgument.TypedValue.Value;
+
+ if (p.PropertyType.IsEnum)
+ {
+ value = Enum.Parse(p.PropertyType, value.ToString());
+ }
+
+ p.SetValue(attr, value, null);
+ }
+
+ return attr;
+ }
+ }
+ }
+
+ return null;
+#else // ES_BUILD_PCL
+ throw new ArgumentException(Environment.GetResourceString("EventSource", "EventSource_PCLPlatformNotSupportedReflection"));
+#endif
+ }
+
+ /// <summary>
+ /// Evaluates if two related "EventSource"-domain types should be considered the same
+ /// </summary>
+ /// <param name="attributeType">The attribute type in the load context - it's associated with the running
+ /// EventSource type. This type may be different fromt he base type of the user-defined EventSource.</param>
+ /// <param name="reflectedAttributeType">The attribute type in the reflection context - it's associated with
+ /// the user-defined EventSource, and is in the same assembly as the eventSourceType passed to
+ /// </param>
+ /// <returns>True - if the types should be considered equivalent, False - otherwise</returns>
+ private static bool AttributeTypeNamesMatch(Type attributeType, Type reflectedAttributeType)
+ {
+ return
+ // are these the same type?
+ attributeType == reflectedAttributeType ||
+ // are the full typenames equal?
+ string.Equals(attributeType.FullName, reflectedAttributeType.FullName, StringComparison.Ordinal) ||
+ // are the typenames equal and the namespaces under "Diagnostics.Tracing" (typically
+ // either Microsoft.Diagnostics.Tracing or System.Diagnostics.Tracing)?
+ string.Equals(attributeType.Name, reflectedAttributeType.Name, StringComparison.Ordinal) &&
+ attributeType.Namespace.EndsWith("Diagnostics.Tracing") &&
+ (reflectedAttributeType.Namespace.EndsWith("Diagnostics.Tracing")
+#if EVENT_SOURCE_LEGACY_NAMESPACE_SUPPORT
+ || reflectedAttributeType.Namespace.EndsWith("Diagnostics.Eventing")
+#endif
+);
+ }
+
+ private static Type GetEventSourceBaseType(Type eventSourceType, bool allowEventSourceOverride, bool reflectionOnly)
+ {
+ // return false for "object" and interfaces
+ if (eventSourceType.BaseType() == null)
+ return null;
+
+ // now go up the inheritance chain until hitting a concrete type ("object" at worse)
+ do
+ {
+ eventSourceType = eventSourceType.BaseType();
+ }
+ while (eventSourceType != null && eventSourceType.IsAbstract());
+
+ if (eventSourceType != null)
+ {
+ if (!allowEventSourceOverride)
+ {
+ if (reflectionOnly && eventSourceType.FullName != typeof(EventSource).FullName ||
+ !reflectionOnly && eventSourceType != typeof(EventSource))
+ return null;
+ }
+ else
+ {
+ if (eventSourceType.Name != "EventSource")
+ return null;
+ }
+ }
+ return eventSourceType;
+ }
+
+ // Use reflection to look at the attributes of a class, and generate a manifest for it (as UTF8) and
+ // return the UTF8 bytes. It also sets up the code:EventData structures needed to dispatch events
+ // at run time. 'source' is the event source to place the descriptors. If it is null,
+ // then the descriptors are not creaed, and just the manifest is generated.
+ private static byte[] CreateManifestAndDescriptors(Type eventSourceType, string eventSourceDllName, EventSource source,
+ EventManifestOptions flags = EventManifestOptions.None)
+ {
+ ManifestBuilder manifest = null;
+ bool bNeedsManifest = source != null ? !source.SelfDescribingEvents : true;
+ Exception exception = null; // exception that might get raised during validation b/c we couldn't/didn't recover from a previous error
+ byte[] res = null;
+
+ if (eventSourceType.IsAbstract() && (flags & EventManifestOptions.Strict) == 0)
+ return null;
+
+#if DEBUG && ES_BUILD_STANDALONE
+ TestSupport.TestHooks.MaybeThrow(eventSourceType,
+ TestSupport.Category.ManifestError,
+ "EventSource_CreateManifestAndDescriptors",
+ new ArgumentException("EventSource_CreateManifestAndDescriptors"));
+#endif
+
+ try
+ {
+ MethodInfo[] methods = eventSourceType.GetMethods(BindingFlags.DeclaredOnly | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
+ EventAttribute defaultEventAttribute;
+ int eventId = 1; // The number given to an event that does not have a explicitly given ID.
+ EventMetadata[] eventData = null;
+ Dictionary<string, string> eventsByName = null;
+ if (source != null || (flags & EventManifestOptions.Strict) != 0)
+ {
+ eventData = new EventMetadata[methods.Length + 1];
+ eventData[0].Name = ""; // Event 0 is the 'write messages string' event, and has an empty name.
+ }
+
+ // See if we have localization information.
+ ResourceManager resources = null;
+ EventSourceAttribute eventSourceAttrib = (EventSourceAttribute)GetCustomAttributeHelper(eventSourceType, typeof(EventSourceAttribute), flags);
+ if (eventSourceAttrib != null && eventSourceAttrib.LocalizationResources != null)
+ resources = new ResourceManager(eventSourceAttrib.LocalizationResources, eventSourceType.Assembly());
+
+ manifest = new ManifestBuilder(GetName(eventSourceType, flags), GetGuid(eventSourceType), eventSourceDllName,
+ resources, flags);
+
+ // Add an entry unconditionally for event ID 0 which will be for a string message.
+ manifest.StartEvent("EventSourceMessage", new EventAttribute(0) { Level = EventLevel.LogAlways, Task = (EventTask)0xFFFE });
+ manifest.AddEventParameter(typeof(string), "message");
+ manifest.EndEvent();
+
+ // eventSourceType must be sealed and must derive from this EventSource
+ if ((flags & EventManifestOptions.Strict) != 0)
+ {
+ bool typeMatch = GetEventSourceBaseType(eventSourceType, (flags & EventManifestOptions.AllowEventSourceOverride) != 0, eventSourceType.Assembly().ReflectionOnly()) != null;
+
+ if (!typeMatch)
+ manifest.ManifestError(Environment.GetResourceString("EventSource_TypeMustDeriveFromEventSource"));
+ if (!eventSourceType.IsAbstract() && !eventSourceType.IsSealed())
+ manifest.ManifestError(Environment.GetResourceString("EventSource_TypeMustBeSealedOrAbstract"));
+ }
+
+ // Collect task, opcode, keyword and channel information
+#if FEATURE_MANAGED_ETW_CHANNELS && FEATURE_ADVANCED_MANAGED_ETW_CHANNELS
+ foreach (var providerEnumKind in new string[] { "Keywords", "Tasks", "Opcodes", "Channels" })
+#else
+ foreach (var providerEnumKind in new string[] { "Keywords", "Tasks", "Opcodes" })
+#endif
+ {
+ Type nestedType = eventSourceType.GetNestedType(providerEnumKind);
+ if (nestedType != null)
+ {
+ if (eventSourceType.IsAbstract())
+ {
+ manifest.ManifestError(Environment.GetResourceString("EventSource_AbstractMustNotDeclareKTOC", nestedType.Name));
+ }
+ else
+ {
+ foreach (FieldInfo staticField in nestedType.GetFields(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static))
+ {
+ AddProviderEnumKind(manifest, staticField, providerEnumKind);
+ }
+ }
+ }
+ }
+ // ensure we have keywords for the session-filtering reserved bits
+ {
+ manifest.AddKeyword("Session3", (long)0x1000 << 32);
+ manifest.AddKeyword("Session2", (long)0x2000 << 32);
+ manifest.AddKeyword("Session1", (long)0x4000 << 32);
+ manifest.AddKeyword("Session0", (long)0x8000 << 32);
+ }
+
+ if (eventSourceType.Name != "EventSource")
+ {
+ for (int i = 0; i < methods.Length; i++)
+ {
+ MethodInfo method = methods[i];
+ ParameterInfo[] args = method.GetParameters();
+
+ // Get the EventDescriptor (from the Custom attributes)
+ EventAttribute eventAttribute = (EventAttribute)GetCustomAttributeHelper(method, typeof(EventAttribute), flags);
+
+ // Compat: until v4.5.1 we ignored any non-void returning methods as well as virtual methods for
+ // the only reason of limiting the number of methods considered to be events. This broke a common
+ // design of having event sources implement specific interfaces. To fix this in a compatible way
+ // we will now allow both non-void returning and virtual methods to be Event methods, as long
+ // as they are marked with the [Event] attribute
+ if (/* method.IsVirtual || */ method.IsStatic)
+ {
+ continue;
+ }
+
+ if (eventSourceType.IsAbstract())
+ {
+ if (eventAttribute != null)
+ manifest.ManifestError(Environment.GetResourceString("EventSource_AbstractMustNotDeclareEventMethods", method.Name, eventAttribute.EventId));
+ continue;
+ }
+ else if (eventAttribute == null)
+ {
+ // Methods that don't return void can't be events, if they're NOT marked with [Event].
+ // (see Compat comment above)
+ if (method.ReturnType != typeof(void))
+ {
+ continue;
+ }
+
+ // Continue to ignore virtual methods if they do NOT have the [Event] attribute
+ // (see Compat comment above)
+ if (method.IsVirtual)
+ {
+ continue;
+ }
+
+ // If we explicitly mark the method as not being an event, then honor that.
+ if (GetCustomAttributeHelper(method, typeof(NonEventAttribute), flags) != null)
+ continue;
+
+ defaultEventAttribute = new EventAttribute(eventId);
+ eventAttribute = defaultEventAttribute;
+ }
+ else if (eventAttribute.EventId <= 0)
+ {
+ manifest.ManifestError(Environment.GetResourceString("EventSource_NeedPositiveId", method.Name), true);
+ continue; // don't validate anything else for this event
+ }
+ if (method.Name.LastIndexOf('.') >= 0)
+ manifest.ManifestError(Environment.GetResourceString("EventSource_EventMustNotBeExplicitImplementation", method.Name, eventAttribute.EventId));
+
+ eventId++;
+ string eventName = method.Name;
+
+ if (!eventAttribute.IsOpcodeSet)
+ {
+ // By default pick a task ID derived from the EventID, starting with the highest task number and working back
+ bool noTask = (eventAttribute.Task == EventTask.None);
+ if (eventAttribute.Task == EventTask.None)
+ eventAttribute.Task = (EventTask)(0xFFFE - eventAttribute.EventId);
+
+ // pick a default opcode (either Info or start or stop if the name ends with that suffix.
+ eventAttribute.Opcode = GetOpcodeWithDefault(EventOpcode.Info, eventName);
+
+ // Make the stop opcode have the same task as the start opcode.
+ if (noTask)
+ {
+ if (eventAttribute.Opcode == EventOpcode.Start)
+ {
+ string taskName = eventName.Substring(0, eventName.Length - s_ActivityStartSuffix.Length); // Remove the Stop suffix to get the task name
+ if (string.Compare(eventName, 0, taskName, 0, taskName.Length) == 0 &&
+ string.Compare(eventName, taskName.Length, s_ActivityStartSuffix, 0, Math.Max(eventName.Length - taskName.Length, s_ActivityStartSuffix.Length)) == 0)
+ {
+ // Add a task that is just the task name for the start event. This supress the auto-task generation
+ // That would otherwise happen (and create 'TaskName'Start as task name rather than just 'TaskName'
+ manifest.AddTask(taskName, (int)eventAttribute.Task);
+ }
+ }
+ else if (eventAttribute.Opcode == EventOpcode.Stop)
+ {
+ // Find the start associated with this stop event. We requre start to be immediately before the stop
+ int startEventId = eventAttribute.EventId - 1;
+ Contract.Assert(0 <= startEventId); // Since we reserve id 0, we know that id-1 is <= 0
+ EventMetadata startEventMetadata = eventData[startEventId];
+
+ // If you remove the Stop and add a Start does that name match the Start Event's Name?
+ // Ideally we would throw an error
+ string taskName = eventName.Substring(0, eventName.Length - s_ActivityStopSuffix.Length); // Remove the Stop suffix to get the task name
+ if (startEventMetadata.Descriptor.Opcode == (byte)EventOpcode.Start &&
+ string.Compare(startEventMetadata.Name, 0, taskName, 0, taskName.Length) == 0 &&
+ string.Compare(startEventMetadata.Name, taskName.Length, s_ActivityStartSuffix, 0, Math.Max(startEventMetadata.Name.Length - taskName.Length, s_ActivityStartSuffix.Length)) == 0)
+ {
+
+ // Make the stop event match the start event
+ eventAttribute.Task = (EventTask)startEventMetadata.Descriptor.Task;
+ }
+ else if ((flags & EventManifestOptions.Strict) != 0) // Throw an error if we can compatibly.
+ throw new ArgumentException(Environment.GetResourceString("EventSource_StopsFollowStarts"));
+ }
+ }
+ }
+
+ RemoveFirstArgIfRelatedActivityId(ref args);
+ if (!(source != null && source.SelfDescribingEvents))
+ {
+ manifest.StartEvent(eventName, eventAttribute);
+ for (int fieldIdx = 0; fieldIdx < args.Length; fieldIdx++)
+ {
+ manifest.AddEventParameter(args[fieldIdx].ParameterType, args[fieldIdx].Name);
+ }
+ manifest.EndEvent();
+ }
+
+ if (source != null || (flags & EventManifestOptions.Strict) != 0)
+ {
+ // Do checking for user errors (optional, but not a big deal so we do it).
+ DebugCheckEvent(ref eventsByName, eventData, method, eventAttribute, manifest);
+
+#if FEATURE_MANAGED_ETW_CHANNELS
+ // add the channel keyword for Event Viewer channel based filters. This is added for creating the EventDescriptors only
+ // and is not required for the manifest
+ if (eventAttribute.Channel != EventChannel.None)
+ {
+ unchecked
+ {
+ eventAttribute.Keywords |= (EventKeywords)manifest.GetChannelKeyword(eventAttribute.Channel);
+ }
+ }
+#endif
+ string eventKey = "event_" + eventName;
+ string msg = manifest.GetLocalizedMessage(eventKey, CultureInfo.CurrentUICulture, etwFormat: false);
+ // overwrite inline message with the localized message
+ if (msg != null) eventAttribute.Message = msg;
+
+ AddEventDescriptor(ref eventData, eventName, eventAttribute, args);
+ }
+ }
+ }
+
+ // Tell the TraceLogging stuff where to start allocating its own IDs.
+ NameInfo.ReserveEventIDsBelow(eventId);
+
+ if (source != null)
+ {
+ TrimEventDescriptors(ref eventData);
+ source.m_eventData = eventData; // officially initialize it. We do this at most once (it is racy otherwise).
+#if FEATURE_MANAGED_ETW_CHANNELS
+ source.m_channelData = manifest.GetChannelData();
+#endif
+ }
+
+ // if this is an abstract event source we've already performed all the validation we can
+ if (!eventSourceType.IsAbstract() && (source == null || !source.SelfDescribingEvents))
+ {
+ bNeedsManifest = (flags & EventManifestOptions.OnlyIfNeededForRegistration) == 0
+#if FEATURE_MANAGED_ETW_CHANNELS
+ || manifest.GetChannelData().Length > 0
+#endif
+;
+
+ // if the manifest is not needed and we're not requested to validate the event source return early
+ if (!bNeedsManifest && (flags & EventManifestOptions.Strict) == 0)
+ return null;
+
+ res = manifest.CreateManifest();
+ }
+ }
+ catch (Exception e)
+ {
+ // if this is a runtime manifest generation let the exception propagate
+ if ((flags & EventManifestOptions.Strict) == 0)
+ throw;
+ // else store it to include it in the Argument exception we raise below
+ exception = e;
+ }
+
+ if ((flags & EventManifestOptions.Strict) != 0 && (manifest.Errors.Count > 0 || exception != null))
+ {
+ string msg = String.Empty;
+ if (manifest.Errors.Count > 0)
+ {
+ bool firstError = true;
+ foreach (string error in manifest.Errors)
+ {
+ if (!firstError)
+ msg += Environment.NewLine;
+ firstError = false;
+ msg += error;
+ }
+ }
+ else
+ msg = "Unexpected error: " + exception.Message;
+
+ throw new ArgumentException(msg, exception);
+ }
+
+ return bNeedsManifest ? res : null;
+ }
+
+ private static void RemoveFirstArgIfRelatedActivityId(ref ParameterInfo[] args)
+ {
+ // If the first parameter is (case insensitive) 'relatedActivityId' then skip it.
+ if (args.Length > 0 && args[0].ParameterType == typeof(Guid) &&
+ string.Compare(args[0].Name, "relatedActivityId", StringComparison.OrdinalIgnoreCase) == 0)
+ {
+ var newargs = new ParameterInfo[args.Length - 1];
+ Array.Copy(args, 1, newargs, 0, args.Length - 1);
+ args = newargs;
+ }
+ }
+
+ // adds a enumeration (keyword, opcode, task or channel) represented by 'staticField'
+ // to the manifest.
+ private static void AddProviderEnumKind(ManifestBuilder manifest, FieldInfo staticField, string providerEnumKind)
+ {
+ bool reflectionOnly = staticField.Module.Assembly.ReflectionOnly();
+ Type staticFieldType = staticField.FieldType;
+ if (!reflectionOnly && (staticFieldType == typeof(EventOpcode)) || AttributeTypeNamesMatch(staticFieldType, typeof(EventOpcode)))
+ {
+ if (providerEnumKind != "Opcodes") goto Error;
+ int value = (int)staticField.GetRawConstantValue();
+ manifest.AddOpcode(staticField.Name, value);
+ }
+ else if (!reflectionOnly && (staticFieldType == typeof(EventTask)) || AttributeTypeNamesMatch(staticFieldType, typeof(EventTask)))
+ {
+ if (providerEnumKind != "Tasks") goto Error;
+ int value = (int)staticField.GetRawConstantValue();
+ manifest.AddTask(staticField.Name, value);
+ }
+ else if (!reflectionOnly && (staticFieldType == typeof(EventKeywords)) || AttributeTypeNamesMatch(staticFieldType, typeof(EventKeywords)))
+ {
+ if (providerEnumKind != "Keywords") goto Error;
+ ulong value = unchecked((ulong)(long)staticField.GetRawConstantValue());
+ manifest.AddKeyword(staticField.Name, value);
+ }
+#if FEATURE_MANAGED_ETW_CHANNELS && FEATURE_ADVANCED_MANAGED_ETW_CHANNELS
+ else if (!reflectionOnly && (staticFieldType == typeof(EventChannel)) || AttributeTypeNamesMatch(staticFieldType, typeof(EventChannel)))
+ {
+ if (providerEnumKind != "Channels") goto Error;
+ var channelAttribute = (EventChannelAttribute)GetCustomAttributeHelper(staticField, typeof(EventChannelAttribute));
+ manifest.AddChannel(staticField.Name, (byte)staticField.GetRawConstantValue(), channelAttribute);
+ }
+#endif
+ return;
+ Error:
+ manifest.ManifestError(Environment.GetResourceString("EventSource_EnumKindMismatch", staticField.Name, staticField.FieldType.Name, providerEnumKind));
+ }
+
+ // Helper used by code:CreateManifestAndDescriptors to add a code:EventData descriptor for a method
+ // with the code:EventAttribute 'eventAttribute'. resourceManger may be null in which case we populate it
+ // it is populated if we need to look up message resources
+ private static void AddEventDescriptor(ref EventMetadata[] eventData, string eventName,
+ EventAttribute eventAttribute, ParameterInfo[] eventParameters)
+ {
+ if (eventData == null || eventData.Length <= eventAttribute.EventId)
+ {
+ EventMetadata[] newValues = new EventMetadata[Math.Max(eventData.Length + 16, eventAttribute.EventId + 1)];
+ Array.Copy(eventData, newValues, eventData.Length);
+ eventData = newValues;
+ }
+
+ eventData[eventAttribute.EventId].Descriptor = new EventDescriptor(
+ eventAttribute.EventId,
+ eventAttribute.Version,
+#if FEATURE_MANAGED_ETW_CHANNELS
+ (byte)eventAttribute.Channel,
+#else
+ (byte)0,
+#endif
+ (byte)eventAttribute.Level,
+ (byte)eventAttribute.Opcode,
+ (int)eventAttribute.Task,
+ unchecked((long)((ulong)eventAttribute.Keywords | SessionMask.All.ToEventKeywords())));
+
+ eventData[eventAttribute.EventId].Tags = eventAttribute.Tags;
+ eventData[eventAttribute.EventId].Name = eventName;
+ eventData[eventAttribute.EventId].Parameters = eventParameters;
+ eventData[eventAttribute.EventId].Message = eventAttribute.Message;
+ eventData[eventAttribute.EventId].ActivityOptions = eventAttribute.ActivityOptions;
+ }
+
+ // Helper used by code:CreateManifestAndDescriptors that trims the m_eventData array to the correct
+ // size after all event descriptors have been added.
+ private static void TrimEventDescriptors(ref EventMetadata[] eventData)
+ {
+ int idx = eventData.Length;
+ while (0 < idx)
+ {
+ --idx;
+ if (eventData[idx].Descriptor.EventId != 0)
+ break;
+ }
+ if (eventData.Length - idx > 2) // allow one wasted slot.
+ {
+ EventMetadata[] newValues = new EventMetadata[idx + 1];
+ Array.Copy(eventData, newValues, newValues.Length);
+ eventData = newValues;
+ }
+ }
+
+ // Helper used by code:EventListener.AddEventSource and code:EventListener.EventListener
+ // when a listener gets attached to a eventSource
+ internal void AddListener(EventListener listener)
+ {
+ lock (EventListener.EventListenersLock)
+ {
+ bool[] enabledArray = null;
+ if (m_eventData != null)
+ enabledArray = new bool[m_eventData.Length];
+ m_Dispatchers = new EventDispatcher(m_Dispatchers, enabledArray, listener);
+ listener.OnEventSourceCreated(this);
+ }
+ }
+
+ // Helper used by code:CreateManifestAndDescriptors to find user mistakes like reusing an event
+ // index for two distinct events etc. Throws exceptions when it finds something wrong.
+ private static void DebugCheckEvent(ref Dictionary<string, string> eventsByName,
+ EventMetadata[] eventData, MethodInfo method, EventAttribute eventAttribute,
+ ManifestBuilder manifest)
+ {
+ int evtId = eventAttribute.EventId;
+ string evtName = method.Name;
+ int eventArg = GetHelperCallFirstArg(method);
+ if (eventArg >= 0 && evtId != eventArg)
+ {
+ manifest.ManifestError(Environment.GetResourceString("EventSource_MismatchIdToWriteEvent", evtName, evtId, eventArg), true);
+ }
+
+ if (evtId < eventData.Length && eventData[evtId].Descriptor.EventId != 0)
+ {
+ manifest.ManifestError(Environment.GetResourceString("EventSource_EventIdReused", evtName, evtId, eventData[evtId].Name), true);
+ }
+
+ for (int idx = 0; idx < eventData.Length; ++idx)
+ {
+ if (eventData[idx].Descriptor.Task == (int)eventAttribute.Task && eventData[idx].Descriptor.Opcode == (int)eventAttribute.Opcode)
+ {
+ manifest.ManifestError(Environment.GetResourceString("EventSource_TaskOpcodePairReused",
+ evtName, evtId, eventData[idx].Name, idx));
+ }
+ }
+
+ // for non-default event opcodes the user must define a task!
+ if (eventAttribute.Opcode != EventOpcode.Info &&
+ (eventAttribute.Task == EventTask.None || eventAttribute.Task == (EventTask)(0xFFFE - evtId)))
+ {
+ manifest.ManifestError(Environment.GetResourceString("EventSource_EventMustHaveTaskIfNonDefaultOpcode", evtName, evtId));
+ }
+
+ // If we ever want to enforce the rule: MethodName = TaskName + OpcodeName here's how:
+ // (the reason we don't is backwards compat and the need for handling this as a non-fatal error
+ // by eventRegister.exe)
+ // taskName & opcodeName could be passed in by the caller which has opTab & taskTab handy
+ // if (!(((int)eventAttribute.Opcode == 0 && evtName == taskName) || (evtName == taskName+opcodeName)))
+ // {
+ // throw new WarningException(Environment.GetResourceString("EventSource_EventNameDoesNotEqualTaskPlusOpcode"));
+ // }
+
+ if (eventsByName == null)
+ eventsByName = new Dictionary<string, string>();
+
+ if (eventsByName.ContainsKey(evtName))
+ manifest.ManifestError(Environment.GetResourceString("EventSource_EventNameReused", evtName));
+
+ eventsByName[evtName] = evtName;
+ }
+
+ /// <summary>
+ /// This method looks at the IL and tries to pattern match against the standard
+ /// 'boilerplate' event body
+ /// <code>
+ /// { if (Enabled()) WriteEvent(#, ...) }
+ /// </code>
+ /// If the pattern matches, it returns the literal number passed as the first parameter to
+ /// the WriteEvent. This is used to find common user errors (mismatching this
+ /// number with the EventAttribute ID). It is only used for validation.
+ /// </summary>
+ /// <param name="method">The method to probe.</param>
+ /// <returns>The literal value or -1 if the value could not be determined. </returns>
+ [SecuritySafeCritical]
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification = "Switch statement is clearer than alternatives")]
+ static private int GetHelperCallFirstArg(MethodInfo method)
+ {
+#if !ES_BUILD_PCL
+ // Currently searches for the following pattern
+ //
+ // ... // CAN ONLY BE THE INSTRUCTIONS BELOW
+ // LDARG0
+ // LDC.I4 XXX
+ // ... // CAN ONLY BE THE INSTRUCTIONS BELOW CAN'T BE A BRANCH OR A CALL
+ // CALL
+ // NOP // 0 or more times
+ // RET
+ //
+ // If we find this pattern we return the XXX. Otherwise we return -1.
+ (new ReflectionPermission(ReflectionPermissionFlag.MemberAccess)).Assert();
+ byte[] instrs = method.GetMethodBody().GetILAsByteArray();
+ int retVal = -1;
+ for (int idx = 0; idx < instrs.Length; )
+ {
+ switch (instrs[idx])
+ {
+ case 0: // NOP
+ case 1: // BREAK
+ case 2: // LDARG_0
+ case 3: // LDARG_1
+ case 4: // LDARG_2
+ case 5: // LDARG_3
+ case 6: // LDLOC_0
+ case 7: // LDLOC_1
+ case 8: // LDLOC_2
+ case 9: // LDLOC_3
+ case 10: // STLOC_0
+ case 11: // STLOC_1
+ case 12: // STLOC_2
+ case 13: // STLOC_3
+ break;
+ case 14: // LDARG_S
+ case 16: // STARG_S
+ idx++;
+ break;
+ case 20: // LDNULL
+ break;
+ case 21: // LDC_I4_M1
+ case 22: // LDC_I4_0
+ case 23: // LDC_I4_1
+ case 24: // LDC_I4_2
+ case 25: // LDC_I4_3
+ case 26: // LDC_I4_4
+ case 27: // LDC_I4_5
+ case 28: // LDC_I4_6
+ case 29: // LDC_I4_7
+ case 30: // LDC_I4_8
+ if (idx > 0 && instrs[idx - 1] == 2) // preceeded by LDARG0
+ retVal = instrs[idx] - 22;
+ break;
+ case 31: // LDC_I4_S
+ if (idx > 0 && instrs[idx - 1] == 2) // preceeded by LDARG0
+ retVal = instrs[idx + 1];
+ idx++;
+ break;
+ case 32: // LDC_I4
+ idx += 4;
+ break;
+ case 37: // DUP
+ break;
+ case 40: // CALL
+ idx += 4;
+
+ if (retVal >= 0)
+ {
+ // Is this call just before return?
+ for (int search = idx + 1; search < instrs.Length; search++)
+ {
+ if (instrs[search] == 42) // RET
+ return retVal;
+ if (instrs[search] != 0) // NOP
+ break;
+ }
+ }
+ retVal = -1;
+ break;
+ case 44: // BRFALSE_S
+ case 45: // BRTRUE_S
+ retVal = -1;
+ idx++;
+ break;
+ case 57: // BRFALSE
+ case 58: // BRTRUE
+ retVal = -1;
+ idx += 4;
+ break;
+ case 103: // CONV_I1
+ case 104: // CONV_I2
+ case 105: // CONV_I4
+ case 106: // CONV_I8
+ case 109: // CONV_U4
+ case 110: // CONV_U8
+ break;
+ case 140: // BOX
+ case 141: // NEWARR
+ idx += 4;
+ break;
+ case 162: // STELEM_REF
+ break;
+ case 254: // PREFIX
+ idx++;
+ // Covers the CEQ instructions used in debug code for some reason.
+ if (idx >= instrs.Length || instrs[idx] >= 6)
+ goto default;
+ break;
+ default:
+ /* Contract.Assert(false, "Warning: User validation code sub-optimial: Unsuported opcode " + instrs[idx] +
+ " at " + idx + " in method " + method.Name); */
+ return -1;
+ }
+ idx++;
+ }
+#endif
+ return -1;
+ }
+
+#if false // This routine is not needed at all, it was used for unit test debugging.
+ [Conditional("DEBUG")]
+ private static void OutputDebugString(string msg)
+ {
+#if !ES_BUILD_PCL
+ msg = msg.TrimEnd('\r', '\n') +
+ string.Format(CultureInfo.InvariantCulture, ", Thrd({0})" + Environment.NewLine, Thread.CurrentThread.ManagedThreadId);
+ System.Diagnostics.Debugger.Log(0, null, msg);
+#endif
+ }
+#endif
+
+ /// <summary>
+ /// Sends an error message to the debugger (outputDebugString), as well as the EventListeners
+ /// It will do this even if the EventSource is not enabled.
+ ///
+
+ [SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ internal void ReportOutOfBandMessage(string msg, bool flush)
+ {
+ try
+ {
+#if !ES_BUILD_PCL
+ // send message to debugger without delay
+ System.Diagnostics.Debugger.Log(0, null, msg + "\r\n");
+#endif
+
+ // Send it to all listeners.
+ if (m_outOfBandMessageCount < 254) // Note this is only if size byte
+ m_outOfBandMessageCount++;
+ else
+ {
+ if (m_outOfBandMessageCount == 255)
+ return;
+ m_outOfBandMessageCount = 255; // Mark that we hit the limit. Notify them that this is the case.
+ msg = "Reached message limit. End of EventSource error messages.";
+ }
+
+ WriteEventString(EventLevel.LogAlways, -1, msg);
+ WriteStringToAllListeners("EventSourceMessage", msg);
+ }
+ catch (Exception) { } // If we fail during last chance logging, well, we have to give up....
+ }
+
+ private EventSourceSettings ValidateSettings(EventSourceSettings settings)
+ {
+ var evtFormatMask = EventSourceSettings.EtwManifestEventFormat |
+ EventSourceSettings.EtwSelfDescribingEventFormat;
+ if ((settings & evtFormatMask) == evtFormatMask)
+ throw new ArgumentException(Environment.GetResourceString("EventSource_InvalidEventFormat"), "settings");
+
+ // If you did not explicitly ask for manifest, you get self-describing.
+ if ((settings & evtFormatMask) == 0)
+ settings |= EventSourceSettings.EtwSelfDescribingEventFormat;
+ return settings;
+ }
+
+ private bool ThrowOnEventWriteErrors
+ {
+ get { return (m_config & EventSourceSettings.ThrowOnEventWriteErrors) != 0; }
+ set
+ {
+ if (value) m_config |= EventSourceSettings.ThrowOnEventWriteErrors;
+ else m_config &= ~EventSourceSettings.ThrowOnEventWriteErrors;
+ }
+ }
+
+ private bool SelfDescribingEvents
+ {
+ get
+ {
+ Contract.Assert(((m_config & EventSourceSettings.EtwManifestEventFormat) != 0) !=
+ ((m_config & EventSourceSettings.EtwSelfDescribingEventFormat) != 0));
+ return (m_config & EventSourceSettings.EtwSelfDescribingEventFormat) != 0;
+ }
+ set
+ {
+ if (!value)
+ {
+ m_config |= EventSourceSettings.EtwManifestEventFormat;
+ m_config &= ~EventSourceSettings.EtwSelfDescribingEventFormat;
+ }
+ else
+ {
+ m_config |= EventSourceSettings.EtwSelfDescribingEventFormat;
+ m_config &= ~EventSourceSettings.EtwManifestEventFormat;
+ }
+ }
+ }
+
+#if FEATURE_ACTIVITYSAMPLING
+ private void ReportActivitySamplingInfo(EventListener listener, SessionMask sessions)
+ {
+ Contract.Assert(listener == null || (uint)sessions == (uint)SessionMask.FromId(0));
+
+ for (int perEventSourceSessionId = 0; perEventSourceSessionId < SessionMask.MAX; ++perEventSourceSessionId)
+ {
+ if (!sessions[perEventSourceSessionId])
+ continue;
+
+ ActivityFilter af;
+ if (listener == null)
+ {
+ EtwSession etwSession = m_etwSessionIdMap[perEventSourceSessionId];
+ Contract.Assert(etwSession != null);
+ af = etwSession.m_activityFilter;
+ }
+ else
+ {
+ af = listener.m_activityFilter;
+ }
+
+ if (af == null)
+ continue;
+
+ SessionMask m = new SessionMask();
+ m[perEventSourceSessionId] = true;
+
+ foreach (var t in af.GetFilterAsTuple(m_guid))
+ {
+ WriteStringToListener(listener, string.Format(CultureInfo.InvariantCulture, "Session {0}: {1} = {2}", perEventSourceSessionId, t.Item1, t.Item2), m);
+ }
+
+ bool participateInSampling = (listener == null) ?
+ m_activityFilteringForETWEnabled[perEventSourceSessionId] :
+ GetDispatcher(listener).m_activityFilteringEnabled;
+ WriteStringToListener(listener, string.Format(CultureInfo.InvariantCulture, "Session {0}: Activity Sampling support: {1}",
+ perEventSourceSessionId, participateInSampling ? "enabled" : "disabled"), m);
+ }
+ }
+#endif // FEATURE_ACTIVITYSAMPLING
+
+ // private instance state
+ private string m_name; // My friendly name (privided in ctor)
+ internal int m_id; // A small integer that is unique to this instance.
+ private Guid m_guid; // GUID representing the ETW eventSource to the OS.
+ internal volatile EventMetadata[] m_eventData; // None per-event data
+ private volatile byte[] m_rawManifest; // Bytes to send out representing the event schema
+
+ private EventSourceSettings m_config; // configuration information
+
+ // Enabling bits
+ private bool m_eventSourceEnabled; // am I enabled (any of my events are enabled for any dispatcher)
+ internal EventLevel m_level; // highest level enabled by any output dispatcher
+ internal EventKeywords m_matchAnyKeyword; // the logical OR of all levels enabled by any output dispatcher (zero is a special case) meaning 'all keywords'
+
+ // Dispatching state
+ internal volatile EventDispatcher m_Dispatchers; // Linked list of code:EventDispatchers we write the data to (we also do ETW specially)
+#if FEATURE_MANAGED_ETW
+ private volatile OverideEventProvider m_provider; // This hooks up ETW commands to our 'OnEventCommand' callback
+#endif
+ private bool m_completelyInited; // The EventSource constructor has returned without exception.
+ private Exception m_constructionException; // If there was an exception construction, this is it
+ private byte m_outOfBandMessageCount; // The number of out of band messages sent (we throttle them
+ private EventCommandEventArgs m_deferredCommands;// If we get commands before we are fully we store them here and run the when we are fully inited.
+
+ private string[] m_traits; // Used to implement GetTraits
+
+ internal static uint s_currentPid; // current process id, used in synthesizing quasi-GUIDs
+ [ThreadStatic]
+ private static byte m_EventSourceExceptionRecurenceCount = 0; // current recursion count inside ThrowEventSourceException
+
+#if FEATURE_MANAGED_ETW_CHANNELS
+ internal volatile ulong[] m_channelData;
+#endif
+
+#if FEATURE_ACTIVITYSAMPLING
+ private SessionMask m_curLiveSessions; // the activity-tracing aware sessions' bits
+ private EtwSession[] m_etwSessionIdMap; // the activity-tracing aware sessions
+ private List<EtwSession> m_legacySessions; // the legacy ETW sessions listening to this source
+ internal long m_keywordTriggers; // a bit is set if it corresponds to a keyword that's part of an enabled triggering event
+ internal SessionMask m_activityFilteringForETWEnabled; // does THIS EventSource have activity filtering turned on for each ETW session
+ static internal Action<Guid> s_activityDying; // Fires when something calls SetCurrentThreadToActivity()
+ // Also used to mark that activity tracing is on for some case
+#endif // FEATURE_ACTIVITYSAMPLING
+
+ // We use a single instance of ActivityTracker for all EventSources instances to allow correlation between multiple event providers.
+ // We have m_activityTracker field simply because instance field is more efficient than static field fetch.
+ ActivityTracker m_activityTracker;
+ internal const string s_ActivityStartSuffix = "Start";
+ internal const string s_ActivityStopSuffix = "Stop";
+
+ // used for generating GUID from eventsource name
+ private static readonly byte[] namespaceBytes = new byte[] {
+ 0x48, 0x2C, 0x2D, 0xB2, 0xC3, 0x90, 0x47, 0xC8,
+ 0x87, 0xF8, 0x1A, 0x15, 0xBF, 0xC1, 0x30, 0xFB,
+ };
+
+ #endregion
+ }
+
+ /// <summary>
+ /// Enables specifying event source configuration options to be used in the EventSource constructor.
+ /// </summary>
+ [Flags]
+ public enum EventSourceSettings
+ {
+ /// <summary>
+ /// This specifies none of the special configuration options should be enabled.
+ /// </summary>
+ Default = 0,
+ /// <summary>
+ /// Normally an EventSource NEVER throws; setting this option will tell it to throw when it encounters errors.
+ /// </summary>
+ ThrowOnEventWriteErrors = 1,
+ /// <summary>
+ /// Setting this option is a directive to the ETW listener should use manifest-based format when
+ /// firing events. This is the default option when defining a type derived from EventSource
+ /// (using the protected EventSource constructors).
+ /// Only one of EtwManifestEventFormat or EtwSelfDescribingEventFormat should be specified
+ /// </summary>
+ EtwManifestEventFormat = 4,
+ /// <summary>
+ /// Setting this option is a directive to the ETW listener should use self-describing event format
+ /// when firing events. This is the default option when creating a new instance of the EventSource
+ /// type (using the public EventSource constructors).
+ /// Only one of EtwManifestEventFormat or EtwSelfDescribingEventFormat should be specified
+ /// </summary>
+ EtwSelfDescribingEventFormat = 8,
+ }
+
+ /// <summary>
+ /// An EventListener represents a target for the events generated by EventSources (that is subclasses
+ /// of <see cref="EventSource"/>), in the current appdomain. When a new EventListener is created
+ /// it is logically attached to all eventSources in that appdomain. When the EventListener is Disposed, then
+ /// it is disconnected from the event eventSources. Note that there is a internal list of STRONG references
+ /// to EventListeners, which means that relying on the lack of references to EventListeners to clean up
+ /// EventListeners will NOT work. You must call EventListener.Dispose explicitly when a dispatcher is no
+ /// longer needed.
+ /// <para>
+ /// Once created, EventListeners can enable or disable on a per-eventSource basis using verbosity levels
+ /// (<see cref="EventLevel"/>) and bitfields (<see cref="EventKeywords"/>) to further restrict the set of
+ /// events to be sent to the dispatcher. The dispatcher can also send arbitrary commands to a particular
+ /// eventSource using the 'SendCommand' method. The meaning of the commands are eventSource specific.
+ /// </para><para>
+ /// The Null Guid (that is (new Guid()) has special meaning as a wildcard for 'all current eventSources in
+ /// the appdomain'. Thus it is relatively easy to turn on all events in the appdomain if desired.
+ /// </para><para>
+ /// It is possible for there to be many EventListener's defined in a single appdomain. Each dispatcher is
+ /// logically independent of the other listeners. Thus when one dispatcher enables or disables events, it
+ /// affects only that dispatcher (other listeners get the events they asked for). It is possible that
+ /// commands sent with 'SendCommand' would do a semantic operation that would affect the other listeners
+ /// (like doing a GC, or flushing data ...), but this is the exception rather than the rule.
+ /// </para><para>
+ /// Thus the model is that each EventSource keeps a list of EventListeners that it is sending events
+ /// to. Associated with each EventSource-dispatcher pair is a set of filtering criteria that determine for
+ /// that eventSource what events that dispatcher will receive.
+ /// </para><para>
+ /// Listeners receive the events on their 'OnEventWritten' method. Thus subclasses of EventListener must
+ /// override this method to do something useful with the data.
+ /// </para><para>
+ /// In addition, when new eventSources are created, the 'OnEventSourceCreate' method is called. The
+ /// invariant associated with this callback is that every eventSource gets exactly one
+ /// 'OnEventSourceCreate' call for ever eventSource that can potentially send it log messages. In
+ /// particular when a EventListener is created, typically a series of OnEventSourceCreate' calls are
+ /// made to notify the new dispatcher of all the eventSources that existed before the EventListener was
+ /// created.
+ /// </para>
+ /// </summary>
+ public abstract class EventListener : IDisposable
+ {
+ /// <summary>
+ /// Create a new EventListener in which all events start off turned off (use EnableEvents to turn
+ /// them on).
+ /// </summary>
+ protected EventListener()
+ {
+ lock (EventListenersLock)
+ {
+ // Disallow creating EventListener reentrancy.
+ if (s_CreatingListener)
+ throw new InvalidOperationException(Environment.GetResourceString("EventSource_ListenerCreatedInsideCallback"));
+
+ try
+ {
+ s_CreatingListener = true;
+
+ // Add to list of listeners in the system, do this BEFORE firing the 'OnEventSourceCreated' so that
+ // Those added sources see this listener.
+ this.m_Next = s_Listeners;
+ s_Listeners = this;
+
+ // Find all existing eventSources call OnEventSourceCreated to 'catchup'
+ // Note that we DO have reentrancy here because 'AddListener' calls out to user code (via OnEventSourceCreated callback)
+ // We tolerate this by iterating over a copy of the list here. New event sources will take care of adding listeners themselves
+ // EventSources are not guaranteed to be added at the end of the s_EventSource list -- We re-use slots when a new source
+ // is created.
+ WeakReference[] eventSourcesSnapshot = s_EventSources.ToArray();
+
+ for (int i = 0; i < eventSourcesSnapshot.Length; i++)
+ {
+ WeakReference eventSourceRef = eventSourcesSnapshot[i];
+ EventSource eventSource = eventSourceRef.Target as EventSource;
+ if (eventSource != null)
+ eventSource.AddListener(this); // This will cause the OnEventSourceCreated callback to fire.
+ }
+
+ Validate();
+ }
+ finally
+ {
+ s_CreatingListener = false;
+ }
+ }
+ }
+ /// <summary>
+ /// Dispose should be called when the EventListener no longer desires 'OnEvent*' callbacks. Because
+ /// there is an internal list of strong references to all EventListeners, calling 'Dispose' directly
+ /// is the only way to actually make the listen die. Thus it is important that users of EventListener
+ /// call Dispose when they are done with their logging.
+ /// </summary>
+#if ES_BUILD_STANDALONE
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1063:ImplementIDisposableCorrectly")]
+#endif
+ public virtual void Dispose()
+ {
+ lock (EventListenersLock)
+ {
+ Contract.Assert(s_Listeners != null);
+ if (s_Listeners != null)
+ {
+ if (this == s_Listeners)
+ {
+ EventListener cur = s_Listeners;
+ s_Listeners = this.m_Next;
+ RemoveReferencesToListenerInEventSources(cur);
+ }
+ else
+ {
+ // Find 'this' from the s_Listeners linked list.
+ EventListener prev = s_Listeners;
+ for (; ; )
+ {
+ EventListener cur = prev.m_Next;
+ if (cur == null)
+ break;
+ if (cur == this)
+ {
+ // Found our Listener, remove references to to it in the eventSources
+ prev.m_Next = cur.m_Next; // Remove entry.
+ RemoveReferencesToListenerInEventSources(cur);
+ break;
+ }
+ prev = cur;
+ }
+ }
+ }
+ Validate();
+ }
+ }
+ // We don't expose a Dispose(bool), because the contract is that you don't have any non-syncronous
+ // 'cleanup' associated with this object
+
+ /// <summary>
+ /// Enable all events from the eventSource identified by 'eventSource' to the current
+ /// dispatcher that have a verbosity level of 'level' or lower.
+ ///
+ /// This call can have the effect of REDUCING the number of events sent to the
+ /// dispatcher if 'level' indicates a less verbose level than was previously enabled.
+ ///
+ /// This call never has an effect on other EventListeners.
+ ///
+ /// </summary>
+ public void EnableEvents(EventSource eventSource, EventLevel level)
+ {
+ EnableEvents(eventSource, level, EventKeywords.None);
+ }
+ /// <summary>
+ /// Enable all events from the eventSource identified by 'eventSource' to the current
+ /// dispatcher that have a verbosity level of 'level' or lower and have a event keyword
+ /// matching any of the bits in 'matchAnyKeyword'.
+ ///
+ /// This call can have the effect of REDUCING the number of events sent to the
+ /// dispatcher if 'level' indicates a less verbose level than was previously enabled or
+ /// if 'matchAnyKeyword' has fewer keywords set than where previously set.
+ ///
+ /// This call never has an effect on other EventListeners.
+ /// </summary>
+ public void EnableEvents(EventSource eventSource, EventLevel level, EventKeywords matchAnyKeyword)
+ {
+ EnableEvents(eventSource, level, matchAnyKeyword, null);
+ }
+ /// <summary>
+ /// Enable all events from the eventSource identified by 'eventSource' to the current
+ /// dispatcher that have a verbosity level of 'level' or lower and have a event keyword
+ /// matching any of the bits in 'matchAnyKeyword' as well as any (eventSource specific)
+ /// effect passing additional 'key-value' arguments 'arguments' might have.
+ ///
+ /// This call can have the effect of REDUCING the number of events sent to the
+ /// dispatcher if 'level' indicates a less verbose level than was previously enabled or
+ /// if 'matchAnyKeyword' has fewer keywords set than where previously set.
+ ///
+ /// This call never has an effect on other EventListeners.
+ /// </summary>
+ public void EnableEvents(EventSource eventSource, EventLevel level, EventKeywords matchAnyKeyword, IDictionary<string, string> arguments)
+ {
+ if (eventSource == null)
+ {
+ throw new ArgumentNullException("eventSource");
+ }
+ Contract.EndContractBlock();
+
+ eventSource.SendCommand(this, 0, 0, EventCommand.Update, true, level, matchAnyKeyword, arguments);
+ }
+ /// <summary>
+ /// Disables all events coming from eventSource identified by 'eventSource'.
+ ///
+ /// This call never has an effect on other EventListeners.
+ /// </summary>
+ public void DisableEvents(EventSource eventSource)
+ {
+ if (eventSource == null)
+ {
+ throw new ArgumentNullException("eventSource");
+ }
+ Contract.EndContractBlock();
+
+ eventSource.SendCommand(this, 0, 0, EventCommand.Update, false, EventLevel.LogAlways, EventKeywords.None, null);
+ }
+
+ /// <summary>
+ /// This method is called whenever a new eventSource is 'attached' to the dispatcher.
+ /// This can happen for all existing EventSources when the EventListener is created
+ /// as well as for any EventSources that come into existence after the EventListener
+ /// has been created.
+ ///
+ /// These 'catch up' events are called during the construction of the EventListener.
+ /// Subclasses need to be prepared for that.
+ ///
+ /// In a multi-threaded environment, it is possible that 'OnEventWritten' callbacks
+ /// for a particular eventSource to occur BEFORE the OnEventSourceCreated is issued.
+ /// </summary>
+ /// <param name="eventSource"></param>
+ internal protected virtual void OnEventSourceCreated(EventSource eventSource) { }
+ /// <summary>
+ /// This method is called whenever an event has been written by a EventSource for which
+ /// the EventListener has enabled events.
+ /// </summary>
+ internal protected abstract void OnEventWritten(EventWrittenEventArgs eventData);
+ /// <summary>
+ /// EventSourceIndex is small non-negative integer (suitable for indexing in an array)
+ /// identifying EventSource. It is unique per-appdomain. Some EventListeners might find
+ /// it useful to store additional information about each eventSource connected to it,
+ /// and EventSourceIndex allows this extra information to be efficiently stored in a
+ /// (growable) array (eg List(T)).
+ /// </summary>
+ static protected int EventSourceIndex(EventSource eventSource) { return eventSource.m_id; }
+
+ #region private
+ /// <summary>
+ /// This routine adds newEventSource to the global list of eventSources, it also assigns the
+ /// ID to the eventSource (which is simply the ordinal in the global list).
+ ///
+ /// EventSources currently do not pro-actively remove themselves from this list. Instead
+ /// when eventSources's are GCed, the weak handle in this list naturally gets nulled, and
+ /// we will reuse the slot. Today this list never shrinks (but we do reuse entries
+ /// that are in the list). This seems OK since the expectation is that EventSources
+ /// tend to live for the lifetime of the appdomain anyway (they tend to be used in
+ /// global variables).
+ /// </summary>
+ /// <param name="newEventSource"></param>
+ internal static void AddEventSource(EventSource newEventSource)
+ {
+ lock (EventListenersLock)
+ {
+ if (s_EventSources == null)
+ s_EventSources = new List<WeakReference>(2);
+
+ if (!s_EventSourceShutdownRegistered)
+ {
+ s_EventSourceShutdownRegistered = true;
+#if !ES_BUILD_PCL && !FEATURE_CORECLR
+ AppDomain.CurrentDomain.ProcessExit += DisposeOnShutdown;
+ AppDomain.CurrentDomain.DomainUnload += DisposeOnShutdown;
+#endif
+ }
+
+
+ // Periodically search the list for existing entries to reuse, this avoids
+ // unbounded memory use if we keep recycling eventSources (an unlikely thing).
+ int newIndex = -1;
+ if (s_EventSources.Count % 64 == 63) // on every block of 64, fill up the block before continuing
+ {
+ int i = s_EventSources.Count; // Work from the top down.
+ while (0 < i)
+ {
+ --i;
+ WeakReference weakRef = s_EventSources[i];
+ if (!weakRef.IsAlive)
+ {
+ newIndex = i;
+ weakRef.Target = newEventSource;
+ break;
+ }
+ }
+ }
+ if (newIndex < 0)
+ {
+ newIndex = s_EventSources.Count;
+ s_EventSources.Add(new WeakReference(newEventSource));
+ }
+ newEventSource.m_id = newIndex;
+
+ // Add every existing dispatcher to the new EventSource
+ for (EventListener listener = s_Listeners; listener != null; listener = listener.m_Next)
+ newEventSource.AddListener(listener);
+
+ Validate();
+ }
+ }
+
+ // Whenver we have async callbacks from native code, there is an ugly issue where
+ // during .NET shutdown native code could be calling the callback, but the CLR
+ // has already prohibited callbacks to managed code in the appdomain, causing the CLR
+ // to throw a COMPLUS_BOOT_EXCEPTION. The guideline we give is that you must unregister
+ // such callbacks on process shutdown or appdomain so that unmanaged code will never
+ // do this. This is what this callback is for.
+ // See
+ private static void DisposeOnShutdown(object sender, EventArgs e)
+ {
+ foreach (var esRef in s_EventSources)
+ {
+ EventSource es = esRef.Target as EventSource;
+ if (es != null)
+ es.Dispose();
+ }
+ }
+
+ /// <summary>
+ /// Helper used in code:Dispose that removes any references to 'listenerToRemove' in any of the
+ /// eventSources in the appdomain.
+ ///
+ /// The EventListenersLock must be held before calling this routine.
+ /// </summary>
+ private static void RemoveReferencesToListenerInEventSources(EventListener listenerToRemove)
+ {
+ // Foreach existing EventSource in the appdomain
+ foreach (WeakReference eventSourceRef in s_EventSources)
+ {
+ EventSource eventSource = eventSourceRef.Target as EventSource;
+ if (eventSource != null)
+ {
+ // Is the first output dispatcher the dispatcher we are removing?
+ if (eventSource.m_Dispatchers.m_Listener == listenerToRemove)
+ eventSource.m_Dispatchers = eventSource.m_Dispatchers.m_Next;
+ else
+ {
+ // Remove 'listenerToRemove' from the eventSource.m_Dispatchers linked list.
+ EventDispatcher prev = eventSource.m_Dispatchers;
+ for (; ; )
+ {
+ EventDispatcher cur = prev.m_Next;
+ if (cur == null)
+ {
+ Contract.Assert(false, "EventSource did not have a registered EventListener!");
+ break;
+ }
+ if (cur.m_Listener == listenerToRemove)
+ {
+ prev.m_Next = cur.m_Next; // Remove entry.
+ break;
+ }
+ prev = cur;
+ }
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// Checks internal consistency of EventSources/Listeners.
+ /// </summary>
+ [Conditional("DEBUG")]
+ internal static void Validate()
+ {
+ lock (EventListenersLock)
+ {
+ // Get all listeners
+ Dictionary<EventListener, bool> allListeners = new Dictionary<EventListener, bool>();
+ EventListener cur = s_Listeners;
+ while (cur != null)
+ {
+ allListeners.Add(cur, true);
+ cur = cur.m_Next;
+ }
+
+ // For all eventSources
+ int id = -1;
+ foreach (WeakReference eventSourceRef in s_EventSources)
+ {
+ id++;
+ EventSource eventSource = eventSourceRef.Target as EventSource;
+ if (eventSource == null)
+ continue;
+ Contract.Assert(eventSource.m_id == id, "Unexpected event source ID.");
+
+ // None listeners on eventSources exist in the dispatcher list.
+ EventDispatcher dispatcher = eventSource.m_Dispatchers;
+ while (dispatcher != null)
+ {
+ Contract.Assert(allListeners.ContainsKey(dispatcher.m_Listener), "EventSource has a listener not on the global list.");
+ dispatcher = dispatcher.m_Next;
+ }
+
+ // Every dispatcher is on Dispatcher List of every eventSource.
+ foreach (EventListener listener in allListeners.Keys)
+ {
+ dispatcher = eventSource.m_Dispatchers;
+ for (; ; )
+ {
+ Contract.Assert(dispatcher != null, "Listener is not on all eventSources.");
+ if (dispatcher.m_Listener == listener)
+ break;
+ dispatcher = dispatcher.m_Next;
+ }
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// Gets a global lock that is intended to protect the code:s_Listeners linked list and the
+ /// code:s_EventSources WeakReference list. (We happen to use the s_EventSources list as
+ /// the lock object)
+ /// </summary>
+ internal static object EventListenersLock
+ {
+ get
+ {
+ if (s_EventSources == null)
+ Interlocked.CompareExchange(ref s_EventSources, new List<WeakReference>(2), null);
+ return s_EventSources;
+ }
+ }
+
+ // Instance fields
+ internal volatile EventListener m_Next; // These form a linked list in s_Listeners
+#if FEATURE_ACTIVITYSAMPLING
+ internal ActivityFilter m_activityFilter; // If we are filtering by activity on this Listener, this keeps track of it.
+#endif // FEATURE_ACTIVITYSAMPLING
+
+ // static fields
+
+ /// <summary>
+ /// The list of all listeners in the appdomain. Listeners must be explicitly disposed to remove themselves
+ /// from this list. Note that EventSources point to their listener but NOT the reverse.
+ /// </summary>
+ internal static EventListener s_Listeners;
+ /// <summary>
+ /// The list of all active eventSources in the appdomain. Note that eventSources do NOT
+ /// remove themselves from this list this is a weak list and the GC that removes them may
+ /// not have happened yet. Thus it can contain event sources that are dead (thus you have
+ /// to filter those out.
+ /// </summary>
+ internal static List<WeakReference> s_EventSources;
+
+ /// <summary>
+ /// Used to disallow reentrancy.
+ /// </summary>
+ private static bool s_CreatingListener = false;
+
+ /// <summary>
+ /// Used to register AD/Process shutdown callbacks.
+ /// </summary>
+ private static bool s_EventSourceShutdownRegistered = false;
+ #endregion
+ }
+
+ /// <summary>
+ /// Passed to the code:EventSource.OnEventCommand callback
+ /// </summary>
+ public class EventCommandEventArgs : EventArgs
+ {
+ /// <summary>
+ /// Gets the command for the callback.
+ /// </summary>
+ public EventCommand Command { get; internal set; }
+
+ /// <summary>
+ /// Gets the arguments for the callback.
+ /// </summary>
+ public IDictionary<String, String> Arguments { get; internal set; }
+
+ /// <summary>
+ /// Enables the event that has the specified identifier.
+ /// </summary>
+ /// <param name="eventId">Event ID of event to be enabled</param>
+ /// <returns>true if eventId is in range</returns>
+ public bool EnableEvent(int eventId)
+ {
+ if (Command != EventCommand.Enable && Command != EventCommand.Disable)
+ throw new InvalidOperationException();
+ return eventSource.EnableEventForDispatcher(dispatcher, eventId, true);
+ }
+
+ /// <summary>
+ /// Disables the event that have the specified identifier.
+ /// </summary>
+ /// <param name="eventId">Event ID of event to be disabled</param>
+ /// <returns>true if eventId is in range</returns>
+ public bool DisableEvent(int eventId)
+ {
+ if (Command != EventCommand.Enable && Command != EventCommand.Disable)
+ throw new InvalidOperationException();
+ return eventSource.EnableEventForDispatcher(dispatcher, eventId, false);
+ }
+
+ #region private
+
+ internal EventCommandEventArgs(EventCommand command, IDictionary<string, string> arguments, EventSource eventSource,
+ EventListener listener, int perEventSourceSessionId, int etwSessionId, bool enable, EventLevel level, EventKeywords matchAnyKeyword)
+ {
+ this.Command = command;
+ this.Arguments = arguments;
+ this.eventSource = eventSource;
+ this.listener = listener;
+ this.perEventSourceSessionId = perEventSourceSessionId;
+ this.etwSessionId = etwSessionId;
+ this.enable = enable;
+ this.level = level;
+ this.matchAnyKeyword = matchAnyKeyword;
+ }
+
+ internal EventSource eventSource;
+ internal EventDispatcher dispatcher;
+
+ // These are the arguments of sendCommand and are only used for deferring commands until after we are fully initialized.
+ internal EventListener listener;
+ internal int perEventSourceSessionId;
+ internal int etwSessionId;
+ internal bool enable;
+ internal EventLevel level;
+ internal EventKeywords matchAnyKeyword;
+ internal EventCommandEventArgs nextCommand; // We form a linked list of these deferred commands.
+
+ #endregion
+ }
+
+ /// <summary>
+ /// EventWrittenEventArgs is passed to the user-provided override for
+ /// <see cref="EventListener.OnEventWritten"/> when an event is fired.
+ /// </summary>
+ public class EventWrittenEventArgs : EventArgs
+ {
+ /// <summary>
+ /// The name of the event.
+ /// </summary>
+ public string EventName
+ {
+ get
+ {
+ if (m_eventName != null || EventId < 0) // TraceLogging convention EventID == -1
+ {
+ return m_eventName;
+ }
+ else
+ return m_eventSource.m_eventData[EventId].Name;
+ }
+ internal set
+ {
+ m_eventName = value;
+ }
+ }
+
+ /// <summary>
+ /// Gets the event ID for the event that was written.
+ /// </summary>
+ public int EventId { get; internal set; }
+
+ /// <summary>
+ /// Gets the activity ID for the thread on which the event was written.
+ /// </summary>
+ public Guid ActivityId
+ {
+ [System.Security.SecurityCritical]
+ get { return EventSource.CurrentThreadActivityId; }
+ }
+
+ /// <summary>
+ /// Gets the related activity ID if one was specified when the event was written.
+ /// </summary>
+ public Guid RelatedActivityId
+ {
+ [System.Security.SecurityCritical]
+ get;
+ internal set;
+ }
+
+ /// <summary>
+ /// Gets the payload for the event.
+ /// </summary>
+ public ReadOnlyCollection<Object> Payload { get; internal set; }
+
+ /// <summary>
+ /// Gets the payload argument names.
+ /// </summary>
+ public ReadOnlyCollection<string> PayloadNames
+ {
+ get
+ {
+ // For contract based events we create the list lazily.
+ if (m_payloadNames == null)
+ {
+ // Self described events are identified by id -1.
+ Contract.Assert(EventId != -1);
+
+ var names = new List<string>();
+ foreach (var parameter in m_eventSource.m_eventData[EventId].Parameters)
+ {
+ names.Add(parameter.Name);
+ }
+ m_payloadNames = new ReadOnlyCollection<string>(names);
+ }
+
+ return m_payloadNames;
+ }
+
+ internal set
+ {
+ m_payloadNames = value;
+ }
+ }
+
+ /// <summary>
+ /// Gets the event source object.
+ /// </summary>
+ public EventSource EventSource { get { return m_eventSource; } }
+
+ /// <summary>
+ /// Gets the keywords for the event.
+ /// </summary>
+ public EventKeywords Keywords
+ {
+ get
+ {
+ if (EventId < 0) // TraceLogging convention EventID == -1
+ return m_keywords;
+
+ return (EventKeywords)m_eventSource.m_eventData[EventId].Descriptor.Keywords;
+ }
+ }
+
+ /// <summary>
+ /// Gets the operation code for the event.
+ /// </summary>
+ public EventOpcode Opcode
+ {
+ get
+ {
+ if (EventId < 0) // TraceLogging convention EventID == -1
+ return m_opcode;
+ return (EventOpcode)m_eventSource.m_eventData[EventId].Descriptor.Opcode;
+ }
+ }
+
+ /// <summary>
+ /// Gets the task for the event.
+ /// </summary>
+ public EventTask Task
+ {
+ get
+ {
+ if (EventId < 0) // TraceLogging convention EventID == -1
+ return EventTask.None;
+
+ return (EventTask)m_eventSource.m_eventData[EventId].Descriptor.Task;
+ }
+ }
+
+ /// <summary>
+ /// Any provider/user defined options associated with the event.
+ /// </summary>
+ public EventTags Tags
+ {
+ get
+ {
+ if (EventId < 0) // TraceLogging convention EventID == -1
+ return m_tags;
+ return m_eventSource.m_eventData[EventId].Tags;
+ }
+ }
+
+ /// <summary>
+ /// Gets the message for the event.
+ /// </summary>
+ public string Message
+ {
+ get
+ {
+ if (EventId < 0) // TraceLogging convention EventID == -1
+ return m_message;
+ else
+ return m_eventSource.m_eventData[EventId].Message;
+ }
+ internal set
+ {
+ m_message = value;
+ }
+ }
+
+
+#if FEATURE_MANAGED_ETW_CHANNELS
+ /// <summary>
+ /// Gets the channel for the event.
+ /// </summary>
+ public EventChannel Channel
+ {
+ get
+ {
+ if (EventId < 0) // TraceLogging convention EventID == -1
+ return EventChannel.None;
+ return (EventChannel)m_eventSource.m_eventData[EventId].Descriptor.Channel;
+ }
+ }
+#endif
+
+ /// <summary>
+ /// Gets the version of the event.
+ /// </summary>
+ public byte Version
+ {
+ get
+ {
+ if (EventId < 0) // TraceLogging convention EventID == -1
+ return 0;
+ return m_eventSource.m_eventData[EventId].Descriptor.Version;
+ }
+ }
+
+ /// <summary>
+ /// Gets the level for the event.
+ /// </summary>
+ public EventLevel Level
+ {
+ get
+ {
+ if ((uint)EventId >= (uint)m_eventSource.m_eventData.Length)
+ return EventLevel.LogAlways;
+ return (EventLevel)m_eventSource.m_eventData[EventId].Descriptor.Level;
+ }
+ }
+
+ #region private
+ internal EventWrittenEventArgs(EventSource eventSource)
+ {
+ m_eventSource = eventSource;
+ }
+ private string m_message;
+ private string m_eventName;
+ private EventSource m_eventSource;
+ private ReadOnlyCollection<string> m_payloadNames;
+ internal EventTags m_tags;
+ internal EventOpcode m_opcode;
+ internal EventKeywords m_keywords;
+ #endregion
+ }
+
+ /// <summary>
+ /// Allows customizing defaults and specifying localization support for the event source class to which it is applied.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Class)]
+ public sealed class EventSourceAttribute : Attribute
+ {
+ /// <summary>
+ /// Overrides the ETW name of the event source (which defaults to the class name)
+ /// </summary>
+ public string Name { get; set; }
+
+ /// <summary>
+ /// Overrides the default (calculated) Guid of an EventSource type. Explicitly defining a GUID is discouraged,
+ /// except when upgrading existing ETW providers to using event sources.
+ /// </summary>
+ public string Guid { get; set; }
+
+ /// <summary>
+ /// <para>
+ /// EventSources support localization of events. The names used for events, opcodes, tasks, keywords and maps
+ /// can be localized to several languages if desired. This works by creating a ResX style string table
+ /// (by simply adding a 'Resource File' to your project). This resource file is given a name e.g.
+ /// 'DefaultNameSpace.ResourceFileName' which can be passed to the ResourceManager constructor to read the
+ /// resources. This name is the value of the LocalizationResources property.
+ /// </para><para>
+ /// If LocalizationResources property is non-null, then EventSource will look up the localized strings for events by
+ /// using the following resource naming scheme
+ /// </para>
+ /// <para>* event_EVENTNAME</para>
+ /// <para>* task_TASKNAME</para>
+ /// <para>* keyword_KEYWORDNAME</para>
+ /// <para>* map_MAPNAME</para>
+ /// <para>
+ /// where the capitalized name is the name of the event, task, keyword, or map value that should be localized.
+ /// Note that the localized string for an event corresponds to the Message string, and can have {0} values
+ /// which represent the payload values.
+ /// </para>
+ /// </summary>
+ public string LocalizationResources { get; set; }
+ }
+
+ /// <summary>
+ /// Any instance methods in a class that subclasses <see cref="EventSource"/> and that return void are
+ /// assumed by default to be methods that generate an ETW event. Enough information can be deduced from the
+ /// name of the method and its signature to generate basic schema information for the event. The
+ /// <see cref="EventAttribute"/> class allows you to specify additional event schema information for an event if
+ /// desired.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Method)]
+ public sealed class EventAttribute : Attribute
+ {
+ /// <summary>Construct an EventAttribute with specified eventId</summary>
+ /// <param name="eventId">ID of the ETW event (an integer between 1 and 65535)</param>
+ public EventAttribute(int eventId) { this.EventId = eventId; Level = EventLevel.Informational; this.m_opcodeSet = false; }
+ /// <summary>Event's ID</summary>
+ public int EventId { get; private set; }
+ /// <summary>Event's severity level: indicates the severity or verbosity of the event</summary>
+ public EventLevel Level { get; set; }
+ /// <summary>Event's keywords: allows classification of events by "categories"</summary>
+ public EventKeywords Keywords { get; set; }
+ /// <summary>Event's operation code: allows defining operations, generally used with Tasks</summary>
+ public EventOpcode Opcode
+ {
+ get
+ {
+ return m_opcode;
+ }
+ set
+ {
+ this.m_opcode = value;
+ this.m_opcodeSet = true;
+ }
+ }
+
+ internal bool IsOpcodeSet
+ {
+ get
+ {
+ return m_opcodeSet;
+ }
+ }
+
+ /// <summary>Event's task: allows logical grouping of events</summary>
+ public EventTask Task { get; set; }
+#if FEATURE_MANAGED_ETW_CHANNELS
+ /// <summary>Event's channel: defines an event log as an additional destination for the event</summary>
+ public EventChannel Channel { get; set; }
+#endif
+ /// <summary>Event's version</summary>
+ public byte Version { get; set; }
+
+ /// <summary>
+ /// This can be specified to enable formatting and localization of the event's payload. You can
+ /// use standard .NET substitution operators (eg {1}) in the string and they will be replaced
+ /// with the 'ToString()' of the corresponding part of the event payload.
+ /// </summary>
+ public string Message { get; set; }
+
+ /// <summary>
+ /// User defined options associated with the event. These do not have meaning to the EventSource but
+ /// are passed through to listeners which given them semantics.
+ /// </summary>
+ public EventTags Tags { get; set; }
+
+ /// <summary>
+ /// Allows fine control over the Activity IDs generated by start and stop events
+ /// </summary>
+ public EventActivityOptions ActivityOptions { get; set; }
+
+ #region private
+ EventOpcode m_opcode;
+ private bool m_opcodeSet;
+ #endregion
+ }
+
+ /// <summary>
+ /// By default all instance methods in a class that subclasses code:EventSource that and return
+ /// void are assumed to be methods that generate an event. This default can be overridden by specifying
+ /// the code:NonEventAttribute
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Method)]
+ public sealed class NonEventAttribute : Attribute
+ {
+ /// <summary>
+ /// Constructs a default NonEventAttribute
+ /// </summary>
+ public NonEventAttribute() { }
+ }
+
+ //
+#if FEATURE_MANAGED_ETW_CHANNELS
+ /// <summary>
+ /// EventChannelAttribute allows customizing channels supported by an EventSource. This attribute must be
+ /// applied to an member of type EventChannel defined in a Channels class nested in the EventSource class:
+ /// <code>
+ /// public static class Channels
+ /// {
+ /// [Channel(Enabled = true, EventChannelType = EventChannelType.Admin)]
+ /// public const EventChannel Admin = (EventChannel)16;
+ ///
+ /// [Channel(Enabled = false, EventChannelType = EventChannelType.Operational)]
+ /// public const EventChannel Operational = (EventChannel)17;
+ /// }
+ /// </code>
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Field)]
+#if FEATURE_ADVANCED_MANAGED_ETW_CHANNELS
+ public
+#endif
+ class EventChannelAttribute : Attribute
+ {
+ /// <summary>
+ /// Specified whether the channel is enabled by default
+ /// </summary>
+ public bool Enabled { get; set; }
+
+ /// <summary>
+ /// Legal values are in EventChannelType
+ /// </summary>
+ public EventChannelType EventChannelType { get; set; }
+
+#if FEATURE_ADVANCED_MANAGED_ETW_CHANNELS
+ /// <summary>
+ /// Specifies the isolation for the channel
+ /// </summary>
+ public EventChannelIsolation Isolation { get; set; }
+
+ /// <summary>
+ /// Specifies an SDDL access descriptor that controls access to the log file that backs the channel.
+ /// See MSDN ((http://msdn.microsoft.com/en-us/library/windows/desktop/aa382741.aspx) for details.
+ /// </summary>
+ public string Access { get; set; }
+
+ /// <summary>
+ /// Allows importing channels defined in external manifests
+ /// </summary>
+ public string ImportChannel { get; set; }
+#endif
+
+ //
+
+ }
+
+ /// <summary>
+ /// Allowed channel types
+ /// </summary>
+#if FEATURE_ADVANCED_MANAGED_ETW_CHANNELS
+ public
+#endif
+ enum EventChannelType
+ {
+ /// <summary>The admin channel</summary>
+ Admin = 1,
+ /// <summary>The operational channel</summary>
+ Operational,
+ /// <summary>The Analytic channel</summary>
+ Analytic,
+ /// <summary>The debug channel</summary>
+ Debug,
+ }
+
+#if FEATURE_ADVANCED_MANAGED_ETW_CHANNELS
+ /// <summary>
+ /// Allowed isolation levels. See MSDN (http://msdn.microsoft.com/en-us/library/windows/desktop/aa382741.aspx)
+ /// for the default permissions associated with each level. EventChannelIsolation and Access allows control over the
+ /// access permissions for the channel and backing file.
+ /// </summary>
+ public
+ enum EventChannelIsolation
+ {
+ /// <summary>
+ /// This is the default isolation level. All channels that specify Application isolation use the same ETW session
+ /// </summary>
+ Application = 1,
+ /// <summary>
+ /// All channels that specify System isolation use the same ETW session
+ /// </summary>
+ System,
+ /// <summary>
+ /// Use sparingly! When specifying Custom isolation, a separate ETW session is created for the channel.
+ /// Using Custom isolation lets you control the access permissions for the channel and backing file.
+ /// Because there are only 64 ETW sessions available, you should limit your use of Custom isolation.
+ /// </summary>
+ Custom,
+ }
+#endif
+#endif
+
+ /// <summary>
+ /// Describes the pre-defined command (EventCommandEventArgs.Command property) that is passed to the OnEventCommand callback.
+ /// </summary>
+ public enum EventCommand
+ {
+ /// <summary>
+ /// Update EventSource state
+ /// </summary>
+ Update = 0,
+ /// <summary>
+ /// Request EventSource to generate and send its manifest
+ /// </summary>
+ SendManifest = -1,
+ /// <summary>
+ /// Enable event
+ /// </summary>
+ Enable = -2,
+ /// <summary>
+ /// Disable event
+ /// </summary>
+ Disable = -3
+ };
+
+
+ #region private classes
+
+#if FEATURE_ACTIVITYSAMPLING
+
+ /// <summary>
+ /// ActivityFilter is a helper structure that is used to keep track of run-time state
+ /// associated with activity filtering. It is 1-1 with EventListeners (logically
+ /// every listener has one of these, however we actually allocate them lazily), as well
+ /// as 1-to-1 with tracing-aware EtwSessions.
+ ///
+ /// This structure also keeps track of the sampling counts associated with 'trigger'
+ /// events. Because these trigger events are rare, and you typically only have one of
+ /// them, we store them here as a linked list.
+ /// </summary>
+ internal sealed class ActivityFilter : IDisposable
+ {
+ /// <summary>
+ /// Disable all activity filtering for the listener associated with 'filterList',
+ /// (in the session associated with it) that is triggered by any event in 'source'.
+ /// </summary>
+ public static void DisableFilter(ref ActivityFilter filterList, EventSource source)
+ {
+#if !ES_BUILD_STANDALONE
+ Contract.Assert(Monitor.IsEntered(EventListener.EventListenersLock));
+#endif
+
+ if (filterList == null)
+ return;
+
+ ActivityFilter cur;
+ // Remove it from anywhere in the list (except the first element, which has to
+ // be treated specially)
+ ActivityFilter prev = filterList;
+ cur = prev.m_next;
+ while (cur != null)
+ {
+ if (cur.m_providerGuid == source.Guid)
+ {
+ // update TriggersActivityTracking bit
+ if (cur.m_eventId >= 0 && cur.m_eventId < source.m_eventData.Length)
+ --source.m_eventData[cur.m_eventId].TriggersActivityTracking;
+
+ // Remove it from the linked list.
+ prev.m_next = cur.m_next;
+ // dispose of the removed node
+ cur.Dispose();
+ // update cursor
+ cur = prev.m_next;
+ }
+ else
+ {
+ // update cursors
+ prev = cur;
+ cur = prev.m_next;
+ }
+ }
+
+ // Sadly we have to treat the first element specially in linked list removal in C#
+ if (filterList.m_providerGuid == source.Guid)
+ {
+ // update TriggersActivityTracking bit
+ if (filterList.m_eventId >= 0 && filterList.m_eventId < source.m_eventData.Length)
+ --source.m_eventData[filterList.m_eventId].TriggersActivityTracking;
+
+ // We are the first element in the list.
+ var first = filterList;
+ filterList = first.m_next;
+ // dispose of the removed node
+ first.Dispose();
+ }
+ // the above might have removed the one ActivityFilter in the session that contains the
+ // cleanup delegate; re-create the delegate if needed
+ if (filterList != null)
+ {
+ EnsureActivityCleanupDelegate(filterList);
+ }
+ }
+
+ /// <summary>
+ /// Currently this has "override" semantics. We first disable all filters
+ /// associated with 'source', and next we add new filters for each entry in the
+ /// string 'startEvents'. participateInSampling specifies whether non-startEvents
+ /// always trigger or only trigger when current activity is 'active'.
+ /// </summary>
+ public static void UpdateFilter(
+ ref ActivityFilter filterList,
+ EventSource source,
+ int perEventSourceSessionId,
+ string startEvents)
+ {
+#if !ES_BUILD_STANDALONE
+ Contract.Assert(Monitor.IsEntered(EventListener.EventListenersLock));
+#endif
+
+ // first remove all filters associated with 'source'
+ DisableFilter(ref filterList, source);
+
+ if (!string.IsNullOrEmpty(startEvents))
+ {
+ // ActivitySamplingStartEvents is a space-separated list of Event:Frequency pairs.
+ // The Event may be specified by name or by ID. Errors in parsing such a pair
+ // result in the error being reported to the listeners, and the pair being ignored.
+ // E.g. "CustomActivityStart:1000 12:10" specifies that for event CustomActivityStart
+ // we should initiate activity tracing once every 1000 events, *and* for event ID 12
+ // we should initiate activity tracing once every 10 events.
+ string[] activityFilterStrings = startEvents.Split(' ');
+
+ for (int i = 0; i < activityFilterStrings.Length; ++i)
+ {
+ string activityFilterString = activityFilterStrings[i];
+ int sampleFreq = 1;
+ int eventId = -1;
+ int colonIdx = activityFilterString.IndexOf(':');
+ if (colonIdx < 0)
+ {
+ source.ReportOutOfBandMessage("ERROR: Invalid ActivitySamplingStartEvent specification: " +
+ activityFilterString, false);
+ // ignore failure...
+ continue;
+ }
+ string sFreq = activityFilterString.Substring(colonIdx + 1);
+ if (!int.TryParse(sFreq, out sampleFreq))
+ {
+ source.ReportOutOfBandMessage("ERROR: Invalid sampling frequency specification: " + sFreq, false);
+ continue;
+ }
+ activityFilterString = activityFilterString.Substring(0, colonIdx);
+ if (!int.TryParse(activityFilterString, out eventId))
+ {
+ // reset eventId
+ eventId = -1;
+ // see if it's an event name
+ for (int j = 0; j < source.m_eventData.Length; j++)
+ {
+ EventSource.EventMetadata[] ed = source.m_eventData;
+ if (ed[j].Name != null && ed[j].Name.Length == activityFilterString.Length &&
+ string.Compare(ed[j].Name, activityFilterString, StringComparison.OrdinalIgnoreCase) == 0)
+ {
+ eventId = ed[j].Descriptor.EventId;
+ break;
+ }
+ }
+ }
+ if (eventId < 0 || eventId >= source.m_eventData.Length)
+ {
+ source.ReportOutOfBandMessage("ERROR: Invalid eventId specification: " + activityFilterString, false);
+ continue;
+ }
+ EnableFilter(ref filterList, source, perEventSourceSessionId, eventId, sampleFreq);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Returns the first ActivityFilter from 'filterList' corresponding to 'source'.
+ /// </summary>
+ public static ActivityFilter GetFilter(ActivityFilter filterList, EventSource source)
+ {
+ for (var af = filterList; af != null; af = af.m_next)
+ {
+ if (af.m_providerGuid == source.Guid && af.m_samplingFreq != -1)
+ return af;
+ }
+ return null;
+ }
+
+ /// <summary>
+ /// Returns a session mask representing all sessions in which the activity
+ /// associated with the current thread is allowed through the activity filter.
+ /// If 'triggeringEvent' is true the event MAY be a triggering event. Ideally
+ /// most of the time this is false as you can guarentee this event is NOT a
+ /// triggering event. If 'triggeringEvent' is true, then it checks the
+ /// 'EventSource' and 'eventID' of the event being logged to see if it is actually
+ /// a trigger. If so it activates the current activity.
+ ///
+ /// If 'childActivityID' is present, it will be added to the active set if the
+ /// current activity is active.
+ /// </summary>
+ [SecurityCritical]
+ unsafe public static bool PassesActivityFilter(
+ ActivityFilter filterList,
+ Guid* childActivityID,
+ bool triggeringEvent,
+ EventSource source,
+ int eventId)
+ {
+ Contract.Assert(filterList != null && filterList.m_activeActivities != null);
+ bool shouldBeLogged = false;
+ if (triggeringEvent)
+ {
+ for (ActivityFilter af = filterList; af != null; af = af.m_next)
+ {
+ if (eventId == af.m_eventId && source.Guid == af.m_providerGuid)
+ {
+ // Update the sampling count with wrap-around
+ int curSampleCount, newSampleCount;
+ do
+ {
+ curSampleCount = af.m_curSampleCount;
+ if (curSampleCount <= 1)
+ newSampleCount = af.m_samplingFreq; // Wrap around, counting down to 1
+ else
+ newSampleCount = curSampleCount - 1;
+ }
+ while (Interlocked.CompareExchange(ref af.m_curSampleCount, newSampleCount, curSampleCount) != curSampleCount);
+ // If we hit zero, then start tracking the activity.
+ if (curSampleCount <= 1)
+ {
+ Guid currentActivityId = EventSource.InternalCurrentThreadActivityId;
+ Tuple<Guid, int> startId;
+ // only add current activity if it's not already a root activity
+ if (!af.m_rootActiveActivities.TryGetValue(currentActivityId, out startId))
+ {
+ // EventSource.OutputDebugString(string.Format(" PassesAF - Triggering(session {0}, evt {1})", af.m_perEventSourceSessionId, eventId));
+ shouldBeLogged = true;
+ af.m_activeActivities[currentActivityId] = Environment.TickCount;
+ af.m_rootActiveActivities[currentActivityId] = Tuple.Create(source.Guid, eventId);
+ }
+ }
+ else
+ {
+ // a start event following a triggering start event
+ Guid currentActivityId = EventSource.InternalCurrentThreadActivityId;
+ Tuple<Guid, int> startId;
+ // only remove current activity if we added it
+ if (af.m_rootActiveActivities.TryGetValue(currentActivityId, out startId) &&
+ startId.Item1 == source.Guid && startId.Item2 == eventId)
+ {
+ // EventSource.OutputDebugString(string.Format("Activity dying: {0} -> StartEvent({1})", currentActivityId, eventId));
+ // remove activity only from current logging scope (af)
+ int dummy;
+ af.m_activeActivities.TryRemove(currentActivityId, out dummy);
+ }
+ }
+ break;
+ }
+ }
+ }
+
+ var activeActivities = GetActiveActivities(filterList);
+ if (activeActivities != null)
+ {
+ // if we hadn't already determined this should be logged, test further
+ if (!shouldBeLogged)
+ {
+ shouldBeLogged = !activeActivities.IsEmpty &&
+ activeActivities.ContainsKey(EventSource.InternalCurrentThreadActivityId);
+ }
+ if (shouldBeLogged && childActivityID != null &&
+ ((EventOpcode)source.m_eventData[eventId].Descriptor.Opcode == EventOpcode.Send))
+ {
+ FlowActivityIfNeeded(filterList, null, childActivityID);
+ // EventSource.OutputDebugString(string.Format(" PassesAF - activity {0}", *childActivityID));
+ }
+ }
+ // EventSource.OutputDebugString(string.Format(" PassesAF - shouldBeLogged(evt {0}) = {1:x}", eventId, shouldBeLogged));
+ return shouldBeLogged;
+ }
+
+ [System.Security.SecuritySafeCritical]
+ public static bool IsCurrentActivityActive(ActivityFilter filterList)
+ {
+ var activeActivities = GetActiveActivities(filterList);
+ if (activeActivities != null &&
+ activeActivities.ContainsKey(EventSource.InternalCurrentThreadActivityId))
+ return true;
+
+ return false;
+ }
+
+ /// <summary>
+ /// For the EventListener/EtwSession associated with 'filterList', add 'childActivityid'
+ /// to list of active activities IF 'currentActivityId' is also active. Passing in a null
+ /// value for 'currentActivityid' is an indication tha caller has already verified
+ /// that the current activity is active.
+ /// </summary>
+ [SecurityCritical]
+ unsafe public static void FlowActivityIfNeeded(ActivityFilter filterList, Guid* currentActivityId, Guid* childActivityID)
+ {
+ Contract.Assert(childActivityID != null);
+
+ var activeActivities = GetActiveActivities(filterList);
+ Contract.Assert(activeActivities != null);
+
+ // take currentActivityId == null to mean we *know* the current activity is "active"
+ if (currentActivityId != null && !activeActivities.ContainsKey(*currentActivityId))
+ return;
+
+ if (activeActivities.Count > MaxActivityTrackCount)
+ {
+ TrimActiveActivityStore(activeActivities);
+ // make sure current activity is still in the set:
+ activeActivities[EventSource.InternalCurrentThreadActivityId] = Environment.TickCount;
+ }
+ // add child activity to list of actives
+ activeActivities[*childActivityID] = Environment.TickCount;
+
+ }
+
+ /// <summary>
+ /// </summary>
+ public static void UpdateKwdTriggers(ActivityFilter activityFilter, Guid sourceGuid, EventSource source, EventKeywords sessKeywords)
+ {
+ for (var af = activityFilter; af != null; af = af.m_next)
+ {
+ if ((sourceGuid == af.m_providerGuid) &&
+ (source.m_eventData[af.m_eventId].TriggersActivityTracking > 0 ||
+ ((EventOpcode)source.m_eventData[af.m_eventId].Descriptor.Opcode == EventOpcode.Send)))
+ {
+ // we could be more precise here, if we tracked 'anykeywords' per session
+ unchecked
+ {
+ source.m_keywordTriggers |= (source.m_eventData[af.m_eventId].Descriptor.Keywords & (long)sessKeywords);
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// For the EventSource specified by 'sourceGuid' and the EventListener/EtwSession
+ /// associated with 'this' ActivityFilter list, return configured sequence of
+ /// [eventId, sampleFreq] pairs that defines the sampling policy.
+ /// </summary>
+ public IEnumerable<Tuple<int, int>> GetFilterAsTuple(Guid sourceGuid)
+ {
+ for (ActivityFilter af = this; af != null; af = af.m_next)
+ {
+ if (af.m_providerGuid == sourceGuid)
+ yield return Tuple.Create(af.m_eventId, af.m_samplingFreq);
+ }
+ }
+
+ /// <summary>
+ /// The cleanup being performed consists of removing the m_myActivityDelegate from
+ /// the static s_activityDying, therefore allowing the ActivityFilter to be reclaimed.
+ /// </summary>
+ public void Dispose()
+ {
+#if !ES_BUILD_STANDALONE
+ Contract.Assert(Monitor.IsEntered(EventListener.EventListenersLock));
+#endif
+ // m_myActivityDelegate is still alive (held by the static EventSource.s_activityDying).
+ // Therefore we are ok to take a dependency on m_myActivityDelegate being valid even
+ // during the finalization of the ActivityFilter
+ if (m_myActivityDelegate != null)
+ {
+ EventSource.s_activityDying = (Action<Guid>)Delegate.Remove(EventSource.s_activityDying, m_myActivityDelegate);
+ m_myActivityDelegate = null;
+ }
+ }
+
+ #region private
+
+ /// <summary>
+ /// Creates a new ActivityFilter that is triggered by 'eventId' from 'source' ever
+ /// 'samplingFreq' times the event fires. You can have several of these forming a
+ /// linked list.
+ /// </summary>
+ private ActivityFilter(EventSource source, int perEventSourceSessionId, int eventId, int samplingFreq, ActivityFilter existingFilter = null)
+ {
+ m_providerGuid = source.Guid;
+ m_perEventSourceSessionId = perEventSourceSessionId;
+ m_eventId = eventId;
+ m_samplingFreq = samplingFreq;
+ m_next = existingFilter;
+
+ Contract.Assert(existingFilter == null ||
+ (existingFilter.m_activeActivities == null) == (existingFilter.m_rootActiveActivities == null));
+
+ // if this is the first filter we add for this session, we need to create a new
+ // table of activities. m_activeActivities is common across EventSources in the same
+ // session
+ ConcurrentDictionary<Guid, int> activeActivities = null;
+ if (existingFilter == null ||
+ (activeActivities = GetActiveActivities(existingFilter)) == null)
+ {
+ m_activeActivities = new ConcurrentDictionary<Guid, int>();
+ m_rootActiveActivities = new ConcurrentDictionary<Guid, Tuple<Guid, int>>();
+
+ // Add a delegate to the 'SetCurrentThreadToActivity callback so that I remove 'dead' activities
+ m_myActivityDelegate = GetActivityDyingDelegate(this);
+ EventSource.s_activityDying = (Action<Guid>)Delegate.Combine(EventSource.s_activityDying, m_myActivityDelegate);
+ }
+ else
+ {
+ m_activeActivities = activeActivities;
+ m_rootActiveActivities = existingFilter.m_rootActiveActivities;
+ }
+
+ }
+
+ /// <summary>
+ /// Ensure there's at least one ActivityFilter in the 'filterList' that contains an
+ /// activity-removing delegate for the listener/session associated with 'filterList'.
+ /// </summary>
+ private static void EnsureActivityCleanupDelegate(ActivityFilter filterList)
+ {
+ if (filterList == null)
+ return;
+
+ for (ActivityFilter af = filterList; af != null; af = af.m_next)
+ {
+ if (af.m_myActivityDelegate != null)
+ return;
+ }
+
+ // we didn't find a delegate
+ filterList.m_myActivityDelegate = GetActivityDyingDelegate(filterList);
+ EventSource.s_activityDying = (Action<Guid>)Delegate.Combine(EventSource.s_activityDying, filterList.m_myActivityDelegate);
+ }
+
+ /// <summary>
+ /// Builds the delegate to be called when an activity is dying. This is responsible
+ /// for performing whatever cleanup is needed for the ActivityFilter list passed in.
+ /// This gets "added" to EventSource.s_activityDying and ends up being called from
+ /// EventSource.SetCurrentThreadActivityId and ActivityFilter.PassesActivityFilter.
+ /// </summary>
+ /// <returns>The delegate to be called when an activity is dying</returns>
+ private static Action<Guid> GetActivityDyingDelegate(ActivityFilter filterList)
+ {
+ return (Guid oldActivity) =>
+ {
+ int dummy;
+ filterList.m_activeActivities.TryRemove(oldActivity, out dummy);
+ Tuple<Guid, int> dummyTuple;
+ filterList.m_rootActiveActivities.TryRemove(oldActivity, out dummyTuple);
+ };
+ }
+
+ /// <summary>
+ /// Enables activity filtering for the listener associated with 'filterList', triggering on
+ /// the event 'eventID' from 'source' with a sampling frequency of 'samplingFreq'
+ ///
+ /// if 'eventID' is out of range (e.g. negative), it means we are not triggering (but we are
+ /// activitySampling if something else triggered).
+ /// </summary>
+ /// <returns>true if activity sampling is enabled the samplingFreq is non-zero </returns>
+ private static bool EnableFilter(ref ActivityFilter filterList, EventSource source, int perEventSourceSessionId, int eventId, int samplingFreq)
+ {
+#if !ES_BUILD_STANDALONE
+ Contract.Assert(Monitor.IsEntered(EventListener.EventListenersLock));
+#endif
+ Contract.Assert(samplingFreq > 0);
+ Contract.Assert(eventId >= 0);
+
+ filterList = new ActivityFilter(source, perEventSourceSessionId, eventId, samplingFreq, filterList);
+
+ // Mark the 'quick Check' that indicates this is a trigger event.
+ // If eventId is out of range then this mark is not done which has the effect of ignoring
+ // the trigger.
+ if (0 <= eventId && eventId < source.m_eventData.Length)
+ ++source.m_eventData[eventId].TriggersActivityTracking;
+
+ return true;
+ }
+
+ /// <summary>
+ /// Normally this code never runs, it is here just to prevent run-away resource usage.
+ /// </summary>
+ private static void TrimActiveActivityStore(ConcurrentDictionary<Guid, int> activities)
+ {
+ if (activities.Count > MaxActivityTrackCount)
+ {
+ // Remove half of the oldest activity ids.
+ var keyValues = activities.ToArray();
+ var tickNow = Environment.TickCount;
+
+ // Sort by age, taking into account wrap-around. As long as x and y are within
+ // 23 days of now then (0x7FFFFFFF & (tickNow - x.Value)) is the delta (even if
+ // TickCount wraps). I then sort by DESCENDING age. (that is oldest value first)
+ Array.Sort(keyValues, (x, y) => (0x7FFFFFFF & (tickNow - y.Value)) - (0x7FFFFFFF & (tickNow - x.Value)));
+ for (int i = 0; i < keyValues.Length / 2; i++)
+ {
+ int dummy;
+ activities.TryRemove(keyValues[i].Key, out dummy);
+ }
+ }
+ }
+
+ private static ConcurrentDictionary<Guid, int> GetActiveActivities(
+ ActivityFilter filterList)
+ {
+ for (ActivityFilter af = filterList; af != null; af = af.m_next)
+ {
+ if (af.m_activeActivities != null)
+ return af.m_activeActivities;
+ }
+ return null;
+ }
+
+ // m_activeActivities always points to the sample dictionary for EVERY ActivityFilter
+ // in the m_next list. The 'int' value in the m_activities set is a timestamp
+ // (Environment.TickCount) of when the entry was put in the system and is used to
+ // remove 'old' entries that if the set gets too big.
+ ConcurrentDictionary<Guid, int> m_activeActivities;
+
+ // m_rootActiveActivities holds the "root" active activities, i.e. the activities
+ // that were marked as active because a Start event fired on them. We need to keep
+ // track of these to enable sampling in the scenario of an app's main thread that
+ // never explicitly sets distinct activity IDs as it executes. To handle these
+ // situations we manufacture a Guid from the thread's ID, and:
+ // (a) we consider the firing of a start event when the sampling counter reaches
+ // zero to mark the beginning of an interesting activity, and
+ // (b) we consider the very next firing of the same start event to mark the
+ // ending of that activity.
+ // We use a ConcurrentDictionary to avoid taking explicit locks.
+ // The key (a guid) represents the activity ID of the root active activity
+ // The value is made up of the Guid of the event provider and the eventId of
+ // the start event.
+ ConcurrentDictionary<Guid, Tuple<Guid, int>> m_rootActiveActivities;
+ Guid m_providerGuid; // We use the GUID rather than object identity because we don't want to keep the eventSource alive
+ int m_eventId; // triggering event
+ int m_samplingFreq; // Counter reset to this when it hits 0
+ int m_curSampleCount; // We count down to 0 and then activate the activity.
+ int m_perEventSourceSessionId; // session ID bit for ETW, 0 for EventListeners
+
+ const int MaxActivityTrackCount = 100000; // maximum number of tracked activities
+
+ ActivityFilter m_next; // We create a linked list of these
+ Action<Guid> m_myActivityDelegate;
+ #endregion
+ };
+
+
+ /// <summary>
+ /// An EtwSession instance represents an activity-tracing-aware ETW session. Since these
+ /// are limited to 8 concurrent sessions per machine (currently) we're going to store
+ /// the active ones in a singly linked list.
+ /// </summary>
+ internal class EtwSession
+ {
+ public static EtwSession GetEtwSession(int etwSessionId, bool bCreateIfNeeded = false)
+ {
+ if (etwSessionId < 0)
+ return null;
+
+ EtwSession etwSession;
+ foreach (var wrEtwSession in s_etwSessions)
+ {
+#if ES_BUILD_STANDALONE
+ if ((etwSession = (EtwSession) wrEtwSession.Target) != null && etwSession.m_etwSessionId == etwSessionId)
+ return etwSession;
+#else
+ if (wrEtwSession.TryGetTarget(out etwSession) && etwSession.m_etwSessionId == etwSessionId)
+ return etwSession;
+#endif
+ }
+
+ if (!bCreateIfNeeded)
+ return null;
+
+#if ES_BUILD_STANDALONE
+ if (s_etwSessions == null)
+ s_etwSessions = new List<WeakReference>();
+
+ etwSession = new EtwSession(etwSessionId);
+ s_etwSessions.Add(new WeakReference(etwSession));
+#else
+ if (s_etwSessions == null)
+ s_etwSessions = new List<WeakReference<EtwSession>>();
+
+ etwSession = new EtwSession(etwSessionId);
+ s_etwSessions.Add(new WeakReference<EtwSession>(etwSession));
+#endif
+
+ if (s_etwSessions.Count > s_thrSessionCount)
+ TrimGlobalList();
+
+ return etwSession;
+
+ }
+
+ public static void RemoveEtwSession(EtwSession etwSession)
+ {
+ Contract.Assert(etwSession != null);
+ if (s_etwSessions == null || etwSession == null)
+ return;
+
+ s_etwSessions.RemoveAll((wrEtwSession) =>
+ {
+ EtwSession session;
+#if ES_BUILD_STANDALONE
+ return (session = (EtwSession) wrEtwSession.Target) != null &&
+ (session.m_etwSessionId == etwSession.m_etwSessionId);
+#else
+ return wrEtwSession.TryGetTarget(out session) &&
+ (session.m_etwSessionId == etwSession.m_etwSessionId);
+#endif
+ });
+
+ if (s_etwSessions.Count > s_thrSessionCount)
+ TrimGlobalList();
+ }
+
+ private static void TrimGlobalList()
+ {
+ if (s_etwSessions == null)
+ return;
+
+ s_etwSessions.RemoveAll((wrEtwSession) =>
+ {
+#if ES_BUILD_STANDALONE
+ return wrEtwSession.Target == null;
+#else
+ EtwSession session;
+ return !wrEtwSession.TryGetTarget(out session);
+#endif
+ });
+ }
+
+ private EtwSession(int etwSessionId)
+ {
+ m_etwSessionId = etwSessionId;
+ }
+
+ public readonly int m_etwSessionId; // ETW session ID (as retrieved by EventProvider)
+ public ActivityFilter m_activityFilter; // all filters enabled for this session
+
+#if ES_BUILD_STANDALONE
+ private static List<WeakReference> s_etwSessions = new List<WeakReference>();
+#else
+ private static List<WeakReference<EtwSession>> s_etwSessions = new List<WeakReference<EtwSession>>();
+#endif
+ private const int s_thrSessionCount = 16;
+ }
+
+#endif // FEATURE_ACTIVITYSAMPLING
+
+ // holds a bitfield representing a session mask
+ /// <summary>
+ /// A SessionMask represents a set of (at most MAX) sessions as a bit mask. The perEventSourceSessionId
+ /// is the index in the SessionMask of the bit that will be set. These can translate to
+ /// EventSource's reserved keywords bits using the provided ToEventKeywords() and
+ /// FromEventKeywords() methods.
+ /// </summary>
+ internal struct SessionMask
+ {
+ public SessionMask(SessionMask m)
+ { m_mask = m.m_mask; }
+
+ public SessionMask(uint mask = 0)
+ { m_mask = mask & MASK; }
+
+ public bool IsEqualOrSupersetOf(SessionMask m)
+ {
+ return (this.m_mask | m.m_mask) == this.m_mask;
+ }
+
+ public static SessionMask All
+ {
+ get { return new SessionMask(MASK); }
+ }
+
+ public static SessionMask FromId(int perEventSourceSessionId)
+ {
+ Contract.Assert(perEventSourceSessionId < MAX);
+ return new SessionMask((uint)1 << perEventSourceSessionId);
+ }
+
+ public ulong ToEventKeywords()
+ {
+ return (ulong)m_mask << SHIFT_SESSION_TO_KEYWORD;
+ }
+
+ public static SessionMask FromEventKeywords(ulong m)
+ {
+ return new SessionMask((uint)(m >> SHIFT_SESSION_TO_KEYWORD));
+ }
+
+ public bool this[int perEventSourceSessionId]
+ {
+ get
+ {
+ Contract.Assert(perEventSourceSessionId < MAX);
+ return (m_mask & (1 << perEventSourceSessionId)) != 0;
+ }
+ set
+ {
+ Contract.Assert(perEventSourceSessionId < MAX);
+ if (value) m_mask |= ((uint)1 << perEventSourceSessionId);
+ else m_mask &= ~((uint)1 << perEventSourceSessionId);
+ }
+ }
+
+ public static SessionMask operator |(SessionMask m1, SessionMask m2)
+ {
+ return new SessionMask(m1.m_mask | m2.m_mask);
+ }
+
+ public static SessionMask operator &(SessionMask m1, SessionMask m2)
+ {
+ return new SessionMask(m1.m_mask & m2.m_mask);
+ }
+
+ public static SessionMask operator ^(SessionMask m1, SessionMask m2)
+ {
+ return new SessionMask(m1.m_mask ^ m2.m_mask);
+ }
+
+ public static SessionMask operator ~(SessionMask m)
+ {
+ return new SessionMask(MASK & ~(m.m_mask));
+ }
+
+ public static explicit operator ulong(SessionMask m)
+ { return m.m_mask; }
+
+ public static explicit operator uint(SessionMask m)
+ { return m.m_mask; }
+
+ private uint m_mask;
+
+ internal const int SHIFT_SESSION_TO_KEYWORD = 44; // bits 44-47 inclusive are reserved
+ internal const uint MASK = 0x0fU; // the mask of 4 reserved bits
+ internal const uint MAX = 4; // maximum number of simultaneous ETW sessions supported
+ }
+
+ /// <summary>
+ /// code:EventDispatchers are a simple 'helper' structure that holds the filtering state
+ /// (m_EventEnabled) for a particular EventSource X EventListener tuple
+ ///
+ /// Thus a single EventListener may have many EventDispatchers (one for every EventSource
+ /// that that EventListener has activate) and a Single EventSource may also have many
+ /// event Dispatchers (one for every EventListener that has activated it).
+ ///
+ /// Logically a particular EventDispatcher belongs to exactly one EventSource and exactly
+ /// one EventListener (alhtough EventDispatcher does not 'remember' the EventSource it is
+ /// associated with.
+ /// </summary>
+ internal class EventDispatcher
+ {
+ internal EventDispatcher(EventDispatcher next, bool[] eventEnabled, EventListener listener)
+ {
+ m_Next = next;
+ m_EventEnabled = eventEnabled;
+ m_Listener = listener;
+ }
+
+ // Instance fields
+ readonly internal EventListener m_Listener; // The dispatcher this entry is for
+ internal bool[] m_EventEnabled; // For every event in a the eventSource, is it enabled?
+#if FEATURE_ACTIVITYSAMPLING
+ internal bool m_activityFilteringEnabled; // does THIS EventSource have activity filtering turned on for this listener?
+#endif // FEATURE_ACTIVITYSAMPLING
+
+ // Only guarenteed to exist after a InsureInit()
+ internal EventDispatcher m_Next; // These form a linked list in code:EventSource.m_Dispatchers
+ // Of all listeners for that eventSource.
+ }
+
+ /// <summary>
+ /// Flags that can be used with EventSource.GenerateManifest to control how the ETW manifest for the EventSource is
+ /// generated.
+ /// </summary>
+ [Flags]
+ public enum EventManifestOptions
+ {
+ /// <summary>
+ /// Only the resources associated with current UI culture are included in the manifest
+ /// </summary>
+ None = 0x0,
+ /// <summary>
+ /// Throw exceptions for any inconsistency encountered
+ /// </summary>
+ Strict = 0x1,
+ /// <summary>
+ /// Generate a "resources" node under "localization" for every satellite assembly provided
+ /// </summary>
+ AllCultures = 0x2,
+ /// <summary>
+ /// Generate the manifest only if the event source needs to be registered on the machine,
+ /// otherwise return null (but still perform validation if Strict is specified)
+ /// </summary>
+ OnlyIfNeededForRegistration = 0x4,
+ /// <summary>
+ /// When generating the manifest do *not* enforce the rule that the current EventSource class
+ /// must be the base class for the user-defined type passed in. This allows validation of .net
+ /// event sources using the new validation code
+ /// </summary>
+ AllowEventSourceOverride = 0x8,
+ }
+
+ /// <summary>
+ /// ManifestBuilder is designed to isolate the details of the message of the event from the
+ /// rest of EventSource. This one happens to create XML.
+ /// </summary>
+ internal class ManifestBuilder
+ {
+ /// <summary>
+ /// Build a manifest for 'providerName' with the given GUID, which will be packaged into 'dllName'.
+ /// 'resources, is a resource manager. If specified all messages are localized using that manager.
+ /// </summary>
+ public ManifestBuilder(string providerName, Guid providerGuid, string dllName, ResourceManager resources,
+ EventManifestOptions flags)
+ {
+#if FEATURE_MANAGED_ETW_CHANNELS
+ this.providerName = providerName;
+#endif
+ this.flags = flags;
+
+ this.resources = resources;
+ sb = new StringBuilder();
+ events = new StringBuilder();
+ templates = new StringBuilder();
+ opcodeTab = new Dictionary<int, string>();
+ stringTab = new Dictionary<string, string>();
+ errors = new List<string>();
+ perEventByteArrayArgIndices = new Dictionary<string, List<int>>();
+
+ sb.AppendLine("<instrumentationManifest xmlns=\"http://schemas.microsoft.com/win/2004/08/events\">");
+ sb.AppendLine(" <instrumentation xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:win=\"http://manifests.microsoft.com/win/2004/08/windows/events\">");
+ sb.AppendLine(" <events xmlns=\"http://schemas.microsoft.com/win/2004/08/events\">");
+ sb.Append("<provider name=\"").Append(providerName).
+ Append("\" guid=\"{").Append(providerGuid.ToString()).Append("}");
+ if (dllName != null)
+ sb.Append("\" resourceFileName=\"").Append(dllName).Append("\" messageFileName=\"").Append(dllName);
+
+ var symbolsName = providerName.Replace("-", "").Replace(".", "_"); // Period and - are illegal replace them.
+ sb.Append("\" symbol=\"").Append(symbolsName);
+ sb.Append("\">").AppendLine();
+ }
+
+ public void AddOpcode(string name, int value)
+ {
+ if ((flags & EventManifestOptions.Strict) != 0)
+ {
+ if (value <= 10 || value >= 239)
+ ManifestError(Environment.GetResourceString("EventSource_IllegalOpcodeValue", name, value));
+ string prevName;
+ if (opcodeTab.TryGetValue(value, out prevName) && !name.Equals(prevName, StringComparison.Ordinal))
+ ManifestError(Environment.GetResourceString("EventSource_OpcodeCollision", name, prevName, value));
+ }
+ opcodeTab[value] = name;
+ }
+ public void AddTask(string name, int value)
+ {
+ if ((flags & EventManifestOptions.Strict) != 0)
+ {
+ if (value <= 0 || value >= 65535)
+ ManifestError(Environment.GetResourceString("EventSource_IllegalTaskValue", name, value));
+ string prevName;
+ if (taskTab != null && taskTab.TryGetValue(value, out prevName) && !name.Equals(prevName, StringComparison.Ordinal))
+ ManifestError(Environment.GetResourceString("EventSource_TaskCollision", name, prevName, value));
+ }
+ if (taskTab == null)
+ taskTab = new Dictionary<int, string>();
+ taskTab[value] = name;
+ }
+ public void AddKeyword(string name, ulong value)
+ {
+ if ((value & (value - 1)) != 0) // Is it a power of 2?
+ ManifestError(Environment.GetResourceString("EventSource_KeywordNeedPowerOfTwo", "0x" + value.ToString("x", CultureInfo.CurrentCulture), name), true);
+ if ((flags & EventManifestOptions.Strict) != 0)
+ {
+ if (value >= 0x0000100000000000UL && !name.StartsWith("Session", StringComparison.Ordinal))
+ ManifestError(Environment.GetResourceString("EventSource_IllegalKeywordsValue", name, "0x" + value.ToString("x", CultureInfo.CurrentCulture)));
+ string prevName;
+ if (keywordTab != null && keywordTab.TryGetValue(value, out prevName) && !name.Equals(prevName, StringComparison.Ordinal))
+ ManifestError(Environment.GetResourceString("EventSource_KeywordCollision", name, prevName, "0x" + value.ToString("x", CultureInfo.CurrentCulture)));
+ }
+ if (keywordTab == null)
+ keywordTab = new Dictionary<ulong, string>();
+ keywordTab[value] = name;
+ }
+
+#if FEATURE_MANAGED_ETW_CHANNELS
+ /// <summary>
+ /// Add a channel. channelAttribute can be null
+ /// </summary>
+ public void AddChannel(string name, int value, EventChannelAttribute channelAttribute)
+ {
+ EventChannel chValue = (EventChannel)value;
+ if (value < (int)EventChannel.Admin || value > 255)
+ ManifestError(Environment.GetResourceString("EventSource_EventChannelOutOfRange", name, value));
+ else if (chValue >= EventChannel.Admin && chValue <= EventChannel.Debug &&
+ channelAttribute != null && EventChannelToChannelType(chValue) != channelAttribute.EventChannelType)
+ {
+ // we want to ensure developers do not define EventChannels that conflict with the builtin ones,
+ // but we want to allow them to override the default ones...
+ ManifestError(Environment.GetResourceString("EventSource_ChannelTypeDoesNotMatchEventChannelValue",
+ name, ((EventChannel)value).ToString()));
+ }
+
+ //
+
+ ulong kwd = GetChannelKeyword(chValue);
+
+ if (channelTab == null)
+ channelTab = new Dictionary<int, ChannelInfo>(4);
+ channelTab[value] = new ChannelInfo { Name = name, Keywords = kwd, Attribs = channelAttribute };
+ }
+
+ private EventChannelType EventChannelToChannelType(EventChannel channel)
+ {
+#if !ES_BUILD_STANDALONE
+ Contract.Assert(channel >= EventChannel.Admin && channel <= EventChannel.Debug);
+#endif
+ return (EventChannelType)((int)channel - (int)EventChannel.Admin + (int)EventChannelType.Admin);
+ }
+ private EventChannelAttribute GetDefaultChannelAttribute(EventChannel channel)
+ {
+ EventChannelAttribute attrib = new EventChannelAttribute();
+ attrib.EventChannelType = EventChannelToChannelType(channel);
+ if (attrib.EventChannelType <= EventChannelType.Operational)
+ attrib.Enabled = true;
+ return attrib;
+ }
+
+ public ulong[] GetChannelData()
+ {
+ if (this.channelTab == null)
+ {
+ return new ulong[0];
+ }
+
+ // We create an array indexed by the channel id for fast look up.
+ // E.g. channelMask[Admin] will give you the bit mask for Admin channel.
+ int maxkey = -1;
+ foreach (var item in this.channelTab.Keys)
+ {
+ if (item > maxkey)
+ {
+ maxkey = item;
+ }
+ }
+
+ ulong[] channelMask = new ulong[maxkey + 1];
+ foreach (var item in this.channelTab)
+ {
+ channelMask[item.Key] = item.Value.Keywords;
+ }
+
+ return channelMask;
+ }
+
+#endif
+ public void StartEvent(string eventName, EventAttribute eventAttribute)
+ {
+ Contract.Assert(numParams == 0);
+ Contract.Assert(this.eventName == null);
+ this.eventName = eventName;
+ numParams = 0;
+ byteArrArgIndices = null;
+
+ events.Append(" <event").
+ Append(" value=\"").Append(eventAttribute.EventId).Append("\"").
+ Append(" version=\"").Append(eventAttribute.Version).Append("\"").
+ Append(" level=\"").Append(GetLevelName(eventAttribute.Level)).Append("\"").
+ Append(" symbol=\"").Append(eventName).Append("\"");
+
+ // at this point we add to the manifest's stringTab a message that is as-of-yet
+ // "untranslated to manifest convention", b/c we don't have the number or position
+ // of any byte[] args (which require string format index updates)
+ WriteMessageAttrib(events, "event", eventName, eventAttribute.Message);
+
+ if (eventAttribute.Keywords != 0)
+ events.Append(" keywords=\"").Append(GetKeywords((ulong)eventAttribute.Keywords, eventName)).Append("\"");
+ if (eventAttribute.Opcode != 0)
+ events.Append(" opcode=\"").Append(GetOpcodeName(eventAttribute.Opcode, eventName)).Append("\"");
+ if (eventAttribute.Task != 0)
+ events.Append(" task=\"").Append(GetTaskName(eventAttribute.Task, eventName)).Append("\"");
+#if FEATURE_MANAGED_ETW_CHANNELS
+ if (eventAttribute.Channel != 0)
+ {
+ events.Append(" channel=\"").Append(GetChannelName(eventAttribute.Channel, eventName, eventAttribute.Message)).Append("\"");
+ }
+#endif
+ }
+
+ public void AddEventParameter(Type type, string name)
+ {
+ if (numParams == 0)
+ templates.Append(" <template tid=\"").Append(eventName).Append("Args\">").AppendLine();
+ if (type == typeof(byte[]))
+ {
+ // mark this index as "extraneous" (it has no parallel in the managed signature)
+ // we use these values in TranslateToManifestConvention()
+ if (byteArrArgIndices == null)
+ byteArrArgIndices = new List<int>(4);
+ byteArrArgIndices.Add(numParams);
+
+ // add an extra field to the template representing the length of the binary blob
+ numParams++;
+ templates.Append(" <data name=\"").Append(name).Append("Size\" inType=\"win:UInt32\"/>").AppendLine();
+ }
+ numParams++;
+ templates.Append(" <data name=\"").Append(name).Append("\" inType=\"").Append(GetTypeName(type)).Append("\"");
+ //
+
+ if ((type.IsArray || type.IsPointer) && type.GetElementType() == typeof(byte))
+ {
+ // add "length" attribute to the "blob" field in the template (referencing the field added above)
+ templates.Append(" length=\"").Append(name).Append("Size\"");
+ }
+ // ETW does not support 64-bit value maps, so we don't specify these as ETW maps
+ if (type.IsEnum() && Enum.GetUnderlyingType(type) != typeof(UInt64) && Enum.GetUnderlyingType(type) != typeof(Int64))
+ {
+ templates.Append(" map=\"").Append(type.Name).Append("\"");
+ if (mapsTab == null)
+ mapsTab = new Dictionary<string, Type>();
+ if (!mapsTab.ContainsKey(type.Name))
+ mapsTab.Add(type.Name, type); // Remember that we need to dump the type enumeration
+ }
+
+ templates.Append("/>").AppendLine();
+ }
+ public void EndEvent()
+ {
+ if (numParams > 0)
+ {
+ templates.Append(" </template>").AppendLine();
+ events.Append(" template=\"").Append(eventName).Append("Args\"");
+ }
+ events.Append("/>").AppendLine();
+
+ if (byteArrArgIndices != null)
+ perEventByteArrayArgIndices[eventName] = byteArrArgIndices;
+
+ // at this point we have all the information we need to translate the C# Message
+ // to the manifest string we'll put in the stringTab
+ string msg;
+ if (stringTab.TryGetValue("event_" + eventName, out msg))
+ {
+ msg = TranslateToManifestConvention(msg, eventName);
+ stringTab["event_" + eventName] = msg;
+ }
+
+ eventName = null;
+ numParams = 0;
+ byteArrArgIndices = null;
+ }
+
+#if FEATURE_MANAGED_ETW_CHANNELS
+ // Channel keywords are generated one per channel to allow channel based filtering in event viewer. These keywords are autogenerated
+ // by mc.exe for compiling a manifest and are based on the order of the channels (fields) in the Channels inner class (when advanced
+ // channel support is enabled), or based on the order the predefined channels appear in the EventAttribute properties (for simple
+ // support). The manifest generated *MUST* have the channels specified in the same order (that's how our computed keywords are mapped
+ // to channels by the OS infrastructure).
+ public ulong GetChannelKeyword(EventChannel channel)
+ {
+ if (channelTab == null)
+ {
+ channelTab = new Dictionary<int, ChannelInfo>(4);
+ }
+
+ if (channelTab.Count == MaxCountChannels)
+ ManifestError(Environment.GetResourceString("EventSource_MaxChannelExceeded"));
+
+ ulong channelKeyword;
+ ChannelInfo info;
+ if (!channelTab.TryGetValue((int)channel, out info))
+ {
+ channelKeyword = nextChannelKeywordBit;
+ nextChannelKeywordBit >>= 1;
+ }
+ else
+ {
+ channelKeyword = info.Keywords;
+ }
+
+ return channelKeyword;
+ }
+#endif
+
+ public byte[] CreateManifest()
+ {
+ string str = CreateManifestString();
+ return Encoding.UTF8.GetBytes(str);
+ }
+
+ public IList<string> Errors { get { return errors; } }
+
+ /// <summary>
+ /// When validating an event source it adds the error to the error collection.
+ /// When not validating it throws an exception if runtimeCritical is "true".
+ /// Otherwise the error is ignored.
+ /// </summary>
+ /// <param name="msg"></param>
+ /// <param name="runtimeCritical"></param>
+ public void ManifestError(string msg, bool runtimeCritical = false)
+ {
+ if ((flags & EventManifestOptions.Strict) != 0)
+ errors.Add(msg);
+ else if (runtimeCritical)
+ throw new ArgumentException(msg);
+ }
+
+ private string CreateManifestString()
+ {
+
+#if FEATURE_MANAGED_ETW_CHANNELS
+ // Write out the channels
+ if (channelTab != null)
+ {
+ sb.Append(" <channels>").AppendLine();
+ var sortedChannels = new List<KeyValuePair<int, ChannelInfo>>();
+ foreach (KeyValuePair<int, ChannelInfo> p in channelTab) { sortedChannels.Add(p); }
+ sortedChannels.Sort((p1, p2) => -Comparer<ulong>.Default.Compare(p1.Value.Keywords, p2.Value.Keywords));
+ foreach (var kvpair in sortedChannels)
+ {
+ int channel = kvpair.Key;
+ ChannelInfo channelInfo = kvpair.Value;
+
+ string channelType = null;
+ string elementName = "channel";
+ bool enabled = false;
+ string fullName = null;
+#if FEATURE_ADVANCED_MANAGED_ETW_CHANNELS
+ string isolation = null;
+ string access = null;
+#endif
+ if (channelInfo.Attribs != null)
+ {
+ var attribs = channelInfo.Attribs;
+ if (Enum.IsDefined(typeof(EventChannelType), attribs.EventChannelType))
+ channelType = attribs.EventChannelType.ToString();
+ enabled = attribs.Enabled;
+#if FEATURE_ADVANCED_MANAGED_ETW_CHANNELS
+ if (attribs.ImportChannel != null)
+ {
+ fullName = attribs.ImportChannel;
+ elementName = "importChannel";
+ }
+ if (Enum.IsDefined(typeof(EventChannelIsolation), attribs.Isolation))
+ isolation = attribs.Isolation.ToString();
+ access = attribs.Access;
+#endif
+ }
+ if (fullName == null)
+ fullName = providerName + "/" + channelInfo.Name;
+
+ sb.Append(" <").Append(elementName);
+ sb.Append(" chid=\"").Append(channelInfo.Name).Append("\"");
+ sb.Append(" name=\"").Append(fullName).Append("\"");
+ if (elementName == "channel") // not applicable to importChannels.
+ {
+ WriteMessageAttrib(sb, "channel", channelInfo.Name, null);
+ sb.Append(" value=\"").Append(channel).Append("\"");
+ if (channelType != null)
+ sb.Append(" type=\"").Append(channelType).Append("\"");
+ sb.Append(" enabled=\"").Append(enabled.ToString().ToLower()).Append("\"");
+#if FEATURE_ADVANCED_MANAGED_ETW_CHANNELS
+ if (access != null)
+ sb.Append(" access=\"").Append(access).Append("\"");
+ if (isolation != null)
+ sb.Append(" isolation=\"").Append(isolation).Append("\"");
+#endif
+ }
+ sb.Append("/>").AppendLine();
+ }
+ sb.Append(" </channels>").AppendLine();
+ }
+#endif
+
+ // Write out the tasks
+ if (taskTab != null)
+ {
+
+ sb.Append(" <tasks>").AppendLine();
+ var sortedTasks = new List<int>(taskTab.Keys);
+ sortedTasks.Sort();
+ foreach (int task in sortedTasks)
+ {
+ sb.Append(" <task");
+ WriteNameAndMessageAttribs(sb, "task", taskTab[task]);
+ sb.Append(" value=\"").Append(task).Append("\"/>").AppendLine();
+ }
+ sb.Append(" </tasks>").AppendLine();
+ }
+
+ // Write out the maps
+ if (mapsTab != null)
+ {
+ sb.Append(" <maps>").AppendLine();
+ foreach (Type enumType in mapsTab.Values)
+ {
+ bool isbitmap = EventSource.GetCustomAttributeHelper(enumType, typeof(FlagsAttribute), flags) != null;
+ string mapKind = isbitmap ? "bitMap" : "valueMap";
+ sb.Append(" <").Append(mapKind).Append(" name=\"").Append(enumType.Name).Append("\">").AppendLine();
+
+ // write out each enum value
+ FieldInfo[] staticFields = enumType.GetFields(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Static);
+ foreach (FieldInfo staticField in staticFields)
+ {
+ object constantValObj = staticField.GetRawConstantValue();
+ if (constantValObj != null)
+ {
+ long hexValue;
+ if (constantValObj is int)
+ hexValue = ((int)constantValObj);
+ else if (constantValObj is long)
+ hexValue = ((long)constantValObj);
+ else
+ continue;
+
+ // ETW requires all bitmap values to be powers of 2. Skip the ones that are not.
+ //
+ if (isbitmap && ((hexValue & (hexValue - 1)) != 0 || hexValue == 0))
+ continue;
+
+ sb.Append(" <map value=\"0x").Append(hexValue.ToString("x", CultureInfo.InvariantCulture)).Append("\"");
+ WriteMessageAttrib(sb, "map", enumType.Name + "." + staticField.Name, staticField.Name);
+ sb.Append("/>").AppendLine();
+ }
+ }
+ sb.Append(" </").Append(mapKind).Append(">").AppendLine();
+ }
+ sb.Append(" </maps>").AppendLine();
+ }
+
+ // Write out the opcodes
+ sb.Append(" <opcodes>").AppendLine();
+ var sortedOpcodes = new List<int>(opcodeTab.Keys);
+ sortedOpcodes.Sort();
+ foreach (int opcode in sortedOpcodes)
+ {
+ sb.Append(" <opcode");
+ WriteNameAndMessageAttribs(sb, "opcode", opcodeTab[opcode]);
+ sb.Append(" value=\"").Append(opcode).Append("\"/>").AppendLine();
+ }
+ sb.Append(" </opcodes>").AppendLine();
+
+ // Write out the keywords
+ if (keywordTab != null)
+ {
+ sb.Append(" <keywords>").AppendLine();
+ var sortedKeywords = new List<ulong>(keywordTab.Keys);
+ sortedKeywords.Sort();
+ foreach (ulong keyword in sortedKeywords)
+ {
+ sb.Append(" <keyword");
+ WriteNameAndMessageAttribs(sb, "keyword", keywordTab[keyword]);
+ sb.Append(" mask=\"0x").Append(keyword.ToString("x", CultureInfo.InvariantCulture)).Append("\"/>").AppendLine();
+ }
+ sb.Append(" </keywords>").AppendLine();
+ }
+
+ sb.Append(" <events>").AppendLine();
+ sb.Append(events);
+ sb.Append(" </events>").AppendLine();
+
+ sb.Append(" <templates>").AppendLine();
+ if (templates.Length > 0)
+ {
+ sb.Append(templates);
+ }
+ else
+ {
+ // Work around a cornercase ETW issue where a manifest with no templates causes
+ // ETW events to not get sent to their associated channel.
+ sb.Append(" <template tid=\"_empty\"></template>").AppendLine();
+ }
+ sb.Append(" </templates>").AppendLine();
+
+ sb.Append("</provider>").AppendLine();
+ sb.Append("</events>").AppendLine();
+ sb.Append("</instrumentation>").AppendLine();
+
+ // Output the localization information.
+ sb.Append("<localization>").AppendLine();
+
+ List<CultureInfo> cultures = null;
+ if (resources != null && (flags & EventManifestOptions.AllCultures) != 0)
+ {
+ cultures = GetSupportedCultures(resources);
+ }
+ else
+ {
+ cultures = new List<CultureInfo>();
+ cultures.Add(CultureInfo.CurrentUICulture);
+ }
+#if ES_BUILD_STANDALONE
+ var sortedStrings = new List<string>(stringTab.Keys);
+ sortedStrings.Sort();
+#else
+ // DD 947936
+ var sortedStrings = new string[stringTab.Keys.Count];
+ stringTab.Keys.CopyTo(sortedStrings, 0);
+ // Avoid using public Array.Sort as that attempts to access BinaryCompatibility. Unfortunately FrameworkEventSource gets called
+ // very early in the app domain creation, when _FusionStore is not set up yet, resulting in a failure to run the static constructory
+ // for BinaryCompatibility. This failure is then cached and a TypeInitializationException is thrown every time some code attampts to
+ // access BinaryCompatibility.
+ ArraySortHelper<string>.IntrospectiveSort(sortedStrings, 0, sortedStrings.Length, Comparer<string>.Default);
+#endif
+ foreach (var ci in cultures)
+ {
+ sb.Append(" <resources culture=\"").Append(ci.Name).Append("\">").AppendLine();
+ sb.Append(" <stringTable>").AppendLine();
+
+ foreach (var stringKey in sortedStrings)
+ {
+ string val = GetLocalizedMessage(stringKey, ci, etwFormat: true);
+ sb.Append(" <string id=\"").Append(stringKey).Append("\" value=\"").Append(val).Append("\"/>").AppendLine();
+ }
+ sb.Append(" </stringTable>").AppendLine();
+ sb.Append(" </resources>").AppendLine();
+ }
+ sb.Append("</localization>").AppendLine();
+ sb.AppendLine("</instrumentationManifest>");
+ return sb.ToString();
+ }
+
+ #region private
+ private void WriteNameAndMessageAttribs(StringBuilder stringBuilder, string elementName, string name)
+ {
+ stringBuilder.Append(" name=\"").Append(name).Append("\"");
+ WriteMessageAttrib(sb, elementName, name, name);
+ }
+ private void WriteMessageAttrib(StringBuilder stringBuilder, string elementName, string name, string value)
+ {
+ string key = elementName + "_" + name;
+ // See if the user wants things localized.
+ if (resources != null)
+ {
+ // resource fallback: strings in the neutral culture will take precedence over inline strings
+ string localizedString = resources.GetString(key, CultureInfo.InvariantCulture);
+ if (localizedString != null)
+ value = localizedString;
+ }
+ if (value == null)
+ return;
+
+ stringBuilder.Append(" message=\"$(string.").Append(key).Append(")\"");
+ string prevValue;
+ if (stringTab.TryGetValue(key, out prevValue))
+ ManifestError(Environment.GetResourceString("EventSource_DuplicateStringKey", key), true);
+ else
+ stringTab.Add(key, value);
+ }
+ internal string GetLocalizedMessage(string key, CultureInfo ci, bool etwFormat)
+ {
+ string value = null;
+ if (resources != null)
+ {
+ string localizedString = resources.GetString(key, ci);
+ if (localizedString != null)
+ {
+ value = localizedString;
+ if (etwFormat && key.StartsWith("event_"))
+ {
+ var evtName = key.Substring("event_".Length);
+ value = TranslateToManifestConvention(value, evtName);
+ }
+ }
+ }
+ if (etwFormat && value == null)
+ stringTab.TryGetValue(key, out value);
+
+ return value;
+ }
+
+ /// <summary>
+ /// There's no API to enumerate all languages an assembly is localized into, so instead
+ /// we enumerate through all the "known" cultures and attempt to load a corresponding satellite
+ /// assembly
+ /// </summary>
+ /// <param name="resources"></param>
+ /// <returns></returns>
+ private static List<CultureInfo> GetSupportedCultures(ResourceManager resources)
+ {
+ var cultures = new List<CultureInfo>();
+#if !ES_BUILD_PCL && !FEATURE_CORECLR
+ foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.SpecificCultures /*| CultureTypes.NeutralCultures*/))
+ {
+ if (resources.GetResourceSet(ci, true, false) != null)
+ cultures.Add(ci);
+ }
+#endif // !ES_BUILD_PCL && !FEATURE_CORECLR
+ if (!cultures.Contains(CultureInfo.CurrentUICulture))
+ cultures.Insert(0, CultureInfo.CurrentUICulture);
+ return cultures;
+ }
+
+ private static string GetLevelName(EventLevel level)
+ {
+ return (((int)level >= 16) ? "" : "win:") + level.ToString();
+ }
+
+#if FEATURE_MANAGED_ETW_CHANNELS
+ private string GetChannelName(EventChannel channel, string eventName, string eventMessage)
+ {
+ ChannelInfo info = null;
+ if (channelTab == null || !channelTab.TryGetValue((int)channel, out info))
+ {
+ if (channel < EventChannel.Admin) // || channel > EventChannel.Debug)
+ ManifestError(Environment.GetResourceString("EventSource_UndefinedChannel", channel, eventName));
+
+ // allow channels to be auto-defined. The well known ones get their well known names, and the
+ // rest get names Channel<N>. This allows users to modify the Manifest if they want more advanced features.
+ if (channelTab == null)
+ channelTab = new Dictionary<int, ChannelInfo>(4);
+
+ string channelName = channel.ToString(); // For well know channels this is a nice name, otherwise a number
+ if (EventChannel.Debug < channel)
+ channelName = "Channel" + channelName; // Add a 'Channel' prefix for numbers.
+
+ AddChannel(channelName, (int)channel, GetDefaultChannelAttribute(channel));
+ if (!channelTab.TryGetValue((int)channel, out info))
+ ManifestError(Environment.GetResourceString("EventSource_UndefinedChannel", channel, eventName));
+ }
+ // events that specify admin channels *must* have non-null "Message" attributes
+ if (resources != null && eventMessage == null)
+ eventMessage = resources.GetString("event_" + eventName, CultureInfo.InvariantCulture);
+ if (info.Attribs.EventChannelType == EventChannelType.Admin && eventMessage == null)
+ ManifestError(Environment.GetResourceString("EventSource_EventWithAdminChannelMustHaveMessage", eventName, info.Name));
+ return info.Name;
+ }
+#endif
+ private string GetTaskName(EventTask task, string eventName)
+ {
+ if (task == EventTask.None)
+ return "";
+
+ string ret;
+ if (taskTab == null)
+ taskTab = new Dictionary<int, string>();
+ if (!taskTab.TryGetValue((int)task, out ret))
+ ret = taskTab[(int)task] = eventName;
+ return ret;
+ }
+ private string GetOpcodeName(EventOpcode opcode, string eventName)
+ {
+ switch (opcode)
+ {
+ case EventOpcode.Info:
+ return "win:Info";
+ case EventOpcode.Start:
+ return "win:Start";
+ case EventOpcode.Stop:
+ return "win:Stop";
+ case EventOpcode.DataCollectionStart:
+ return "win:DC_Start";
+ case EventOpcode.DataCollectionStop:
+ return "win:DC_Stop";
+ case EventOpcode.Extension:
+ return "win:Extension";
+ case EventOpcode.Reply:
+ return "win:Reply";
+ case EventOpcode.Resume:
+ return "win:Resume";
+ case EventOpcode.Suspend:
+ return "win:Suspend";
+ case EventOpcode.Send:
+ return "win:Send";
+ case EventOpcode.Receive:
+ return "win:Receive";
+ }
+
+ string ret;
+ if (opcodeTab == null || !opcodeTab.TryGetValue((int)opcode, out ret))
+ {
+ ManifestError(Environment.GetResourceString("EventSource_UndefinedOpcode", opcode, eventName), true);
+ ret = null;
+ }
+ return ret;
+ }
+ private string GetKeywords(ulong keywords, string eventName)
+ {
+ string ret = "";
+ for (ulong bit = 1; bit != 0; bit <<= 1)
+ {
+ if ((keywords & bit) != 0)
+ {
+ string keyword = null;
+ if ((keywordTab == null || !keywordTab.TryGetValue(bit, out keyword)) &&
+ (bit >= (ulong)0x1000000000000))
+ {
+ // do not report Windows reserved keywords in the manifest (this allows the code
+ // to be resilient to potential renaming of these keywords)
+ keyword = string.Empty;
+ }
+ if (keyword == null)
+ {
+ ManifestError(Environment.GetResourceString("EventSource_UndefinedKeyword", "0x" + bit.ToString("x", CultureInfo.CurrentCulture), eventName), true);
+ keyword = string.Empty;
+ }
+ if (ret.Length != 0 && keyword.Length != 0)
+ ret = ret + " ";
+ ret = ret + keyword;
+ }
+ }
+ return ret;
+ }
+ private string GetTypeName(Type type)
+ {
+ if (type.IsEnum())
+ {
+ FieldInfo[] fields = type.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
+ var typeName = GetTypeName(fields[0].FieldType);
+ return typeName.Replace("win:Int", "win:UInt"); // ETW requires enums to be unsigned.
+ }
+ switch (type.GetTypeCode())
+ {
+ case TypeCode.Boolean:
+ return "win:Boolean";
+ case TypeCode.Byte:
+ return "win:UInt8";
+ case TypeCode.Char:
+ case TypeCode.UInt16:
+ return "win:UInt16";
+ case TypeCode.UInt32:
+ return "win:UInt32";
+ case TypeCode.UInt64:
+ return "win:UInt64";
+ case TypeCode.SByte:
+ return "win:Int8";
+ case TypeCode.Int16:
+ return "win:Int16";
+ case TypeCode.Int32:
+ return "win:Int32";
+ case TypeCode.Int64:
+ return "win:Int64";
+ case TypeCode.String:
+ return "win:UnicodeString";
+ case TypeCode.Single:
+ return "win:Float";
+ case TypeCode.Double:
+ return "win:Double";
+ case TypeCode.DateTime:
+ return "win:FILETIME";
+ default:
+ if (type == typeof(Guid))
+ return "win:GUID";
+ else if (type == typeof(IntPtr))
+ return "win:Pointer";
+ else if ((type.IsArray || type.IsPointer) && type.GetElementType() == typeof(byte))
+ return "win:Binary";
+ ManifestError(Environment.GetResourceString("EventSource_UnsupportedEventTypeInManifest", type.Name), true);
+ return string.Empty;
+ }
+ }
+
+ private static void UpdateStringBuilder(ref StringBuilder stringBuilder, string eventMessage, int startIndex, int count)
+ {
+ if (stringBuilder == null)
+ stringBuilder = new StringBuilder();
+ stringBuilder.Append(eventMessage, startIndex, count);
+ }
+
+ // Manifest messages use %N conventions for their message substitutions. Translate from
+ // .NET conventions. We can't use RegEx for this (we are in mscorlib), so we do it 'by hand'
+ private string TranslateToManifestConvention(string eventMessage, string evtName)
+ {
+ StringBuilder stringBuilder = null; // We lazily create this
+ int writtenSoFar = 0;
+ int chIdx = -1;
+ for (int i = 0; ; )
+ {
+ if (i >= eventMessage.Length)
+ {
+ if (stringBuilder == null)
+ return eventMessage;
+ UpdateStringBuilder(ref stringBuilder, eventMessage, writtenSoFar, i - writtenSoFar);
+ return stringBuilder.ToString();
+ }
+
+ if (eventMessage[i] == '%')
+ {
+ // handle format message escaping character '%' by escaping it
+ UpdateStringBuilder(ref stringBuilder, eventMessage, writtenSoFar, i - writtenSoFar);
+ stringBuilder.Append("%%");
+ i++;
+ writtenSoFar = i;
+ }
+ else if (i < eventMessage.Length - 1 &&
+ (eventMessage[i] == '{' && eventMessage[i + 1] == '{' || eventMessage[i] == '}' && eventMessage[i + 1] == '}'))
+ {
+ // handle C# escaped '{" and '}'
+ UpdateStringBuilder(ref stringBuilder, eventMessage, writtenSoFar, i - writtenSoFar);
+ stringBuilder.Append(eventMessage[i]);
+ i++; i++;
+ writtenSoFar = i;
+ }
+ else if (eventMessage[i] == '{')
+ {
+ int leftBracket = i;
+ i++;
+ int argNum = 0;
+ while (i < eventMessage.Length && Char.IsDigit(eventMessage[i]))
+ {
+ argNum = argNum * 10 + eventMessage[i] - '0';
+ i++;
+ }
+ if (i < eventMessage.Length && eventMessage[i] == '}')
+ {
+ i++;
+ UpdateStringBuilder(ref stringBuilder, eventMessage, writtenSoFar, leftBracket - writtenSoFar);
+ int manIndex = TranslateIndexToManifestConvention(argNum, evtName);
+ stringBuilder.Append('%').Append(manIndex);
+ // An '!' after the insert specifier {n} will be interpreted as a literal.
+ // We'll escape it so that mc.exe does not attempt to consider it the
+ // beginning of a format string.
+ if (i < eventMessage.Length && eventMessage[i] == '!')
+ {
+ i++;
+ stringBuilder.Append("%!");
+ }
+ writtenSoFar = i;
+ }
+ else
+ {
+ ManifestError(Environment.GetResourceString("EventSource_UnsupportedMessageProperty", evtName, eventMessage));
+ }
+ }
+ else if ((chIdx = "&<>'\"\r\n\t".IndexOf(eventMessage[i])) >= 0)
+ {
+ string[] escapes = { "&amp;", "&lt;", "&gt;", "&apos;", "&quot;", "%r", "%n", "%t" };
+ var update = new Action<char, string>(
+ (ch, escape) =>
+ {
+ UpdateStringBuilder(ref stringBuilder, eventMessage, writtenSoFar, i - writtenSoFar);
+ i++;
+ stringBuilder.Append(escape);
+ writtenSoFar = i;
+ });
+ update(eventMessage[i], escapes[chIdx]);
+ }
+ else
+ i++;
+ }
+ }
+
+ private int TranslateIndexToManifestConvention(int idx, string evtName)
+ {
+ List<int> byteArrArgIndices;
+ if (perEventByteArrayArgIndices.TryGetValue(evtName, out byteArrArgIndices))
+ {
+ foreach (var byArrIdx in byteArrArgIndices)
+ {
+ if (idx >= byArrIdx)
+ ++idx;
+ else
+ break;
+ }
+ }
+ return idx + 1;
+ }
+
+#if FEATURE_MANAGED_ETW_CHANNELS
+ class ChannelInfo
+ {
+ public string Name;
+ public ulong Keywords;
+ public EventChannelAttribute Attribs;
+ }
+#endif
+
+ Dictionary<int, string> opcodeTab;
+ Dictionary<int, string> taskTab;
+#if FEATURE_MANAGED_ETW_CHANNELS
+ Dictionary<int, ChannelInfo> channelTab;
+#endif
+ Dictionary<ulong, string> keywordTab;
+ Dictionary<string, Type> mapsTab;
+
+ Dictionary<string, string> stringTab; // Maps unlocalized strings to localized ones
+
+#if FEATURE_MANAGED_ETW_CHANNELS
+ ulong nextChannelKeywordBit = 0x8000000000000000; // available Keyword bit to be used for next channel definition
+ const int MaxCountChannels = 8; // a manifest can defined at most 8 ETW channels
+#endif
+
+ StringBuilder sb; // Holds the provider information.
+ StringBuilder events; // Holds the events.
+ StringBuilder templates;
+
+#if FEATURE_MANAGED_ETW_CHANNELS
+ string providerName;
+#endif
+ ResourceManager resources; // Look up localized strings here.
+ EventManifestOptions flags;
+ IList<string> errors; // list of currently encountered errors
+ Dictionary<string, List<int>> perEventByteArrayArgIndices; // "event_name" -> List_of_Indices_of_Byte[]_Arg
+
+ // State we track between StartEvent and EndEvent.
+ string eventName; // Name of the event currently being processed.
+ int numParams; // keeps track of the number of args the event has.
+ List<int> byteArrArgIndices; // keeps track of the index of each byte[] argument
+ #endregion
+ }
+
+ /// <summary>
+ /// Used to send the m_rawManifest into the event dispatcher as a series of events.
+ /// </summary>
+ internal struct ManifestEnvelope
+ {
+ public const int MaxChunkSize = 0xFF00;
+ public enum ManifestFormats : byte
+ {
+ SimpleXmlFormat = 1, // simply dump the XML manifest as UTF8
+ }
+
+ public ManifestFormats Format;
+ public byte MajorVersion;
+ public byte MinorVersion;
+ public byte Magic;
+ public ushort TotalChunks;
+ public ushort ChunkNumber;
+ };
+
+ #endregion
+}
+
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventsourceexception.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventsourceexception.cs
index dee0fb05fe1..6a48b0bc588 100644
--- a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventsourceexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/eventsourceexception.cs
@@ -3,7 +3,6 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
/*============================================================
**
** File: EventSourceException.cs
@@ -12,15 +11,46 @@
using System;
using System.Runtime.Serialization;
+#if ES_BUILD_STANDALONE
+using Environment = Microsoft.Diagnostics.Tracing.Internal.Environment;
+#endif
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
namespace System.Diagnostics.Tracing
+#endif
{
+ /// <summary>
+ /// Exception that is thrown when an error occurs during EventSource operation.
+ /// </summary>
+#if !ES_BUILD_PCL
[Serializable]
+#endif
public class EventSourceException : Exception
{
+ /// <summary>
+ /// Initializes a new instance of the EventSourceException class.
+ /// </summary>
public EventSourceException() : base(Environment.GetResourceString("EventSource_ListenerWriteFailure")) { }
+
+ /// <summary>
+ /// Initializes a new instance of the EventSourceException class with a specified error message.
+ /// </summary>
public EventSourceException(string message) : base(message) { }
+
+ /// <summary>
+ /// Initializes a new instance of the EventSourceException class with a specified error message
+ /// and a reference to the inner exception that is the cause of this exception.
+ /// </summary>
public EventSourceException(string message, Exception innerException) : base(message, innerException) { }
+
+#if !ES_BUILD_PCL
+ /// <summary>
+ /// Initializes a new instance of the EventSourceException class with serialized data.
+ /// </summary>
protected EventSourceException(SerializationInfo info, StreamingContext context) : base(info, context) { }
+#endif
internal EventSourceException(Exception innerException) : base(Environment.GetResourceString("EventSource_ListenerWriteFailure"), innerException) { }
}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/frameworkeventsource.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/frameworkeventsource.cs
index 7df7a0f2514..f20eaa19b11 100644
--- a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/frameworkeventsource.cs
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/frameworkeventsource.cs
@@ -6,8 +6,8 @@
//
// ResourcesEtwProvider.cs
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Managed event source for things that can version with MSCORLIB.
//
@@ -134,6 +134,68 @@ namespace System.Diagnostics.Tracing {
}
}
+ // optimized for common signatures (used by the BeginGetResponse/BeginGetRequestStream events)
+ [NonEvent, System.Security.SecuritySafeCritical]
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ private unsafe void WriteEvent(int eventId, long arg1, string arg2, bool arg3, bool arg4)
+ {
+ if (IsEnabled())
+ {
+ if (arg2 == null) arg2 = "";
+ fixed (char* string2Bytes = arg2)
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[4];
+ descrs[0].DataPointer = (IntPtr)(&arg1);
+ descrs[0].Size = 8;
+ descrs[1].DataPointer = (IntPtr)string2Bytes;
+ descrs[1].Size = ((arg2.Length + 1) * 2);
+ descrs[2].DataPointer = (IntPtr)(&arg3);
+ descrs[2].Size = 4;
+ descrs[3].DataPointer = (IntPtr)(&arg4);
+ descrs[3].Size = 4;
+ WriteEventCore(eventId, 4, descrs);
+ }
+ }
+ }
+
+ // optimized for common signatures (used by the EndGetRequestStream event)
+ [NonEvent, System.Security.SecuritySafeCritical]
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ private unsafe void WriteEvent(int eventId, long arg1, bool arg2, bool arg3)
+ {
+ if (IsEnabled())
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[3];
+ descrs[0].DataPointer = (IntPtr)(&arg1);
+ descrs[0].Size = 8;
+ descrs[1].DataPointer = (IntPtr)(&arg2);
+ descrs[1].Size = 4;
+ descrs[2].DataPointer = (IntPtr)(&arg3);
+ descrs[2].Size = 4;
+ WriteEventCore(eventId, 3, descrs);
+ }
+ }
+
+ // optimized for common signatures (used by the EndGetResponse event)
+ [NonEvent, System.Security.SecuritySafeCritical]
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "This does not need to be correct when racing with other threads")]
+ private unsafe void WriteEvent(int eventId, long arg1, bool arg2, bool arg3, int arg4)
+ {
+ if (IsEnabled())
+ {
+ EventSource.EventData* descrs = stackalloc EventSource.EventData[4];
+ descrs[0].DataPointer = (IntPtr)(&arg1);
+ descrs[0].Size = 8;
+ descrs[1].DataPointer = (IntPtr)(&arg2);
+ descrs[1].Size = 4;
+ descrs[2].DataPointer = (IntPtr)(&arg3);
+ descrs[2].Size = 4;
+ descrs[3].DataPointer = (IntPtr)(&arg4);
+ descrs[3].Size = 4;
+ WriteEventCore(eventId, 4, descrs);
+ }
+ }
+
// ResourceManager Event Definitions
[Event(1, Level = EventLevel.Informational, Keywords = Keywords.Loader)]
@@ -437,635 +499,56 @@ namespace System.Diagnostics.Tracing {
ThreadPoolDequeueWork((long) *((void**) JitHelpers.UnsafeCastToStackPointer(ref workID)));
}
-#region Dynamic Type Usage Events - These should not be documented!
-#if !FEATURE_CORECLR
- [Event(32, Keywords = Keywords.DynamicTypeUsage)]
- public void ActivatorCreateInstance(String typeName)
- {
- WriteEvent(32, typeName);
- }
-
- [Event(33, Keywords = Keywords.DynamicTypeUsage)]
- public void ActivatorCreateInstanceT(String typeName)
- {
- WriteEvent(33, typeName);
- }
-
- [Event(34, Keywords = Keywords.DynamicTypeUsage)]
- public void ArrayCreateInstance(String typeName)
- {
- WriteEvent(34, typeName);
- }
-
- [Event(35, Keywords = Keywords.DynamicTypeUsage)]
- public void TypeGetType(String typeName)
- {
- WriteEvent(35, typeName);
- }
-
- [Event(36, Keywords = Keywords.DynamicTypeUsage)]
- public void AssemblyGetType(String typeName)
- {
- WriteEvent(36, typeName);
- }
-
- [Event(37, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginGetMethodFromHandle()
- {
- WriteEvent(37);
- }
-
- [Event(38, Keywords = Keywords.DynamicTypeUsage)]
- public void EndGetMethodFromHandle(String typeName, String method)
- {
- WriteEvent(38, typeName, method);
- }
-
- [Event(39, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginGetFieldFromHandle()
- {
- WriteEvent(39);
- }
-
- [Event(40, Keywords = Keywords.DynamicTypeUsage)]
- public void EndGetFieldFromHandle(String typeName, String field)
- {
- WriteEvent(40, typeName, field);
- }
-
- [Event(41, Keywords = Keywords.DynamicTypeUsage)]
- public void EnumTryParseEnum(String typeName, String value)
- {
- WriteEvent(41, typeName, value);
- }
-
- [Event(42, Keywords = Keywords.DynamicTypeUsage)]
- public void EnumGetUnderlyingType(String typeName)
- {
- WriteEvent(42, typeName);
- }
-
- [Event(43, Keywords = Keywords.DynamicTypeUsage)]
- public void EnumGetValues(String typeName)
- {
- WriteEvent(43, typeName);
- }
-
- [Event(44, Keywords = Keywords.DynamicTypeUsage)]
- public void EnumGetName(String typeName)
- {
- WriteEvent(44, typeName);
- }
-
- [Event(45, Keywords = Keywords.DynamicTypeUsage)]
- public void EnumGetNames(String typeName)
- {
- WriteEvent(45, typeName);
- }
-
- [Event(46, Keywords = Keywords.DynamicTypeUsage)]
- public void EnumIsDefined(String typeName)
- {
- WriteEvent(46, typeName);
- }
-
- [Event(47, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginEnumFormat(String typeName)
- {
- WriteEvent(47, typeName);
- }
-
- [Event(48, Keywords = Keywords.DynamicTypeUsage)]
- public void EndEnumFormat(String typeName)
- {
- WriteEvent(48, typeName);
- }
-
- [Event(49, Keywords = Keywords.DynamicTypeUsage)]
- public void EnumToObject(String typeName)
- {
- WriteEvent(49, typeName);
+ // In the desktop runtime they don't use Tasks for the point at which the response happens, which means that the
+ // Activity ID created by start using implicit activity IDs does not match. Thus disable implicit activities (until we fix that)
+ [Event(140, Level = EventLevel.Informational, Keywords = Keywords.NetClient, ActivityOptions=EventActivityOptions.Disable,
+ Task = Tasks.GetResponse, Opcode = EventOpcode.Start, Version = 1)]
+ private void GetResponseStart(long id, string uri, bool success, bool synchronous) {
+ WriteEvent(140, id, uri, success, synchronous);
}
- [Event(50, Keywords = Keywords.DynamicTypeUsage)]
- public void TypeFullName(String typeName)
- {
- WriteEvent(50, typeName);
+ [Event(141, Level = EventLevel.Informational, Keywords = Keywords.NetClient, ActivityOptions=EventActivityOptions.Disable,
+ Task = Tasks.GetResponse, Opcode = EventOpcode.Stop, Version = 1)]
+ private void GetResponseStop(long id, bool success, bool synchronous, int statusCode) {
+ WriteEvent(141, id, success, synchronous, statusCode);
}
- [Event(51, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginTypeAssemblyQualifiedName(String typeName)
- {
- WriteEvent(51, typeName);
+ // In the desktop runtime they don't use Tasks for the point at which the response happens, which means that the
+ // Activity ID created by start using implicit activity IDs does not match. Thus disable implicit activities (until we fix that)
+ [Event(142, Level = EventLevel.Informational, Keywords = Keywords.NetClient, ActivityOptions=EventActivityOptions.Disable,
+ Task = Tasks.GetRequestStream, Opcode = EventOpcode.Start, Version = 1)]
+ private void GetRequestStreamStart(long id, string uri, bool success, bool synchronous) {
+ WriteEvent(142, id, uri, success, synchronous);
}
- [Event(52, Keywords = Keywords.DynamicTypeUsage)]
- public void EndTypeAssemblyQualifiedName(String typeName)
- {
- WriteEvent(52, typeName);
- }
-
- [Event(53, Keywords = Keywords.DynamicTypeUsage)]
- public void TypeNamespace(String typeName)
- {
- WriteEvent(53, typeName);
- }
-
- [Event(54, Keywords = Keywords.DynamicTypeUsage)]
- public void MethodName(String typeName, String methodName)
- {
- WriteEvent(54, typeName, methodName);
+ [Event(143, Level = EventLevel.Informational, Keywords = Keywords.NetClient, ActivityOptions=EventActivityOptions.Disable,
+ Task = Tasks.GetRequestStream, Opcode = EventOpcode.Stop, Version = 1)]
+ private void GetRequestStreamStop(long id, bool success, bool synchronous) {
+ WriteEvent(143, id, success, synchronous);
}
- [Event(55, Keywords = Keywords.DynamicTypeUsage)]
- public void FieldName(String typeName, String fieldName)
- {
- WriteEvent(55, typeName, fieldName);
- }
-
- [Event(56, Keywords = Keywords.DynamicTypeUsage)]
- public void TypeName(String typeName)
- {
- WriteEvent(56, typeName);
- }
-
- [Event(57, Keywords = Keywords.DynamicTypeUsage)]
- public void IntrospectionExtensionsGetTypeInfo(String typeName)
- {
- WriteEvent(57, typeName);
- }
-
- [Event(58, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginGetRuntimeProperties(String typeName)
- {
- WriteEvent(58, typeName);
- }
-
- [Event(59, Keywords = Keywords.DynamicTypeUsage)]
- public void EndGetRuntimeProperties(String typeName)
- {
- WriteEvent(59, typeName);
- }
-
- [Event(60, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginGetRuntimeEvents(String typeName)
- {
- WriteEvent(60, typeName);
- }
-
- [Event(61, Keywords = Keywords.DynamicTypeUsage)]
- public void EndGetRuntimeEvents(String typeName)
- {
- WriteEvent(61, typeName);
- }
-
- [Event(62, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginGetRuntimeMethods(String typeName)
- {
- WriteEvent(62, typeName);
- }
-
- [Event(63, Keywords = Keywords.DynamicTypeUsage)]
- public void EndGetRuntimeMethods(String typeName)
- {
- WriteEvent(63, typeName);
- }
-
- [Event(64, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginGetRuntimeFields(String typeName)
- {
- WriteEvent(64, typeName);
- }
-
- [Event(65, Keywords = Keywords.DynamicTypeUsage)]
- public void EndGetRuntimeFields(String typeName)
- {
- WriteEvent(65, typeName);
- }
-
- [Event(66, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginGetRuntimeProperty(String typeName, String propertyName)
- {
- WriteEvent(66, typeName, propertyName);
- }
-
- [Event(67, Keywords = Keywords.DynamicTypeUsage)]
- public void EndGetRuntimeProperty(String typeName, String propertyName)
- {
- WriteEvent(67, typeName, propertyName);
- }
-
- [Event(68, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginGetRuntimeEvent(String typeName, String eventName)
- {
- WriteEvent(68, typeName, eventName);
- }
-
- [Event(69, Keywords = Keywords.DynamicTypeUsage)]
- public void EndGetRuntimeEvent(String typeName, String eventName)
- {
- WriteEvent(69, typeName, eventName);
- }
-
- [Event(70, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginGetRuntimeMethod(String typeName, String methodName)
- {
- WriteEvent(70, typeName, methodName);
- }
-
- [Event(71, Keywords = Keywords.DynamicTypeUsage)]
- public void EndGetRuntimeMethod(String typeName, String methodName)
- {
- WriteEvent(71, typeName, methodName);
- }
-
- [Event(72, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginGetRuntimeField(String typeName, String fieldName)
- {
- WriteEvent(72, typeName, fieldName);
- }
-
- [Event(73, Keywords = Keywords.DynamicTypeUsage)]
- public void EndGetRuntimeField(String typeName, String fieldName)
- {
- WriteEvent(73, typeName, fieldName);
- }
-
- [Event(79, Keywords = Keywords.DynamicTypeUsage)]
- public void MethodInfoInvoke(String typeName, String methodName)
- {
- WriteEvent(79, typeName, methodName);
- }
-
- [Event(80, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginMethodInfoCreateDelegate(String typeName, String methodName, String delegateTypeName)
- {
- WriteEvent(80, typeName, methodName, delegateTypeName);
- }
-
- [Event(81, Keywords = Keywords.DynamicTypeUsage)]
- public void EndMethodInfoCreateDelegate(String typeName, String methodName, String delegateTypeName)
- {
- WriteEvent(81, typeName, methodName, delegateTypeName);
- }
-
- [Event(82, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginCreateIReference()
- {
- WriteEvent(82);
- }
-
- [Event(83, Keywords = Keywords.DynamicTypeUsage)]
- public void EndCreateIReference(String typeName)
- {
- WriteEvent(83, typeName);
- }
-
- [Event(84, Keywords = Keywords.DynamicTypeUsage)]
- public void ConstructorInfoInvoke(String typeName, String methodName)
- {
- WriteEvent(84, typeName, methodName);
- }
-
- [Event(85, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalAsAnyConvertToNative(String typeName)
- {
- WriteEvent(85, typeName);
- }
-
- [Event(86, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalAsAnyConvertToManaged(String typeName)
- {
- WriteEvent(86, typeName);
- }
-
- [Event(87, Keywords = Keywords.DynamicTypeUsage)]
- public void ManagedActivationFactoryConstructor(String typeName)
- {
- WriteEvent(87, typeName);
- }
-
- [Event(88, Keywords = Keywords.DynamicTypeUsage)]
- public void WindowsRuntimeMarshalGetActivationFactory(String typeName)
- {
- WriteEvent(88, typeName);
- }
-
- [Event(89, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalCreateAggregatedObject(String typeName)
- {
- WriteEvent(89, typeName);
- }
-
- [Event(90, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalCreateWrapperOfType(String comObjectTypeName, String wrapperTypeName)
- {
- WriteEvent(90, comObjectTypeName, wrapperTypeName);
- }
-
- [Event(91, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalDestroyStructure(String typeName)
- {
- WriteEvent(91, typeName);
- }
-
- [Event(92, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalGetComInterfaceForObject(String objectTypeName, String typeName, String implementsAndMode)
- {
- WriteEvent(92, objectTypeName, typeName, implementsAndMode);
- }
-
- [Event(93, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalGetDelegateForFunctionPointer(String typeName)
- {
- WriteEvent(93, typeName);
- }
-
- [Event(94, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalGetExceptionCode()
- {
- WriteEvent(94);
- }
-
- [Event(95, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalGetExceptionForHR()
- {
- WriteEvent(95);
- }
-
- [Event(96, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalGetExceptionForHR2()
- {
- WriteEvent(96);
- }
-
- [Event(97, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalGetFunctionPointerForDelegate(String typeName, String methodName)
- {
- WriteEvent(97, typeName, methodName);
- }
-
- [Event(98, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalGetIUnknownForObject(String typeName)
- {
- WriteEvent(98, typeName);
- }
-
- [Event(99, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalGetNativeVariantForObject(String typeName)
- {
- WriteEvent(99, typeName);
- }
-
- [Event(100, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalGetObjectForIUnknown(String typeName)
- {
- WriteEvent(100, typeName);
- }
-
- [Event(101, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalGetObjectForNativeVariant(String typeName)
- {
- WriteEvent(101, typeName);
- }
-
- [Event(102, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalGetObjectsForNativeVariants(String typeNames)
- {
- WriteEvent(102, typeNames);
- }
-
- [Event(103, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalGetStartComSlot(String typeName)
- {
- WriteEvent(103, typeName);
- }
-
- [Event(104, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalGetTypeFromCLSID(String typeName, String guid)
- {
- WriteEvent(104, typeName, guid);
- }
-
- [Event(105, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalGetTypeInfoName(String typeName)
- {
- WriteEvent(105, typeName);
- }
-
- [Event(106, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalGetUniqueObjectForIUnknown(String typeName)
- {
- WriteEvent(106, typeName);
- }
-
- [Event(107, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginMarshalOffsetOf(String typeName, String fieldName)
- {
- WriteEvent(107, typeName, fieldName);
- }
-
- [Event(108, Keywords = Keywords.DynamicTypeUsage)]
- public void EndMarshalOffsetOf(String typeName, String fieldName)
- {
- WriteEvent(108, typeName, fieldName);
- }
-
- [Event(109, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginMarshalPtrToStructure(String typeName)
- {
- WriteEvent(109, typeName);
- }
-
- [Event(110, Keywords = Keywords.DynamicTypeUsage)]
- public void EndMarshalPtrToStructure(String typeName)
- {
- WriteEvent(110, typeName);
- }
-
- [Event(111, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalSizeOf(String typeName)
- {
- WriteEvent(111, typeName);
- }
-
- [Event(112, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalStructureToPtr(String typeName, String deleteOld)
- {
- WriteEvent(112, typeName, deleteOld);
- }
-
- [Event(113, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalThrowExceptionForHR()
- {
- WriteEvent(113);
- }
-
- [Event(114, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalUnsafeAddrOfPinnedArrayElement(String typeName)
- {
- WriteEvent(114, typeName);
- }
-
- [Event(115, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginICustomPropertyProviderCreateProperty(String typeName, String propertyName)
- {
- WriteEvent(115, typeName, propertyName);
- }
-
- [Event(116, Keywords = Keywords.DynamicTypeUsage)]
- public void EndICustomPropertyProviderCreateProperty(String typeName, String propertyName)
- {
- WriteEvent(116, typeName, propertyName);
- }
-
- [Event(117, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginICustomPropertyProviderCreateIndexedProperty(String typeName, String propertyName, String indexedParamTypeName)
- {
- WriteEvent(117, typeName, propertyName, indexedParamTypeName);
- }
-
- [Event(118, Keywords = Keywords.DynamicTypeUsage)]
- public void EndICustomPropertyProviderCreateIndexedProperty(String typeName, String propertyName, String indexedParamTypeName)
- {
- WriteEvent(118, typeName, propertyName, indexedParamTypeName);
- }
-
- [Event(119, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginCustomPropertyImplGetValue(String typeName, String propertyTypeName)
- {
- WriteEvent(119, typeName, propertyTypeName);
- }
-
- [Event(120, Keywords = Keywords.DynamicTypeUsage)]
- public void EndCustomPropertyImplGetValue(String typeName, String propertyTypeName)
- {
- WriteEvent(120, typeName, propertyTypeName);
- }
-
- [Event(121, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginCustomPropertyImplGetValueIndexValue(String typeName, String propertyTypeName)
- {
- WriteEvent(121, typeName, propertyTypeName);
- }
-
- [Event(122, Keywords = Keywords.DynamicTypeUsage)]
- public void EndCustomPropertyImplGetValueIndexValue(String typeName, String propertyTypeName)
- {
- WriteEvent(122, typeName, propertyTypeName);
- }
-
- [Event(123, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginCustomPropertyImplSetValue(String typeName, String valueTypeName)
- {
- WriteEvent(123, typeName, valueTypeName);
- }
-
- [Event(124, Keywords = Keywords.DynamicTypeUsage)]
- public void EndCustomPropertyImplSetValue(String typeName, String valueTypeName)
- {
- WriteEvent(124, typeName, valueTypeName);
- }
-
- [Event(125, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginCustomPropertyImplSetValueIndexValue(String typeName, String propertyTypeName, String indexValueTypeName)
- {
- WriteEvent(125, typeName, propertyTypeName, indexValueTypeName);
- }
-
- [Event(126, Keywords = Keywords.DynamicTypeUsage)]
- public void EndCustomPropertyImplSetValueIndexValue(String typeName, String propertyTypeName, String indexValueTypeName)
- {
- WriteEvent(126, typeName, propertyTypeName, indexValueTypeName);
- }
-
- [Event(127, Keywords = Keywords.DynamicTypeUsage)]
- public void MarshalThrowExceptionForHR2()
- {
- WriteEvent(127);
- }
-
- [Event(128, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginGetRuntimeConstructors(String typeName)
- {
- WriteEvent(128, typeName);
- }
-
- [Event(129, Keywords = Keywords.DynamicTypeUsage)]
- public void EndGetRuntimeConstructors(String typeName)
- {
- WriteEvent(129, typeName);
- }
-
- [Event(130, Keywords = Keywords.DynamicTypeUsage)]
- public void BeginGetRuntimeMembers(String typeName)
- {
- WriteEvent(130, typeName);
- }
-
- [Event(131, Keywords = Keywords.DynamicTypeUsage)]
- public void EndGetRuntimeMembers(String typeName)
- {
- WriteEvent(131, typeName);
- }
-
- [Event(132, Keywords = Keywords.DynamicTypeUsage)]
- public void EventName(String typeName, String eventName)
- {
- WriteEvent(132, typeName, eventName);
- }
-
- [Event(133, Keywords = Keywords.DynamicTypeUsage)]
- public void QueryAttributeIsDefined(String typeName)
- {
- WriteEvent(133, typeName);
- }
-#endif
-#endregion
-
-
- [Event(140, Level = EventLevel.Informational, Keywords = Keywords.NetClient, Task = Tasks.GetResponse, Opcode = EventOpcode.Start)]
- private void BeginGetResponse(long id, string uri) {
- if (IsEnabled())
- WriteEvent(140, id, uri);
- }
-
- [Event(141, Level = EventLevel.Informational, Keywords = Keywords.NetClient, Task = Tasks.GetResponse, Opcode = EventOpcode.Stop)]
- private void EndGetResponse(long id) {
- if (IsEnabled())
- WriteEvent(141, id);
- }
-
- [Event(142, Level = EventLevel.Informational, Keywords = Keywords.NetClient, Task = Tasks.GetRequestStream, Opcode = EventOpcode.Start)]
- private void BeginGetRequestStream(long id, string uri) {
- if (IsEnabled())
- WriteEvent(142, id, uri);
- }
-
- [Event(143, Level = EventLevel.Informational, Keywords = Keywords.NetClient, Task = Tasks.GetRequestStream, Opcode = EventOpcode.Stop)]
- private void EndGetRequestStream(long id) {
- if (IsEnabled())
- WriteEvent(143, id);
- }
-
[NonEvent, System.Security.SecuritySafeCritical]
- public unsafe void BeginGetResponse(object id, string uri) {
- BeginGetResponse((long) *((void**) JitHelpers.UnsafeCastToStackPointer(ref id)), uri);
+ public unsafe void BeginGetResponse(object id, string uri, bool success, bool synchronous) {
+ if (IsEnabled())
+ GetResponseStart(IdForObject(id), uri, success, synchronous);
}
[NonEvent, System.Security.SecuritySafeCritical]
- public unsafe void EndGetResponse(object id) {
- EndGetResponse((long) *((void**) JitHelpers.UnsafeCastToStackPointer(ref id)));
+ public unsafe void EndGetResponse(object id, bool success, bool synchronous, int statusCode) {
+ if (IsEnabled())
+ GetResponseStop(IdForObject(id), success, synchronous, statusCode);
}
-
+
[NonEvent, System.Security.SecuritySafeCritical]
- public unsafe void BeginGetRequestStream(object id, string uri) {
- BeginGetRequestStream((long) *((void**) JitHelpers.UnsafeCastToStackPointer(ref id)), uri);
+ public unsafe void BeginGetRequestStream(object id, string uri, bool success, bool synchronous) {
+ if (IsEnabled())
+ GetRequestStreamStart(IdForObject(id), uri, success, synchronous);
}
-
+
[NonEvent, System.Security.SecuritySafeCritical]
- public unsafe void EndGetRequestStream(object id) {
- EndGetRequestStream((long) *((void**) JitHelpers.UnsafeCastToStackPointer(ref id)));
+ public unsafe void EndGetRequestStream(object id, bool success, bool synchronous) {
+ if (IsEnabled())
+ GetRequestStreamStop(IdForObject(id), success, synchronous);
}
// id - represents a correlation ID that allows correlation of two activities, one stamped by
@@ -1128,6 +611,13 @@ namespace System.Diagnostics.Tracing {
ThreadTransferReceive((long) *((void**) JitHelpers.UnsafeCastToStackPointer(ref id)), kind, info);
}
+ // return a stable ID for a an object. We use the hash code which is not truely unique but is
+ // close enough for now at least. we add to it 0x7FFFFFFF00000000 to make it distinguishable
+ // from the style of ID that simply casts the object reference to a long (since old versions of the
+ // runtime will emit IDs of that form).
+ private static long IdForObject(object obj) {
+ return obj.GetHashCode() + 0x7FFFFFFF00000000;
+ }
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/winmeta.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/winmeta.cs
index 0893a25fb0a..28435bb5080 100644
--- a/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/winmeta.cs
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/eventing/winmeta.cs
@@ -3,7 +3,6 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
/*============================================================
**
** File: winmeta.cs
@@ -13,9 +12,20 @@
** environment.
**
============================================================*/
-namespace System.Diagnostics.Tracing {
+#if ES_BUILD_STANDALONE
+#define FEATURE_MANAGED_ETW_CHANNELS
+#endif
+
+#if ES_BUILD_STANDALONE
+namespace Microsoft.Diagnostics.Tracing
+#else
+namespace System.Diagnostics.Tracing
+#endif
+{
+ using System;
+
/// <summary>
- /// WindowsEventLevel
+ /// WindowsEventLevel. Custom values must be in the range from 16 through 255
/// </summary>
public enum EventLevel {
/// <summary>
@@ -44,9 +54,11 @@ namespace System.Diagnostics.Tracing {
Verbose
}
/// <summary>
- /// WindowsEventTask
+ /// WindowsEventTask. Custom values must be in the range from 1 through 65534
/// </summary>
+#if !ES_BUILD_STANDALONE
[System.Runtime.CompilerServices.FriendAccessAllowed]
+#endif
public enum EventTask {
/// <summary>
/// Undefined task
@@ -54,10 +66,13 @@ namespace System.Diagnostics.Tracing {
None = 0
}
/// <summary>
- /// EventOpcode
+ /// EventOpcode. Custom values must be in the range from 11 through 239
/// </summary>
+#if !ES_BUILD_STANDALONE
[System.Runtime.CompilerServices.FriendAccessAllowed]
- public enum EventOpcode {
+#endif
+ public enum EventOpcode
+ {
/// <summary>
/// An informational event
/// </summary>
@@ -104,15 +119,31 @@ namespace System.Diagnostics.Tracing {
Receive = 240
}
-#if FEARURE_MANAGED_ETW_CHANNELS
// Added for CLR V4
+ /// <summary>
+ /// EventChannel. Custom values must be in the range from 16 through 255. Currently only predefined values allowed.
+ /// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1028:EnumStorageShouldBeInt32", Justification="Backwards compatibility")]
+#if !ES_BUILD_STANDALONE
[System.Runtime.CompilerServices.FriendAccessAllowed]
+#endif
public enum EventChannel : byte
{
- Default = 0,
+ /// <summary>
+ /// No channel
+ /// </summary>
+ None = 0,
+ // Channels 1 - 15 are reserved...
+ /// <summary>The admin channel</summary>
+ Admin = 16,
+ /// <summary>The operational channel</summary>
+ Operational = 17,
+ /// <summary>The analytic channel</summary>
+ Analytic = 18,
+ /// <summary>The debug channel</summary>
+ Debug = 19,
+
};
-#endif
/// <summary>
/// EventOpcode
@@ -120,10 +151,18 @@ namespace System.Diagnostics.Tracing {
[Flags]
public enum EventKeywords : long {
/// <summary>
- /// Wild card value
+ /// No events.
/// </summary>
None = 0x0,
/// <summary>
+ /// All Events
+ /// </summary>
+ All = ~0,
+ /// <summary>
+ /// Telemetry events
+ /// </summary>
+ MicrosoftTelemetry = 0x02000000000000,
+ /// <summary>
/// WDI context events
/// </summary>
WdiContext = 0x02000000000000,
@@ -136,7 +175,7 @@ namespace System.Diagnostics.Tracing {
/// </summary>
Sqm = 0x08000000000000,
/// <summary>
- /// FAiled security audits
+ /// Failed security audits
/// </summary>
AuditFailure = 0x10000000000000,
/// <summary>
@@ -145,6 +184,7 @@ namespace System.Diagnostics.Tracing {
AuditSuccess = 0x20000000000000,
/// <summary>
/// Transfer events where the related Activity ID is a computed value and not a GUID
+ /// N.B. The correct value for this field is 0x40000000000000.
/// </summary>
CorrelationHint = 0x10000000000000,
/// <summary>
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/stacktrace.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/stacktrace.cs
index fa05fee3300..d7fd9727a00 100644
--- a/mcs/class/referencesource/mscorlib/system/diagnostics/stacktrace.cs
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/stacktrace.cs
@@ -507,8 +507,8 @@ namespace System.Diagnostics {
if(traceFormat != TraceFormat.NoResourceLookup)
{
- word_At = Environment.GetRuntimeResourceString("Word_At");
- inFileLineNum = Environment.GetRuntimeResourceString("StackTrace_InFileLineNumber");
+ word_At = Environment.GetResourceString("Word_At");
+ inFileLineNum = Environment.GetResourceString("StackTrace_InFileLineNumber");
}
bool fFirstFrame = true;
@@ -616,7 +616,7 @@ namespace System.Diagnostics {
if (sf.GetIsLastFrameFromForeignExceptionStackTrace())
{
sb.Append(Environment.NewLine);
- sb.Append(Environment.GetRuntimeResourceString("Exception_EndStackTraceFromPreviousThrow"));
+ sb.Append(Environment.GetResourceString("Exception_EndStackTraceFromPreviousThrow"));
}
#endif // FEATURE_EXCEPTIONDISPATCHINFO
}
diff --git a/mcs/class/referencesource/mscorlib/system/diagnostics/symbolstore/isymwriter.cs b/mcs/class/referencesource/mscorlib/system/diagnostics/symbolstore/isymwriter.cs
index 3a1d69e1e86..e7a1ba083e4 100644
--- a/mcs/class/referencesource/mscorlib/system/diagnostics/symbolstore/isymwriter.cs
+++ b/mcs/class/referencesource/mscorlib/system/diagnostics/symbolstore/isymwriter.cs
@@ -98,8 +98,8 @@ namespace System.Diagnostics.SymbolStore {
//
// Note: scope id's are only valid in the current method.
//
- // <
-
+ // <TODO>@todo: should we require that startOffset and endOffset for
+ // scopes also be defined as sequence points?</TODO>
#if FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
#endif
diff --git a/mcs/class/referencesource/mscorlib/system/double.cs b/mcs/class/referencesource/mscorlib/system/double.cs
index 44d7a0bd8af..57b4b632721 100644
--- a/mcs/class/referencesource/mscorlib/system/double.cs
+++ b/mcs/class/referencesource/mscorlib/system/double.cs
@@ -55,11 +55,13 @@ namespace System {
[Pure]
[System.Security.SecuritySafeCritical] // auto-generated
+ [System.Runtime.Versioning.NonVersionable]
public unsafe static bool IsInfinity(double d) {
return (*(long*)(&d) & 0x7FFFFFFFFFFFFFFF) == 0x7FF0000000000000;
}
[Pure]
+ [System.Runtime.Versioning.NonVersionable]
public static bool IsPositiveInfinity(double d) {
//Jit will generate inlineable code with this
if (d == double.PositiveInfinity)
@@ -73,6 +75,7 @@ namespace System {
}
[Pure]
+ [System.Runtime.Versioning.NonVersionable]
public static bool IsNegativeInfinity(double d) {
//Jit will generate inlineable code with this
if (d == double.NegativeInfinity)
@@ -94,6 +97,7 @@ namespace System {
[Pure]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[System.Security.SecuritySafeCritical]
+ [System.Runtime.Versioning.NonVersionable]
public unsafe static bool IsNaN(double d)
{
return (*(UInt64*)(&d) & 0x7FFFFFFFFFFFFFFFL) > 0x7FF0000000000000L;
@@ -152,26 +156,32 @@ namespace System {
return IsNaN(temp) && IsNaN(m_value);
}
+ [System.Runtime.Versioning.NonVersionable]
public static bool operator ==(Double left, Double right) {
return left == right;
}
+ [System.Runtime.Versioning.NonVersionable]
public static bool operator !=(Double left, Double right) {
return left != right;
}
+ [System.Runtime.Versioning.NonVersionable]
public static bool operator <(Double left, Double right) {
return left < right;
}
+ [System.Runtime.Versioning.NonVersionable]
public static bool operator >(Double left, Double right) {
return left > right;
}
+ [System.Runtime.Versioning.NonVersionable]
public static bool operator <=(Double left, Double right) {
return left <= right;
}
+ [System.Runtime.Versioning.NonVersionable]
public static bool operator >=(Double left, Double right) {
return left >= right;
}
diff --git a/mcs/class/referencesource/mscorlib/system/enum.cs b/mcs/class/referencesource/mscorlib/system/enum.cs
index 79395bc6ae9..5a4edac62fa 100644
--- a/mcs/class/referencesource/mscorlib/system/enum.cs
+++ b/mcs/class/referencesource/mscorlib/system/enum.cs
@@ -11,7 +11,6 @@ using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Diagnostics.Contracts;
-using System.Diagnostics.Tracing;
namespace System
{
@@ -22,49 +21,15 @@ namespace System
#region Private Static Data Members
private static readonly char [] enumSeperatorCharArray = new char [] {','};
private const String enumSeperator = ", ";
- private static Hashtable fieldInfoHash = Hashtable.Synchronized(new Hashtable());
- private const int maxHashElements = 100; // to trim the working set
#endregion
#region Private Static Methods
- // This method is not thread-safe despite the usage of SynchronizedHashTable.
- // After GetHashEntry returns another thread can set fieldInfoHash[enumType]
- // to a different object. But that is not a problem for us because both HashEntry
- // objects will contain correct information.
- private static HashEntry GetHashEntry(RuntimeType enumType)
- {
- Contract.Requires(enumType != null);
- Contract.Ensures(Contract.Result<HashEntry>() != null);
-
- HashEntry hashEntry = (HashEntry)fieldInfoHash[enumType];
-
- if (hashEntry == null)
- {
- // To reduce the workingset we clear the hashtable when a threshold number of elements are inserted.
- if (fieldInfoHash.Count > maxHashElements)
- fieldInfoHash.Clear();
-
- hashEntry = new HashEntry(null, null);
- fieldInfoHash[enumType] = hashEntry;
- }
-
- return hashEntry;
- }
-
[System.Security.SecuritySafeCritical] // auto-generated
- private static void GetCachedValuesAndNames(RuntimeType enumType, out ulong[] values, out String[] names, bool getValues, bool getNames)
+ private static ValuesAndNames GetCachedValuesAndNames(RuntimeType enumType, bool getNames)
{
- HashEntry hashEntry = GetHashEntry(enumType);
+ ValuesAndNames entry = enumType.GenericCache as ValuesAndNames;
- values = hashEntry.values;
- if (values != null)
- getValues = false;
-
- names = hashEntry.names;
- if (names != null)
- getNames = false;
-
- if (getValues || getNames)
+ if (entry == null || (getNames && entry.Names == null))
{
#if MONO
if (!GetEnumValuesAndNames (enumType, out values, out names))
@@ -74,16 +39,13 @@ namespace System
enumType.GetTypeHandleInternal(),
JitHelpers.GetObjectHandleOnStack(ref values),
JitHelpers.GetObjectHandleOnStack(ref names),
- getValues,
getNames);
#endif
- if (getValues)
- hashEntry.values = values;
-
- if (getNames)
- hashEntry.names = names;
+ entry = new ValuesAndNames(values, names);
+ enumType.GenericCache = entry;
}
+ return entry;
}
private static String InternalFormattedHexString(Object value)
@@ -197,9 +159,10 @@ namespace System
ulong result = ToUInt64(value);
// These values are sorted by value. Don't change this
- String[] names;
- ulong[] values;
- GetCachedValuesAndNames(eT, out values, out names, true, true);
+ ValuesAndNames entry = GetCachedValuesAndNames(eT, true);
+
+ String[] names = entry.Names;
+ ulong[] values = entry.Values;
Contract.Assert(names.Length == values.Length);
int index = values.Length - 1;
@@ -295,8 +258,9 @@ namespace System
[ResourceExposure(ResourceScope.None)]
[DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
[System.Security.SuppressUnmanagedCodeSecurity]
- private static extern void GetEnumValuesAndNames(RuntimeTypeHandle enumType, ObjectHandleOnStack values, ObjectHandleOnStack names, bool getValues, bool getNames);
+ private static extern void GetEnumValuesAndNames(RuntimeTypeHandle enumType, ObjectHandleOnStack values, ObjectHandleOnStack names, bool getNames);
#endif
+
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
@@ -429,12 +393,7 @@ namespace System
parseResult.SetFailure(ParseFailureKind.Argument, "Arg_MustContainEnumInfo", null);
return false;
}
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EnumTryParseEnum(rtType.GetFullNameForEtw(), value);
- }
-#endif
+
// We have 2 code paths here. One if they are values else if they are Strings.
// values will have the first character as as number or a sign.
ulong result = 0;
@@ -471,10 +430,11 @@ namespace System
// Find the field.Lets assume that these are always static classes because the class is
// an enum.
- String[] enumNames;
- ulong[] enumValues;
- GetCachedValuesAndNames(rtType, out enumValues, out enumNames, true, true);
+ ValuesAndNames entry = GetCachedValuesAndNames(rtType, true);
+ String[] enumNames = entry.Names;
+ ulong[] enumValues = entry.Values;
+
for (int i = 0; i < values.Length; i++)
{
values[i] = values[i].Trim(); // We need to remove whitespace characters
@@ -533,12 +493,6 @@ namespace System
throw new ArgumentNullException("enumType");
Contract.Ensures(Contract.Result<Type>() != null);
Contract.EndContractBlock();
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EnumGetUnderlyingType(enumType.GetFullNameForEtw());
- }
-#endif
return enumType.GetEnumUnderlyingType();
}
@@ -550,12 +504,6 @@ namespace System
throw new ArgumentNullException("enumType");
Contract.Ensures(Contract.Result<Array>() != null);
Contract.EndContractBlock();
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EnumGetValues(enumType.GetFullNameForEtw());
- }
-#endif
return enumType.GetEnumValues();
}
@@ -563,11 +511,7 @@ namespace System
internal static ulong[] InternalGetValues(RuntimeType enumType)
{
// Get all of the values
- ulong[] values;
- String[] names;
- GetCachedValuesAndNames(enumType, out values, out names, true, false);
-
- return values;
+ return GetCachedValuesAndNames(enumType, false).Values;
}
[System.Runtime.InteropServices.ComVisible(true)]
@@ -577,12 +521,6 @@ namespace System
throw new ArgumentNullException("enumType");
Contract.EndContractBlock();
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EnumGetName(enumType.GetFullNameForEtw());
- }
-#endif
return enumType.GetEnumName(value);
}
@@ -594,23 +532,13 @@ namespace System
Contract.Ensures(Contract.Result<String[]>() != null);
Contract.EndContractBlock();
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EnumGetNames(enumType.GetFullNameForEtw());
- }
-#endif
return enumType.GetEnumNames();
}
internal static String[] InternalGetNames(RuntimeType enumType)
{
// Get all of the names
- ulong[] values;
- String[] names;
- GetCachedValuesAndNames(enumType, out values, out names, false, true);
-
- return names;
+ return GetCachedValuesAndNames(enumType, true).Names;
}
[System.Runtime.InteropServices.ComVisible(true)]
@@ -676,12 +604,7 @@ namespace System
if (enumType == null)
throw new ArgumentNullException("enumType");
Contract.EndContractBlock();
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EnumIsDefined(enumType.GetFullNameForEtw());
- }
-#endif
+
return enumType.IsEnumDefined(value);
}
@@ -704,12 +627,7 @@ namespace System
RuntimeType rtType = enumType as RuntimeType;
if (rtType == null)
throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "enumType");
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginEnumFormat(rtType.GetFullNameForEtw());
- }
-#endif
+
// Check if both of them are of the same type
Type valueType = value.GetType();
@@ -734,12 +652,7 @@ namespace System
// all acceptable format string are of length 1
throw new FormatException(Environment.GetResourceString("Format_InvalidEnumFormatSpecification"));
}
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndEnumFormat(rtType.GetFullNameForEtw());
- }
-#endif
+
char formatCh = format[0];
if (formatCh == 'D' || formatCh == 'd') {
@@ -765,17 +678,17 @@ namespace System
#endregion
#region Definitions
- private class HashEntry
+ private class ValuesAndNames
{
// Each entry contains a list of sorted pair of enum field names and values, sorted by values
- public HashEntry(String [] names, ulong [] values)
+ public ValuesAndNames(ulong[] values, String[] names)
{
- this.names = names;
- this.values = values;
+ this.Values = values;
+ this.Names = names;
}
- public String[] names;
- public ulong [] values;
+ public ulong[] Values;
+ public String[] Names;
}
#endregion
@@ -1168,12 +1081,6 @@ namespace System
RuntimeType rtType = enumType as RuntimeType;
if (rtType == null)
throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "enumType");
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EnumToObject(enumType.GetFullNameForEtw());
- }
-#endif
return InternalBoxEnum(rtType, value);
}
@@ -1189,12 +1096,6 @@ namespace System
RuntimeType rtType = enumType as RuntimeType;
if (rtType == null)
throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "enumType");
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EnumToObject(enumType.GetFullNameForEtw());
- }
-#endif
return InternalBoxEnum(rtType, value);
}
@@ -1210,12 +1111,6 @@ namespace System
RuntimeType rtType = enumType as RuntimeType;
if (rtType == null)
throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "enumType");
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EnumToObject(enumType.GetFullNameForEtw());
- }
-#endif
return InternalBoxEnum(rtType, value);
}
@@ -1231,12 +1126,6 @@ namespace System
RuntimeType rtType = enumType as RuntimeType;
if (rtType == null)
throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "enumType");
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EnumToObject(enumType.GetFullNameForEtw());
- }
-#endif
return InternalBoxEnum(rtType, value);
}
@@ -1253,12 +1142,6 @@ namespace System
RuntimeType rtType = enumType as RuntimeType;
if (rtType == null)
throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "enumType");
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EnumToObject(enumType.GetFullNameForEtw());
- }
-#endif
return InternalBoxEnum(rtType, value);
}
@@ -1275,12 +1158,6 @@ namespace System
RuntimeType rtType = enumType as RuntimeType;
if (rtType == null)
throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "enumType");
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EnumToObject(enumType.GetFullNameForEtw());
- }
-#endif
return InternalBoxEnum(rtType, value);
}
@@ -1296,12 +1173,6 @@ namespace System
RuntimeType rtType = enumType as RuntimeType;
if (rtType == null)
throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "enumType");
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EnumToObject(enumType.GetFullNameForEtw());
- }
-#endif
return InternalBoxEnum(rtType, value);
}
@@ -1318,12 +1189,6 @@ namespace System
RuntimeType rtType = enumType as RuntimeType;
if (rtType == null)
throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "enumType");
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EnumToObject(enumType.GetFullNameForEtw());
- }
-#endif
return InternalBoxEnum(rtType, unchecked((long)value));
}
diff --git a/mcs/class/referencesource/mscorlib/system/environment.cs b/mcs/class/referencesource/mscorlib/system/environment.cs
index c1645bb6486..9c94d4195df 100644
--- a/mcs/class/referencesource/mscorlib/system/environment.cs
+++ b/mcs/class/referencesource/mscorlib/system/environment.cs
@@ -43,15 +43,6 @@ namespace System {
}
#endif
-#if FEATURE_SPLIT_RESOURCES
- // See code:#splitResourceFeature
- internal enum ResourceHelperState {
- UNITIALIZED = 0,
- HAVE_RESOURCES = 1,
- NO_RESOURCES = 2,
- }
-#endif // FEATURE_SPLIT_RESOURCES
-
[ComVisible(true)]
public static class Environment {
@@ -71,17 +62,6 @@ namespace System {
m_name = name;
}
-#if FEATURE_SPLIT_RESOURCES
- // See code:#splitResourceFeature
- internal ResourceHelper(String name, bool isDebug) : this(name)
- {
- m_isDebug = isDebug;
- if (!isDebug) {
- m_state = (int)ResourceHelperState.HAVE_RESOURCES;
- }
- }
-#endif // FEATURE_SPLIT_RESOURCES
-
private String m_name;
private ResourceManager SystemResMgr;
@@ -97,18 +77,6 @@ namespace System {
// Is this thread currently doing infinite resource lookups?
private int infinitelyRecursingCount;
-#if FEATURE_SPLIT_RESOURCES
-
- private bool m_isDebug;
- private int m_state = (int)ResourceHelperState.UNITIALIZED;
-
- internal bool UseFallback() {
- // this always returns false for runtime resources because its state can never be NO_RESOURCES
- return m_state == (int)ResourceHelperState.NO_RESOURCES;
- }
-
-#endif // FEATURE_SPLIT_RESOURCES
-
// Data representing one individual resource lookup on a thread.
internal class GetResourceStringUserData
{
@@ -143,12 +111,6 @@ namespace System {
return "[Resource lookup failed - null or empty resource name]";
}
-#if FEATURE_SPLIT_RESOURCES
- if (UseFallback()) {
- return null;
- }
-#endif // FEATURE_SPLIT_RESOURCES
-
// We have a somewhat common potential for infinite
// loops with mscorlib's ResourceManager. If "potentially dangerous"
// code throws an exception, we will get into an infinite loop
@@ -202,12 +164,12 @@ namespace System {
return;
}
rh.infinitelyRecursingCount++;
- // This is often a bug in the BCL, security, NLS+ code,
- // or the loader somewhere. However, this could also
- // be a setup problem - check whether mscorlib &
- // clr.dll are both of the same build flavor. Also, user
- // code in the resource lookup process (like an assembly
- // resolve event or custom CultureInfo) might potentially cause issues.
+ // This is often a
+
+
+
+
+
// Note: our infrastructure for reporting this exception will again cause resource lookup.
// This is the most direct way of dealing with that problem.
@@ -242,23 +204,6 @@ namespace System {
rh.currentlyLoading.Push(key);
-#if FEATURE_SPLIT_RESOURCES
- if (rh.SystemResMgr == null) {
- rh.SystemResMgr = new ResourceManager(m_name, typeof(Object).Assembly, m_isDebug);
- }
- String s = rh.SystemResMgr.GetString(key, culture);
- rh.currentlyLoading.Pop();
-
- if (rh.m_isDebug) {
- int detectedState = (s == null) ? (int)ResourceHelperState.NO_RESOURCES : (int)ResourceHelperState.HAVE_RESOURCES;
- // update state only if it's currently in the UNITIALIZED state
- int currentState = Interlocked.CompareExchange(ref m_state, detectedState, (int)ResourceHelperState.UNITIALIZED);
- }
- else {
- Contract.Assert(s!=null, "Managed resource string lookup failed. Was your resource name misspelled? Did you rebuild mscorlib after adding a resource to resources.txt? Debug this w/ cordbg and bug whoever owns the code that called Environment.GetResourceString. Resource name was: \""+key+"\"");
- }
-
-#else
if (rh.SystemResMgr == null) {
rh.SystemResMgr = new ResourceManager(m_name, typeof(Object).Assembly);
}
@@ -267,8 +212,6 @@ namespace System {
Contract.Assert(s!=null, "Managed resource string lookup failed. Was your resource name misspelled? Did you rebuild mscorlib after adding a resource to resources.txt? Debug this w/ cordbg and bug whoever owns the code that called Environment.GetResourceString. Resource name was: \""+key+"\"");
-#endif // !FEATURE_SPLIT_RESOURCES
-
userData.m_retVal = s;
}
@@ -299,70 +242,7 @@ namespace System {
}
- // #splitResourceFeature
- //
- // Overview:
- // FEATURE_SPLIT_RESOURCES is enabled only in coreclr builds. With this feature, resources are split into
- // runtime (critical) and debug resources. There are <10 runtime resources, and these are handled with the
- // runtime resource helper. Debug resources will only be present in debug packs so we allow fallback in
- // case these resources aren't present. If they aren't present, we return a general resource string.
- //
- // Impact to GetResourceString callers:
- // To minimize impact of this feature on the codebase, the typical resource helper is co-opted for debug
- // resources and a new runtime resource helper is introduced to handle the runtime resources. To save
- // lookup time, if FEATURE_SPLIT_RESOURCES is enabled, callers looking for runtime resources will call the
- // XRuntime overloads. (There were <10 such callers.)
- //
- // Some exception classes need to know if fallback was used, so they can do something other than their
- // typical exception message formatting. So Environment now provides some internal overloads to allow
- // these callers to detect this.
- //
- // Differences in resource lookup when FEATURE_SPLIT_RESOURCES is enabled:
- // You'll need some historical information first, otherwise the changes probably won't make sense, so...
- //
- // A bit of history:
- // Historically (Orcas and before), mscorlib's resources were embedded in mscorlib.dll. Furthermore,
- // its resources were loaded in the default appdomain. This latter characteristic is yet another way in
- // which mscorlib is distinct from other framework assemblies. This is achieved by the fcall
- // GetResourceFromDefault, which transitions into the default appdomain and then calls Environment's
- // GetResourceStringLocal.
- //
- // The changes -- deployment:
- // The <10 runtime resources are still embedded in mscorlib, but all others are pulled out into a
- // satellite assembly. To reserve the right to have all mscorlib's resources in a satellite assembly in
- // thefuture (and given that these are optional), this optional satellite assembly is called
- // mscorlib.debug.resources.dll. To achieve this, we added some special casing in the VM to accept this
- // new name as an mscorlib satellite assembly. When attempting to load this satellite assembly,
- // localization is performed in the normal way: if mscorlib.dll, etc are stored in <setup_dir>, then you
- // can place the satellite assembly under <setup_dir>\en-US, or <setup_dir>\<current_culture> in general
- // and we'll grab the assembly for the current culture. The ResourceManager does the usual fallback magic
- // in case the current culture's resources aren't present.
- //
- // The changes -- lookup:
- // Resources are still loaded in the default appdomain so we added extra magic below to do the transitions
- // for runtime and optional resource messages. If the optional resource set isn't found on first lookup,
- // we flag that and return the default fallback message (which is a runtime resource string). We avoid
- // this work subsequently via the new field ResourceHelper.m_useFallbackMessage.
-#if FEATURE_SPLIT_RESOURCES
- private static ResourceHelper m_runtimeResHelper; // Doesn't need to be initialized as they're zero-init.
-#endif // FEATURE_SPLIT_RESOURCES
- private static volatile ResourceHelper m_resHelper; // Doesn't need to be initialized as they're zero-init.
-
- private static volatile bool s_IsWindowsVistaOrAbove;
- private static volatile bool s_CheckedOSVistaOrAbove;
- private static volatile bool s_IsWindows8OrAbove;
- private static volatile bool s_CheckedOSWin8OrAbove;
-
- // Desktop dropped support for Win2k3 in version 4.5, but Silverlight 5 supports Win2k3.
-#if WIN32 && FEATURE_CORECLR && !FEATURE_CORESYSTEM
- private static volatile bool s_IsW2k3;
- private static volatile bool s_CheckedOSW2k3;
-#endif
-
-#if FEATURE_COMINTEROP
- private static volatile bool s_WinRTSupported;
- private static volatile bool s_CheckedWinRT;
-#endif // FEATURE_COMINTEROP
+ private static volatile ResourceHelper m_resHelper; // Doesn't need to be initialized as they're zero-init.
private const int MaxMachineNameLength = 256;
@@ -381,7 +261,6 @@ namespace System {
private static volatile OperatingSystem m_os; // Cached OperatingSystem value
- private static volatile OSName m_osname;
/*==================================TickCount===================================
**Action: Gets the number of ticks since the system was started.
@@ -503,9 +382,6 @@ namespace System {
==============================================================================*/
public static String CurrentDirectory
{
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
get{
@@ -522,7 +398,6 @@ namespace System {
}
}
- #if !FEATURE_PAL || !FEATURE_CORECLR || FEATURE_CORESYSTEM
// Returns the system directory (ie, C:\WinNT\System32).
public static String SystemDirectory {
#if FEATURE_CORECLR
@@ -547,7 +422,6 @@ namespace System {
return path;
}
}
-#endif // !FEATURE_PAL || !FEATURE_CORECLR || FEATURE_CORESYSTEM
#if !FEATURE_PAL
// Returns the windows directory (ie, C:\WinNT).
@@ -578,21 +452,24 @@ namespace System {
return name;
}
- bool isFullTrust;
-#if FEATURE_CORECLR
- isFullTrust = false;
-#else
- isFullTrust = CodeAccessSecurityEngine.QuickCheckForAllDemands();
-#endif // FEATURE_CORECLR
+ if (AppDomain.IsAppXModel() && !AppDomain.IsAppXDesignMode()) {
+ // Environment variable accessors are not approved modern API.
+ // Behave as if no variables are defined in this case.
+ return name;
+ }
+
+ int currentSize = 100;
+ StringBuilder blob = new StringBuilder(currentSize); // A somewhat reasonable default size
+ int size;
+
+#if !FEATURE_CORECLR
+ bool isFullTrust = CodeAccessSecurityEngine.QuickCheckForAllDemands();
// Do a security check to guarantee we can read each of the
// individual environment variables requested here.
String[] varArray = name.Split(new char[] {'%'});
StringBuilder vars = isFullTrust ? null : new StringBuilder();
- int currentSize = 100;
- StringBuilder blob = new StringBuilder(currentSize); // A somewhat reasonable default size
- int size;
bool fJustExpanded = false; // to accommodate expansion alg.
for(int i=1; i<varArray.Length-1; i++) { // Skip first and last tokens
@@ -640,6 +517,7 @@ namespace System {
if (!isFullTrust)
new EnvironmentPermission(EnvironmentPermissionAccess.Read, vars.ToString()).Demand();
+#endif // !FEATURE_CORECLR
blob.Length = 0;
size = Win32Native.ExpandEnvironmentStrings(name, blob, currentSize);
@@ -740,24 +618,32 @@ namespace System {
throw new ArgumentNullException("variable");
Contract.EndContractBlock();
+ if (AppDomain.IsAppXModel() && !AppDomain.IsAppXDesignMode()) {
+ // Environment variable accessors are not approved modern API.
+ // Behave as if the variable was not found in this case.
+ return null;
+ }
+
#if !FEATURE_CORECLR
(new EnvironmentPermission(EnvironmentPermissionAccess.Read, variable)).Demand();
#endif //!FEATURE_CORECLR
- StringBuilder blob = new StringBuilder(128); // A somewhat reasonable default size
- int requiredSize = Win32Native.GetEnvironmentVariable(variable, blob, blob.Capacity);
+ StringBuilder blob = StringBuilderCache.Acquire(128); // A somewhat reasonable default size
+ int requiredSize = Win32Native.GetEnvironmentVariable(variable, blob, blob.Capacity);
- if( requiredSize == 0) { // GetEnvironmentVariable failed
- if( Marshal.GetLastWin32Error() == Win32Native.ERROR_ENVVAR_NOT_FOUND)
+ if (requiredSize == 0) { // GetEnvironmentVariable failed
+ if (Marshal.GetLastWin32Error() == Win32Native.ERROR_ENVVAR_NOT_FOUND) {
+ StringBuilderCache.Release(blob);
return null;
+ }
}
while (requiredSize > blob.Capacity) { // need to retry since the environment variable might be changed
blob.Capacity = requiredSize;
blob.Length = 0;
- requiredSize = Win32Native.GetEnvironmentVariable(variable, blob, blob.Capacity);
+ requiredSize = Win32Native.GetEnvironmentVariable(variable, blob, blob.Capacity);
}
- return blob.ToString();
+ return StringBuilderCache.GetStringAndRelease(blob);
}
#if !FEATURE_PAL
@@ -871,17 +757,22 @@ namespace System {
[ResourceConsumption(ResourceScope.Machine)]
public static IDictionary GetEnvironmentVariables()
{
- bool isFullTrust;
-#if FEATURE_CORECLR
- isFullTrust = false;
-#else
- isFullTrust = CodeAccessSecurityEngine.QuickCheckForAllDemands();
-#endif // FEATURE_CORECLR
+ if (AppDomain.IsAppXModel() && !AppDomain.IsAppXDesignMode()) {
+ // Environment variable accessors are not approved modern API.
+ // Behave as if no environment variables are defined in this case.
+ return new Hashtable(0);
+ }
+
+#if !FEATURE_CORECLR
+ bool isFullTrust = CodeAccessSecurityEngine.QuickCheckForAllDemands();
+ StringBuilder vars = isFullTrust ? null : new StringBuilder();
+ bool first = true;
+#endif
char[] block = GetEnvironmentCharArray();
Hashtable table = new Hashtable(20);
- StringBuilder vars = isFullTrust ? null : new StringBuilder();
+
// Copy strings out, parsing into pairs and inserting into the table.
// The first few environment variable entries start with an '='!
// The current working directory of every drive (except for those drives
@@ -896,7 +787,6 @@ namespace System {
// CreateProcess page (null-terminated array of null-terminated strings).
// Note the =HiddenVar's aren't always at the beginning.
- bool first = true;
for(int i=0; i<block.Length; i++) {
int startKey = i;
// Skip to key
@@ -929,6 +819,7 @@ namespace System {
// skip over 0 handled by for loop's i++
table[key]=value;
+#if !FEATURE_CORECLR
if (!isFullTrust) {
if( first) {
first = false;
@@ -938,10 +829,13 @@ namespace System {
}
vars.Append(key);
}
+#endif
}
+#if !FEATURE_CORECLR
if (!isFullTrust)
new EnvironmentPermission(EnvironmentPermissionAccess.Read, vars.ToString()).Demand();
+#endif
return table;
}
@@ -997,7 +891,9 @@ namespace System {
public static void SetEnvironmentVariable(string variable, string value) {
CheckEnvironmentVariableName(variable);
+#if !FEATURE_CORECLR
new EnvironmentPermission(PermissionState.Unrestricted).Demand();
+#endif
// explicitly null out value if is the empty string.
if (String.IsNullOrEmpty(value) || value[0] == '\0') {
value = null;
@@ -1008,6 +904,12 @@ namespace System {
}
}
+ if (AppDomain.IsAppXModel() && !AppDomain.IsAppXDesignMode()) {
+ // Environment variable accessors are not approved modern API.
+ // so we throw PlatformNotSupportedException.
+ throw new PlatformNotSupportedException();
+ }
+
if(!Win32Native.SetEnvironmentVariable(variable, value)) {
int errorCode = Marshal.GetLastWin32Error();
@@ -1130,7 +1032,6 @@ namespace System {
==============================================================================*/
[System.Security.SecuritySafeCritical] // auto-generated
public static String[] GetLogicalDrives() {
-#if !PLATFORM_UNIX
new EnvironmentPermission(PermissionState.Unrestricted).Demand();
int drives = Win32Native.GetLogicalDrives();
@@ -1154,9 +1055,6 @@ namespace System {
root[0]++;
}
return result;
-#else
- return new String[0];
-#endif // !PLATFORM_UNIX
}
/*===================================NewLine====================================
@@ -1169,11 +1067,7 @@ namespace System {
public static String NewLine {
get {
Contract.Ensures(Contract.Result<String>() != null);
-#if !PLATFORM_UNIX
return "\r\n";
-#else
- return "\n";
-#endif // !PLATFORM_UNIX
}
}
@@ -1186,7 +1080,12 @@ namespace System {
==============================================================================*/
public static Version Version {
get {
- return new Version(ThisAssembly.InformationalVersion);
+
+ // Previously this represented the File version of mscorlib.dll. Many other libraries in the framework and outside took dependencies on the first three parts of this version
+ // remaining constant throughout 4.x. From 4.0 to 4.5.2 this was fine since the file version only incremented the last part.Starting with 4.6 we switched to a file versioning
+ // scheme that matched the product version. In order to preserve compatibility with existing libraries, this needs to be hard-coded.
+
+ return new Version(4,0,30319,42000);
}
}
@@ -1223,46 +1122,18 @@ namespace System {
Contract.Ensures(Contract.Result<OperatingSystem>() != null);
if (m_os==null) { // We avoid the lock since we don't care if two threads will set this at the same time.
+
Microsoft.Win32.Win32Native.OSVERSIONINFO osvi = new Microsoft.Win32.Win32Native.OSVERSIONINFO();
if (!GetVersion(osvi)) {
throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_GetVersion"));
}
- PlatformID id;
- Boolean getServicePackInfo;
- switch (osvi.PlatformId) {
- case Win32Native.VER_PLATFORM_WIN32_NT:
- id = PlatformID.Win32NT;
- getServicePackInfo = true;
- break;
-
- case Win32Native.VER_PLATFORM_UNIX:
- id = PlatformID.Unix;
- getServicePackInfo = false;
- break;
-
-#if !FEATURE_LEGACYNETCF
- case Win32Native.VER_PLATFORM_MACOSX:
- id = PlatformID.MacOSX;
- getServicePackInfo = false;
- break;
-#endif
-
- case Win32Native.VER_PLATFORM_WINCE:
- id = PlatformID.WinCE;
- getServicePackInfo = false;
- break;
-
- default:
- Contract.Assert(false, "Unsupported platform!");
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_InvalidPlatformID"));
- }
-
- // for OS other than unix or mac, we need to get Service pack information
Microsoft.Win32.Win32Native.OSVERSIONINFOEX osviEx = new Microsoft.Win32.Win32Native.OSVERSIONINFOEX();
- if (getServicePackInfo && !GetVersionEx(osviEx))
+ if (!GetVersionEx(osviEx))
throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_GetVersion"));
+ PlatformID id = PlatformID.Win32NT;
+
#if FEATURE_LEGACYNETCF
// return platform as WinCE, to ensure apps earlier than WP8 works as expected.
if (CompatibilitySwitches.IsAppEarlierThanWindowsPhone8)
@@ -1279,16 +1150,26 @@ namespace System {
}
}
- internal static bool IsWindowsVistaOrAbove {
+#if FEATURE_CORESYSTEM
+
+ internal static bool IsWindows8OrAbove {
get {
- if (!s_CheckedOSVistaOrAbove) {
- OperatingSystem OS = Environment.OSVersion;
- s_IsWindowsVistaOrAbove = OS.Platform == PlatformID.Win32NT && OS.Version.Major >= 6;
- s_CheckedOSVistaOrAbove = true;
- }
- return s_IsWindowsVistaOrAbove;
+ return true;
+ }
+ }
+
+#if FEATURE_COMINTEROP
+ internal static bool IsWinRTSupported {
+ get {
+ return true;
}
}
+#endif // FEATURE_COMINTEROP
+
+#else // FEATURE_CORESYSTEM
+
+ private static volatile bool s_IsWindows8OrAbove;
+ private static volatile bool s_CheckedOSWin8OrAbove;
// Windows 8 version is 6.2
internal static bool IsWindows8OrAbove {
@@ -1303,30 +1184,10 @@ namespace System {
}
}
- internal static bool IsW2k3 {
- get {
- // Desktop dropped support for Win2k3 in version 4.5, but Silverlight 5 supports Win2k3.
-#if !WIN32 || !FEATURE_CORECLR || FEATURE_CORESYSTEM
- return false;
-#else
- if (!s_CheckedOSW2k3) {
- OperatingSystem OS = Environment.OSVersion;
- s_IsW2k3 = ( (OS.Platform == PlatformID.Win32NT) && (OS.Version.Major == 5) && (OS.Version.Minor == 2));
- s_CheckedOSW2k3 = true;
- }
- return s_IsW2k3;
-#endif
- }
- }
-
-
- internal static bool RunningOnWinNT {
- get {
- return OSVersion.Platform == PlatformID.Win32NT;
- }
- }
-
#if FEATURE_COMINTEROP
+ private static volatile bool s_WinRTSupported;
+ private static volatile bool s_CheckedWinRT;
+
// Does the current version of Windows have Windows Runtime suppport?
internal static bool IsWinRTSupported {
[SecuritySafeCritical]
@@ -1347,18 +1208,7 @@ namespace System {
private static extern bool WinRTSupported();
#endif // FEATURE_COMINTEROP
- [Serializable]
- internal enum OSName
- {
- Invalid = 0,
- Unknown = 1,
- WinNT = 0x80,
- Nt4 = 1 | WinNT,
- Win2k = 2 | WinNT,
- MacOSX = 0x100,
- Tiger = 1 | MacOSX,
- Leopard = 2 | MacOSX
- }
+#endif // FEATURE_CORESYSTEM
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
@@ -1371,80 +1221,6 @@ namespace System {
internal static extern bool GetVersionEx(Microsoft.Win32.Win32Native.OSVERSIONINFOEX osVer);
- internal static OSName OSInfo
- {
- [System.Security.SecuritySafeCritical] // auto-generated
- get
- {
- if (m_osname == OSName.Invalid)
- {
- lock(InternalSyncObject)
- {
- if (m_osname == OSName.Invalid)
- {
- Microsoft.Win32.Win32Native.OSVERSIONINFO osvi = new Microsoft.Win32.Win32Native.OSVERSIONINFO();
- bool r = GetVersion(osvi);
- if (!r)
- {
- Contract.Assert(r, "OSVersion native call failed.");
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_GetVersion"));
- }
- switch (osvi.PlatformId)
- {
- case Win32Native.VER_PLATFORM_WIN32_NT:
- switch(osvi.MajorVersion)
- {
- case 5:
- m_osname = OSName.Win2k;
- break;
- case 4:
- Contract.Assert(false, "NT4 is no longer a supported platform!");
- m_osname = OSName.Unknown; // Unknown OS
- break;
- default:
- m_osname = OSName.WinNT;
- break;
- }
- break;
-
- case Win32Native.VER_PLATFORM_WIN32_WINDOWS:
- Contract.Assert(false, "Win9x is no longer a supported platform!");
- m_osname = OSName.Unknown; // Unknown OS
- break;
-
- case Win32Native.VER_PLATFORM_MACOSX:
- if (osvi.MajorVersion == 10)
- {
- switch (osvi.MinorVersion)
- {
- case 5:
- m_osname = OSName.Leopard;
- break;
- case 4:
- m_osname = OSName.Tiger;
- break;
- default:
- m_osname = OSName.MacOSX;
- break;
- }
- }
- else
- m_osname = OSName.MacOSX; // Well, at least Macintosh.
- break;
-
- default:
- Contract.Assert(false, "Unrecognized operating system");
- m_osname = OSName.Unknown; // Unknown OS
- break;
-
- }
- }
- }
- }
- return m_osname;
- }
- }
-
/*==================================StackTrace==================================
**Action:
**Returns:
@@ -1493,12 +1269,7 @@ namespace System {
Monitor.Enter(Environment.InternalSyncObject, ref tookLock);
if (m_resHelper == null) {
-#if FEATURE_SPLIT_RESOURCES
- // See code:#splitResourceFeature
- ResourceHelper rh = new ResourceHelper("mscorlib.debug", true);
-#else
ResourceHelper rh = new ResourceHelper("mscorlib");
-#endif // FEATURE_SPLIT_RESOURCES
System.Threading.Thread.MemoryBarrier();
m_resHelper =rh;
@@ -1510,10 +1281,12 @@ namespace System {
}
}
+#if !FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- internal extern static String GetResourceFromDefault(String key);
+ internal extern static String GetResourceFromDefault(String key);
+#endif
// Looks up the resource string value for key.
//
@@ -1527,28 +1300,7 @@ namespace System {
if (m_resHelper == null)
InitResourceHelper();
-#if FEATURE_SPLIT_RESOURCES
- // See code:#splitResourceFeature
- // Go ahead and make sure the runtime resource helper is initialized. We'll most likely
- // need it, for either the fallback resource or words like "at", which are needed in
- // stack traces
- if (m_runtimeResHelper == null)
- InitRuntimeResourceHelper();
-#endif // FEATURE_SPLIT_RESOURCES
-
- String s = m_resHelper.GetResourceString(key);
-#if FEATURE_SPLIT_RESOURCES
- // See code:#splitResourceFeature
- if (m_resHelper.UseFallback()) {
- s = m_runtimeResHelper.GetResourceString("NoDebugResources");
- // note: only source of these calls are from vm; mscorlib calls use the usedFallback
- // overload if FEATURE_SPLIT_RESOURCES is enabled. Let's go ahead and format for VM.
- // Also note that no VM callers call any of the params overloads.
- s = FormatFallbackMessage(s, key, null);
- }
-#endif // FEATURE_SPLIT_RESOURCES
- return s;
-
+ return m_resHelper.GetResourceString(key);
}
// #threadCultureInfo
@@ -1563,203 +1315,37 @@ namespace System {
// so that the ResourceManager GetString(x, cultureInfo) overload can be used.
// We first perform the same check as in CultureInfo to make sure it's safe to
// let the CultureInfo travel across AppDomains.
-#if !FEATURE_SPLIT_RESOURCES
+
[System.Security.SecuritySafeCritical] // auto-generated
-#endif
- [Pure]
[ResourceExposure(ResourceScope.None)]
internal static String GetResourceString(String key) {
-#if FEATURE_SPLIT_RESOURCES
- bool usedFallback = false;
- CultureInfo lookupCulture = GetResourceLookupCulture();
- String s = GetResourceFromDefaultUsedFallback(key, lookupCulture, ref usedFallback);
- if (usedFallback) {
- s = FormatFallbackMessage(s, key, null);
- }
- return s;
+#if FEATURE_CORECLR
+ return GetResourceStringLocal(key);
#else
return GetResourceFromDefault(key);
-#endif
+#endif //FEATURE_CORECLR
}
-#if !FEATURE_SPLIT_RESOURCES
[System.Security.SecuritySafeCritical] // auto-generated
-#endif
- [Pure]
[ResourceExposure(ResourceScope.None)]
internal static String GetResourceString(String key, params Object[] values) {
-#if FEATURE_SPLIT_RESOURCES
- bool usedFallback = false;
- CultureInfo lookupCulture = GetResourceLookupCulture();
- String s = GetResourceFromDefaultUsedFallback(key, lookupCulture, ref usedFallback);
- if (usedFallback) {
- s = FormatFallbackMessage(s, key, values);
- return s;
- }
-#else
- String s = GetResourceFromDefault(key);
-#endif
+ String s = GetResourceString(key);
return String.Format(CultureInfo.CurrentCulture, s, values);
}
-#if !FEATURE_SPLIT_RESOURCES
- [System.Security.SecuritySafeCritical] // auto-generated
-#endif
+ //The following two internal methods are not used anywhere within the framework,
+ // but are being kept around as external platforms built on top of us have taken
+ // dependency by using private reflection on them for getting system resource strings
[ResourceExposure(ResourceScope.None)]
internal static String GetRuntimeResourceString(String key) {
-#if FEATURE_SPLIT_RESOURCES
- CultureInfo lookupCulture = GetResourceLookupCulture();
- return GetRuntimeResourceFromDefault(key,lookupCulture);
-#else
- return GetResourceFromDefault(key);
-#endif // FEATURE_SPLIT_RESOURCES
+ return GetResourceString(key);
}
-#if !FEATURE_SPLIT_RESOURCES
- [System.Security.SecuritySafeCritical] // auto-generated
-#endif
[ResourceExposure(ResourceScope.None)]
internal static String GetRuntimeResourceString(String key, params Object[] values) {
-#if FEATURE_SPLIT_RESOURCES
- CultureInfo lookupCulture = GetResourceLookupCulture();
- String s = GetRuntimeResourceFromDefault(key, lookupCulture);
-#else
- String s = GetResourceFromDefault(key);
-#endif // FEATURE_SPLIT_RESOURCES
- return String.Format(CultureInfo.CurrentCulture, s, values);
- }
-
-#if FEATURE_SPLIT_RESOURCES
- // See code:#splitResourceFeature
- private static string FormatFallbackMessage(String fallbackMessage, String key, params Object[] values) {
- if (fallbackMessage == null) {
- // couldn't even find fallbackMessage. As a last-ditch effort, just return the key
- return key;
- }
-
- // build up arg string
- String argStr = null;
- if (values != null) {
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < values.Length; i ++) {
- if (values[i] != null) {
- String value = values[i].ToString();
- if (value != null) {
- sb.Append(value);
- if (i < values.Length - 1) {
- sb.Append(CultureInfo.CurrentCulture.TextInfo.ListSeparator);
- }
- }
- }
- }
- argStr = sb.ToString();
- }
- if (argStr == null) argStr = "";
-
- // don't uri-encode key; instead burden is on mscorlib resource keys to not conflict
- return String.Format(CultureInfo.CurrentCulture, fallbackMessage, key, argStr, GetAssemblyFileVersion(), "mscorlib.dll", key);
+ return GetResourceString(key,values);
}
- private static string GetAssemblyFileVersion() {
- Object[] attributes = typeof(Object).Assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false);
- if (attributes.Length != 1) {
- return "";
- }
-
- AssemblyFileVersionAttribute fileVersionAttribute = attributes[0] as AssemblyFileVersionAttribute;
- if (fileVersionAttribute == null) {
- return "";
- }
-
- return fileVersionAttribute.Version;
- }
-
- [Pure]
- [ResourceExposure(ResourceScope.None)]
- [MethodImplAttribute(MethodImplOptions.InternalCall)]
- internal extern static String GetRuntimeResourceFromDefault(String key, CultureInfo culture);
-
- #if FEATURE_CORECLR
- [System.Security.SecurityCritical] // auto-generated
- #endif
- [Pure]
- internal static String GetRuntimeResourceStringLocal(String key, CultureInfo culture) {
- if (m_runtimeResHelper == null)
- InitRuntimeResourceHelper();
-
- // runtime resources always have to be present (they're embedded in mscorlib)
- // so we don't have to fall back.
- return m_runtimeResHelper.GetResourceString(key, culture);
- }
-
- #if FEATURE_CORECLR
- [System.Security.SecurityCritical] // auto-generated
- #endif
- private static void InitRuntimeResourceHelper() {
- // Only the default AppDomain should have a ResourceHelper. All calls to
- // GetResourceString from any AppDomain delegate to GetResourceStringLocal
- // in the default AppDomain via the fcall GetResourceFromDefault.
-
- bool tookLock = false;
- RuntimeHelpers.PrepareConstrainedRegions();
- try {
-
- Monitor.Enter(Environment.InternalSyncObject, ref tookLock);
-
- if (m_runtimeResHelper == null) {
- ResourceHelper rh = new ResourceHelper("mscorlib", false);
- System.Threading.Thread.MemoryBarrier();
- m_runtimeResHelper = rh;
- }
- }
- finally {
- if (tookLock)
- Monitor.Exit(Environment.InternalSyncObject);
- }
- }
-
- // The following methods specify whether the fallback resource message was used, which
- // would happen if the debug satellite assembly isn't present. The only callers that
- // need to know this are some Exception classes, which don't want to do their usual
- // formatting with the fallback resource meessage.
-
- [ResourceExposure(ResourceScope.None)]
- [MethodImplAttribute(MethodImplOptions.InternalCall)]
- internal extern static String GetResourceFromDefaultUsedFallback(String key, CultureInfo culture, ref bool usedFallback);
-
- #if FEATURE_CORECLR
- [System.Security.SecurityCritical] // auto-generated
- #endif
- internal static String GetResourceStringLocalUsedFallback(String key, CultureInfo culture, ref bool usedFallback) {
- if (m_resHelper == null)
- InitResourceHelper();
-
- // See code:#splitResourceFeature
- // Go ahead and make sure the runtime resource helper is initialized. We'll most likely
- // need it, for either the fallback resource or words like "at", which are needed in
- // stack traces
- if (m_runtimeResHelper == null)
- InitRuntimeResourceHelper();
-
- String s = m_resHelper.GetResourceString(key, culture);
- usedFallback = m_resHelper.UseFallback();
- if (usedFallback) {
- s = m_runtimeResHelper.GetResourceString("NoDebugResources", culture);
- }
- return s;
- }
-
- private static CultureInfo GetResourceLookupCulture() {
- CultureInfo currentUICulture = CultureInfo.CurrentUICulture;
- if (currentUICulture.CanSendCrossDomain())
- {
- return currentUICulture;
- }
- return null;
- }
-
-#endif // FEATURE_SPLIT_RESOURCES
-
public static bool Is64BitProcess {
get {
#if WIN32
@@ -1781,7 +1367,7 @@ namespace System {
&& isWow64;
#else
// 64-bit programs run only on 64-bit
- //<STRIP>This will have to change for Mac if we add this API to Silverlight</STRIP>
+ //<
return true;
#endif
}
@@ -1833,18 +1419,16 @@ namespace System {
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
get {
#if !FEATURE_PAL && !FEATURE_CORESYSTEM
- if ((OSInfo & OSName.WinNT) == OSName.WinNT) { // On WinNT
- IntPtr hwinsta = Win32Native.GetProcessWindowStation();
- if (hwinsta != IntPtr.Zero && processWinStation != hwinsta) {
- int lengthNeeded = 0;
- Win32Native.USEROBJECTFLAGS flags = new Win32Native.USEROBJECTFLAGS();
- if (Win32Native.GetUserObjectInformation(hwinsta, Win32Native.UOI_FLAGS, flags, Marshal.SizeOf(flags),ref lengthNeeded)) {
- if ((flags.dwFlags & Win32Native.WSF_VISIBLE) == 0) {
- isUserNonInteractive = true;
- }
+ IntPtr hwinsta = Win32Native.GetProcessWindowStation();
+ if (hwinsta != IntPtr.Zero && processWinStation != hwinsta) {
+ int lengthNeeded = 0;
+ Win32Native.USEROBJECTFLAGS flags = new Win32Native.USEROBJECTFLAGS();
+ if (Win32Native.GetUserObjectInformation(hwinsta, Win32Native.UOI_FLAGS, flags, Marshal.SizeOf(flags),ref lengthNeeded)) {
+ if ((flags.dwFlags & Win32Native.WSF_VISIBLE) == 0) {
+ isUserNonInteractive = true;
}
- processWinStation = hwinsta;
}
+ processWinStation = hwinsta;
}
// The logic is reversed to avoid static initialization to true
@@ -1937,7 +1521,7 @@ namespace System {
break;
case __HResults.COR_E_PLATFORMNOTSUPPORTED:
// This one error is the one we do want to throw.
- // <STRIP>
+ // <
throw new PlatformNotSupportedException();
}
@@ -2048,16 +1632,11 @@ namespace System {
// favorite items.
//
Favorites = Win32Native.CSIDL_FAVORITES,
-#if FEATURE_MULTIPLATFORM || !FEATURE_PAL
//
// Represents the file system directory that serves as a common repository for Internet
// history items.
//
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCF
- [SupportedPlatforms(~(Platforms.MacOSX | Platforms.Unix))]
-#endif // FEATURE_CORECLR && !FEATURE_LEGACYNETCF
History = Win32Native.CSIDL_HISTORY,
-#endif // FEATURE_MULTIPLATFORM || !FEATURE_PAL
//
// Represents the file system directory that serves as a common repository for temporary
// Internet files.
@@ -2073,59 +1652,39 @@ namespace System {
MyPictures = Win32Native.CSIDL_MYPICTURES,
// "My Videos" folder
MyVideos = Win32Native.CSIDL_MYVIDEO,
-#if FEATURE_MULTIPLATFORM || !FEATURE_PAL
//
// Represents the file system directory that contains the user's most recently used
// documents.
//
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCF
- [SupportedPlatforms(~(Platforms.MacOSX | Platforms.Unix))]
-#endif // FEATURE_CORECLR && !FEATURE_LEGACYNETCF
Recent = Win32Native.CSIDL_RECENT,
//
// Represents the file system directory that contains Send To menu items.
//
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCF
- [SupportedPlatforms(~(Platforms.MacOSX | Platforms.Unix))]
-#endif // FEATURE_CORECLR && !FEATURE_LEGACYNETCF
SendTo = Win32Native.CSIDL_SENDTO,
//
// Represents the file system directory that contains the Start menu items.
//
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCF
- [SupportedPlatforms(~(Platforms.MacOSX | Platforms.Unix))]
-#endif // FEATURE_CORECLR && !FEATURE_LEGACYNETCF
StartMenu = Win32Native.CSIDL_STARTMENU,
//
// Represents the file system directory that corresponds to the user's Startup program group. The system
// starts these programs whenever any user logs on to Windows NT, or
// starts Windows 95 or Windows 98.
//
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCF
- [SupportedPlatforms(~(Platforms.MacOSX | Platforms.Unix))]
-#endif // FEATURE_CORECLR && !FEATURE_LEGACYNETCF
Startup = Win32Native.CSIDL_STARTUP,
//
// System directory.
//
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCF
- [SupportedPlatforms(~(Platforms.MacOSX | Platforms.Unix))]
-#endif // FEATURE_CORECLR && !FEATURE_LEGACYNETCF
System = Win32Native.CSIDL_SYSTEM,
//
// Represents the file system directory that serves as a common repository for document
// templates.
//
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCF
- [SupportedPlatforms(~(Platforms.MacOSX | Platforms.Unix))]
-#endif // FEATURE_CORECLR && !FEATURE_LEGACYNETCF
Templates = Win32Native.CSIDL_TEMPLATES,
//
// Represents the file system directory used to physically store file objects on the desktop.
// This should not be confused with the desktop folder itself, which is
// a virtual folder.
//
-#endif // FEATURE_MULTIPLATFORM || !FEATURE_PAL
DesktopDirectory = Win32Native.CSIDL_DESKTOPDIRECTORY,
//
// Represents the file system directory that serves as a common repository for documents.
@@ -2139,15 +1698,10 @@ namespace System {
// Represents the program files folder.
//
ProgramFiles = Win32Native.CSIDL_PROGRAM_FILES,
-#if FEATURE_MULTIPLATFORM || !FEATURE_PAL
//
// Represents the folder for components that are shared across applications.
//
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCF
- [SupportedPlatforms(~(Platforms.MacOSX | Platforms.Unix))]
-#endif // FEATURE_CORECLR && !FEATURE_LEGACYNETCF
CommonProgramFiles = Win32Native.CSIDL_PROGRAM_FILES_COMMON,
-#endif // FEATURE_MULTIPLATFORM || !FEATURE_PAL
#if !FEATURE_CORECLR
//
// <user name>\Start Menu\Programs\Administrative Tools
@@ -2246,9 +1800,6 @@ namespace System {
public static int CurrentManagedThreadId
{
-#if !FEATURE_CORECLR
- [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
get
{
diff --git a/mcs/class/referencesource/mscorlib/system/exception.cs b/mcs/class/referencesource/mscorlib/system/exception.cs
index c8fc5b78bec..bae8755d558 100644
--- a/mcs/class/referencesource/mscorlib/system/exception.cs
+++ b/mcs/class/referencesource/mscorlib/system/exception.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// ==--==
/*=============================================================================
@@ -32,7 +32,6 @@ namespace System {
using System.Globalization;
using System.Diagnostics.Contracts;
-
[ClassInterface(ClassInterfaceType.None)]
[ComDefaultInterface(typeof(_Exception))]
[Serializable]
@@ -140,7 +139,7 @@ namespace System {
if (_className==null) {
_className = GetClassName();
}
- return Environment.GetRuntimeResourceString("Exception_WasThrown", _className);
+ return Environment.GetResourceString("Exception_WasThrown", _className);
} else {
return _message;
@@ -449,7 +448,7 @@ namespace System {
if (_innerException!=null) {
s = s + " ---> " + _innerException.ToString(needFileLineInfo, needMessage) + Environment.NewLine +
- " " + Environment.GetRuntimeResourceString("Exception_EndOfInnerExceptionStack");
+ " " + Environment.GetResourceString("Exception_EndOfInnerExceptionStack");
}
@@ -876,21 +875,13 @@ namespace System {
// @MANAGED: HResult is used from within the EE! Rename with care - check VM directory
internal int _HResult; // HResult
-#if FEATURE_CORECLR && !FEATURE_NETCORE
- protected int HResult
-#else
public int HResult
-#endif
{
get
{
return _HResult;
}
-#if FEATURE_CORECLR && !FEATURE_NETCORE
- set
-#else
protected set
-#endif
{
_HResult = value;
}
@@ -912,15 +903,7 @@ namespace System {
#endif // FEATURE_SERIALIZATION
// See clr\src\vm\excep.h's EXCEPTION_COMPLUS definition:
-#if FEATURE_PAL && !FEATURE_CORECLR
- private const int _COMPlusExceptionCode = unchecked((int)0xe0524f54); // Win32 exception code for COM+ exceptions
-#else
-#if FEATURE_USE_INSTANCE_TAGGED_SEH_CODES
private const int _COMPlusExceptionCode = unchecked((int)0xe0434352); // Win32 exception code for COM+ exceptions
-#else //FEATURE_USE_INSTANCE_TAGGED_SEH_CODES
- private const int _COMPlusExceptionCode = unchecked((int)0xe0434f4d); // Win32 exception code for COM+ exceptions
-#endif //FEATURE_USE_INSTANCE_TAGGED_SEH_CODES
-#endif
// InternalToString is called by the runtime to get the exception text
// and create a corresponding CrossAppDomainMarshaledException
@@ -955,12 +938,14 @@ namespace System {
return ToString(fGetFileLineInfo, true);
}
+#if !FEATURE_CORECLR
// this method is required so Object.GetType is not made virtual by the compiler
// _Exception.GetType()
public new Type GetType()
{
return base.GetType();
}
+#endif
internal bool IsTransient
{
diff --git a/mcs/class/referencesource/mscorlib/system/executionengineexception.cs b/mcs/class/referencesource/mscorlib/system/executionengineexception.cs
index 49322834614..6e928d5170b 100644
--- a/mcs/class/referencesource/mscorlib/system/executionengineexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/executionengineexception.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
/*=============================================================================
**
diff --git a/mcs/class/referencesource/mscorlib/system/gc.cs b/mcs/class/referencesource/mscorlib/system/gc.cs
index 65c4beeb998..a4d5858e9ec 100644
--- a/mcs/class/referencesource/mscorlib/system/gc.cs
+++ b/mcs/class/referencesource/mscorlib/system/gc.cs
@@ -47,6 +47,7 @@ namespace System {
NonBlocking = 0x00000001,
Blocking = 0x00000002,
Optimized = 0x00000004,
+ Compacting = 0x00000008,
}
// !!!!!!!!!!!!!!!!!!!!!!!
@@ -72,7 +73,19 @@ namespace System {
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- internal static extern void SetGCLatencyMode(int newLatencyMode);
+ internal static extern int SetGCLatencyMode(int newLatencyMode);
+
+ [System.Security.SecurityCritical] // auto-generated
+ [ResourceExposure(ResourceScope.None)]
+ [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
+ [SuppressUnmanagedCodeSecurity]
+ internal static extern int _StartNoGCRegion(long totalSize, bool lohSizeKnown, long lohSize, bool disallowFullBlockingGC);
+
+ [System.Security.SecurityCritical] // auto-generated
+ [ResourceExposure(ResourceScope.None)]
+ [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
+ [SuppressUnmanagedCodeSecurity]
+ internal static extern int _EndNoGCRegion();
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
@@ -198,6 +211,12 @@ namespace System {
[System.Security.SecuritySafeCritical] // auto-generated
public static void Collect(int generation, GCCollectionMode mode, bool blocking)
{
+ Collect(generation, mode, blocking, false);
+ }
+
+ [System.Security.SecuritySafeCritical] // auto-generated
+ public static void Collect(int generation, GCCollectionMode mode, bool blocking, bool compacting)
+ {
if (generation<0)
{
throw new ArgumentOutOfRangeException("generation", Environment.GetResourceString("ArgumentOutOfRange_GenericPositive"));
@@ -217,11 +236,14 @@ namespace System {
iInternalModes |= (int)InternalGCCollectionMode.Optimized;
}
+ if (compacting)
+ iInternalModes |= (int)InternalGCCollectionMode.Compacting;
+
if (blocking)
{
iInternalModes |= (int)InternalGCCollectionMode.Blocking;
}
- else
+ else if (!compacting)
{
iInternalModes |= (int)InternalGCCollectionMode.NonBlocking;
}
@@ -330,9 +352,6 @@ namespace System {
[System.Security.SecuritySafeCritical] // auto-generated
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static void SuppressFinalize(Object obj) {
if (obj == null)
throw new ArgumentNullException("obj");
@@ -464,6 +483,80 @@ namespace System {
throw new ArgumentOutOfRangeException("millisecondsTimeout", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegOrNegative1"));
return (GCNotificationStatus)_WaitForFullGCComplete(millisecondsTimeout);
}
+
+ enum StartNoGCRegionStatus
+ {
+ Succeeded = 0,
+ NotEnoughMemory = 1,
+ AmountTooLarge = 2,
+ AlreadyInProgress = 3
+ }
+
+ enum EndNoGCRegionStatus
+ {
+ Succeeded = 0,
+ NotInProgress = 1,
+ GCInduced = 2,
+ AllocationExceeded = 3
+ }
+
+ [SecurityCritical]
+ static bool StartNoGCRegionWorker(long totalSize, bool hasLohSize, long lohSize, bool disallowFullBlockingGC)
+ {
+ StartNoGCRegionStatus status = (StartNoGCRegionStatus)_StartNoGCRegion(totalSize, hasLohSize, lohSize, disallowFullBlockingGC);
+ if (status == StartNoGCRegionStatus.AmountTooLarge)
+ throw new ArgumentOutOfRangeException("totalSize",
+ "totalSize is too large. For more information about setting the maximum size, see \"Latency Modes\" in http://go.microsoft.com/fwlink/?LinkId=522706");
+ else if (status == StartNoGCRegionStatus.AlreadyInProgress)
+ throw new InvalidOperationException("The NoGCRegion mode was already in progress");
+ else if (status == StartNoGCRegionStatus.NotEnoughMemory)
+ return false;
+ return true;
+ }
+
+ [SecurityCritical]
+ public static bool TryStartNoGCRegion(long totalSize)
+ {
+ return StartNoGCRegionWorker(totalSize, false, 0, false);
+ }
+
+ [SecurityCritical]
+ public static bool TryStartNoGCRegion(long totalSize, long lohSize)
+ {
+ return StartNoGCRegionWorker(totalSize, true, lohSize, false);
+ }
+
+ [SecurityCritical]
+ public static bool TryStartNoGCRegion(long totalSize, bool disallowFullBlockingGC)
+ {
+ return StartNoGCRegionWorker(totalSize, false, 0, disallowFullBlockingGC);
+ }
+
+ [SecurityCritical]
+ public static bool TryStartNoGCRegion(long totalSize, long lohSize, bool disallowFullBlockingGC)
+ {
+ return StartNoGCRegionWorker(totalSize, true, lohSize, disallowFullBlockingGC);
+ }
+
+ [SecurityCritical]
+ static EndNoGCRegionStatus EndNoGCRegionWorker()
+ {
+ EndNoGCRegionStatus status = (EndNoGCRegionStatus)_EndNoGCRegion();
+ if (status == EndNoGCRegionStatus.NotInProgress)
+ throw new InvalidOperationException("NoGCRegion mode must be set");
+ else if (status == EndNoGCRegionStatus.GCInduced)
+ throw new InvalidOperationException("Garbage collection was induced in NoGCRegion mode");
+ else if (status == EndNoGCRegionStatus.AllocationExceeded)
+ throw new InvalidOperationException("Allocated memory exceeds specified memory for NoGCRegion mode");
+
+ return EndNoGCRegionStatus.Succeeded;
+ }
+
+ [SecurityCritical]
+ public static void EndNoGCRegion()
+ {
+ EndNoGCRegionWorker();
+ }
}
#if !FEATURE_CORECLR
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/CalendricalCalculationsHelper.cs b/mcs/class/referencesource/mscorlib/system/globalization/CalendricalCalculationsHelper.cs
new file mode 100644
index 00000000000..4ea5d3333af
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/globalization/CalendricalCalculationsHelper.cs
@@ -0,0 +1,414 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+namespace System.Globalization
+{
+ using System;
+ using System.Diagnostics.Contracts;
+
+ internal class CalendricalCalculationsHelper
+ {
+ const double FullCircleOfArc = 360.0; // 360.0;
+ const int HalfCircleOfArc = 180;
+ const double TwelveHours = 0.5; // half a day
+ const double Noon2000Jan01 = 730120.5;
+ internal const double MeanTropicalYearInDays = 365.242189;
+ const double MeanSpeedOfSun = MeanTropicalYearInDays / FullCircleOfArc;
+ const double LongitudeSpring = 0.0;
+ const double TwoDegreesAfterSpring = 2.0;
+ const int SecondsPerDay = 24 * 60 * 60; // 24 hours * 60 minutes * 60 seconds
+
+ const int DaysInUniformLengthCentury = 36525;
+ const int SecondsPerMinute = 60;
+ const int MinutesPerDegree = 60;
+
+ static long StartOf1810 = GetNumberOfDays(new DateTime(1810, 1, 1));
+ static long StartOf1900Century = GetNumberOfDays(new DateTime(1900, 1, 1));
+
+ static double[] Coefficients1900to1987 = new double[] { -0.00002, 0.000297, 0.025184, -0.181133, 0.553040, -0.861938, 0.677066, -0.212591 };
+ static double[] Coefficients1800to1899 = new double[] { -0.000009, 0.003844, 0.083563, 0.865736, 4.867575, 15.845535, 31.332267, 38.291999, 28.316289, 11.636204, 2.043794 };
+ static double[] Coefficients1700to1799 = new double[] { 8.118780842, -0.005092142, 0.003336121, -0.0000266484 };
+ static double[] Coefficients1620to1699 = new double[] { 196.58333, -4.0675, 0.0219167 };
+ static double[] LambdaCoefficients = new double[] { 280.46645, 36000.76983, 0.0003032 };
+ static double[] AnomalyCoefficients = new double[] { 357.52910, 35999.05030, -0.0001559, -0.00000048 };
+ static double[] EccentricityCoefficients = new double[] { 0.016708617, -0.000042037, -0.0000001236 };
+ static double[] Coefficients = new double[] { Angle(23, 26, 21.448), Angle(0, 0, -46.8150), Angle(0, 0, -0.00059), Angle(0, 0, 0.001813) };
+ static double[] CoefficientsA = new double[] { 124.90, -1934.134, 0.002063 };
+ static double[] CoefficientsB = new double[] { 201.11, 72001.5377, 0.00057 };
+
+ static double RadiansFromDegrees(double degree)
+ {
+ return degree * Math.PI / 180;
+ }
+
+ static double SinOfDegree(double degree)
+ {
+ return Math.Sin(RadiansFromDegrees(degree));
+ }
+
+ static double CosOfDegree(double degree)
+ {
+ return Math.Cos(RadiansFromDegrees(degree));
+ }
+ static double TanOfDegree(double degree)
+ {
+ return Math.Tan(RadiansFromDegrees(degree));
+ }
+
+ public static double Angle(int degrees, int minutes, double seconds)
+ {
+ return ((seconds / SecondsPerMinute + minutes) / MinutesPerDegree) + degrees;
+ }
+
+ static double Obliquity(double julianCenturies)
+ {
+ return PolynomialSum(Coefficients, julianCenturies);
+ }
+
+ internal static long GetNumberOfDays(DateTime date)
+ {
+ return date.Ticks / GregorianCalendar.TicksPerDay;
+ }
+
+ static int GetGregorianYear(double numberOfDays)
+ {
+ return new DateTime(Math.Min((long)(Math.Floor(numberOfDays) * GregorianCalendar.TicksPerDay), DateTime.MaxValue.Ticks)).Year;
+ }
+
+ enum CorrectionAlgorithm
+ {
+ Default,
+ Year1988to2019,
+ Year1900to1987,
+ Year1800to1899,
+ Year1700to1799,
+ Year1620to1699
+ }
+
+ struct EphemerisCorrectionAlgorithmMap
+ {
+ public EphemerisCorrectionAlgorithmMap(int year, CorrectionAlgorithm algorithm)
+ {
+ _lowestYear = year;
+ _algorithm = algorithm;
+ }
+
+ internal int _lowestYear;
+ internal CorrectionAlgorithm _algorithm;
+ };
+
+ static EphemerisCorrectionAlgorithmMap[] EphemerisCorrectionTable = new EphemerisCorrectionAlgorithmMap[]
+ {
+ // lowest year that starts algorithm, algorithm to use
+ new EphemerisCorrectionAlgorithmMap(2020, CorrectionAlgorithm.Default),
+ new EphemerisCorrectionAlgorithmMap(1988, CorrectionAlgorithm.Year1988to2019),
+ new EphemerisCorrectionAlgorithmMap(1900, CorrectionAlgorithm.Year1900to1987),
+ new EphemerisCorrectionAlgorithmMap(1800, CorrectionAlgorithm.Year1800to1899),
+ new EphemerisCorrectionAlgorithmMap(1700, CorrectionAlgorithm.Year1700to1799),
+ new EphemerisCorrectionAlgorithmMap(1620, CorrectionAlgorithm.Year1620to1699),
+ new EphemerisCorrectionAlgorithmMap(int.MinValue, CorrectionAlgorithm.Default) // default must be last
+ };
+
+ static double Reminder(double divisor, double dividend)
+ {
+ double whole = Math.Floor(divisor / dividend);
+ return divisor - (dividend * whole);
+ }
+
+ static double NormalizeLongitude(double longitude)
+ {
+ longitude = Reminder(longitude, FullCircleOfArc);
+ if (longitude < 0)
+ {
+ longitude += FullCircleOfArc;
+ }
+ return longitude;
+ }
+
+ static public double AsDayFraction(double longitude)
+ {
+ return longitude / FullCircleOfArc;
+ }
+
+ static double PolynomialSum(double[] coefficients, double indeterminate)
+ {
+ double sum = coefficients[0];
+ double indeterminateRaised = 1;
+ for (int i=1; i<coefficients.Length; i++)
+ {
+ indeterminateRaised *= indeterminate;
+ sum += (coefficients[i] * indeterminateRaised);
+ }
+
+ return sum;
+ }
+
+ static double CenturiesFrom1900(int gregorianYear)
+ {
+ long july1stOfYear = GetNumberOfDays(new DateTime(gregorianYear, 7, 1));
+ return (double) (july1stOfYear - StartOf1900Century) / DaysInUniformLengthCentury;
+ }
+
+ // the following formulas defines a polynomial function which gives us the amount that the earth is slowing down for specific year ranges
+ static double DefaultEphemerisCorrection(int gregorianYear)
+ {
+ Contract.Assert(gregorianYear < 1620 || 2020 <= gregorianYear);
+ long january1stOfYear = GetNumberOfDays(new DateTime(gregorianYear, 1, 1));
+ double daysSinceStartOf1810 = january1stOfYear - StartOf1810;
+ double x = TwelveHours + daysSinceStartOf1810;
+ return ((Math.Pow(x, 2) / 41048480) - 15) / SecondsPerDay;
+ }
+
+ static double EphemerisCorrection1988to2019(int gregorianYear)
+ {
+ Contract.Assert(1988 <= gregorianYear && gregorianYear <= 2019);
+ return (double)(gregorianYear - 1933) / SecondsPerDay;
+ }
+
+ static double EphemerisCorrection1900to1987(int gregorianYear)
+ {
+ Contract.Assert(1900 <= gregorianYear && gregorianYear <= 1987);
+ double centuriesFrom1900 = CenturiesFrom1900(gregorianYear);
+ return PolynomialSum(Coefficients1900to1987, centuriesFrom1900);
+ }
+
+ static double EphemerisCorrection1800to1899(int gregorianYear)
+ {
+ Contract.Assert(1800 <= gregorianYear && gregorianYear <= 1899);
+ double centuriesFrom1900 = CenturiesFrom1900(gregorianYear);
+ return PolynomialSum(Coefficients1800to1899, centuriesFrom1900);
+ }
+
+ static double EphemerisCorrection1700to1799(int gregorianYear)
+ {
+ Contract.Assert(1700 <= gregorianYear && gregorianYear <= 1799);
+ double yearsSince1700 = gregorianYear - 1700;
+ return PolynomialSum(Coefficients1700to1799, yearsSince1700) / SecondsPerDay;
+ }
+
+ static double EphemerisCorrection1620to1699(int gregorianYear)
+ {
+ Contract.Assert(1620 <= gregorianYear && gregorianYear <= 1699);
+ double yearsSince1600 = gregorianYear - 1600;
+ return PolynomialSum(Coefficients1620to1699, yearsSince1600) / SecondsPerDay;
+ }
+
+ // ephemeris-correction: correction to account for the slowing down of the rotation of the earth
+ static double EphemerisCorrection(double time)
+ {
+ int year = GetGregorianYear(time);
+ foreach (EphemerisCorrectionAlgorithmMap map in EphemerisCorrectionTable)
+ {
+ if (map._lowestYear <= year)
+ {
+ switch (map._algorithm)
+ {
+ case CorrectionAlgorithm.Default: return DefaultEphemerisCorrection(year);
+ case CorrectionAlgorithm.Year1988to2019: return EphemerisCorrection1988to2019(year);
+ case CorrectionAlgorithm.Year1900to1987: return EphemerisCorrection1900to1987(year);
+ case CorrectionAlgorithm.Year1800to1899: return EphemerisCorrection1800to1899(year);
+ case CorrectionAlgorithm.Year1700to1799: return EphemerisCorrection1700to1799(year);
+ case CorrectionAlgorithm.Year1620to1699: return EphemerisCorrection1620to1699(year);
+ }
+
+ break; // break the loop and assert eventually
+ }
+ }
+
+ Contract.Assert(false, "Not expected to come here");
+ return DefaultEphemerisCorrection(year);
+ }
+
+ static public double JulianCenturies(double moment)
+ {
+ double dynamicalMoment = moment + EphemerisCorrection(moment);
+ return (dynamicalMoment - Noon2000Jan01) / DaysInUniformLengthCentury;
+ }
+
+ static bool IsNegative(double value)
+ {
+ return Math.Sign(value) == -1;
+ }
+
+ static double CopySign(double value, double sign)
+ {
+ return (IsNegative(value) == IsNegative(sign)) ? value : -value;
+ }
+
+ // equation-of-time; approximate the difference between apparent solar time and mean solar time
+ // formal definition is EOT = GHA - GMHA
+ // GHA is the Greenwich Hour Angle of the apparent (actual) Sun
+ // GMHA is the Greenwich Mean Hour Angle of the mean (fictitious) Sun
+ // http://www.esrl.noaa.gov/gmd/grad/solcalc/
+ // http://en.wikipedia.org/wiki/Equation_of_time
+ static double EquationOfTime(double time)
+ {
+ double julianCenturies = JulianCenturies(time);
+ double lambda = PolynomialSum(LambdaCoefficients, julianCenturies);
+ double anomaly = PolynomialSum(AnomalyCoefficients, julianCenturies);
+ double eccentricity = PolynomialSum(EccentricityCoefficients, julianCenturies);
+
+ double epsilon = Obliquity(julianCenturies);
+ double tanHalfEpsilon = TanOfDegree(epsilon / 2);
+ double y = tanHalfEpsilon * tanHalfEpsilon;
+
+ double dividend = ((y * SinOfDegree(2 * lambda))
+ - (2 * eccentricity * SinOfDegree(anomaly))
+ + (4 * eccentricity * y * SinOfDegree(anomaly) * CosOfDegree(2 * lambda))
+ - (0.5 * Math.Pow(y, 2) * SinOfDegree(4 * lambda))
+ - (1.25 * Math.Pow(eccentricity, 2) * SinOfDegree(2 * anomaly)));
+ double divisor = 2 * Math.PI;
+ double equation = dividend / divisor;
+
+ // approximation of equation of time is not valid for dates that are many millennia in the past or future
+ // thus limited to a half day
+ return CopySign(Math.Min(Math.Abs(equation), TwelveHours), equation);
+ }
+
+ static double AsLocalTime(double apparentMidday, double longitude)
+ {
+ // slightly inaccurate since equation of time takes mean time not apparent time as its argument, but the difference is negligible
+ double universalTime = apparentMidday - AsDayFraction(longitude);
+ return apparentMidday - EquationOfTime(universalTime);
+ }
+
+ // midday
+ static public double Midday(double date, double longitude)
+ {
+ return AsLocalTime(date+TwelveHours, longitude) - AsDayFraction(longitude);
+ }
+
+ static double InitLongitude(double longitude)
+ {
+ return NormalizeLongitude(longitude + HalfCircleOfArc) - HalfCircleOfArc;
+ }
+
+ // midday-in-tehran
+ static public double MiddayAtPersianObservationSite(double date)
+ {
+ return Midday(date, InitLongitude(52.5)); // 52.5 degrees east - longitude of UTC+3:30 which defines Iranian Standard Time
+ }
+
+ static double PeriodicTerm(double julianCenturies, int x, double y, double z)
+ {
+ return x * SinOfDegree(y + z * julianCenturies);
+ }
+
+ static double SumLongSequenceOfPeriodicTerms(double julianCenturies)
+ {
+ double sum = 0.0;
+ sum += PeriodicTerm(julianCenturies, 403406, 270.54861, 0.9287892);
+ sum += PeriodicTerm(julianCenturies, 195207, 340.19128, 35999.1376958);
+ sum += PeriodicTerm(julianCenturies, 119433, 63.91854, 35999.4089666);
+ sum += PeriodicTerm(julianCenturies, 112392, 331.2622, 35998.7287385);
+ sum += PeriodicTerm(julianCenturies, 3891, 317.843, 71998.20261);
+ sum += PeriodicTerm(julianCenturies, 2819, 86.631, 71998.4403);
+ sum += PeriodicTerm(julianCenturies, 1721, 240.052, 36000.35726);
+ sum += PeriodicTerm(julianCenturies, 660, 310.26, 71997.4812);
+ sum += PeriodicTerm(julianCenturies, 350, 247.23, 32964.4678);
+ sum += PeriodicTerm(julianCenturies, 334, 260.87, -19.441);
+ sum += PeriodicTerm(julianCenturies, 314, 297.82, 445267.1117);
+ sum += PeriodicTerm(julianCenturies, 268, 343.14, 45036.884);
+ sum += PeriodicTerm(julianCenturies, 242, 166.79, 3.1008);
+ sum += PeriodicTerm(julianCenturies, 234, 81.53, 22518.4434);
+ sum += PeriodicTerm(julianCenturies, 158, 3.5, -19.9739);
+ sum += PeriodicTerm(julianCenturies, 132, 132.75, 65928.9345);
+ sum += PeriodicTerm(julianCenturies, 129, 182.95, 9038.0293);
+ sum += PeriodicTerm(julianCenturies, 114, 162.03, 3034.7684);
+ sum += PeriodicTerm(julianCenturies, 99, 29.8, 33718.148);
+ sum += PeriodicTerm(julianCenturies, 93, 266.4, 3034.448);
+ sum += PeriodicTerm(julianCenturies, 86, 249.2, -2280.773);
+ sum += PeriodicTerm(julianCenturies, 78, 157.6, 29929.992);
+ sum += PeriodicTerm(julianCenturies, 72, 257.8, 31556.493);
+ sum += PeriodicTerm(julianCenturies, 68, 185.1, 149.588);
+ sum += PeriodicTerm(julianCenturies, 64, 69.9, 9037.75);
+ sum += PeriodicTerm(julianCenturies, 46, 8.0, 107997.405);
+ sum += PeriodicTerm(julianCenturies, 38, 197.1, -4444.176);
+ sum += PeriodicTerm(julianCenturies, 37, 250.4, 151.771);
+ sum += PeriodicTerm(julianCenturies, 32, 65.3, 67555.316);
+ sum += PeriodicTerm(julianCenturies, 29, 162.7, 31556.08);
+ sum += PeriodicTerm(julianCenturies, 28, 341.5, -4561.54);
+ sum += PeriodicTerm(julianCenturies, 27, 291.6, 107996.706);
+ sum += PeriodicTerm(julianCenturies, 27, 98.5, 1221.655);
+ sum += PeriodicTerm(julianCenturies, 25, 146.7, 62894.167);
+ sum += PeriodicTerm(julianCenturies, 24, 110.0, 31437.369);
+ sum += PeriodicTerm(julianCenturies, 21, 5.2, 14578.298);
+ sum += PeriodicTerm(julianCenturies, 21, 342.6, -31931.757);
+ sum += PeriodicTerm(julianCenturies, 20, 230.9, 34777.243);
+ sum += PeriodicTerm(julianCenturies, 18, 256.1, 1221.999);
+ sum += PeriodicTerm(julianCenturies, 17, 45.3, 62894.511);
+ sum += PeriodicTerm(julianCenturies, 14, 242.9, -4442.039);
+ sum += PeriodicTerm(julianCenturies, 13, 115.2, 107997.909);
+ sum += PeriodicTerm(julianCenturies, 13, 151.8, 119.066);
+ sum += PeriodicTerm(julianCenturies, 13, 285.3, 16859.071);
+ sum += PeriodicTerm(julianCenturies, 12, 53.3, -4.578);
+ sum += PeriodicTerm(julianCenturies, 10, 126.6, 26895.292);
+ sum += PeriodicTerm(julianCenturies, 10, 205.7, -39.127);
+ sum += PeriodicTerm(julianCenturies, 10, 85.9, 12297.536);
+ sum += PeriodicTerm(julianCenturies, 10, 146.1, 90073.778);
+ return sum;
+ }
+
+ static double Aberration(double julianCenturies)
+ {
+ return (0.0000974 * CosOfDegree(177.63 + (35999.01848 * julianCenturies))) - 0.005575;
+ }
+
+ static double Nutation(double julianCenturies)
+ {
+ double a = PolynomialSum(CoefficientsA, julianCenturies);
+ double b = PolynomialSum(CoefficientsB, julianCenturies);
+ return (-0.004778 * SinOfDegree(a)) - (0.0003667 * SinOfDegree(b));
+ }
+
+ static public double Compute(double time)
+ {
+ double julianCenturies = JulianCenturies(time);
+ double lambda = 282.7771834
+ + (36000.76953744 * julianCenturies)
+ + (0.000005729577951308232 * SumLongSequenceOfPeriodicTerms(julianCenturies));
+
+ double longitude = lambda + Aberration(julianCenturies) + Nutation(julianCenturies);
+ return InitLongitude(longitude);
+ }
+
+ static public double AsSeason(double longitude)
+ {
+ return (longitude < 0) ? (longitude + FullCircleOfArc) : longitude;
+ }
+
+ static double EstimatePrior(double longitude, double time)
+ {
+ double timeSunLastAtLongitude = time - (MeanSpeedOfSun * AsSeason(InitLongitude(Compute(time) - longitude)));
+ double longitudeErrorDelta = InitLongitude(Compute(timeSunLastAtLongitude) - longitude);
+ return Math.Min(time, timeSunLastAtLongitude - (MeanSpeedOfSun * longitudeErrorDelta));
+ }
+
+ // persian-new-year-on-or-before
+ // number of days is the absolute date. The absolute date is the number of days from January 1st, 1 A.D.
+ // 1/1/0001 is absolute date 1.
+ internal static long PersianNewYearOnOrBefore(long numberOfDays)
+ {
+ double date = (double) numberOfDays;
+
+ double approx = EstimatePrior(LongitudeSpring, MiddayAtPersianObservationSite(date));
+ long lowerBoundNewYearDay = (long) Math.Floor(approx) - 1;
+ long upperBoundNewYearDay = lowerBoundNewYearDay + 3; // estimate is generally within a day of the actual occurrance (at the limits, the error expands, since the calculations rely on the mean tropical year which changes...)
+ long day = lowerBoundNewYearDay;
+ for (; day != upperBoundNewYearDay; ++day)
+ {
+ double midday = MiddayAtPersianObservationSite((double) day);
+ double l = Compute(midday);
+ if ((LongitudeSpring <= l) && (l <= TwoDegreesAfterSpring))
+ {
+ break;
+ }
+ }
+ Contract.Assert(day != upperBoundNewYearDay);
+
+ return day - 1;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/Persiancalendar.cs b/mcs/class/referencesource/mscorlib/system/globalization/Persiancalendar.cs
index cd270c17f31..5eb368bacf6 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/Persiancalendar.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/Persiancalendar.cs
@@ -12,12 +12,16 @@ namespace System.Globalization {
// Notes about PersianCalendar
//
////////////////////////////////////////////////////////////////////////////
- /*
+ // Modern Persian calendar is a solar observation based calendar. Each new year begins on the day when the vernal equinox occurs before noon.
+ // The epoch is the date of the vernal equinox prior to the epoch of the Islamic calendar (Microsoft 19, 622 Julian or Microsoft 22, 622 Gregorian)
+
+ // There is no Persian year 0. Ordinary years have 365 days. Leap years have 366 days with the last month (Esfand) gaining the extra day.
+ /*
** Calendar support range:
** Calendar Minimum Maximum
** ========== ========== ==========
- ** Gregorian 0622/03/21 9999/12/31
- ** Persian 0001/01/01 9378/10/10
+ ** Gregorian 0622/03/22 9999/12/31
+ ** Persian 0001/01/01 9378/10/13
*/
[Serializable]
@@ -26,35 +30,24 @@ namespace System.Globalization {
public static readonly int PersianEra = 1;
- internal const int DateCycle = 33;
+ internal static long PersianEpoch = new DateTime(622, 3, 22).Ticks / GregorianCalendar.TicksPerDay;
+ const int ApproximateHalfYear = 180;
+
internal const int DatePartYear = 0;
internal const int DatePartDayOfYear = 1;
internal const int DatePartMonth = 2;
internal const int DatePartDay = 3;
+ internal const int MonthsPerYear = 12;
- internal static int[] DaysToMonth = {0,31,62,93,124,155,186,216,246,276,306,336};
- //Leap years, if Y%33 is 1,5,9,13,17,22,26,30
- internal static int[] LeapYears33 = {0,1,0,0,0, // 0 [1] 2 3 4
- 1,0,0,0,1, // [5] 6 7 8 [9]
- 0,0,0,1,0, // 10 11 12 [13] 14
- 0,0,1,0,0, // 15 16 [17] 18 19
- 0,0,1,0,0, // 20 21 [22] 23 24
- 0,1,0,0,0, // 25 [26] 27 28 29
- 1,0,0}; //[30] 31 32
-
- internal const int LeapYearsPerCycle = 8;
- internal const long GregorianOffset = 226894; //GregorianCalendar.GetAbsoluteDate(622, 3, 21);
- internal const long DaysPerCycle = DateCycle * 365 + LeapYearsPerCycle;
-
- //internal static Calendar m_defaultInstance;
+ internal static int[] DaysToMonth = { 0, 31, 62, 93, 124, 155, 186, 216, 246, 276, 306, 336, 366 };
- // DateTime.MaxValue = Persian calendar (year:9378, month: 10, day: 10).
internal const int MaxCalendarYear = 9378;
internal const int MaxCalendarMonth = 10;
- internal const int MaxCalendarDay = 10;
- // Persian calendar (year: 1, month: 1, day:1 ) = Gregorian (year: 622, month: 3, day: 21)
+ internal const int MaxCalendarDay = 13;
+
+ // Persian calendar (year: 1, month: 1, day:1 ) = Gregorian (year: 622, month: 3, day: 22)
// This is the minimal Gregorian date that we support in the PersianCalendar.
- internal static DateTime minDate = new DateTime(622, 3, 21);
+ internal static DateTime minDate = new DateTime(622, 3, 22);
internal static DateTime maxDate = DateTime.MaxValue;
/*=================================GetDefaultInstance==========================
@@ -120,6 +113,7 @@ namespace System.Globalization {
}
}
+
/*=================================GetAbsoluteDatePersian==========================
**Action: Gets the Absolute date for the given Persian date. The absolute date means
** the number of days from January 1st, 1 A.D.
@@ -131,57 +125,15 @@ namespace System.Globalization {
long GetAbsoluteDatePersian(int year, int month, int day) {
if (year >= 1 && year <= MaxCalendarYear && month >= 1 && month <= 12)
{
- return DaysUpToPersianYear(year) + DaysToMonth[month-1] + day - 1;
+ int ordinalDay = DaysInPreviousMonths(month) + day - 1; // day is one based, make 0 based since this will be the number of days we add to beginning of year below
+ int approximateDaysFromEpochForYearStart = (int)(CalendricalCalculationsHelper.MeanTropicalYearInDays * (year - 1));
+ long yearStart = CalendricalCalculationsHelper.PersianNewYearOnOrBefore(PersianEpoch + approximateDaysFromEpochForYearStart + ApproximateHalfYear);
+ yearStart += ordinalDay;
+ return yearStart;
}
throw new ArgumentOutOfRangeException(null, Environment.GetResourceString("ArgumentOutOfRange_BadYearMonthDay"));
}
- /*=================================DaysUpToPersianYear==========================
- **Action: Gets the total number of days (absolute date) up to the given Persian Year.
- ** The absolute date means the number of days from January 1st, 1 A.D.
- **Returns: Gets the total number of days (absolute date) up to the given Persian Year.
- **Arguments: PersianYear year value in Persian calendar.
- **Exceptions: None
- **Notes:
- ============================================================================*/
-
- long DaysUpToPersianYear(int PersianYear) {
-
- long NumDays; // number of absolute days
- int NumCycles; // number of 33 year cycles
- int NumYearsLeft; // number of years into 33 year cycle
-
- //
- // Compute the number of 33 years cycles.
- //
- NumCycles = (PersianYear - 1) / DateCycle;
-
- //
- // Compute the number of years left. This is the number of years
- // into the 33 year cycle for the given year.
- //
- NumYearsLeft = (PersianYear-1) % DateCycle;
-
- //
- // Compute the number of absolute days up to the given year.
- //
- NumDays = NumCycles * DaysPerCycle + GregorianOffset;
- while (NumYearsLeft > 0) {
- NumDays += 365;
- // Common year is 365 days, and leap year is 366 days.
- if(IsLeapYear(NumYearsLeft, CurrentEra)) {
- NumDays++;
- }
- NumYearsLeft--;
- }
-
- //
- // Return the number of absolute days.
- //
- return (NumDays);
- }
-
-
static internal void CheckTicksRange(long ticks) {
if (ticks < minDate.Ticks || ticks > maxDate.Ticks) {
throw new ArgumentOutOfRangeException(
@@ -232,23 +184,32 @@ namespace System.Globalization {
}
}
+ static int MonthFromOrdinalDay(int ordinalDay)
+ {
+ Contract.Assert(ordinalDay <= 366);
+ int index = 0;
+ while (ordinalDay > DaysToMonth[index])
+ index++;
+
+ return index;
+ }
+
+ static int DaysInPreviousMonths(int month)
+ {
+ Contract.Assert(1 <= month && month <= 12);
+ --month; // months are one based but for calculations use 0 based
+ return DaysToMonth[month];
+ }
+
/*=================================GetDatePart==========================
**Action: Returns a given date part of this <i>DateTime</i>. This method is used
** to compute the year, day-of-year, month, or day part.
**Returns:
**Arguments:
**Exceptions: ArgumentException if part is incorrect.
- **Notes:
- ** First, we get the absolute date (the number of days from January 1st, 1 A.C) for the given ticks.
- ** Use the formula (((AbsoluteDate - 226894) * 33) / (33 * 365 + 8)) + 1, we can a rough value for the Persian year.
- ** In order to get the exact Persian year, we compare the exact absolute date for PersianYear and (PersianYear + 1).
- ** From here, we can get the correct Persian year.
============================================================================*/
internal int GetDatePart(long ticks, int part) {
- int PersianYear; // Persian year
- int PersianMonth; // Persian month
- int PersianDay; // Persian day
long NumDays; // The calculation buffer in number of days.
CheckTicksRange(ticks);
@@ -259,59 +220,51 @@ namespace System.Globalization {
//
NumDays = ticks / GregorianCalendar.TicksPerDay + 1;
-
//
- // Calculate the appromixate Persian Year from this magic formula.
+ // Calculate the appromixate Persian Year.
//
- PersianYear = (int)(((NumDays - GregorianOffset) * DateCycle) / DaysPerCycle) + 1;
- long daysToPersianYear = DaysUpToPersianYear(PersianYear); // The absoulte date for PersianYear
- long daysOfPersianYear = GetDaysInYear(PersianYear, CurrentEra); // The number of days for (PersianYear+1) year.
+ long yearStart = CalendricalCalculationsHelper.PersianNewYearOnOrBefore(NumDays);
+ int y = (int)(Math.Floor(((yearStart - PersianEpoch) / CalendricalCalculationsHelper.MeanTropicalYearInDays) + 0.5)) + 1;
+ Contract.Assert(y >= 1);
- if (NumDays < daysToPersianYear) {
- daysToPersianYear -= daysOfPersianYear;
- PersianYear--;
- } else if (NumDays == daysToPersianYear) {
- PersianYear--;
- daysToPersianYear -= GetDaysInYear(PersianYear, CurrentEra);
- } else {
- if (NumDays > daysToPersianYear + daysOfPersianYear) {
- daysToPersianYear += daysOfPersianYear;
- PersianYear++;
- }
- }
- if (part == DatePartYear) {
- return (PersianYear);
+ if (part == DatePartYear)
+ {
+ return y;
}
//
// Calculate the Persian Month.
//
- NumDays -= daysToPersianYear;
+ int ordinalDay = (int)(NumDays - CalendricalCalculationsHelper.GetNumberOfDays(this.ToDateTime(y, 1, 1, 0, 0, 0, 0, 1)));
- if (part == DatePartDayOfYear) {
- return ((int)NumDays);
+ if (part == DatePartDayOfYear)
+ {
+ return ordinalDay;
}
- PersianMonth = 0;
- while ((PersianMonth < 12) && (NumDays > DaysToMonth[PersianMonth]))
+ int m = MonthFromOrdinalDay(ordinalDay);
+ Contract.Assert(ordinalDay >= 1);
+ Contract.Assert(m >= 1 && m <= 12);
+ if (part == DatePartMonth)
{
- PersianMonth++;
+ return m;
}
- if (part == DatePartMonth) {
- return (PersianMonth);
- }
+ int d = ordinalDay - DaysInPreviousMonths(m);
+ Contract.Assert(1 <= d);
+ Contract.Assert(d <= 31);
//
// Calculate the Persian Day.
//
- PersianDay = (int)(NumDays - DaysToMonth[PersianMonth-1]);
- if (part == DatePartDay) {
- return (PersianDay);
+ if (part == DatePartDay)
+ {
+ return (d);
}
+
// Incorrect part value.
throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_DateTimeParsing"));
}
@@ -422,18 +375,18 @@ namespace System.Globalization {
return MaxCalendarDay;
}
- if (month == 12) {
- // For the 12th month, leap year has 30 days, and common year has 29 days.
- return (IsLeapYear(year, CurrentEra) ? 30 : 29);
+ int daysInMonth = DaysToMonth[month] - DaysToMonth[month - 1];
+ if ((month == MonthsPerYear) && !IsLeapYear(year))
+ {
+ Contract.Assert(daysInMonth == 30);
+ --daysInMonth;
}
- // Other months first 6 months are 31 and the reset are 30 days.
- return ((month > 6) ? 30 : 31);
+ return daysInMonth;
}
// Returns the number of days in the year given by the year argument for the current era.
//
-
public override int GetDaysInYear(int year, int era) {
CheckYearRange(year, era);
if (year==MaxCalendarYear) {
@@ -533,10 +486,15 @@ namespace System.Globalization {
// year is a leap year, or false if not.
//
-
public override bool IsLeapYear(int year, int era) {
CheckYearRange(year, era);
- return (LeapYears33[year%DateCycle]==1);
+
+ if (year == MaxCalendarYear)
+ {
+ return false;
+ }
+
+ return (GetAbsoluteDatePersian(year + 1, 1, 1) - GetAbsoluteDatePersian(year, 1, 1)) == 366;
}
// Returns the date and time converted to a DateTime value. Throws an exception if the n-tuple is invalid.
@@ -568,8 +526,6 @@ namespace System.Globalization {
private const int DEFAULT_TWO_DIGIT_YEAR_MAX = 1410;
-
-
public override int TwoDigitYearMax {
get {
if (twoDigitYearMax == -1) {
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/bidicategory.cs b/mcs/class/referencesource/mscorlib/system/globalization/bidicategory.cs
index e5c925b7e4d..93088962675 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/bidicategory.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/bidicategory.cs
@@ -33,5 +33,9 @@ namespace System.Globalization {
SegmentSeparator = 16,
Whitespace = 17,
OtherNeutrals = 18,
+ LeftToRightIsolate = 19,
+ RightToLeftIsolate = 20,
+ FirstStrongIsolate = 21,
+ PopDirectionIsolate = 22,
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/calendar.cs b/mcs/class/referencesource/mscorlib/system/globalization/calendar.cs
index 44840fdca6f..9b0ca90b55f 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/calendar.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/calendar.cs
@@ -19,7 +19,7 @@ namespace System.Globalization {
// , 46, 8, 20, 3, 1999) in the Gregorian calendar. An implementation of
// Calendar can map any DateTime value to such an n-tuple and vice versa. The
// DateTimeFormat class can map between such n-tuples and a textual
- // representation such as "8:46 AM [....] 20th 1999 AD".
+ // representation such as "8:46 AM Microsoft 20th 1999 AD".
//
// Most calendars identify a year which begins the current era. There may be any
// number of previous eras. The Calendar class identifies the eras as enumerated
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/calendardata.cs b/mcs/class/referencesource/mscorlib/system/globalization/calendardata.cs
index 8f023723662..31fb7d6d256 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/calendardata.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/calendardata.cs
@@ -24,7 +24,7 @@ namespace System.Globalization
// properties are available without locales using CalendarData.GetCalendar(int)
// StructLayout is needed here otherwise compiler can re-arrange the fields.
- // We have to keep this in-[....] with the definition in calendardata.h
+ // We have to keep this in-sync with the definition in calendardata.h
//
// WARNING WARNING WARNING
//
@@ -270,6 +270,14 @@ namespace System.Globalization
case CalendarId.JAPANESELUNISOLAR:
this.saEraNames = JapaneseCalendar.EraNames();
break;
+
+ case CalendarId.PERSIAN:
+ if (this.saEraNames == null || this.saEraNames.Length == 0 || String.IsNullOrEmpty(this.saEraNames[0]))
+ {
+ this.saEraNames = new String[] { "\x0647\x002e\x0634" };
+ }
+ break;
+
default:
// Most calendars are just "A.D."
this.saEraNames = Invariant.saEraNames;
@@ -324,6 +332,14 @@ namespace System.Globalization
this.saAbbrevEraNames[0] = this.saEraNames[0];
}
break;
+
+ case CalendarId.PERSIAN:
+ if (this.saAbbrevEraNames == null || this.saAbbrevEraNames.Length == 0 || String.IsNullOrEmpty(this.saAbbrevEraNames[0]))
+ {
+ this.saAbbrevEraNames = this.saEraNames;
+ }
+ break;
+
default:
// Most calendars just use the full name
this.saAbbrevEraNames = this.saEraNames;
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/compareinfo.cs b/mcs/class/referencesource/mscorlib/system/globalization/compareinfo.cs
index 4c428a5061f..800475299f2 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/compareinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/compareinfo.cs
@@ -122,11 +122,10 @@ namespace System.Globalization {
this.m_name = culture.m_name;
this.m_sortName = culture.SortName;
-#if !FEATURE_CORECLR && !MONO
+#if !MONO
IntPtr handleOrigin;
this.m_dataHandle = InternalInitSortHandle(m_sortName, out handleOrigin);
this.m_handleOrigin = handleOrigin;
-#endif
}
/*=================================GetCompareInfo==========================
@@ -283,11 +282,11 @@ namespace System.Globalization {
ci = CultureInfo.GetCultureInfo(m_name);
}
this.m_sortName = ci.SortName;
-#if !FEATURE_CORECLR && !MONO
+#if !MONO
IntPtr handleOrigin;
this.m_dataHandle = InternalInitSortHandle(m_sortName, out handleOrigin);
this.m_handleOrigin = handleOrigin;
-#endif
+
}
[OnDeserialized]
@@ -1228,6 +1227,35 @@ namespace System.Globalization {
return (this.Name.GetHashCode());
}
+ //
+ // return hash value for the string according to the input CompareOptions
+ //
+
+ public virtual int GetHashCode(string source, CompareOptions options)
+ {
+ if (source == null)
+ {
+ throw new ArgumentNullException("source");
+ }
+
+ if (options == CompareOptions.Ordinal)
+ {
+ return source.GetHashCode();
+ }
+
+ if (options == CompareOptions.OrdinalIgnoreCase)
+ {
+ return TextInfo.GetHashCodeOrdinalIgnoreCase(source);
+ }
+
+ //
+ // GetHashCodeOfString does more parameters validation. basically will throw when
+ // having Ordinal, OrdinalIgnoreCase and StringSort
+ //
+
+ return GetHashCodeOfString(source, options, false, 0);
+ }
+
////////////////////////////////////////////////////////////////////////
//
// GetHashCodeOfString
@@ -1313,13 +1341,14 @@ namespace System.Globalization {
}
#endif
-#if !FEATURE_CORECLR && !MONO
+#if !MONO
[System.Security.SecuritySafeCritical]
internal static IntPtr InternalInitSortHandle(String localeName, out IntPtr handleOrigin)
{
return NativeInternalInitSortHandle(localeName, out handleOrigin);
}
+#if !FEATURE_CORECLR
private const int SORT_VERSION_WHIDBEY = 0x00001000;
private const int SORT_VERSION_V4 = 0x00060101;
@@ -1373,13 +1402,13 @@ namespace System.Globalization {
[SuppressUnmanagedCodeSecurity]
private static extern uint InternalGetSortVersion();
+#endif
[System.Security.SecurityCritical]
[ResourceExposure(ResourceScope.None)]
[DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
[SuppressUnmanagedCodeSecurity]
private static extern IntPtr NativeInternalInitSortHandle(String localeName, out IntPtr handleOrigin);
-#endif
-#if !MONO
+
// Get a locale sensitive sort hash code from native code -- COMNlsInfo::InternalGetGlobalizedHashCode
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/culturedata.cs b/mcs/class/referencesource/mscorlib/system/globalization/culturedata.cs
index e47323b947c..ee33b115b15 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/culturedata.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/culturedata.cs
@@ -55,7 +55,7 @@ namespace System.Globalization
//
// StructLayout is needed here otherwise compiler can re-arrange the fields.
- // We have to keep this in-[....] with the definition in comnlsinfo.h
+ // We have to keep this in-sync with the definition in comnlsinfo.h
//
// WARNING WARNING WARNING
//
@@ -63,9 +63,7 @@ namespace System.Globalization
// WARNING: The type loader will rearrange class member offsets so the mscorwks!CultureDataBaseObject
// WARNING: must be manually structured to match the true loaded class layout
//
-#if !FEATURE_CORECLR
[FriendAccessAllowed]
-#endif
internal class CultureData
{
const int undef = -1;
@@ -154,13 +152,12 @@ namespace System.Globalization
private CalendarData[] calendars; // Store for specific calendar data
// Text information
-#if !FEATURE_CORECLR
private int iReadingLayout = undef; // Reading layout data
// 0 - Left to right (eg en-US)
// 1 - Right to left (eg arabic locales)
// 2 - Vertical top to bottom with columns to the left and also left to right (ja-JP locales)
// 3 - Vertical top to bottom with columns proceeding to the right
-#endif
+
private String sTextInfo; // Text info name to use for custom
private String sCompareInfo; // Compare info name (including sorting key) to use if custom
private String sScripts; // Typical Scripts for this locale (latn;cyrl; etc)
@@ -458,9 +455,8 @@ namespace System.Globalization
invariant.calendars[0] = CalendarData.Invariant;
// Text information
- #if !FEATURE_CORECLR
invariant.iReadingLayout = 0; // Reading Layout = RTL
- #endif
+
invariant.sTextInfo = ""; // Text info name to use for custom
invariant.sCompareInfo = ""; // Compare info name (including sorting key) to use if custom
invariant.sScripts = "Latn;"; // Typical Scripts for this locale (latn,cyrl, etc)
@@ -511,9 +507,7 @@ namespace System.Globalization
// Cache of cultures we've already looked up
private static volatile Dictionary<String, CultureData> s_cachedCultures;
-#if !FEATURE_CORECLR
[FriendAccessAllowed]
-#endif
internal static CultureData GetCultureData(String cultureName, bool useUserOverride)
{
// First do a shortcut for Invariant
@@ -737,13 +731,14 @@ namespace System.Globalization
return true;
}
- // Cache of regions we've already looked up
- private static volatile Dictionary<String, CultureData> s_cachedRegions;
-
#if FEATURE_WIN32_REGISTRY
private static String s_RegionKey = @"System\CurrentControlSet\Control\Nls\RegionMapping";
#endif // FEATURE_WIN32_REGISTRY
+#endif // !FEATURE_CORECLR
+ // Cache of regions we've already looked up
+ private static volatile Dictionary<String, CultureData> s_cachedRegions;
+
[System.Security.SecurityCritical] // auto-generated
internal static CultureData GetCultureDataForRegion(String cultureName, bool useUserOverride)
{
@@ -788,6 +783,7 @@ namespace System.Globalization
}
}
+#if !FEATURE_CORECLR
//
// Not found in the hash table, look it up the hard way
//
@@ -835,7 +831,7 @@ namespace System.Globalization
retVal = GetCultureData(RegionNames[cultureName], useUserOverride);
}
}
-
+#endif // !FEATURE_CORECLR
// If not found in the hard coded table we'll have to find a culture that works for us
if (retVal == null || (retVal.IsNeutralCulture == true))
{
@@ -877,7 +873,6 @@ namespace System.Globalization
// Return the found culture to use, null, or the neutral culture.
return retVal;
}
-#endif
#if FEATURE_USE_LCID
// Obtain locale name from LCID
@@ -965,7 +960,6 @@ namespace System.Globalization
#endif
}
-#if !FEATURE_CORECLR
[System.Security.SecuritySafeCritical] // auto-generated
internal static CultureInfo[] GetCultures(CultureTypes types)
{
@@ -1054,7 +1048,7 @@ namespace System.Globalization
}
}
-
+#if !FEATURE_CORECLR
internal bool IsReplacementCulture
{
get
@@ -1329,7 +1323,7 @@ namespace System.Globalization
#if !FEATURE_CORECLR
if (IsIncorrectNativeLanguageForSinhala())
{
- // work around bug in Windows 7 for native name of Sinhala
+ // work around
this.sNativeDisplayName ="\x0dc3\x0dd2\x0d82\x0dc4\x0dbd (\x0DC1\x0DCA\x200D\x0DBB\x0DD3\x0020\x0DBD\x0D82\x0D9A\x0DCF)";
}
else
@@ -1458,7 +1452,7 @@ namespace System.Globalization
#if !FEATURE_CORECLR
if (IsIncorrectNativeLanguageForSinhala())
{
- // work around bug in Windows 7 for native language of Sinhala
+ // work around
this.sNativeLanguage = "\x0dc3\x0dd2\x0d82\x0dc4\x0dbd";
}
else
@@ -2054,10 +2048,7 @@ namespace System.Globalization
)
{
// Try to get the short times from the OS/culture.dll
- String[] shortTimes = null;
-#if !__APPLE__
- shortTimes = DoEnumShortTimeFormats();
-#endif // !__APPLE__
+ String[] shortTimes = DoEnumShortTimeFormats();
if (shortTimes == null || shortTimes.Length == 0)
{
@@ -2068,12 +2059,6 @@ namespace System.Globalization
shortTimes = DeriveShortTimesFromLong();
}
- /* The above logic doesn't make sense on Mac, since the OS can provide us a "short time pattern".
- * currently this is the 4th element in the array returned by LongTimes. We'll add this to our array
- * if it doesn't exist.
- */
- shortTimes = AdjustShortTimesForMac(shortTimes);
-
// Found short times, use them
this.saShortTimes = shortTimes;
}
@@ -2081,45 +2066,6 @@ namespace System.Globalization
}
}
- private string[] AdjustShortTimesForMac(string[] shortTimes)
- {
-#if __APPLE__
- /*
- * NOTE: This code depends on the data from the OS being returned in a *specific* order. The
- * short time pattern must be the 4th element in the 4 element array returned by the data. If
- * change the way the data is returned from the OS be sure to update this code.
- */
-
- string[] longTimes = (string[])LongTimes.Clone();
- Contract.Assert(longTimes.Length == 4, "[System.Globalization.CultureData] LongTimes does not have exactly 4");
-
- if (longTimes.Length == 4) {
- string shortTimePattern = longTimes[3];
- int foundIndex = -1;
- for (int i = 0; i < shortTimes.Length; i++) {
- if (shortTimePattern.Equals(shortTimes[i])) {
- foundIndex = i;
- break;
- }
- }
-
- if (foundIndex == -1) {
- // The OS short time didn't exist in the list we constructed, add it.
- string[] t = new string[shortTimes.Length + 1];
- t[0] = shortTimePattern;
- Array.Copy(shortTimes, 0, t, 1, shortTimes.Length);
- shortTimes = t;
- } else {
- // The OS short time did exist, move it to the front.
- string t = shortTimes[0];
- shortTimes[0] = shortTimes[foundIndex];
- shortTimes[foundIndex] = t;
- }
- }
-#endif // __APPLE__
- return shortTimes;
- }
-
private string[] DeriveShortTimesFromLong()
{
// Our logic is to look for h,H,m,s,t. If we find an s, then we check the string
@@ -2507,7 +2453,6 @@ namespace System.Globalization
///////////////////
// IsRightToLeft
-#if !FEATURE_CORECLR
internal bool IsRightToLeft
{
get
@@ -2542,7 +2487,6 @@ namespace System.Globalization
return (this.iReadingLayout);
}
}
-#endif // !FEATURE_CORECLR
// The TextInfo name never includes that alternate sort and is always specific
// For customs, it uses the SortLocale (since the textinfo is not exposed in Win7)
@@ -3576,13 +3520,10 @@ namespace System.Globalization
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private static extern String[] nativeEnumTimeFormats(String localeName, uint dwFlags, bool useUserOverride);
-#if !FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
[SuppressUnmanagedCodeSecurityAttribute()]
[ResourceExposure(ResourceScope.None)]
[DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
internal static extern int nativeEnumCultureNames(int cultureTypes, ObjectHandleOnStack retStringArray);
-#endif
-
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/cultureinfo.cs b/mcs/class/referencesource/mscorlib/system/globalization/cultureinfo.cs
index 292e4cb259a..b3cf1c0cb2e 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/cultureinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/cultureinfo.cs
@@ -14,7 +14,7 @@
// as well as methods for common operations such as printing
// dates and sorting strings.
//
-// Date: [....] 31, 1999
+// Date: Microsoft 31, 1999
//
//
// !!!! NOTE WHEN CHANGING THIS CLASS !!!!
@@ -155,7 +155,7 @@ namespace System.Globalization {
private static volatile Hashtable s_LcidCachedCultures;
private static volatile Hashtable s_NameCachedCultures;
-#if !FEATURE_CORECLR
+#if FEATURE_APPX
// When running under AppX, we use this to get some information about the language list
[SecurityCritical]
private static volatile WindowsRuntimeResourceManagerBase s_WindowsRuntimeResourceManager;
@@ -245,7 +245,7 @@ namespace System.Globalization {
return (temp);
}
-#if !FEATURE_CORECLR
+#if FEATURE_APPX
[SecuritySafeCritical]
internal static CultureInfo GetCultureInfoForUserPreferredLanguageInAppX()
{
@@ -291,6 +291,28 @@ namespace System.Globalization {
return toReturn;
}
+
+ [SecuritySafeCritical]
+ internal static bool SetCultureInfoForUserPreferredLanguageInAppX(CultureInfo ci)
+ {
+ // If running within a compilation process (mscorsvw.exe, for example), it is illegal to
+ // load any non-mscorlib assembly for execution. Since WindowsRuntimeResourceManager lives
+ // in System.Runtime.WindowsRuntime, caller will need to fall back to default Win32 value,
+ // which should be fine because we should only ever need to access FX resources during NGEN.
+ // FX resources are always loaded from satellite assemblies - even in AppX processes (see the
+ // comments in code:System.Resources.ResourceManager.SetAppXConfiguration for more details).
+ if (AppDomain.IsAppXNGen)
+ {
+ return false;
+ }
+
+ if (s_WindowsRuntimeResourceManager == null)
+ {
+ s_WindowsRuntimeResourceManager = ResourceManager.GetWinRTResourceManager();
+ }
+
+ return s_WindowsRuntimeResourceManager.SetGlobalResourceContextDefaultCulture(ci);
+ }
#endif
////////////////////////////////////////////////////////////////////////
@@ -300,9 +322,6 @@ namespace System.Globalization {
////////////////////////////////////////////////////////////////////////
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public CultureInfo(String name) : this(name, true) {
}
@@ -673,12 +692,49 @@ namespace System.Globalization {
public static CultureInfo CurrentCulture
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
Contract.Ensures(Contract.Result<CultureInfo>() != null);
+
+#if !FEATURE_CORECLR
return Thread.CurrentThread.CurrentCulture;
+#else
+ // In the case of CoreCLR, Thread.m_CurrentCulture and
+ // Thread.m_CurrentUICulture are thread static so as not to let
+ // CultureInfo objects leak across AppDomain boundaries. The
+ // fact that these fields are thread static introduces overhead
+ // in accessing them (through Thread.CurrentCulture). There is
+ // also overhead in accessing Thread.CurrentThread. In this
+ // case, we can avoid the overhead of Thread.CurrentThread
+ // because these fields are thread static, and so do not
+ // require a Thread instance to be accessed.
+#if FEATURE_APPX
+ if(AppDomain.IsAppXModel()) {
+ CultureInfo culture = GetCultureInfoForUserPreferredLanguageInAppX();
+ if (culture != null)
+ return culture;
+ }
+#endif
+ return Thread.m_CurrentCulture ??
+ s_DefaultThreadCurrentCulture ??
+ s_userDefaultCulture ??
+ UserDefaultCulture;
+#endif
+ }
+
+ set {
+#if FEATURE_APPX
+ if (value == null) {
+ throw new ArgumentNullException("value");
+ }
+
+ if (AppDomain.IsAppXModel()) {
+ if (SetCultureInfoForUserPreferredLanguageInAppX(value)) {
+ // successfully set the culture, otherwise fallback to legacy path
+ return;
+ }
+ }
+#endif
+ Thread.CurrentThread.CurrentCulture = value;
}
}
@@ -734,12 +790,49 @@ namespace System.Globalization {
public static CultureInfo CurrentUICulture {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
Contract.Ensures(Contract.Result<CultureInfo>() != null);
+
+#if !FEATURE_CORECLR
return Thread.CurrentThread.CurrentUICulture;
+#else
+ // In the case of CoreCLR, Thread.m_CurrentCulture and
+ // Thread.m_CurrentUICulture are thread static so as not to let
+ // CultureInfo objects leak across AppDomain boundaries. The
+ // fact that these fields are thread static introduces overhead
+ // in accessing them (through Thread.CurrentCulture). There is
+ // also overhead in accessing Thread.CurrentThread. In this
+ // case, we can avoid the overhead of Thread.CurrentThread
+ // because these fields are thread static, and so do not
+ // require a Thread instance to be accessed.
+#if FEATURE_APPX
+ if(AppDomain.IsAppXModel()) {
+ CultureInfo culture = GetCultureInfoForUserPreferredLanguageInAppX();
+ if (culture != null)
+ return culture;
+ }
+#endif
+ return Thread.m_CurrentUICulture ??
+ s_DefaultThreadCurrentUICulture ??
+ s_userDefaultUICulture ??
+ UserDefaultUICulture;
+#endif
+ }
+
+ set {
+#if FEATURE_APPX
+ if (value == null) {
+ throw new ArgumentNullException("value");
+ }
+
+ if (AppDomain.IsAppXModel()) {
+ if (SetCultureInfoForUserPreferredLanguageInAppX(value)) {
+ // successfully set the culture, otherwise fallback to legacy path
+ return;
+ }
+ }
+#endif
+ Thread.CurrentThread.CurrentUICulture = value;
}
}
@@ -844,9 +937,6 @@ namespace System.Globalization {
public static CultureInfo InvariantCulture {
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
Contract.Ensures(Contract.Result<CultureInfo>() != null);
return (s_InvariantCultureInfo);
@@ -907,9 +997,6 @@ namespace System.Globalization {
#if FEATURE_USE_LCID
public virtual int LCID {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
return (this.m_cultureData.ILANGUAGE);
}
@@ -1231,9 +1318,6 @@ namespace System.Globalization {
//
////////////////////////////////////////////////////////////////////////
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override int GetHashCode()
{
return (this.Name.GetHashCode() + this.CompareInfo.GetHashCode());
@@ -1421,7 +1505,6 @@ namespace System.Globalization {
return (new HebrewCalendar());
case Calendar.CAL_UMALQURA:
return (new UmAlQuraCalendar());
-#if !FEATURE_ONLY_CORE_CALENDARS
case Calendar.CAL_PERSIAN:
return (new PersianCalendar());
case Calendar.CAL_CHINESELUNISOLAR:
@@ -1432,7 +1515,6 @@ namespace System.Globalization {
return (new KoreanLunisolarCalendar());
case Calendar.CAL_TAIWANLUNISOLAR:
return (new TaiwanLunisolarCalendar());
-#endif // !FEATURE_ONLY_CORE_CALENDARS
}
return (new GregorianCalendar());
}
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/datetimeformat.cs b/mcs/class/referencesource/mscorlib/system/globalization/datetimeformat.cs
index 5f2f6943546..9553307f73b 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/datetimeformat.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/datetimeformat.cs
@@ -709,11 +709,11 @@ namespace System {
#if FEATURE_CORECLR
offset = TimeSpan.Zero;
#else // FEATURE_CORECLR
- // This code path points to a bug in user code. It would make sense to return a 0 offset in this case.
- // However, because it was only possible to detect this in Whidbey, there is user code that takes a
- // dependency on being serialize a UTC DateTime using the 'z' format, and it will work almost all the
- // time if it is offset by an incorrect conversion to local time when parsed. Therefore, we need to
- // explicitly emit the local time offset, which we can do by removing the UTC flag.
+ // This code path points to a
+
+
+
+
InvalidFormatForUtc(format, dateTime);
dateTime = DateTime.SpecifyKind(dateTime, DateTimeKind.Local);
offset = TimeZoneInfo.GetLocalUtcOffset(dateTime, TimeZoneInfoOptions.NoThrowOnInvalidTime);
@@ -931,6 +931,7 @@ namespace System {
case Calendar.CAL_HEBREW:
case Calendar.CAL_JULIAN:
case Calendar.CAL_UMALQURA:
+ case Calendar.CAL_PERSIAN:
timeOnlySpecialCase = true;
dtfi = DateTimeFormatInfo.InvariantInfo;
break;
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/datetimeparse.cs b/mcs/class/referencesource/mscorlib/system/globalization/datetimeparse.cs
index 530bd396504..4bc6b82254e 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/datetimeparse.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/datetimeparse.cs
@@ -597,12 +597,7 @@ new DS[] { DS.ERROR, DS.TX_NNN, DS.TX_NNN, DS.TX_NNN, DS.ERROR, DS.ERROR,
// some raw date/time information in raw.
//
[System.Security.SecuritySafeCritical] // auto-generated
- private static Boolean Lex(
-#if !FEATURE_CORECLR
- DS dps, ref __DTString str, ref DateTimeToken dtok, ref DateTimeRawInfo raw, ref DateTimeResult result, ref DateTimeFormatInfo dtfi, DateTimeStyles styles)
-#else
- DS dps, ref __DTString str, ref DateTimeToken dtok, ref DateTimeRawInfo raw, ref DateTimeResult result, ref DateTimeFormatInfo dtfi)
-#endif
+ private static Boolean Lex(DS dps, ref __DTString str, ref DateTimeToken dtok, ref DateTimeRawInfo raw, ref DateTimeResult result, ref DateTimeFormatInfo dtfi, DateTimeStyles styles)
{
TokenType tokenType;
@@ -616,15 +611,15 @@ new DS[] { DS.ERROR, DS.TX_NNN, DS.TX_NNN, DS.TX_NNN, DS.ERROR, DS.ERROR,
str.GetRegularToken(out tokenType, out tokenValue, dtfi);
#if _LOGGING
- // <STRIP>
- // Builds with _LOGGING defined (x86dbg, amd64chk, etc) support tracing
- // Set the following internal-only/unsupported environment variables to enable DateTime tracing to the console:
- //
- // COMPLUS_LogEnable=1
- // COMPLUS_LogToConsole=1
- // COMPLUS_LogLevel=9
- // COMPLUS_ManagedLogFacility=0x00001000
- // </STRIP>
+ // <
+
+
+
+
+
+
+
+
if (_tracingEnabled) {
BCLDebug.Trace("DATETIME", "[DATETIME] Lex({0})\tpos:{1}({2}), {3}, DS.{4}", Hex(str.Value),
str.Index, Hex(str.m_current), tokenType, dps);
@@ -760,16 +755,19 @@ new DS[] { DS.ERROR, DS.TX_NNN, DS.TX_NNN, DS.TX_NNN, DS.ERROR, DS.ERROR,
if (raw.timeMark == TM.NotSet) {
raw.timeMark = (sep == TokenType.SEP_Am ? TM.AM : TM.PM);
dtok.dtt = DTT.NumAmpm;
-#if !FEATURE_CORECLR && !MONO
// Fix AM/PM parsing case, e.g. "1/10 5 AM"
- if (enableAmPmParseAdjustment && dps == DS.D_NN)
+ if (dps == DS.D_NN
+#if !FEATURE_CORECLR && !MONO
+ && enableAmPmParseAdjustment
+#endif
+ )
{
if (!ProcessTerminaltState(DS.DX_NN, ref result, ref styles, ref raw, dtfi))
{
return false;
}
}
-#endif
+
raw.AddNumber(dtok.num);
} else {
result.SetFailure(ParseFailureKind.Format, "Format_BadDateTime", null);
@@ -2350,11 +2348,7 @@ new DS[] { DS.ERROR, DS.TX_NNN, DS.TX_NNN, DS.TX_NNN, DS.ERROR, DS.ERROR,
// Call the lexer to get the next token.
//
// If we find a era in Lex(), the era value will be in raw.era.
-#if !FEATURE_CORECLR
if (!Lex(dps, ref str, ref dtok, ref raw, ref result, ref dtfi, styles))
-#else
- if (!Lex(dps, ref str, ref dtok, ref raw, ref result, ref dtfi))
-#endif
{
TPTraceExit("0000", dps);
return false;
@@ -3703,14 +3697,21 @@ new DS[] { DS.ERROR, DS.TX_NNN, DS.TX_NNN, DS.TX_NNN, DS.ERROR, DS.ERROR,
// Otherwise it is unspecified and we consume no characters
break;
case ':':
- if (!str.Match(dtfi.TimeSeparator)) {
+ // We match the separator in time pattern with the character in the time string if both equal to ':' or the date separator is matching the characters in the date string
+ // We have to exclude the case when the time separator is more than one character and starts with ':' something like "::" for instance.
+ if (((dtfi.TimeSeparator.Length > 1 && dtfi.TimeSeparator[0] == ':') || !str.Match(':')) &&
+ !str.Match(dtfi.TimeSeparator)) {
// A time separator is expected.
result.SetFailure(ParseFailureKind.Format, "Format_BadDateTime", null);
return false;
}
break;
case '/':
- if (!str.Match(dtfi.DateSeparator)) {
+ // We match the separator in date pattern with the character in the date string if both equal to '/' or the date separator is matching the characters in the date string
+ // We have to exclude the case when the date separator is more than one character and starts with '/' something like "//" for instance.
+ if (((dtfi.DateSeparator.Length > 1 && dtfi.DateSeparator[0] == '/') || !str.Match('/')) &&
+ !str.Match(dtfi.DateSeparator))
+ {
// A date separator is expected.
result.SetFailure(ParseFailureKind.Format, "Format_BadDateTime", null);
return false;
@@ -4103,15 +4104,15 @@ new DS[] { DS.ERROR, DS.TX_NNN, DS.TX_NNN, DS.TX_NNN, DS.ERROR, DS.ERROR,
}
}
- // <STRIP>
- // Builds with _LOGGING defined (x86dbg, amd64chk, etc) support tracing
- // Set the following internal-only/unsupported environment variables to enable DateTime tracing to the console:
- //
- // COMPLUS_LogEnable=1
- // COMPLUS_LogToConsole=1
- // COMPLUS_LogLevel=9
- // COMPLUS_ManagedLogFacility=0x00001000
- // </STRIP>
+ // <
+
+
+
+
+
+
+
+
[Pure]
[Conditional("_LOGGING")]
[ResourceExposure(ResourceScope.None)]
@@ -4982,7 +4983,7 @@ Start:
YearNumberToken = 2, // The number which is considered as year number, which has 3 or more digits. E.g. "2003"
Am = 3, // AM timemark. E.g. "AM"
Pm = 4, // PM timemark. E.g. "PM"
- MonthToken = 5, // A word (or words) that represents a month name. E.g. "[....]"
+ MonthToken = 5, // A word (or words) that represents a month name. E.g. "Microsoft"
EndOfString = 6, // End of string
DayOfWeekToken = 7, // A word (or words) that represents a day of week name. E.g. "Monday" or "Mon"
TimeZoneToken = 8, // A word that represents a timezone name. E.g. "GMT"
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/eastasianlunisolarcalendar.cs b/mcs/class/referencesource/mscorlib/system/globalization/eastasianlunisolarcalendar.cs
index cab202119c2..893503413c9 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/eastasianlunisolarcalendar.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/eastasianlunisolarcalendar.cs
@@ -303,7 +303,7 @@ namespace System.Globalization {
// convert solar day into lunar day.
// subtract off the beginning part of the solar year which is not
// part of the lunar year. since this part is always in Jan or Feb,
- // we don't need to handle Leap Year (LY only affects [....]
+ // we don't need to handle Leap Year (LY only affects Microsoft
// and later).
nLunarDay -= DaysToMonth365[nJan1Month-1];
nLunarDay -= (nJan1Date - 1);
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/hebrewnumber.cs b/mcs/class/referencesource/mscorlib/system/globalization/hebrewnumber.cs
index 8c96b12e3ea..4bb6202e695 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/hebrewnumber.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/hebrewnumber.cs
@@ -140,7 +140,7 @@ namespace System.Globalization {
cTens = '\x05db'; // Hebrew Letter Kaf
break;
case ( 3 ) :
- cTens = '\x05dc'; // Hebrew Letter ----d
+ cTens = '\x05dc'; // Hebrew Letter Lamed
break;
case ( 4 ) :
cTens = '\x05de'; // Hebrew Letter Mem
@@ -256,7 +256,7 @@ namespace System.Globalization {
new HebrewValue(HebrewToken.Digit10, 10) , // '\x05d9; // Hebrew Letter Yod
new HebrewValue(HebrewToken.Invalid, -1) , // '\x05da;
new HebrewValue(HebrewToken.Digit10, 20) , // '\x05db; // Hebrew Letter Kaf
- new HebrewValue(HebrewToken.Digit10, 30) , // '\x05dc; // Hebrew Letter ----d
+ new HebrewValue(HebrewToken.Digit10, 30) , // '\x05dc; // Hebrew Letter Lamed
new HebrewValue(HebrewToken.Invalid, -1) , // '\x05dd;
new HebrewValue(HebrewToken.Digit10, 40) , // '\x05de; // Hebrew Letter Mem
new HebrewValue(HebrewToken.Invalid, -1) , // '\x05df;
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/japanesecalendar.cs b/mcs/class/referencesource/mscorlib/system/globalization/japanesecalendar.cs
index 9723954f3d1..4e366870361 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/japanesecalendar.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/japanesecalendar.cs
@@ -86,10 +86,8 @@ namespace System.Globalization {
// init.
static internal volatile EraInfo[] japaneseEraInfo;
-#if !__APPLE__
private const string c_japaneseErasHive = @"System\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras";
private const string c_japaneseErasHivePermissionList = @"HKEY_LOCAL_MACHINE\" + c_japaneseErasHive;
-#endif
//
// Read our era info
@@ -119,11 +117,9 @@ namespace System.Globalization {
// See if we need to build it
if (japaneseEraInfo == null)
{
-#if !__APPLE__
-
// See if we have any eras from the registry
japaneseEraInfo = GetErasFromRegistry();
-#endif
+
// See if we have to use the built-in eras
if (japaneseEraInfo == null)
{
@@ -147,7 +143,6 @@ namespace System.Globalization {
return japaneseEraInfo;
}
-#if !__APPLE__
//
// GetErasFromRegistry()
//
@@ -337,7 +332,6 @@ namespace System.Globalization {
return new EraInfo( 0, year, month, day, year - 1, 1, 0,
names[0], names[1], names[3]);
}
-#endif // !__APPLE__
internal static volatile Calendar s_defaultInstance;
internal GregorianCalendarHelper helper;
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/regioninfo.cs b/mcs/class/referencesource/mscorlib/system/globalization/regioninfo.cs
index 1694c76bad3..16503897c75 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/regioninfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/regioninfo.cs
@@ -14,7 +14,7 @@
// preferences of the user and does not depend on the user's
// language or culture.
//
-// Date: [....] 31, 1999
+// Date: Microsoft 31, 1999
//
////////////////////////////////////////////////////////////////////////////
@@ -74,12 +74,6 @@ namespace System.Globalization {
Contract.EndContractBlock();
-#if FEATURE_CORECLR
- //
- // For CoreCLR we only want the region names that are full culture names
- //
- this.m_cultureData = CultureData.GetCultureData(name,true);
-#else
//
// First try it as an entire culture. We must have user override as true here so
// that we can pick up custom cultures *before* built-in ones (if they want to
@@ -87,7 +81,7 @@ namespace System.Globalization {
//
this.m_cultureData = CultureData.GetCultureDataForRegion(name,true);
// this.m_name = name.ToUpper(CultureInfo.InvariantCulture);
-#endif // FEATURE_CORECLR
+
if (this.m_cultureData == null)
throw new ArgumentException(
String.Format(
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/stringinfo.cs b/mcs/class/referencesource/mscorlib/system/globalization/stringinfo.cs
index efd5cada4f9..f39ac8c43e0 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/stringinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/stringinfo.cs
@@ -11,7 +11,7 @@
// A writing system is the collection of scripts and
// orthographic rules required to represent a language as text.
//
-// Date: [....] 31, 1999
+// Date: Microsoft 31, 1999
//
////////////////////////////////////////////////////////////////////////////
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/taiwancalendar.cs b/mcs/class/referencesource/mscorlib/system/globalization/taiwancalendar.cs
index 4e93594e9cb..45b0322f8ce 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/taiwancalendar.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/taiwancalendar.cs
@@ -8,8 +8,8 @@ namespace System.Globalization {
using System;
using System.Diagnostics.CodeAnalysis;
using System.Diagnostics.Contracts;
- /* SSS_DROP_BEGIN */ /* SSS_WARNINGS_OFF */
- /*=================================TaiwanCalendar==========================
+ /*
+
**
** Taiwan calendar is based on the Gregorian calendar. And the year is an offset to Gregorian calendar.
** That is,
@@ -21,7 +21,7 @@ namespace System.Globalization {
** Gregorian 1912/01/01 9999/12/31
** Taiwan 01/01/01 8088/12/31
============================================================================*/
- /* SSS_WARNINGS_ON */ /* SSS_DROP_END */
+
[System.Runtime.InteropServices.ComVisible(true)]
[Serializable] public class TaiwanCalendar: Calendar {
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/textelementenumerator.cs b/mcs/class/referencesource/mscorlib/system/globalization/textelementenumerator.cs
index 503a249dfd3..57b17ae0704 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/textelementenumerator.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/textelementenumerator.cs
@@ -9,7 +9,7 @@
//
// Purpose:
//
-// Date: [....] 31, 1999
+// Date: Microsoft 31, 1999
//
////////////////////////////////////////////////////////////////////////////
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/textinfo.cs b/mcs/class/referencesource/mscorlib/system/globalization/textinfo.cs
index 52a4458b58f..6b687e166ef 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/textinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/textinfo.cs
@@ -11,7 +11,7 @@
// A writing system is the collection of scripts and
// orthographic rules required to represent a language as text.
//
-// Date: [....] 31, 1999
+// Date: Microsoft 31, 1999
//
////////////////////////////////////////////////////////////////////////////
@@ -249,14 +249,8 @@ namespace System.Globalization {
[ResourceConsumption(ResourceScope.Process, ResourceScope.Process)]
internal static unsafe int CompareOrdinalIgnoreCase(String str1, String str2)
{
-#if __APPLE__
- // ToUpper (invariant) here before going to the PAL since Mac OS 10.4 does this step
- // wrong (CFCompareString uses the current OS locale and does not let you specify a specific locale)
- return String.CompareOrdinal(str1.ToUpper(CultureInfo.InvariantCulture), str2.ToUpper(CultureInfo.InvariantCulture));
-#else
// Compare the whole string and ignore case.
return InternalCompareStringOrdinalIgnoreCase(str1, 0, str2, 0, str1.Length, str2.Length);
-#endif
}
// This function doesn't check arguments. Please do check in the caller.
@@ -268,13 +262,7 @@ namespace System.Globalization {
{
Contract.Assert(strA.Length >= indexA + lengthA, "[TextInfo.CompareOrdinalIgnoreCaseEx] Caller should've validated strA.Length >= indexA + lengthA");
Contract.Assert(strB.Length >= indexB + lengthB, "[TextInfo.CompareOrdinalIgnoreCaseEx] Caller should've validated strB.Length >= indexB + lengthB");
-#if __APPLE__
- // ToUpper (invariant) here before going to the PAL since Mac OS 10.4 does this step
- // wrong (CFCompareString uses the current OS locale and does not let you specify a specific locale)
- return String.CompareOrdinal(strA.ToUpper(CultureInfo.InvariantCulture), indexA, strB.ToUpper(CultureInfo.InvariantCulture), indexB, Math.Max(lengthA, lengthB));
-#else
return InternalCompareStringOrdinalIgnoreCase(strA, indexA, strB, indexB, lengthA, lengthB);
-#endif
}
[ResourceExposure(ResourceScope.None)]
@@ -291,17 +279,12 @@ namespace System.Globalization {
return 0;
}
-#if __APPLE__
- string sourceUpper = source.ToUpper(CultureInfo.InvariantCulture);
- string valueUpper = value.ToUpper(CultureInfo.InvariantCulture);
-#else
// fast path
#if !MONO
int ret = -1;
if (TryFastFindStringOrdinalIgnoreCase(Microsoft.Win32.Win32Native.FIND_FROMSTART, source, startIndex, value, count, ref ret))
return ret;
#endif
-#endif
// the search space within [source] starts at offset [startIndex] inclusive and includes
// [count] characters (thus the last included character is at index [startIndex + count -1]
@@ -316,14 +299,10 @@ namespace System.Globalization {
for (; startIndex <= maxStartIndex; startIndex++)
{
-#if __APPLE__
- if (String.CompareOrdinal(sourceUpper, startIndex, valueUpper, 0, value.Length)==0)
-#else
// We should always have the same or more characters left to search than our actual pattern
Contract.Assert(end - startIndex >= value.Length);
// since this is an ordinal comparison, we can assume that the lengths must match
if (CompareOrdinalIgnoreCaseEx(source, startIndex, value, 0, value.Length, value.Length) == 0)
-#endif
{
return startIndex;
}
@@ -333,16 +312,6 @@ namespace System.Globalization {
return -1;
}
-#if FEATURE_CORECLR
- private static bool LegacyMode
- {
- get
- {
- return CompatibilitySwitches.IsAppEarlierThanSilverlight4;
- }
- }
-#endif // FEATURE_CORECLR
-
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Process, ResourceScope.Process)]
internal static int LastIndexOfStringOrdinalIgnoreCase(String source, String value, int startIndex, int count)
@@ -353,27 +322,17 @@ namespace System.Globalization {
Contract.Assert(startIndex <= source.Length, "[TextInfo.LastIndexOfStringOrdinalIgnoreCase] Caller should've validated startIndex <= source.Length");
// If value is Empty, the return value is startIndex
- // <STRIP>we accidently shipped Silverlight 2 and 3 without this if-check</STRIP>
- if (value.Length == 0
-#if FEATURE_CORECLR
- && !LegacyMode
-#endif // FEATURE_CORECLR
- )
+ if (value.Length == 0)
{
return startIndex;
}
-#if __APPLE__
- string sourceUpper = source.ToUpper(CultureInfo.InvariantCulture);
- string valueUpper = value.ToUpper(CultureInfo.InvariantCulture);
-#else
// fast path
#if !MONO
int ret = -1;
if (TryFastFindStringOrdinalIgnoreCase(Microsoft.Win32.Win32Native.FIND_FROMEND, source, startIndex, value, count, ref ret))
return ret;
#endif
-#endif
// the search space within [source] ends at offset [startIndex] inclusive
// and includes [count] characters
@@ -388,11 +347,7 @@ namespace System.Globalization {
for (; startIndex >= minIndex; startIndex--)
{
-#if __APPLE__
- if (String.CompareOrdinal(sourceUpper, startIndex, valueUpper, 0, value.Length)==0)
-#else
if (CompareOrdinalIgnoreCaseEx(source, startIndex, value, 0, value.Length, value.Length) == 0)
-#endif
{
return startIndex;
}
@@ -589,9 +544,6 @@ namespace System.Globalization {
////////////////////////////////////////////////////////////////////////
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public unsafe virtual char ToLower(char c)
{
if(IsAscii(c) && IsAsciiCasingSameAsInvariant)
@@ -614,29 +566,7 @@ namespace System.Globalization {
#if MONO
return ToLowerInternal (str);
#else
- String toLower = InternalChangeCaseString(this.m_dataHandle, this.m_handleOrigin, this.m_textInfoName, str, false);
-#if __APPLE__
- //
- // Mac OS X has a documented list of "illegal" (precomposed) characters
- // http://developer.apple.com/technotes/tn/tn1150table.html
- //
- // These characters are mostly in the EXTENDED_GREEK range. Apple decomposes
- // these characters into a sequence of two or more characters that is a
- // canonical or compatibility equivalent.
- //
- // In the extremely unlikely event that an illegal character is in the String,
- // fallback to using slower Char routines since they do not decompose
- // the illegal characters.
- //
- if (toLower.Length != str.Length) {
- char[] chars = new char[str.Length];
- for (int i = 0; i < str.Length; i++) {
- chars[i] = this.ToLower(str[i]);
- }
- toLower = new String(chars);
- }
-#endif
- return toLower;
+ return InternalChangeCaseString(this.m_dataHandle, this.m_handleOrigin, this.m_textInfoName, str, false);
#endif
}
@@ -659,9 +589,6 @@ namespace System.Globalization {
////////////////////////////////////////////////////////////////////////
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public unsafe virtual char ToUpper(char c)
{
if (IsAscii(c) && IsAsciiCasingSameAsInvariant)
@@ -686,29 +613,7 @@ namespace System.Globalization {
#if MONO
return ToUpperInternal (str);
#else
- String toUpper = InternalChangeCaseString(this.m_dataHandle, this.m_handleOrigin, this.m_textInfoName, str, true);
-#if __APPLE__
- //
- // Mac OS X has a documented list of "illegal" (precomposed) characters
- // http://developer.apple.com/technotes/tn/tn1150table.html
- //
- // These characters are mostly in the EXTENDED_GREEK range. Apple decomposes
- // these characters into a sequence of two or more characters that is a
- // canonical or compatibility equivalent.
- //
- // In the extremely unlikely event that an illegal character is in the String,
- // fallback to using slower Char routines since they do not decompose
- // the illegal characters.
- //
- if (toUpper.Length != str.Length) {
- char[] chars = new char[str.Length];
- for (int i = 0; i < str.Length; i++) {
- chars[i] = this.ToUpper(str[i]);
- }
- toUpper = new String(chars);
- }
-#endif
- return toUpper;
+ return InternalChangeCaseString(this.m_dataHandle, this.m_handleOrigin, this.m_textInfoName, str, true);
#endif
}
@@ -1024,7 +929,6 @@ namespace System.Globalization {
#endif
-#if !FEATURE_CORECLR
// IsRightToLeft
//
// Returns true if the dominant direction of text and UI such as the relative position of buttons and scroll bars
@@ -1032,13 +936,11 @@ namespace System.Globalization {
[System.Runtime.InteropServices.ComVisible(false)]
public bool IsRightToLeft
{
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get
{
return this.m_cultureData.IsRightToLeft;
}
}
-#endif
#if FEATURE_SERIALIZATION
/// <internalonly/>
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/timespanformat.cs b/mcs/class/referencesource/mscorlib/system/globalization/timespanformat.cs
index ae14266ab72..23928c8e24d 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/timespanformat.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/timespanformat.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Globalization {
using System.Text;
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/timespanparse.cs b/mcs/class/referencesource/mscorlib/system/globalization/timespanparse.cs
index 2802dfe2798..3e15ad9407d 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/timespanparse.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/timespanparse.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
////////////////////////////////////////////////////////////////////////////
//
@@ -280,7 +280,7 @@ namespace System.Globalization {
return m_negLoc;
}
}
- //<STRIP>
+ //<
internal Boolean FullAppCompatMatch(TimeSpanFormat.FormatLiterals pattern) {
return SepCount == 5
&& NumCount == 4
@@ -290,7 +290,7 @@ namespace System.Globalization {
&& pattern.AppCompatLiteral == literals[3]
&& pattern.End == literals[4];
}
- //<STRIP>
+ //<
internal Boolean PartialAppCompatMatch(TimeSpanFormat.FormatLiterals pattern) {
return SepCount == 4
&& NumCount == 3
diff --git a/mcs/class/referencesource/mscorlib/system/globalization/umalquracalendar.cs b/mcs/class/referencesource/mscorlib/system/globalization/umalquracalendar.cs
index d7ca8056aba..7e8a4dde5d3 100644
--- a/mcs/class/referencesource/mscorlib/system/globalization/umalquracalendar.cs
+++ b/mcs/class/referencesource/mscorlib/system/globalization/umalquracalendar.cs
@@ -43,7 +43,7 @@ namespace System.Globalization {
static DateMapping[] InitDateMapping()
{
short[] rawData = new short[] {
-//These data is taken from Tables/Excel/UmAlQura.xls please make sure that the two places are in [....]
+//These data is taken from Tables/Excel/UmAlQura.xls please make sure that the two places are in sync
/* DaysPerM GY GM GD D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12
1318*/0x02EA, 1900, 4, 30,/* 0 1 0 1 0 1 1 1 0 1 0 0 4/30/1900
1319*/0x06E9, 1901, 4, 19,/* 1 0 0 1 0 1 1 1 0 1 1 0 4/19/1901
diff --git a/mcs/class/referencesource/mscorlib/system/guid.cs b/mcs/class/referencesource/mscorlib/system/guid.cs
index 3a258bc006d..bb7fd067f89 100644
--- a/mcs/class/referencesource/mscorlib/system/guid.cs
+++ b/mcs/class/referencesource/mscorlib/system/guid.cs
@@ -17,6 +17,7 @@ namespace System {
[StructLayout(LayoutKind.Sequential)]
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
+ [System.Runtime.Versioning.NonVersionable] // This only applies to field layout
public partial struct Guid : IFormattable, IComparable
#if GENERICS_WORK
, IComparable<Guid>, IEquatable<Guid>
@@ -748,7 +749,7 @@ namespace System {
//
// StringToShort, StringToInt, and StringToLong are wrappers around COMUtilNative integer parsing routines;
- //<STRIP>
+ //<
[System.Security.SecuritySafeCritical]
private static unsafe bool StringToShort(String str, int requiredLength, int flags, out short result, ref GuidResult parseResult) {
@@ -1162,11 +1163,14 @@ namespace System {
return (char) ((a > 9) ? a - 10 + 0x61 : a + 0x30);
}
- private static int HexsToChars(char[] guidChars, int offset, int a, int b)
+ [System.Security.SecurityCritical]
+ unsafe private static int HexsToChars(char* guidChars, int offset, int a, int b)
{
return HexsToChars(guidChars, offset, a, b, false);
}
- private static int HexsToChars(char[] guidChars, int offset, int a, int b, bool hex)
+
+ [System.Security.SecurityCritical]
+ unsafe private static int HexsToChars(char* guidChars, int offset, int a, int b, bool hex)
{
if (hex) {
guidChars[offset++] = '0';
@@ -1186,14 +1190,14 @@ namespace System {
// IFormattable interface
// We currently ignore provider
+ [System.Security.SecuritySafeCritical]
public String ToString(String format, IFormatProvider provider)
{
if (format == null || format.Length == 0)
format = "D";
- char[] guidChars;
+ string guidString;
int offset = 0;
- int strLength = 38;
bool dash = true;
bool hex = false;
@@ -1204,29 +1208,38 @@ namespace System {
char formatCh = format[0];
if (formatCh == 'D' || formatCh == 'd') {
- guidChars = new char[36];
- strLength = 36;
+ guidString = string.FastAllocateString(36);
}
else if (formatCh == 'N' || formatCh == 'n') {
- guidChars = new char[32];
- strLength = 32;
+ guidString = string.FastAllocateString(32);
dash = false;
}
else if (formatCh == 'B' || formatCh == 'b') {
- guidChars = new char[38];
- guidChars[offset++] = '{';
- guidChars[37] = '}';
+ guidString = string.FastAllocateString(38);
+ unsafe {
+ fixed (char* guidChars = guidString) {
+ guidChars[offset++] = '{';
+ guidChars[37] = '}';
+ }
+ }
}
else if (formatCh == 'P' || formatCh == 'p') {
- guidChars = new char[38];
- guidChars[offset++] = '(';
- guidChars[37] = ')';
+ guidString = string.FastAllocateString(38);
+ unsafe {
+ fixed (char* guidChars = guidString) {
+ guidChars[offset++] = '(';
+ guidChars[37] = ')';
+ }
+ }
}
else if (formatCh == 'X' || formatCh == 'x') {
- guidChars = new char[68];
- guidChars[offset++] = '{';
- guidChars[67] = '}';
- strLength=68;
+ guidString = string.FastAllocateString(68);
+ unsafe {
+ fixed (char* guidChars = guidString) {
+ guidChars[offset++] = '{';
+ guidChars[67] = '}';
+ }
+ }
dash = false;
hex = true;
}
@@ -1234,47 +1247,51 @@ namespace System {
throw new FormatException(Environment.GetResourceString("Format_InvalidGuidFormatSpecification"));
}
- if (hex) {
- // {0xdddddddd,0xdddd,0xdddd,{0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd}}
- guidChars[offset++] = '0';
- guidChars[offset++] = 'x';
- offset = HexsToChars(guidChars, offset, _a >> 24, _a >> 16);
- offset = HexsToChars(guidChars, offset, _a >> 8, _a);
- guidChars[offset++] = ',';
- guidChars[offset++] = '0';
- guidChars[offset++] = 'x';
- offset = HexsToChars(guidChars, offset, _b >> 8, _b);
- guidChars[offset++] = ',';
- guidChars[offset++] = '0';
- guidChars[offset++] = 'x';
- offset = HexsToChars(guidChars, offset, _c >> 8, _c);
- guidChars[offset++] = ',';
- guidChars[offset++] = '{';
- offset = HexsToChars(guidChars, offset, _d, _e, true);
- guidChars[offset++] = ',';
- offset = HexsToChars(guidChars, offset, _f, _g, true);
- guidChars[offset++] = ',';
- offset = HexsToChars(guidChars, offset, _h, _i, true);
- guidChars[offset++] = ',';
- offset = HexsToChars(guidChars, offset, _j, _k, true);
- guidChars[offset++] = '}';
+ unsafe {
+ fixed (char* guidChars = guidString) {
+ if (hex) {
+ // {0xdddddddd,0xdddd,0xdddd,{0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd}}
+ guidChars[offset++] = '0';
+ guidChars[offset++] = 'x';
+ offset = HexsToChars(guidChars, offset, _a >> 24, _a >> 16);
+ offset = HexsToChars(guidChars, offset, _a >> 8, _a);
+ guidChars[offset++] = ',';
+ guidChars[offset++] = '0';
+ guidChars[offset++] = 'x';
+ offset = HexsToChars(guidChars, offset, _b >> 8, _b);
+ guidChars[offset++] = ',';
+ guidChars[offset++] = '0';
+ guidChars[offset++] = 'x';
+ offset = HexsToChars(guidChars, offset, _c >> 8, _c);
+ guidChars[offset++] = ',';
+ guidChars[offset++] = '{';
+ offset = HexsToChars(guidChars, offset, _d, _e, true);
+ guidChars[offset++] = ',';
+ offset = HexsToChars(guidChars, offset, _f, _g, true);
+ guidChars[offset++] = ',';
+ offset = HexsToChars(guidChars, offset, _h, _i, true);
+ guidChars[offset++] = ',';
+ offset = HexsToChars(guidChars, offset, _j, _k, true);
+ guidChars[offset++] = '}';
+ }
+ else {
+ // [{|(]dddddddd[-]dddd[-]dddd[-]dddd[-]dddddddddddd[}|)]
+ offset = HexsToChars(guidChars, offset, _a >> 24, _a >> 16);
+ offset = HexsToChars(guidChars, offset, _a >> 8, _a);
+ if (dash) guidChars[offset++] = '-';
+ offset = HexsToChars(guidChars, offset, _b >> 8, _b);
+ if (dash) guidChars[offset++] = '-';
+ offset = HexsToChars(guidChars, offset, _c >> 8, _c);
+ if (dash) guidChars[offset++] = '-';
+ offset = HexsToChars(guidChars, offset, _d, _e);
+ if (dash) guidChars[offset++] = '-';
+ offset = HexsToChars(guidChars, offset, _f, _g);
+ offset = HexsToChars(guidChars, offset, _h, _i);
+ offset = HexsToChars(guidChars, offset, _j, _k);
+ }
+ }
}
- else {
- // [{|(]dddddddd[-]dddd[-]dddd[-]dddd[-]dddddddddddd[}|)]
- offset = HexsToChars(guidChars, offset, _a >> 24, _a >> 16);
- offset = HexsToChars(guidChars, offset, _a >> 8, _a);
- if (dash) guidChars[offset++] = '-';
- offset = HexsToChars(guidChars, offset, _b >> 8, _b);
- if (dash) guidChars[offset++] = '-';
- offset = HexsToChars(guidChars, offset, _c >> 8, _c);
- if (dash) guidChars[offset++] = '-';
- offset = HexsToChars(guidChars, offset, _d, _e);
- if (dash) guidChars[offset++] = '-';
- offset = HexsToChars(guidChars, offset, _f, _g);
- offset = HexsToChars(guidChars, offset, _h, _i);
- offset = HexsToChars(guidChars, offset, _j, _k);
- }
- return new String(guidChars, 0, strLength);
+ return guidString;
}
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/iappdomain.cs b/mcs/class/referencesource/mscorlib/system/iappdomain.cs
index bd7f00652a9..2e1ff7143e0 100644
--- a/mcs/class/referencesource/mscorlib/system/iappdomain.cs
+++ b/mcs/class/referencesource/mscorlib/system/iappdomain.cs
@@ -7,7 +7,7 @@
**
** Interface: IAppDomain
**
-** <OWNER>[....]</OWNER>
+** <OWNER>mray</OWNER>
**
**
** Purpose: Properties and methods exposed to COM
@@ -42,6 +42,7 @@ namespace System {
[System.Runtime.InteropServices.ComVisible(true)]
public interface _AppDomain
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -265,6 +266,7 @@ namespace System {
String DynamicDirectory
{ get; }
+#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/iappdomainsetup.cs b/mcs/class/referencesource/mscorlib/system/iappdomainsetup.cs
index 85ee9b63837..65786c7c526 100644
--- a/mcs/class/referencesource/mscorlib/system/iappdomainsetup.cs
+++ b/mcs/class/referencesource/mscorlib/system/iappdomainsetup.cs
@@ -7,7 +7,7 @@
**
** Interface: IAppDomainSetup
**
-** <OWNER>[....]</OWNER>
+** <OWNER>mray</OWNER>
**
**
** Purpose: Properties exposed to COM
diff --git a/mcs/class/referencesource/mscorlib/system/int16.cs b/mcs/class/referencesource/mscorlib/system/int16.cs
index 215a7a41778..3b0a8898f5d 100644
--- a/mcs/class/referencesource/mscorlib/system/int16.cs
+++ b/mcs/class/referencesource/mscorlib/system/int16.cs
@@ -69,6 +69,7 @@ namespace System {
return m_value == ((Int16)obj).m_value;
}
+ [System.Runtime.Versioning.NonVersionable]
public bool Equals(Int16 obj)
{
return m_value == obj;
diff --git a/mcs/class/referencesource/mscorlib/system/int32.cs b/mcs/class/referencesource/mscorlib/system/int32.cs
index b81d3f79287..a07f6e89c6a 100644
--- a/mcs/class/referencesource/mscorlib/system/int32.cs
+++ b/mcs/class/referencesource/mscorlib/system/int32.cs
@@ -61,9 +61,6 @@ namespace System {
throw new ArgumentException (Environment.GetResourceString("Arg_MustBeInt32"));
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public int CompareTo(int value) {
// Need to use compare because subtraction will wrap
// to positive for very large neg numbers, etc.
@@ -72,9 +69,6 @@ namespace System {
return 0;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override bool Equals(Object obj) {
if (!(obj is Int32)) {
return false;
@@ -82,26 +76,18 @@ namespace System {
return m_value == ((Int32)obj).m_value;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public bool Equals(Int32 obj)
{
return m_value == obj;
}
// The absolute value of the int contained.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override int GetHashCode() {
return m_value;
}
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[Pure]
public override String ToString() {
Contract.Ensures(Contract.Result<String>() != null);
@@ -109,9 +95,6 @@ namespace System {
}
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[Pure]
public String ToString(String format) {
Contract.Ensures(Contract.Result<String>() != null);
@@ -119,9 +102,6 @@ namespace System {
}
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[Pure]
public String ToString(IFormatProvider provider) {
Contract.Ensures(Contract.Result<String>() != null);
@@ -150,9 +130,6 @@ namespace System {
// a NumberFormatInfo isn't specified, the current culture's
// NumberFormatInfo is assumed.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[Pure]
public static int Parse(String s, IFormatProvider provider) {
return Number.ParseInt32(s, NumberStyles.Integer, NumberFormatInfo.GetInstance(provider));
@@ -162,9 +139,6 @@ namespace System {
// a NumberFormatInfo isn't specified, the current culture's
// NumberFormatInfo is assumed.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[Pure]
public static int Parse(String s, NumberStyles style, IFormatProvider provider) {
NumberFormatInfo.ValidateParseStyleInteger(style);
@@ -182,9 +156,6 @@ namespace System {
// Parses an integer from a String in the given style. Returns false rather
// than throwing exceptin if input is invalid
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[Pure]
public static bool TryParse(String s, NumberStyles style, IFormatProvider provider, out Int32 result) {
NumberFormatInfo.ValidateParseStyleInteger(style);
@@ -195,9 +166,6 @@ namespace System {
// IConvertible implementation
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[Pure]
public TypeCode GetTypeCode() {
return TypeCode.Int32;
@@ -234,9 +202,6 @@ namespace System {
}
/// <internalonly/>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
int IConvertible.ToInt32(IFormatProvider provider) {
return m_value;
}
@@ -247,9 +212,6 @@ namespace System {
}
/// <internalonly/>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
long IConvertible.ToInt64(IFormatProvider provider) {
return Convert.ToInt64(m_value);
}
diff --git a/mcs/class/referencesource/mscorlib/system/int64.cs b/mcs/class/referencesource/mscorlib/system/int64.cs
index b8cdadc030d..25d1d0965a5 100644
--- a/mcs/class/referencesource/mscorlib/system/int64.cs
+++ b/mcs/class/referencesource/mscorlib/system/int64.cs
@@ -75,6 +75,7 @@ namespace System {
return m_value == ((Int64)obj).m_value;
}
+ [System.Runtime.Versioning.NonVersionable]
public bool Equals(Int64 obj)
{
return m_value == obj;
diff --git a/mcs/class/referencesource/mscorlib/system/internal.cs b/mcs/class/referencesource/mscorlib/system/internal.cs
index 7dc1a43e9ad..988cda66021 100644
--- a/mcs/class/referencesource/mscorlib/system/internal.cs
+++ b/mcs/class/referencesource/mscorlib/system/internal.cs
@@ -16,6 +16,8 @@ using System.Runtime.CompilerServices;
using System.Collections.Generic;
using System.Reflection;
using System.Security;
+using System.StubHelpers;
+using System.Threading.Tasks;
#if FEATURE_COMINTEROP
@@ -46,7 +48,7 @@ namespace System
// This can be removed after V2, when we implement other schemes
// of keeping the JIT-compiler out for generic instantiations.
- static void CommonlyUsedGenericInstantiations_HACK()
+ static void CommonlyUsedGenericInstantiations()
{
// Make absolutely sure we include some of the most common
// instantiations here in mscorlib's ngen image.
@@ -78,6 +80,10 @@ namespace System
new Dictionary<Object, UInt32>();
new Dictionary<UInt32, Object>();
new Dictionary<Int64, Object>();
+#if FEATURE_CORECLR
+ // to genereate mdil for Dictionary instantiation when key is user defined value type
+ new Dictionary<Guid, Int32>();
+#endif
// Microsoft.Windows.Design
new Dictionary<System.Reflection.MemberTypes, Object>();
@@ -87,19 +93,19 @@ namespace System
new Dictionary<Object, KeyValuePair<Object,Object>>();
new Dictionary<KeyValuePair<Object,Object>, Object>();
- NullableHelper_HACK<Boolean>();
- NullableHelper_HACK<Byte>();
- NullableHelper_HACK<Char>();
- NullableHelper_HACK<DateTime>();
- NullableHelper_HACK<Decimal>();
- NullableHelper_HACK<Double>();
- NullableHelper_HACK<Guid>();
- NullableHelper_HACK<Int16>();
- NullableHelper_HACK<Int32>();
- NullableHelper_HACK<Int64>();
- NullableHelper_HACK<Single>();
- NullableHelper_HACK<TimeSpan>();
- NullableHelper_HACK<DateTimeOffset>(); // For SQL
+ NullableHelper<Boolean>();
+ NullableHelper<Byte>();
+ NullableHelper<Char>();
+ NullableHelper<DateTime>();
+ NullableHelper<Decimal>();
+ NullableHelper<Double>();
+ NullableHelper<Guid>();
+ NullableHelper<Int16>();
+ NullableHelper<Int32>();
+ NullableHelper<Int64>();
+ NullableHelper<Single>();
+ NullableHelper<TimeSpan>();
+ NullableHelper<DateTimeOffset>(); // For SQL
new List<Boolean>();
new List<Byte>();
@@ -126,28 +132,37 @@ namespace System
new KeyValuePair<UInt16, Double>(UInt16.MinValue, Double.MinValue);
new KeyValuePair<Object, Int32>(String.Empty, Int32.MinValue);
new KeyValuePair<Int32, Int32>(Int32.MinValue, Int32.MinValue);
- SZArrayHelper_HACK<Boolean>(null);
- SZArrayHelper_HACK<Byte>(null);
- SZArrayHelper_HACK<DateTime>(null);
- SZArrayHelper_HACK<Decimal>(null);
- SZArrayHelper_HACK<Double>(null);
- SZArrayHelper_HACK<Guid>(null);
- SZArrayHelper_HACK<Int16>(null);
- SZArrayHelper_HACK<Int32>(null);
- SZArrayHelper_HACK<Int64>(null);
- SZArrayHelper_HACK<TimeSpan>(null);
- SZArrayHelper_HACK<SByte>(null);
- SZArrayHelper_HACK<Single>(null);
- SZArrayHelper_HACK<UInt16>(null);
- SZArrayHelper_HACK<UInt32>(null);
- SZArrayHelper_HACK<UInt64>(null);
- SZArrayHelper_HACK<DateTimeOffset>(null);
-
- SZArrayHelper_HACK<CustomAttributeTypedArgument>(null);
- SZArrayHelper_HACK<CustomAttributeNamedArgument>(null);
+ SZArrayHelper<Boolean>(null);
+ SZArrayHelper<Byte>(null);
+ SZArrayHelper<DateTime>(null);
+ SZArrayHelper<Decimal>(null);
+ SZArrayHelper<Double>(null);
+ SZArrayHelper<Guid>(null);
+ SZArrayHelper<Int16>(null);
+ SZArrayHelper<Int32>(null);
+ SZArrayHelper<Int64>(null);
+ SZArrayHelper<TimeSpan>(null);
+ SZArrayHelper<SByte>(null);
+ SZArrayHelper<Single>(null);
+ SZArrayHelper<UInt16>(null);
+ SZArrayHelper<UInt32>(null);
+ SZArrayHelper<UInt64>(null);
+ SZArrayHelper<DateTimeOffset>(null);
+
+ SZArrayHelper<CustomAttributeTypedArgument>(null);
+ SZArrayHelper<CustomAttributeNamedArgument>(null);
+
+#if FEATURE_CORECLR
+#pragma warning disable 4014
+ // This is necessary to generate MDIL for AsyncVoidMethodBuilder
+ AsyncHelper<int>();
+ AsyncHelper2<int>();
+ AsyncHelper3();
+#pragma warning restore 4014
+#endif
}
- static T NullableHelper_HACK<T>() where T : struct
+ static T NullableHelper<T>() where T : struct
{
Nullable.Compare<T>(null, null);
Nullable.Equals<T>(null, null);
@@ -155,7 +170,7 @@ namespace System
return nullable.GetValueOrDefault();
}
- static void SZArrayHelper_HACK<T>(SZArrayHelper oSZArrayHelper)
+ static void SZArrayHelper<T>(SZArrayHelper oSZArrayHelper)
{
// Instantiate common methods for IList implementation on Array
oSZArrayHelper.get_Count<T>();
@@ -163,9 +178,31 @@ namespace System
oSZArrayHelper.GetEnumerator<T>();
}
+#if FEATURE_CORECLR
+ // System.Runtime.CompilerServices.AsyncVoidMethodBuilder
+ // System.Runtime.CompilerServices.TaskAwaiter
+ static async void AsyncHelper<T>()
+ {
+ await Task.Delay(1);
+ }
+ // System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.__Canon]
+ // System.Runtime.CompilerServices.TaskAwaiter'[System.__Canon]
+ static async Task<String> AsyncHelper2<T>()
+ {
+ return await Task.FromResult<string>("");
+ }
+
+ // System.Runtime.CompilerServices.AsyncTaskMethodBuilder
+ // System.Runtime.CompilerServices.AsyncTaskMethodBuilder'1[VoidTaskResult]
+ static async Task AsyncHelper3()
+ {
+ await Task.FromResult<string>("");
+ }
+#endif
+
#if FEATURE_COMINTEROP
- // Similar to CommonlyUsedGenericInstantiations_HACK but for instantiations of marshaling stubs used
+ // Similar to CommonlyUsedGenericInstantiations but for instantiations of marshaling stubs used
// for WinRT redirected interfaces. Note that we do care about reference types here as well because,
// say, IList<string> and IList<object> cannot share marshaling stubs.
// The methods below "call" most commonly used stub methods on redirected interfaces and take arguments
@@ -173,42 +210,54 @@ namespace System
// IMap<K, V>, ...) which is necessary to generate all required IL stubs.
[SecurityCritical]
- static void CommonlyUsedWinRTRedirectedInterfaceStubs_HACK()
+ static void CommonlyUsedWinRTRedirectedInterfaceStubs()
{
- WinRT_IEnumerable_HACK<byte>(null, null, null);
- WinRT_IEnumerable_HACK<char>(null, null, null);
- WinRT_IEnumerable_HACK<short>(null, null, null);
- WinRT_IEnumerable_HACK<ushort>(null, null, null);
- WinRT_IEnumerable_HACK<int>(null, null, null);
- WinRT_IEnumerable_HACK<uint>(null, null, null);
- WinRT_IEnumerable_HACK<long>(null, null, null);
- WinRT_IEnumerable_HACK<ulong>(null, null, null);
- WinRT_IEnumerable_HACK<float>(null, null, null);
- WinRT_IEnumerable_HACK<double>(null, null, null);
- WinRT_IEnumerable_HACK<string>(null, null, null);
- WinRT_IEnumerable_HACK<object>(null, null, null);
-
- WinRT_IList_HACK<int>(null, null, null, null);
- WinRT_IList_HACK<string>(null, null, null, null);
- WinRT_IList_HACK<object>(null, null, null, null);
-
- WinRT_IReadOnlyList_HACK<int>(null, null, null);
- WinRT_IReadOnlyList_HACK<string>(null, null, null);
- WinRT_IReadOnlyList_HACK<object>(null, null, null);
-
- WinRT_IDictionary_HACK<string, int>(null, null, null, null);
- WinRT_IDictionary_HACK<string, string>(null, null, null, null);
- WinRT_IDictionary_HACK<string, object>(null, null, null, null);
- WinRT_IDictionary_HACK<object, object>(null, null, null, null);
-
- WinRT_IReadOnlyDictionary_HACK<string, int>(null, null, null, null);
- WinRT_IReadOnlyDictionary_HACK<string, string>(null, null, null, null);
- WinRT_IReadOnlyDictionary_HACK<string, object>(null, null, null, null);
- WinRT_IReadOnlyDictionary_HACK<object, object>(null, null, null, null);
+ WinRT_IEnumerable<byte>(null, null, null);
+ WinRT_IEnumerable<char>(null, null, null);
+ WinRT_IEnumerable<short>(null, null, null);
+ WinRT_IEnumerable<ushort>(null, null, null);
+ WinRT_IEnumerable<int>(null, null, null);
+ WinRT_IEnumerable<uint>(null, null, null);
+ WinRT_IEnumerable<long>(null, null, null);
+ WinRT_IEnumerable<ulong>(null, null, null);
+ WinRT_IEnumerable<float>(null, null, null);
+ WinRT_IEnumerable<double>(null, null, null);
+
+ // The underlying WinRT types for shared instantiations have to be referenced explicitly.
+ // They are not guaranteeed to be created indirectly because of generic code sharing.
+ WinRT_IEnumerable<string>(null, null, null); typeof(IIterable<string>).ToString(); typeof(IIterator<string>).ToString();
+ WinRT_IEnumerable<object>(null, null, null); typeof(IIterable<object>).ToString(); typeof(IIterator<object>).ToString();
+
+ WinRT_IList<int>(null, null, null, null);
+ WinRT_IList<string>(null, null, null, null); typeof(IVector<string>).ToString();
+ WinRT_IList<object>(null, null, null, null); typeof(IVector<object>).ToString();
+
+ WinRT_IReadOnlyList<int>(null, null, null);
+ WinRT_IReadOnlyList<string>(null, null, null); typeof(IVectorView<string>).ToString();
+ WinRT_IReadOnlyList<object>(null, null, null); typeof(IVectorView<object>).ToString();
+
+ WinRT_IDictionary<string, int>(null, null, null, null); typeof(IMap<string, int>).ToString();
+ WinRT_IDictionary<string, string>(null, null, null, null); typeof(IMap<string, string>).ToString();
+ WinRT_IDictionary<string, object>(null, null, null, null); typeof(IMap<string, object>).ToString();
+ WinRT_IDictionary<object, object>(null, null, null, null); typeof(IMap<object, object>).ToString();
+
+ WinRT_IReadOnlyDictionary<string, int>(null, null, null, null); typeof(IMapView<string, int>).ToString();
+ WinRT_IReadOnlyDictionary<string, string>(null, null, null, null); typeof(IMapView<string, string>).ToString();
+ WinRT_IReadOnlyDictionary<string, object>(null, null, null, null); typeof(IMapView<string, object>).ToString();
+ WinRT_IReadOnlyDictionary<object, object>(null, null, null, null); typeof(IMapView<object, object>).ToString();
+
+ WinRT_Nullable<bool>();
+ WinRT_Nullable<byte>();
+ WinRT_Nullable<int>();
+ WinRT_Nullable<uint>();
+ WinRT_Nullable<long>();
+ WinRT_Nullable<ulong>();
+ WinRT_Nullable<float>();
+ WinRT_Nullable<double>();
}
[SecurityCritical]
- static void WinRT_IEnumerable_HACK<T>(IterableToEnumerableAdapter iterableToEnumerableAdapter, EnumerableToIterableAdapter enumerableToIterableAdapter, IIterable<T> iterable)
+ static void WinRT_IEnumerable<T>(IterableToEnumerableAdapter iterableToEnumerableAdapter, EnumerableToIterableAdapter enumerableToIterableAdapter, IIterable<T> iterable)
{
// instantiate stubs for the one method on IEnumerable<T> and the one method on IIterable<T>
iterableToEnumerableAdapter.GetEnumerator_Stub<T>();
@@ -216,9 +265,9 @@ namespace System
}
[SecurityCritical]
- static void WinRT_IList_HACK<T>(VectorToListAdapter vectorToListAdapter, VectorToCollectionAdapter vectorToCollectionAdapter, ListToVectorAdapter listToVectorAdapter, IVector<T> vector)
+ static void WinRT_IList<T>(VectorToListAdapter vectorToListAdapter, VectorToCollectionAdapter vectorToCollectionAdapter, ListToVectorAdapter listToVectorAdapter, IVector<T> vector)
{
- WinRT_IEnumerable_HACK<T>(null, null, null);
+ WinRT_IEnumerable<T>(null, null, null);
// instantiate stubs for commonly used methods on IList<T> and ICollection<T>
vectorToListAdapter.Indexer_Get<T>(0);
@@ -241,19 +290,19 @@ namespace System
}
[SecurityCritical]
- static void WinRT_IReadOnlyCollection_HACK<T>(VectorViewToReadOnlyCollectionAdapter vectorViewToReadOnlyCollectionAdapter)
+ static void WinRT_IReadOnlyCollection<T>(VectorViewToReadOnlyCollectionAdapter vectorViewToReadOnlyCollectionAdapter)
{
- WinRT_IEnumerable_HACK<T>(null, null, null);
+ WinRT_IEnumerable<T>(null, null, null);
// instantiate stubs for commonly used methods on IReadOnlyCollection<T>
vectorViewToReadOnlyCollectionAdapter.Count<T>();
}
[SecurityCritical]
- static void WinRT_IReadOnlyList_HACK<T>(IVectorViewToIReadOnlyListAdapter vectorToListAdapter, IReadOnlyListToIVectorViewAdapter listToVectorAdapter, IVectorView<T> vectorView)
+ static void WinRT_IReadOnlyList<T>(IVectorViewToIReadOnlyListAdapter vectorToListAdapter, IReadOnlyListToIVectorViewAdapter listToVectorAdapter, IVectorView<T> vectorView)
{
- WinRT_IEnumerable_HACK<T>(null, null, null);
- WinRT_IReadOnlyCollection_HACK<T>(null);
+ WinRT_IEnumerable<T>(null, null, null);
+ WinRT_IReadOnlyCollection<T>(null);
// instantiate stubs for commonly used methods on IReadOnlyList<T>
vectorToListAdapter.Indexer_Get<T>(0);
@@ -264,9 +313,9 @@ namespace System
}
[SecurityCritical]
- static void WinRT_IDictionary_HACK<K, V>(MapToDictionaryAdapter mapToDictionaryAdapter, MapToCollectionAdapter mapToCollectionAdapter, DictionaryToMapAdapter dictionaryToMapAdapter, IMap<K, V> map)
+ static void WinRT_IDictionary<K, V>(MapToDictionaryAdapter mapToDictionaryAdapter, MapToCollectionAdapter mapToCollectionAdapter, DictionaryToMapAdapter dictionaryToMapAdapter, IMap<K, V> map)
{
- WinRT_IEnumerable_HACK<KeyValuePair<K, V>>(null, null, null);
+ WinRT_IEnumerable<KeyValuePair<K, V>>(null, null, null);
// instantiate stubs for commonly used methods on IDictionary<K, V> and ICollection<KeyValuePair<K, V>>
V dummy;
@@ -290,10 +339,10 @@ namespace System
}
[SecurityCritical]
- static void WinRT_IReadOnlyDictionary_HACK<K, V>(IMapViewToIReadOnlyDictionaryAdapter mapToDictionaryAdapter, IReadOnlyDictionaryToIMapViewAdapter dictionaryToMapAdapter, IMapView<K, V> mapView, MapViewToReadOnlyCollectionAdapter mapViewToReadOnlyCollectionAdapter)
+ static void WinRT_IReadOnlyDictionary<K, V>(IMapViewToIReadOnlyDictionaryAdapter mapToDictionaryAdapter, IReadOnlyDictionaryToIMapViewAdapter dictionaryToMapAdapter, IMapView<K, V> mapView, MapViewToReadOnlyCollectionAdapter mapViewToReadOnlyCollectionAdapter)
{
- WinRT_IEnumerable_HACK<KeyValuePair<K, V>>(null, null, null);
- WinRT_IReadOnlyCollection_HACK<KeyValuePair<K, V>>(null);
+ WinRT_IEnumerable<KeyValuePair<K, V>>(null, null, null);
+ WinRT_IReadOnlyCollection<KeyValuePair<K, V>>(null);
// instantiate stubs for commonly used methods on IReadOnlyDictionary<K, V>
V dummy;
@@ -310,6 +359,14 @@ namespace System
dictionaryToMapAdapter.HasKey<K, V>(default(K));
}
+ [SecurityCritical]
+ static void WinRT_Nullable<T>() where T : struct
+ {
+ Nullable<T> nullable = new Nullable<T>();
+ NullableMarshaler.ConvertToNative(ref nullable);
+ NullableMarshaler.ConvertToManagedRetVoid(IntPtr.Zero, ref nullable);
+ }
+
#endif // FEATURE_COMINTEROP
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/intptr.cs b/mcs/class/referencesource/mscorlib/system/intptr.cs
index 2e708308aab..7305826f840 100644
--- a/mcs/class/referencesource/mscorlib/system/intptr.cs
+++ b/mcs/class/referencesource/mscorlib/system/intptr.cs
@@ -44,9 +44,7 @@ namespace System {
[System.Security.SecuritySafeCritical] // auto-generated
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public unsafe IntPtr(int value)
{
#if WIN32
@@ -58,9 +56,7 @@ namespace System {
[System.Security.SecuritySafeCritical] // auto-generated
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public unsafe IntPtr(long value)
{
#if WIN32
@@ -73,6 +69,7 @@ namespace System {
[System.Security.SecurityCritical]
[CLSCompliant(false)]
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
+ [System.Runtime.Versioning.NonVersionable]
public unsafe IntPtr(void* value)
{
m_value = value;
@@ -113,18 +110,13 @@ namespace System {
}
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public unsafe override int GetHashCode() {
return unchecked((int)((long)m_value));
}
[System.Security.SecuritySafeCritical] // auto-generated
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public unsafe int ToInt32() {
#if WIN32
return (int)m_value;
@@ -136,9 +128,7 @@ namespace System {
[System.Security.SecuritySafeCritical] // auto-generated
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public unsafe long ToInt64() {
#if WIN32
return (long)(int)m_value;
@@ -170,18 +160,14 @@ namespace System {
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static explicit operator IntPtr (int value)
{
return new IntPtr(value);
}
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static explicit operator IntPtr (long value)
{
return new IntPtr(value);
@@ -189,9 +175,7 @@ namespace System {
[System.Security.SecurityCritical]
[CLSCompliant(false), ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static unsafe explicit operator IntPtr (void* value)
{
return new IntPtr(value);
@@ -199,18 +183,14 @@ namespace System {
[System.Security.SecuritySafeCritical] // auto-generated
[CLSCompliant(false)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static unsafe explicit operator void* (IntPtr value)
{
- return value.ToPointer();
+ return value.m_value;
}
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public unsafe static explicit operator int (IntPtr value)
{
#if WIN32
@@ -222,9 +202,7 @@ namespace System {
}
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public unsafe static explicit operator long (IntPtr value)
{
#if WIN32
@@ -236,9 +214,7 @@ namespace System {
[System.Security.SecuritySafeCritical] // auto-generated
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public unsafe static bool operator == (IntPtr value1, IntPtr value2)
{
return value1.m_value == value2.m_value;
@@ -246,27 +222,21 @@ namespace System {
[System.Security.SecuritySafeCritical] // auto-generated
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public unsafe static bool operator != (IntPtr value1, IntPtr value2)
{
return value1.m_value != value2.m_value;
}
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static IntPtr Add(IntPtr pointer, int offset)
{
return pointer + offset;
}
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static IntPtr operator +(IntPtr pointer, int offset)
{
#if WIN32
@@ -277,17 +247,13 @@ namespace System {
}
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static IntPtr Subtract(IntPtr pointer, int offset) {
return pointer - offset;
}
[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static IntPtr operator -(IntPtr pointer, int offset) {
#if WIN32
return new IntPtr(pointer.ToInt32() - offset);
@@ -300,9 +266,7 @@ namespace System {
{
[Pure]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
get
{
#if WIN32
@@ -317,9 +281,7 @@ namespace System {
[System.Security.SecuritySafeCritical] // auto-generated
[CLSCompliant(false)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public unsafe void* ToPointer()
{
return m_value;
diff --git a/mcs/class/referencesource/mscorlib/system/io/ReadLinesIterator.cs b/mcs/class/referencesource/mscorlib/system/io/ReadLinesIterator.cs
index 9e210bc8bbf..ee41ef719eb 100644
--- a/mcs/class/referencesource/mscorlib/system/io/ReadLinesIterator.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/ReadLinesIterator.cs
@@ -58,9 +58,6 @@ namespace System.IO
return false;
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
protected override Iterator<string> Clone()
{
// NOTE: To maintain the same behavior with the previous yield-based
@@ -96,9 +93,6 @@ namespace System.IO
return CreateIterator(path, encoding, (StreamReader)null);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
private static ReadLinesIterator CreateIterator(string path, Encoding encoding, StreamReader reader)
{
return new ReadLinesIterator(path, encoding, reader ?? new StreamReader(path, encoding));
diff --git a/mcs/class/referencesource/mscorlib/system/io/__consolestream.cs b/mcs/class/referencesource/mscorlib/system/io/__consolestream.cs
index 505f30675c9..a877feabd30 100644
--- a/mcs/class/referencesource/mscorlib/system/io/__consolestream.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/__consolestream.cs
@@ -5,7 +5,7 @@
// ==--==
/*============================================================
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Class: ConsoleStream
**
diff --git a/mcs/class/referencesource/mscorlib/system/io/__debugoutputtextwriter.cs b/mcs/class/referencesource/mscorlib/system/io/__debugoutputtextwriter.cs
index 1d759f7e4b8..1a1c9dbac2e 100644
--- a/mcs/class/referencesource/mscorlib/system/io/__debugoutputtextwriter.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/__debugoutputtextwriter.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>kimhamil</OWNER>
//
#if _DEBUG
@@ -12,7 +12,7 @@
// output for some good old-fashioned console spew in MSDEV's debug output window.
// <STRIP>This really shouldn't ship at all, but is intended as a quick, inefficient hack
-// for debugging. -- [....], 9/26/2000</STRIP>
+// for debugging. -- BrianGru, 9/26/2000</STRIP>
using System;
using System.IO;
diff --git a/mcs/class/referencesource/mscorlib/system/io/__error.cs b/mcs/class/referencesource/mscorlib/system/io/__error.cs
index 7ebaff4fc09..d7093f2045b 100644
--- a/mcs/class/referencesource/mscorlib/system/io/__error.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/__error.cs
@@ -7,7 +7,7 @@
**
** Class: __Error
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Centralized error methods for the IO package.
diff --git a/mcs/class/referencesource/mscorlib/system/io/__hresults.cs b/mcs/class/referencesource/mscorlib/system/io/__hresults.cs
index cc8a081709b..2fc9ddadb52 100644
--- a/mcs/class/referencesource/mscorlib/system/io/__hresults.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/__hresults.cs
@@ -7,7 +7,7 @@
//
// Class: __HResults
//
-// <OWNER>[....]</OWNER>
+// <OWNER>kimhamil</OWNER>
//
// Author: Automatically generated
//
diff --git a/mcs/class/referencesource/mscorlib/system/io/binaryreader.cs b/mcs/class/referencesource/mscorlib/system/io/binaryreader.cs
index d95f0899f59..409b35c3772 100644
--- a/mcs/class/referencesource/mscorlib/system/io/binaryreader.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/binaryreader.cs
@@ -42,9 +42,6 @@ namespace System.IO {
private bool m_isMemoryStream; // "do we sit on MemoryStream?" for Read/ReadInt32 perf
private bool m_leaveOpen;
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public BinaryReader(Stream input) : this(input, new UTF8Encoding(), false) {
}
@@ -133,9 +130,6 @@ namespace System.IO {
return InternalReadOneChar();
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual bool ReadBoolean(){
FillBuffer(1);
return (m_buffer[0]!=0);
@@ -152,9 +146,6 @@ namespace System.IO {
}
[CLSCompliant(false)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual sbyte ReadSByte() {
FillBuffer(1);
return (sbyte)(m_buffer[0]);
@@ -168,9 +159,6 @@ namespace System.IO {
return (char)value;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual short ReadInt16() {
FillBuffer(2);
return (short)(m_buffer[0] | m_buffer[1] << 8);
diff --git a/mcs/class/referencesource/mscorlib/system/io/binarywriter.cs b/mcs/class/referencesource/mscorlib/system/io/binarywriter.cs
index e841589dd96..ad11daa8bdf 100644
--- a/mcs/class/referencesource/mscorlib/system/io/binarywriter.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/binarywriter.cs
@@ -64,9 +64,6 @@ namespace System.IO {
_encoder = _encoding.GetEncoder();
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public BinaryWriter(Stream output) : this(output, new UTF8Encoding(false, true), false)
{
}
@@ -150,9 +147,6 @@ namespace System.IO {
// Writes a byte to this stream. The current position of the stream is
// advanced by one.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual void Write(byte value)
{
OutStream.WriteByte(value);
diff --git a/mcs/class/referencesource/mscorlib/system/io/bufferedstream.cs b/mcs/class/referencesource/mscorlib/system/io/bufferedstream.cs
index 9e77077a564..54fa43e5e2e 100644
--- a/mcs/class/referencesource/mscorlib/system/io/bufferedstream.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/bufferedstream.cs
@@ -345,8 +345,8 @@ public sealed class BufferedStream : Stream {
// We bring instance fields down as local parameters to this async method becasue BufferedStream is derived from MarshalByRefObject.
// Field access would be from the async state machine i.e., not via the this pointer and would require runtime checking to see
- // if we are talking to a remote object, whcih is currently very slow (Dev11 bug #365921).
- // Field access from whithin Asserts is, of course, irrelevant.
+ // if we are talking to a remote object, whcih is currently very slow (Dev11
+
Contract.Assert(stream != null);
SemaphoreSlim sem = _this.EnsureAsyncActiveSemaphoreInitialized();
@@ -395,7 +395,7 @@ public sealed class BufferedStream : Stream {
// Reading is done in blocks, but someone could read 1 byte from the buffer then write.
- // At that point, the underlying stream's pointer is out of [....] with this stream's position.
+ // At that point, the underlying stream's pointer is out of sync with this stream's position.
// All write functions should call this function to ensure that the buffered data is not lost.
private void FlushRead() {
@@ -1158,7 +1158,7 @@ public sealed class BufferedStream : Stream {
try {
// The buffer might have been changed by another async task while we were waiting on the semaphore.
- // However, note that if we recalculate the [....] completion condition to TRUE, then useBuffer will also be TRUE.
+ // However, note that if we recalculate the sync completion condition to TRUE, then useBuffer will also be TRUE.
if (_writePos == 0)
ClearReadBufferBeforeWrite();
diff --git a/mcs/class/referencesource/mscorlib/system/io/directory.cs b/mcs/class/referencesource/mscorlib/system/io/directory.cs
index 923c297ef12..fe3f1d84afe 100644
--- a/mcs/class/referencesource/mscorlib/system/io/directory.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/directory.cs
@@ -7,7 +7,7 @@
**
** Class: Directory
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Exposes routines for enumerating through a
@@ -57,11 +57,7 @@ namespace System.IO {
return new DirectoryInfo(s);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static DirectoryInfo CreateDirectory(String path) {
@@ -119,14 +115,14 @@ namespace System.IO {
// a demand at every level.
String demandDir = GetDemandDir(fullPath, true);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost)
{
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Read, path, demandDir);
state.EnsureState(); // do the check on the AppDomainManager to make sure this is allowed
}
-#elif !FEATURE_CORECLR
- new FileIOPermission(FileIOPermissionAccess.Read, new String[] { demandDir }, false, false).Demand();
+#else
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Read, demandDir, false, false);
#endif
InternalCreateDirectory(fullPath, path, null, checkHost);
@@ -152,7 +148,7 @@ namespace System.IO {
// We attempt to create directories only after all the security checks have passed. This is avoid doing
// a demand at every level.
String demandDir = GetDemandDir(fullPath, true);
- new FileIOPermission(FileIOPermissionAccess.Read, new String[] { demandDir }, false, false ).Demand();
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Read, demandDir, false, false );
InternalCreateDirectory(fullPath, path, directorySecurity);
@@ -173,23 +169,20 @@ namespace System.IO {
if (thisDirOnly) {
if (fullPath.EndsWith( Path.DirectorySeparatorChar )
|| fullPath.EndsWith( Path.AltDirectorySeparatorChar ) )
- demandPath = fullPath + '.';
+ demandPath = fullPath + ".";
else
- demandPath = fullPath + Path.DirectorySeparatorChar + '.';
+ demandPath = fullPath + Path.DirectorySeparatorCharAsString + ".";
}
else {
if (!(fullPath.EndsWith( Path.DirectorySeparatorChar )
|| fullPath.EndsWith( Path.AltDirectorySeparatorChar )) )
- demandPath = fullPath + Path.DirectorySeparatorChar;
+ demandPath = fullPath + Path.DirectorySeparatorCharAsString;
else
demandPath = fullPath;
}
return demandPath;
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
internal static void InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj)
@@ -198,11 +191,7 @@ namespace System.IO {
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
internal unsafe static void InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, bool checkHost)
@@ -219,11 +208,9 @@ namespace System.IO {
int lengthRoot = Path.GetRootLength(fullPath);
-#if !PLATFORM_UNIX
// For UNC paths that are only // or ///
if (length == 2 && Path.IsDirectorySeparator(fullPath[1]))
throw new IOException(Environment.GetResourceString("IO.IO_CannotCreateDirectory", path));
-#endif // !PLATFORM_UNIX
// We can save a bunch of work if the directory we want to create already exists. This also
// saves us in the case where sub paths are inaccessible (due to ERROR_ACCESS_DENIED) but the
@@ -273,7 +260,7 @@ namespace System.IO {
AccessControlActions control = (dirSecurity == null) ? AccessControlActions.None : AccessControlActions.Change;
new FileIOPermission(FileIOPermissionAccess.Write, control, securityList, false, false ).Demand();
#else
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost)
{
foreach (String demandPath in securityList)
@@ -282,7 +269,7 @@ namespace System.IO {
state.EnsureState();
}
}
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission(FileIOPermissionAccess.Write, securityList, false, false ).Demand();
#endif
#endif //!FEATURE_PAL && FEATURE_MACL
@@ -332,13 +319,13 @@ namespace System.IO {
firstError = currentError;
// Give the user a nice error message, but don't leak path information.
try {
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost)
{
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.PathDiscovery, String.Empty, GetDemandDir(name, true));
state.EnsureState();
}
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission(FileIOPermissionAccess.PathDiscovery, GetDemandDir(name, true)).Demand();
#endif // FEATURE_CORECLR
errorString = name;
@@ -405,14 +392,14 @@ namespace System.IO {
String fullPath = Path.GetFullPathInternal(path);
String demandPath = GetDemandDir(fullPath, true);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost)
{
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Read, path, demandPath);
state.EnsureState();
}
-#elif !FEATURE_CORECLR
- new FileIOPermission(FileIOPermissionAccess.Read, new String[] { demandPath }, false, false).Demand();
+#else
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Read, demandPath, false, false);
#endif
@@ -425,7 +412,7 @@ namespace System.IO {
catch (UnauthorizedAccessException)
{
#if !FEATURE_PAL
- Contract.Assert(false, "Ignore this assert and send a repro to [....]. This assert was tracking purposes only.");
+ Contract.Assert(false, "Ignore this assert and send a repro to Microsoft. This assert was tracking purposes only.");
#endif //!FEATURE_PAL
}
return false;
@@ -466,27 +453,19 @@ namespace System.IO {
[ResourceConsumption(ResourceScope.Machine)]
public unsafe static void SetCreationTimeUtc(String path,DateTime creationTimeUtc)
{
-#if !FEATURE_PAL
- if ((Environment.OSInfo & Environment.OSName.WinNT) == Environment.OSName.WinNT)
-#endif //!FEATURE_PAL
- {
- using (SafeFileHandle handle = Directory.OpenHandle(path)) {
- Win32Native.FILE_TIME fileTime = new Win32Native.FILE_TIME(creationTimeUtc.ToFileTimeUtc());
- bool r = Win32Native.SetFileTime(handle, &fileTime, null, null);
- if (!r)
- {
- int errorCode = Marshal.GetLastWin32Error();
- __Error.WinIOError(errorCode, path);
- }
+ using (SafeFileHandle handle = Directory.OpenHandle(path)) {
+ Win32Native.FILE_TIME fileTime = new Win32Native.FILE_TIME(creationTimeUtc.ToFileTimeUtc());
+ bool r = Win32Native.SetFileTime(handle, &fileTime, null, null);
+ if (!r)
+ {
+ int errorCode = Marshal.GetLastWin32Error();
+ __Error.WinIOError(errorCode, path);
}
}
}
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
public static DateTime GetCreationTime(String path)
{
return File.GetCreationTime(path);
@@ -511,27 +490,19 @@ namespace System.IO {
[ResourceConsumption(ResourceScope.Machine)]
public unsafe static void SetLastWriteTimeUtc(String path,DateTime lastWriteTimeUtc)
{
-#if !FEATURE_PAL
- if ((Environment.OSInfo & Environment.OSName.WinNT) == Environment.OSName.WinNT)
-#endif //!FEATURE_PAL
- {
- using (SafeFileHandle handle = Directory.OpenHandle(path)) {
- Win32Native.FILE_TIME fileTime = new Win32Native.FILE_TIME(lastWriteTimeUtc.ToFileTimeUtc());
- bool r = Win32Native.SetFileTime(handle, null, null, &fileTime);
- if (!r)
- {
- int errorCode = Marshal.GetLastWin32Error();
- __Error.WinIOError(errorCode, path);
- }
+ using (SafeFileHandle handle = Directory.OpenHandle(path)) {
+ Win32Native.FILE_TIME fileTime = new Win32Native.FILE_TIME(lastWriteTimeUtc.ToFileTimeUtc());
+ bool r = Win32Native.SetFileTime(handle, null, null, &fileTime);
+ if (!r)
+ {
+ int errorCode = Marshal.GetLastWin32Error();
+ __Error.WinIOError(errorCode, path);
}
}
}
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
public static DateTime GetLastWriteTime(String path)
{
return File.GetLastWriteTime(path);
@@ -556,27 +527,19 @@ namespace System.IO {
[ResourceConsumption(ResourceScope.Machine)]
public unsafe static void SetLastAccessTimeUtc(String path,DateTime lastAccessTimeUtc)
{
-#if !FEATURE_PAL
- if ((Environment.OSInfo & Environment.OSName.WinNT) == Environment.OSName.WinNT)
-#endif //!FEATURE_PAL
- {
- using (SafeFileHandle handle = Directory.OpenHandle(path)) {
- Win32Native.FILE_TIME fileTime = new Win32Native.FILE_TIME(lastAccessTimeUtc.ToFileTimeUtc());
- bool r = Win32Native.SetFileTime(handle, null, &fileTime, null);
- if (!r)
- {
- int errorCode = Marshal.GetLastWin32Error();
- __Error.WinIOError(errorCode, path);
- }
+ using (SafeFileHandle handle = Directory.OpenHandle(path)) {
+ Win32Native.FILE_TIME fileTime = new Win32Native.FILE_TIME(lastAccessTimeUtc.ToFileTimeUtc());
+ bool r = Win32Native.SetFileTime(handle, null, &fileTime, null);
+ if (!r)
+ {
+ int errorCode = Marshal.GetLastWin32Error();
+ __Error.WinIOError(errorCode, path);
}
}
}
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
public static DateTime GetLastAccessTime(String path)
{
return File.GetLastAccessTime(path);
@@ -621,9 +584,6 @@ namespace System.IO {
// Returns an array of filenames in the DirectoryInfo specified by path
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [SecurityCritical]
-#endif
public static String[] GetFiles(String path)
{
if (path == null)
@@ -638,9 +598,6 @@ namespace System.IO {
// given search pattern (ie, "*.txt").
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [SecurityCritical]
-#endif
public static String[] GetFiles(String path, String searchPattern)
{
if (path == null)
@@ -673,9 +630,6 @@ namespace System.IO {
// Returns an array of Files in the current DirectoryInfo matching the
// given search pattern (ie, "*.txt") and search option
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
private static String[] InternalGetFiles(String path, String searchPattern, SearchOption searchOption)
@@ -702,9 +656,6 @@ namespace System.IO {
// Returns an array of Directories in the current directory.
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [SecurityCritical]
-#endif
public static String[] GetDirectories(String path)
{
if (path == null)
@@ -719,9 +670,6 @@ namespace System.IO {
// given search criteria (ie, "*.txt").
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [SecurityCritical]
-#endif
public static String[] GetDirectories(String path, String searchPattern)
{
if (path == null)
@@ -754,9 +702,6 @@ namespace System.IO {
// Returns an array of Directories in the current DirectoryInfo matching the
// given search criteria (ie, "*.txt").
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
private static String[] InternalGetDirectories(String path, String searchPattern, SearchOption searchOption)
@@ -785,9 +730,6 @@ namespace System.IO {
// Returns an array of strongly typed FileSystemInfo entries in the path
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [SecurityCritical]
-#endif
public static String[] GetFileSystemEntries(String path)
{
if (path == null)
@@ -802,9 +744,6 @@ namespace System.IO {
// given search criteria (ie, "*.txt"). We disallow .. as a part of the search criteria
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [SecurityCritical]
-#endif
public static String[] GetFileSystemEntries(String path, String searchPattern)
{
if (path == null)
@@ -835,9 +774,6 @@ namespace System.IO {
return InternalGetFileSystemEntries(path, searchPattern, searchOption);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
private static String[] InternalGetFileSystemEntries(String path, String searchPattern, SearchOption searchOption)
@@ -876,9 +812,6 @@ namespace System.IO {
// the given search criteria against every dir.
// For all the dirs/files returned, it will then demand path discovery permission for
// their parent folders (it will avoid duplicate permission checks)
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
internal static String[] InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, bool includeFiles, bool includeDirs, SearchOption searchOption, bool checkHost)
@@ -895,9 +828,6 @@ namespace System.IO {
return fileList.ToArray();
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static IEnumerable<String> EnumerateDirectories(String path)
@@ -909,9 +839,6 @@ namespace System.IO {
return InternalEnumerateDirectories(path, "*", SearchOption.TopDirectoryOnly);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static IEnumerable<String> EnumerateDirectories(String path, String searchPattern)
@@ -925,9 +852,6 @@ namespace System.IO {
return InternalEnumerateDirectories(path, searchPattern, SearchOption.TopDirectoryOnly);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static IEnumerable<String> EnumerateDirectories(String path, String searchPattern, SearchOption searchOption)
@@ -943,9 +867,6 @@ namespace System.IO {
return InternalEnumerateDirectories(path, searchPattern, searchOption);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
private static IEnumerable<String> InternalEnumerateDirectories(String path, String searchPattern, SearchOption searchOption)
@@ -957,9 +878,6 @@ namespace System.IO {
return EnumerateFileSystemNames(path, searchPattern, searchOption, false, true);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static IEnumerable<String> EnumerateFiles(String path)
@@ -972,9 +890,6 @@ namespace System.IO {
return InternalEnumerateFiles(path, "*", SearchOption.TopDirectoryOnly);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static IEnumerable<String> EnumerateFiles(String path, String searchPattern)
@@ -989,9 +904,6 @@ namespace System.IO {
return InternalEnumerateFiles(path, searchPattern, SearchOption.TopDirectoryOnly);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static IEnumerable<String> EnumerateFiles(String path, String searchPattern, SearchOption searchOption)
@@ -1008,9 +920,6 @@ namespace System.IO {
return InternalEnumerateFiles(path, searchPattern, searchOption);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
private static IEnumerable<String> InternalEnumerateFiles(String path, String searchPattern, SearchOption searchOption)
@@ -1023,9 +932,6 @@ namespace System.IO {
return EnumerateFileSystemNames(path, searchPattern, searchOption, true, false);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static IEnumerable<String> EnumerateFileSystemEntries(String path)
@@ -1038,9 +944,6 @@ namespace System.IO {
return InternalEnumerateFileSystemEntries(path, "*", SearchOption.TopDirectoryOnly);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static IEnumerable<String> EnumerateFileSystemEntries(String path, String searchPattern)
@@ -1055,9 +958,6 @@ namespace System.IO {
return InternalEnumerateFileSystemEntries(path, searchPattern, SearchOption.TopDirectoryOnly);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static IEnumerable<String> EnumerateFileSystemEntries(String path, String searchPattern, SearchOption searchOption)
@@ -1074,9 +974,6 @@ namespace System.IO {
return InternalEnumerateFileSystemEntries(path, searchPattern, searchOption);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
private static IEnumerable<String> InternalEnumerateFileSystemEntries(String path, String searchPattern, SearchOption searchOption)
@@ -1089,9 +986,6 @@ namespace System.IO {
return EnumerateFileSystemNames(path, searchPattern, searchOption, true, true);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
private static IEnumerable<String> EnumerateFileSystemNames(String path, String searchPattern, SearchOption searchOption,
bool includeFiles, bool includeDirs)
{
@@ -1109,7 +1003,6 @@ namespace System.IO {
//
// Your application must have System Info permission.
//
-#if !PLATFORM_UNIX
[System.Security.SecuritySafeCritical] // auto-generated
public static String[] GetLogicalDrives()
{
@@ -1141,20 +1034,8 @@ namespace System.IO {
}
return result;
}
-#else
- public static String[] GetLogicalDrives()
- {
- // On Unix systems, GetLogicalDrives
- // should return an empty string array
- return new String[0];
- }
-#endif // !PLATFORM_UNIX
-
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
+
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static String GetDirectoryRoot(String path) {
@@ -1166,11 +1047,11 @@ namespace System.IO {
String root = fullPath.Substring(0, Path.GetRootLength(fullPath));
String demandPath = GetDemandDir(root, true);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.PathDiscovery, path, demandPath);
state.EnsureState();
-#elif !FEATURE_CORECLR
- new FileIOPermission(FileIOPermissionAccess.PathDiscovery, new String[] { demandPath }, false, false ).Demand();
+#else
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.PathDiscovery, demandPath, false, false);
#endif
return root;
@@ -1188,11 +1069,7 @@ namespace System.IO {
**Arguments: The current DirectoryInfo to which to switch to the setter.
**Exceptions:
==============================================================================*/
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static String GetCurrentDirectory()
@@ -1238,13 +1115,13 @@ namespace System.IO {
String demandPath = GetDemandDir(currentDirectory, true);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost)
{
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.PathDiscovery, String.Empty, demandPath);
state.EnsureState();
}
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission( FileIOPermissionAccess.PathDiscovery, new String[] { demandPath }, false, false ).Demand();
#endif
return currentDirectory;
@@ -1287,11 +1164,7 @@ namespace System.IO {
}
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void Move(String sourceDirName,String destDirName) {
@@ -1332,16 +1205,16 @@ namespace System.IO {
if (destPath.Length >= Path.MAX_DIRECTORY_PATH)
throw new PathTooLongException(Environment.GetResourceString("IO.PathTooLong"));
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost) {
FileSecurityState sourceState = new FileSecurityState(FileSecurityStateAccess.Write | FileSecurityStateAccess.Read, sourceDirName, sourcePath);
FileSecurityState destState = new FileSecurityState(FileSecurityStateAccess.Write, destDirName, destPath);
sourceState.EnsureState();
destState.EnsureState();
}
-#elif !FEATURE_CORECLR
- new FileIOPermission(FileIOPermissionAccess.Write | FileIOPermissionAccess.Read, new String[] { sourcePath }, false, false ).Demand();
- new FileIOPermission(FileIOPermissionAccess.Write, new String[] { destPath }, false, false ).Demand();
+#else
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Write | FileIOPermissionAccess.Read, sourcePath, false, false);
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Write, destPath, false, false);
#endif
if (String.Compare(sourcePath, destPath, StringComparison.OrdinalIgnoreCase) == 0)
@@ -1367,11 +1240,7 @@ namespace System.IO {
}
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void Delete(String path)
@@ -1380,11 +1249,7 @@ namespace System.IO {
Delete(fullPath, path, false, true);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void Delete(String path, bool recursive)
@@ -1415,13 +1280,13 @@ namespace System.IO {
// else check for the whole directory structure rooted below
demandPath = GetDemandDir(fullPath, !recursive);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost)
{
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Write, userPath, demandPath);
state.EnsureState();
}
-#elif !FEATURE_CORECLR
+#else
// Make sure we have write permission to this directory
new FileIOPermission(FileIOPermissionAccess.Write, new String[] { demandPath }, false, false ).Demand();
#endif
@@ -1470,7 +1335,7 @@ namespace System.IO {
Win32Native.WIN32_FIND_DATA data = new Win32Native.WIN32_FIND_DATA();
// Open a Find handle
- using (SafeFindHandle hnd = Win32Native.FindFirstFile(fullPath+Path.DirectorySeparatorChar+"*", data)) {
+ using (SafeFindHandle hnd = Win32Native.FindFirstFile(fullPath+Path.DirectorySeparatorCharAsString+"*", data)) {
if (hnd.IsInvalid) {
hr = Marshal.GetLastWin32Error();
__Error.WinIOError(hr, fullPath);
@@ -1594,16 +1459,13 @@ namespace System.IO {
[ResourceConsumption(ResourceScope.Machine)]
private static SafeFileHandle OpenHandle(String path)
{
-#if !FEATURE_PAL
- Contract.Assert((Environment.OSInfo & Environment.OSName.WinNT) == Environment.OSName.WinNT,"Not running on Winnt OS");
-#endif //!FEATURE_PAL
String fullPath = Path.GetFullPathInternal(path);
String root = Path.GetPathRoot(fullPath);
if (root == fullPath && root[1] == Path.VolumeSeparatorChar)
throw new ArgumentException(Environment.GetResourceString("Arg_PathIsVolume"));
#if !FEATURE_CORECLR
- new FileIOPermission(FileIOPermissionAccess.Write, new String[] { GetDemandDir(fullPath, true) }, false, false ).Demand();
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Write, GetDemandDir(fullPath, true), false, false);
#endif
SafeFileHandle handle = Win32Native.SafeCreateFile (
diff --git a/mcs/class/referencesource/mscorlib/system/io/directoryinfo.cs b/mcs/class/referencesource/mscorlib/system/io/directoryinfo.cs
index 5834a4cc06f..c675bd5e712 100644
--- a/mcs/class/referencesource/mscorlib/system/io/directoryinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/directoryinfo.cs
@@ -7,7 +7,7 @@
**
** Class: DirectoryInfo
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Exposes routines for enumerating through a
@@ -64,11 +64,7 @@ namespace System.IO {
}
#endif
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public DirectoryInfo(String path)
@@ -99,13 +95,13 @@ namespace System.IO {
String fullPath = Path.GetFullPathInternal(path);
demandDir = new String[] {Directory.GetDemandDir(fullPath, true)};
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost)
{
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Read, OriginalPath, fullPath);
state.EnsureState();
}
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission(FileIOPermissionAccess.Read, demandDir, false, false ).Demand();
#endif
@@ -116,11 +112,7 @@ namespace System.IO {
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
#if FEATURE_CORESYSTEM
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
#endif //FEATURE_CORESYSTEM
internal DirectoryInfo(String fullPath, bool junk)
{
@@ -159,11 +151,7 @@ namespace System.IO {
}
public DirectoryInfo Parent {
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
get {
@@ -177,10 +165,10 @@ namespace System.IO {
if (parentName==null)
return null;
DirectoryInfo dir = new DirectoryInfo(parentName,false);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.PathDiscovery | FileSecurityStateAccess.Read, String.Empty, dir.demandDir[0]);
state.EnsureState();
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission(FileIOPermissionAccess.PathDiscovery | FileIOPermissionAccess.Read, dir.demandDir, false, false).Demand();
#endif
return dir;
@@ -191,11 +179,7 @@ namespace System.IO {
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
#if FEATURE_CORECLR
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
#endif
public DirectoryInfo CreateSubdirectory(String path) {
if (path == null)
@@ -246,10 +230,10 @@ namespace System.IO {
// Ensure we have permission to create this subdirectory.
String demandDirForCreation = Directory.GetDemandDir(fullPath, true);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Write, OriginalPath, demandDirForCreation);
state.EnsureState();
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission(FileIOPermissionAccess.Write, new String[] { demandDirForCreation }, false, false).Demand();
#endif
@@ -261,9 +245,6 @@ namespace System.IO {
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
public void Create()
{
Directory.InternalCreateDirectory(FullPath, OriginalPath, null, true);
@@ -330,9 +311,6 @@ namespace System.IO {
// given search criteria (ie, "*.txt").
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [SecurityCritical]
-#endif
public FileInfo[] GetFiles(String searchPattern)
{
if (searchPattern == null)
@@ -359,9 +337,6 @@ namespace System.IO {
// Returns an array of Files in the current DirectoryInfo matching the
// given search criteria (ie, "*.txt").
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
private FileInfo[] InternalGetFiles(String searchPattern, SearchOption searchOption)
@@ -377,10 +352,6 @@ namespace System.IO {
// Returns an array of Files in the DirectoryInfo specified by path
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [SecurityCritical]
-#endif
-
public FileInfo[] GetFiles()
{
return InternalGetFiles("*", SearchOption.TopDirectoryOnly);
@@ -389,9 +360,6 @@ namespace System.IO {
// Returns an array of Directories in the current directory.
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [SecurityCritical]
-#endif
public DirectoryInfo[] GetDirectories()
{
return InternalGetDirectories("*", SearchOption.TopDirectoryOnly);
@@ -401,9 +369,6 @@ namespace System.IO {
// given search criteria (ie, "*.txt").
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [SecurityCritical]
-#endif
public FileSystemInfo[] GetFileSystemInfos(String searchPattern)
{
if (searchPattern == null)
@@ -430,9 +395,6 @@ namespace System.IO {
// Returns an array of strongly typed FileSystemInfo entries in the path with the
// given search criteria (ie, "*.txt").
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
private FileSystemInfo[] InternalGetFileSystemInfos(String searchPattern, SearchOption searchOption)
@@ -449,9 +411,6 @@ namespace System.IO {
// of all the files and directories.
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [SecurityCritical]
-#endif
public FileSystemInfo[] GetFileSystemInfos()
{
return InternalGetFileSystemInfos("*", SearchOption.TopDirectoryOnly);
@@ -462,9 +421,6 @@ namespace System.IO {
// directories).
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [SecurityCritical]
-#endif
public DirectoryInfo[] GetDirectories(String searchPattern)
{
if (searchPattern == null)
@@ -493,9 +449,6 @@ namespace System.IO {
// Returns an array of Directories in the current DirectoryInfo matching the
// given search criteria (ie, "System*" could match the System & System32
// directories).
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
private DirectoryInfo[] InternalGetDirectories(String searchPattern, SearchOption searchOption)
@@ -508,9 +461,6 @@ namespace System.IO {
return fileList.ToArray();
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public IEnumerable<DirectoryInfo> EnumerateDirectories()
@@ -518,9 +468,6 @@ namespace System.IO {
return InternalEnumerateDirectories("*", SearchOption.TopDirectoryOnly);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public IEnumerable<DirectoryInfo> EnumerateDirectories(String searchPattern)
@@ -532,9 +479,6 @@ namespace System.IO {
return InternalEnumerateDirectories(searchPattern, SearchOption.TopDirectoryOnly);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public IEnumerable<DirectoryInfo> EnumerateDirectories(String searchPattern, SearchOption searchOption)
@@ -548,9 +492,6 @@ namespace System.IO {
return InternalEnumerateDirectories(searchPattern, searchOption);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
private IEnumerable<DirectoryInfo> InternalEnumerateDirectories(String searchPattern, SearchOption searchOption)
@@ -561,9 +502,6 @@ namespace System.IO {
return FileSystemEnumerableFactory.CreateDirectoryInfoIterator(FullPath, OriginalPath, searchPattern, searchOption);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public IEnumerable<FileInfo> EnumerateFiles()
@@ -571,9 +509,6 @@ namespace System.IO {
return InternalEnumerateFiles("*", SearchOption.TopDirectoryOnly);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public IEnumerable<FileInfo> EnumerateFiles(String searchPattern)
@@ -585,9 +520,6 @@ namespace System.IO {
return InternalEnumerateFiles(searchPattern, SearchOption.TopDirectoryOnly);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public IEnumerable<FileInfo> EnumerateFiles(String searchPattern, SearchOption searchOption)
@@ -601,9 +533,6 @@ namespace System.IO {
return InternalEnumerateFiles(searchPattern, searchOption);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
private IEnumerable<FileInfo> InternalEnumerateFiles(String searchPattern, SearchOption searchOption)
@@ -614,9 +543,6 @@ namespace System.IO {
return FileSystemEnumerableFactory.CreateFileInfoIterator(FullPath, OriginalPath, searchPattern, searchOption);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public IEnumerable<FileSystemInfo> EnumerateFileSystemInfos()
@@ -624,9 +550,6 @@ namespace System.IO {
return InternalEnumerateFileSystemInfos("*", SearchOption.TopDirectoryOnly);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public IEnumerable<FileSystemInfo> EnumerateFileSystemInfos(String searchPattern)
@@ -638,9 +561,6 @@ namespace System.IO {
return InternalEnumerateFileSystemInfos(searchPattern, SearchOption.TopDirectoryOnly);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public IEnumerable<FileSystemInfo> EnumerateFileSystemInfos(String searchPattern, SearchOption searchOption)
@@ -654,9 +574,6 @@ namespace System.IO {
return InternalEnumerateFileSystemInfos(searchPattern, searchOption);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
private IEnumerable<FileSystemInfo> InternalEnumerateFileSystemInfos(String searchPattern, SearchOption searchOption)
@@ -667,7 +584,6 @@ namespace System.IO {
return FileSystemEnumerableFactory.CreateFileSystemInfoIterator(FullPath, OriginalPath, searchPattern, searchOption);
}
-#if !PLATFORM_UNIX
// Returns the root portion of the given path. The resulting string
// consists of those rightmost characters of the path that constitute the
// root of the path. Possible patterns for the resulting string are: An
@@ -677,22 +593,9 @@ namespace System.IO {
// and "\\server\share" (a UNC path for a given server and share name).
// The resulting string is null if path is null.
//
-#else
- // Returns the root portion of the given path. The resulting string
- // consists of those rightmost characters of the path that constitute the
- // root of the path. Possible patterns for the resulting string are: An
- // empty string (a relative path on the current drive), "\" (an absolute
- // path on the current drive)
- // The resulting string is null if path is null.
- //
-#endif // !PLATFORM_UNIX
public DirectoryInfo Root {
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
get
@@ -702,21 +605,17 @@ namespace System.IO {
String rootPath = FullPath.Substring(0, rootLength);
demandPath = Directory.GetDemandDir(rootPath, true);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState sourceState = new FileSecurityState(FileSecurityStateAccess.PathDiscovery, String.Empty, demandPath);
sourceState.EnsureState();
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission(FileIOPermissionAccess.PathDiscovery, new String[] { demandPath }, false, false).Demand();
#endif
return new DirectoryInfo(rootPath);
}
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public void MoveTo(String destDirName) {
@@ -726,10 +625,10 @@ namespace System.IO {
throw new ArgumentException(Environment.GetResourceString("Argument_EmptyFileName"), "destDirName");
Contract.EndContractBlock();
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState sourceState = new FileSecurityState(FileSecurityStateAccess.Write | FileSecurityStateAccess.Read, DisplayPath, Directory.GetDemandDir(FullPath, true));
sourceState.EnsureState();
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission(FileIOPermissionAccess.Write | FileIOPermissionAccess.Read, demandDir, false, false).Demand();
#endif
String fullDestDirName = Path.GetFullPathInternal(destDirName);
@@ -745,10 +644,10 @@ namespace System.IO {
// had the ability to read the file contents in the old location,
// but you technically also need read permissions to the new
// location as well, and write is not a true superset of read.
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState destState = new FileSecurityState(FileSecurityStateAccess.Write, destDirName, demandPath);
destState.EnsureState();
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission(FileIOPermissionAccess.Write | FileIOPermissionAccess.Read, demandPath).Demand();
#endif
@@ -790,11 +689,7 @@ namespace System.IO {
_dataInitialised = -1;
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
public override void Delete()
@@ -802,11 +697,7 @@ namespace System.IO {
Directory.Delete(FullPath, OriginalPath, false, true);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
public void Delete(bool recursive)
diff --git a/mcs/class/referencesource/mscorlib/system/io/directorynotfoundexception.cs b/mcs/class/referencesource/mscorlib/system/io/directorynotfoundexception.cs
index 93e9437ad8c..97c5dcc6b7e 100644
--- a/mcs/class/referencesource/mscorlib/system/io/directorynotfoundexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/directorynotfoundexception.cs
@@ -7,7 +7,7 @@
**
** Class: DirectoryNotFoundException
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Exception for accessing a path that doesn't exist.
diff --git a/mcs/class/referencesource/mscorlib/system/io/driveinfo.cs b/mcs/class/referencesource/mscorlib/system/io/driveinfo.cs
index 5f78933871d..7dd7a3bc3f1 100644
--- a/mcs/class/referencesource/mscorlib/system/io/driveinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/driveinfo.cs
@@ -7,7 +7,7 @@
**
** Class: DriveInfo
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Exposes routines for exploring a drive.
diff --git a/mcs/class/referencesource/mscorlib/system/io/drivenotfoundexception.cs b/mcs/class/referencesource/mscorlib/system/io/drivenotfoundexception.cs
index cfc543f3093..0361c2908a3 100644
--- a/mcs/class/referencesource/mscorlib/system/io/drivenotfoundexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/drivenotfoundexception.cs
@@ -7,7 +7,7 @@
//
// Class: DriveNotFoundException
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Purpose: Exception for accessing a drive that is not available.
//
diff --git a/mcs/class/referencesource/mscorlib/system/io/endofstreamexception.cs b/mcs/class/referencesource/mscorlib/system/io/endofstreamexception.cs
index aa07bc4c7f7..b0cd0d1c9ea 100644
--- a/mcs/class/referencesource/mscorlib/system/io/endofstreamexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/endofstreamexception.cs
@@ -7,7 +7,7 @@
**
** Class: EndOfStreamException
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Exception to be thrown when reading past end-of-file.
diff --git a/mcs/class/referencesource/mscorlib/system/io/file.cs b/mcs/class/referencesource/mscorlib/system/io/file.cs
index ef32fe8a298..94c45e4d2f9 100644
--- a/mcs/class/referencesource/mscorlib/system/io/file.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/file.cs
@@ -7,7 +7,7 @@
**
** Class: File
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: A collection of methods for manipulating Files.
@@ -40,9 +40,6 @@ namespace System.IO {
{
private const int GetFileExInfoStandard = 0;
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static StreamReader OpenText(String path)
@@ -55,9 +52,6 @@ namespace System.IO {
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
public static StreamWriter CreateText(String path)
{
if (path == null)
@@ -66,9 +60,6 @@ namespace System.IO {
return new StreamWriter(path,false);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static StreamWriter AppendText(String path)
@@ -89,9 +80,6 @@ namespace System.IO {
// Read permission to sourceFileName and Create
// and Write permissions to destFileName.
//
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void Copy(String sourceFileName, String destFileName) {
@@ -117,9 +105,6 @@ namespace System.IO {
// Read permission to sourceFileName
// and Write permissions to destFileName.
//
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void Copy(String sourceFileName, String destFileName, bool overwrite) {
@@ -156,11 +141,7 @@ namespace System.IO {
/// <devdoc>
/// Note: This returns the fully qualified name of the destination file.
/// </devdoc>
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
internal static String InternalCopy(String sourceFileName, String destFileName, bool overwrite, bool checkHost) {
@@ -172,16 +153,16 @@ namespace System.IO {
String fullSourceFileName = Path.GetFullPathInternal(sourceFileName);
String fullDestFileName = Path.GetFullPathInternal(destFileName);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost) {
FileSecurityState sourceState = new FileSecurityState(FileSecurityStateAccess.Read, sourceFileName, fullSourceFileName);
FileSecurityState destState = new FileSecurityState(FileSecurityStateAccess.Write, destFileName, fullDestFileName);
sourceState.EnsureState();
destState.EnsureState();
}
-#elif !FEATURE_CORECLR
- new FileIOPermission(FileIOPermissionAccess.Read, new String[] { fullSourceFileName }, false, false ).Demand();
- new FileIOPermission(FileIOPermissionAccess.Write, new String[] { fullDestFileName }, false, false ).Demand();
+#else
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Read, fullSourceFileName, false, false);
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Write, fullDestFileName, false, false);
#endif
bool r = Win32Native.CopyFile(fullSourceFileName, fullDestFileName, !overwrite);
@@ -220,9 +201,6 @@ namespace System.IO {
// Your application must have Create, Read, and Write permissions to
// the file.
//
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static FileStream Create(String path) {
@@ -239,9 +217,6 @@ namespace System.IO {
//
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
public static FileStream Create(String path, int bufferSize) {
return new FileStream(path, FileMode.Create, FileAccess.ReadWrite, FileShare.None, bufferSize);
}
@@ -269,11 +244,7 @@ namespace System.IO {
//
// Your application must have Delete permission to the target file.
//
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void Delete(String path) {
@@ -318,15 +289,15 @@ namespace System.IO {
{
String fullPath = Path.GetFullPathInternal(path);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost)
{
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Write, path, fullPath);
state.EnsureState();
}
-#elif !FEATURE_CORECLR
+#else
// For security check, path should be resolved to an absolute path.
- new FileIOPermission(FileIOPermissionAccess.Write, new String[] { fullPath }, false, false).Demand();
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Write, fullPath, false, false);
#endif
bool r = Win32Native.DeleteFile(fullPath);
@@ -354,7 +325,7 @@ namespace System.IO {
#else
String fullPath = Path.GetFullPathInternal(path);
- new FileIOPermission(FileIOPermissionAccess.Read | FileIOPermissionAccess.Write, new String[] { fullPath }, false, false).Demand();
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Read | FileIOPermissionAccess.Write, fullPath, false, false);
bool r = Win32Native.DecryptFile(fullPath, 0);
if (!r) {
@@ -385,7 +356,7 @@ namespace System.IO {
#else
String fullPath = Path.GetFullPathInternal(path);
- new FileIOPermission(FileIOPermissionAccess.Read | FileIOPermissionAccess.Write, new String[] { fullPath }, false, false).Demand();
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Read | FileIOPermissionAccess.Write, fullPath, false, false);
bool r = Win32Native.EncryptFile(fullPath);
if (!r) {
@@ -409,11 +380,7 @@ namespace System.IO {
//
// Your application must have Read permission for the target directory.
//
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static bool Exists(String path)
@@ -465,14 +432,14 @@ namespace System.IO {
return false;
}
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost)
{
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Read, String.Empty, path);
state.EnsureState();
}
-#elif !FEATURE_CORECLR
- new FileIOPermission(FileIOPermissionAccess.Read, new String[] { path }, false, false).Demand();
+#else
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Read, path, false, false);
#endif
return InternalExists(path);
@@ -495,27 +462,18 @@ namespace System.IO {
&& ((data.fileAttributes & Win32Native.FILE_ATTRIBUTE_DIRECTORY) == 0);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static FileStream Open(String path, FileMode mode) {
return Open(path, mode, (mode == FileMode.Append ? FileAccess.Write : FileAccess.ReadWrite), FileShare.None);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static FileStream Open(String path, FileMode mode, FileAccess access) {
return Open(path,mode, access, FileShare.None);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static FileStream Open(String path, FileMode mode, FileAccess access, FileShare share) {
@@ -546,11 +504,7 @@ namespace System.IO {
}
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static DateTime GetCreationTime(String path)
@@ -572,14 +526,14 @@ namespace System.IO {
private static DateTime InternalGetCreationTimeUtc(String path, bool checkHost)
{
String fullPath = Path.GetFullPathInternal(path);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost)
{
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Read, path, fullPath);
state.EnsureState();
}
-#elif !FEATURE_CORECLR
- new FileIOPermission(FileIOPermissionAccess.Read, new String[] { fullPath }, false, false ).Demand();
+#else
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Read, fullPath, false, false);
#endif
Win32Native.WIN32_FILE_ATTRIBUTE_DATA data = new Win32Native.WIN32_FILE_ATTRIBUTE_DATA();
@@ -615,11 +569,7 @@ namespace System.IO {
}
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static DateTime GetLastAccessTime(String path)
@@ -641,14 +591,14 @@ namespace System.IO {
private static DateTime InternalGetLastAccessTimeUtc(String path, bool checkHost)
{
String fullPath = Path.GetFullPathInternal(path);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost)
{
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Read, path, fullPath);
state.EnsureState();
}
-#elif !FEATURE_CORECLR
- new FileIOPermission(FileIOPermissionAccess.Read, new String[] { fullPath }, false, false ).Demand();
+#else
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Read, fullPath, false, false);
#endif
Win32Native.WIN32_FILE_ATTRIBUTE_DATA data = new Win32Native.WIN32_FILE_ATTRIBUTE_DATA();
@@ -684,11 +634,7 @@ namespace System.IO {
}
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static DateTime GetLastWriteTime(String path)
@@ -710,14 +656,14 @@ namespace System.IO {
private static DateTime InternalGetLastWriteTimeUtc(String path, bool checkHost)
{
String fullPath = Path.GetFullPathInternal(path);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost)
{
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Read, path, fullPath);
state.EnsureState();
}
-#elif !FEATURE_CORECLR
- new FileIOPermission(FileIOPermissionAccess.Read, new String[] { fullPath }, false, false ).Demand();
+#else
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Read, fullPath, false, false);
#endif
Win32Native.WIN32_FILE_ATTRIBUTE_DATA data = new Win32Native.WIN32_FILE_ATTRIBUTE_DATA();
@@ -729,21 +675,17 @@ namespace System.IO {
return DateTime.FromFileTimeUtc(dt);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static FileAttributes GetAttributes(String path)
{
String fullPath = Path.GetFullPathInternal(path);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Read, path, fullPath);
state.EnsureState();
-#elif !FEATURE_CORECLR
- new FileIOPermission(FileIOPermissionAccess.Read, new String[] { fullPath }, false, false).Demand();
+#else
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Read, fullPath, false, false);
#endif
Win32Native.WIN32_FILE_ATTRIBUTE_DATA data = new Win32Native.WIN32_FILE_ATTRIBUTE_DATA();
@@ -765,7 +707,7 @@ namespace System.IO {
{
String fullPath = Path.GetFullPathInternal(path);
#if !FEATURE_CORECLR
- new FileIOPermission(FileIOPermissionAccess.Write, new String[] { fullPath }, false, false).Demand();
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Write, fullPath, false, false);
#endif
bool r = Win32Native.SetFileAttributes(fullPath, (int) fileAttributes);
if (!r) {
@@ -807,11 +749,9 @@ namespace System.IO {
}
#endif
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#elif FEATURE_LEGACYNETCF
+#if FEATURE_LEGACYNETCF
[System.Security.SecuritySafeCritical]
-#endif // FEATURE_LEGACYNETCFIOSECURITY
+#endif // FEATURE_LEGACYNETCF
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static FileStream OpenRead(String path) {
@@ -833,9 +773,6 @@ namespace System.IO {
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static FileStream OpenWrite(String path) {
@@ -900,11 +837,7 @@ namespace System.IO {
return sr.ReadToEnd();
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else //FEATURE_LEGACYNETCFIOSECURITY
[System.Security.SecuritySafeCritical] // auto-generated
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void WriteAllText(String path, String contents)
@@ -918,11 +851,7 @@ namespace System.IO {
InternalWriteAllText(path, contents, StreamWriter.UTF8NoBOM, true);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else //FEATURE_LEGACYNETCFIOSECURITY
[System.Security.SecuritySafeCritical] // auto-generated
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void WriteAllText(String path, String contents, Encoding encoding)
@@ -1102,9 +1031,6 @@ namespace System.IO {
return lines.ToArray();
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static IEnumerable<String> ReadLines(String path)
@@ -1118,9 +1044,6 @@ namespace System.IO {
return ReadLinesIterator.CreateIterator(path, Encoding.UTF8);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static IEnumerable<String> ReadLines(String path, Encoding encoding)
@@ -1136,9 +1059,6 @@ namespace System.IO {
return ReadLinesIterator.CreateIterator(path, encoding);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void WriteAllLines(String path, String[] contents)
@@ -1154,9 +1074,6 @@ namespace System.IO {
InternalWriteAllLines(new StreamWriter(path, false, StreamWriter.UTF8NoBOM), contents);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void WriteAllLines(String path, String[] contents, Encoding encoding)
@@ -1174,9 +1091,6 @@ namespace System.IO {
InternalWriteAllLines(new StreamWriter(path, false, encoding), contents);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void WriteAllLines(String path, IEnumerable<String> contents)
@@ -1192,9 +1106,6 @@ namespace System.IO {
InternalWriteAllLines(new StreamWriter(path, false, StreamWriter.UTF8NoBOM), contents);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void WriteAllLines(String path, IEnumerable<String> contents, Encoding encoding)
@@ -1212,9 +1123,6 @@ namespace System.IO {
InternalWriteAllLines(new StreamWriter(path, false, encoding), contents);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
private static void InternalWriteAllLines(TextWriter writer, IEnumerable<String> contents)
@@ -1231,9 +1139,6 @@ namespace System.IO {
}
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void AppendAllText(String path, String contents)
@@ -1247,9 +1152,6 @@ namespace System.IO {
InternalAppendAllText(path, contents, StreamWriter.UTF8NoBOM);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void AppendAllText(String path, String contents, Encoding encoding)
@@ -1265,9 +1167,6 @@ namespace System.IO {
InternalAppendAllText(path, contents, encoding);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
private static void InternalAppendAllText(String path, String contents, Encoding encoding)
@@ -1280,9 +1179,6 @@ namespace System.IO {
sw.Write(contents);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void AppendAllLines(String path, IEnumerable<String> contents)
@@ -1298,9 +1194,6 @@ namespace System.IO {
InternalWriteAllLines(new StreamWriter(path, true, StreamWriter.UTF8NoBOM), contents);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void AppendAllLines(String path, IEnumerable<String> contents, Encoding encoding)
@@ -1326,11 +1219,7 @@ namespace System.IO {
// sourceFileName and Write
// permissions to destFileName.
//
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static void Move(String sourceFileName, String destFileName) {
@@ -1361,16 +1250,16 @@ namespace System.IO {
String fullSourceFileName = Path.GetFullPathInternal(sourceFileName);
String fullDestFileName = Path.GetFullPathInternal(destFileName);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost) {
FileSecurityState sourceState = new FileSecurityState(FileSecurityStateAccess.Write | FileSecurityStateAccess.Read, sourceFileName, fullSourceFileName);
FileSecurityState destState = new FileSecurityState(FileSecurityStateAccess.Write, destFileName, fullDestFileName);
sourceState.EnsureState();
destState.EnsureState();
}
-#elif !FEATURE_CORECLR
- new FileIOPermission(FileIOPermissionAccess.Write | FileIOPermissionAccess.Read, new String[] { fullSourceFileName }, false, false).Demand();
- new FileIOPermission(FileIOPermissionAccess.Write, new String[] { fullDestFileName }, false, false).Demand();
+#else
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Write | FileIOPermissionAccess.Read, fullSourceFileName, false, false);
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Write, fullDestFileName, false, false);
#endif
if (!InternalExists(fullSourceFileName))
@@ -1409,11 +1298,7 @@ namespace System.IO {
InternalReplace(sourceFileName, destinationFileName, destinationBackupFileName, ignoreMetadataErrors);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
private static void InternalReplace(String sourceFileName, String destinationFileName, String destinationBackupFileName, bool ignoreMetadataErrors)
@@ -1429,14 +1314,14 @@ namespace System.IO {
if (destinationBackupFileName != null)
fullBackupPath = Path.GetFullPathInternal(destinationBackupFileName);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState sourceState = new FileSecurityState(FileSecurityStateAccess.Read | FileSecurityStateAccess.Write, sourceFileName, fullSrcPath);
FileSecurityState destState = new FileSecurityState(FileSecurityStateAccess.Read | FileSecurityStateAccess.Write, destinationFileName, fullDestPath);
FileSecurityState backupState = new FileSecurityState(FileSecurityStateAccess.Read | FileSecurityStateAccess.Write, destinationBackupFileName, fullBackupPath);
sourceState.EnsureState();
destState.EnsureState();
backupState.EnsureState();
-#elif !FEATURE_CORECLR
+#else
FileIOPermission perm = new FileIOPermission(FileIOPermissionAccess.Read | FileIOPermissionAccess.Write, new String[] { fullSrcPath, fullDestPath});
if (destinationBackupFileName != null)
perm.AddPathList(FileIOPermissionAccess.Write, fullBackupPath);
diff --git a/mcs/class/referencesource/mscorlib/system/io/fileaccess.cs b/mcs/class/referencesource/mscorlib/system/io/fileaccess.cs
index 15933f4eb03..62cab1074cf 100644
--- a/mcs/class/referencesource/mscorlib/system/io/fileaccess.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/fileaccess.cs
@@ -7,7 +7,7 @@
**
** Enum: FileAccess
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Enum describing whether you want read and/or write
diff --git a/mcs/class/referencesource/mscorlib/system/io/fileattributes.cs b/mcs/class/referencesource/mscorlib/system/io/fileattributes.cs
index 16c96174bfb..65802434c9d 100644
--- a/mcs/class/referencesource/mscorlib/system/io/fileattributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/fileattributes.cs
@@ -37,8 +37,8 @@ namespace System.IO {
Offline = 0x1000,
NotContentIndexed = 0x2000,
Encrypted = 0x4000,
-
-#if !FEATURE_NETCORE
+
+#if !FEATURE_CORECLR
#if FEATURE_COMINTEROP
[System.Runtime.InteropServices.ComVisible(false)]
#endif // FEATURE_COMINTEROP
diff --git a/mcs/class/referencesource/mscorlib/system/io/fileinfo.cs b/mcs/class/referencesource/mscorlib/system/io/fileinfo.cs
index 7184a0353d7..ddda3f277f5 100644
--- a/mcs/class/referencesource/mscorlib/system/io/fileinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/fileinfo.cs
@@ -5,7 +5,7 @@
// ==--==
/*============================================================
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Class: File
**
@@ -63,11 +63,7 @@ namespace System.IO {
}
#endif
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public FileInfo(String fileName)
@@ -104,14 +100,14 @@ namespace System.IO {
OriginalPath = fileName;
// Must fully qualify the path for the security check
String fullPath = Path.GetFullPathInternal(fileName);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost)
{
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Read, fileName, fullPath);
state.EnsureState();
}
-#elif !FEATURE_CORECLR
- new FileIOPermission(FileIOPermissionAccess.Read, new String[] { fullPath }, false, false).Demand();
+#else
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Read, fullPath, false, false);
#endif
_name = Path.GetFileName(fileName);
@@ -140,11 +136,7 @@ namespace System.IO {
}
#if FEATURE_CORESYSTEM
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
#endif //FEATURE_CORESYSTEM
internal FileInfo(String fullPath, bool ignoreThis)
{
@@ -179,20 +171,16 @@ namespace System.IO {
/* Returns the name of the directory that the file is in */
public String DirectoryName
{
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
get
{
String directoryName = Path.GetDirectoryName(FullPath);
if (directoryName != null)
{
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Read, DisplayPath, FullPath);
state.EnsureState();
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission(FileIOPermissionAccess.PathDiscovery, new String[] { directoryName }, false, false).Demand();
#endif
}
@@ -203,9 +191,6 @@ namespace System.IO {
/* Creates an instance of the the parent directory */
public DirectoryInfo Directory
{
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
get
@@ -260,9 +245,6 @@ namespace System.IO {
return new StreamReader(FullPath, Encoding.UTF8, true, StreamReader.DefaultBufferSize, false);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public StreamWriter CreateText()
@@ -270,9 +252,6 @@ namespace System.IO {
return new StreamWriter(FullPath,false);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public StreamWriter AppendText()
@@ -290,9 +269,6 @@ namespace System.IO {
// Read permission to sourceFileName
// and Write permissions to destFileName.
//
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public FileInfo CopyTo(String destFileName) {
@@ -316,9 +292,6 @@ namespace System.IO {
// Read permission to sourceFileName and Create
// and Write permissions to destFileName.
//
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public FileInfo CopyTo(String destFileName, bool overwrite) {
@@ -332,9 +305,6 @@ namespace System.IO {
return new FileInfo(destFileName, false);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
public FileStream Create() {
@@ -351,19 +321,15 @@ namespace System.IO {
//
// Your application must have Delete permission to the target file.
//
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
public override void Delete()
{
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Write, DisplayPath, FullPath);
state.EnsureState();
-#elif !FEATURE_CORECLR
+#else
// For security check, path should be resolved to an absolute path.
new FileIOPermission(FileIOPermissionAccess.Write, new String[] { FullPath }, false, false).Demand();
#endif
@@ -424,27 +390,18 @@ namespace System.IO {
// User must explicitly specify opening a new file or appending to one.
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public FileStream Open(FileMode mode) {
return Open(mode, FileAccess.ReadWrite, FileShare.None);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public FileStream Open(FileMode mode, FileAccess access) {
return Open(mode, access, FileShare.None);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public FileStream Open(FileMode mode, FileAccess access, FileShare share) {
@@ -464,9 +421,6 @@ namespace System.IO {
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public FileStream OpenWrite() {
@@ -487,11 +441,7 @@ namespace System.IO {
// sourceFileName and Write
// permissions to destFileName.
//
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public void MoveTo(String destFileName) {
@@ -502,14 +452,14 @@ namespace System.IO {
Contract.EndContractBlock();
String fullDestFileName = Path.GetFullPathInternal(destFileName);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState sourceState = new FileSecurityState(FileSecurityStateAccess.Write | FileSecurityStateAccess.Read, DisplayPath, FullPath);
FileSecurityState destState = new FileSecurityState(FileSecurityStateAccess.Write, destFileName, fullDestFileName);
sourceState.EnsureState();
destState.EnsureState();
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission(FileIOPermissionAccess.Write | FileIOPermissionAccess.Read, new String[] { FullPath }, false, false).Demand();
- new FileIOPermission(FileIOPermissionAccess.Write, new String[] { fullDestFileName }, false, false).Demand();
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.Write, fullDestFileName, false, false);
#endif
if (!Win32Native.MoveFile(FullPath, fullDestFileName))
diff --git a/mcs/class/referencesource/mscorlib/system/io/fileloadexception.cs b/mcs/class/referencesource/mscorlib/system/io/fileloadexception.cs
index 2a7b803bed7..06b2ab35e81 100644
--- a/mcs/class/referencesource/mscorlib/system/io/fileloadexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/fileloadexception.cs
@@ -7,8 +7,8 @@
**
** Class: FileLoadException
**
-** <OWNER>[....]</OWNER>
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Exception for failure to load a file that was successfully found.
diff --git a/mcs/class/referencesource/mscorlib/system/io/filemode.cs b/mcs/class/referencesource/mscorlib/system/io/filemode.cs
index 164b3c0f0d0..a88f4cb0ea4 100644
--- a/mcs/class/referencesource/mscorlib/system/io/filemode.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/filemode.cs
@@ -7,7 +7,7 @@
**
** Enum: FileMode
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Enum describing whether to create a new file or
diff --git a/mcs/class/referencesource/mscorlib/system/io/filenotfoundexception.cs b/mcs/class/referencesource/mscorlib/system/io/filenotfoundexception.cs
index 088ef61170f..985d9e1a1c3 100644
--- a/mcs/class/referencesource/mscorlib/system/io/filenotfoundexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/filenotfoundexception.cs
@@ -7,8 +7,8 @@
**
** Class: FileNotFoundException
**
-** <OWNER>[....]</OWNER>
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Exception for accessing a file that doesn't exist.
diff --git a/mcs/class/referencesource/mscorlib/system/io/fileshare.cs b/mcs/class/referencesource/mscorlib/system/io/fileshare.cs
index 6a7e0115d08..bde17d3fbd1 100644
--- a/mcs/class/referencesource/mscorlib/system/io/fileshare.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/fileshare.cs
@@ -7,7 +7,7 @@
**
** Enum: FileShare
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Enum describing how to share files with other
diff --git a/mcs/class/referencesource/mscorlib/system/io/filestream.cs b/mcs/class/referencesource/mscorlib/system/io/filestream.cs
index a544fe200fe..14aaf800073 100644
--- a/mcs/class/referencesource/mscorlib/system/io/filestream.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/filestream.cs
@@ -7,7 +7,7 @@
**
** Class: FileStream
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Exposes a Stream around a file, with full
@@ -28,7 +28,9 @@ using System.Threading;
using System.Threading.Tasks;
#endif
using System.Runtime.InteropServices;
+#if FEATURE_REMOTING
using System.Runtime.Remoting.Messaging;
+#endif
using System.Runtime.CompilerServices;
using System.Globalization;
using System.Runtime.Versioning;
@@ -37,11 +39,11 @@ using System.Diagnostics.Tracing;
/*
* FileStream supports different modes of accessing the disk - async mode
- * and [....] mode. They are two completely different codepaths in the
- * [....] & async methods (ie, Read/Write vs. BeginRead/BeginWrite). File
- * handles in NT can be opened in only [....] or overlapped (async) mode,
+ * and sync mode. They are two completely different codepaths in the
+ * sync & async methods (ie, Read/Write vs. BeginRead/BeginWrite). File
+ * handles in NT can be opened in only sync or overlapped (async) mode,
* and we have to deal with this pain. Stream has implementations of
- * the [....] methods in terms of the async ones, so we'll
+ * the sync methods in terms of the async ones, so we'll
* call through to our base class to get those methods when necessary.
*
* Also buffering is added into FileStream as well. Folded in the
@@ -325,10 +327,8 @@ namespace System.IO {
(FileStreamAsyncResult)overlapped.AsyncResult;
asyncResult._numBytes = (int)numBytes;
-#if !FEATURE_CORECLR
if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.ThreadTransfer))
FrameworkEventSource.Log.ThreadTransferReceive((long)(asyncResult.OverLapped), 2, string.Empty);
-#endif // FEATURE_CORECLR
// Handle reading from & writing to closed pipes. While I'm not sure
// this is entirely necessary anymore, maybe it's possible for
@@ -371,7 +371,6 @@ namespace System.IO {
{
Contract.Assert(_handle != null, "_handle should not be null.");
Contract.Assert(_overlapped != null, "Cancel should only be called on true asynchronous FileStreamAsyncResult, i.e. _overlapped is not null");
- Contract.Assert(Environment.IsWindowsVistaOrAbove, "Cancel should only be called on Windows Vista or above.");
if (IsCompleted)
return;
@@ -399,14 +398,11 @@ namespace System.IO {
internal const int DefaultBufferSize = 4096;
-#if FEATURE_ASYNC_IO
+#if FEATURE_LEGACYNETCF
// Mango didn't do support Async IO.
- private static readonly bool _canUseAsync = Environment.RunningOnWinNT && !CompatibilitySwitches.IsAppEarlierThanWindowsPhone8;
+ private static readonly bool _canUseAsync = !CompatibilitySwitches.IsAppEarlierThanWindowsPhone8;
#else
- // @todo: This #ifdef factoring fixes the public api async behavior for M6 with minimal risk. When more
- // time is available, we should more rigorously scrub out all references for FileStreamAsyncResult and AsyncFSCallback
- // (this requires corresponding changes in the src\vm tree as well.)
- private static readonly bool _canUseAsync = false;
+ private const bool _canUseAsync = true;
#endif //FEATURE_ASYNC_IO
private byte[] _buffer; // Shared read/write buffer. Alloc on first use.
@@ -437,11 +433,7 @@ namespace System.IO {
internal FileStream() {
}
#if FEATURE_CORECLR
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public FileStream(String path, FileMode mode)
@@ -462,11 +454,7 @@ namespace System.IO {
#endif // FEATURE_LEGACYNETCF
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public FileStream(String path, FileMode mode, FileAccess access)
@@ -487,11 +475,7 @@ namespace System.IO {
#endif // FEATURE_LEGACYNETCF
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public FileStream(String path, FileMode mode, FileAccess access, FileShare share)
@@ -512,11 +496,7 @@ namespace System.IO {
#endif // FEATURE_LEGACYNETCF
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public FileStream(String path, FileMode mode, FileAccess access, FileShare share, int bufferSize)
@@ -634,11 +614,7 @@ namespace System.IO {
}
// AccessControl namespace is not defined in Rotor
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
private void Init(String path, FileMode mode, FileAccess access, int rights, bool useRights, FileShare share, int bufferSize, FileOptions options, Win32Native.SECURITY_ATTRIBUTES secAttrs, String msgPath, bool bFromProxy, bool useLongPath, bool checkHost)
@@ -752,10 +728,8 @@ namespace System.IO {
Path.CheckInvalidPathChars(filePath, true);
-#if !PLATFORM_UNIX
if (filePath.IndexOf( ':', 2 ) != -1)
throw new NotSupportedException( Environment.GetResourceString( "Argument_PathFormatNotSupported" ) );
-#endif // !PLATFORM_UNIX
bool read = false;
@@ -824,14 +798,14 @@ namespace System.IO {
AccessControlActions control = specifiedAcl ? AccessControlActions.Change : AccessControlActions.None;
new FileIOPermission(secAccess, control, new String[] { filePath }, false, false).Demand();
#else
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost) {
FileSecurityState state = new FileSecurityState(FileSecurityState.ToFileSecurityState(secAccess), path, filePath);
state.EnsureState();
}
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission(secAccess, new String[] { filePath }, false, false).Demand();
-#endif // FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#endif // FEATURE_CORECLR
#endif
}
@@ -920,8 +894,7 @@ namespace System.IO {
throw new NotSupportedException(Environment.GetResourceString("NotSupported_FileStreamOnNonFiles"));
}
-#if !FEATURE_PAL
-#if !FEATURE_CORECLR
+#if FEATURE_ASYNC_IO
// This is necessary for async IO using IO Completion ports via our
// managed Threadpool API's. This (theoretically) calls the OS's
// BindIoCompletionCallback method, and passes in a stub for the
@@ -948,8 +921,7 @@ namespace System.IO {
if (!b)
throw new IOException(Environment.GetResourceString("IO.IO_BindHandleFailed"));
}
-#endif // FEATURE_CORECLR
-#endif //!FEATURE_PAL
+#endif // FEATURE_ASYNC_IO
if (!useRights) {
_canRead = (access & FileAccess.Read) != 0;
_canWrite = (access & FileAccess.Write) != 0;
@@ -1049,7 +1021,7 @@ namespace System.IO {
int handleType = Win32Native.GetFileType(_handle);
Contract.Assert(handleType == Win32Native.FILE_TYPE_DISK || handleType == Win32Native.FILE_TYPE_PIPE || handleType == Win32Native.FILE_TYPE_CHAR, "FileStream was passed an unknown file type!");
- _isAsync = isAsync && _canUseAsync; // On Win9x, just do the right thing.
+ _isAsync = isAsync && _canUseAsync;
_canRead = 0 != (access & FileAccess.Read);
_canWrite = 0 != (access & FileAccess.Write);
_canSeek = handleType == Win32Native.FILE_TYPE_DISK;
@@ -1222,18 +1194,14 @@ namespace System.IO {
}
public String Name {
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
get {
if (_fileName == null)
return Environment.GetResourceString("IO_UnknownFileName");
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState sourceState = new FileSecurityState(FileSecurityStateAccess.PathDiscovery, String.Empty, _fileName);
sourceState.EnsureState();
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission(FileIOPermissionAccess.PathDiscovery, new String[] { _fileName }, false, false).Demand();
#endif
return _fileName;
@@ -1256,7 +1224,7 @@ namespace System.IO {
Contract.Assert((_readPos == 0 && _readLen == 0 && _writePos >= 0) || (_writePos == 0 && _readPos <= _readLen), "We're either reading or writing, but not both.");
- // Verify that internal position is in [....] with the handle
+ // Verify that internal position is in sync with the handle
if (_exposedHandle)
VerifyOSHandlePosition();
@@ -1385,7 +1353,7 @@ namespace System.IO {
// Reading is done by blocks from the file, but someone could read
// 1 byte from the buffer then write. At that point, the OS's file
- // pointer is out of [....] with the stream's position. All write
+ // pointer is out of sync with the stream's position. All write
// functions should call this function to preserve the position in the file.
private void FlushRead() {
Contract.Assert(_writePos == 0, "FileStream: Write buffer must be empty in FlushRead!");
@@ -1660,7 +1628,7 @@ namespace System.IO {
offset -= (_readLen - _readPos);
}
- // Verify that internal position is in [....] with the handle
+ // Verify that internal position is in sync with the handle
if (_exposedHandle)
VerifyOSHandlePosition();
@@ -1754,7 +1722,7 @@ namespace System.IO {
// Checks the position of the OS's handle equals what we expect it to.
// This will fail if someone else moved the FileStream's handle or if
- // we've hit a bug in FileStream's position updating code.
+ // we've hit a
private void VerifyOSHandlePosition()
{
if (!CanSeek)
@@ -1977,7 +1945,7 @@ namespace System.IO {
// (either synchronously or asynchronously) before the first one
// returns. This would involve some sort of complex buffer locking
// that we probably don't want to get into, at least not in V1.
- // If we did a [....] read to fill the buffer, we could avoid the
+ // If we did a sync read to fill the buffer, we could avoid the
// problem, and any async read less than 64K gets turned into a
// synchronous read by NT anyways... --
@@ -2088,10 +2056,8 @@ namespace System.IO {
SeekCore(numBytes, SeekOrigin.Current);
}
-#if !FEATURE_CORECLR
if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.ThreadTransfer))
FrameworkEventSource.Log.ThreadTransferSend((long)(asyncResult.OverLapped), 2, string.Empty, false);
-#endif // !FEATURE_CORECLR
// queue an async ReadFile operation and pass in a packed overlapped
int hr = 0;
@@ -2349,10 +2315,8 @@ namespace System.IO {
//Console.WriteLine("BeginWrite finishing. pos: "+pos+" numBytes: "+numBytes+" _pos: "+_pos+" Position: "+Position);
-#if !FEATURE_CORECLR
if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.ThreadTransfer))
FrameworkEventSource.Log.ThreadTransferSend((long)(asyncResult.OverLapped), 2, string.Empty, false);
-#endif // !FEATURE_CORECLR
int hr = 0;
// queue an async WriteFile operation and pass in a packed overlapped
@@ -2549,7 +2513,7 @@ namespace System.IO {
if (r==0) {
hr = Marshal.GetLastWin32Error();
- // We should never silently ---- an error here without some
+ // We should never silently swallow an error here without some
// extra work. We must make sure that BeginReadCore won't return an
// IAsyncResult that will cause EndRead to block, since the OS won't
// call AsyncFSCallback for us.
@@ -2606,7 +2570,7 @@ namespace System.IO {
if (r==0) {
hr = Marshal.GetLastWin32Error();
- // We should never silently ---- an error here without some
+ // We should never silently swallow an error here without some
// extra work. We must make sure that BeginWriteCore won't return an
// IAsyncResult that will cause EndWrite to block, since the OS won't
// call AsyncFSCallback for us.
@@ -2661,7 +2625,7 @@ namespace System.IO {
// If async IO is not supported on this platform or
// if this FileStream was not opened with FileOptions.Asynchronous.
- if (!_isAsync || !Environment.IsWindowsVistaOrAbove)
+ if (!_isAsync)
return base.ReadAsync(buffer, offset, count, cancellationToken);
var readTask = new FileStreamReadWriteTask<int>(cancellationToken);
@@ -2713,7 +2677,7 @@ namespace System.IO {
// If async IO is not supported on this platform or
// if this FileStream was not opened with FileOptions.Asynchronous.
- if (!_isAsync || !Environment.IsWindowsVistaOrAbove)
+ if (!_isAsync)
return base.WriteAsync(buffer, offset, count, cancellationToken);
var writeTask = new FileStreamReadWriteTask<VoidTaskResult>(cancellationToken);
diff --git a/mcs/class/referencesource/mscorlib/system/io/filesystemenumerable.cs b/mcs/class/referencesource/mscorlib/system/io/filesystemenumerable.cs
index f0208f28f65..f74c05c87ff 100644
--- a/mcs/class/referencesource/mscorlib/system/io/filesystemenumerable.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/filesystemenumerable.cs
@@ -7,7 +7,7 @@
**
** Class: FileSystemEnumerable
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Enumerates files and dirs
@@ -37,9 +37,6 @@ namespace System.IO
// additional required permission demands.
internal static class FileSystemEnumerableFactory
{
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
internal static IEnumerable<String> CreateFileNameIterator(String path, String originalUserPath, String searchPattern,
bool includeFiles, bool includeDirs, SearchOption searchOption, bool checkHost)
{
@@ -51,9 +48,6 @@ namespace System.IO
return new FileSystemEnumerableIterator<String>(path, originalUserPath, searchPattern, searchOption, handler, checkHost);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
internal static IEnumerable<FileInfo> CreateFileInfoIterator(String path, String originalUserPath, String searchPattern, SearchOption searchOption)
{
Contract.Requires(path != null);
@@ -64,9 +58,6 @@ namespace System.IO
return new FileSystemEnumerableIterator<FileInfo>(path, originalUserPath, searchPattern, searchOption, handler, true);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
internal static IEnumerable<DirectoryInfo> CreateDirectoryInfoIterator(String path, String originalUserPath, String searchPattern, SearchOption searchOption)
{
@@ -78,9 +69,6 @@ namespace System.IO
return new FileSystemEnumerableIterator<DirectoryInfo>(path, originalUserPath, searchPattern, searchOption, handler, true);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
internal static IEnumerable<FileSystemInfo> CreateFileSystemInfoIterator(String path, String originalUserPath, String searchPattern, SearchOption searchOption)
{
Contract.Requires(path != null);
@@ -201,11 +189,7 @@ namespace System.IO
private int oldMode;
private bool _checkHost;
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
internal FileSystemEnumerableIterator(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler<TSource> resultHandler, bool checkHost)
{
Contract.Requires(path != null);
@@ -241,7 +225,7 @@ namespace System.IO
// Do a demand on the combined path so that we can fail early in case of deny
demandPaths[1] = Directory.GetDemandDir(normalizedSearchPath, true);
_checkHost = checkHost;
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost)
{
FileSecurityState state1 = new FileSecurityState(FileSecurityStateAccess.PathDiscovery, String.Empty, demandPaths[0]);
@@ -249,7 +233,7 @@ namespace System.IO
FileSecurityState state2 = new FileSecurityState(FileSecurityStateAccess.PathDiscovery, String.Empty, demandPaths[1]);
state2.EnsureState();
}
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission(FileIOPermissionAccess.PathDiscovery, demandPaths, false, false).Demand();
#endif
@@ -325,11 +309,7 @@ namespace System.IO
}
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
private FileSystemEnumerableIterator(String fullPath, String normalizedSearchPath, String searchCriteria, String userPath, SearchOption searchOption, SearchResultHandler<TSource> resultHandler, bool checkHost)
{
this.fullPath = fullPath;
@@ -351,7 +331,7 @@ namespace System.IO
// For filters like foo\*.cs we need to verify if the directory foo is not denied access.
// Do a demand on the combined path so that we can fail early in case of deny
demandPaths[1] = Directory.GetDemandDir(normalizedSearchPath, true);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost)
{
FileSecurityState state1 = new FileSecurityState(FileSecurityStateAccess.PathDiscovery, String.Empty, demandPaths[0]);
@@ -359,7 +339,7 @@ namespace System.IO
FileSecurityState state2 = new FileSecurityState(FileSecurityStateAccess.PathDiscovery, String.Empty, demandPaths[1]);
state2.EnsureState();
}
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission(FileIOPermissionAccess.PathDiscovery, demandPaths, false, false).Demand();
#endif
searchData = new Directory.SearchData(normalizedSearchPath, userPath, searchOption);
@@ -371,9 +351,6 @@ namespace System.IO
}
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
protected override Iterator<TSource> Clone()
{
return new FileSystemEnumerableIterator<TSource>(fullPath, normalizedSearchPath, searchCriteria, userPath, searchOption, _resultHandler, _checkHost);
@@ -606,13 +583,13 @@ namespace System.IO
[System.Security.SecurityCritical]
internal void DoDemand(String fullPathToDemand)
{
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if(_checkHost) {
String demandDir = Directory.GetDemandDir(fullPathToDemand, true);
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.PathDiscovery, String.Empty, demandDir);
state.EnsureState();
}
-#elif !FEATURE_CORECLR
+#else
String demandDir = Directory.GetDemandDir(fullPathToDemand, true);
String[] demandPaths = new String[] { demandDir };
new FileIOPermission(FileIOPermissionAccess.PathDiscovery, demandPaths, false, false).Demand();
@@ -725,10 +702,10 @@ namespace System.IO
internal override FileInfo CreateObject(SearchResult result)
{
String name = result.FullPath;
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Read, String.Empty, name);
state.EnsureState();
-#elif !FEATURE_CORECLR
+#else
String[] names = new String[] { name };
new FileIOPermission(FileIOPermissionAccess.Read, names, false, false).Demand();
#endif
@@ -752,10 +729,10 @@ namespace System.IO
String name = result.FullPath;
String permissionName = name + "\\.";
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Read, String.Empty, permissionName);
state.EnsureState();
-#elif !FEATURE_CORECLR
+#else
String[] permissionNames = new String[] { permissionName };
new FileIOPermission(FileIOPermissionAccess.Read, permissionNames, false, false).Demand();
#endif
@@ -789,10 +766,10 @@ namespace System.IO
String name = result.FullPath;
String permissionName = name + "\\.";
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Read, String.Empty, permissionName);
state.EnsureState();
-#elif !FEATURE_CORECLR
+#else
String[] permissionNames = new String[] { permissionName };
new FileIOPermission(FileIOPermissionAccess.Read, permissionNames, false, false).Demand();
#endif
@@ -805,10 +782,10 @@ namespace System.IO
Contract.Assert(isFile);
String name = result.FullPath;
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Read, String.Empty, name);
state.EnsureState();
-#elif !FEATURE_CORECLR
+#else
String[] names = new String[] { name };
new FileIOPermission(FileIOPermissionAccess.Read, names, false, false).Demand();
#endif
diff --git a/mcs/class/referencesource/mscorlib/system/io/filesysteminfo.cs b/mcs/class/referencesource/mscorlib/system/io/filesysteminfo.cs
index 368eb922070..e0fedf9fd5e 100644
--- a/mcs/class/referencesource/mscorlib/system/io/filesysteminfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/filesysteminfo.cs
@@ -7,7 +7,7 @@
**
** Class: FileSystemInfo
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose:
@@ -89,11 +89,7 @@ namespace System.IO {
// Full path of the direcory/file
public virtual String FullName {
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
get
{
String demandDir;
@@ -101,10 +97,10 @@ namespace System.IO {
demandDir = Directory.GetDemandDir(FullPath, true);
else
demandDir = FullPath;
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState sourceState = new FileSecurityState(FileSecurityStateAccess.PathDiscovery, String.Empty, demandDir);
sourceState.EnsureState();
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission(FileIOPermissionAccess.PathDiscovery, demandDir).Demand();
#endif
return FullPath;
@@ -158,24 +154,15 @@ namespace System.IO {
}
// Delete a file/directory
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
public abstract void Delete();
public DateTime CreationTime
{
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
get {
// depends on the security check in get_CreationTimeUtc
return CreationTimeUtc.ToLocalTime();
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
set {
CreationTimeUtc = value.ToUniversalTime();
}
@@ -183,18 +170,12 @@ namespace System.IO {
[ComVisible(false)]
public DateTime CreationTimeUtc {
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
get {
#if FEATURE_CORECLR
-#if !FEATURE_LEGACYNETCFIOSECURITY
// get_CreationTime also depends on this security check
FileSecurityState sourceState = new FileSecurityState(FileSecurityStateAccess.Read, String.Empty, FullPath);
sourceState.EnsureState();
-#endif //!FEATURE_LEGACYNETCFIOSECURITY
#endif
if (_dataInitialised == -1) {
_data = new Win32Native.WIN32_FILE_ATTRIBUTE_DATA();
@@ -223,16 +204,10 @@ namespace System.IO {
public DateTime LastAccessTime
{
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
get {
// depends on the security check in get_LastAccessTimeUtc
return LastAccessTimeUtc.ToLocalTime();
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
set {
LastAccessTimeUtc = value.ToUniversalTime();
}
@@ -240,18 +215,12 @@ namespace System.IO {
[ComVisible(false)]
public DateTime LastAccessTimeUtc {
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
get {
#if FEATURE_CORECLR
-#if !FEATURE_LEGACYNETCFIOSECURITY
// get_LastAccessTime also depends on this security check
FileSecurityState sourceState = new FileSecurityState(FileSecurityStateAccess.Read, String.Empty, FullPath);
sourceState.EnsureState();
-#endif //!FEATURE_LEGACYNETCFIOSECURITY
#endif
if (_dataInitialised == -1) {
_data = new Win32Native.WIN32_FILE_ATTRIBUTE_DATA();
@@ -279,17 +248,11 @@ namespace System.IO {
public DateTime LastWriteTime
{
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
get {
// depends on the security check in get_LastWriteTimeUtc
return LastWriteTimeUtc.ToLocalTime();
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
set {
LastWriteTimeUtc = value.ToUniversalTime();
}
@@ -297,18 +260,12 @@ namespace System.IO {
[ComVisible(false)]
public DateTime LastWriteTimeUtc {
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
get {
#if FEATURE_CORECLR
-#if !FEATURE_LEGACYNETCFIOSECURITY
// get_LastWriteTime also depends on this security check
FileSecurityState sourceState = new FileSecurityState(FileSecurityStateAccess.Read, String.Empty, FullPath);
sourceState.EnsureState();
-#endif //!FEATURE_LEGACYNETCFIOSECURITY
#endif
if (_dataInitialised == -1) {
_data = new Win32Native.WIN32_FILE_ATTRIBUTE_DATA();
@@ -343,18 +300,12 @@ namespace System.IO {
}
public FileAttributes Attributes {
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
get
{
#if FEATURE_CORECLR
-#if !FEATURE_LEGACYNETCFIOSECURITY
FileSecurityState sourceState = new FileSecurityState(FileSecurityStateAccess.Read, String.Empty, FullPath);
sourceState.EnsureState();
-#endif //!FEATURE_LEGACYNETCFIOSECURITY
#endif
if (_dataInitialised == -1) {
_data = new Win32Native.WIN32_FILE_ATTRIBUTE_DATA();
diff --git a/mcs/class/referencesource/mscorlib/system/io/ioexception.cs b/mcs/class/referencesource/mscorlib/system/io/ioexception.cs
index 699d4f7e76b..3301207c675 100644
--- a/mcs/class/referencesource/mscorlib/system/io/ioexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/ioexception.cs
@@ -7,7 +7,7 @@
**
** Class: IOException
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Exception for a generic IO error.
diff --git a/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/__hresults.cs b/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/__hresults.cs
index ac94300dd2d..85eb2e4474b 100644
--- a/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/__hresults.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/__hresults.cs
@@ -7,9 +7,9 @@
*
* Class: __HResults
//
-// <OWNER>[....]</OWNER>
+// <OWNER>kimhamil</OWNER>
*
- * <EMAIL>Author: Sh----n Dasan</EMAIL>
+ * <EMAIL>Author: Shajan Dasan</EMAIL>
*
* Purpose: The HRESULTS used by IsolatedStorage
*
diff --git a/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/inormalizeforisolatedstorage.cs b/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/inormalizeforisolatedstorage.cs
index 5753c293502..f76cfcff4c4 100644
--- a/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/inormalizeforisolatedstorage.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/inormalizeforisolatedstorage.cs
@@ -7,9 +7,9 @@
*
* Class: INormalizeForIsolatedStorage
//
-// <OWNER>[....]</OWNER>
+// <OWNER>kimhamil</OWNER>
*
- * <EMAIL>Author: Sh----n Dasan</EMAIL>
+ * <EMAIL>Author: Shajan Dasan</EMAIL>
*
* Purpose: Evidence types can optionaly implement this interface.
* IsolatedStorage calls Normalize method before evidence
diff --git a/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstorage.cs b/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstorage.cs
index 8a6c68ba0a8..4d384f1d050 100644
--- a/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstorage.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstorage.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
/*============================================================
@@ -200,12 +200,7 @@ namespace System.IO.IsolatedStorage {
private String GetNameFromID(String typeID, String instanceID)
{
- StringBuilder sb = new StringBuilder();
- sb.Append(typeID);
- sb.Append(SeparatorInternal);
- sb.Append(instanceID);
-
- return sb.ToString();
+ return typeID + SeparatorInternal + instanceID;
}
private static String GetPredefinedTypeName(Object o)
@@ -336,7 +331,7 @@ namespace System.IO.IsolatedStorage {
private static SecurityPermission GetControlEvidencePermission()
{
- // Don't [....]. OK to create this object more than once.
+ // Don't sync. OK to create this object more than once.
if (s_PermControlEvidence == null)
s_PermControlEvidence = new SecurityPermission(
SecurityPermissionFlag.ControlEvidence);
@@ -346,7 +341,7 @@ namespace System.IO.IsolatedStorage {
private static PermissionSet GetUnrestricted()
{
- // Don't [....]. OK to create this object more than once.
+ // Don't sync. OK to create this object more than once.
if (s_PermUnrestricted == null)
s_PermUnrestricted = new PermissionSet(
PermissionState.Unrestricted);
diff --git a/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstorageexception.cs b/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstorageexception.cs
index e02e83a75b5..175991615bc 100644
--- a/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstorageexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstorageexception.cs
@@ -7,7 +7,7 @@
*
* Class: IsolatedStorageException
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
*
*
* Purpose: The exceptions in IsolatedStorage
diff --git a/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstoragefile.cs b/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstoragefile.cs
index 932a4ee9f1d..73931122124 100644
--- a/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstoragefile.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstoragefile.cs
@@ -8,8 +8,8 @@
*
* Class: IsolatedStorageFile
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
*
*
* Purpose: Provides access to Application files and folders
@@ -2304,7 +2304,7 @@ namespace System.IO.IsolatedStorage {
{
if (IsRoaming(scope))
{
- // no [....] needed, ok to create multiple instances.
+ // no sync needed, ok to create multiple instances.
if (s_PermRoaming == null)
{
s_PermRoaming = new FileIOPermission(
@@ -2316,7 +2316,7 @@ namespace System.IO.IsolatedStorage {
if (IsMachine(scope))
{
- // no [....] needed, ok to create multiple instances.
+ // no sync needed, ok to create multiple instances.
if (s_PermMachine == null)
{
s_PermMachine = new FileIOPermission(
@@ -2325,7 +2325,7 @@ namespace System.IO.IsolatedStorage {
return s_PermMachine;
}
- // no [....] needed, ok to create multiple instances.
+ // no sync needed, ok to create multiple instances.
if (s_PermUser == null)
{
s_PermUser = new FileIOPermission(
@@ -2338,7 +2338,7 @@ namespace System.IO.IsolatedStorage {
[System.Security.SecurityCritical] // auto-generated
private static void DemandAdminPermission()
{
- // Ok if more than one instance is created, no need to [....].
+ // Ok if more than one instance is created, no need to sync.
if (s_PermAdminUser == null)
{
s_PermAdminUser = new IsolatedStorageFilePermission(
diff --git a/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstoragefilestream.cs b/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstoragefilestream.cs
index c6d0b55415d..caa5cfe5e3d 100644
--- a/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstoragefilestream.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/isolatedstorage/isolatedstoragefilestream.cs
@@ -7,7 +7,7 @@
*
* Class: IsolatedStorageFileStream
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
*
*
* Purpose: Provides access to files using the same interface as FileStream
diff --git a/mcs/class/referencesource/mscorlib/system/io/longpath.cs b/mcs/class/referencesource/mscorlib/system/io/longpath.cs
index 23d758faf33..b88e5d4b79d 100644
--- a/mcs/class/referencesource/mscorlib/system/io/longpath.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/longpath.cs
@@ -7,7 +7,7 @@
**
** Class: File
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Long paths
@@ -482,11 +482,9 @@ namespace System.IO {
int lengthRoot = LongPath.GetRootLength(fullPath);
-#if !PLATFORM_UNIX
// For UNC paths that are only // or ///
if (length == 2 && Path.IsDirectorySeparator(fullPath[1]))
throw new IOException(Environment.GetResourceString("IO.IO_CannotCreateDirectory", path));
-#endif // !PLATFORM_UNIX
List<string> stackDir = new List<string>();
diff --git a/mcs/class/referencesource/mscorlib/system/io/memorystream.cs b/mcs/class/referencesource/mscorlib/system/io/memorystream.cs
index d5f9b48606b..6887ad35a44 100644
--- a/mcs/class/referencesource/mscorlib/system/io/memorystream.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/memorystream.cs
@@ -7,7 +7,7 @@
**
** Class: MemoryStream
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: A Stream whose backing store is memory. Great
@@ -82,9 +82,6 @@ namespace System.IO {
_isOpen = true;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public MemoryStream(byte[] buffer)
: this(buffer, true) {
}
@@ -123,7 +120,7 @@ namespace System.IO {
_origin = _position = index;
_length = _capacity = index + count;
_writable = writable;
- _exposable = publiclyVisible; // Can GetBuffer return the array?
+ _exposable = publiclyVisible; // Can TryGetBuffer/GetBuffer return the array?
_expandable = false;
_isOpen = true;
}
@@ -144,17 +141,7 @@ namespace System.IO {
}
private void EnsureWriteable() {
- // Previously, instead of calling CanWrite we just checked the _writable field directly, and some code
- // took a dependency on that behavior.
-#if FEATURE_CORECLR
- if (IsAppEarlierThanSl4) {
- if (!_writable) __Error.WriteNotSupported();
- } else {
- if (!CanWrite) __Error.WriteNotSupported();
- }
-#else
if (!CanWrite) __Error.WriteNotSupported();
-#endif
}
protected override void Dispose(bool disposing)
@@ -164,7 +151,7 @@ namespace System.IO {
_isOpen = false;
_writable = false;
_expandable = false;
- // Don't set buffer to null - allow GetBuffer & ToArray to work.
+ // Don't set buffer to null - allow TryGetBuffer, GetBuffer & ToArray to work.
#if FEATURE_ASYNC_IO
_lastReadTask = null;
#endif
@@ -185,8 +172,15 @@ namespace System.IO {
int newCapacity = value;
if (newCapacity < 256)
newCapacity = 256;
+ // We are ok with this overflowing since the next statement will deal
+ // with the cases where _capacity*2 overflows.
if (newCapacity < _capacity * 2)
newCapacity = _capacity * 2;
+ // We want to expand the array up to Array.MaxArrayLengthOneDimensional
+ // And we want to give the user the value that they asked for
+ if ((uint)(_capacity * 2) > Array.MaxByteArrayLength)
+ newCapacity = value > Array.MaxByteArrayLength ? value : Array.MaxByteArrayLength;
+
Capacity = newCapacity;
return true;
}
@@ -217,29 +211,30 @@ namespace System.IO {
#endif // FEATURE_ASYNC_IO
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual byte[] GetBuffer() {
if (!_exposable)
throw new UnauthorizedAccessException(Environment.GetResourceString("UnauthorizedAccess_MemStreamBuffer"));
return _buffer;
}
+ public virtual bool TryGetBuffer(out ArraySegment<byte> buffer) {
+ if (!_exposable) {
+ buffer = default(ArraySegment<byte>);
+ return false;
+ }
+
+ buffer = new ArraySegment<byte>(_buffer, offset:_origin, count:(_length - _origin));
+ return true;
+ }
+
// -------------- PERF: Internal functions for fast direct access of MemoryStream buffer (cf. BinaryReader for usage) ---------------
// PERF: Internal sibling of GetBuffer, always returns a buffer (cf. GetBuffer())
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal byte[] InternalGetBuffer() {
return _buffer;
}
// PERF: Get origin and length - used in ResourceWriter.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[FriendAccessAllowed]
internal void InternalGetOriginAndLength(out int origin, out int length)
{
@@ -249,9 +244,6 @@ namespace System.IO {
}
// PERF: True cursor position, we don't need _origin for direct access
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal int InternalGetPosition() {
if (!_isOpen) __Error.StreamIsClosed();
return _position;
@@ -296,20 +288,10 @@ namespace System.IO {
set {
// Only update the capacity if the MS is expandable and the value is different than the current capacity.
// Special behavior if the MS isn't expandable: we don't throw if value is the same as the current capacity
-#if !FEATURE_CORECLR
if (value < Length) throw new ArgumentOutOfRangeException("value", Environment.GetResourceString("ArgumentOutOfRange_SmallCapacity"));
-#endif
Contract.Ensures(_capacity - _origin == value);
Contract.EndContractBlock();
-#if FEATURE_CORECLR
- if (IsAppEarlierThanSl4) {
- if (value < _length) throw new ArgumentOutOfRangeException("value", Environment.GetResourceString("ArgumentOutOfRange_SmallCapacity"));
- } else {
- if (value < Length) throw new ArgumentOutOfRangeException("value", Environment.GetResourceString("ArgumentOutOfRange_SmallCapacity"));
- }
-#endif
-
if (!_isOpen) __Error.StreamIsClosed();
if (!_expandable && (value != Capacity)) __Error.MemoryStreamNotExpandable();
@@ -329,9 +311,6 @@ namespace System.IO {
}
public override long Length {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
if (!_isOpen) __Error.StreamIsClosed();
return _length - _origin;
@@ -339,9 +318,6 @@ namespace System.IO {
}
public override long Position {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
if (!_isOpen) __Error.StreamIsClosed();
return _position - _origin;
@@ -360,14 +336,6 @@ namespace System.IO {
}
}
-#if FEATURE_CORECLR
- private static bool IsAppEarlierThanSl4 {
- get {
- return CompatibilitySwitches.IsAppEarlierThanSilverlight4;
- }
- }
-#endif
-
public override int Read([In, Out] byte[] buffer, int offset, int count) {
if (buffer==null)
throw new ArgumentNullException("buffer", Environment.GetResourceString("ArgumentNull_Buffer"));
@@ -454,7 +422,7 @@ namespace System.IO {
// This implementation offers beter performance compared to the base class version.
- // The parameter checks must be in [....] with the base version:
+ // The parameter checks must be in sync with the base version:
if (destination == null)
throw new ArgumentNullException("destination");
diff --git a/mcs/class/referencesource/mscorlib/system/io/path.cs b/mcs/class/referencesource/mscorlib/system/io/path.cs
index bc268fa025f..f260924b1d0 100644
--- a/mcs/class/referencesource/mscorlib/system/io/path.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/path.cs
@@ -7,7 +7,7 @@
**
** Class: Path
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: A collection of path manipulation methods.
@@ -53,31 +53,20 @@ namespace System.IO {
// Platform specific directory separator character. This is backslash
// ('\') on Windows, slash ('/') on Unix, and colon (':') on Mac.
//
-#if !PLATFORM_UNIX
public static readonly char DirectorySeparatorChar = '\\';
-#else
- public static readonly char DirectorySeparatorChar = '/';
-#endif // !PLATFORM_UNIX
+ internal const string DirectorySeparatorCharAsString = "\\";
// Platform specific alternate directory separator character.
// This is backslash ('\') on Unix, and slash ('/') on Windows
// and MacOS.
//
-#if !PLATFORM_UNIX
public static readonly char AltDirectorySeparatorChar = '/';
-#else
- public static readonly char AltDirectorySeparatorChar = '\\';
-#endif // !PLATFORM_UNIX
// Platform specific volume separator character. This is colon (':')
// on Windows and MacOS, and slash ('/') on Unix. This is mostly
// useful for parsing paths like "c:\windows" or "MacVolume:System Folder".
//
-#if !PLATFORM_UNIX
public static readonly char VolumeSeparatorChar = ':';
-#else
- public static readonly char VolumeSeparatorChar = '/';
-#endif // !PLATFORM_UNIX
// Platform specific invalid list of characters in a path.
// See the "Naming a File" MSDN conceptual docs for more details on
@@ -91,16 +80,14 @@ namespace System.IO {
// String.WhitespaceChars will trim aggressively than what the underlying FS does (for ex, NTFS, FAT).
internal static readonly char[] TrimEndChars = { (char) 0x9, (char) 0xA, (char) 0xB, (char) 0xC, (char) 0xD, (char) 0x20, (char) 0x85, (char) 0xA0};
-
private static readonly char[] RealInvalidPathChars = { '\"', '<', '>', '|', '\0', (Char)1, (Char)2, (Char)3, (Char)4, (Char)5, (Char)6, (Char)7, (Char)8, (Char)9, (Char)10, (Char)11, (Char)12, (Char)13, (Char)14, (Char)15, (Char)16, (Char)17, (Char)18, (Char)19, (Char)20, (Char)21, (Char)22, (Char)23, (Char)24, (Char)25, (Char)26, (Char)27, (Char)28, (Char)29, (Char)30, (Char)31 };
+ // This is used by HasIllegalCharacters
+ private static readonly char[] InvalidPathCharsWithAdditionalChecks = { '\"', '<', '>', '|', '\0', (Char)1, (Char)2, (Char)3, (Char)4, (Char)5, (Char)6, (Char)7, (Char)8, (Char)9, (Char)10, (Char)11, (Char)12, (Char)13, (Char)14, (Char)15, (Char)16, (Char)17, (Char)18, (Char)19, (Char)20, (Char)21, (Char)22, (Char)23, (Char)24, (Char)25, (Char)26, (Char)27, (Char)28, (Char)29, (Char)30, (Char)31, '*', '?' };
+
private static readonly char[] InvalidFileNameChars = { '\"', '<', '>', '|', '\0', (Char)1, (Char)2, (Char)3, (Char)4, (Char)5, (Char)6, (Char)7, (Char)8, (Char)9, (Char)10, (Char)11, (Char)12, (Char)13, (Char)14, (Char)15, (Char)16, (Char)17, (Char)18, (Char)19, (Char)20, (Char)21, (Char)22, (Char)23, (Char)24, (Char)25, (Char)26, (Char)27, (Char)28, (Char)29, (Char)30, (Char)31, ':', '*', '?', '\\', '/' };
-#if !PLATFORM_UNIX
public static readonly char PathSeparator = ';';
-#else
- public static readonly char PathSeparator = ':';
-#endif // !PLATFORM_UNIX
// Make this public sometime.
@@ -239,7 +226,6 @@ namespace System.IO {
int i = 0;
int length = path.Length;
-#if !PLATFORM_UNIX
if (length >= 1 && (IsDirectorySeparator(path[0]))) {
// handles UNC names and directories off current drive's root.
i = 1;
@@ -255,12 +241,6 @@ namespace System.IO {
if (length >= 3 && (IsDirectorySeparator(path[2]))) i++;
}
return i;
-#else
- if (length >= 1 && (IsDirectorySeparator(path[0]))) {
- i = 1;
- }
- return i;
-#endif // !PLATFORM_UNIX
}
internal static bool IsDirectorySeparator(char c) {
@@ -310,20 +290,16 @@ namespace System.IO {
// function does not verify that the resulting path
// refers to an existing file or directory on the associated volume.
[Pure]
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static String GetFullPath(String path) {
String fullPath = GetFullPathInternal(path);
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.PathDiscovery, path, fullPath);
state.EnsureState();
-#elif !FEATURE_CORECLR
- new FileIOPermission( FileIOPermissionAccess.PathDiscovery, new String[] { fullPath }, false, false ).Demand();
+#else
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.PathDiscovery, fullPath, false, false);
#endif
return fullPath;
}
@@ -335,7 +311,7 @@ namespace System.IO {
{
String fullPath = GetFullPathInternal(path);
#if !FEATURE_CORECLR
- new FileIOPermission(FileIOPermissionAccess.PathDiscovery, new String[] { fullPath }, false, false).Demand();
+ FileIOPermission.QuickDemand(FileIOPermissionAccess.PathDiscovery, fullPath, false, false);
#endif
return fullPath;
}
@@ -409,7 +385,7 @@ namespace System.IO {
// since StringBuilder is used.
// 2. IsolatedStorage, which supports paths longer than MaxPath (value given
// by maxPathLength.
- PathHelper newBuffer = null;
+ PathHelper newBuffer;
if (path.Length + 1 <= MaxPath) {
char* m_arrayPtr = stackalloc char[MaxPath];
newBuffer = new PathHelper(m_arrayPtr, MaxPath);
@@ -430,7 +406,6 @@ namespace System.IO {
bool firstSegment = true;
int lastDirectorySeparatorPos = 0;
-#if !PLATFORM_UNIX
bool mightBeShortFileName = false;
// LEGACY: This code is here for backwards compatibility reasons. It
@@ -441,7 +416,6 @@ namespace System.IO {
index++;
lastSigChar = 0;
}
-#endif
// Normalize the string, stripping out redundant dots, spaces, and
// slashes.
@@ -532,7 +506,6 @@ namespace System.IO {
startedWithVolumeSeparator = false;
firstSegment = false;
-#if !PLATFORM_UNIX
// For short file names, we must try to expand each of them as
// soon as possible. We need to allow people to specify a file
// name that doesn't exist using a path with short file names
@@ -544,7 +517,7 @@ namespace System.IO {
newBuffer.TryExpandShortFileName();
mightBeShortFileName = false;
}
-#endif
+
int thisPos = newBuffer.Length - 1;
if (thisPos - lastDirectorySeparatorPos > MaxDirectoryLength)
{
@@ -565,14 +538,11 @@ namespace System.IO {
numSpaces++;
}
else { // Normal character logic
-#if !PLATFORM_UNIX
if (currentChar == '~' && expandShortPaths)
mightBeShortFileName = true;
-#endif
fixupDirectorySeparator = false;
-#if !PLATFORM_UNIX
// To reject strings like "C:...\foo" and "C :\foo"
if (firstSegment && currentChar == VolumeSeparatorChar) {
// Only accept "C:", not "c :" or ":"
@@ -597,7 +567,6 @@ namespace System.IO {
numSigChars = 0;
}
else
-#endif // !PLATFORM_UNIX
{
numSigChars += 1 + numDots + numSpaces;
}
@@ -686,14 +655,12 @@ namespace System.IO {
throw new ArgumentException(Environment.GetResourceString("Argument_PathUriFormatNotSupported"));
}
}
-
-#if !PLATFORM_UNIX
+
// If the last part of the path (file or directory name) had a tilde,
// expand that too.
if (mightBeShortFileName) {
newBuffer.TryExpandShortFileName();
}
-#endif
// Call the Win32 API to do the final canonicalization step.
int result = 1;
@@ -706,21 +673,20 @@ namespace System.IO {
// might be well within the MAX_PATH restriction. For ex,
// "c:\SomeReallyLongDirName(thinkGreaterThan_MAXPATH)\..\foo.txt" which actually requires a
// buffer well with in the MAX_PATH as the normalized path is just "c:\foo.txt"
- // This buffer requirement seems wrong, it could be a bug or a perf optimization
- // like returning required buffer length quickly or avoid stratch buffer etc.
- // Either way we need to workaround it here...
+ // This buffer requirement seems wrong, it could be a
+
+
// Ideally we would get the required buffer length first by calling GetFullPathName
// once without the buffer and use that in the later call but this doesn't always work
- // due to Win32 GetFullPathName bug. For instance, in Win2k, when the path we are trying to
- // fully qualify is a single letter name (such as "a", "1", ",") GetFullPathName
- // fails to return the right buffer size (i.e, resulting in insufficient buffer).
- // To workaround this bug we will start with MAX_PATH buffer and grow it once if the
- // return value is > MAX_PATH.
+ // due to Win32 GetFullPathName
+
+
+
+
result = newBuffer.GetFullPathName();
-#if !PLATFORM_UNIX
// If we called GetFullPathName with something like "foo" and our
// command window was in short file name mode (ie, by running edlin or
// DOS versions of grep, etc), we might have gotten back a short file
@@ -760,7 +726,6 @@ namespace System.IO {
}
}
}
-#endif
}
if (result != 0) {
@@ -812,37 +777,50 @@ namespace System.IO {
return returnVal;
}
- internal static readonly int MaxLongPath = 32000;
+ internal const int MaxLongPath = 32000;
- private static readonly String Prefix = @"\\?\";
+ private const string LongPathPrefix = @"\\?\";
+ private const string UNCPathPrefix = @"\\";
+ private const string UNCLongPathPrefixToInsert = @"?\UNC\";
+ private const string UNCLongPathPrefix = @"\\?\UNC\";
internal unsafe static bool HasLongPathPrefix(String path)
{
- return path.StartsWith(Prefix, StringComparison.Ordinal);
+ return path.StartsWith(LongPathPrefix, StringComparison.Ordinal);
}
internal unsafe static String AddLongPathPrefix(String path)
{
- if (path.StartsWith(Prefix, StringComparison.Ordinal))
+ if (path.StartsWith(LongPathPrefix, StringComparison.Ordinal))
return path;
- else
- return Prefix + path;
+
+ if (path.StartsWith(UNCPathPrefix, StringComparison.Ordinal))
+ return path.Insert(2, UNCLongPathPrefixToInsert); // Given \\server\share in longpath becomes \\?\UNC\server\share => UNCLongPathPrefix + path.SubString(2); => The actual command simply reduces the operation cost.
+
+ return LongPathPrefix + path;
}
internal unsafe static String RemoveLongPathPrefix(String path)
{
- if (!path.StartsWith(Prefix, StringComparison.Ordinal))
+ if (!path.StartsWith(LongPathPrefix, StringComparison.Ordinal))
return path;
- else
- return path.Substring(4);
+
+ if (path.StartsWith(UNCLongPathPrefix, StringComparison.OrdinalIgnoreCase))
+ return path.Remove(2, 6); // Given \\?\UNC\server\share we return \\server\share => @'\\' + path.SubString(UNCLongPathPrefix.Length) => The actual command simply reduces the operation cost.
+
+ return path.Substring(4);
}
- internal unsafe static StringBuilder RemoveLongPathPrefix(StringBuilder path)
+ internal unsafe static StringBuilder RemoveLongPathPrefix(StringBuilder pathSB)
{
- if (!path.ToString().StartsWith(Prefix, StringComparison.Ordinal))
- return path;
- else
- return path.Remove(0, 4);
+ string path = pathSB.ToString();
+ if (!path.StartsWith(LongPathPrefix, StringComparison.Ordinal))
+ return pathSB;
+
+ if (path.StartsWith(UNCLongPathPrefix, StringComparison.OrdinalIgnoreCase))
+ return pathSB.Remove(2, 6); // Given \\?\UNC\server\share we return \\server\share => @'\\' + path.SubString(UNCLongPathPrefix.Length) => The actual command simply reduces the operation cost.
+
+ return pathSB.Remove(0, 4);
}
// Returns the name and extension parts of the given path. The resulting
@@ -902,11 +880,7 @@ namespace System.IO {
return path.Substring(0, GetRootLength(path));
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public static String GetTempPath()
@@ -920,10 +894,8 @@ namespace System.IO {
if (r==0) __Error.WinIOError();
path = GetFullPathInternal(path);
#if FEATURE_CORECLR
-#if !FEATURE_LEGACYNETCFIOSECURITY
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Write, String.Empty, path);
state.EnsureState();
-#endif //!FEATURE_LEGACYNETCFIOSECURITY
#endif
return path;
}
@@ -931,13 +903,9 @@ namespace System.IO {
internal static bool IsRelative(string path)
{
Contract.Assert(path != null, "path can't be null");
-#if !PLATFORM_UNIX
if ((path.Length >= 3 && path[1] == VolumeSeparatorChar && path[2] == DirectorySeparatorChar &&
((path[0] >= 'a' && path[0] <= 'z') || (path[0] >= 'A' && path[0] <= 'Z'))) ||
(path.Length >= 2 && path[0] == '\\' && path[1] == '\\'))
-#else
- if(path.Length >= 1 && path[0] == VolumeSeparatorChar)
-#endif // !PLATFORM_UNIX
return false;
else
return true;
@@ -976,11 +944,7 @@ namespace System.IO {
// Returns a unique temporary file name, and creates a 0-byte file by that
// name on disk.
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.AppDomain)]
[ResourceConsumption(ResourceScope.AppDomain)]
public static String GetTempFileName()
@@ -1007,13 +971,13 @@ namespace System.IO {
// cause a denial of service attack, demand FileIOPermission to
// that directory.
-#if FEATURE_CORECLR && !FEATURE_LEGACYNETCFIOSECURITY
+#if FEATURE_CORECLR
if (checkHost)
{
FileSecurityState state = new FileSecurityState(FileSecurityStateAccess.Write, String.Empty, path);
state.EnsureState();
}
-#elif !FEATURE_CORECLR
+#else
new FileIOPermission(FileIOPermissionAccess.Write, path).Demand();
#endif
StringBuilder sb = new StringBuilder(MAX_PATH);
@@ -1056,11 +1020,8 @@ namespace System.IO {
CheckInvalidPathChars(path);
int length = path.Length;
- if ((length >= 1 && (path[0] == DirectorySeparatorChar || path[0] == AltDirectorySeparatorChar))
-#if !PLATFORM_UNIX
- || (length >= 2 && path[1] == VolumeSeparatorChar)
-#endif
- ) return true;
+ if ((length >= 1 && (path[0] == DirectorySeparatorChar || path[0] == AltDirectorySeparatorChar)) || (length >= 2 && path[1] == VolumeSeparatorChar))
+ return true;
}
return false;
}
@@ -1167,7 +1128,7 @@ namespace System.IO {
char ch = path1[path1.Length - 1];
if (ch != DirectorySeparatorChar && ch != AltDirectorySeparatorChar && ch != VolumeSeparatorChar)
- return path1 + DirectorySeparatorChar + path2;
+ return path1 + DirectorySeparatorCharAsString + path2;
return path1 + path2;
}
@@ -1260,26 +1221,12 @@ namespace System.IO {
{
Contract.Requires(path != null);
-#if PLATFORM_UNIX
- if (path.Length >= 2 && path[0] == '\\' && path[1] == '\\')
- return true;
-#endif // PLATFORM_UNIX
-
- for (int i = 0; i < path.Length; i++)
+ if (checkAdditional)
{
- int c = path[i];
-
- // Note: This list is duplicated in static char[] InvalidPathChars
- if (c == '\"' || c == '<' || c == '>' || c == '|' || c < 32)
- return true;
-
- // used only by FileIOPermission, FileStream.Init, and AppDomainSet.ManifestFilePath
- if (checkAdditional &&
- (c == '?' || c == '*'))
- return true;
+ return path.IndexOfAny(InvalidPathCharsWithAdditionalChecks) >= 0;
}
- return false;
+ return path.IndexOfAny(RealInvalidPathChars) >= 0;
}
internal static void CheckInvalidPathChars(String path, bool checkAdditional = false)
@@ -1307,7 +1254,7 @@ namespace System.IO {
if (i == 0) return path2;
char ch = path1[i - 1];
if (ch != DirectorySeparatorChar && ch != AltDirectorySeparatorChar && ch != VolumeSeparatorChar)
- return path1 + DirectorySeparatorChar + path2;
+ return path1 + DirectorySeparatorCharAsString + path2;
return path1 + path2;
}
diff --git a/mcs/class/referencesource/mscorlib/system/io/pathhelper.cs b/mcs/class/referencesource/mscorlib/system/io/pathhelper.cs
index 9571ff8f7d7..bb4f66a1898 100644
--- a/mcs/class/referencesource/mscorlib/system/io/pathhelper.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/pathhelper.cs
@@ -37,7 +37,7 @@ namespace System.IO {
// than Path.MaxPath if they can be normalized down to Path.MaxPath. This
// can happen if the path contains escape characters "..".
//
- unsafe internal class PathHelper { // should not be serialized
+ unsafe internal struct PathHelper { // should not be serialized
// maximum size, max be greater than max path if contains escape sequence
private int m_capacity;
@@ -65,6 +65,8 @@ namespace System.IO {
Contract.Requires(charArrayPtr != null);
// force callers to be aware of this
Contract.Requires(length == Path.MaxPath);
+ this.m_length = 0;
+ this.m_sb = null;
this.m_arrayPtr = charArrayPtr;
this.m_capacity = length;
@@ -74,7 +76,13 @@ namespace System.IO {
}
// Instantiates a PathHelper with a heap alloc'd array of ints. Will create a StringBuilder
- internal PathHelper(int capacity, int maxPath) {
+ [System.Security.SecurityCritical]
+ internal PathHelper(int capacity, int maxPath)
+ {
+ this.m_length = 0;
+ this.m_arrayPtr = null;
+ this.useStackAlloc = false;
+
this.m_sb = new StringBuilder(capacity);
this.m_capacity = capacity;
this.m_maxPath = maxPath;
diff --git a/mcs/class/referencesource/mscorlib/system/io/pathtoolongexception.cs b/mcs/class/referencesource/mscorlib/system/io/pathtoolongexception.cs
index aebd4c30dac..048e734acc5 100644
--- a/mcs/class/referencesource/mscorlib/system/io/pathtoolongexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/pathtoolongexception.cs
@@ -7,7 +7,7 @@
**
** Class: PathTooLongException
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Exception for paths and/or filenames that are
diff --git a/mcs/class/referencesource/mscorlib/system/io/pinnedbuffermemorystream.cs b/mcs/class/referencesource/mscorlib/system/io/pinnedbuffermemorystream.cs
index 7b45756c70a..fda409ae8cd 100644
--- a/mcs/class/referencesource/mscorlib/system/io/pinnedbuffermemorystream.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/pinnedbuffermemorystream.cs
@@ -7,7 +7,7 @@
**
** Class: PinnedBufferMemoryStream
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Pins a byte[], exposing it as an unmanaged memory
diff --git a/mcs/class/referencesource/mscorlib/system/io/searchoption.cs b/mcs/class/referencesource/mscorlib/system/io/searchoption.cs
index c6c95149fc9..444efa952fb 100644
--- a/mcs/class/referencesource/mscorlib/system/io/searchoption.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/searchoption.cs
@@ -7,7 +7,7 @@
**
** Enum: SearchOption
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Enum describing whether the search operation should
diff --git a/mcs/class/referencesource/mscorlib/system/io/seekorigin.cs b/mcs/class/referencesource/mscorlib/system/io/seekorigin.cs
index c910a2aa36b..1e4eaa8dd42 100644
--- a/mcs/class/referencesource/mscorlib/system/io/seekorigin.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/seekorigin.cs
@@ -7,7 +7,7 @@
**
** Enum: SeekOrigin
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Enum describing locations in a stream you could
diff --git a/mcs/class/referencesource/mscorlib/system/io/stream.cs b/mcs/class/referencesource/mscorlib/system/io/stream.cs
index 808f0fcf377..f3e2dcbed0e 100644
--- a/mcs/class/referencesource/mscorlib/system/io/stream.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/stream.cs
@@ -509,7 +509,7 @@ namespace System.IO {
private void RunReadWriteTaskWhenReady(Task asyncWaiter, ReadWriteTask readWriteTask)
{
Contract.Assert(readWriteTask != null); // Should be Contract.Requires, but CCRewrite is doing a poor job with
- // preconditions in async methods that await. Mike & Manuel are aware. (10/6/2011, bug 290222)
+ // preconditions in async methods that await. Mike & Manuel are aware. (10/6/2011,
Contract.Assert(asyncWaiter != null); // Ditto
// If the wait has already complete, run the task.
@@ -744,9 +744,6 @@ namespace System.IO {
// byte[] each time you call it, and should be overridden by any
// subclass that maintains an internal buffer. Then, it can help perf
// significantly for people who are reading one byte at a time.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual int ReadByte()
{
Contract.Ensures(Contract.Result<int>() >= -1);
diff --git a/mcs/class/referencesource/mscorlib/system/io/streamreader.cs b/mcs/class/referencesource/mscorlib/system/io/streamreader.cs
index 7c878469324..98be2379e9c 100644
--- a/mcs/class/referencesource/mscorlib/system/io/streamreader.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/streamreader.cs
@@ -173,11 +173,9 @@ namespace System.IO
Init(stream, encoding, detectEncodingFromByteOrderMarks, bufferSize, leaveOpen);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#elif FEATURE_LEGACYNETCF
+#if FEATURE_LEGACYNETCF
[System.Security.SecuritySafeCritical]
-#endif // FEATURE_LEGACYNETCFIOSECURITY
+#endif // FEATURE_LEGACYNETCF
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public StreamReader(String path)
@@ -198,38 +196,25 @@ namespace System.IO
#endif // FEATURE_LEGACYNETCF
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public StreamReader(String path, bool detectEncodingFromByteOrderMarks)
: this(path, Encoding.UTF8, detectEncodingFromByteOrderMarks, DefaultBufferSize) {
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public StreamReader(String path, Encoding encoding)
: this(path, encoding, true, DefaultBufferSize) {
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public StreamReader(String path, Encoding encoding, bool detectEncodingFromByteOrderMarks)
: this(path, encoding, detectEncodingFromByteOrderMarks, DefaultBufferSize) {
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public StreamReader(String path, Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize)
@@ -1149,7 +1134,7 @@ namespace System.IO
// and is thus lifted to a state machine type, access will be slow.
// As a workaround, we either cache instance fields in locals or use properties to access such fields.
- // See Dev11 bug #370300 for more info.
+ // See Dev11
private Int32 CharLen_Prop {
get { return charLen; }
diff --git a/mcs/class/referencesource/mscorlib/system/io/streamwriter.cs b/mcs/class/referencesource/mscorlib/system/io/streamwriter.cs
index 98d76c99362..f18a310acd8 100644
--- a/mcs/class/referencesource/mscorlib/system/io/streamwriter.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/streamwriter.cs
@@ -150,38 +150,25 @@ namespace System.IO
Init(stream, encoding, bufferSize, leaveOpen);
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public StreamWriter(String path)
: this(path, false, UTF8NoBOM, DefaultBufferSize) {
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public StreamWriter(String path, bool append)
: this(path, append, UTF8NoBOM, DefaultBufferSize) {
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public StreamWriter(String path, bool append, Encoding encoding)
: this(path, append, encoding, DefaultBufferSize) {
}
-#if FEATURE_LEGACYNETCFIOSECURITY
- [System.Security.SecurityCritical]
-#else
[System.Security.SecuritySafeCritical]
-#endif //FEATURE_LEGACYNETCFIOSECURITY
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
public StreamWriter(String path, bool append, Encoding encoding, int bufferSize): this(path, append, encoding, bufferSize, true) {
diff --git a/mcs/class/referencesource/mscorlib/system/io/stringreader.cs b/mcs/class/referencesource/mscorlib/system/io/stringreader.cs
index d4d92c05f2c..1db58849afe 100644
--- a/mcs/class/referencesource/mscorlib/system/io/stringreader.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/stringreader.cs
@@ -7,7 +7,7 @@
**
** Class: StringReader
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Purpose: For reading text from strings
**
diff --git a/mcs/class/referencesource/mscorlib/system/io/stringwriter.cs b/mcs/class/referencesource/mscorlib/system/io/stringwriter.cs
index 4dec9d99e61..f464f5c1a33 100644
--- a/mcs/class/referencesource/mscorlib/system/io/stringwriter.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/stringwriter.cs
@@ -7,7 +7,7 @@
**
** Class: StringWriter
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Purpose: For writing text to a string
**
@@ -40,26 +40,17 @@ namespace System.IO {
// Constructs a new StringWriter. A new StringBuilder is automatically
// created and associated with the new StringWriter.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public StringWriter()
: this(new StringBuilder(), CultureInfo.CurrentCulture)
{
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public StringWriter(IFormatProvider formatProvider)
: this(new StringBuilder(), formatProvider) {
}
// Constructs a new StringWriter that writes to the given StringBuilder.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public StringWriter(StringBuilder sb) : this(sb, CultureInfo.CurrentCulture) {
}
@@ -71,17 +62,11 @@ namespace System.IO {
_isOpen = true;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override void Close()
{
Dispose(true);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
protected override void Dispose(bool disposing)
{
// Do not destroy _sb, so that we can extract this after we are
@@ -92,9 +77,6 @@ namespace System.IO {
public override Encoding Encoding {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
if (m_encoding==null) {
m_encoding = new UnicodeEncoding(false, false);
@@ -113,9 +95,6 @@ namespace System.IO {
// Writes a character to the underlying string buffer.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override void Write(char value) {
if (!_isOpen)
__Error.WriterClosed();
@@ -147,9 +126,6 @@ namespace System.IO {
// Writes a string to the underlying string buffer. If the given string is
// null, nothing is written.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override void Write(String value) {
if (!_isOpen)
__Error.WriterClosed();
@@ -219,9 +195,6 @@ namespace System.IO {
// Returns a string containing the characters written to this TextWriter
// so far.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override String ToString() {
return _sb.ToString();
}
diff --git a/mcs/class/referencesource/mscorlib/system/io/textreader.cs b/mcs/class/referencesource/mscorlib/system/io/textreader.cs
index 5f8e7b98a7d..4e5bad0c17e 100644
--- a/mcs/class/referencesource/mscorlib/system/io/textreader.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/textreader.cs
@@ -7,7 +7,7 @@
**
** Class: TextReader
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Abstract base class for all Text-only Readers.
diff --git a/mcs/class/referencesource/mscorlib/system/io/textwriter.cs b/mcs/class/referencesource/mscorlib/system/io/textwriter.cs
index 4f426e3ca94..a61049c8527 100644
--- a/mcs/class/referencesource/mscorlib/system/io/textwriter.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/textwriter.cs
@@ -7,7 +7,7 @@
**
** Class: TextWriter
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Abstract base class for Text-only Writers.
@@ -105,17 +105,12 @@ namespace System.IO {
protected char[] CoreNewLine = InitialNewLine.ToCharArray ();
#else
-#if !PLATFORM_UNIX
+
private const String InitialNewLine = "\r\n";
protected char[] CoreNewLine = new char[] { '\r', '\n' };
-#else
- private const String InitialNewLine = "\n";
-
- protected char[] CoreNewLine = new char[] {'\n'};
-
-#endif // !PLATFORM_UNIX
#endif
+
// Can be null - if so, ask for the Thread's CurrentCulture every time.
private IFormatProvider InternalFormatProvider;
diff --git a/mcs/class/referencesource/mscorlib/system/io/unmanagedmemoryaccessor.cs b/mcs/class/referencesource/mscorlib/system/io/unmanagedmemoryaccessor.cs
index 70e100c6e17..3d4c571bc6d 100644
--- a/mcs/class/referencesource/mscorlib/system/io/unmanagedmemoryaccessor.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/unmanagedmemoryaccessor.cs
@@ -7,7 +7,7 @@
**
** Class: UnmanagedMemoryAccessor
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Purpose: Provides a fast, AV free, cross-language way of
** accessing unmanaged memory in a random fashion.
diff --git a/mcs/class/referencesource/mscorlib/system/io/unmanagedmemorystream.cs b/mcs/class/referencesource/mscorlib/system/io/unmanagedmemorystream.cs
index 3af6a1c1664..08936ac50cb 100644
--- a/mcs/class/referencesource/mscorlib/system/io/unmanagedmemorystream.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/unmanagedmemorystream.cs
@@ -7,7 +7,7 @@
**
** Class: UnmanagedMemoryStream
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Purpose: Create a stream over unmanaged memory, mostly
** useful for memory-mapped files.
@@ -260,25 +260,16 @@ namespace System.IO {
public override bool CanRead {
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return _isOpen && (_access & FileAccess.Read) != 0; }
}
public override bool CanSeek {
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return _isOpen; }
}
public override bool CanWrite {
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return _isOpen && (_access & FileAccess.Write) != 0; }
}
@@ -320,9 +311,6 @@ namespace System.IO {
public override long Length {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
if (!_isOpen) __Error.StreamIsClosed();
return Interlocked.Read(ref _length);
@@ -337,9 +325,6 @@ namespace System.IO {
}
public override long Position {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
if (!CanSeek) __Error.StreamIsClosed();
Contract.EndContractBlock();
@@ -416,7 +401,7 @@ namespace System.IO {
throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
if (buffer.Length - offset < count)
throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen"));
- Contract.EndContractBlock(); // Keep this in [....] with contract validation in ReadAsync
+ Contract.EndContractBlock(); // Keep this in sync with contract validation in ReadAsync
if (!_isOpen) __Error.StreamIsClosed();
if (!CanRead) __Error.ReadNotSupported();
@@ -595,7 +580,7 @@ namespace System.IO {
throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
if (buffer.Length - offset < count)
throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen"));
- Contract.EndContractBlock(); // Keep contract validation in [....] with WriteAsync(..)
+ Contract.EndContractBlock(); // Keep contract validation in sync with WriteAsync(..)
if (!_isOpen) __Error.StreamIsClosed();
if (!CanWrite) __Error.WriteNotSupported();
diff --git a/mcs/class/referencesource/mscorlib/system/io/unmanagedmemorystreamwrapper.cs b/mcs/class/referencesource/mscorlib/system/io/unmanagedmemorystreamwrapper.cs
index 601962fff19..613241bab17 100644
--- a/mcs/class/referencesource/mscorlib/system/io/unmanagedmemorystreamwrapper.cs
+++ b/mcs/class/referencesource/mscorlib/system/io/unmanagedmemorystreamwrapper.cs
@@ -7,7 +7,7 @@
**
** Class: UnmanagedMemoryStreamWrapper
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Purpose: Create a Memorystream over an UnmanagedMemoryStream
**
@@ -66,6 +66,11 @@ namespace System.IO {
throw new UnauthorizedAccessException(Environment.GetResourceString("UnauthorizedAccess_MemStreamBuffer"));
}
+ public override bool TryGetBuffer(out ArraySegment<byte> buffer) {
+ buffer = default(ArraySegment<byte>);
+ return false;
+ }
+
public override int Capacity {
get {
return (int) _unmanagedStream.Capacity;
@@ -147,7 +152,7 @@ namespace System.IO {
public override Task CopyToAsync(Stream destination, Int32 bufferSize, CancellationToken cancellationToken) {
- // The parameter checks must be in [....] with the base version:
+ // The parameter checks must be in sync with the base version:
if (destination == null)
throw new ArgumentNullException("destination");
diff --git a/mcs/class/referencesource/mscorlib/system/iobservable.cs b/mcs/class/referencesource/mscorlib/system/iobservable.cs
index c225c4093ec..b5b70f7ba9a 100644
--- a/mcs/class/referencesource/mscorlib/system/iobservable.cs
+++ b/mcs/class/referencesource/mscorlib/system/iobservable.cs
@@ -7,7 +7,7 @@
**
** Class: IObservable<T>
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Interface for exposing an Observable in the
@@ -23,4 +23,4 @@ namespace System
IDisposable Subscribe(IObserver<T> observer);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/mscorlib/system/iobserver.cs b/mcs/class/referencesource/mscorlib/system/iobserver.cs
index c7b621c660a..0949dbb0f4d 100644
--- a/mcs/class/referencesource/mscorlib/system/iobserver.cs
+++ b/mcs/class/referencesource/mscorlib/system/iobserver.cs
@@ -7,7 +7,7 @@
**
** Class: IObserver<T>
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Interface for exposing an Observer in the
@@ -26,4 +26,4 @@ namespace System
void OnError(Exception error);
void OnCompleted();
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/mscorlib/system/iprogress.cs b/mcs/class/referencesource/mscorlib/system/iprogress.cs
index 79360b44a13..a25c92c2519 100644
--- a/mcs/class/referencesource/mscorlib/system/iprogress.cs
+++ b/mcs/class/referencesource/mscorlib/system/iprogress.cs
@@ -7,7 +7,7 @@
**
** Class: IProgress<T>
**
-** <OWNER>[....]</OWNER>
+** <OWNER>stoub</OWNER>
**
**
** Purpose: Interface for providing progress updates.
@@ -25,4 +25,4 @@ namespace System
/// <param name="value">The value of the updated progress.</param>
void Report(T value);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/mscorlib/system/math.cs b/mcs/class/referencesource/mscorlib/system/math.cs
index 036328f9c48..59c35f9842e 100644
--- a/mcs/class/referencesource/mscorlib/system/math.cs
+++ b/mcs/class/referencesource/mscorlib/system/math.cs
@@ -244,9 +244,6 @@ namespace System {
**Returns the absolute value of it's argument.
============================================================================*/
[CLSCompliant(false)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static sbyte Abs(sbyte value) {
if (value >= 0)
return value;
@@ -254,9 +251,6 @@ namespace System {
return AbsHelper(value);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
private static sbyte AbsHelper(sbyte value)
{
Contract.Requires(value < 0, "AbsHelper should only be called for negative values! (hack for JIT inlining)");
@@ -266,9 +260,6 @@ namespace System {
return ((sbyte)(-value));
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static short Abs(short value) {
if (value >= 0)
return value;
@@ -276,9 +267,6 @@ namespace System {
return AbsHelper(value);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
private static short AbsHelper(short value) {
Contract.Requires(value < 0, "AbsHelper should only be called for negative values! (hack for JIT inlining)");
if (value == Int16.MinValue)
@@ -287,9 +275,6 @@ namespace System {
return (short) -value;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int Abs(int value) {
if (value >= 0)
return value;
@@ -297,9 +282,6 @@ namespace System {
return AbsHelper(value);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
private static int AbsHelper(int value) {
Contract.Requires(value < 0, "AbsHelper should only be called for negative values! (hack for JIT inlining)");
if (value == Int32.MinValue)
@@ -308,9 +290,6 @@ namespace System {
return -value;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static long Abs(long value) {
if (value >= 0)
return value;
@@ -318,9 +297,6 @@ namespace System {
return AbsHelper(value);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
private static long AbsHelper(long value) {
Contract.Requires(value < 0, "AbsHelper should only be called for negative values! (hack for JIT inlining)");
if (value == Int64.MinValue)
@@ -355,9 +331,6 @@ namespace System {
// it runs the else case, which returns +value instead of negating it.
// return (value < 0) ? -value : value;
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static Decimal Abs(Decimal value)
{
return Decimal.Abs(value);
@@ -368,76 +341,57 @@ namespace System {
============================================================================*/
[CLSCompliant(false)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static sbyte Max(sbyte val1, sbyte val2) {
return (val1>=val2)?val1:val2;
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static byte Max(byte val1, byte val2) {
return (val1>=val2)?val1:val2;
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static short Max(short val1, short val2) {
return (val1>=val2)?val1:val2;
}
[CLSCompliant(false)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static ushort Max(ushort val1, ushort val2) {
return (val1>=val2)?val1:val2;
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static int Max(int val1, int val2) {
return (val1>=val2)?val1:val2;
}
[CLSCompliant(false)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static uint Max(uint val1, uint val2) {
return (val1>=val2)?val1:val2;
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static long Max(long val1, long val2) {
return (val1>=val2)?val1:val2;
}
[CLSCompliant(false)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static ulong Max(ulong val1, ulong val2) {
return (val1>=val2)?val1:val2;
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static float Max(float val1, float val2) {
if (val1 > val2)
return val1;
@@ -449,9 +403,6 @@ namespace System {
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static double Max(double val1, double val2) {
if (val1 > val2)
return val1;
@@ -463,9 +414,6 @@ namespace System {
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static Decimal Max(Decimal val1, Decimal val2) {
return Decimal.Max(val1,val2);
}
@@ -475,76 +423,57 @@ namespace System {
============================================================================*/
[CLSCompliant(false)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static sbyte Min(sbyte val1, sbyte val2) {
return (val1<=val2)?val1:val2;
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static byte Min(byte val1, byte val2) {
return (val1<=val2)?val1:val2;
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static short Min(short val1, short val2) {
return (val1<=val2)?val1:val2;
}
[CLSCompliant(false)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static ushort Min(ushort val1, ushort val2) {
return (val1<=val2)?val1:val2;
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static int Min(int val1, int val2) {
return (val1<=val2)?val1:val2;
}
[CLSCompliant(false)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static uint Min(uint val1, uint val2) {
return (val1<=val2)?val1:val2;
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static long Min(long val1, long val2) {
return (val1<=val2)?val1:val2;
}
[CLSCompliant(false)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static ulong Min(ulong val1, ulong val2) {
return (val1<=val2)?val1:val2;
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static float Min(float val1, float val2) {
if (val1 < val2)
return val1;
@@ -556,9 +485,6 @@ namespace System {
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static double Min(double val1, double val2) {
if (val1 < val2)
return val1;
@@ -570,9 +496,6 @@ namespace System {
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static Decimal Min(Decimal val1, Decimal val2) {
return Decimal.Min(val1,val2);
}
@@ -600,9 +523,6 @@ namespace System {
// Sign function for VB. Returns -1, 0, or 1 if the sign of the number
// is negative, 0, or positive. Throws for floating point NaN's.
[CLSCompliant(false)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int Sign(sbyte value)
{
if (value < 0)
@@ -616,9 +536,6 @@ namespace System {
// Sign function for VB. Returns -1, 0, or 1 if the sign of the number
// is negative, 0, or positive. Throws for floating point NaN's.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int Sign(short value)
{
if (value < 0)
@@ -631,9 +548,6 @@ namespace System {
// Sign function for VB. Returns -1, 0, or 1 if the sign of the number
// is negative, 0, or positive. Throws for floating point NaN's.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int Sign(int value)
{
if (value < 0)
@@ -644,9 +558,6 @@ namespace System {
return 0;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int Sign(long value)
{
if (value < 0)
@@ -657,9 +568,6 @@ namespace System {
return 0;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int Sign (float value)
{
if (value < 0)
@@ -671,9 +579,6 @@ namespace System {
throw new ArithmeticException(Environment.GetResourceString("Arithmetic_NaN"));
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int Sign(double value)
{
if (value < 0)
@@ -685,9 +590,6 @@ namespace System {
throw new ArithmeticException(Environment.GetResourceString("Arithmetic_NaN"));
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int Sign(Decimal value)
{
if (value < 0)
@@ -698,24 +600,15 @@ namespace System {
return 0;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static long BigMul(int a, int b) {
return ((long)a) * b;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int DivRem(int a, int b, out int result) {
result = a%b;
return a/b;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static long DivRem(long a, long b, out long result) {
result = a%b;
return a/b;
diff --git a/mcs/class/referencesource/mscorlib/system/multicastdelegate.cs b/mcs/class/referencesource/mscorlib/system/multicastdelegate.cs
index 72d5a512836..1b5af0537fa 100644
--- a/mcs/class/referencesource/mscorlib/system/multicastdelegate.cs
+++ b/mcs/class/referencesource/mscorlib/system/multicastdelegate.cs
@@ -610,10 +610,6 @@ namespace System
[System.Security.SecurityCritical]
[System.Diagnostics.DebuggerNonUserCode]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
- #endif //!FEATURE_CORECLR
private void CtorClosed(Object target, IntPtr methodPtr)
{
if (target == null)
@@ -624,9 +620,6 @@ namespace System
[System.Security.SecurityCritical]
[System.Diagnostics.DebuggerNonUserCode]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private void CtorClosedStatic(Object target, IntPtr methodPtr)
{
this._target = target;
@@ -635,9 +628,6 @@ namespace System
[System.Security.SecurityCritical] // auto-generated
[System.Diagnostics.DebuggerNonUserCode]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private void CtorRTClosed(Object target, IntPtr methodPtr)
{
this._target = target;
@@ -646,10 +636,6 @@ namespace System
[System.Security.SecurityCritical]
[System.Diagnostics.DebuggerNonUserCode]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
- #endif //!FEATURE_CORECLR
private void CtorOpened(Object target, IntPtr methodPtr, IntPtr shuffleThunk)
{
this._target = this;
@@ -659,9 +645,6 @@ namespace System
[System.Security.SecurityCritical] // auto-generated
[System.Diagnostics.DebuggerNonUserCode]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private void CtorSecureClosed(Object target, IntPtr methodPtr, IntPtr callThunk, IntPtr creatorMethod)
{
MulticastDelegate realDelegate = (MulticastDelegate)Delegate.InternalAllocLike(this);
@@ -675,9 +658,6 @@ namespace System
[System.Security.SecurityCritical] // auto-generated
[System.Diagnostics.DebuggerNonUserCode]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private void CtorSecureClosedStatic(Object target, IntPtr methodPtr, IntPtr callThunk, IntPtr creatorMethod)
{
MulticastDelegate realDelegate = (MulticastDelegate)Delegate.InternalAllocLike(this);
@@ -691,9 +671,6 @@ namespace System
[System.Security.SecurityCritical] // auto-generated
[System.Diagnostics.DebuggerNonUserCode]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private void CtorSecureRTClosed(Object target, IntPtr methodPtr, IntPtr callThunk, IntPtr creatorMethod)
{
MulticastDelegate realDelegate = Delegate.InternalAllocLike(this);
@@ -707,9 +684,6 @@ namespace System
[System.Security.SecurityCritical] // auto-generated
[System.Diagnostics.DebuggerNonUserCode]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private void CtorSecureOpened(Object target, IntPtr methodPtr, IntPtr shuffleThunk, IntPtr callThunk, IntPtr creatorMethod)
{
MulticastDelegate realDelegate = Delegate.InternalAllocLike(this);
@@ -723,9 +697,6 @@ namespace System
[System.Security.SecurityCritical] // auto-generated
[System.Diagnostics.DebuggerNonUserCode]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private void CtorVirtualDispatch(Object target, IntPtr methodPtr, IntPtr shuffleThunk)
{
this._target = this;
@@ -735,9 +706,6 @@ namespace System
[System.Security.SecurityCritical] // auto-generated
[System.Diagnostics.DebuggerNonUserCode]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private void CtorSecureVirtualDispatch(Object target, IntPtr methodPtr, IntPtr shuffleThunk, IntPtr callThunk, IntPtr creatorMethod)
{
MulticastDelegate realDelegate = Delegate.InternalAllocLike(this);
@@ -751,9 +719,6 @@ namespace System
[System.Security.SecurityCritical] // auto-generated
[System.Diagnostics.DebuggerNonUserCode]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private void CtorCollectibleClosedStatic(Object target, IntPtr methodPtr, IntPtr gchandle)
{
this._target = target;
@@ -763,9 +728,6 @@ namespace System
[System.Security.SecurityCritical] // auto-generated
[System.Diagnostics.DebuggerNonUserCode]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private void CtorCollectibleOpened(Object target, IntPtr methodPtr, IntPtr shuffleThunk, IntPtr gchandle)
{
this._target = this;
@@ -776,9 +738,6 @@ namespace System
[System.Security.SecurityCritical] // auto-generated
[System.Diagnostics.DebuggerNonUserCode]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private void CtorCollectibleVirtualDispatch(Object target, IntPtr methodPtr, IntPtr shuffleThunk, IntPtr gchandle)
{
this._target = this;
diff --git a/mcs/class/referencesource/mscorlib/system/nullable.cs b/mcs/class/referencesource/mscorlib/system/nullable.cs
index c168182211f..cfc991e27f0 100644
--- a/mcs/class/referencesource/mscorlib/system/nullable.cs
+++ b/mcs/class/referencesource/mscorlib/system/nullable.cs
@@ -23,66 +23,64 @@ namespace System
// at all (since T may not). Do NOT add any interfaces to Nullable!
//
[Serializable]
+ [System.Runtime.Versioning.NonVersionable] // This only applies to field layout
public struct Nullable<T> where T : struct
{
private bool hasValue;
- internal T value;
-
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ internal T value;
+
+ [System.Runtime.Versioning.NonVersionable]
public Nullable(T value) {
this.value = value;
this.hasValue = true;
}
public bool HasValue {
+ [System.Runtime.Versioning.NonVersionable]
get {
return hasValue;
}
}
public T Value {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
- if (!HasValue) {
+ if (!hasValue) {
ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_NoValue);
}
return value;
}
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public T GetValueOrDefault() {
return value;
}
+ [System.Runtime.Versioning.NonVersionable]
public T GetValueOrDefault(T defaultValue) {
- return HasValue ? value : defaultValue;
+ return hasValue ? value : defaultValue;
}
public override bool Equals(object other) {
- if (!HasValue) return other == null;
+ if (!hasValue) return other == null;
if (other == null) return false;
return value.Equals(other);
}
public override int GetHashCode() {
- return HasValue ? value.GetHashCode() : 0;
+ return hasValue ? value.GetHashCode() : 0;
}
public override string ToString() {
- return HasValue ? value.ToString() : "";
+ return hasValue ? value.ToString() : "";
}
+ [System.Runtime.Versioning.NonVersionable]
public static implicit operator Nullable<T>(T value) {
return new Nullable<T>(value);
}
+ [System.Runtime.Versioning.NonVersionable]
public static explicit operator T(Nullable<T> value) {
return value.Value;
}
diff --git a/mcs/class/referencesource/mscorlib/system/number.cs b/mcs/class/referencesource/mscorlib/system/number.cs
index e7216340707..280316856d2 100644
--- a/mcs/class/referencesource/mscorlib/system/number.cs
+++ b/mcs/class/referencesource/mscorlib/system/number.cs
@@ -533,9 +533,6 @@ namespace System {
return true;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
private static Boolean IsWhite(char ch) {
return (((ch) == 0x20) || ((ch) >= 0x09 && (ch) <= 0x0D));
}
@@ -665,9 +662,6 @@ namespace System {
}
[System.Security.SecurityCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
private unsafe static char * MatchChars(char* p, string str) {
fixed (char* stringPointer = str) {
return MatchChars(p, stringPointer);
diff --git a/mcs/class/referencesource/mscorlib/system/object.cs b/mcs/class/referencesource/mscorlib/system/object.cs
index 8c76ccc9f47..6c27df75d51 100644
--- a/mcs/class/referencesource/mscorlib/system/object.cs
+++ b/mcs/class/referencesource/mscorlib/system/object.cs
@@ -41,6 +41,7 @@ public class Object
{
// Creates a new instance of an Object.
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
+ [System.Runtime.Versioning.NonVersionable]
public Object()
{
}
@@ -59,17 +60,11 @@ public class Object
// replace Equals with EqualsValue for value types).
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual bool Equals(Object obj)
{
return RuntimeHelpers.Equals(this, obj);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool Equals(Object objA, Object objB)
{
if (objA==objB) {
@@ -82,9 +77,7 @@ public class Object
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ [System.Runtime.Versioning.NonVersionable]
public static bool ReferenceEquals (Object objA, Object objB) {
return objA == objB;
}
@@ -93,14 +86,11 @@ public class Object
// Based on the contents of the object, the hash function will return a suitable
// value with a relatively random distribution over the various inputs.
//
- // The default implementation returns the [....] block index for this instance.
+ // The default implementation returns the sync block index for this instance.
// Calling it on the same object multiple times will return the same value, so
// it will technically meet the needs of a hash function, but it's less than ideal.
// Objects (& especially value classes) should override this method.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual int GetHashCode()
{
return RuntimeHelpers.GetHashCode(this);
@@ -117,6 +107,7 @@ public class Object
// Allow an object to free resources before the object is reclaimed by the GC.
//
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+ [System.Runtime.Versioning.NonVersionable]
~Object()
{
}
diff --git a/mcs/class/referencesource/mscorlib/system/oleautbinder.cs b/mcs/class/referencesource/mscorlib/system/oleautbinder.cs
index e883e7a5fbe..49389efbdee 100644
--- a/mcs/class/referencesource/mscorlib/system/oleautbinder.cs
+++ b/mcs/class/referencesource/mscorlib/system/oleautbinder.cs
@@ -79,7 +79,6 @@ namespace System {
}
#endif //!FEATURE_CORECLR
-#if FEATURE_COMINTEROP
// Use the OA variant lib to convert primitive types.
try
{
@@ -108,65 +107,8 @@ namespace System {
#endif
throw new COMException(Environment.GetResourceString("Interop.COM_TypeMismatch"), unchecked((int)0x80020005));
}
-
-#else // !FEATURE_COMINTEROP
-
- return base.ChangeType(value, type, cultureInfo);
-
-#endif // !FEATURE_COMINTEROP
}
-#if !FEATURE_COMINTEROP
- // CanChangeType
- public override bool CanChangeType(Object value, Type type, CultureInfo cultureInfo)
- {
- Variant myValue = new Variant(value);
- if (cultureInfo == null)
- cultureInfo = CultureInfo.CurrentCulture;
-
- #if DISPLAY_DEBUG_INFO
- Console.WriteLine("In OleAutBinder::CanChangeType converting variant of type: {0} to type: {1}", myValue.VariantType, type.Name);
- #endif
-
- // If we are trying to convert to variant then there is nothing to do.
- if (type == typeof(Variant))
- {
- #if DISPLAY_DEBUG_INFO
- Console.WriteLine("Variant being changed to type variant is always legal");
- #endif
- return true;
- }
-
- if (type.IsByRef)
- {
- #if DISPLAY_DEBUG_INFO
- Console.WriteLine("Stripping byref from the type to convert to.");
- #endif
- type = type.GetElementType();
- }
-
- // If we are trying to convert from an object to another type then we don't
- // need the OLEAUT change type, we can just use the normal COM+ mechanisms.
- if (!type.IsPrimitive && type.IsInstanceOfType(value))
- {
- #if DISPLAY_DEBUG_INFO
- Console.WriteLine("Source variant can be assigned to destination type");
- #endif
- return true;
- }
-
- // Handle converting primitives to enums.
- if (type.IsEnum && value.GetType().IsPrimitive)
- {
- #if DISPLAY_DEBUG_INFO
- Console.WriteLine("Converting primitive to enum");
- #endif
- return true;
- }
-
- return base.CanChangeType(value, type, cultureInfo);
- }
-#endif // FEATURE_COMINTEROP
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/paramsarray.cs b/mcs/class/referencesource/mscorlib/system/paramsarray.cs
new file mode 100644
index 00000000000..d57b7ec8fb7
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/paramsarray.cs
@@ -0,0 +1,78 @@
+namespace System
+{
+ internal struct ParamsArray
+ {
+ // Sentinel fixed-length arrays eliminate the need for a "count" field keeping this
+ // struct down to just 4 fields. These are only used for their "Length" property,
+ // that is, their elements are never set or referenced.
+ private static readonly object[] oneArgArray = new object[1];
+ private static readonly object[] twoArgArray = new object[2];
+ private static readonly object[] threeArgArray = new object[3];
+
+ private readonly object arg0;
+ private readonly object arg1;
+ private readonly object arg2;
+
+ // After construction, the first three elements of this array will never be accessed
+ // because the indexer will retrieve those values from arg0, arg1, and arg2.
+ private readonly object[] args;
+
+ public ParamsArray(object arg0)
+ {
+ this.arg0 = arg0;
+ this.arg1 = null;
+ this.arg2 = null;
+
+ // Always assign this.args to make use of its "Length" property
+ this.args = oneArgArray;
+ }
+
+ public ParamsArray(object arg0, object arg1)
+ {
+ this.arg0 = arg0;
+ this.arg1 = arg1;
+ this.arg2 = null;
+
+ // Always assign this.args to make use of its "Length" property
+ this.args = twoArgArray;
+ }
+
+ public ParamsArray(object arg0, object arg1, object arg2)
+ {
+ this.arg0 = arg0;
+ this.arg1 = arg1;
+ this.arg2 = arg2;
+
+ // Always assign this.args to make use of its "Length" property
+ this.args = threeArgArray;
+ }
+
+ public ParamsArray(object[] args)
+ {
+ int len = args.Length;
+ this.arg0 = len > 0 ? args[0] : null;
+ this.arg1 = len > 1 ? args[1] : null;
+ this.arg2 = len > 2 ? args[2] : null;
+ this.args = args;
+ }
+
+ public int Length
+ {
+ get { return this.args.Length; }
+ }
+
+ public object this[int index]
+ {
+ get { return index == 0 ? this.arg0 : GetAtSlow(index); }
+ }
+
+ private object GetAtSlow(int index)
+ {
+ if (index == 1)
+ return this.arg1;
+ if (index == 2)
+ return this.arg2;
+ return this.args[index];
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/platforms.cs b/mcs/class/referencesource/mscorlib/system/platforms.cs
index 735ec297480..2b9ee8ce57a 100644
--- a/mcs/class/referencesource/mscorlib/system/platforms.cs
+++ b/mcs/class/referencesource/mscorlib/system/platforms.cs
@@ -42,4 +42,4 @@ namespace System
}
}
-#endif // FEATURE_CORECLR
+#endif // FEATURE_CORECLR \ No newline at end of file
diff --git a/mcs/class/referencesource/mscorlib/system/progress.cs b/mcs/class/referencesource/mscorlib/system/progress.cs
index 6b273c894a4..a85eeeb7305 100644
--- a/mcs/class/referencesource/mscorlib/system/progress.cs
+++ b/mcs/class/referencesource/mscorlib/system/progress.cs
@@ -7,7 +7,7 @@
**
** Class: Progress<T>
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Event-based implementation of IProgress<T>.
@@ -46,8 +46,8 @@ namespace System
public Progress()
{
// Capture the current synchronization context. "current" is determined by CurrentNoFlow,
- // which doesn't consider the [....] ctx flown with an ExecutionContext, avoiding
- // [....] ctx reference identity issues where the [....] ctx for one thread could be Current on another.
+ // which doesn't consider the sync ctx flown with an ExecutionContext, avoiding
+ // sync ctx reference identity issues where the sync ctx for one thread could be Current on another.
// If there is no current context, we use a default instance targeting the ThreadPool.
m_synchronizationContext = SynchronizationContext.CurrentNoFlow ?? ProgressStatics.DefaultContext;
Contract.Assert(m_synchronizationContext != null);
@@ -80,14 +80,14 @@ namespace System
/// <param name="value">The value of the updated progress.</param>
protected virtual void OnReport(T value)
{
- // If there's no handler, don't bother going through the [....] context.
+ // If there's no handler, don't bother going through the sync context.
// Inside the callback, we'll need to check again, in case
// an event handler is removed between now and then.
Action<T> handler = m_handler;
EventHandler<T> changedEvent = ProgressChanged;
if (handler != null || changedEvent != null)
{
- // Post the processing to the [....] context.
+ // Post the processing to the sync context.
// (If T is a value type, it will get boxed here.)
m_synchronizationContext.Post(m_invokeHandlers, value);
}
diff --git a/mcs/class/referencesource/mscorlib/system/random.cs b/mcs/class/referencesource/mscorlib/system/random.cs
index 3ce3517f6c9..48168a68741 100644
--- a/mcs/class/referencesource/mscorlib/system/random.cs
+++ b/mcs/class/referencesource/mscorlib/system/random.cs
@@ -91,9 +91,6 @@ namespace System {
**Arguments: None
**Exceptions: None
==============================================================================*/
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
protected virtual double Sample() {
//Including this division at the end gives us significantly improved
//random number distribution.
@@ -131,9 +128,6 @@ namespace System {
**Arguments: None
**Exceptions: None.
==============================================================================*/
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual int Next() {
return InternalSample();
}
@@ -198,9 +192,6 @@ namespace System {
**Arguments: None
**Exceptions: None
==============================================================================*/
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual double NextDouble() {
return Sample();
}
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/Associates.cs b/mcs/class/referencesource/mscorlib/system/reflection/Associates.cs
index 3f9c8e5596c..e2a1842a494 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/Associates.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/Associates.cs
@@ -3,7 +3,7 @@
// Copyright(c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/ConstructorInfo.cs b/mcs/class/referencesource/mscorlib/system/reflection/ConstructorInfo.cs
index 3ff5efa3e82..dfc2d64d8ee 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/ConstructorInfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/ConstructorInfo.cs
@@ -3,7 +3,7 @@
// Copyright(c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection
@@ -12,7 +12,6 @@ namespace System.Reflection
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.Contracts;
- using System.Diagnostics.Tracing;
using System.Globalization;
using System.Runtime;
using System.Runtime.ConstrainedExecution;
@@ -68,7 +67,7 @@ namespace System.Reflection
return !(left == right);
}
#endif // !FEATURE_CORECLR
-#if FEATURE_NETCORE || !FEATURE_CORECLR
+
public override bool Equals(object obj)
{
return base.Equals(obj);
@@ -78,7 +77,6 @@ namespace System.Reflection
{
return base.GetHashCode();
}
-#endif //FEATURE_NETCORE || !FEATURE_CORECLR
#region Internal Members
internal virtual Type GetReturnType() { throw new NotImplementedException(); }
@@ -108,6 +106,7 @@ namespace System.Reflection
}
#endregion
+#if !FEATURE_CORECLR
#region COM Interop Support
Type _ConstructorInfo.GetType()
{
@@ -156,6 +155,7 @@ namespace System.Reflection
throw new NotImplementedException();
}
#endregion
+#endif
}
[Serializable]
@@ -321,9 +321,6 @@ namespace System.Reflection
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal override bool CacheEquals(object o)
{
RuntimeConstructorInfo m = o as RuntimeConstructorInfo;
@@ -443,13 +440,6 @@ namespace System.Reflection
[System.Security.SecuritySafeCritical] // auto-generated
get { return RuntimeMethodHandle.GetName(this); }
}
-
- [System.Security.SecuritySafeCritical]
- internal override String GetFullNameForEtw()
- {
- return RuntimeMethodHandle.GetName(this);
- }
-
[System.Runtime.InteropServices.ComVisible(true)]
public override MemberTypes MemberType { get { return MemberTypes.Constructor; } }
@@ -666,14 +656,6 @@ namespace System.Reflection
parameters[index] = arguments[index];
return retValue;
}
-
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.ConstructorInfoInvoke(GetRuntimeType().GetFullNameForEtw(), GetFullNameForEtw());
- }
-#endif
-
return RuntimeMethodHandle.InvokeMethod(obj, null, sig, false);
}
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/RuntimeReflectionExtensions.cs b/mcs/class/referencesource/mscorlib/system/reflection/RuntimeReflectionExtensions.cs
index a960d20d003..158ca60092a 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/RuntimeReflectionExtensions.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/RuntimeReflectionExtensions.cs
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
-using System.Diagnostics.Tracing;
namespace System.Reflection
{
@@ -23,155 +22,45 @@ namespace System.Reflection
public static IEnumerable<PropertyInfo> GetRuntimeProperties(this Type type)
{
CheckAndThrow(type);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeProperties(type.GetFullNameForEtw());
- }
-#endif
- IEnumerable<PropertyInfo> properties = type.GetProperties(everything);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeProperties(type.GetFullNameForEtw());
- }
-#endif
- return properties;
+ return type.GetProperties(everything);
}
public static IEnumerable<EventInfo> GetRuntimeEvents(this Type type)
{
CheckAndThrow(type);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeEvents(type.GetFullNameForEtw());
- }
-#endif
- IEnumerable<EventInfo> events = type.GetEvents(everything);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeEvents(type.GetFullNameForEtw());
- }
-#endif
- return events;
+ return type.GetEvents(everything);
}
public static IEnumerable<MethodInfo> GetRuntimeMethods(this Type type)
{
CheckAndThrow(type);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeMethods(type.GetFullNameForEtw());
- }
-#endif
- IEnumerable<MethodInfo> methods = type.GetMethods(everything);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeMethods(type.GetFullNameForEtw());
- }
-#endif
- return methods;
+ return type.GetMethods(everything);
}
public static IEnumerable<FieldInfo> GetRuntimeFields(this Type type)
{
CheckAndThrow(type);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeFields(type.GetFullNameForEtw());
- }
-#endif
- IEnumerable<FieldInfo> fields = type.GetFields(everything);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeFields(type.GetFullNameForEtw());
- }
-#endif
-
- return fields;
+ return type.GetFields(everything);
}
public static PropertyInfo GetRuntimeProperty(this Type type, string name)
{
CheckAndThrow(type);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeProperty(type.GetFullNameForEtw(), name != null ? name : "");
- }
-#endif
-
- PropertyInfo pi = type.GetProperty(name);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeProperty(type.GetFullNameForEtw(), pi != null ? pi.GetFullNameForEtw() : "");
- }
-#endif
-
- return pi;
+ return type.GetProperty(name);
}
public static EventInfo GetRuntimeEvent(this Type type, string name)
{
CheckAndThrow(type);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeEvent(type.GetFullNameForEtw(), name != null ? name : "");
- }
-#endif
- EventInfo ei = type.GetEvent(name);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeEvent(type.GetFullNameForEtw(), ei != null ? ei.GetFullNameForEtw() : "");
- }
-#endif
-
- return ei;
+ return type.GetEvent(name);
}
public static MethodInfo GetRuntimeMethod(this Type type, string name, Type[] parameters)
{
CheckAndThrow(type);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeMethod(type.GetFullNameForEtw(), name != null ? name : "");
- }
-#endif
- MethodInfo mi = type.GetMethod(name, parameters);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeMethod(type.GetFullNameForEtw(), mi != null ? mi.GetFullNameForEtw() : "");
- }
-#endif
-
- return mi;
+ return type.GetMethod(name, parameters);
}
public static FieldInfo GetRuntimeField(this Type type, string name)
{
CheckAndThrow(type);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeField(type.GetFullNameForEtw(), name != null ? name : "");
- }
-#endif
- FieldInfo fi = type.GetField(name);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeField(type.GetFullNameForEtw(), fi != null ? fi.GetFullNameForEtw() : "");
- }
-#endif
-
- return fi;
+ return type.GetField(name);
}
public static MethodInfo GetRuntimeBaseDefinition(this MethodInfo method){
CheckAndThrow(method);
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/__filters.cs b/mcs/class/referencesource/mscorlib/system/reflection/__filters.cs
index 951881c29d2..b4f92594884 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/__filters.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/__filters.cs
@@ -6,7 +6,7 @@
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// This class defines the delegate methods for the COM+ implemented filters.
// This is the reflection version of these. There is also a _Filters class in
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/ambiguousmatchexception.cs b/mcs/class/referencesource/mscorlib/system/reflection/ambiguousmatchexception.cs
index b6f715ae29d..cfff77d6685 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/ambiguousmatchexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/ambiguousmatchexception.cs
@@ -8,7 +8,7 @@
//
// AmbiguousMatchException is thrown when binding to a method results in more
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// than one method matching the binding criteria. This exception is thrown in
// general when something is Ambiguous.
//
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/assembly.cs b/mcs/class/referencesource/mscorlib/system/reflection/assembly.cs
index c6cd6858af4..84bc21c562d 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/assembly.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/assembly.cs
@@ -42,7 +42,7 @@ namespace System.Reflection
using __HResults = System.__HResults;
using System.Runtime.Versioning;
using System.Diagnostics.Contracts;
- using System.Diagnostics.Tracing;
+
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
@@ -102,7 +102,7 @@ namespace System.Reflection
return !(left == right);
}
#endif // !FEATURE_CORECLR
-#if FEATURE_NETCORE || !FEATURE_CORECLR
+
public override bool Equals(object o)
{
return base.Equals(o);
@@ -112,7 +112,6 @@ namespace System.Reflection
{
return base.GetHashCode();
}
-#endif //FEATURE_NETCORE || !FEATURE_CORECLR
// Locate an assembly by the name of the file containing the manifest.
#if FEATURE_CORECLR
@@ -623,7 +622,6 @@ namespace System.Reflection
return RuntimeAssembly.GetExecutingAssembly(ref stackMark);
}
-#if !FEATURE_CORECLR
[System.Security.SecuritySafeCritical] // auto-generated
public static Assembly GetEntryAssembly() {
AppDomainManager domainManager = AppDomain.CurrentDomain.DomainManager;
@@ -631,7 +629,6 @@ namespace System.Reflection
domainManager = new AppDomainManager();
return domainManager.EntryAssembly;
}
-#endif // !FEATURE_CORECLR
#endregion // public static methods
@@ -698,12 +695,6 @@ namespace System.Reflection
}
}
- // This name is used for the dynamic type usage scenario ETW logging for ProjectN apps.
- internal virtual String GetFullNameForEtw()
- {
- return null;
- }
-
public virtual MethodInfo EntryPoint
{
get
@@ -712,21 +703,16 @@ namespace System.Reflection
}
}
+#if !FEATURE_CORECLR
Type _Assembly.GetType()
{
return base.GetType();
}
+#endif
public virtual Type GetType(String name)
{
- Type t = GetType(name, false, false);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && t != null)
- {
- FrameworkEventSource.Log.AssemblyGetType(t.GetFullNameForEtw());
- }
-#endif
- return t;
+ return GetType(name, false, false);
}
public virtual Type GetType(String name, bool throwOnError)
@@ -752,7 +738,6 @@ namespace System.Reflection
throw new NotImplementedException();
}
-#if !FEATURE_CORECLR || FEATURE_NETCORE
public virtual IEnumerable<TypeInfo> DefinedTypes
{
get
@@ -774,7 +759,6 @@ namespace System.Reflection
return typeinfos;
}
}
-#endif //!FEATURE_CORECLR || FEATURE_NETCORE
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine | ResourceScope.Assembly, ResourceScope.Machine | ResourceScope.Assembly)]
@@ -1162,7 +1146,7 @@ namespace System.Reflection
}
- // Keep this in [....] with LOADCTX_TYPE defined in fusionpriv.idl
+ // Keep this in sync with LOADCTX_TYPE defined in fusionpriv.idl
internal enum LoadContext
{
DEFAULT,
@@ -1171,35 +1155,30 @@ namespace System.Reflection
HOSTED,
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[Serializable]
internal class RuntimeAssembly : Assembly
-#if FEATURE_COMINTEROP
+#if !FEATURE_CORECLR
, ICustomQueryInterface
#endif
{
-#if FEATURE_COMINTEROP
+#if !FEATURE_CORECLR
#region ICustomQueryInterface
[System.Security.SecurityCritical]
CustomQueryInterfaceResult ICustomQueryInterface.GetInterface([In]ref Guid iid, out IntPtr ppv)
{
-#if FEATURE_CLASSIC_COMINTEROP
if (iid == typeof(NativeMethods.IDispatch).GUID)
{
ppv = Marshal.GetComInterfaceForObject(this, typeof(_Assembly));
return CustomQueryInterfaceResult.Handled;
}
-#endif // FEATURE_CLASSIC_COMINTEROP
ppv = IntPtr.Zero;
return CustomQueryInterfaceResult.NotHandled;
}
#endregion
-#endif // FEATURE_COMINTEROP
+#endif // !FEATURE_CORECLR
-#if !FEATURE_CORECLR
+#if FEATURE_APPX
// The highest byte is the flags and the lowest 3 bytes are
// the cached ctor token of [DynamicallyInvocableAttribute].
private enum ASSEMBLY_FLAGS : uint
@@ -1207,12 +1186,10 @@ namespace System.Reflection
ASSEMBLY_FLAGS_UNKNOWN = 0x00000000,
ASSEMBLY_FLAGS_INITIALIZED = 0x01000000,
ASSEMBLY_FLAGS_FRAMEWORK = 0x02000000,
-#if FEATURE_APPX
ASSEMBLY_FLAGS_SAFE_REFLECTION = 0x04000000,
ASSEMBLY_FLAGS_TOKEN_MASK = 0x00FFFFFF,
-#endif // FEATURE_APPX
}
-#endif // !FEATURE_CORECLR
+#endif // FEATURE_APPX
private const uint COR_E_LOADING_REFERENCE_ASSEMBLY = 0x80131058U;
@@ -1223,12 +1200,9 @@ namespace System.Reflection
private event ModuleResolveEventHandler _ModuleResolve;
private string m_fullname;
private object m_syncRoot; // Used to keep collectible types alive and as the syncroot for reflection.emit
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
private IntPtr m_assembly; // slack for ptr datum on unmanaged side
-#if !FEATURE_CORECLR
+#if FEATURE_APPX
private ASSEMBLY_FLAGS m_flags;
#endif
#endregion
@@ -1243,9 +1217,7 @@ namespace System.Reflection
return token | (int)MetadataTokenType.MethodDef;
}
}
-#endif
-#if !FEATURE_CORECLR
private ASSEMBLY_FLAGS Flags
{
[SecuritySafeCritical]
@@ -1255,11 +1227,14 @@ namespace System.Reflection
{
ASSEMBLY_FLAGS flags = ASSEMBLY_FLAGS.ASSEMBLY_FLAGS_UNKNOWN;
+#if !FEATURE_CORECLR
if (RuntimeAssembly.IsFrameworkAssembly(GetName()))
+#else
+ if (IsProfileAssembly)
+#endif
{
flags |= ASSEMBLY_FLAGS.ASSEMBLY_FLAGS_FRAMEWORK | ASSEMBLY_FLAGS.ASSEMBLY_FLAGS_SAFE_REFLECTION;
-#if FEATURE_APPX
foreach (string name in s_unsafeFrameworkAssemblyNames)
{
if (String.Compare(GetSimpleName(), name, StringComparison.OrdinalIgnoreCase) == 0)
@@ -1288,7 +1263,6 @@ namespace System.Reflection
flags |= (ASSEMBLY_FLAGS)token & ASSEMBLY_FLAGS.ASSEMBLY_FLAGS_TOKEN_MASK;
}
-#endif // FEATURE_APPX
}
else if (IsDesignerBindingContext())
{
@@ -1301,7 +1275,7 @@ namespace System.Reflection
return m_flags;
}
}
-#endif // !FEATURE_CORECLR
+#endif // FEATURE_APPX
internal object SyncRoot
{
@@ -1446,20 +1420,6 @@ namespace System.Reflection
}
}
- [System.Security.SecuritySafeCritical]
- internal override String GetFullNameForEtw()
- {
- // If called by Object.ToString(), return val may be NULL.
- if (m_fullname == null)
- {
- string s = null;
- GetFullName(GetNativeHandle(), JitHelpers.GetStringHandleOnStack(ref s));
- Interlocked.CompareExchange<string>(ref m_fullname, s, null);
- }
-
- return m_fullname;
- }
-
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
[DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
@@ -1522,7 +1482,6 @@ namespace System.Reflection
return types;
}
-#if !FEATURE_CORECLR || FEATURE_NETCORE
public override IEnumerable<TypeInfo> DefinedTypes
{
[System.Security.SecuritySafeCritical]
@@ -1540,7 +1499,6 @@ namespace System.Reflection
return rtTypes.ToArray();
}
}
-#endif //!FEATURE_CORECLR
// Load a resource based on the NameSpace of the type.
[System.Security.SecuritySafeCritical] // auto-generated
@@ -1883,16 +1841,14 @@ namespace System.Reflection
"Microsoft.VisualBasic"
};
-#if !FEATURE_CORECLR
+#if FEATURE_APPX
[System.Security.SecuritySafeCritical]
internal bool IsFrameworkAssembly()
{
ASSEMBLY_FLAGS flags = Flags;
return (flags & ASSEMBLY_FLAGS.ASSEMBLY_FLAGS_FRAMEWORK) != 0;
}
-#endif
-#if FEATURE_APPX
// Returns true if we want to allow this assembly to invoke non-W8P
// framework APIs through reflection.
internal bool IsSafeForReflection()
@@ -1930,7 +1886,6 @@ namespace System.Reflection
bool forIntrospection,
bool suppressSecurityChecks);
-
#if !FEATURE_CORECLR
// The NGEN task uses this method, so please do not modify its signature
[System.Security.SecurityCritical] // auto-generated
@@ -2466,15 +2421,10 @@ namespace System.Reflection
((codebase[j+1] == '/') || (codebase[j+1] == '\\')) &&
((codebase[j+2] == '/') || (codebase[j+2] == '\\')) )
return codebase;
-#if !PLATFORM_UNIX
else if ((len > 2) && (codebase[0] == '\\') && (codebase[1] == '\\'))
return "file://" + codebase;
else
return "file:///" + Path.GetFullPathInternal( codebase );
-#else
- else
- return "file://" + Path.GetFullPathInternal( codebase );
-#endif // !PLATFORM_UNIX
}
[System.Security.SecurityCritical] // auto-generated
@@ -2539,17 +2489,17 @@ namespace System.Reflection
if (length > Int64.MaxValue)
throw new NotImplementedException(Environment.GetResourceString("NotImplemented_ResourcesLongerThan2^63"));
- // <STRIP>For cases where we're loading an embedded resource from an assembly,
- // in V1 we do not have any serious lifetime issues with the
- // UnmanagedMemoryStream. If the Stream is only used
- // in the AppDomain that contains the assembly, then if that AppDomain
- // is unloaded, we will collect all of the objects in the AppDomain first
- // before unloading assemblies. If the Stream is shared across AppDomains,
- // then the original AppDomain was unloaded, accesses to this Stream will
- // throw an exception saying the appdomain was unloaded. This is
- // guaranteed be EE AppDomain goo. And for shared assemblies like
- // mscorlib, their lifetime is the lifetime of the process, so the
- // assembly will NOT be unloaded, so the resource will always be in memory.</STRIP>
+ // <
+
+
+
+
+
+
+
+
+
+
return new UnmanagedMemoryStream(pbInMemoryResource, (long)length, (long)length, FileAccess.Read, true);
}
@@ -2965,9 +2915,9 @@ namespace System.Reflection
if (e.IsTransient)
throw;
- // See Dev11 bug 298776 (DevDiv2 TFS database). Sometimes
- // UnauthorizedAccessException will be thrown by the call to
- // Fusion.ReadCache.
+ // See Dev11
+
+
// We also catch any other exception types we haven't come across yet,
// not just UnauthorizedAccessException.
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/assemblyattributes.cs b/mcs/class/referencesource/mscorlib/system/reflection/assemblyattributes.cs
index f803e4a9d17..d222ee51a8f 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/assemblyattributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/assemblyattributes.cs
@@ -7,7 +7,7 @@
**
** File: AssemblyAttributes
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: For Assembly-related custom attributes.
@@ -362,8 +362,7 @@ namespace System.Reflection {
}
}
- // We don't support key migration on Silverlight, as libraries should all be distributed with the application.
-#if FEATURE_STRONGNAME_MIGRATION || FEATURE_NETCORE
+#if FEATURE_STRONGNAME_MIGRATION
[AttributeUsage(AttributeTargets.Assembly, Inherited = false, AllowMultiple=false)]
public sealed class AssemblySignatureKeyAttribute : Attribute
{
@@ -388,7 +387,6 @@ namespace System.Reflection {
}
#endif
-#if FEATURE_CORECLR || !FEATURE_PAL || MONO
[AttributeUsage (AttributeTargets.Assembly, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AssemblyKeyNameAttribute : Attribute
@@ -405,7 +403,6 @@ namespace System.Reflection {
get { return m_keyName; }
}
}
-#endif // FEATURE_CORECLR || !FEATURE_PAL
}
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/assemblyname.cs b/mcs/class/referencesource/mscorlib/system/reflection/assemblyname.cs
index cc45826b522..802414cc091 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/assemblyname.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/assemblyname.cs
@@ -7,8 +7,8 @@
**
** File: AssemblyName
**
-** <OWNER>[....]</OWNER>
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Used for binding and retrieving info about an assembly
@@ -46,7 +46,10 @@ namespace System.Reflection {
private Version _Version;
private StrongNameKeyPair _StrongNameKeyPair;
+
+#if FEATURE_SERIALIZATION
private SerializationInfo m_siInfo; //A temporary variable which we need during deserialization.
+#endif
private byte[] _HashForControl;
private AssemblyHashAlgorithm _HashAlgorithm;
@@ -94,10 +97,12 @@ namespace System.Reflection {
public String CultureName
{
- get
- {
+ get {
return (_CultureInfo == null) ? null : _CultureInfo.Name;
}
+ set {
+ _CultureInfo = (value == null) ? null : new CultureInfo(value);
+ }
}
public String CodeBase
@@ -309,6 +314,7 @@ namespace System.Reflection {
return s;
}
+#if FEATURE_SERIALIZATION
[System.Security.SecurityCritical] // auto-generated_required
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
@@ -367,6 +373,14 @@ namespace System.Reflection {
m_siInfo = null;
}
+ // Constructs a new AssemblyName during deserialization.
+ internal AssemblyName(SerializationInfo info, StreamingContext context)
+ {
+ //The graph is not valid until OnDeserialization() has been called.
+ m_siInfo = info;
+ }
+#endif // FEATURE_SERIALIZATION
+
[System.Security.SecuritySafeCritical] // auto-generated
public AssemblyName(String assemblyName)
{
@@ -418,13 +432,6 @@ namespace System.Reflection {
nInit(out dummy, false, false);
}
- // Constructs a new AssemblyName during deserialization.
- internal AssemblyName(SerializationInfo info, StreamingContext context)
- {
- //The graph is not valid until OnDeserialization() has been called.
- m_siInfo = info;
- }
-
internal void SetProcArchIndex(PortableExecutableKinds pek, ImageFileMachine ifm)
{
ProcessorArchitecture = CalculateProcArchIndex(pek, ifm, _Flags);
@@ -503,6 +510,7 @@ namespace System.Reflection {
_StrongNameKeyPair = keyPair;
}
+#if !FEATURE_CORECLR
void _AssemblyName.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -522,6 +530,7 @@ namespace System.Reflection {
{
throw new NotImplementedException();
}
+#endif
#if FEATURE_APTCA
internal string GetNameWithPublicKey()
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/assemblynameflags.cs b/mcs/class/referencesource/mscorlib/system/reflection/assemblynameflags.cs
index 076a88e32ff..3b7f2ea7421 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/assemblynameflags.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/assemblynameflags.cs
@@ -7,8 +7,8 @@
**
** File: AssemblyNameFlags
**
-** <OWNER>[....]</OWNER>
-** <OWNER>[....]</OWNER>
+** <OWNER>mray</OWNER>
+** <OWNER>WESU</OWNER>
**
**
** Purpose: Flags controlling how an AssemblyName is used
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/assemblynameproxy.cs b/mcs/class/referencesource/mscorlib/system/reflection/assemblynameproxy.cs
index dc844de4151..5be9bc495bd 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/assemblynameproxy.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/assemblynameproxy.cs
@@ -7,8 +7,8 @@
**
** File: AssemblyNameProxy
**
-** <OWNER>[....]</OWNER>
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Remotable version the AssemblyName
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/binder.cs b/mcs/class/referencesource/mscorlib/system/reflection/binder.cs
index 30d8234bc67..3d14d37f29c 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/binder.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/binder.cs
@@ -5,7 +5,7 @@
// ==--==
////////////////////////////////////////////////////////////////////////////////
//
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
//
// This interface defines a set of methods which interact with reflection
// during the binding process. This control allows systems to apply language
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/bindingflags.cs b/mcs/class/referencesource/mscorlib/system/reflection/bindingflags.cs
index 33a54d7b87a..c7d45fa8621 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/bindingflags.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/bindingflags.cs
@@ -8,7 +8,7 @@
//
// BindingFlags are a set of flags that control the binding and invocation process
//
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
// in Reflection. There are two processes. The first is selection of a Member which
// is the binding phase. The second, is invocation. These flags control how this
// process works.
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/callingconventions.cs b/mcs/class/referencesource/mscorlib/system/reflection/callingconventions.cs
index d8415a35942..8e4406fda1d 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/callingconventions.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/callingconventions.cs
@@ -8,10 +8,10 @@
//
// CallingConventions is a set of Bits representing the calling conventions
//
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
// in the system.
//
-// <EMAIL>Author: [....]</EMAIL>
+// <EMAIL>Author: meichint</EMAIL>
// Date: Aug 99
//
namespace System.Reflection {
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/cominterfaces.cs b/mcs/class/referencesource/mscorlib/system/reflection/cominterfaces.cs
index 9e8a30874ec..e5f37d2f305 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/cominterfaces.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/cominterfaces.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
using System;
using System.Globalization;
using System.IO;
@@ -22,6 +22,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _Type
{
+#if !FEATURE_CORECLR
#region IDispatch Members
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -154,6 +155,7 @@ namespace System.Runtime.InteropServices
bool IsMarshalByRef { get; }
bool Equals(Type o);
#endregion
+#endif
}
[GuidAttribute("17156360-2f1a-384a-bc52-fde93c215c5b")]
@@ -163,6 +165,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _Assembly
{
+#if !FEATURE_CORECLR
#region Object Members
String ToString();
bool Equals(Object other);
@@ -239,6 +242,7 @@ get; }
AssemblyName[] GetReferencedAssemblies();
bool GlobalAssemblyCache { get; }
#endregion
+#endif
}
@@ -249,6 +253,7 @@ get; }
[System.Runtime.InteropServices.ComVisible(true)]
public interface _MemberInfo
{
+#if !FEATURE_CORECLR
#region IDispatch Members
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -272,6 +277,7 @@ get; }
Object[] GetCustomAttributes(bool inherit);
bool IsDefined(Type attributeType, bool inherit);
#endregion
+#endif
}
@@ -282,6 +288,7 @@ get; }
[System.Runtime.InteropServices.ComVisible(true)]
public interface _MethodBase
{
+#if !FEATURE_CORECLR
#region IDispatch Members
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -328,6 +335,7 @@ get; }
bool IsConstructor { get; }
Object Invoke(Object obj, Object[] parameters);
#endregion
+#endif
}
@@ -338,6 +346,7 @@ get; }
[System.Runtime.InteropServices.ComVisible(true)]
public interface _MethodInfo
{
+#if !FEATURE_CORECLR
#region IDispatch Members
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -390,6 +399,7 @@ get; }
ICustomAttributeProvider ReturnTypeCustomAttributes { get; }
MethodInfo GetBaseDefinition();
#endregion
+#endif
}
@@ -400,6 +410,7 @@ get; }
[System.Runtime.InteropServices.ComVisible(true)]
public interface _ConstructorInfo
{
+#if !FEATURE_CORECLR
#region IDispatch Members
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -451,6 +462,7 @@ get; }
Object Invoke_4(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture);
Object Invoke_5(Object[] parameters);
#endregion
+#endif
}
@@ -461,6 +473,7 @@ get; }
[System.Runtime.InteropServices.ComVisible(true)]
public interface _FieldInfo
{
+#if !FEATURE_CORECLR
#region IDispatch Members
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -507,6 +520,7 @@ get; }
bool IsSpecialName { get; }
bool IsPinvokeImpl { get; }
#endregion
+#endif
}
@@ -517,6 +531,7 @@ get; }
[System.Runtime.InteropServices.ComVisible(true)]
public interface _PropertyInfo
{
+#if !FEATURE_CORECLR
#region IDispatch Members
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -559,6 +574,7 @@ get; }
MethodInfo GetSetMethod();
bool IsSpecialName { get; }
#endregion
+#endif
}
@@ -569,6 +585,7 @@ get; }
[System.Runtime.InteropServices.ComVisible(true)]
public interface _EventInfo
{
+#if !FEATURE_CORECLR
#region IDispatch Members
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -607,6 +624,7 @@ get; }
bool IsSpecialName { get; }
bool IsMulticast { get; }
#endregion
+#endif
}
[GuidAttribute("993634C4-E47A-32CC-BE08-85F567DC27D6")]
@@ -616,10 +634,12 @@ get; }
[System.Runtime.InteropServices.ComVisible(true)]
public interface _ParameterInfo
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
[GuidAttribute("D002E9BA-D9E3-3749-B1D3-D565A08B13E7")]
@@ -629,10 +649,12 @@ get; }
[System.Runtime.InteropServices.ComVisible(true)]
public interface _Module
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
[GuidAttribute("B42B6AAC-317E-34D5-9FA9-093BB4160C50")]
@@ -642,10 +664,12 @@ get; }
[System.Runtime.InteropServices.ComVisible(true)]
public interface _AssemblyName
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/customattribute.cs b/mcs/class/referencesource/mscorlib/system/reflection/customattribute.cs
index a5689babc0b..46ee3f08fe9 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/customattribute.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/customattribute.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
@@ -452,11 +452,9 @@ namespace System.Reflection
if (marshalAs.MarshalType != null) i++;
if (marshalAs.MarshalTypeRef != null) i++;
if (marshalAs.MarshalCookie != null) i++;
-#if FEATURE_COMINTEROP
i++; // IidParameterIndex
i++; // SafeArraySubType
if (marshalAs.SafeArrayUserDefinedSubType != null) i++;
-#endif // FEATURE_COMINTEROP
CustomAttributeNamedArgument[] namedArgs = new CustomAttributeNamedArgument[i];
// For compatibility with previous runtimes, we always include the following 5 attributes, regardless
@@ -465,20 +463,16 @@ namespace System.Reflection
namedArgs[i++] = new CustomAttributeNamedArgument(type.GetField("ArraySubType"), marshalAs.ArraySubType);
namedArgs[i++] = new CustomAttributeNamedArgument(type.GetField("SizeParamIndex"), marshalAs.SizeParamIndex);
namedArgs[i++] = new CustomAttributeNamedArgument(type.GetField("SizeConst"), marshalAs.SizeConst);
-#if FEATURE_COMINTEROP
namedArgs[i++] = new CustomAttributeNamedArgument(type.GetField("IidParameterIndex"), marshalAs.IidParameterIndex);
namedArgs[i++] = new CustomAttributeNamedArgument(type.GetField("SafeArraySubType"), marshalAs.SafeArraySubType);
-#endif // FEATURE_COMINTEROP
if (marshalAs.MarshalType != null)
namedArgs[i++] = new CustomAttributeNamedArgument(type.GetField("MarshalType"), marshalAs.MarshalType);
if (marshalAs.MarshalTypeRef != null)
namedArgs[i++] = new CustomAttributeNamedArgument(type.GetField("MarshalTypeRef"), marshalAs.MarshalTypeRef);
if (marshalAs.MarshalCookie != null)
namedArgs[i++] = new CustomAttributeNamedArgument(type.GetField("MarshalCookie"), marshalAs.MarshalCookie);
-#if FEATURE_COMINTEROP
if (marshalAs.SafeArrayUserDefinedSubType != null)
namedArgs[i++] = new CustomAttributeNamedArgument(type.GetField("SafeArrayUserDefinedSubType"), marshalAs.SafeArrayUserDefinedSubType);
-#endif // FEATURE_COMINTEROP
m_namedArgs = Array.AsReadOnly(namedArgs);
}
@@ -1194,13 +1188,6 @@ namespace System.Reflection
{
Contract.Requires(type != null);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && caType != null)
- {
- FrameworkEventSource.Log.QueryAttributeIsDefined(caType.GetFullNameForEtw());
- }
-#endif
-
if (type.GetElementType() != null)
return false;
@@ -1232,13 +1219,6 @@ namespace System.Reflection
Contract.Requires(method != null);
Contract.Requires(caType != null);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && caType != null)
- {
- FrameworkEventSource.Log.QueryAttributeIsDefined(caType.GetFullNameForEtw());
- }
-#endif
-
if (PseudoCustomAttribute.IsDefined(method, caType))
return true;
@@ -1267,13 +1247,6 @@ namespace System.Reflection
Contract.Requires(ctor != null);
Contract.Requires(caType != null);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && caType != null)
- {
- FrameworkEventSource.Log.QueryAttributeIsDefined(caType.GetFullNameForEtw());
- }
-#endif
-
if (PseudoCustomAttribute.IsDefined(ctor, caType))
return true;
@@ -1286,13 +1259,6 @@ namespace System.Reflection
Contract.Requires(property != null);
Contract.Requires(caType != null);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && caType != null)
- {
- FrameworkEventSource.Log.QueryAttributeIsDefined(caType.GetFullNameForEtw());
- }
-#endif
-
if (PseudoCustomAttribute.IsDefined(property, caType))
return true;
@@ -1305,13 +1271,6 @@ namespace System.Reflection
Contract.Requires(e != null);
Contract.Requires(caType != null);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && caType != null)
- {
- FrameworkEventSource.Log.QueryAttributeIsDefined(caType.GetFullNameForEtw());
- }
-#endif
-
if (PseudoCustomAttribute.IsDefined(e, caType))
return true;
@@ -1324,13 +1283,6 @@ namespace System.Reflection
Contract.Requires(field != null);
Contract.Requires(caType != null);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && caType != null)
- {
- FrameworkEventSource.Log.QueryAttributeIsDefined(caType.GetFullNameForEtw());
- }
-#endif
-
if (PseudoCustomAttribute.IsDefined(field, caType))
return true;
@@ -1343,13 +1295,6 @@ namespace System.Reflection
Contract.Requires(parameter != null);
Contract.Requires(caType != null);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && caType != null)
- {
- FrameworkEventSource.Log.QueryAttributeIsDefined(caType.GetFullNameForEtw());
- }
-#endif
-
if (PseudoCustomAttribute.IsDefined(parameter, caType))
return true;
@@ -1362,13 +1307,6 @@ namespace System.Reflection
Contract.Requires(assembly != null);
Contract.Requires(caType != null);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && caType != null)
- {
- FrameworkEventSource.Log.QueryAttributeIsDefined(caType.GetFullNameForEtw());
- }
-#endif
-
if (PseudoCustomAttribute.IsDefined(assembly, caType))
return true;
@@ -1381,13 +1319,6 @@ namespace System.Reflection
Contract.Requires(module != null);
Contract.Requires(caType != null);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && caType != null)
- {
- FrameworkEventSource.Log.QueryAttributeIsDefined(caType.GetFullNameForEtw());
- }
-#endif
-
if (PseudoCustomAttribute.IsDefined(module, caType))
return true;
@@ -1963,14 +1894,12 @@ namespace System.Reflection
if (!AttributeUsageCheck(attributeType, mustBeInheritable, attributes, derivedAttributes))
return false;
-#if FEATURE_COMINTEROP
// Windows Runtime attributes aren't real types - they exist to be read as metadata only, and as such
// should be filtered out of the GetCustomAttributes path.
if ((attributeType.Attributes & TypeAttributes.WindowsRuntime) == TypeAttributes.WindowsRuntime)
{
return false;
}
-#endif // FEATURE_COMINTEROP
#if FEATURE_APTCA
// APTCA checks
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/customattributeformatexception.cs b/mcs/class/referencesource/mscorlib/system/reflection/customattributeformatexception.cs
index 093314aba8f..1d158db809d 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/customattributeformatexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/customattributeformatexception.cs
@@ -8,11 +8,11 @@
//
// CustomAttributeFormatException is thrown when the binary format of a
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// custom attribute is invalid.
//
// <EMAIL>Author: darylo</EMAIL>
-// Date: [....] 98
+// Date: Microsoft 98
//
namespace System.Reflection {
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/defaultmemberattribute.cs b/mcs/class/referencesource/mscorlib/system/reflection/defaultmemberattribute.cs
index 00d6ab38ed0..28af33c9dc6 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/defaultmemberattribute.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/defaultmemberattribute.cs
@@ -8,7 +8,7 @@
//
// DefaultMemberAttribute is defines the Member of a Type that is the "default"
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// member used by Type.InvokeMember. The default member is simply a name given
// to a type.
//
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/aqnbuilder.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/aqnbuilder.cs
index 35c267da67d..e715f583673 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/aqnbuilder.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/aqnbuilder.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/assemblybuilder.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/assemblybuilder.cs
index 371ef4aaa65..f8099ccd815 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/assemblybuilder.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/assemblybuilder.cs
@@ -23,7 +23,7 @@
// "internal" and "external" ModuleBuilders are similar
//*************************************************************************************************************
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace System.Reflection.Emit
{
using System;
@@ -316,9 +316,9 @@ namespace System.Reflection.Emit
#if FEATURE_REFLECTION_ONLY_LOAD
&& access != AssemblyBuilderAccess.ReflectionOnly
#endif // FEATURE_REFLECTION_ONLY_LOAD
-#if FEATURE_COLLECTIBLE_TYPES && !FEATURE_CORECLR
+#if FEATURE_COLLECTIBLE_TYPES
&& access != AssemblyBuilderAccess.RunAndCollect
-#endif // FEATURE_COLLECTIBLE_TYPES && !FEATURE_CORECLR
+#endif // FEATURE_COLLECTIBLE_TYPES
)
{
throw new ArgumentException(Environment.GetResourceString("Arg_EnumIllegalVal", (int)access), "access");
@@ -475,7 +475,7 @@ namespace System.Reflection.Emit
// The name in the underlying metadata will be set when the
// manifest module is created during nCreateDynamicAssembly.
- // This name needs to stay in [....] with that used in
+ // This name needs to stay in sync with that used in
// Assembly::Init to call ReflectionModule::Create (in VM)
m_manifestModuleBuilder.Init(AssemblyBuilder.MANIFEST_MODULE_NAME, null, 0);
@@ -2159,6 +2159,7 @@ namespace System.Reflection.Emit
**********************************************/
private AssemblyBuilder() {}
+#if !FEATURE_CORECLR
void _AssemblyBuilder.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -2180,6 +2181,7 @@ namespace System.Reflection.Emit
{
throw new NotImplementedException();
}
+#endif
// Create a new module in which to emit code. This module will not contain the manifest.
[System.Security.SecurityCritical] // auto-generated
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/assemblybuilderaccess.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/assemblybuilderaccess.cs
index dcc0e7acac9..90b9694b5ee 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/assemblybuilderaccess.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/assemblybuilderaccess.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
using System;
// This enumeration defines the access modes for a dynamic assembly.
@@ -24,8 +24,8 @@ namespace System.Reflection.Emit
#if FEATURE_REFLECTION_ONLY_LOAD
ReflectionOnly = 6, // 4 | Save,
#endif // FEATURE_REFLECTION_ONLY_LOAD
-#if (FEATURE_COLLECTIBLE_TYPES && !FEATURE_CORECLR) || FEATURE_NETCORE
- RunAndCollect = 8 | Run
-#endif // FEATURE_COLLECTIBLE_TYPES && !FEATURE_CORECLR
+#if FEATURE_COLLECTIBLE_TYPES
+ RunAndCollect = 8 | Run
+#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/assemblybuilderdata.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/assemblybuilderdata.cs
index cc02531a65c..fbce6487b66 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/assemblybuilderdata.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/assemblybuilderdata.cs
@@ -5,7 +5,7 @@
// ==--==
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit {
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/cominterfaces.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/cominterfaces.cs
index b8b8f5c932b..dd772c4092e 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/cominterfaces.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/cominterfaces.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
using System;
using System.Globalization;
using System.IO;
@@ -22,6 +22,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _AssemblyBuilder
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -29,6 +30,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
[GuidAttribute("ED3E4384-D7E2-3FA7-8FFD-8940D330519A")]
@@ -38,6 +40,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _ConstructorBuilder
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -45,6 +48,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
[GuidAttribute("BE9ACCE8-AAFF-3B91-81AE-8211663F5CAD")]
@@ -54,6 +58,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _CustomAttributeBuilder
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -61,6 +66,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
[GuidAttribute("C7BD73DE-9F85-3290-88EE-090B8BDFE2DF")]
@@ -70,6 +76,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _EnumBuilder
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -77,6 +84,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
[GuidAttribute("AADABA99-895D-3D65-9760-B1F12621FAE8")]
@@ -86,6 +94,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _EventBuilder
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -93,6 +102,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
[GuidAttribute("CE1A3BF5-975E-30CC-97C9-1EF70F8F3993")]
@@ -102,6 +112,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _FieldBuilder
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -109,6 +120,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
[GuidAttribute("A4924B27-6E3B-37F7-9B83-A4501955E6A7")]
@@ -118,6 +130,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _ILGenerator
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -125,6 +138,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
[GuidAttribute("4E6350D1-A08B-3DEC-9A3E-C465F9AEEC0C")]
@@ -134,6 +148,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _LocalBuilder
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -141,6 +156,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
[GuidAttribute("007D8A14-FDF3-363E-9A0B-FEC0618260A2")]
@@ -150,6 +166,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _MethodBuilder
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -157,6 +174,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
#if FEATURE_METHOD_RENTAL
@@ -167,6 +185,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _MethodRental
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -174,6 +193,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
#endif
@@ -184,6 +204,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _ModuleBuilder
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -191,6 +212,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
[GuidAttribute("36329EBA-F97A-3565-BC07-0ED5C6EF19FC")]
@@ -200,6 +222,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _ParameterBuilder
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -207,6 +230,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
[GuidAttribute("15F9A479-9397-3A63-ACBD-F51977FB0F02")]
@@ -216,6 +240,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _PropertyBuilder
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -223,6 +248,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
[GuidAttribute("7D13DD37-5A04-393C-BBCA-A5FEA802893D")]
@@ -232,6 +258,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _SignatureHelper
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -239,6 +266,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
[GuidAttribute("7E5678EE-48B3-3F83-B076-C58543498A58")]
@@ -248,6 +276,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public interface _TypeBuilder
{
+#if !FEATURE_CORECLR
void GetTypeInfoCount(out uint pcTInfo);
void GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo);
@@ -255,6 +284,7 @@ namespace System.Runtime.InteropServices
void GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
void Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
+#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/constructorbuilder.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/constructorbuilder.cs
index b4c806202e1..ec850ba4d40 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/constructorbuilder.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/constructorbuilder.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit
@@ -311,6 +311,7 @@ namespace System.Reflection.Emit
#endregion
+#if !FEATURE_CORECLR
void _ConstructorBuilder.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -330,6 +331,7 @@ namespace System.Reflection.Emit
{
throw new NotImplementedException();
}
+#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/customattributebuilder.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/customattributebuilder.cs
index ec55dcb2a88..c4cc7d29991 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/customattributebuilder.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/customattributebuilder.cs
@@ -5,7 +5,7 @@
// ==--==
/*============================================================
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Class: CustomAttrbuteBuilder
**
@@ -555,6 +555,7 @@ namespace System.Reflection.Emit {
typeof(System.Diagnostics.DebuggableAttribute) == m_con.DeclaringType);
}
+#if !FEATURE_CORECLR
void _CustomAttributeBuilder.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -574,6 +575,7 @@ namespace System.Reflection.Emit {
{
throw new NotImplementedException();
}
+#endif
internal ConstructorInfo m_con;
internal Object[] m_constructorArgs;
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/dynamicilgenerator.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/dynamicilgenerator.cs
index f26816471f5..6f86bcd1f2a 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/dynamicilgenerator.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/dynamicilgenerator.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit
@@ -799,7 +799,7 @@ namespace System.Reflection.Emit
}
}
- // Keep in [....] with vm/dynamicmethod.h
+ // Keep in sync with vm/dynamicmethod.h
[Flags]
internal enum SecurityControlFlags
{
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/dynamicmethod.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/dynamicmethod.cs
index b4808404dce..71ee85706c7 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/dynamicmethod.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/dynamicmethod.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit
@@ -51,9 +51,7 @@ namespace System.Reflection.Emit
// Always false unless we are in an immersive (non dev mode) process.
#if FEATURE_APPX
private bool m_profileAPICheck;
-#endif
-#if !FEATURE_CORECLR
private RuntimeAssembly m_creatorAssembly;
#endif
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/enumbuilder.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/enumbuilder.cs
index 707f8ad7421..f6be53addaa 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/enumbuilder.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/enumbuilder.cs
@@ -7,7 +7,7 @@
**
** Class: EnumBuilder
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** EnumBuilder is a helper class to build Enum ( a special type ).
@@ -29,21 +29,13 @@ namespace System.Reflection.Emit {
[ClassInterface(ClassInterfaceType.None)]
[ComDefaultInterface(typeof(_EnumBuilder))]
[System.Runtime.InteropServices.ComVisible(true)]
- sealed public class EnumBuilder :
-#if FEATURE_CORECLR && !FEATURE_NETCORE
- Type,
-#else
- TypeInfo,
-#endif
- _EnumBuilder
+ sealed public class EnumBuilder : TypeInfo, _EnumBuilder
{
-
- #if !FEATURE_CORECLR || FEATURE_NETCORE
public override bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo){
if(typeInfo==null) return false;
return IsAssignableFrom(typeInfo.AsType());
}
-#endif
+
// Define literal for enum
public FieldBuilder DefineLiteral(String literalName, Object literalValue)
@@ -59,13 +51,11 @@ namespace System.Reflection.Emit {
return fieldBuilder;
}
-#if !FEATURE_CORECLR || FEATURE_NETCORE
public TypeInfo CreateTypeInfo()
{
BCLDebug.Log("DYNIL", "## DYNIL LOGGING: EnumBuilder.CreateType() ");
return m_typeBuilder.CreateTypeInfo();
}
-#endif
// CreateType cause EnumBuilder to be baked.
public Type CreateType()
@@ -426,6 +416,7 @@ namespace System.Reflection.Emit {
m_underlyingField = m_typeBuilder.DefineField("value__", underlyingType, FieldAttributes.Public | FieldAttributes.SpecialName | FieldAttributes.RTSpecialName);
}
+#if !FEATURE_CORECLR
void _EnumBuilder.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -445,6 +436,7 @@ namespace System.Reflection.Emit {
{
throw new NotImplementedException();
}
+#endif
/*****************************************************
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/eventbuilder.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/eventbuilder.cs
index efe6eaa1283..e6bd4327f42 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/eventbuilder.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/eventbuilder.cs
@@ -7,7 +7,7 @@
**
** Class: EventBuilder
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Eventbuilder is for client to define eevnts for a class
@@ -139,6 +139,7 @@ namespace System.Reflection.Emit {
customBuilder.CreateCustomAttribute(m_module, m_evToken.Token);
}
+#if !FEATURE_CORECLR
void _EventBuilder.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -158,6 +159,7 @@ namespace System.Reflection.Emit {
{
throw new NotImplementedException();
}
+#endif
// These are package private so that TypeBuilder can access them.
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/eventtoken.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/eventtoken.cs
index a12e442aa6c..737c95c3d2d 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/eventtoken.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/eventtoken.cs
@@ -7,7 +7,7 @@
**
** Class: EventToken
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Propertybuilder is for client to define properties for a class
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/fieldbuilder.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/fieldbuilder.cs
index cb592842f48..43cf5ceddae 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/fieldbuilder.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/fieldbuilder.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit
@@ -258,6 +258,7 @@ namespace System.Reflection.Emit
#endregion
+#if !FEATURE_CORECLR
void _FieldBuilder.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -277,5 +278,6 @@ namespace System.Reflection.Emit
{
throw new NotImplementedException();
}
+#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/fieldtoken.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/fieldtoken.cs
index 1684ef054f4..e043c0f7f91 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/fieldtoken.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/fieldtoken.cs
@@ -7,7 +7,7 @@
**
** Class: FieldToken
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Represents a Field to the ILGenerator Class
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/flowcontrol.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/flowcontrol.cs
index 0d0bb58e2df..a21e54042b0 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/flowcontrol.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/flowcontrol.cs
@@ -2,7 +2,7 @@
**
**Class: FlowControl
**
-** <OWNER>[....]</OWNER>
+** <OWNER>WESU</OWNER>
**
**Purpose: Exposes FlowControl Attribute of IL .
**
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/generictypeparameterbuilder.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/generictypeparameterbuilder.cs
index 3eb8d9ed815..f9e701e4c22 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/generictypeparameterbuilder.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/generictypeparameterbuilder.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit
@@ -16,19 +16,13 @@ namespace System.Reflection.Emit
using System.Diagnostics.Contracts;
[System.Runtime.InteropServices.ComVisible(true)]
- public sealed class GenericTypeParameterBuilder:
-#if FEATURE_CORECLR && !FEATURE_NETCORE
- Type
-#else
- TypeInfo
-#endif
+ public sealed class GenericTypeParameterBuilder: TypeInfo
{
-#if !FEATURE_CORECLR || FEATURE_NETCORE
public override bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo){
if(typeInfo==null) return false;
return IsAssignableFrom(typeInfo.AsType());
}
-#endif
+
#region Private Data Mebers
internal TypeBuilder m_type;
#endregion
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/ilgenerator.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/ilgenerator.cs
index befd45f7341..44f61a5dd84 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/ilgenerator.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/ilgenerator.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit
@@ -1362,6 +1362,7 @@ namespace System.Reflection.Emit
#endregion
+#if !FEATURE_CORECLR
void _ILGenerator.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -1381,6 +1382,7 @@ namespace System.Reflection.Emit
{
throw new NotImplementedException();
}
+#endif
}
internal struct __FixupData
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/isymwrappercore.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/isymwrappercore.cs
index da0108f765b..9167d867f1f 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/isymwrappercore.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/isymwrappercore.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
//
#if FEATURE_CORECLR
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/label.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/label.cs
index 577f1960d74..d0ee014f0f8 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/label.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/label.cs
@@ -7,7 +7,7 @@
**
** Class: Label
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
**
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/localbuilder.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/localbuilder.cs
index a80928e08b9..77352947ca4 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/localbuilder.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/localbuilder.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Reflection;
using System.Security.Permissions;
@@ -127,6 +127,7 @@ namespace System.Reflection.Emit
}
#endregion
+#if !FEATURE_CORECLR
void _LocalBuilder.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -146,6 +147,7 @@ namespace System.Reflection.Emit
{
throw new NotImplementedException();
}
+#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/methodbuilder.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/methodbuilder.cs
index fc8bf12976e..99650b1da06 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/methodbuilder.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/methodbuilder.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit
@@ -1242,6 +1242,7 @@ namespace System.Reflection.Emit
#endregion
+#if !FEATURE_CORECLR
void _MethodBuilder.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -1261,6 +1262,7 @@ namespace System.Reflection.Emit
{
throw new NotImplementedException();
}
+#endif
}
@@ -1403,7 +1405,7 @@ namespace System.Reflection.Emit
[ComVisible(false)]
public struct ExceptionHandler : IEquatable<ExceptionHandler>
{
- // Keep in [....] with unmanged structure.
+ // Keep in sync with unmanged structure.
internal readonly int m_exceptionClass;
internal readonly int m_tryStartOffset;
internal readonly int m_tryEndOffset;
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/methodbuilderinstantiation.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/methodbuilderinstantiation.cs
index 1a7db5cecbe..3b73e1b2492 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/methodbuilderinstantiation.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/methodbuilderinstantiation.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/methodrental.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/methodrental.cs
index e54ffa50620..c4e980c9549 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/methodrental.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/methodrental.cs
@@ -7,7 +7,7 @@
**
** Class: MethodRental
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** MethodRental class is to provide a fast way to swap method body implementation
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/methodtoken.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/methodtoken.cs
index 92d2c9d9f30..18c050acc20 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/methodtoken.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/methodtoken.cs
@@ -7,7 +7,7 @@
**
** Class: MethodToken
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Represents a Method to the ILGenerator class.
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/modulebuilder.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/modulebuilder.cs
index f16fbc23bd3..c872fa06510 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/modulebuilder.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/modulebuilder.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit
@@ -2440,6 +2440,7 @@ namespace System.Reflection.Emit
#endregion
+#if !FEATURE_CORECLR
void _ModuleBuilder.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -2459,5 +2460,6 @@ namespace System.Reflection.Emit
{
throw new NotImplementedException();
}
+#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/modulebuilderdata.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/modulebuilderdata.cs
index 36f17022ed2..0252f9dbace 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/modulebuilderdata.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/modulebuilderdata.cs
@@ -5,7 +5,7 @@
// ==--==
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/opcode.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/opcode.cs
index b0110f5f859..477b3595eb7 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/opcode.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/opcode.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace System.Reflection.Emit {
using System;
using System.Threading;
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/opcodes.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/opcodes.cs
index f7b85f8159f..0b0cb66a046 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/opcodes.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/opcodes.cs
@@ -2,7 +2,7 @@
**
**Class: OpCodes
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**Purpose: Exposes all of the il instructions supported by the runtime.
**
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/opcodetype.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/opcodetype.cs
index 94f025c1856..4fd9faae1a6 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/opcodetype.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/opcodetype.cs
@@ -7,7 +7,7 @@
**
**Class: OpCodeType
**
-** <OWNER>[....]</OWNER>
+** <OWNER>WESU</OWNER>
**
**Purpose: Exposes OpCodeType Attribute of IL .
**
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/operandtype.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/operandtype.cs
index 69b0bbf3111..88cbb7c278a 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/operandtype.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/operandtype.cs
@@ -7,7 +7,7 @@
**
**Class: OperandType
**
-** <OWNER>[....]</OWNER>
+** <OWNER>WESU</OWNER>
**
**Purpose: Exposes OperandType Attribute of IL .
**
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/parameterbuilder.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/parameterbuilder.cs
index 454ce409f41..fbcb9cad9ab 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/parameterbuilder.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/parameterbuilder.cs
@@ -7,7 +7,7 @@
**
** Class: ParameterBuilder
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** ParameterBuilder is used to create/associate parameter information
@@ -123,6 +123,7 @@ namespace System.Reflection.Emit {
return m_pdToken;
}
+#if !FEATURE_CORECLR
void _ParameterBuilder.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -142,6 +143,7 @@ namespace System.Reflection.Emit {
{
throw new NotImplementedException();
}
+#endif
internal int MetadataTokenInternal { get { return m_pdToken.Token; } }
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/parametertoken.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/parametertoken.cs
index b4fa891db15..109641ef248 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/parametertoken.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/parametertoken.cs
@@ -7,7 +7,7 @@
**
** Class: ParameterToken
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: metadata tokens for a parameter
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/pefilekinds.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/pefilekinds.cs
index 3307e9ffd74..01faa763014 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/pefilekinds.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/pefilekinds.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
namespace System.Reflection.Emit {
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/propertybuilder.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/propertybuilder.cs
index fd0a8721a1b..b3a73689f88 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/propertybuilder.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/propertybuilder.cs
@@ -7,7 +7,7 @@
**
** Class: PropertyBuilder
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Propertybuilder is for client to define properties for a class
@@ -258,6 +258,7 @@ namespace System.Reflection.Emit {
throw new NotSupportedException(Environment.GetResourceString("NotSupported_DynamicModule"));
}
+#if !FEATURE_CORECLR
void _PropertyBuilder.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -277,7 +278,7 @@ namespace System.Reflection.Emit {
{
throw new NotImplementedException();
}
-
+#endif
public override String Name {
get { return m_name; }
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/propertytoken.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/propertytoken.cs
index db59f5d80ec..a29d4c6f42a 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/propertytoken.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/propertytoken.cs
@@ -7,7 +7,7 @@
**
** Class: PropertyToken
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Propertybuilder is for client to define properties for a class
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/signaturehelper.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/signaturehelper.cs
index bf1dc4e1bb2..05b2d9f402b 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/signaturehelper.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/signaturehelper.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit
@@ -970,6 +970,7 @@ namespace System.Reflection.Emit
#endregion
+#if !FEATURE_CORECLR
void _SignatureHelper.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -989,6 +990,7 @@ namespace System.Reflection.Emit
{
throw new NotImplementedException();
}
+#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/signaturetoken.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/signaturetoken.cs
index 2ae4c1eecde..a41b2d2925c 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/signaturetoken.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/signaturetoken.cs
@@ -7,7 +7,7 @@
**
** Signature: SignatureToken
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Represents a Signature to the ILGenerator signature.
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/stackbehaviour.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/stackbehaviour.cs
index d863a8522c0..b60179dd78d 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/stackbehaviour.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/stackbehaviour.cs
@@ -7,7 +7,7 @@
**
**Class: StackBehaviour
**
-** <OWNER>[....]</OWNER>
+** <OWNER>WESU</OWNER>
**
**Purpose: Exposes StackBehaviour Attribute of IL .
**
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/stringtoken.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/stringtoken.cs
index b568cef114b..ad7216a4636 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/stringtoken.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/stringtoken.cs
@@ -7,7 +7,7 @@
**
** Class: StringToken
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Represents a String to the ILGenerator class.
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/symbolmethod.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/symbolmethod.cs
index 1367894419b..8bca9063d78 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/symbolmethod.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/symbolmethod.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/symboltype.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/symboltype.cs
index 80d2740b25b..f6fb66fc39b 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/symboltype.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/symboltype.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit
@@ -23,19 +23,13 @@ namespace System.Reflection.Emit
}
// This is a kind of Type object that will represent the compound expression of a parameter type or field type.
- internal sealed class SymbolType :
-#if FEATURE_CORECLR && !FEATURE_NETCORE
- Type
-#else
- TypeInfo
-#endif
+ internal sealed class SymbolType : TypeInfo
{
-#if !FEATURE_CORECLR || FEATURE_NETCORE
public override bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo){
if(typeInfo==null) return false;
return IsAssignableFrom(typeInfo.AsType());
}
-#endif
+
#region Static Members
internal static Type FormCompoundType(char[] bFormat, Type baseType, int curIndex)
{
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/typebuilder.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/typebuilder.cs
index 610e0da29cf..9cf13f212c1 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/typebuilder.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/typebuilder.cs
@@ -4,7 +4,7 @@
// Copyright(c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit {
@@ -41,20 +41,13 @@ namespace System.Reflection.Emit {
[ClassInterface(ClassInterfaceType.None)]
[ComDefaultInterface(typeof(_TypeBuilder))]
[System.Runtime.InteropServices.ComVisible(true)]
- public sealed class TypeBuilder :
-#if FEATURE_CORECLR && !FEATURE_NETCORE
- Type,
-#else
- TypeInfo,
-#endif
- _TypeBuilder
+ public sealed class TypeBuilder : TypeInfo, _TypeBuilder
{
-#if !FEATURE_CORECLR || FEATURE_NETCORE
public override bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo){
if(typeInfo==null) return false;
return IsAssignableFrom(typeInfo.AsType());
}
-#endif
+
#region Declarations
private class CustAttr
{
@@ -522,7 +515,11 @@ namespace System.Reflection.Emit {
else
{
if (destType.IsValueType)
- throw new ArgumentException(Environment.GetResourceString("Argument_ConstantNull"));
+ {
+ // nullable types can hold null value.
+ if (!(destType.IsGenericType && destType.GetGenericTypeDefinition() == typeof(Nullable<>)))
+ throw new ArgumentException(Environment.GetResourceString("Argument_ConstantNull"));
+ }
SetConstantValue(module.GetNativeHandle(), tk, (int)CorElementType.Class, null);
}
@@ -2261,7 +2258,7 @@ namespace System.Reflection.Emit {
#endregion
#region Create Type
-#if !FEATURE_CORECLR || FEATURE_NETCORE
+
[System.Security.SecuritySafeCritical] // auto-generated
public TypeInfo CreateTypeInfo()
{
@@ -2270,7 +2267,6 @@ namespace System.Reflection.Emit {
return CreateTypeNoLock();
}
}
-#endif
[System.Security.SecuritySafeCritical] // auto-generated
public Type CreateType()
@@ -2291,11 +2287,7 @@ namespace System.Reflection.Emit {
}
[System.Security.SecurityCritical] // auto-generated
-#if !FEATURE_CORECLR || FEATURE_NETCORE
private TypeInfo CreateTypeNoLock()
-#else
- private Type CreateTypeNoLock()
-#endif
{
if (IsCreated())
return m_bakedRuntimeType;
@@ -2628,6 +2620,7 @@ public TypeToken TypeToken
#endregion
+#if !FEATURE_CORECLR
void _TypeBuilder.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -2647,5 +2640,6 @@ public TypeToken TypeToken
{
throw new NotImplementedException();
}
+#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/typebuilderinstantiation.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/typebuilderinstantiation.cs
index 3eb2fe1c0f4..61101139eb6 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/typebuilderinstantiation.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/typebuilderinstantiation.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit
@@ -14,19 +14,13 @@ namespace System.Reflection.Emit
using System.Globalization;
using System.Diagnostics.Contracts;
- internal sealed class TypeBuilderInstantiation :
-#if FEATURE_CORECLR && !FEATURE_NETCORE
- Type
-#else
- TypeInfo
-#endif
+ internal sealed class TypeBuilderInstantiation : TypeInfo
{
-#if !FEATURE_CORECLR || FEATURE_NETCORE
public override bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo){
if(typeInfo==null) return false;
return IsAssignableFrom(typeInfo.AsType());
}
-#endif
+
#region Static Members
internal static Type MakeGenericType(Type type, Type[] typeArguments)
{
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/typetoken.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/typetoken.cs
index bfc3c16114d..da4b521d18c 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/typetoken.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/typetoken.cs
@@ -7,7 +7,7 @@
**
** Class: TypeToken
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Represents a Class to the ILGenerator class.
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/unmanagedmarshal.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/unmanagedmarshal.cs
index 3346c9adcff..5951fc9f51e 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/unmanagedmarshal.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/unmanagedmarshal.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace System.Reflection.Emit
{
using System.Runtime.InteropServices;
@@ -25,10 +25,8 @@ namespace System.Reflection.Emit
public static UnmanagedMarshal DefineUnmanagedMarshal(UnmanagedType unmanagedType)
{
if (unmanagedType == UnmanagedType.ByValTStr ||
-#if FEATURE_COMINTEROP
unmanagedType == UnmanagedType.SafeArray ||
unmanagedType == UnmanagedType.CustomMarshaler ||
-#endif //FEATURE_COMINTEROP
unmanagedType == UnmanagedType.ByValArray ||
unmanagedType == UnmanagedType.LPArray)
{
@@ -42,12 +40,10 @@ namespace System.Reflection.Emit
return new UnmanagedMarshal(UnmanagedType.ByValTStr, Guid.Empty, elemCount, (UnmanagedType) 0);
}
-#if FEATURE_COMINTEROP
public static UnmanagedMarshal DefineSafeArray(UnmanagedType elemType)
{
return new UnmanagedMarshal(UnmanagedType.SafeArray, Guid.Empty, 0, elemType);
}
-#endif //FEATURE_COMINTEROP
public static UnmanagedMarshal DefineByValArray(int elemCount)
{
@@ -74,10 +70,8 @@ namespace System.Reflection.Emit
{
get
{
-#if FEATURE_COMINTEROP
if (m_unmanagedType == UnmanagedType.CustomMarshaler)
return m_guid;
-#endif // FEATURE_COMINTEROP
// throw exception here. There is Guid only if CustomMarshaler
throw new ArgumentException(Environment.GetResourceString("Argument_NotACustomMarshaler"));
@@ -100,11 +94,7 @@ namespace System.Reflection.Emit
{
get
{
-#if FEATURE_COMINTEROP
if (m_unmanagedType != UnmanagedType.LPArray && m_unmanagedType != UnmanagedType.SafeArray)
-#else
- if (m_unmanagedType != UnmanagedType.LPArray)
-#endif //!FEATURE_COMINTEROP
{
// throw exception here. There is NestedUnmanagedType only if LPArray or SafeArray
throw new ArgumentException(Environment.GetResourceString("Argument_NoNestedMarshal"));
@@ -138,11 +128,7 @@ namespace System.Reflection.Emit
internal byte[] InternalGetBytes()
{
byte[] buf;
-#if FEATURE_COMINTEROP
if (m_unmanagedType == UnmanagedType.SafeArray || m_unmanagedType == UnmanagedType.LPArray)
-#else
- if (m_unmanagedType == UnmanagedType.LPArray)
-#endif //!FEATURE_COMINTEROP
{
// syntax for NativeTypeSafeArray is
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/emit/xxxontypebuilderinstantiation.cs b/mcs/class/referencesource/mscorlib/system/reflection/emit/xxxontypebuilderinstantiation.cs
index 59ae15e5fe4..71a3b53ddd3 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/emit/xxxontypebuilderinstantiation.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/emit/xxxontypebuilderinstantiation.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection.Emit
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/eventattributes.cs b/mcs/class/referencesource/mscorlib/system/reflection/eventattributes.cs
index cbca014d92a..bf1abc9fc71 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/eventattributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/eventattributes.cs
@@ -8,7 +8,7 @@
//
// EventAttributes are an enum defining the attributes associated with
//
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
// and Event. These are defined in CorHdr.h and are a combination of
// bits and enums.
//
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/eventinfo.cs b/mcs/class/referencesource/mscorlib/system/reflection/eventinfo.cs
index c236827f9f8..34f32419992 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/eventinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/eventinfo.cs
@@ -3,7 +3,7 @@
// Copyright(c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection
@@ -12,7 +12,6 @@ namespace System.Reflection
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.Contracts;
- using System.Diagnostics.Tracing;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Runtime.ConstrainedExecution;
@@ -51,7 +50,7 @@ namespace System.Reflection
return !(left == right);
}
#endif // !FEATURE_CORECLR
-#if FEATURE_NETCORE || !FEATURE_CORECLR
+
public override bool Equals(object obj)
{
return base.Equals(obj);
@@ -61,7 +60,7 @@ namespace System.Reflection
{
return base.GetHashCode();
}
-#endif //FEATURE_NETCORE || !FEATURE_CORECLR
+
#region MemberInfo Overrides
public override MemberTypes MemberType { get { return MemberTypes.Event; } }
#endregion
@@ -196,6 +195,7 @@ namespace System.Reflection
}
#endregion
+#if !FEATURE_CORECLR
Type _EventInfo.GetType()
{
return base.GetType();
@@ -222,6 +222,7 @@ namespace System.Reflection
{
throw new NotImplementedException();
}
+#endif
}
[Serializable]
@@ -349,26 +350,10 @@ namespace System.Reflection
{
if (m_name == null)
m_name = new Utf8String(m_utf8name).ToString();
-
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EventName(DeclaringType.GetFullNameForEtw(), GetFullNameForEtw());
- }
-#endif
+
return m_name;
}
}
-
- [System.Security.SecuritySafeCritical]
- internal override String GetFullNameForEtw()
- {
- if (m_name == null)
- return new Utf8String(m_utf8name).ToString();
-
- return m_name;
- }
-
public override Type DeclaringType { get { return m_declaringType; } }
public override Type ReflectedType
{
@@ -389,7 +374,6 @@ namespace System.Reflection
public override int MetadataToken { get { return m_token; } }
public override Module Module { get { return GetRuntimeModule(); } }
internal RuntimeModule GetRuntimeModule() { return m_declaringType.GetRuntimeModule(); }
-
#endregion
#region ISerializable
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/fieldattributes.cs b/mcs/class/referencesource/mscorlib/system/reflection/fieldattributes.cs
index 7a923d2a840..2ff229f51aa 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/fieldattributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/fieldattributes.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
namespace System.Reflection
{
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/fieldinfo.cs b/mcs/class/referencesource/mscorlib/system/reflection/fieldinfo.cs
index a5c5a306b40..9f7f9494b4a 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/fieldinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/fieldinfo.cs
@@ -3,7 +3,7 @@
// Copyright(c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection
@@ -12,7 +12,6 @@ namespace System.Reflection
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.Contracts;
- using System.Diagnostics.Tracing;
using System.Globalization;
using System.Runtime;
using System.Runtime.CompilerServices;
@@ -40,25 +39,10 @@ namespace System.Reflection
{
if (handle.IsNullHandle())
throw new ArgumentException(Environment.GetResourceString("Argument_InvalidHandle"));
-
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetFieldFromHandle();
- }
-#endif
-
+
FieldInfo f = RuntimeType.GetFieldInfo(handle.GetRuntimeFieldInfo());
-
+
Type declaringType = f.DeclaringType;
-
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && declaringType != null && f != null)
- {
- FrameworkEventSource.Log.EndGetFieldFromHandle(declaringType.GetFullNameForEtw(), f.GetFullNameForEtw());
- }
-#endif
-
if (declaringType != null && declaringType.IsGenericType)
throw new ArgumentException(String.Format(
CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_FieldDeclaringTypeGeneric"),
@@ -73,23 +57,7 @@ namespace System.Reflection
if (handle.IsNullHandle())
throw new ArgumentException(Environment.GetResourceString("Argument_InvalidHandle"));
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetFieldFromHandle();
- }
-#endif
-
- FieldInfo f = RuntimeType.GetFieldInfo(declaringType.GetRuntimeType(), handle.GetRuntimeFieldInfo());
-
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && declaringType != null && f != null)
- {
- FrameworkEventSource.Log.EndGetFieldFromHandle(declaringType.GetRuntimeType().GetFullNameForEtw(), f.GetFullNameForEtw());
- }
-#endif
-
- return f;
+ return RuntimeType.GetFieldInfo(declaringType.GetRuntimeType(), handle.GetRuntimeFieldInfo());
}
#endregion
@@ -111,13 +79,12 @@ namespace System.Reflection
return left.Equals(right);
}
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public static bool operator !=(FieldInfo left, FieldInfo right)
{
return !(left == right);
}
#endif // !FEATURE_CORECLR
-#if FEATURE_NETCORE || !FEATURE_CORECLR
+
public override bool Equals(object obj)
{
return base.Equals(obj);
@@ -127,7 +94,6 @@ namespace System.Reflection
{
return base.GetHashCode();
}
-#endif //FEATURE_NETCORE || !FEATURE_CORECLR
#region MemberInfo Overrides
public override MemberTypes MemberType { get { return System.Reflection.MemberTypes.Field; } }
@@ -225,6 +191,7 @@ namespace System.Reflection
#endregion
+#if !FEATURE_CORECLR
Type _FieldInfo.GetType()
{
return base.GetType();
@@ -251,6 +218,7 @@ namespace System.Reflection
{
throw new NotImplementedException();
}
+#endif
}
[Serializable]
@@ -429,9 +397,6 @@ namespace System.Reflection
#region Private Data Members
// agressive caching
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
private IntPtr m_fieldHandle;
private FieldAttributes m_fieldAttributes;
// lazy caching
@@ -573,9 +538,6 @@ namespace System.Reflection
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal override bool CacheEquals(object o)
{
RtFieldInfo m = o as RtFieldInfo;
@@ -742,26 +704,10 @@ namespace System.Reflection
if (m_name == null)
m_name = RuntimeFieldHandle.GetName(this);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.FieldName(GetRuntimeType().GetFullNameForEtw(), GetFullNameForEtw());
- }
-#endif
-
return m_name;
}
}
- [System.Security.SecuritySafeCritical]
- internal override String GetFullNameForEtw()
- {
- if (m_name == null)
- return RuntimeFieldHandle.GetName(this);
-
- return m_name;
- }
-
internal String FullName
{
get
@@ -781,6 +727,7 @@ namespace System.Reflection
{
return RuntimeTypeHandle.GetModule(RuntimeFieldHandle.GetApproxDeclaringType(this));
}
+
#endregion
#region FieldInfo Overrides
@@ -929,26 +876,10 @@ namespace System.Reflection
if (m_name == null)
m_name = GetRuntimeModule().MetadataImport.GetName(m_tkField).ToString();
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.FieldName(GetRuntimeType().GetFullNameForEtw(), GetFullNameForEtw());
- }
-#endif
-
return m_name;
}
}
- [System.Security.SecuritySafeCritical]
- internal override String GetFullNameForEtw()
- {
- if (m_name == null)
- return GetRuntimeModule().MetadataImport.GetName(m_tkField).ToString();
-
- return m_name;
- }
-
public override int MetadataToken { get { return m_tkField; } }
internal override RuntimeModule GetRuntimeModule() { return m_declaringType.GetRuntimeModule(); }
#endregion
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/genericparameterattributes.cs b/mcs/class/referencesource/mscorlib/system/reflection/genericparameterattributes.cs
index f47b104b239..1e7d8139ef6 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/genericparameterattributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/genericparameterattributes.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
//
namespace System.Reflection
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/icustomattributeprovider.cs b/mcs/class/referencesource/mscorlib/system/reflection/icustomattributeprovider.cs
index d7572e73ead..398d7f70c22 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/icustomattributeprovider.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/icustomattributeprovider.cs
@@ -8,10 +8,10 @@
//
// ICustomAttributeProvider is an interface that is implemented by reflection
//
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
// objects which support custom attributes.
//
-// <EMAIL>Author: darylo & Rajesh Chandrashekaran ([....])</EMAIL>
+// <EMAIL>Author: darylo & Rajesh Chandrashekaran (rajeshc)</EMAIL>
// Date: July 99
//
namespace System.Reflection {
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/interfacemapping.cs b/mcs/class/referencesource/mscorlib/system/reflection/interfacemapping.cs
index 1c48a777fe1..f6eb2ab3f28 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/interfacemapping.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/interfacemapping.cs
@@ -6,13 +6,13 @@
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
//
// Interface Map. This struct returns the mapping of an interface into the actual methods on a class
// that implement that interface.
//
// <EMAIL>Author: darylo</EMAIL>
-// Date: [....] 2000
+// Date: March 2000
//
namespace System.Reflection {
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/introspectionextensions.cs b/mcs/class/referencesource/mscorlib/system/reflection/introspectionextensions.cs
index b8c7c3e24db..95ba5279970 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/introspectionextensions.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/introspectionextensions.cs
@@ -7,7 +7,7 @@
**
** Class: TypeInfoExtension
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: go from type to type info
@@ -18,7 +18,6 @@
namespace System.Reflection
{
using System.Reflection;
- using System.Diagnostics.Tracing;
public static class IntrospectionExtensions
{
@@ -30,12 +29,6 @@ namespace System.Reflection
if(rcType==null){
return null;
}else{
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.IntrospectionExtensionsGetTypeInfo(type.GetFullNameForEtw());
- }
-#endif
return rcType.GetTypeInfo();
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/invalidfiltercriteriaexception.cs b/mcs/class/referencesource/mscorlib/system/reflection/invalidfiltercriteriaexception.cs
index 8c73653195d..c7ae1c8a114 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/invalidfiltercriteriaexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/invalidfiltercriteriaexception.cs
@@ -8,7 +8,7 @@
//
// InvalidFilterCriteriaException is thrown in FindMembers when the
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// filter criteria is not valid for the type of filter being used.
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/ireflect.cs b/mcs/class/referencesource/mscorlib/system/reflection/ireflect.cs
index f1342999033..1f5e1041be3 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/ireflect.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/ireflect.cs
@@ -8,7 +8,7 @@
//
// IReflect is an interface that defines a subset of the Type reflection methods.
//
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
// This interface is used to access and invoke members of a Type. It can be either
// type based (like Type) or instance based (like Expando). This interface is used in
// combination with IExpando to model the IDispatchEx expando capibilities in
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/ireflectabletype.cs b/mcs/class/referencesource/mscorlib/system/reflection/ireflectabletype.cs
index c0f1457d120..7d987327753 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/ireflectabletype.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/ireflectabletype.cs
@@ -9,7 +9,7 @@
// IReflectableType is an interface that is implemented by a Type produced
// by a ReflectionContext
//
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
//
namespace System.Reflection {
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/loaderallocator.cs b/mcs/class/referencesource/mscorlib/system/reflection/loaderallocator.cs
index 4b35f9fdd45..d8ff5d79d16 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/loaderallocator.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/loaderallocator.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/manifestresourceinfo.cs b/mcs/class/referencesource/mscorlib/system/reflection/manifestresourceinfo.cs
index 496012a528b..6026f53d8e3 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/manifestresourceinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/manifestresourceinfo.cs
@@ -7,7 +7,7 @@
**
** Class: ManifestResourceInfo
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: For info regarding a manifest resource's topology.
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/mdconstant.cs b/mcs/class/referencesource/mscorlib/system/reflection/mdconstant.cs
index f78dc8fb231..3f69c080c39 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/mdconstant.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/mdconstant.cs
@@ -3,7 +3,7 @@
// Copyright(c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/mdimport.cs b/mcs/class/referencesource/mscorlib/system/reflection/mdimport.cs
index 5bcbaf33693..f2f0c70edce 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/mdimport.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/mdimport.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
@@ -190,7 +190,7 @@ namespace System.Reflection
}
}
- // Keep the definition in [....] with vm\ManagedMdImport.hpp
+ // Keep the definition in sync with vm\ManagedMdImport.hpp
internal int m_length;
internal IntPtr m_constArray;
}
@@ -256,7 +256,7 @@ namespace System.Reflection
internal unsafe struct MetadataEnumResult
{
- // Keep the definition in [....] with vm\ManagedMdImport.hpp
+ // Keep the definition in sync with vm\ManagedMdImport.hpp
private int[] largeResult;
private int length;
private fixed int smallResult[16];
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/memberfilter.cs b/mcs/class/referencesource/mscorlib/system/reflection/memberfilter.cs
index 3faacf78f01..e89057872df 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/memberfilter.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/memberfilter.cs
@@ -8,11 +8,11 @@
//
// MemberFilter is a delegate used to filter Members. This delegate is used
//
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
// as a callback from Type.FindMembers.
//
// <EMAIL>Author: darylo</EMAIL>
-// Date: [....] 98
+// Date: March 98
//
namespace System.Reflection {
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/memberinfo.cs b/mcs/class/referencesource/mscorlib/system/reflection/memberinfo.cs
index 75b57f437cd..9b7ba894b6f 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/memberinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/memberinfo.cs
@@ -3,7 +3,7 @@
// Copyright(c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection
@@ -82,17 +82,7 @@ namespace System.Reflection
}
}
-
- // this method is required so Object.GetType is not made final virtual by the compiler
- Type _MemberInfo.GetType() { return base.GetType(); }
-
- // This name is used for the dynamic type usage scenario ETW logging for ProjectN apps.
- // It allows us to build names without using the same properties / methods customers
- // use (which would cause chains of spurious events).
- internal virtual String GetFullNameForEtw()
- {
- return null;
- }
+
#endregion
@@ -125,13 +115,12 @@ namespace System.Reflection
return false;
}
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public static bool operator !=(MemberInfo left, MemberInfo right)
{
return !(left == right);
}
#endif // !FEATURE_CORECLR
-#if FEATURE_NETCORE || !FEATURE_CORECLR
+
public override bool Equals(object obj)
{
return base.Equals(obj);
@@ -141,7 +130,14 @@ namespace System.Reflection
{
return base.GetHashCode();
}
-#endif //FEATURE_NETCORE || !FEATURE_CORECLR
+
+#if !FEATURE_CORECLR
+ // this method is required so Object.GetType is not made final virtual by the compiler
+ Type _MemberInfo.GetType()
+ {
+ return base.GetType();
+ }
+
void _MemberInfo.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -161,6 +157,7 @@ namespace System.Reflection
{
throw new NotImplementedException();
}
+#endif
}
#if CONTRACTS_FULL
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/memberinfoserializationholder.cs b/mcs/class/referencesource/mscorlib/system/reflection/memberinfoserializationholder.cs
index ee3e0e31bd5..772cccd6ed8 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/memberinfoserializationholder.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/memberinfoserializationholder.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/membertypes.cs b/mcs/class/referencesource/mscorlib/system/reflection/membertypes.cs
index 484f7310512..3d3cb89c235 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/membertypes.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/membertypes.cs
@@ -8,7 +8,7 @@
//
// MemberTypes is an bit mask marking each type of Member that is defined as
//
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
// a subclass of MemberInfo. These are returned by MemberInfo.MemberType and
// are useful in switch statements.
//
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/methodattributes.cs b/mcs/class/referencesource/mscorlib/system/reflection/methodattributes.cs
index cf078cac64e..abb4c0060b3 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/methodattributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/methodattributes.cs
@@ -4,7 +4,7 @@
//
// ==--==
////////////////////////////////////////////////////////////////////////////////
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
//
namespace System.Reflection
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/methodbase.cs b/mcs/class/referencesource/mscorlib/system/reflection/methodbase.cs
index 3673c55072d..adce1bb962a 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/methodbase.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/methodbase.cs
@@ -3,14 +3,13 @@
// Copyright(c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection
{
using System;
using System.Diagnostics;
- using System.Diagnostics.Tracing;
using System.Globalization;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
@@ -65,13 +64,6 @@ namespace System.Reflection
if (handle.IsNullHandle())
throw new ArgumentException(Environment.GetResourceString("Argument_InvalidHandle"));
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetMethodFromHandle();
- }
-#endif
-
#if MONO
MethodBase m = GetMethodFromHandleInternalType (handle.Value, IntPtr.Zero);
if (m == null)
@@ -81,14 +73,6 @@ namespace System.Reflection
#endif
Type declaringType = m.DeclaringType;
-
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && declaringType != null)
- {
- FrameworkEventSource.Log.EndGetMethodFromHandle(declaringType.GetFullNameForEtw(), m.GetFullNameForEtw());
- }
-#endif
-
if (declaringType != null && declaringType.IsGenericType)
throw new ArgumentException(String.Format(
CultureInfo.CurrentCulture, Environment.GetResourceString("Argument_MethodDeclaringTypeGeneric"),
@@ -103,29 +87,13 @@ namespace System.Reflection
if (handle.IsNullHandle())
throw new ArgumentException(Environment.GetResourceString("Argument_InvalidHandle"));
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetMethodFromHandle();
- }
-#endif
-
#if MONO
MethodBase m = GetMethodFromHandleInternalType (handle.Value, declaringType.Value);
if (m == null)
throw new ArgumentException ("The handle is invalid.");
#else
- MethodBase m = RuntimeType.GetMethodBase(declaringType.GetRuntimeType(), handle.GetMethodInfo());
+ return RuntimeType.GetMethodBase(declaringType.GetRuntimeType(), handle.GetMethodInfo());
#endif
-
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && declaringType != null && m != null)
- {
- FrameworkEventSource.Log.EndGetMethodFromHandle(declaringType.GetRuntimeType().GetFullNameForEtw(), m.GetFullNameForEtw());
- }
-#endif
-
- return m;
}
#if MONO
@@ -171,7 +139,7 @@ namespace System.Reflection
return !(left == right);
}
#endif // !FEATURE_CORECLR
-#if FEATURE_NETCORE || !FEATURE_CORECLR
+
public override bool Equals(object obj)
{
return base.Equals(obj);
@@ -181,7 +149,7 @@ namespace System.Reflection
{
return base.GetHashCode();
}
-#endif //FEATURE_NETCORE || !FEATURE_CORECLR
+
#region Internal Members
// used by EE
[System.Security.SecurityCritical]
@@ -246,23 +214,6 @@ namespace System.Reflection
#endregion
- #region _MethodBase Implementation
- Type _MethodBase.GetType() { return base.GetType(); }
- bool _MethodBase.IsPublic { get { return IsPublic; } }
- bool _MethodBase.IsPrivate { get { return IsPrivate; } }
- bool _MethodBase.IsFamily { get { return IsFamily; } }
- bool _MethodBase.IsAssembly { get { return IsAssembly; } }
- bool _MethodBase.IsFamilyAndAssembly { get { return IsFamilyAndAssembly; } }
- bool _MethodBase.IsFamilyOrAssembly { get { return IsFamilyOrAssembly; } }
- bool _MethodBase.IsStatic { get { return IsStatic; } }
- bool _MethodBase.IsFinal { get { return IsFinal; } }
- bool _MethodBase.IsVirtual { get { return IsVirtual; } }
- bool _MethodBase.IsHideBySig { get { return IsHideBySig; } }
- bool _MethodBase.IsAbstract { get { return IsAbstract; } }
- bool _MethodBase.IsSpecialName { get { return IsSpecialName; } }
- bool _MethodBase.IsConstructor { get { return IsConstructor; } }
- #endregion
-
#region Public Members
[DebuggerStepThroughAttribute]
[Diagnostics.DebuggerHidden]
@@ -429,6 +380,23 @@ namespace System.Reflection
#endif
#endregion
+ #region _MethodBase Implementation
+#if !FEATURE_CORECLR
+ Type _MethodBase.GetType() { return base.GetType(); }
+ bool _MethodBase.IsPublic { get { return IsPublic; } }
+ bool _MethodBase.IsPrivate { get { return IsPrivate; } }
+ bool _MethodBase.IsFamily { get { return IsFamily; } }
+ bool _MethodBase.IsAssembly { get { return IsAssembly; } }
+ bool _MethodBase.IsFamilyAndAssembly { get { return IsFamilyAndAssembly; } }
+ bool _MethodBase.IsFamilyOrAssembly { get { return IsFamilyOrAssembly; } }
+ bool _MethodBase.IsStatic { get { return IsStatic; } }
+ bool _MethodBase.IsFinal { get { return IsFinal; } }
+ bool _MethodBase.IsVirtual { get { return IsVirtual; } }
+ bool _MethodBase.IsHideBySig { get { return IsHideBySig; } }
+ bool _MethodBase.IsAbstract { get { return IsAbstract; } }
+ bool _MethodBase.IsSpecialName { get { return IsSpecialName; } }
+ bool _MethodBase.IsConstructor { get { return IsConstructor; } }
+
void _MethodBase.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -450,6 +418,8 @@ namespace System.Reflection
{
throw new NotImplementedException();
}
+#endif
+ #endregion
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/methodbody.cs b/mcs/class/referencesource/mscorlib/system/reflection/methodbody.cs
index 428aded37a4..15bacb6824f 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/methodbody.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/methodbody.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/methodimplattributes.cs b/mcs/class/referencesource/mscorlib/system/reflection/methodimplattributes.cs
index 3667a8cc33f..00972404199 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/methodimplattributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/methodimplattributes.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
//
namespace System.Reflection
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/methodinfo.cs b/mcs/class/referencesource/mscorlib/system/reflection/methodinfo.cs
index fcc0610240e..0987d82251f 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/methodinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/methodinfo.cs
@@ -3,7 +3,7 @@
// Copyright(c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection
@@ -12,7 +12,6 @@ namespace System.Reflection
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.Contracts;
- using System.Diagnostics.Tracing;
using System.Globalization;
using System.Runtime;
using System.Runtime.InteropServices;
@@ -56,13 +55,12 @@ namespace System.Reflection
return left.Equals(right);
}
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public static bool operator !=(MethodInfo left, MethodInfo right)
{
return !(left == right);
}
#endif // !FEATURE_CORECLR
-#if FEATURE_NETCORE || !FEATURE_CORECLR
+
public override bool Equals(object obj)
{
return base.Equals(obj);
@@ -72,7 +70,6 @@ namespace System.Reflection
{
return base.GetHashCode();
}
-#endif //FEATURE_NETCORE || !FEATURE_CORECLR
#region MemberInfo Overrides
public override MemberTypes MemberType { get { return System.Reflection.MemberTypes.Method; } }
@@ -99,6 +96,7 @@ namespace System.Reflection
public virtual Delegate CreateDelegate(Type delegateType, Object target) { throw new NotSupportedException(Environment.GetResourceString("NotSupported_SubclassOverride")); }
#endregion
+#if !FEATURE_CORECLR
Type _MethodInfo.GetType()
{
return base.GetType();
@@ -125,6 +123,7 @@ namespace System.Reflection
{
throw new NotImplementedException();
}
+#endif
}
[Serializable]
@@ -355,9 +354,6 @@ namespace System.Reflection
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal override bool CacheEquals(object o)
{
RuntimeMethodInfo m = o as RuntimeMethodInfo;
@@ -528,25 +524,9 @@ namespace System.Reflection
if (m_name == null)
m_name = RuntimeMethodHandle.GetName(this);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.MethodName(GetDeclaringTypeInternal().GetFullNameForEtw(), GetFullNameForEtw());
- }
-#endif
-
return m_name;
}
}
-
- [System.Security.SecuritySafeCritical]
- internal override String GetFullNameForEtw()
- {
- if (m_name == null)
- return RuntimeMethodHandle.GetName(this);
-
- return m_name;
- }
public override Type DeclaringType
{
@@ -597,9 +577,6 @@ namespace System.Reflection
#region MethodBase Overrides
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal override ParameterInfo[] GetParametersNoCopy()
{
FetchNonReturnParameters();
@@ -658,9 +635,11 @@ namespace System.Reflection
}
[System.Security.SecuritySafeCritical] // overrides SafeCritical member
+#if !FEATURE_CORECLR
#pragma warning disable 618
[ReflectionPermissionAttribute(SecurityAction.Demand, Flags = ReflectionPermissionFlag.MemberAccess)]
#pragma warning restore 618
+#endif
public override MethodBody GetMethodBody()
{
MethodBody mb = RuntimeMethodHandle.GetMethodBody(this, ReflectedTypeInternal);
@@ -757,13 +736,6 @@ namespace System.Reflection
}
#endregion
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.MethodInfoInvoke(GetRuntimeType() != null ? GetRuntimeType().GetFullNameForEtw() : "", GetFullNameForEtw());
- }
-#endif
-
return UnsafeInvokeInternal(obj, parameters, arguments);
}
@@ -774,13 +746,6 @@ namespace System.Reflection
{
object[] arguments = InvokeArgumentsCheck(obj, invokeAttr, binder, parameters, culture);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.MethodInfoInvoke(GetRuntimeType() != null ? GetRuntimeType().GetFullNameForEtw() : "", GetFullNameForEtw());
- }
-#endif
-
return UnsafeInvokeInternal(obj, parameters, arguments);
}
@@ -936,26 +901,12 @@ namespace System.Reflection
if (!rtType.IsDelegate())
throw new ArgumentException(Environment.GetResourceString("Arg_MustBeDelegate"), "delegateType");
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginMethodInfoCreateDelegate(GetRuntimeType() != null ? GetRuntimeType().GetFullNameForEtw() : "", GetFullNameForEtw(),rtType.GetFullNameForEtw());
- }
-#endif
-
Delegate d = Delegate.CreateDelegateInternal(rtType, this, firstArgument, bindingFlags, ref stackMark);
if (d == null)
{
throw new ArgumentException(Environment.GetResourceString("Arg_DlgtTargMeth"));
}
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndMethodInfoCreateDelegate(GetRuntimeType() != null ? GetRuntimeType().GetFullNameForEtw() : "", GetFullNameForEtw(),rtType.GetFullNameForEtw());
- }
-#endif
-
return d;
}
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/missing.cs b/mcs/class/referencesource/mscorlib/system/reflection/missing.cs
index d203d31aaa7..7b310ebfa05 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/missing.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/missing.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/module.cs b/mcs/class/referencesource/mscorlib/system/reflection/module.cs
index 0ad4d7351c4..b318b39014d 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/module.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/module.cs
@@ -4,8 +4,8 @@
//
// ==--==
////////////////////////////////////////////////////////////////////////////////
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection
@@ -107,7 +107,7 @@ namespace System.Reflection
return !(left == right);
}
#endif // !FEATURE_CORECLR
-#if FEATURE_NETCORE || !FEATURE_CORECLR
+
public override bool Equals(object o)
{
return base.Equals(o);
@@ -117,7 +117,6 @@ namespace System.Reflection
{
return base.GetHashCode();
}
-#endif //FEATURE_NETCORE || !FEATURE_CORECLR
#endregion
#region Literals
@@ -562,6 +561,7 @@ namespace System.Reflection
#endif // FEATURE_X509 && FEATURE_CAS_POLICY
#endregion
+#if !FEATURE_CORECLR
void _Module.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -581,11 +581,9 @@ namespace System.Reflection
{
throw new NotImplementedException();
}
+#endif
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[Serializable]
internal class RuntimeModule : Module
{
@@ -949,9 +947,6 @@ namespace System.Reflection
private RuntimeType m_runtimeType;
private RuntimeAssembly m_runtimeAssembly;
private IntPtr m_pRefClass;
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
private IntPtr m_pData;
private IntPtr m_pGlobals;
private IntPtr m_pFields;
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/obfuscateassemblyattribute.cs b/mcs/class/referencesource/mscorlib/system/reflection/obfuscateassemblyattribute.cs
index 287a19a76d5..4c38baf4b9f 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/obfuscateassemblyattribute.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/obfuscateassemblyattribute.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/obfuscationattribute.cs b/mcs/class/referencesource/mscorlib/system/reflection/obfuscationattribute.cs
index 3bede5deabd..5e9a137cd99 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/obfuscationattribute.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/obfuscationattribute.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/parameterattributes.cs b/mcs/class/referencesource/mscorlib/system/reflection/parameterattributes.cs
index 5daf57c02c1..3c092070c08 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/parameterattributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/parameterattributes.cs
@@ -8,7 +8,7 @@
//
// ParameterAttributes is an enum defining the attributes that may be
//
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
// associated with a Parameter. These are defined in CorHdr.h.
//
// <EMAIL>Author: darylo</EMAIL>
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/parameterinfo.cs b/mcs/class/referencesource/mscorlib/system/reflection/parameterinfo.cs
index 031093ac0e5..0494899bcc1 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/parameterinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/parameterinfo.cs
@@ -3,7 +3,7 @@
// Copyright(c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection
@@ -183,6 +183,8 @@ namespace System.Reflection
#endregion
#region _ParameterInfo implementation
+
+#if !FEATURE_CORECLR
void _ParameterInfo.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -202,6 +204,8 @@ namespace System.Reflection
{
throw new NotImplementedException();
}
+#endif
+
#endregion
#region IObjectReference
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/parametermodifier.cs b/mcs/class/referencesource/mscorlib/system/reflection/parametermodifier.cs
index 545ea83ebce..ee168adddc3 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/parametermodifier.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/parametermodifier.cs
@@ -4,7 +4,7 @@ using System.Diagnostics.Contracts;
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/pointer.cs b/mcs/class/referencesource/mscorlib/system/reflection/pointer.cs
index ec703d95e16..636795024a3 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/pointer.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/pointer.cs
@@ -7,7 +7,7 @@
//
// This is a wrapper class for Pointers
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/propertyattributes.cs b/mcs/class/referencesource/mscorlib/system/reflection/propertyattributes.cs
index 61ffc3ace08..31d120b65c8 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/propertyattributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/propertyattributes.cs
@@ -8,12 +8,12 @@
//
// PropertyAttributes is an enum which defines the attributes that may be associated
//
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
// with a property. The values here are defined in Corhdr.h.
//
-// <
-
-
+// <TODO>Author: darylo</TODO>
+// Date: Aug 99
+//
namespace System.Reflection {
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/propertyinfo.cs b/mcs/class/referencesource/mscorlib/system/reflection/propertyinfo.cs
index 41a51d19230..2ea511c43dd 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/propertyinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/propertyinfo.cs
@@ -3,7 +3,7 @@
// Copyright(c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Reflection
@@ -12,7 +12,6 @@ namespace System.Reflection
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.Contracts;
- using System.Diagnostics.Tracing;
using System.Globalization;
using System.Runtime;
using System.Runtime.ConstrainedExecution;
@@ -49,13 +48,12 @@ namespace System.Reflection
return left.Equals(right);
}
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public static bool operator !=(PropertyInfo left, PropertyInfo right)
{
return !(left == right);
}
#endif // !FEATURE_CORECLR
-#if FEATURE_NETCORE || !FEATURE_CORECLR
+
public override bool Equals(object obj)
{
return base.Equals(obj);
@@ -65,7 +63,6 @@ namespace System.Reflection
{
return base.GetHashCode();
}
-#endif //FEATURE_NETCORE || !FEATURE_CORECLR
#region MemberInfo Overrides
public override MemberTypes MemberType { get { return System.Reflection.MemberTypes.Property; } }
@@ -118,9 +115,6 @@ namespace System.Reflection
[DebuggerStepThroughAttribute]
[Diagnostics.DebuggerHidden]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public void SetValue(Object obj, Object value)
{
SetValue(obj, value, null);
@@ -164,6 +158,7 @@ namespace System.Reflection
public bool IsSpecialName { get { return(Attributes & PropertyAttributes.SpecialName) != 0; } }
#endregion
+#if !FEATURE_CORECLR
Type _PropertyInfo.GetType()
{
return base.GetType();
@@ -190,6 +185,7 @@ namespace System.Reflection
{
throw new NotImplementedException();
}
+#endif
}
[Serializable]
@@ -427,16 +423,6 @@ namespace System.Reflection
return m_name;
}
}
-
- [System.Security.SecuritySafeCritical]
- internal override String GetFullNameForEtw()
- {
- if (m_name == null)
- return new Utf8String(m_utf8name).ToString();
-
- return m_name;
- }
-
public override Type DeclaringType
{
get
@@ -531,9 +517,6 @@ namespace System.Reflection
return m_getterMethod;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override MethodInfo GetSetMethod(bool nonPublic)
{
if (!Associates.IncludeAccessor(m_setterMethod, nonPublic))
@@ -630,9 +613,6 @@ namespace System.Reflection
#region Dynamic
[DebuggerStepThroughAttribute]
[Diagnostics.DebuggerHidden]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override Object GetValue(Object obj,Object[] index)
{
return GetValue(obj, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static,
@@ -652,9 +632,6 @@ namespace System.Reflection
[DebuggerStepThroughAttribute]
[Diagnostics.DebuggerHidden]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override void SetValue(Object obj, Object value, Object[] index)
{
SetValue(obj,
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/reflectioncontext.cs b/mcs/class/referencesource/mscorlib/system/reflection/reflectioncontext.cs
index d559a661f4b..3b853973201 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/reflectioncontext.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/reflectioncontext.cs
@@ -7,7 +7,7 @@
**
** Class: ReflectionContext
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: For Assembly-related stuff.
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/reflectiontypeloadexception.cs b/mcs/class/referencesource/mscorlib/system/reflection/reflectiontypeloadexception.cs
index 07baefda606..df95e64a25c 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/reflectiontypeloadexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/reflectiontypeloadexception.cs
@@ -8,7 +8,7 @@
//
// ReflectionTypeLoadException is thrown when multiple TypeLoadExceptions may occur.
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// Specifically, when you call Module.GetTypes() this causes multiple class loads to occur.
// If there are failures, we continue to load classes and build an array of the successfully
// loaded classes. We also build an array of the errors that occur. Then we throw this exception
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/resourceattributes.cs b/mcs/class/referencesource/mscorlib/system/reflection/resourceattributes.cs
index e0db87975bf..2722a59182b 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/resourceattributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/resourceattributes.cs
@@ -8,10 +8,10 @@
//
// ResourceAttributes is an enum which defines the attributes that may be associated
//
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
// with a manifest resource. The values here are defined in Corhdr.h.
//
-// <EMAIL>Author: [....]</EMAIL>
+// <EMAIL>Author: meichint</EMAIL>
// Date: April 2000
//
namespace System.Reflection {
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/strongnamekeypair.cs b/mcs/class/referencesource/mscorlib/system/reflection/strongnamekeypair.cs
index b4a736415fa..6734a4850d1 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/strongnamekeypair.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/strongnamekeypair.cs
@@ -7,7 +7,7 @@
**
** File: StrongNameKeyPair.cs
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Encapsulate access to a public/private key pair
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/targetexception.cs b/mcs/class/referencesource/mscorlib/system/reflection/targetexception.cs
index caba5efd123..c3e51193f8e 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/targetexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/targetexception.cs
@@ -8,7 +8,7 @@
//
// TargetException is thrown when the target to an Invoke is invalid. This may
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// occur because the caller doesn't have access to the member, or the target doesn't
// define the member, etc.
//
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/targetinvocationexception.cs b/mcs/class/referencesource/mscorlib/system/reflection/targetinvocationexception.cs
index 0df1faa9d6c..dbe11f215b3 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/targetinvocationexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/targetinvocationexception.cs
@@ -8,7 +8,7 @@
//
// TargetInvocationException is used to report an exception that was thrown
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// by the target of an invocation.
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/targetparametercountexception.cs b/mcs/class/referencesource/mscorlib/system/reflection/targetparametercountexception.cs
index d350a07c2ea..60007d1cd25 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/targetparametercountexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/targetparametercountexception.cs
@@ -8,7 +8,7 @@
//
// TargetParameterCountException is thrown when the number of parameter to an
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// invocation doesn't match the number expected.
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/typeattributes.cs b/mcs/class/referencesource/mscorlib/system/reflection/typeattributes.cs
index 2d6f3ef028a..c8bc833f36b 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/typeattributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/typeattributes.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
namespace System.Reflection {
using System.Runtime.InteropServices;
using System;
@@ -44,10 +44,8 @@ namespace System.Reflection {
// Implementation attributes.
Import = 0x00001000, // Class / interface is imported
Serializable = 0x00002000, // The class is Serializable.
-#if FEATURE_COMINTEROP || MONO
[ComVisible(false)]
WindowsRuntime = 0x00004000, // Type is a Windows Runtime type.
-#endif // FEATURE_COMINTEROP
// Use tdStringFormatMask to retrieve string information for native interop
StringFormatMask = 0x00030000,
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/typedelegator.cs b/mcs/class/referencesource/mscorlib/system/reflection/typedelegator.cs
index 4fd9ecc2f49..053c9f58ed8 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/typedelegator.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/typedelegator.cs
@@ -5,7 +5,7 @@
// ==--==
// TypeDelegator
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
// This class wraps a Type object and delegates all methods to that Type.
namespace System.Reflection {
@@ -17,19 +17,13 @@ namespace System.Reflection {
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
- public class TypeDelegator :
-#if FEATURE_CORECLR && !FEATURE_NETCORE
- Type
-#else
- TypeInfo
-#endif
+ public class TypeDelegator : TypeInfo
{
-#if !FEATURE_CORECLR || FEATURE_NETCORE
public override bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo){
if(typeInfo==null) return false;
return IsAssignableFrom(typeInfo.AsType());
}
-#endif
+
protected Type typeImpl;
#if FEATURE_CORECLR
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/typefilter.cs b/mcs/class/referencesource/mscorlib/system/reflection/typefilter.cs
index c534831eff5..016e7c76d1c 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/typefilter.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/typefilter.cs
@@ -8,11 +8,11 @@
//
// TypeFilter defines a delegate that is as a callback function for filtering
//
-// <OWNER>[....]</OWNER>
+// <OWNER>WESU</OWNER>
// a list of Types.
//
// <EMAIL>Author: darylo</EMAIL>
-// Date: [....] 98
+// Date: March 98
//
namespace System.Reflection {
diff --git a/mcs/class/referencesource/mscorlib/system/reflection/typeinfo.cs b/mcs/class/referencesource/mscorlib/system/reflection/typeinfo.cs
index ea699084644..098b0add8dc 100644
--- a/mcs/class/referencesource/mscorlib/system/reflection/typeinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/reflection/typeinfo.cs
@@ -7,7 +7,7 @@
**
** Class: TypeInfo
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Notion of a type definition
@@ -21,7 +21,6 @@ namespace System.Reflection
using System.Runtime.CompilerServices;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
- using System.Diagnostics.Tracing;
//all today's runtime Type derivations derive now from TypeInfo
//we make TypeInfo implement IRCT - simplifies work
@@ -85,77 +84,24 @@ namespace System.Reflection
public virtual EventInfo GetDeclaredEvent(String name)
{
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeEvent(GetFullNameForEtw(), name != null ? name : "");
- }
-#endif
- EventInfo ei = GetEvent(name, Type.DeclaredOnlyLookup);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeEvent(GetFullNameForEtw(), ei != null ? ei.GetFullNameForEtw() : "");
- }
-#endif
- return ei;
+ return GetEvent(name, Type.DeclaredOnlyLookup);
}
public virtual FieldInfo GetDeclaredField(String name)
{
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeField(GetFullNameForEtw(), name != null ? name : "");
- }
-#endif
- FieldInfo fi = GetField(name, Type.DeclaredOnlyLookup);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeField(GetFullNameForEtw(), fi != null ? fi.GetFullNameForEtw() : "");
- }
-#endif
- return fi;
+ return GetField(name, Type.DeclaredOnlyLookup);
}
public virtual MethodInfo GetDeclaredMethod(String name)
{
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeMethod(GetFullNameForEtw(), name != null ? name : "");
- }
-#endif
- MethodInfo mi = GetMethod(name, Type.DeclaredOnlyLookup);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeMethod(GetFullNameForEtw(), mi != null ? mi.GetFullNameForEtw() : "");
- }
-#endif
- return mi;
+ return GetMethod(name, Type.DeclaredOnlyLookup);
}
public virtual IEnumerable<MethodInfo> GetDeclaredMethods(String name)
{
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeMethods(GetFullNameForEtw());
- }
-#endif
-
foreach (MethodInfo method in GetMethods(Type.DeclaredOnlyLookup))
{
if (method.Name == name)
yield return method;
}
-
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeMethods(GetFullNameForEtw());
- }
-#endif
}
public virtual System.Reflection.TypeInfo GetDeclaredNestedType(String name)
{
@@ -168,20 +114,7 @@ namespace System.Reflection
}
public virtual PropertyInfo GetDeclaredProperty(String name)
{
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeProperty(GetFullNameForEtw(), name != null ? name : "");
- }
-#endif
- PropertyInfo pi = GetProperty(name, Type.DeclaredOnlyLookup);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeProperty(GetFullNameForEtw(), pi != null ? pi.GetFullNameForEtw() : "");
- }
-#endif
- return pi;
+ return GetProperty(name, Type.DeclaredOnlyLookup);
}
@@ -194,20 +127,7 @@ namespace System.Reflection
{
get
{
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeConstructors(GetFullNameForEtw());
- }
-#endif
- IEnumerable<ConstructorInfo> constructors = GetConstructors(Type.DeclaredOnlyLookup);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeConstructors(GetFullNameForEtw());
- }
-#endif
- return constructors;
+ return GetConstructors(Type.DeclaredOnlyLookup);
}
}
@@ -215,20 +135,7 @@ namespace System.Reflection
{
get
{
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeEvents(GetFullNameForEtw());
- }
-#endif
- IEnumerable<EventInfo> events = GetEvents(Type.DeclaredOnlyLookup);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeEvents(GetFullNameForEtw());
- }
-#endif
- return events;
+ return GetEvents(Type.DeclaredOnlyLookup);
}
}
@@ -236,20 +143,7 @@ namespace System.Reflection
{
get
{
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeFields(GetFullNameForEtw());
- }
-#endif
- IEnumerable<FieldInfo> fields = GetFields(Type.DeclaredOnlyLookup);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeFields(GetFullNameForEtw());
- }
-#endif
- return fields;
+ return GetFields(Type.DeclaredOnlyLookup);
}
}
@@ -257,20 +151,7 @@ namespace System.Reflection
{
get
{
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeMembers(GetFullNameForEtw());
- }
-#endif
- IEnumerable<MemberInfo> members = GetMembers(Type.DeclaredOnlyLookup);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeMembers(GetFullNameForEtw());
- }
-#endif
- return members;
+ return GetMembers(Type.DeclaredOnlyLookup);
}
}
@@ -278,20 +159,7 @@ namespace System.Reflection
{
get
{
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeMethods(GetFullNameForEtw());
- }
-#endif
- IEnumerable<MethodInfo> methods = GetMethods(Type.DeclaredOnlyLookup);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeMethods(GetFullNameForEtw());
- }
-#endif
- return methods;
+ return GetMethods(Type.DeclaredOnlyLookup);
}
}
public virtual IEnumerable<System.Reflection.TypeInfo> DeclaredNestedTypes
@@ -308,20 +176,7 @@ namespace System.Reflection
{
get
{
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginGetRuntimeProperties(GetFullNameForEtw());
- }
-#endif
- IEnumerable<PropertyInfo> properties = GetProperties(Type.DeclaredOnlyLookup);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndGetRuntimeProperties(GetFullNameForEtw());
- }
-#endif
- return properties;
+ return GetProperties(Type.DeclaredOnlyLookup);
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/resources/__fastresourcecomparer.cs b/mcs/class/referencesource/mscorlib/system/resources/__fastresourcecomparer.cs
index 9b315a100b6..e04fca6aa38 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/__fastresourcecomparer.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/__fastresourcecomparer.cs
@@ -5,7 +5,7 @@
// ==--==
/*============================================================
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Class: FastResourceComparer
**
diff --git a/mcs/class/referencesource/mscorlib/system/resources/__hresults.cs b/mcs/class/referencesource/mscorlib/system/resources/__hresults.cs
index 9394d19b302..adb522e20f0 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/__hresults.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/__hresults.cs
@@ -7,13 +7,13 @@
//
// Class: __HResults
//
-// <OWNER>[....]</OWNER>
+// <OWNER>jathaine</OWNER>
//
// Purpose: Define HResult constants returned by the Windows Modern Resource Manager
// and consumed by System.Resources.ResourceManager.
//
//===========================================================================*/
-#if !FEATURE_CORECLR
+#if FEATURE_APPX
namespace System.Resources {
using System;
// Only static data no need to serialize
@@ -23,4 +23,4 @@ namespace System.Resources {
public const int ERROR_MRM_MAP_NOT_FOUND = unchecked((int)0x80073B1F);
}
}
-#endif //FEATURE_CORECLR
+#endif
diff --git a/mcs/class/referencesource/mscorlib/system/resources/filebasedresourcegroveler.cs b/mcs/class/referencesource/mscorlib/system/resources/filebasedresourcegroveler.cs
index c2931dc9e6c..c24598dba2b 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/filebasedresourcegroveler.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/filebasedresourcegroveler.cs
@@ -7,7 +7,7 @@
**
** Class: FileBasedResourceGroveler
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Searches for resources on disk, used for file-
diff --git a/mcs/class/referencesource/mscorlib/system/resources/iresourcegroveler.cs b/mcs/class/referencesource/mscorlib/system/resources/iresourcegroveler.cs
index 4d9bb64e9a9..26a5757d7b4 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/iresourcegroveler.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/iresourcegroveler.cs
@@ -7,7 +7,7 @@
**
** Class: IResourceGroveler
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Interface for resource grovelers
diff --git a/mcs/class/referencesource/mscorlib/system/resources/iresourcereader.cs b/mcs/class/referencesource/mscorlib/system/resources/iresourcereader.cs
index 635bb5d1485..aaa4b630c33 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/iresourcereader.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/iresourcereader.cs
@@ -7,7 +7,7 @@
**
** Class: IResourceReader
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Abstraction to read streams of resources.
diff --git a/mcs/class/referencesource/mscorlib/system/resources/iresourcewriter.cs b/mcs/class/referencesource/mscorlib/system/resources/iresourcewriter.cs
index a73dcfc2a8b..439e5010d04 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/iresourcewriter.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/iresourcewriter.cs
@@ -7,7 +7,7 @@
**
** Class: IResourceWriter
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Default way to write strings to a COM+ resource
diff --git a/mcs/class/referencesource/mscorlib/system/resources/looselylinkedresourcereference.cs b/mcs/class/referencesource/mscorlib/system/resources/looselylinkedresourcereference.cs
index 66905c5aedc..6282176abf0 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/looselylinkedresourcereference.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/looselylinkedresourcereference.cs
@@ -7,7 +7,7 @@
**
** Class: LooselyLinkedResourceReference
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Provides a localizable way of retrieving a file
@@ -65,7 +65,7 @@ namespace System.Resources {
throw new ArgumentNullException("assembly");
Contract.EndContractBlock();
- // @
+ // @TODO: Consider making this lookup case-insensitive for VB.
Stream data = assembly.GetManifestResourceStream(_manifestResourceName);
if (data == null)
throw new MissingManifestResourceException(Environment.GetResourceString("MissingManifestResource_LooselyLinked", _manifestResourceName, assembly.FullName));
diff --git a/mcs/class/referencesource/mscorlib/system/resources/manifestbasedresourcegroveler.cs b/mcs/class/referencesource/mscorlib/system/resources/manifestbasedresourcegroveler.cs
index 9453aa60f8a..d1c85ea79d2 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/manifestbasedresourcegroveler.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/manifestbasedresourcegroveler.cs
@@ -7,7 +7,7 @@
**
** Class: ManifestBasedResourceGroveler
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Searches for resources in Assembly manifest, used
@@ -91,9 +91,6 @@ namespace System.Resources {
if (satellite == null)
{
bool raiseException = (culture.HasInvariantCultureName && (_mediator.FallbackLoc == UltimateResourceFallbackLocation.Satellite));
-#if FEATURE_SPLIT_RESOURCES
- raiseException &= !_mediator.IsDebugSatellite;
-#endif
// didn't find satellite, give error if necessary
if (raiseException)
{
@@ -158,9 +155,6 @@ namespace System.Resources {
{
// 4b. Didn't find stream; give error if necessary
bool raiseException = culture.HasInvariantCultureName;
-#if FEATURE_SPLIT_RESOURCES
- raiseException &= !_mediator.IsDebugSatellite;
-#endif // FEATURE_SPLIT_RESOURCES
if (raiseException)
{
HandleResourceStreamMissing(fileName);
@@ -200,19 +194,6 @@ namespace System.Resources {
private CultureInfo UltimateFallbackFixup(CultureInfo lookForCulture)
{
-#if FEATURE_SPLIT_RESOURCES
- // special-case for mscorlib debug resources only
- if (_mediator.IsDebugSatellite)
- {
- if (lookForCulture.HasInvariantCultureName &&
- _mediator.FallbackLoc == UltimateResourceFallbackLocation.MainAssembly)
- {
- return _mediator.NeutralResourcesCulture;
- }
- return lookForCulture;
- }
-#endif
-
CultureInfo returnCulture = lookForCulture;
// If our neutral resources were written in this culture AND we know the main assembly
@@ -541,11 +522,11 @@ namespace System.Resources {
// if the stream is private and we're trying to access it from another
// assembly (ie, ResMgr in mscorlib accessing anything else), we
// require Reflection TypeInformation permission to be able to read
- // this. <STRIP>This meaning of private in satellite assemblies is a really
- // odd concept, and is orthogonal to the ResourceManager.
- // We should not assume we can skip this security check,
- // which means satellites must always use public manifest resources
- // if you want to support semi-trusted code. </STRIP>
+ // this. <
+
+
+
+
#if !FEATURE_CORECLR && !MONO
if (s!=null) {
if (FrameworkEventSource.IsInitialized)
@@ -658,17 +639,7 @@ namespace System.Resources {
private String GetSatelliteAssemblyName()
{
String satAssemblyName = _mediator.MainAssembly.GetSimpleName();
-#if FEATURE_SPLIT_RESOURCES
- if (_mediator.IsDebugSatellite)
- {
- satAssemblyName = satAssemblyName + ".debug";
- }
- if (!satAssemblyName.EndsWith(".resources", StringComparison.OrdinalIgnoreCase)) {
-#endif
satAssemblyName += ".resources";
-#if FEATURE_SPLIT_RESOURCES
- }
-#endif
return satAssemblyName;
}
diff --git a/mcs/class/referencesource/mscorlib/system/resources/missingmanifestresourceexception.cs b/mcs/class/referencesource/mscorlib/system/resources/missingmanifestresourceexception.cs
index 5230ce273d0..2baaaf3228f 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/missingmanifestresourceexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/missingmanifestresourceexception.cs
@@ -7,7 +7,7 @@
**
** Class: MissingManifestResourceException
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Exception for a missing assembly-level resource
diff --git a/mcs/class/referencesource/mscorlib/system/resources/missingsatelliteassemblyexception.cs b/mcs/class/referencesource/mscorlib/system/resources/missingsatelliteassemblyexception.cs
index 66de05a64a6..e9099224a4b 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/missingsatelliteassemblyexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/missingsatelliteassemblyexception.cs
@@ -7,7 +7,7 @@
**
** Class: MissingSatelliteAssemblyException
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Exception for a missing satellite assembly needed
diff --git a/mcs/class/referencesource/mscorlib/system/resources/neutralresourceslanguageattribute.cs b/mcs/class/referencesource/mscorlib/system/resources/neutralresourceslanguageattribute.cs
index 9ab5e027cf4..e22f68833e0 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/neutralresourceslanguageattribute.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/neutralresourceslanguageattribute.cs
@@ -7,7 +7,7 @@
**
** Class: NeutralResourcesLanguageAttribute
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Tells the ResourceManager what language your main
diff --git a/mcs/class/referencesource/mscorlib/system/resources/resourcefallbackmanager.cs b/mcs/class/referencesource/mscorlib/system/resources/resourcefallbackmanager.cs
index 1b5ce87f617..fb6c1606755 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/resourcefallbackmanager.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/resourcefallbackmanager.cs
@@ -7,7 +7,7 @@
**
** Class: ResourceFallbackManager
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Encapsulates CultureInfo fallback for resource
@@ -67,7 +67,7 @@ namespace System.Resources
return GetEnumerator();
}
- // WARING: This function must be kept in [....] with ResourceManager.GetFirstResourceSet()
+ // WARING: This function must be kept in sync with ResourceManager.GetFirstResourceSet()
public IEnumerator<CultureInfo> GetEnumerator()
{
bool reachedNeutralResourcesCulture = false;
@@ -234,23 +234,23 @@ namespace System.Resources
// settings, and applications built in certain styles. The OS-preferred fallback should
// be last, and the user-preferred fallback just breaks certain apps no matter where you put it.
//
- // Necessary and sufficient conditions for an AppCompat bug (if we respected user & OS fallbacks):
- // 1) A French OS (ie, you walk into an Internet café in Paris)
- // 2) A .NET application whose neutral resources are authored in English.
- // 3) The application did not provide an English satellite assembly (a common pattern).
- // 4) The application is localized to French.
- // 5) The user wants to read English, expressed in either of two ways:
- // a. Changing Windows’ Display Language in the Regional Options Control Panel
- // b. The application explicitly ASKS THE USER what language to display.
- //
- // Obviously the exact languages above can be interchanged a bit - I’m keeping this concrete.
- // Also the NeutralResourcesLanguageAttribute will allow this to work, but usually we set it
- // to en-US for our assemblies, meaning all other English cultures are broken.
- //
- // Workarounds:
- // *) Use the NeutralResourcesLanguageAttribute and tell us that your neutral resources
- // are in region-neutral English (en).
- // *) Consider shipping a region-neutral English satellite assembly.
+ // Necessary and sufficient conditions for an AppCompat
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
// Future work:
// 2) Consider a mechanism for individual assemblies to opt into wanting user-preferred fallback.
diff --git a/mcs/class/referencesource/mscorlib/system/resources/resourcemanager.cs b/mcs/class/referencesource/mscorlib/system/resources/resourcemanager.cs
index 758f36b7346..cdff67b0962 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/resourcemanager.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/resourcemanager.cs
@@ -41,7 +41,10 @@ namespace System.Resources {
//
// This is implemented in System.Runtime.WindowsRuntime as function System.Resources.WindowsRuntimeResourceManager,
// allowing us to ask for a WinRT-specific ResourceManager.
- // Ideally this would be an interface, or at least an abstract class - but neither seems to play nice with FriendAccessAllowed.
+ // It is important to have WindowsRuntimeResourceManagerBase as regular class with virtual methods and default implementations.
+ // Defining WindowsRuntimeResourceManagerBase as abstract class or interface will cause issues when adding more methods to it
+ // because it�ll create dependency between mscorlib and System.Runtime.WindowsRuntime which will require always shipping both DLLs together.
+ // Also using interface or abstract class will not play nice with FriendAccessAllowed.
//
[FriendAccessAllowed]
[SecurityCritical]
@@ -57,10 +60,13 @@ namespace System.Resources {
[SecurityCritical]
get { return null; }
}
+
+ [SecurityCritical]
+ public virtual bool SetGlobalResourceContextDefaultCulture(CultureInfo ci) { return false; }
}
[FriendAccessAllowed]
- // [[....] 3/9/2012] This class should be named PRIErrorInfo.
+ // [Microsoft 3/9/2012] This class should be named PRIErrorInfo.
//
// During Dev11 CLR RC Ask mode, the Windows Modern Resource Manager
// made a breaking change such that ResourceMap.GetSubtree returns null when a subtree is
@@ -141,27 +147,27 @@ namespace System.Resources {
// which is key for maintainability.
// - Makes the ResourceManager more extensible by identifying and
// encapsulating what varies
- // - Unearthed a bug that's been lurking a while in file-based
- // lookup paths for InternalGetResourceSet if createIfNotExists is
- // false.
- // - Reuses logic, e.g. by breaking apart the culture fallback into
- // the fallback iterator class, we don't have to repeat the
- // sometimes confusing fallback logic across multiple methods
- // - Fxcop violations reduced to 1/5th of original count. Most
- // importantly, code complexity violations disappeared.
- // - Finally, it got rid of dead code paths. Because the big loop was
- // so confusing, it masked unused chunks of code. Also, dividing
- // between file-based and manifest-based allowed functionaliy
- // unused in silverlight to fall out.
- //
- // Note: this type is integral to the construction of exception objects,
- // and sometimes this has to be done in low memory situtations (OOM) or
- // to create TypeInitializationExceptions due to failure of a static class
- // constructor. This type needs to be extremely careful and assume that
- // any type it references may have previously failed to construct, so statics
- // belonging to that type may not be initialized. FrameworkEventSource.Log
- // is one such example.
- //
+ // - Unearthed a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
@@ -200,9 +206,6 @@ namespace System.Resources {
[OptionalField(VersionAdded = 1)]
private bool UseSatelliteAssem; // Are all the .resources files in the
// main assembly, or in satellite assemblies for each culture?
-#if FEATURE_SPLIT_RESOURCES
- private bool _isDebugSatellite;
-#endif // FEATURE_SPLIT_RESOURCES
#if RESOURCE_SATELLITE_CONFIG
private static volatile Hashtable _installedSatelliteInfo; // Give the user the option
// to prevent certain satellite assembly probes via a config file.
@@ -439,12 +442,6 @@ namespace System.Resources {
}
}
-#if FEATURE_SPLIT_RESOURCES
- internal ResourceManager(String baseName, Assembly assembly, bool isDebugSatellite) : this(baseName, assembly) {
- _isDebugSatellite = isDebugSatellite;
- }
-#endif // FEATURE_SPLIT_RESOURCES
-
[OnDeserializing]
private void OnDeserializing(StreamingContext ctx)
{
@@ -648,7 +645,7 @@ namespace System.Resources {
return sb.ToString();
}
- // WARNING: This function must be kept in [....] with ResourceFallbackManager.GetEnumerator()
+ // WARNING: This function must be kept in sync with ResourceFallbackManager.GetEnumerator()
// Return the first ResourceSet, based on the first culture ResourceFallbackManager would return
internal ResourceSet GetFirstResourceSet(CultureInfo culture)
{
@@ -736,7 +733,7 @@ namespace System.Resources {
// method, so the entire idea of a security check written this way is ----.
// So if we happen to return some resources in cases where we should really be
// doing a demand for member access permissions, we're not overly concerned.
- // <STRIP>I verified this with our CAS expert. -- Brian, 2/11/2010</STRIP>
+ // <
return InternalGetResourceSet(culture, createIfNotExists, tryParents);
}
@@ -1036,6 +1033,57 @@ namespace System.Resources {
[NonSerialized]
private PRIExceptionInfo _PRIExceptionInfo; // Written only by SetAppXConfiguration
+ // When running under AppX, the following rules apply for resource lookup:
+ //
+ // Desktop
+ // -------
+ //
+ // 1) For Framework assemblies, we always use satellite assembly based lookup.
+ // 2) For non-FX assemblies, we use modern resource manager, with the premise being that app package
+ // contains the PRI resources since such assemblies are expected to be application assemblies.
+ //
+ // CoreCLR
+ // -------
+ //
+ // 1) For Framework assemblies, we always use satellite assembly based lookup.
+ // 2) For non-FX assemblies:
+ //
+ // a) If the assembly lives under PLATFORM_RESOURCE_ROOTS (as specified by the host during AppDomain creation),
+ // then we will use satellite assembly based lookup in assemblies like *.resources.dll.
+ //
+ // b) For any other non-FX assembly, we will use the modern resource manager with the premise that app package
+ // contains the PRI resources.
+ [SecuritySafeCritical]
+ private bool ShouldUseSatelliteAssemblyResourceLookupUnderAppX(RuntimeAssembly resourcesAssembly)
+ {
+ bool fUseSatelliteAssemblyResourceLookupUnderAppX = resourcesAssembly.IsFrameworkAssembly();
+
+#if FEATURE_CORECLR
+ if (!fUseSatelliteAssemblyResourceLookupUnderAppX)
+ {
+ // Check to see if the assembly is under PLATFORM_RESOURCE_ROOTS. If it is, then we should use satellite assembly lookup for it.
+ String platformResourceRoots = (String)(AppDomain.CurrentDomain.GetData("PLATFORM_RESOURCE_ROOTS"));
+ if ((platformResourceRoots != null) && (platformResourceRoots != String.Empty))
+ {
+ string resourceAssemblyPath = resourcesAssembly.Location;
+
+ // Loop through the PLATFORM_RESOURCE_ROOTS and see if the assembly is contained in it.
+ foreach(string pathPlatformResourceRoot in platformResourceRoots.Split(Path.PathSeparator))
+ {
+ if (resourceAssemblyPath.StartsWith(pathPlatformResourceRoot, StringComparison.CurrentCultureIgnoreCase))
+ {
+ // Found the resource assembly to be present in one of the PLATFORM_RESOURCE_ROOT, so stop the enumeration loop.
+ fUseSatelliteAssemblyResourceLookupUnderAppX = true;
+ break;
+ }
+ }
+ }
+ }
+#endif // FEATURE_CORECLR
+ return fUseSatelliteAssemblyResourceLookupUnderAppX;
+
+ }
+
[SecuritySafeCritical]
#endif // FEATURE_APPX
// Only call SetAppXConfiguration from ResourceManager constructors, and nowhere else.
@@ -1104,7 +1152,7 @@ namespace System.Resources {
{
// See AssemblyNative::IsFrameworkAssembly for details on which kinds of assemblies are considered Framework assemblies.
// The Modern Resource Manager is not used for such assemblies - they continue to use satellite assemblies (i.e. .resources.dll files).
- _bUsingModernResourceManagement = !resourcesAssembly.IsFrameworkAssembly();
+ _bUsingModernResourceManagement = !ShouldUseSatelliteAssemblyResourceLookupUnderAppX(resourcesAssembly);
if (_bUsingModernResourceManagement)
{
@@ -1321,7 +1369,7 @@ namespace System.Resources {
throw new ArgumentNullException("name");
Contract.EndContractBlock();
-#if !FEATURE_CORECLR
+#if FEATURE_APPX
if(s_IsAppXModel)
{
// If the caller explictily passed in a culture that was obtained by calling CultureInfo.CurrentUICulture,
@@ -1631,13 +1679,6 @@ namespace System.Resources {
get { return _rm.m_callingAssembly; }
}
-#if FEATURE_SPLIT_RESOURCES
- internal bool IsDebugSatellite
- {
- get { return _rm._isDebugSatellite; }
- }
-#endif
-
internal RuntimeAssembly MainAssembly
{
get { return (RuntimeAssembly)_rm.MainAssembly; }
diff --git a/mcs/class/referencesource/mscorlib/system/resources/resourcereader.cs b/mcs/class/referencesource/mscorlib/system/resources/resourcereader.cs
index 51d3ad23667..82ead3cc71a 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/resourcereader.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/resourcereader.cs
@@ -7,7 +7,7 @@
**
** Class: ResourceReader
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Default way to read streams of resources on
@@ -843,7 +843,7 @@ namespace System.Resources {
// types which do demand serialization permission in their
// deserialization .cctors will fail.
// Also, use a serialization binder to limit bind requests to
- // our allowed list of [....] types.
+ // our allowed list of Microsoft types.
_objFormatter.Binder = _typeLimitingBinder;
_typeLimitingBinder.ExpectingToDeserialize(type);
graph = _objFormatter.UnsafeDeserialize(_store.BaseStream, null);
@@ -1140,7 +1140,7 @@ namespace System.Resources {
}
else {
// Enums should be safe to deserialize, and this helps out
- // partially trusted, localized [....] apps.
+ // partially trusted, localized Microsoft apps.
if (resourceType.BaseType == typeof(Enum)) {
_safeToDeserialize[i] = true;
continue;
@@ -1315,7 +1315,7 @@ namespace System.Resources {
}
}
- // [....] types may internally use some enums that aren't
+ // Microsoft types may internally use some enums that aren't
// on our safe to deserialize list, like Font using FontStyle.
Type t = ObjectReader.FastBindToType(assemblyName, typeName);
if (t.IsEnum)
@@ -1326,7 +1326,7 @@ namespace System.Resources {
// Throw instead of returning null.
// If you're looking at this in a debugger, you've either
- // got a hacked .resources file on your hands, or [....]
+ // got a hacked .resources file on your hands, or Microsoft
// types have taken a new dependency on another type. Check
// whether assemblyName & typeName refer to a trustworthy type,
// & consider adding it to the TypesSafeToDeserialize list.
@@ -1398,22 +1398,24 @@ namespace System.Resources {
String key;
Object value = null;
- lock (_reader._resCache) {
- key = _reader.AllocateStringForNameIndex(_currentName, out _dataPosition);
- ResourceLocator locator;
- if (_reader._resCache.TryGetValue(key, out locator)) {
- value = locator.Value;
- }
- if (value == null) {
- if (_dataPosition == -1)
- value = _reader.GetValueForNameIndex(_currentName);
- else
- value = _reader.LoadObject(_dataPosition);
- // If enumeration and subsequent lookups happen very
- // frequently in the same process, add a ResourceLocator
- // to _resCache here. But [....] enumerates and
- // just about everyone else does lookups. So caching
- // here may bloat working set.
+ lock (_reader) { // locks should be taken in the same order as in RuntimeResourceSet.GetObject to avoid deadlock
+ lock (_reader._resCache) {
+ key = _reader.AllocateStringForNameIndex(_currentName, out _dataPosition); // AllocateStringForNameIndex could lock on _reader
+ ResourceLocator locator;
+ if (_reader._resCache.TryGetValue(key, out locator)) {
+ value = locator.Value;
+ }
+ if (value == null) {
+ if (_dataPosition == -1)
+ value = _reader.GetValueForNameIndex(_currentName);
+ else
+ value = _reader.LoadObject(_dataPosition);
+ // If enumeration and subsequent lookups happen very
+ // frequently in the same process, add a ResourceLocator
+ // to _resCache here. But Microsoft enumerates and
+ // just about everyone else does lookups. So caching
+ // here may bloat working set.
+ }
}
}
return new DictionaryEntry(key, value);
diff --git a/mcs/class/referencesource/mscorlib/system/resources/resourceset.cs b/mcs/class/referencesource/mscorlib/system/resources/resourceset.cs
index c722cfb3602..0d1234cb617 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/resourceset.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/resourceset.cs
@@ -7,7 +7,7 @@
**
** Class: ResourceSet
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Culture-specific collection of resources.
diff --git a/mcs/class/referencesource/mscorlib/system/resources/resourcetypecode.cs b/mcs/class/referencesource/mscorlib/system/resources/resourcetypecode.cs
index 7e956b80563..ce2bf5c6435 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/resourcetypecode.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/resourcetypecode.cs
@@ -7,7 +7,7 @@
**
** Class: ResourceTypeCode
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
**
** Purpose: Marker for types in .resources files
diff --git a/mcs/class/referencesource/mscorlib/system/resources/resourcewriter.cs b/mcs/class/referencesource/mscorlib/system/resources/resourcewriter.cs
index bd3177842e7..86710cfa414 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/resourcewriter.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/resourcewriter.cs
@@ -7,7 +7,7 @@
**
** Class: ResourceWriter
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Default way to write strings to a CLR resource
diff --git a/mcs/class/referencesource/mscorlib/system/resources/runtimeresourceset.cs b/mcs/class/referencesource/mscorlib/system/resources/runtimeresourceset.cs
index d9cdd07df56..0c51f6039c1 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/runtimeresourceset.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/runtimeresourceset.cs
@@ -7,7 +7,7 @@
**
** Class: RuntimeResourceSet
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: CultureInfo-specific collection of resources.
diff --git a/mcs/class/referencesource/mscorlib/system/resources/satellitecontractversionattribute.cs b/mcs/class/referencesource/mscorlib/system/resources/satellitecontractversionattribute.cs
index 4987dc9e6cf..c0c0045683a 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/satellitecontractversionattribute.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/satellitecontractversionattribute.cs
@@ -7,7 +7,7 @@
**
** Class: SatelliteContractVersionAttribute
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Specifies which version of a satellite assembly
diff --git a/mcs/class/referencesource/mscorlib/system/resources/ultimateresourcefallbacklocation.cs b/mcs/class/referencesource/mscorlib/system/resources/ultimateresourcefallbacklocation.cs
index 052e0f35ede..1a23b2a5f18 100644
--- a/mcs/class/referencesource/mscorlib/system/resources/ultimateresourcefallbacklocation.cs
+++ b/mcs/class/referencesource/mscorlib/system/resources/ultimateresourcefallbacklocation.cs
@@ -7,9 +7,9 @@
**
** Enum: UltimateResourceFallbackLocation
**
-** <OWNER>[....]</OWNER>
+** <OWNER>kimhamil</OWNER>
**
-** <EMAIL>Author: Brian Grunkemeyer ([....])</EMAIL>
+** <EMAIL>Author: Brian Grunkemeyer (BrianGru)</EMAIL>
**
** Purpose: Tells the ResourceManager where to find the
** ultimate fallback resources for your assembly.
diff --git a/mcs/class/referencesource/mscorlib/system/rttype.cs b/mcs/class/referencesource/mscorlib/system/rttype.cs
index 1ee19359158..fe4829ee60c 100644
--- a/mcs/class/referencesource/mscorlib/system/rttype.cs
+++ b/mcs/class/referencesource/mscorlib/system/rttype.cs
@@ -6,7 +6,7 @@
//
// File: RtType.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Implements System.RuntimeType
//
@@ -45,7 +45,6 @@ using MdToken = System.Reflection.MetadataToken;
#endif
using System.Runtime.Versioning;
using System.Diagnostics.Contracts;
-using System.Diagnostics.Tracing;
#if MONO
using CustomAttribute=System.MonoCustomAttrs;
@@ -59,7 +58,7 @@ namespace System
internal delegate void CtorDelegate(Object instance);
- // Keep this in [....] with FormatFlags defined in typestring.h
+ // Keep this in sync with FormatFlags defined in typestring.h
internal enum TypeNameFormatFlags
{
FormatBasic = 0x00000000, // Not a bitmask, simply the tersest flag settings possible
@@ -92,13 +91,8 @@ namespace System
}
[Serializable]
- internal partial class RuntimeType :
-#if !FEATURE_CORECLR || FEATURE_NETCORE
- System.Reflection.TypeInfo,
-#else
- System.Type,
-#endif
- ISerializable, ICloneable
+ internal partial class RuntimeType :
+ System.Reflection.TypeInfo, ISerializable, ICloneable
{
#region Definitions
@@ -214,12 +208,6 @@ namespace System
private const int MAXNAMELEN = 1024;
#region Definitions
- internal enum WhatsCached
- {
- Nothing = 0x0,
- EnclosingType = 0x1,
- }
-
internal enum CacheType
{
Method,
@@ -540,7 +528,7 @@ namespace System
#if !FEATURE_LEGACYNETCF
else
#endif
- list = m_allMembers;
+ list = m_allMembers;
break;
default:
@@ -609,8 +597,8 @@ namespace System
// Grow the list by exactly one element in this case to avoid null entries at the end.
//
- // DevDiv #339308 is fixed, but we are keeping this code here for Dev11 in case there are other instances of this bug.
- // Remove for Dev12.
+ // DevDiv #339308 is fixed, but we are keeping this code here for Dev11 in case there are other instances of this
+
Contract.Assert(false);
@@ -1586,7 +1574,6 @@ namespace System
#endregion
#region Private Data Members
- private WhatsCached m_whatsCached;
private RuntimeType m_runtimeType;
private RuntimeType m_enclosingType;
private TypeCode m_typeCode;
@@ -1610,6 +1597,7 @@ namespace System
private RuntimeConstructorInfo m_serializationCtor;
#endif
private string m_defaultMemberName;
+ private Object m_genericCache; // Generic cache for rare scenario specific data. It is used to cache Enum names and values.
#endregion
#region Constructor
@@ -1675,6 +1663,13 @@ namespace System
#endregion
#region Internal Members
+
+ internal Object GenericCache
+ {
+ get { return m_genericCache; }
+ set { m_genericCache = value; }
+ }
+
internal bool DomainInitialized
{
get { return m_bIsDomainInitialized; }
@@ -1744,14 +1739,15 @@ namespace System
[System.Security.SecuritySafeCritical] // auto-generated
internal unsafe RuntimeType GetEnclosingType()
{
- if ((m_whatsCached & WhatsCached.EnclosingType) == 0)
+ if (m_enclosingType == null)
{
- m_enclosingType = RuntimeTypeHandle.GetDeclaringType(GetRuntimeType());
-
- m_whatsCached |= WhatsCached.EnclosingType;
+ // Use void as a marker of null enclosing type
+ RuntimeType enclosingType = RuntimeTypeHandle.GetDeclaringType(GetRuntimeType());
+ Contract.Assert(enclosingType != typeof(void));
+ m_enclosingType = enclosingType ?? (RuntimeType)typeof(void);
}
- return m_enclosingType;
+ return (m_enclosingType == typeof(void)) ? null : m_enclosingType;
}
internal RuntimeType GetRuntimeType()
@@ -2144,6 +2140,12 @@ namespace System
return retval;
}
+ internal Object GenericCache
+ {
+ get { return Cache.GenericCache; }
+ set { Cache.GenericCache = value; }
+ }
+
internal bool DomainInitialized
{
get { return Cache.DomainInitialized; }
@@ -2387,7 +2389,7 @@ namespace System
if (ignoreCase)
{
- if (!memberInfo.Name.ToLower(CultureInfo.InvariantCulture).StartsWith(name, StringComparison.Ordinal))
+ if (!memberInfo.Name.StartsWith(name, StringComparison.OrdinalIgnoreCase))
return false;
}
else
@@ -2657,9 +2659,6 @@ namespace System
#if !MONO
private object m_keepalive; // This will be filled with a LoaderAllocator reference when this RuntimeType represents a collectible type
private IntPtr m_cache;
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
internal IntPtr m_handle;
#endif
#if FEATURE_APPX
@@ -3575,9 +3574,6 @@ namespace System
}
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal RuntimeModule GetRuntimeModule()
{
return RuntimeTypeHandle.GetModule(this);
@@ -3591,9 +3587,6 @@ namespace System
}
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal RuntimeAssembly GetRuntimeAssembly()
{
return RuntimeTypeHandle.GetAssembly(this);
@@ -3608,9 +3601,6 @@ namespace System
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal sealed override RuntimeTypeHandle GetTypeHandleInternal()
{
return new RuntimeTypeHandle(this);
@@ -3705,9 +3695,6 @@ namespace System
#region Hierarchy
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override bool IsInstanceOfType(Object o)
{
return RuntimeTypeHandle.IsInstanceOfType(this, o);
@@ -3742,12 +3729,12 @@ namespace System
return false;
}
-#if !FEATURE_CORECLR || FEATURE_NETCORE
+
public override bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo){
if(typeInfo==null) return false;
return IsAssignableFrom(typeInfo.AsType());
}
-#endif
+
public override bool IsAssignableFrom(Type c)
{
if ((object)c == null)
@@ -3863,9 +3850,6 @@ namespace System
public override Type UnderlyingSystemType
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
return this;
@@ -3876,17 +3860,8 @@ namespace System
#region Name
public override String FullName
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.TypeFullName(GetFullNameForEtw());
- }
-#endif
return GetCachedName(TypeNameKind.FullName);
}
}
@@ -3895,44 +3870,20 @@ namespace System
{
get
{
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginTypeAssemblyQualifiedName(GetFullNameForEtw());
- }
-#endif
string fullname = FullName;
// FullName is null if this type contains generic parameters but is not a generic type definition.
if (fullname == null)
return null;
-
- String qualifiedName = Assembly.CreateQualifiedName(this.Assembly.FullName, fullname);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndTypeAssemblyQualifiedName(GetFullNameForEtw());
- }
-#endif
- return qualifiedName;
+ return Assembly.CreateQualifiedName(this.Assembly.FullName, fullname);
}
}
public override String Namespace
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.TypeNamespace(GetFullNameForEtw());
- }
-#endif
-
string ns = Cache.GetNameSpace();
if (ns == null || ns.Length == 0)
@@ -3945,9 +3896,6 @@ namespace System
#endif
#region Attributes
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
protected override TypeAttributes GetAttributeFlagsImpl()
{
return RuntimeTypeHandle.GetAttributes(this);
@@ -3982,9 +3930,6 @@ namespace System
}
*/
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
protected override bool IsByRefImpl()
{
return RuntimeTypeHandle.IsByRef(this);
@@ -4001,9 +3946,6 @@ namespace System
}
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
protected override bool IsCOMObjectImpl()
{
return RuntimeTypeHandle.IsComObject(this, false);
@@ -4043,9 +3985,6 @@ namespace System
return GetBaseType() == typeof(System.MulticastDelegate);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
protected override bool IsValueTypeImpl()
{
// We need to return true for generic parameters with the ValueType constraint.
@@ -4060,7 +3999,6 @@ namespace System
#if !FEATURE_CORECLR
public override bool IsEnum
{
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get
{
return GetBaseType() == RuntimeType.EnumType;
@@ -4068,9 +4006,6 @@ namespace System
}
#endif
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
protected override bool HasElementTypeImpl()
{
return RuntimeTypeHandle.HasElementType(this);
@@ -4099,23 +4034,14 @@ namespace System
#if !MONO
public override bool IsSecurityCritical
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return new RuntimeTypeHandle(this).IsSecurityCritical(); }
}
public override bool IsSecuritySafeCritical
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return new RuntimeTypeHandle(this).IsSecuritySafeCritical(); }
}
public override bool IsSecurityTransparent
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return new RuntimeTypeHandle(this).IsSecurityTransparent(); }
}
#endif
@@ -4130,9 +4056,6 @@ namespace System
}
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
protected override bool IsArrayImpl()
{
return RuntimeTypeHandle.IsArray(this);
@@ -4147,9 +4070,6 @@ namespace System
return RuntimeTypeHandle.GetArrayRank(this);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override Type GetElementType()
{
return RuntimeTypeHandle.GetElementType(this);
@@ -4368,17 +4288,11 @@ namespace System
public override bool IsGenericTypeDefinition
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return RuntimeTypeHandle.IsGenericTypeDefinition(this); }
}
public override bool IsGenericParameter
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return RuntimeTypeHandle.IsGenericVariable(this); }
}
@@ -4397,9 +4311,6 @@ namespace System
}
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override Type GetGenericTypeDefinition()
{
if (!IsGenericType)
@@ -4411,9 +4322,6 @@ namespace System
public override bool IsGenericType
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return RuntimeTypeHandle.HasInstantiation(this); }
}
@@ -4424,9 +4332,6 @@ namespace System
#if !MONO
public override bool ContainsGenericParameters
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return GetRootElementType().GetTypeHandleInternal().ContainsGenericVariables(); }
}
@@ -5116,9 +5021,6 @@ namespace System
#endregion
#region Object Overrides
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[Pure]
public override bool Equals(object obj)
{
@@ -5126,9 +5028,6 @@ namespace System
return obj == (object)this;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override int GetHashCode()
{
return RuntimeHelpers.GetHashCode(this);
@@ -5219,42 +5118,12 @@ namespace System
#if !MONO
public override String Name
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.TypeName(GetFullNameForEtw());
- }
-#endif
return GetCachedName(TypeNameKind.Name);
}
}
- internal override string GetFullNameForEtw()
- {
- string fullName = "";
-
- if (IsCOMObject)
- {
- fullName = "Guid:" + this.GUID.ToString() + ", ";
- }
-
- string fullname = GetCachedName(TypeNameKind.FullName);
- string assemblyFullName = this.Assembly.GetFullNameForEtw();
-
- // FullName is null if this type contains generic parameters but is not a generic type definition.
- if (fullname == null || assemblyFullName == null)
- return fullName;
-
- fullName += Assembly.CreateQualifiedName(assemblyFullName, fullname);
-
- return fullName;
- }
-#endif
// This is used by the ToString() overrides of all reflection types. The legacy behavior has the following problems:
// 1. Use only Name for nested types, which can be confused with global types and generic parameters of the same name.
// 2. Use only Name for generic parameters, which can be confused with nested types and global types of the same name.
@@ -5292,6 +5161,7 @@ namespace System
return typeName;
}
}
+
#if !MONO
private string GetCachedName(TypeNameKind kind)
{
@@ -5311,9 +5181,6 @@ namespace System
#if !MONO
public override Type DeclaringType
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
return Cache.GetEnclosingType();
@@ -5331,9 +5198,6 @@ namespace System
public override int MetadataToken
{
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
return RuntimeTypeHandle.GetToken(this);
@@ -5987,7 +5851,7 @@ namespace System
[Flags]
private enum DispatchWrapperType : int
{
- // This enum must stay in [....] with the DispatchWrapperType enum defined in MLInfo.h
+ // This enum must stay in sync with the DispatchWrapperType enum defined in MLInfo.h
Unknown = 0x00000001,
Dispatch = 0x00000002,
Record = 0x00000004,
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/NgenServicingAttributes.cs b/mcs/class/referencesource/mscorlib/system/runtime/NgenServicingAttributes.cs
index a71ff9b3e27..b25d11353ff 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/NgenServicingAttributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/NgenServicingAttributes.cs
@@ -18,12 +18,7 @@ namespace System.Runtime
}
}
-// This attribute seems particularly prone to accidental inclusion in bcl.small
-// We would only want to do so intentionally (if targeted patching were enabled there)
-#if !FEATURE_CORECLR
-
//============================================================================================================
- // [TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")] -
// Sacrifices cheap servicing of a method body in order to allow unrestricted inlining. Certain types of
// trivial methods (e.g. simple property getters) are automatically attributed by ILCA.EXE during the build.
// For other performance critical methods, it should be added manually.
@@ -46,21 +41,4 @@ namespace System.Runtime
private TargetedPatchingOptOutAttribute() { }
}
-
-#endif
-
- //============================================================================================================
- // [ForceTokenStabilization] - Using this CA forces ILCA.EXE to stabilize the attached type, method or field.
- // We use this to identify private helper methods invoked by IL stubs.
- //
- // NOTE: Attaching this to a type is NOT equivalent to attaching it to all of its methods!
- //============================================================================================================
- [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface | AttributeTargets.Delegate |
- AttributeTargets.Method | AttributeTargets.Constructor |
- AttributeTargets.Field
- , AllowMultiple = false, Inherited = false)]
- sealed class ForceTokenStabilizationAttribute : Attribute
- {
- public ForceTokenStabilizationAttribute() { }
- }
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/ProfileOptimization.cs b/mcs/class/referencesource/mscorlib/system/runtime/ProfileOptimization.cs
index c500150a308..09715de0e5f 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/ProfileOptimization.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/ProfileOptimization.cs
@@ -39,7 +39,7 @@ namespace System.Runtime {
[SecurityCritical]
[ResourceExposure(ResourceScope.None)]
[SuppressUnmanagedCodeSecurity]
- internal static extern void InternalStartProfile(string profile);
+ internal static extern void InternalStartProfile(string profile, IntPtr ptrNativeAssemblyLoadContext);
[SecurityCritical]
public static void SetProfileRoot(string directoryPath)
@@ -50,7 +50,7 @@ namespace System.Runtime {
[SecurityCritical]
public static void StartProfile(string profile)
{
- InternalStartProfile(profile);
+ InternalStartProfile(profile, IntPtr.Zero);
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs
index fa6b3d92ca8..b2d762d0cab 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs
@@ -7,7 +7,7 @@
//
// AsyncMethodBuilder.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Compiler-targeted types that build tasks for use as the return types of asynchronous methods.
//
@@ -31,22 +31,15 @@ using System.Runtime.InteropServices.WindowsRuntime;
namespace System.Runtime.CompilerServices
{
- /// <summary>Represents an asynchronous method builder.</summary>
- internal interface IAsyncMethodBuilder
- {
- void PreBoxInitialization<TStateMachine>(ref TStateMachine stateMachine);
- object ObjectIdForDebugger { get; }
- }
-
/// <summary>
/// Provides a builder for asynchronous methods that return void.
/// This type is intended for compiler use only.
/// </summary>
[HostProtection(Synchronization = true, ExternalThreading = true)]
- public struct AsyncVoidMethodBuilder : IAsyncMethodBuilder
+ public struct AsyncVoidMethodBuilder
{
/// <summary>The synchronization context associated with this operation.</summary>
- private readonly SynchronizationContext m_synchronizationContext;
+ private SynchronizationContext m_synchronizationContext;
/// <summary>State related to the IAsyncStateMachine.</summary>
private AsyncMethodBuilderCore m_coreState; // mutable struct: must not be readonly
/// <summary>Task used for debugging and logging purposes only. Lazily initialized.</summary>
@@ -56,31 +49,44 @@ namespace System.Runtime.CompilerServices
/// <returns>The initialized <see cref="AsyncVoidMethodBuilder"/>.</returns>
public static AsyncVoidMethodBuilder Create()
{
- // Capture the current [....] context. If there isn't one, use the dummy s_noContextCaptured
+ // Capture the current sync context. If there isn't one, use the dummy s_noContextCaptured
// instance; this allows us to tell the state of no captured context apart from the state
// of an improperly constructed builder instance.
- return new AsyncVoidMethodBuilder(SynchronizationContext.CurrentNoFlow);
- }
-
- /// <summary>Initializes the <see cref="AsyncVoidMethodBuilder"/>.</summary>
- /// <param name="synchronizationContext">The synchronizationContext associated with this operation. This may be null.</param>
- private AsyncVoidMethodBuilder(SynchronizationContext synchronizationContext)
- {
- m_synchronizationContext = synchronizationContext;
- if (synchronizationContext != null) synchronizationContext.OperationStarted();
-
- m_coreState = default(AsyncMethodBuilderCore);
- m_task = null;
+ SynchronizationContext sc = SynchronizationContext.CurrentNoFlow;
+ if (sc != null)
+ sc.OperationStarted();
+ return new AsyncVoidMethodBuilder() { m_synchronizationContext = sc };
}
/// <summary>Initiates the builder's execution with the associated state machine.</summary>
/// <typeparam name="TStateMachine">Specifies the type of the state machine.</typeparam>
/// <param name="stateMachine">The state machine instance, passed by reference.</param>
/// <exception cref="System.ArgumentNullException">The <paramref name="stateMachine"/> argument was null (Nothing in Visual Basic).</exception>
+ [SecuritySafeCritical]
[DebuggerStepThrough]
public void Start<TStateMachine>(ref TStateMachine stateMachine) where TStateMachine : IAsyncStateMachine
{
- m_coreState.Start(ref stateMachine); // argument validation handled by AsyncMethodBuilderCore
+ // See comment on AsyncMethodBuilderCore.Start
+ // AsyncMethodBuilderCore.Start(ref stateMachine);
+
+ if (stateMachine == null) throw new ArgumentNullException("stateMachine");
+ Contract.EndContractBlock();
+
+ // Run the MoveNext method within a copy-on-write ExecutionContext scope.
+ // This allows us to undo any ExecutionContext changes made in MoveNext,
+ // so that they won't "leak" out of the first await.
+
+ ExecutionContextSwitcher ecs = default(ExecutionContextSwitcher);
+ RuntimeHelpers.PrepareConstrainedRegions();
+ try
+ {
+ ExecutionContext.EstablishCopyOnWriteScope(ref ecs);
+ stateMachine.MoveNext();
+ }
+ finally
+ {
+ ecs.Undo();
+ }
}
/// <summary>Associates the builder with the state machine it represents.</summary>
@@ -92,17 +98,6 @@ namespace System.Runtime.CompilerServices
m_coreState.SetStateMachine(stateMachine); // argument validation handled by AsyncMethodBuilderCore
}
- /// <summary>Perform any initialization necessary prior to lifting the builder to the heap.</summary>
- void IAsyncMethodBuilder.PreBoxInitialization<TStateMachine>(ref TStateMachine stateMachine)
- {
-
-#if !FEATURE_PAL && !FEATURE_CORECLR
- //If logging or tracing is turned on then we have to init the Task
- if (AsyncCausalityTracer.LoggingOn)
- AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, this.Task.Id, "Async: " + stateMachine.GetType().Name, 0);
-#endif
- }
-
/// <summary>
/// Schedules the specified state machine to be pushed forward when the specified awaiter completes.
/// </summary>
@@ -117,8 +112,22 @@ namespace System.Runtime.CompilerServices
{
try
{
- var continuation = m_coreState.GetCompletionAction(ref this, ref stateMachine);
+ AsyncMethodBuilderCore.MoveNextRunner runnerToInitialize = null;
+ var continuation = m_coreState.GetCompletionAction(AsyncCausalityTracer.LoggingOn ? this.Task : null, ref runnerToInitialize);
Contract.Assert(continuation != null, "GetCompletionAction should always return a valid action.");
+
+ // If this is our first await, such that we've not yet boxed the state machine, do so now.
+ if (m_coreState.m_stateMachine == null)
+ {
+ if (AsyncCausalityTracer.LoggingOn)
+ AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, this.Task.Id, "Async: " + stateMachine.GetType().Name, 0);
+
+ // Box the state machine, then tell the boxed instance to call back into its own builder,
+ // so we can cache the boxed reference.
+ Contract.Assert(!Object.ReferenceEquals((object)stateMachine, (object)stateMachine), "Expected an unboxed state machine reference");
+ m_coreState.PostBoxInitialization(stateMachine, runnerToInitialize, null);
+ }
+
awaiter.OnCompleted(continuation);
}
catch (Exception exc)
@@ -149,8 +158,22 @@ namespace System.Runtime.CompilerServices
{
try
{
- var continuation = m_coreState.GetCompletionAction(ref this, ref stateMachine);
+ AsyncMethodBuilderCore.MoveNextRunner runnerToInitialize = null;
+ var continuation = m_coreState.GetCompletionAction(AsyncCausalityTracer.LoggingOn ? this.Task : null, ref runnerToInitialize);
Contract.Assert(continuation != null, "GetCompletionAction should always return a valid action.");
+
+ // If this is our first await, such that we've not yet boxed the state machine, do so now.
+ if (m_coreState.m_stateMachine == null)
+ {
+ if (AsyncCausalityTracer.LoggingOn)
+ AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, this.Task.Id, "Async: " + stateMachine.GetType().Name, 0);
+
+ // Box the state machine, then tell the boxed instance to call back into its own builder,
+ // so we can cache the boxed reference.
+ Contract.Assert(!Object.ReferenceEquals((object)stateMachine, (object)stateMachine), "Expected an unboxed state machine reference");
+ m_coreState.PostBoxInitialization(stateMachine, runnerToInitialize, null);
+ }
+
awaiter.UnsafeOnCompleted(continuation);
}
catch (Exception e)
@@ -162,10 +185,9 @@ namespace System.Runtime.CompilerServices
/// <summary>Completes the method builder successfully.</summary>
public void SetResult()
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, this.Task.Id, AsyncCausalityStatus.Completed);
-#endif
+
if (m_synchronizationContext != null)
{
NotifySynchronizationContextOfCompletion();
@@ -181,10 +203,8 @@ namespace System.Runtime.CompilerServices
if (exception == null) throw new ArgumentNullException("exception");
Contract.EndContractBlock();
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, this.Task.Id, AsyncCausalityStatus.Error);
-#endif
if (m_synchronizationContext != null)
{
@@ -242,13 +262,6 @@ namespace System.Runtime.CompilerServices
/// It must only be used by the debugger and AsyncCausalityTracer in a single-threaded manner.
/// </remarks>
private object ObjectIdForDebugger { get { return this.Task; } }
-
- /// <summary>
- /// This internal property is for logging purposes.
- /// The private property ObjectIdForDebugger is kept for compat reasons
- /// </summary>
- object IAsyncMethodBuilder.ObjectIdForDebugger { get { return this.ObjectIdForDebugger; } }
-
}
/// <summary>
@@ -261,7 +274,7 @@ namespace System.Runtime.CompilerServices
/// or else the copies may end up building distinct Task instances.
/// </remarks>
[HostProtection(Synchronization = true, ExternalThreading = true)]
- public struct AsyncTaskMethodBuilder : IAsyncMethodBuilder
+ public struct AsyncTaskMethodBuilder
{
/// <summary>A cached VoidTaskResult task used for builders that complete synchronously.</summary>
private readonly static Task<VoidTaskResult> s_cachedCompleted = AsyncTaskMethodBuilder<VoidTaskResult>.s_defaultResultTask;
@@ -281,10 +294,31 @@ namespace System.Runtime.CompilerServices
/// <summary>Initiates the builder's execution with the associated state machine.</summary>
/// <typeparam name="TStateMachine">Specifies the type of the state machine.</typeparam>
/// <param name="stateMachine">The state machine instance, passed by reference.</param>
+ [SecuritySafeCritical]
[DebuggerStepThrough]
public void Start<TStateMachine>(ref TStateMachine stateMachine) where TStateMachine : IAsyncStateMachine
{
- m_builder.Start(ref stateMachine); // argument validation handled by AsyncMethodBuilderCore
+ // See comment on AsyncMethodBuilderCore.Start
+ // AsyncMethodBuilderCore.Start(ref stateMachine);
+
+ if (stateMachine == null) throw new ArgumentNullException("stateMachine");
+ Contract.EndContractBlock();
+
+ // Run the MoveNext method within a copy-on-write ExecutionContext scope.
+ // This allows us to undo any ExecutionContext changes made in MoveNext,
+ // so that they won't "leak" out of the first await.
+
+ ExecutionContextSwitcher ecs = default(ExecutionContextSwitcher);
+ RuntimeHelpers.PrepareConstrainedRegions();
+ try
+ {
+ ExecutionContext.EstablishCopyOnWriteScope(ref ecs);
+ stateMachine.MoveNext();
+ }
+ finally
+ {
+ ecs.Undo();
+ }
}
/// <summary>Associates the builder with the state machine it represents.</summary>
@@ -296,25 +330,6 @@ namespace System.Runtime.CompilerServices
m_builder.SetStateMachine(stateMachine); // argument validation handled by AsyncMethodBuilderCore
}
- /// <summary>Perform any initialization necessary prior to lifting the builder to the heap.</summary>
- void IAsyncMethodBuilder.PreBoxInitialization<TStateMachine>(ref TStateMachine stateMachine)
- {
- // Force the Task to be initialized prior to the first suspending await so
- // that the original stack-based builder has a reference to the right Task.
- var builtTask = this.Task;
-
-#if !FEATURE_PAL && !FEATURE_CORECLR
- if (AsyncCausalityTracer.LoggingOn)
- AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, builtTask.Id, "Async: " + stateMachine.GetType().Name, 0);
-
- if (System.Threading.Tasks.Task.s_asyncDebuggingEnabled)
- {
- System.Threading.Tasks.Task.AddToActiveTasks(builtTask);
- }
-#endif
-
- }
-
/// <summary>
/// Schedules the specified state machine to be pushed forward when the specified awaiter completes.
/// </summary>
@@ -394,13 +409,6 @@ namespace System.Runtime.CompilerServices
/// when no other threads are in the middle of accessing this property or this.Task.
/// </remarks>
private object ObjectIdForDebugger { get { return this.Task; } }
-
- /// <summary>
- /// This internal property is for logging purposes.
- /// The private property ObjectIdForDebugger is kept for compat reasons
- /// </summary>
- object IAsyncMethodBuilder.ObjectIdForDebugger { get { return this.ObjectIdForDebugger; } }
-
}
/// <summary>
@@ -413,7 +421,7 @@ namespace System.Runtime.CompilerServices
/// or else the copies may end up building distinct Task instances.
/// </remarks>
[HostProtection(Synchronization = true, ExternalThreading = true)]
- public struct AsyncTaskMethodBuilder<TResult> : IAsyncMethodBuilder
+ public struct AsyncTaskMethodBuilder<TResult>
{
/// <summary>A cached task for default(TResult).</summary>
internal readonly static Task<TResult> s_defaultResultTask = AsyncTaskCache.CreateCacheableTask(default(TResult));
@@ -441,10 +449,31 @@ namespace System.Runtime.CompilerServices
/// <summary>Initiates the builder's execution with the associated state machine.</summary>
/// <typeparam name="TStateMachine">Specifies the type of the state machine.</typeparam>
/// <param name="stateMachine">The state machine instance, passed by reference.</param>
+ [SecuritySafeCritical]
[DebuggerStepThrough]
public void Start<TStateMachine>(ref TStateMachine stateMachine) where TStateMachine : IAsyncStateMachine
{
- m_coreState.Start(ref stateMachine); // argument validation handled by AsyncMethodBuilderCore
+ // See comment on AsyncMethodBuilderCore.Start
+ // AsyncMethodBuilderCore.Start(ref stateMachine);
+
+ if (stateMachine == null) throw new ArgumentNullException("stateMachine");
+ Contract.EndContractBlock();
+
+ // Run the MoveNext method within a copy-on-write ExecutionContext scope.
+ // This allows us to undo any ExecutionContext changes made in MoveNext,
+ // so that they won't "leak" out of the first await.
+
+ ExecutionContextSwitcher ecs = default(ExecutionContextSwitcher);
+ RuntimeHelpers.PrepareConstrainedRegions();
+ try
+ {
+ ExecutionContext.EstablishCopyOnWriteScope(ref ecs);
+ stateMachine.MoveNext();
+ }
+ finally
+ {
+ ecs.Undo();
+ }
}
/// <summary>Associates the builder with the state machine it represents.</summary>
@@ -456,24 +485,6 @@ namespace System.Runtime.CompilerServices
m_coreState.SetStateMachine(stateMachine); // argument validation handled by AsyncMethodBuilderCore
}
- /// <summary>Perform any initialization necessary prior to lifting the builder to the heap.</summary>
- void IAsyncMethodBuilder.PreBoxInitialization<TStateMachine>(ref TStateMachine stateMachine)
- {
- // Force the Task to be initialized prior to the first suspending await so
- // that the original stack-based builder has a reference to the right Task.
- var builtTask = this.Task;
-
-#if !FEATURE_PAL && !FEATURE_CORECLR
- if (AsyncCausalityTracer.LoggingOn)
- AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, builtTask.Id, "Async: " + stateMachine.GetType().Name, 0);
-
- if (System.Threading.Tasks.Task.s_asyncDebuggingEnabled)
- {
- System.Threading.Tasks.Task.AddToActiveTasks(builtTask);
- }
-#endif
- }
-
/// <summary>
/// Schedules the specified state machine to be pushed forward when the specified awaiter completes.
/// </summary>
@@ -488,8 +499,23 @@ namespace System.Runtime.CompilerServices
{
try
{
- var continuation = m_coreState.GetCompletionAction(ref this, ref stateMachine);
+ AsyncMethodBuilderCore.MoveNextRunner runnerToInitialize = null;
+ var continuation = m_coreState.GetCompletionAction(AsyncCausalityTracer.LoggingOn ? this.Task : null, ref runnerToInitialize);
Contract.Assert(continuation != null, "GetCompletionAction should always return a valid action.");
+
+ // If this is our first await, such that we've not yet boxed the state machine, do so now.
+ if (m_coreState.m_stateMachine == null)
+ {
+ // Force the Task to be initialized prior to the first suspending await so
+ // that the original stack-based builder has a reference to the right Task.
+ var builtTask = this.Task;
+
+ // Box the state machine, then tell the boxed instance to call back into its own builder,
+ // so we can cache the boxed reference.
+ Contract.Assert(!Object.ReferenceEquals((object)stateMachine, (object)stateMachine), "Expected an unboxed state machine reference");
+ m_coreState.PostBoxInitialization(stateMachine, runnerToInitialize, builtTask);
+ }
+
awaiter.OnCompleted(continuation);
}
catch (Exception e)
@@ -513,8 +539,23 @@ namespace System.Runtime.CompilerServices
{
try
{
- var continuation = m_coreState.GetCompletionAction(ref this, ref stateMachine);
+ AsyncMethodBuilderCore.MoveNextRunner runnerToInitialize = null;
+ var continuation = m_coreState.GetCompletionAction(AsyncCausalityTracer.LoggingOn ? this.Task : null, ref runnerToInitialize);
Contract.Assert(continuation != null, "GetCompletionAction should always return a valid action.");
+
+ // If this is our first await, such that we've not yet boxed the state machine, do so now.
+ if (m_coreState.m_stateMachine == null)
+ {
+ // Force the Task to be initialized prior to the first suspending await so
+ // that the original stack-based builder has a reference to the right Task.
+ var builtTask = this.Task;
+
+ // Box the state machine, then tell the boxed instance to call back into its own builder,
+ // so we can cache the boxed reference.
+ Contract.Assert(!Object.ReferenceEquals((object)stateMachine, (object)stateMachine), "Expected an unboxed state machine reference");
+ m_coreState.PostBoxInitialization(stateMachine, runnerToInitialize, builtTask);
+ }
+
awaiter.UnsafeOnCompleted(continuation);
}
catch (Exception e)
@@ -555,7 +596,6 @@ namespace System.Runtime.CompilerServices
// Slow path: complete the existing task.
else
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, task.Id, AsyncCausalityStatus.Completed);
@@ -564,7 +604,7 @@ namespace System.Runtime.CompilerServices
{
System.Threading.Tasks.Task.RemoveFromActiveTasks(task.Id);
}
-#endif
+
if (!task.TrySetResult(result))
{
throw new InvalidOperationException(Environment.GetResourceString("TaskT_TransitionToFinal_AlreadyCompleted"));
@@ -664,12 +704,6 @@ namespace System.Runtime.CompilerServices
private object ObjectIdForDebugger { get { return this.Task; } }
/// <summary>
- /// This internal property is for logging purposes.
- /// The private property ObjectIdForDebugger is kept for compat reasons
- /// </summary>
- object IAsyncMethodBuilder.ObjectIdForDebugger { get { return this.ObjectIdForDebugger; } }
-
- /// <summary>
/// Gets a task for the specified result. This will either
/// be a cached or new task, never null.
/// </summary>
@@ -809,13 +843,17 @@ namespace System.Runtime.CompilerServices
/// <summary>A cached Action delegate used when dealing with a default ExecutionContext.</summary>
internal Action m_defaultContextAction;
+ // This method is copy&pasted into the public Start methods to avoid size overhead of valuetype generic instantiations.
+ // Ideally, we would build intrinsics to get the raw ref address and raw code address of MoveNext, and just use the shared implementation.
+#if false
/// <summary>Initiates the builder's execution with the associated state machine.</summary>
/// <typeparam name="TStateMachine">Specifies the type of the state machine.</typeparam>
/// <param name="stateMachine">The state machine instance, passed by reference.</param>
/// <exception cref="System.ArgumentNullException">The <paramref name="stateMachine"/> argument is null (Nothing in Visual Basic).</exception>
[SecuritySafeCritical]
[DebuggerStepThrough]
- internal void Start<TStateMachine>(ref TStateMachine stateMachine) where TStateMachine : IAsyncStateMachine
+ internal static void Start<TStateMachine>(ref TStateMachine stateMachine)
+ where TStateMachine : IAsyncStateMachine
{
if (stateMachine == null) throw new ArgumentNullException("stateMachine");
Contract.EndContractBlock();
@@ -829,14 +867,15 @@ namespace System.Runtime.CompilerServices
RuntimeHelpers.PrepareConstrainedRegions();
try
{
- ExecutionContext.EstablishCopyOnWriteScope(currentThread, false, ref ecs);
+ ExecutionContext.EstablishCopyOnWriteScope(ref ecs);
stateMachine.MoveNext();
}
finally
{
- ecs.Undo(currentThread);
+ ecs.Undo();
}
}
+#endif
/// <summary>Associates the builder with the state machine it represents.</summary>
/// <param name="stateMachine">The heap-allocated state machine object.</param>
@@ -860,13 +899,8 @@ namespace System.Runtime.CompilerServices
/// <param name="stateMachine">The state machine.</param>
/// <returns>An Action to provide to the awaiter.</returns>
[SecuritySafeCritical]
- internal Action GetCompletionAction<TMethodBuilder, TStateMachine>(
- ref TMethodBuilder builder, ref TStateMachine stateMachine)
- where TMethodBuilder : IAsyncMethodBuilder
- where TStateMachine : IAsyncStateMachine
+ internal Action GetCompletionAction(Task taskForTracing, ref MoveNextRunner runnerToInitialize)
{
- Contract.Requires(builder != null, "Expected valid builder");
- Contract.Requires(stateMachine != null, "Expected valid state machine reference");
Contract.Assert(m_defaultContextAction == null || m_stateMachine != null,
"Expected non-null m_stateMachine on non-null m_defaultContextAction");
@@ -896,16 +930,14 @@ namespace System.Runtime.CompilerServices
// There wasn't a cached delegate, so create one and cache it.
// The delegate won't be usable until we set the MoveNextRunner's target state machine.
- runner = new MoveNextRunner(capturedContext);
+ runner = new MoveNextRunner(capturedContext, m_stateMachine);
action = new Action(runner.Run);
-#if !FEATURE_PAL && !FEATURE_CORECLR
- if (AsyncCausalityTracer.LoggingOn)
+ if (taskForTracing != null)
{
- m_defaultContextAction = action = OutputAsyncCausalityEvents(ref builder, action);
+ m_defaultContextAction = action = OutputAsyncCausalityEvents(taskForTracing, action);
}
else
-#endif
{
m_defaultContextAction = action;
}
@@ -914,67 +946,59 @@ namespace System.Runtime.CompilerServices
// The delegate won't be usable until we set the MoveNextRunner's target state machine.
else
{
- runner = new MoveNextRunner(capturedContext);
+ runner = new MoveNextRunner(capturedContext, m_stateMachine);
action = new Action(runner.Run);
-#if !FEATURE_PAL && !FEATURE_CORECLR
- if (AsyncCausalityTracer.LoggingOn)
+
+ if (taskForTracing != null)
{
- action = OutputAsyncCausalityEvents(ref builder, action);
+ action = OutputAsyncCausalityEvents(taskForTracing, action);
}
-#endif
// NOTE: If capturedContext is null, we could create the Action to point directly
// to m_stateMachine.MoveNext. However, that follows a much more expensive
// delegate creation path.
}
- // If this is our first await, such that we've not yet boxed the state machine, do so now.
if (m_stateMachine == null)
- {
- // This is our first await, and we're not boxed yet. First perform any work that
- // must affect both the non-boxed and boxed builders.
- builder.PreBoxInitialization(ref stateMachine);
-
- // Box the state machine, then tell the boxed instance to call back into its own builder,
- // so we can cache the boxed reference.
- Contract.Assert(!Object.ReferenceEquals((object)stateMachine, (object)stateMachine), "Expected an unboxed state machine reference");
- m_stateMachine = (IAsyncStateMachine)stateMachine;
- m_stateMachine.SetStateMachine(m_stateMachine);
- }
+ runnerToInitialize = runner;
- Contract.Assert(runner.m_stateMachine == null, "The runner's state machine should not yet have been populated.");
- Contract.Assert(m_stateMachine != null, "The builder's state machine field should have been initialized.");
+ return action;
+ }
- // Now that we have the state machine, store it into the runner that the action delegate points to.
- // And return the action.
- runner.m_stateMachine = m_stateMachine; // only after this line is the Action delegate usable
+ private Action OutputAsyncCausalityEvents(Task innerTask, Action continuation)
+ {
+ return CreateContinuationWrapper(continuation, () =>
+ {
+ AsyncCausalityTracer.TraceSynchronousWorkStart(CausalityTraceLevel.Required, innerTask.Id, CausalitySynchronousWork.Execution);
- return action;
+ // Invoke the original continuation
+ continuation.Invoke();
+
+ AsyncCausalityTracer.TraceSynchronousWorkCompletion(CausalityTraceLevel.Required, CausalitySynchronousWork.Execution);
+ }, innerTask);
}
-#if !FEATURE_PAL && !FEATURE_CORECLR
- private Action OutputAsyncCausalityEvents<TBuilder>(ref TBuilder builder, Action continuation)
- where TBuilder : IAsyncMethodBuilder
+ internal void PostBoxInitialization(IAsyncStateMachine stateMachine, MoveNextRunner runner, Task builtTask)
{
- Task innerTask = builder.ObjectIdForDebugger as Task;
- if (innerTask == null)
+ if (builtTask != null)
{
- return continuation;
+ if (AsyncCausalityTracer.LoggingOn)
+ AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, builtTask.Id, "Async: " + stateMachine.GetType().Name, 0);
+
+ if (System.Threading.Tasks.Task.s_asyncDebuggingEnabled)
+ System.Threading.Tasks.Task.AddToActiveTasks(builtTask);
}
- else
- {
- return CreateContinuationWrapper(continuation, () =>
- {
- AsyncCausalityTracer.TraceSynchronousWorkStart(CausalityTraceLevel.Required, innerTask.Id, CausalitySynchronousWork.Execution);
- // Invoke the original continuation
- continuation.Invoke();
+ m_stateMachine = stateMachine;
+ m_stateMachine.SetStateMachine(m_stateMachine);
- AsyncCausalityTracer.TraceSynchronousWorkCompletion(CausalityTraceLevel.Required, CausalitySynchronousWork.Execution);
- });
- }
+ Contract.Assert(runner.m_stateMachine == null, "The runner's state machine should not yet have been populated.");
+ Contract.Assert(m_stateMachine != null, "The builder's state machine field should have been initialized.");
+
+ // Now that we have the state machine, store it into the runner that the action delegate points to.
+ // And return the action.
+ runner.m_stateMachine = m_stateMachine; // only after this line is the Action delegate usable
}
-#endif
/// <summary>Throws the exception on the ThreadPool.</summary>
/// <param name="exception">The exception to propagate.</param>
@@ -1012,7 +1036,7 @@ namespace System.Runtime.CompilerServices
}
/// <summary>Provides the ability to invoke a state machine's MoveNext method under a supplied ExecutionContext.</summary>
- private sealed class MoveNextRunner
+ internal sealed class MoveNextRunner
{
/// <summary>The context with which to run MoveNext.</summary>
private readonly ExecutionContext m_context;
@@ -1022,9 +1046,10 @@ namespace System.Runtime.CompilerServices
/// <summary>Initializes the runner.</summary>
/// <param name="context">The context with which to run MoveNext.</param>
[SecurityCritical] // Run needs to be SSC to map to Action delegate, so to prevent misuse, we only allow construction through SC
- internal MoveNextRunner(ExecutionContext context)
+ internal MoveNextRunner(ExecutionContext context, IAsyncStateMachine stateMachine)
{
m_context = context;
+ m_stateMachine = stateMachine;
}
/// <summary>Invokes MoveNext under the provided context.</summary>
@@ -1065,17 +1090,30 @@ namespace System.Runtime.CompilerServices
}
}
-#if !FEATURE_PAL && !FEATURE_CORECLR
+ /// <summary>
+ /// Logically we pass just an Action (delegate) to a task for its action to 'ContinueWith' when it completes.
+ /// However debuggers and profilers need more information about what that action is. (In particular what
+ /// the action after that is and after that. To solve this problem we create a 'ContinuationWrapper
+ /// which when invoked just does the original action (the invoke action), but also remembers other information
+ /// (like the action after that (which is also a ContinuationWrapper and thus form a linked list).
+ // We also store that task if the action is associate with at task.
+ /// </summary>
private class ContinuationWrapper
{
- internal readonly Action m_continuation;
- private readonly Action m_invokeAction;
+ internal readonly Action m_continuation; // This is continuation which will happen after m_invokeAction (and is probably a ContinuationWrapper)
+ private readonly Action m_invokeAction; // This wrapper is an action that wraps another action, this is that Action.
+ internal readonly Task m_innerTask; // If the continuation is logically going to invoke a task, this is that task (may be null)
- internal ContinuationWrapper(Action continuation, Action invokeAction)
+ internal ContinuationWrapper(Action continuation, Action invokeAction, Task innerTask)
{
Contract.Requires(continuation != null, "Expected non-null continuation");
+ // If we don't have a task, see if our continuation is a wrapper and use that.
+ if (innerTask == null)
+ innerTask = TryGetContinuationTask(continuation);
+
m_continuation = continuation;
+ m_innerTask = innerTask;
m_invokeAction = invokeAction;
}
@@ -1085,11 +1123,10 @@ namespace System.Runtime.CompilerServices
}
}
- internal static Action CreateContinuationWrapper(Action continuation, Action invokeAction)
+ internal static Action CreateContinuationWrapper(Action continuation, Action invokeAction, Task innerTask = null)
{
- return new ContinuationWrapper(continuation, invokeAction).Invoke;
+ return new ContinuationWrapper(continuation, invokeAction, innerTask).Invoke;
}
-#endif
internal static Action TryGetStateMachineForDebugger(Action action)
{
@@ -1100,15 +1137,27 @@ namespace System.Runtime.CompilerServices
return new Action(runner.m_stateMachine.MoveNext);
}
-#if !FEATURE_PAL && !FEATURE_CORECLR
var continuationWrapper = target as ContinuationWrapper;
if (continuationWrapper != null)
{
return TryGetStateMachineForDebugger(continuationWrapper.m_continuation);
}
-#endif
return action;
}
+
+ ///<summary>
+ /// Given an action, see if it is a contiunation wrapper and has a Task associated with it. If so return it (null otherwise)
+ ///</summary>
+ internal static Task TryGetContinuationTask(Action action)
+ {
+ if (action != null)
+ {
+ var asWrapper = action.Target as ContinuationWrapper;
+ if (asWrapper != null)
+ return asWrapper.m_innerTask;
+ }
+ return null;
+ }
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/ConditionalWeakTable.cs b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/ConditionalWeakTable.cs
index bae239feaad..2f7814328d4 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/ConditionalWeakTable.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/ConditionalWeakTable.cs
@@ -6,7 +6,7 @@
/*============================================================
** Class: ConditionalWeakTable
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Description: Compiler support for runtime-generated "object fields."
**
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/FormattableStringFactory.cs b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/FormattableStringFactory.cs
new file mode 100644
index 00000000000..76582b6281b
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/FormattableStringFactory.cs
@@ -0,0 +1,59 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+/*============================================================
+**
+** Class: FormattableStringFactory
+**
+**
+** Purpose: implementation of the FormattableStringFactory
+** class.
+**
+===========================================================*/
+namespace System.Runtime.CompilerServices
+{
+ /// <summary>
+ /// A factory type used by compilers to create instances of the type <see cref="FormattableString"/>.
+ /// </summary>
+ public static class FormattableStringFactory
+ {
+ /// <summary>
+ /// Create a <see cref="FormattableString"/> from a composite format string and object
+ /// array containing zero or more objects to format.
+ /// </summary>
+ public static FormattableString Create(string format, params object[] arguments)
+ {
+ if (format == null)
+ {
+ throw new ArgumentNullException("format");
+ }
+
+ if (arguments == null)
+ {
+ throw new ArgumentNullException("arguments");
+ }
+
+ return new ConcreteFormattableString(format, arguments);
+ }
+
+ private sealed class ConcreteFormattableString : FormattableString
+ {
+ private readonly string _format;
+ private readonly object[] _arguments;
+
+ internal ConcreteFormattableString(string format, object[] arguments)
+ {
+ _format = format;
+ _arguments = arguments;
+ }
+
+ public override string Format { get { return _format; } }
+ public override object[] GetArguments() { return _arguments; }
+ public override int ArgumentCount { get { return _arguments.Length; } }
+ public override object GetArgument(int index) { return _arguments[index]; }
+ public override string ToString(IFormatProvider formatProvider) { return string.Format(formatProvider, _format, _arguments); }
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/IAsyncStateMachine.cs b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/IAsyncStateMachine.cs
index e219492ea4d..9d84897a80f 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/IAsyncStateMachine.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/IAsyncStateMachine.cs
@@ -7,7 +7,7 @@
//
// IAsyncStateMachine.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>stoub</OWNER>
//
// Represents state machines generated for asynchronous methods.
//
@@ -27,4 +27,4 @@ namespace System.Runtime.CompilerServices
/// <param name="stateMachine">The heap-allocated replica.</param>
void SetStateMachine(IAsyncStateMachine stateMachine);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/INotifyCompletion.cs b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/INotifyCompletion.cs
index 40e0c92d5e5..14714419e26 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/INotifyCompletion.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/INotifyCompletion.cs
@@ -7,7 +7,7 @@
//
// INotifyCompletion.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>stoub</OWNER>
//
// Interfaces used to represent instances that notify listeners of their completion via continuations.
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
@@ -40,4 +40,4 @@ namespace System.Runtime.CompilerServices
[SecurityCritical]
void UnsafeOnCompleted(Action continuation);
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs
index 59f81f06c8b..ec1f77d9180 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs
@@ -1,4 +1,4 @@
-// ==++==
+// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
@@ -7,7 +7,7 @@
//
// TaskAwaiter.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Types for awaiting Task and Task<T>. These types are emitted from Task{<T>}.GetAwaiter
// and Task{<T>}.ConfigureAwait. They are meant to be used only by the compiler, e.g.
@@ -48,9 +48,7 @@ using System.Security;
using System.Threading;
using System.Threading.Tasks;
using System.Security.Permissions;
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL doesn't support eventing
using System.Diagnostics.Tracing;
-#endif
// NOTE: For performance reasons, initialization is not verified. If a developer
// incorrectly initializes a task awaiter, which should only be done by the compiler,
@@ -70,9 +68,6 @@ namespace System.Runtime.CompilerServices
/// <summary>Initializes the <see cref="TaskAwaiter"/>.</summary>
/// <param name="task">The <see cref="System.Threading.Tasks.Task"/> to be awaited.</param>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal TaskAwaiter(Task task)
{
Contract.Requires(task != null, "Constructing an awaiter requires a task to await.");
@@ -84,9 +79,6 @@ namespace System.Runtime.CompilerServices
/// <exception cref="System.NullReferenceException">The awaiter was not properly initialized.</exception>
public bool IsCompleted
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return m_task.IsCompleted; }
}
@@ -116,9 +108,6 @@ namespace System.Runtime.CompilerServices
/// <exception cref="System.NullReferenceException">The awaiter was not properly initialized.</exception>
/// <exception cref="System.Threading.Tasks.TaskCanceledException">The task was canceled.</exception>
/// <exception cref="System.Exception">The task completed in a Faulted state.</exception>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public void GetResult()
{
ValidateEnd(m_task);
@@ -129,9 +118,6 @@ namespace System.Runtime.CompilerServices
/// prior to completing the await.
/// </summary>
/// <param name="task">The awaited task.</param>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal static void ValidateEnd(Task task)
{
// Fast checks that can be inlined.
@@ -227,18 +213,15 @@ namespace System.Runtime.CompilerServices
// If TaskWait* ETW events are enabled, trace a beginning event for this await
// and set up an ending event to be traced when the asynchronous await completes.
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
- if (TplEtwProvider.Log.IsEnabled() || Task.s_asyncDebuggingEnabled)
+ if ( TplEtwProvider.Log.IsEnabled() || Task.s_asyncDebuggingEnabled)
{
continuation = OutputWaitEtwEvents(task, continuation);
}
-#endif
// Set the continuation onto the awaited task.
task.SetContinuationForAwait(continuation, continueOnCapturedContext, flowExecutionContext, ref stackMark);
}
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
/// <summary>
/// Outputs a WaitBegin ETW event, and augments the continuation action to output a WaitEnd ETW event.
/// </summary>
@@ -261,10 +244,14 @@ namespace System.Runtime.CompilerServices
{
// ETW event for Task Wait Begin
var currentTaskAtBegin = Task.InternalCurrent;
+
+ // If this task's continuation is another task, get it.
+ var continuationTask = AsyncMethodBuilderCore.TryGetContinuationTask(continuation);
etwLog.TaskWaitBegin(
(currentTaskAtBegin != null ? currentTaskAtBegin.m_taskScheduler.Id : TaskScheduler.Default.Id),
(currentTaskAtBegin != null ? currentTaskAtBegin.Id : 0),
- task.Id, TplEtwProvider.TaskWaitBehavior.Asynchronous);
+ task.Id, TplEtwProvider.TaskWaitBehavior.Asynchronous,
+ (continuationTask != null ? continuationTask.Id : 0), System.Threading.Thread.GetDomainID());
}
// Create a continuation action that outputs the end event and then invokes the user
@@ -292,19 +279,20 @@ namespace System.Runtime.CompilerServices
// Ensure the continuation runs under the activity ID of the task that completed for the
// case the antecendent is a promise (in the other cases this is already the case).
- if ((task.Options & (TaskCreationOptions)InternalTaskOptions.PromiseTask) != 0)
+ if (etwLog.TasksSetActivityIds && (task.Options & (TaskCreationOptions)InternalTaskOptions.PromiseTask) != 0)
EventSource.SetCurrentThreadActivityId(TplEtwProvider.CreateGuidForTaskID(task.Id), out prevActivityId);
}
// Invoke the original continuation provided to OnCompleted.
continuation();
- if (bEtwLogEnabled && (task.Options & (TaskCreationOptions)InternalTaskOptions.PromiseTask) != 0)
+ if (bEtwLogEnabled)
{
- EventSource.SetCurrentThreadActivityId(prevActivityId);
+ etwLog.TaskWaitContinuationComplete(task.Id);
+ if (etwLog.TasksSetActivityIds && (task.Options & (TaskCreationOptions)InternalTaskOptions.PromiseTask) != 0)
+ EventSource.SetCurrentThreadActivityId(prevActivityId);
}
});
}
-#endif
}
/// <summary>Provides an awaiter for awaiting a <see cref="System.Threading.Tasks.Task{TResult}"/>.</summary>
@@ -317,9 +305,6 @@ namespace System.Runtime.CompilerServices
/// <summary>Initializes the <see cref="TaskAwaiter{TResult}"/>.</summary>
/// <param name="task">The <see cref="System.Threading.Tasks.Task{TResult}"/> to be awaited.</param>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal TaskAwaiter(Task<TResult> task)
{
Contract.Requires(task != null, "Constructing an awaiter requires a task to await.");
@@ -331,9 +316,6 @@ namespace System.Runtime.CompilerServices
/// <exception cref="System.NullReferenceException">The awaiter was not properly initialized.</exception>
public bool IsCompleted
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return m_task.IsCompleted; }
}
@@ -364,9 +346,6 @@ namespace System.Runtime.CompilerServices
/// <exception cref="System.NullReferenceException">The awaiter was not properly initialized.</exception>
/// <exception cref="System.Threading.Tasks.TaskCanceledException">The task was canceled.</exception>
/// <exception cref="System.Exception">The task completed in a Faulted state.</exception>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public TResult GetResult()
{
TaskAwaiter.ValidateEnd(m_task);
@@ -386,9 +365,6 @@ namespace System.Runtime.CompilerServices
/// <param name="continueOnCapturedContext">
/// true to attempt to marshal the continuation back to the original context captured; otherwise, false.
/// </param>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal ConfiguredTaskAwaitable(Task task, bool continueOnCapturedContext)
{
Contract.Requires(task != null, "Constructing an awaitable requires a task to await.");
@@ -397,9 +373,6 @@ namespace System.Runtime.CompilerServices
/// <summary>Gets an awaiter for this awaitable.</summary>
/// <returns>The awaiter.</returns>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public ConfiguredTaskAwaitable.ConfiguredTaskAwaiter GetAwaiter()
{
return m_configuredTaskAwaiter;
@@ -421,9 +394,6 @@ namespace System.Runtime.CompilerServices
/// true to attempt to marshal the continuation back to the original context captured
/// when BeginAwait is called; otherwise, false.
/// </param>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal ConfiguredTaskAwaiter(Task task, bool continueOnCapturedContext)
{
Contract.Requires(task != null, "Constructing an awaiter requires a task to await.");
@@ -436,9 +406,6 @@ namespace System.Runtime.CompilerServices
/// <exception cref="System.NullReferenceException">The awaiter was not properly initialized.</exception>
public bool IsCompleted
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return m_task.IsCompleted; }
}
@@ -469,9 +436,6 @@ namespace System.Runtime.CompilerServices
/// <exception cref="System.NullReferenceException">The awaiter was not properly initialized.</exception>
/// <exception cref="System.Threading.Tasks.TaskCanceledException">The task was canceled.</exception>
/// <exception cref="System.Exception">The task completed in a Faulted state.</exception>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public void GetResult()
{
TaskAwaiter.ValidateEnd(m_task);
@@ -491,9 +455,6 @@ namespace System.Runtime.CompilerServices
/// <param name="continueOnCapturedContext">
/// true to attempt to marshal the continuation back to the original context captured; otherwise, false.
/// </param>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal ConfiguredTaskAwaitable(Task<TResult> task, bool continueOnCapturedContext)
{
m_configuredTaskAwaiter = new ConfiguredTaskAwaitable<TResult>.ConfiguredTaskAwaiter(task, continueOnCapturedContext);
@@ -501,9 +462,6 @@ namespace System.Runtime.CompilerServices
/// <summary>Gets an awaiter for this awaitable.</summary>
/// <returns>The awaiter.</returns>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public ConfiguredTaskAwaitable<TResult>.ConfiguredTaskAwaiter GetAwaiter()
{
return m_configuredTaskAwaiter;
@@ -524,9 +482,6 @@ namespace System.Runtime.CompilerServices
/// <param name="continueOnCapturedContext">
/// true to attempt to marshal the continuation back to the original context captured; otherwise, false.
/// </param>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal ConfiguredTaskAwaiter(Task<TResult> task, bool continueOnCapturedContext)
{
Contract.Requires(task != null, "Constructing an awaiter requires a task to await.");
@@ -539,9 +494,6 @@ namespace System.Runtime.CompilerServices
/// <exception cref="System.NullReferenceException">The awaiter was not properly initialized.</exception>
public bool IsCompleted
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return m_task.IsCompleted; }
}
@@ -572,9 +524,6 @@ namespace System.Runtime.CompilerServices
/// <exception cref="System.NullReferenceException">The awaiter was not properly initialized.</exception>
/// <exception cref="System.Threading.Tasks.TaskCanceledException">The task was canceled.</exception>
/// <exception cref="System.Exception">The task completed in a Faulted state.</exception>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public TResult GetResult()
{
TaskAwaiter.ValidateEnd(m_task);
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/YieldAwaitable.cs b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/YieldAwaitable.cs
index 79faf5cdbf3..0e04facc064 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/YieldAwaitable.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/YieldAwaitable.cs
@@ -7,7 +7,7 @@
//
// YieldAwaitable.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Compiler-targeted type for switching back into the current execution context, e.g.
//
@@ -87,12 +87,10 @@ namespace System.Runtime.CompilerServices
if (continuation == null) throw new ArgumentNullException("continuation");
Contract.EndContractBlock();
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
if (TplEtwProvider.Log.IsEnabled())
{
continuation = OutputCorrelationEtwEvent(continuation);
}
-#endif
// Get the current SynchronizationContext, and if there is one,
// post the continuation to it. However, treat the base type
// as if there wasn't a SynchronizationContext, since that's what it
@@ -127,7 +125,6 @@ namespace System.Runtime.CompilerServices
}
}
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
private static Action OutputCorrelationEtwEvent(Action continuation)
{
int continuationId = Task.NewId();
@@ -137,18 +134,26 @@ namespace System.Runtime.CompilerServices
return AsyncMethodBuilderCore.CreateContinuationWrapper(continuation, () =>
{
+ var etwLog = TplEtwProvider.Log;
+ etwLog.TaskWaitContinuationStarted(continuationId);
+
// ETW event for Task Wait End.
Guid prevActivityId = new Guid();
// Ensure the continuation runs under the correlated activity ID generated above
- EventSource.SetCurrentThreadActivityId(TplEtwProvider.CreateGuidForTaskID(continuationId), out prevActivityId);
+ if (etwLog.TasksSetActivityIds)
+ EventSource.SetCurrentThreadActivityId(TplEtwProvider.CreateGuidForTaskID(continuationId), out prevActivityId);
+
// Invoke the original continuation provided to OnCompleted.
continuation();
// Restore activity ID
- EventSource.SetCurrentThreadActivityId(prevActivityId);
+
+ if (etwLog.TasksSetActivityIds)
+ EventSource.SetCurrentThreadActivityId(prevActivityId);
+
+ etwLog.TaskWaitContinuationComplete(continuationId);
});
}
-#endif
/// <summary>WaitCallback that invokes the Action supplied as object state.</summary>
private static readonly WaitCallback s_waitCallbackRunAction = RunAction;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/compilationrelaxations.cs b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/compilationrelaxations.cs
index 73d60208676..cce631b1c3a 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/compilationrelaxations.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/compilationrelaxations.cs
@@ -11,7 +11,7 @@ namespace System.Runtime.CompilerServices
using System;
- /// IMPORTANT: Keep this in [....] with corhdr.h
+ /// IMPORTANT: Keep this in sync with corhdr.h
[Serializable]
[Flags]
[System.Runtime.InteropServices.ComVisible(true)]
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/disableprivatereflectionattribute.cs b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/disableprivatereflectionattribute.cs
new file mode 100644
index 00000000000..006e3385b79
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/disableprivatereflectionattribute.cs
@@ -0,0 +1,19 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+
+namespace System.Runtime.CompilerServices
+{
+ using System;
+
+ [AttributeUsage(AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)]
+ public sealed class DisablePrivateReflectionAttribute : Attribute
+ {
+ public DisablePrivateReflectionAttribute() {}
+ }
+}
+
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/issignunspecifiedbyte.cs b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/issignunspecifiedbyte.cs
index b06030d2b83..9d53b0ad3bd 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/issignunspecifiedbyte.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/issignunspecifiedbyte.cs
@@ -6,8 +6,8 @@
namespace System.Runtime.CompilerServices
{
// C++ recognizes three char types: signed char, unsigned char, and char.
- // When a char is neither signed nor unsigned, it is a ---- char.
- // This modopt indicates that the modified instance is a ---- char.
+ // When a char is neither signed nor unsigned, it is a naked char.
+ // This modopt indicates that the modified instance is a naked char.
//
// Any compiler could use this to indicate that the user has not specified
// Sign behavior for the given byte.
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/jithelpers.cs b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/jithelpers.cs
index b040d598296..967e09d0be3 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/jithelpers.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/jithelpers.cs
@@ -58,9 +58,6 @@ namespace System.Runtime.CompilerServices {
// }
internal class PinningHelper
{
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
public byte m_data;
}
@@ -73,9 +70,6 @@ namespace System.Runtime.CompilerServices {
// Wraps object variable into a handle. Used to return managed strings from QCalls.
// s has to be a local variable on the stack.
[SecurityCritical]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
static internal StringHandleOnStack GetStringHandleOnStack(ref string s)
{
return new StringHandleOnStack(UnsafeCastToStackPointer(ref s));
@@ -84,9 +78,6 @@ namespace System.Runtime.CompilerServices {
// Wraps object variable into a handle. Used to pass managed object references in and out of QCalls.
// o has to be a local variable on the stack.
[SecurityCritical]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
static internal ObjectHandleOnStack GetObjectHandleOnStack<T>(ref T o) where T : class
{
return new ObjectHandleOnStack(UnsafeCastToStackPointer(ref o));
@@ -95,9 +86,6 @@ namespace System.Runtime.CompilerServices {
// Wraps StackCrawlMark into a handle. Used to pass StackCrawlMark to QCalls.
// stackMark has to be a local variable on the stack.
[SecurityCritical]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
static internal StackCrawlMarkHandle GetStackCrawlMarkHandle(ref StackCrawlMark stackMark)
{
return new StackCrawlMarkHandle(UnsafeCastToStackPointer(ref stackMark));
@@ -181,9 +169,6 @@ namespace System.Runtime.CompilerServices {
// this method is effectively critical
[SecurityCritical]
[FriendAccessAllowed]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
static internal T UnsafeCast<T>(Object o) where T : class
{
// The body of this function will be replaced by the EE with unsafe code that just returns o!!!
@@ -191,9 +176,6 @@ namespace System.Runtime.CompilerServices {
throw new InvalidOperationException();
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
static internal int UnsafeEnumCast<T>(T val) where T : struct // Actually T must be 4 byte (or less) enum
{
// should be return (int) val; but C# does not allow, runtime does this magically
@@ -201,9 +183,6 @@ namespace System.Runtime.CompilerServices {
throw new InvalidOperationException();
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
static internal long UnsafeEnumCastLong<T>(T val) where T : struct // Actually T must be 8 byte enum
{
// should be return (long) val; but C# does not allow, runtime does this magically
@@ -212,9 +191,6 @@ namespace System.Runtime.CompilerServices {
}
[SecurityCritical]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
static internal IntPtr UnsafeCastToStackPointer<T>(ref T val)
{
// The body of this function will be replaced by the EE with unsafe code that just returns o!!!
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/runtimehelpers.cs b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/runtimehelpers.cs
index 7815c131e9d..a6d4f8a8a8d 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/runtimehelpers.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/runtimehelpers.cs
@@ -62,9 +62,6 @@ namespace System.Runtime.CompilerServices {
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private static extern void _RunClassConstructor(RuntimeType type);
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static void RunClassConstructor(RuntimeTypeHandle type)
{
_RunClassConstructor(type.GetRuntimeType());
@@ -164,15 +161,15 @@ namespace System.Runtime.CompilerServices {
public static int OffsetToStringData
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
+ // This offset is baked in by string indexer intrinsic, so there is no harm
+ // in getting it baked in here as well.
+ [System.Runtime.Versioning.NonVersionable]
get {
// Number of bytes from the address pointed to by a reference to
// a String to the first 16-bit character in the String. Skip
// over the MethodTable pointer, & String
// length. Of course, the String reference points to the memory
- // after the [....] block, so don't count that.
+ // after the sync block, so don't count that.
// This property allows C#'s fixed statement to work on Strings.
// On 64 bit platforms, this should be 12 (8+4) and on 32 bit 8 (4+4).
#if WIN32
@@ -212,9 +209,6 @@ namespace System.Runtime.CompilerServices {
// as we don't need to probe.
[System.Security.SecurityCritical] // auto-generated_required
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static void PrepareConstrainedRegionsNoOP()
{
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/corruptingexceptioncommon.cs b/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/corruptingexceptioncommon.cs
index 13b30a0f29f..7cc021dbdc1 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/corruptingexceptioncommon.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/corruptingexceptioncommon.cs
@@ -13,7 +13,7 @@
**
** Created: 06/20/2008
**
-** <owner>[....]</owner>
+** <owner>Microsoft</owner>
**
=============================================================================*/
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionnotification.cs b/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionnotification.cs
index acda22b5d26..57ea2c178c5 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionnotification.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionnotification.cs
@@ -13,7 +13,7 @@
**
** Created: 10/07/2008
**
-** <owner>[....]</owner>
+** <owner>Microsoft</owner>
**
=============================================================================*/
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs b/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs
index dbb3f686c2f..6af2541c5e3 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs
@@ -13,7 +13,7 @@
**
** Created: 11/2/2010
**
-** <owner>[....]</owner>
+** <owner>Microsoft</owner>
**
=============================================================================*/
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/gcsettings.cs b/mcs/class/referencesource/mscorlib/system/runtime/gcsettings.cs
index 086dcc0b82f..5ed36c48e2a 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/gcsettings.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/gcsettings.cs
@@ -27,11 +27,18 @@ namespace System.Runtime {
Batch = 0,
Interactive = 1,
LowLatency = 2,
- SustainedLowLatency = 3
+ SustainedLowLatency = 3,
+ NoGCRegion = 4
}
public static class GCSettings
{
+ enum SetLatencyModeStatus
+ {
+ Succeeded = 0,
+ NoGCInProgress = 1 // NoGCRegion is in progress, can't change pause mode.
+ };
+
public static GCLatencyMode LatencyMode
{
[System.Security.SecuritySafeCritical] // auto-generated
@@ -53,7 +60,8 @@ namespace System.Runtime {
}
Contract.EndContractBlock();
- GC.SetGCLatencyMode((int)value);
+ if (GC.SetGCLatencyMode((int)value) == (int)SetLatencyModeStatus.NoGCInProgress)
+ throw new InvalidOperationException("The NoGCRegion mode is in progress. End it and then set a different mode.");
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsHelper.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsHelper.cs
index 11642f14bde..e06be4a4830 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsHelper.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsHelper.cs
@@ -14,8 +14,6 @@
** Date: April 2008
**/
-#if FEATURE_COMINTEROP
-
namespace System.Runtime.InteropServices {
//
// #ComEventsFeature
@@ -206,5 +204,3 @@ namespace System.Runtime.InteropServices {
}
}
-
-#endif
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsInfo.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsInfo.cs
index 061d585e352..41dfc22d252 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsInfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsInfo.cs
@@ -15,8 +15,6 @@
**/
-#if FEATURE_COMINTEROP
-
namespace System.Runtime.InteropServices {
using System;
@@ -96,5 +94,3 @@ namespace System.Runtime.InteropServices {
}
}
-
-#endif
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsMethod.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsMethod.cs
index af2f083b5bc..e5c403a993f 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsMethod.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsMethod.cs
@@ -21,7 +21,6 @@ using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Reflection;
-#if FEATURE_COMINTEROP
namespace System.Runtime.InteropServices {
@@ -249,5 +248,3 @@ namespace System.Runtime.InteropServices {
#endregion
}
}
-
-#endif
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsSink.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsSink.cs
index 458a0cc21db..d243a760953 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsSink.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/ComEventsSink.cs
@@ -14,7 +14,6 @@
** Date: April 2008
**/
-#if FEATURE_COMINTEROP
namespace System.Runtime.InteropServices {
using System;
@@ -289,5 +288,3 @@ namespace System.Runtime.InteropServices {
#endregion
};
}
-
-#endif
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/arraywithoffset.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/arraywithoffset.cs
index a5c8c8d6912..d6e858960ba 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/arraywithoffset.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/arraywithoffset.cs
@@ -70,17 +70,8 @@ namespace System.Runtime.InteropServices {
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private extern int CalculateCount();
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private Object m_array;
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private int m_offset;
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private int m_count;
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/attributes.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/attributes.cs
index 6a45bbc64ce..1b6027e25a2 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/attributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/attributes.cs
@@ -79,10 +79,8 @@ namespace System.Runtime.InteropServices{
InterfaceIsIUnknown = 1,
InterfaceIsIDispatch = 2,
-#if FEATURE_COMINTEROP
[System.Runtime.InteropServices.ComVisible(false)]
InterfaceIsIInspectable = 3,
-#endif // FEATURE_COMINTEROP
}
[AttributeUsage(AttributeTargets.Interface, Inherited = false)]
@@ -165,7 +163,7 @@ namespace System.Runtime.InteropServices{
public String Value { get { return _importClassName; } }
}
-#if FEATURE_COMINTEROP || MOBILE_LEGACY
+#if MOBILE_LEGACY
[AttributeUsage(AttributeTargets.Method, Inherited = false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class LCIDConversionAttribute : Attribute
@@ -395,7 +393,6 @@ namespace System.Runtime.InteropServices{
}
public TypeLibVarFlags Value { get {return _val;} }
}
-#endif //FEATURE_COMINTEROP
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
@@ -410,9 +407,7 @@ namespace System.Runtime.InteropServices{
VT_CY = 6,
VT_DATE = 7,
VT_BSTR = 8,
-#if FEATURE_COMINTEROP
VT_DISPATCH = 9,
-#endif // FEATURE_COMINTEROP
VT_ERROR = 10,
VT_BOOL = 11,
VT_VARIANT = 12,
@@ -451,7 +446,7 @@ namespace System.Runtime.InteropServices{
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
- // Note that this enum should remain in-[....] with the CorNativeType enum in corhdr.h
+ // Note that this enum should remain in-sync with the CorNativeType enum in corhdr.h
public enum UnmanagedType
{
Bool = 0x2, // 4 byte boolean value (true != 0, false == 0)
@@ -478,9 +473,7 @@ namespace System.Runtime.InteropServices{
Currency = 0xf, // A currency
-#if FEATURE_COMINTEROP || FEATURE_LEGACYNETCF || MONO
BStr = 0x13, // OLE Unicode BSTR
-#endif //FEATURE_COMINTEROP || FEATURE_LEGACYNETCF
LPStr = 0x14, // Ptr to SBCS string
@@ -492,17 +485,13 @@ namespace System.Runtime.InteropServices{
IUnknown = 0x19, // COM IUnknown pointer.
-#if FEATURE_COMINTEROP || FEATURE_LEGACYNETCF || MONO
IDispatch = 0x1a, // COM IDispatch pointer
-#endif //FEATURE_COMINTEROP || FEATURE_LEGACYNETCF
Struct = 0x1b, // Structure
-#if FEATURE_COMINTEROP || FEATURE_LEGACYNETCF || MONO
Interface = 0x1c, // COM interface
SafeArray = 0x1d, // OLE SafeArray
-#endif //FEATURE_COMINTEROP || FEATURE_LEGACYNETCF
ByValArray = 0x1e, // Array of fixed size (only valid in structs)
@@ -510,7 +499,6 @@ namespace System.Runtime.InteropServices{
SysUInt = 0x20,
-#if FEATURE_COMINTEROP || FEATURE_LEGACYNETCF || MONO
VBByRefStr = 0x22,
AnsiBStr = 0x23, // OLE BSTR containing SBCS characters
@@ -518,7 +506,6 @@ namespace System.Runtime.InteropServices{
TBStr = 0x24, // Ptr to OS preferred (SBCS/Unicode) BSTR
VariantBool = 0x25, // OLE defined BOOLEAN (2 bytes, true == -1, false == 0)
-#endif //FEATURE_COMINTEROP || FEATURE_LEGACYNETCF
FunctionPtr = 0x26, // Function pointer
@@ -528,20 +515,15 @@ namespace System.Runtime.InteropServices{
LPStruct = 0x2b, // Pointer to a structure
-#if FEATURE_COMINTEROP || FEATURE_LEGACYNETCF || MONO
CustomMarshaler = 0x2c,
-#endif //FEATURE_COMINTEROP || FEATURE_LEGACYNETCF
Error = 0x2d,
-#if FEATURE_COMINTEROP
[System.Runtime.InteropServices.ComVisible(false)]
IInspectable = 0x2e,
[System.Runtime.InteropServices.ComVisible(false)]
HString = 0x2f, // Windows Runtime HSTRING
-
-#endif //FEATURE_COMINTEROP
}
#if !MONO
@@ -620,11 +602,9 @@ namespace System.Runtime.InteropServices{
short sizeParamIndex, int sizeConst, string marshalType, RuntimeType marshalTypeRef, string marshalCookie, int iidParamIndex)
{
_val = val;
-#if FEATURE_COMINTEROP
SafeArraySubType = safeArraySubType;
SafeArrayUserDefinedSubType = safeArrayUserDefinedSubType;
IidParameterIndex = iidParamIndex;
-#endif // FEATURE_COMINTEROP
ArraySubType = arraySubType;
SizeParamIndex = sizeParamIndex;
SizeConst = sizeConst;
@@ -644,14 +624,12 @@ namespace System.Runtime.InteropServices{
}
public UnmanagedType Value { get { return _val; } }
-#if FEATURE_COMINTEROP
// Fields used with SubType = SafeArray.
public VarEnum SafeArraySubType;
public Type SafeArrayUserDefinedSubType;
// Field used with iid_is attribute (interface pointers).
public int IidParameterIndex;
-#endif // FEATURE_COMINTEROP
// Fields used with SubType = ByValArray and LPArray.
// Array size = parameter(PI) * PM + C
@@ -1018,7 +996,7 @@ namespace System.Runtime.InteropServices{
public int Value { get { return _val; } }
}
-#if FEATURE_COMINTEROP || MOBILE_LEGACY
+#if MOBILE_LEGACY
[AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.ReturnValue, Inherited = false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class ComAliasNameAttribute : Attribute
@@ -1059,7 +1037,6 @@ namespace System.Runtime.InteropServices{
public int MajorVersion { get {return _major;} }
public int MinorVersion { get {return _minor;} }
}
-#endif //FEATURE_COMINTEROP
[AttributeUsage(AttributeTargets.Interface, Inherited = false)]
[System.Runtime.InteropServices.ComVisible(true)]
@@ -1075,8 +1052,6 @@ namespace System.Runtime.InteropServices{
public Type CoClass { get { return _CoClass; } }
}
-#if FEATURE_COMINTEROP || MONO
-
[AttributeUsage(AttributeTargets.Interface, Inherited = false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class ComEventInterfaceAttribute : Attribute
@@ -1135,8 +1110,6 @@ namespace System.Runtime.InteropServices{
public int RevisionNumber { get {return _revision;} }
}
-#endif //FEATURE_COMINTEROP
-
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Interface | AttributeTargets.Class | AttributeTargets.Struct, Inherited = false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class BestFitMappingAttribute : Attribute
@@ -1176,7 +1149,6 @@ namespace System.Runtime.InteropServices{
}
}
-#if FEATURE_COMINTEROP
[AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = false)]
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class ManagedToNativeComInteropStubAttribute : Attribute
@@ -1193,7 +1165,6 @@ namespace System.Runtime.InteropServices{
public Type ClassType { get { return _classType; } }
public String MethodName { get { return _methodName; } }
}
-#endif // FEATURE_COMINTEROP
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/criticalhandle.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/criticalhandle.cs
index d44cc0480e7..308fa38c840 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/criticalhandle.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/criticalhandle.cs
@@ -152,9 +152,6 @@ public abstract class CriticalHandle : CriticalFinalizerObject, IDisposable
#if DEBUG
private String _stackTrace; // Where we allocated this CriticalHandle.
#endif
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
protected IntPtr handle; // This must be protected so derived classes can use out params.
private bool _isClosed; // Set by SetHandleAsInvalid or Close/Dispose/finalization.
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/expando/iexpando.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/expando/iexpando.cs
index dacf2750093..3b90935e18d 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/expando/iexpando.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/expando/iexpando.cs
@@ -11,7 +11,7 @@
// represented by MemberInfo objects.
//
// <EMAIL>Author: darylo</EMAIL>
-// Date: [....] 98
+// Date: March 98
//
// The IExpando Interface.
namespace System.Runtime.InteropServices.Expando {
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/gchandle.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/gchandle.cs
index 5480f22e98b..5fcee00f2c4 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/gchandle.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/gchandle.cs
@@ -44,7 +44,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public struct GCHandle
{
- // IMPORTANT: This must be kept in [....] with the GCHandleType enum.
+ // IMPORTANT: This must be kept in sync with the GCHandleType enum.
private const GCHandleType MaxHandleType = GCHandleType.Pinned;
#if MDA_SUPPORTED
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/iexception.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/iexception.cs
index 299e56be3e7..cb32bb05279 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/iexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/iexception.cs
@@ -26,6 +26,7 @@ namespace System.Runtime.InteropServices {
[System.Runtime.InteropServices.ComVisible(true)]
public interface _Exception
{
+#if !FEATURE_CORECLR
// This contains all of our V1 Exception class's members.
// From Object
@@ -62,14 +63,23 @@ namespace System.Runtime.InteropServices {
}
[System.Security.SecurityCritical] // auto-generated_required
void GetObjectData(SerializationInfo info, StreamingContext context);
+#endif
+ //
+ // This method is intentionally included in CoreCLR to make Exception.get_InnerException "newslot virtual final".
+ // Some phone apps include MEF from desktop Silverlight. MEF's ComposablePartException depends on implicit interface
+ // implementations of get_InnerException to be provided by the base class. It works only if Exception.get_InnerException
+ // is virtual.
+ //
Exception InnerException {
get;
}
-
+
+#if !FEATURE_CORECLR
MethodBase TargetSite {
get;
}
+#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/marshal.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/marshal.cs
index 881e33230ec..b1ad7f42420 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/marshal.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/marshal.cs
@@ -32,10 +32,7 @@ namespace System.Runtime.InteropServices
using Win32Native = Microsoft.Win32.Win32Native;
using Microsoft.Win32.SafeHandles;
using System.Diagnostics.Contracts;
- using System.Diagnostics.Tracing;
-#if FEATURE_CLASSIC_COMINTEROP
using System.Runtime.InteropServices.ComTypes;
-#endif
[Serializable]
public enum CustomQueryInterfaceMode
@@ -53,7 +50,7 @@ namespace System.Runtime.InteropServices
#if FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
#endif
- public static class Marshal
+ public static partial class Marshal
{
//====================================================================
// Defines used inside the Marshal class.
@@ -204,12 +201,7 @@ namespace System.Runtime.InteropServices
throw new ArgumentNullException("structure");
// we never had a check for generics here
Contract.EndContractBlock();
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.MarshalSizeOf(structure.GetType().GetFullNameForEtw());
- }
-#endif
+
return SizeOfHelper(structure.GetType(), true);
}
@@ -230,13 +222,6 @@ namespace System.Runtime.InteropServices
throw new ArgumentException(Environment.GetResourceString("Argument_NeedNonGenericType"), "t");
Contract.EndContractBlock();
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.MarshalSizeOf(t.GetFullNameForEtw());
- }
-#endif
-
return SizeOfHelper(t, true);
}
@@ -296,13 +281,6 @@ namespace System.Runtime.InteropServices
if (t == null)
throw new ArgumentNullException("t");
Contract.EndContractBlock();
-
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginMarshalOffsetOf(t.GetFullNameForEtw(), fieldName != null ? fieldName : "");
- }
-#endif
FieldInfo f = t.GetField(fieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
if (f == null)
@@ -310,15 +288,9 @@ namespace System.Runtime.InteropServices
RtFieldInfo rtField = f as RtFieldInfo;
if (rtField == null)
throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeFieldInfo"), "fieldName");
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndMarshalOffsetOf(t.GetFullNameForEtw(), fieldName != null ? fieldName : "");
- }
-#endif
+
return OffsetOfHelper(rtField);
}
-
public static IntPtr OffsetOf<T>(string fieldName)
{
return OffsetOf(typeof(T), fieldName);
@@ -339,22 +311,9 @@ namespace System.Runtime.InteropServices
[System.Security.SecurityCritical] // auto-generated_required
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- private static extern IntPtr InternalUnsafeAddrOfPinnedArrayElement(Array arr, int index);
+ public static extern IntPtr UnsafeAddrOfPinnedArrayElement(Array arr, int index);
[System.Security.SecurityCritical]
- public static IntPtr UnsafeAddrOfPinnedArrayElement(Array arr, int index)
- {
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && arr != null && arr.Length > index && arr.GetValue(index) != null)
- {
- // Not a strongly-typed array, use the type of the element index being requested.
- FrameworkEventSource.Log.MarshalUnsafeAddrOfPinnedArrayElement(arr.GetValue(index).GetType().GetFullNameForEtw());
- }
-#endif
- return InternalUnsafeAddrOfPinnedArrayElement(arr, index);
- }
-
- [System.Security.SecurityCritical]
public static IntPtr UnsafeAddrOfPinnedArrayElement<T>(T[] arr, int index)
{
return UnsafeAddrOfPinnedArrayElement((Array)arr, index);
@@ -968,19 +927,7 @@ namespace System.Runtime.InteropServices
[System.Security.SecurityCritical] // auto-generated_required
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- private static extern int InternalGetExceptionCode();
-
- [System.Security.SecurityCritical]
- public static int GetExceptionCode()
- {
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.MarshalGetExceptionCode();
- }
-#endif
- return InternalGetExceptionCode();
- }
+ public static extern int GetExceptionCode();
//====================================================================
@@ -991,22 +938,8 @@ namespace System.Runtime.InteropServices
[System.Security.SecurityCritical] // auto-generated_required
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall), ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
- private static extern void InternalStructureToPtr(Object structure, IntPtr ptr, bool fDeleteOld);
-
- [System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(true)]
- [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
- public static void StructureToPtr(Object structure, IntPtr ptr, bool fDeleteOld)
- {
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && structure != null)
- {
- FrameworkEventSource.Log.MarshalStructureToPtr(structure.GetType().GetFullNameForEtw(), fDeleteOld.ToString());
- }
-#endif
- InternalStructureToPtr(structure, ptr, fDeleteOld);
- }
-
+ public static extern void StructureToPtr(Object structure, IntPtr ptr, bool fDeleteOld);
[System.Security.SecurityCritical]
public static void StructureToPtr<T>(T structure, IntPtr ptr, bool fDeleteOld)
@@ -1021,19 +954,7 @@ namespace System.Runtime.InteropServices
[System.Runtime.InteropServices.ComVisible(true)]
public static void PtrToStructure(IntPtr ptr, Object structure)
{
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && structure != null)
- {
- FrameworkEventSource.Log.BeginMarshalPtrToStructure(structure.GetType().GetFullNameForEtw());
- }
-#endif
PtrToStructureHelper(ptr, structure, false);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && structure != null)
- {
- FrameworkEventSource.Log.EndMarshalPtrToStructure(structure.GetType().GetFullNameForEtw());
- }
-#endif
}
[System.Security.SecurityCritical]
@@ -1066,26 +987,11 @@ namespace System.Runtime.InteropServices
StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller;
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginMarshalPtrToStructure(rt.GetFullNameForEtw());
- }
-#endif
-
Object structure = rt.CreateInstanceDefaultCtor(false /*publicOnly*/, false /*skipCheckThis*/, false /*fillCache*/, ref stackMark);
PtrToStructureHelper(ptr, structure, true);
-
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndMarshalPtrToStructure(rt.GetFullNameForEtw());
- }
-#endif
-
return structure;
}
-
+
[System.Security.SecurityCritical]
public static T PtrToStructure<T>(IntPtr ptr)
{
@@ -1107,20 +1013,8 @@ namespace System.Runtime.InteropServices
[System.Security.SecurityCritical] // auto-generated_required
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- private static extern void InternalDestroyStructure(IntPtr ptr, Type structuretype);
-
[System.Runtime.InteropServices.ComVisible(true)]
- [System.Security.SecurityCritical]
- public static void DestroyStructure(IntPtr ptr, Type structuretype)
- {
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && structuretype != null)
- {
- FrameworkEventSource.Log.MarshalDestroyStructure(structuretype.GetFullNameForEtw());
- }
-#endif
- InternalDestroyStructure(ptr, structuretype);
- }
+ public static extern void DestroyStructure(IntPtr ptr, Type structuretype);
[System.Security.SecurityCritical]
public static void DestroyStructure<T>(IntPtr ptr)
@@ -1168,24 +1062,12 @@ namespace System.Runtime.InteropServices
[System.Security.SecurityCritical] // auto-generated_required
public static void ThrowExceptionForHR(int errorCode)
{
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.MarshalThrowExceptionForHR();
- }
-#endif
if (errorCode < 0)
ThrowExceptionForHRInternal(errorCode, IntPtr.Zero);
}
[System.Security.SecurityCritical] // auto-generated_required
public static void ThrowExceptionForHR(int errorCode, IntPtr errorInfo)
{
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && (int)errorInfo != -1)
- {
- FrameworkEventSource.Log.MarshalThrowExceptionForHR2();
- }
-#endif
if (errorCode < 0)
ThrowExceptionForHRInternal(errorCode, errorInfo);
}
@@ -1201,12 +1083,6 @@ namespace System.Runtime.InteropServices
[System.Security.SecurityCritical] // auto-generated_required
public static Exception GetExceptionForHR(int errorCode)
{
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.MarshalGetExceptionForHR();
- }
-#endif
if (errorCode < 0)
return GetExceptionForHRInternal(errorCode, IntPtr.Zero);
else
@@ -1215,12 +1091,6 @@ namespace System.Runtime.InteropServices
[System.Security.SecurityCritical] // auto-generated_required
public static Exception GetExceptionForHR(int errorCode, IntPtr errorInfo)
{
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && (int)errorInfo != -1)
- {
- FrameworkEventSource.Log.MarshalGetExceptionForHR2();
- }
-#endif
if (errorCode < 0)
return GetExceptionForHRInternal(errorCode, errorInfo);
else
@@ -1250,7 +1120,6 @@ namespace System.Runtime.InteropServices
[System.Security.SecurityCritical] // auto-generated_required
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- [ForceTokenStabilization]
internal static extern int GetHRForException_WinRT(Exception e);
#if !FEATURE_PAL
@@ -1436,8 +1305,6 @@ namespace System.Runtime.InteropServices
#if FEATURE_COMINTEROP
-#if FEATURE_CLASSIC_COMINTEROP
-
internal static readonly Guid ManagedNameGuid = new Guid("{0F21F359-AB84-41E8-9A78-36D110E6D2F9}");
//====================================================================
@@ -1654,13 +1521,6 @@ namespace System.Runtime.InteropServices
typeInfo.GetDocumentation(-1, out strTypeLibName, out strDocString, out dwHelpContext, out strHelpFile);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.MarshalGetTypeInfoName(typeInfo.GetType().GetFullNameForEtw());
- }
-#endif
-
return strTypeLibName;
}
@@ -1812,19 +1672,12 @@ namespace System.Runtime.InteropServices
// This method is identical to Type.GetTypeFromCLSID. Since it's interop specific, we expose it
// on Marshal for more consistent API surface.
+#if !FEATURE_CORECLR
[System.Security.SecuritySafeCritical]
+#endif //!FEATURE_CORECLR
public static Type GetTypeFromCLSID(Guid clsid)
{
- Type t = RuntimeType.GetTypeFromCLSIDImpl(clsid, null, false);
-
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && t != null && clsid != null)
- {
- FrameworkEventSource.Log.MarshalGetTypeFromCLSID(t.GetFullNameForEtw(), clsid.ToString());
- }
-#endif
-
- return t;
+ return RuntimeType.GetTypeFromCLSIDImpl(clsid, null, false);
}
//====================================================================
@@ -1835,8 +1688,6 @@ namespace System.Runtime.InteropServices
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public static extern IntPtr /* ITypeInfo* */ GetITypeInfoForType(Type t);
-#endif // FEATURE_CLASSIC_COMINTEROP
-
//====================================================================
// return the IUnknown* for an Object if the current context
// is the one where the RCW was first seen. Will return null
@@ -1845,12 +1696,6 @@ namespace System.Runtime.InteropServices
[System.Security.SecurityCritical] // auto-generated_required
public static IntPtr /* IUnknown* */ GetIUnknownForObject(Object o)
{
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && o != null)
- {
- FrameworkEventSource.Log.MarshalGetIUnknownForObject(o.GetType().GetFullNameForEtw());
- }
-#endif
return GetIUnknownForObjectNative(o, false);
}
@@ -1904,14 +1749,6 @@ namespace System.Runtime.InteropServices
[System.Security.SecurityCritical] // auto-generated_required
public static IntPtr /* IUnknown* */ GetComInterfaceForObject(Object o, Type T)
{
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && o != null && T != null)
- {
- // The managed ETW class only allows three parameters, so we have to improvise in passing all four
- string interfaceAndMode = o.GetType().ImplementInterface(typeof(System.Runtime.InteropServices.ICustomQueryInterface)) ? "1:1" : "0:1";
- FrameworkEventSource.Log.MarshalGetComInterfaceForObject(o.GetType().GetFullNameForEtw(), T.GetFullNameForEtw(), interfaceAndMode);
- }
-#endif
return GetComInterfaceForObjectNative(o, T, false, true);
}
@@ -1930,16 +1767,6 @@ namespace System.Runtime.InteropServices
public static IntPtr /* IUnknown* */ GetComInterfaceForObject(Object o, Type T, CustomQueryInterfaceMode mode)
{
bool bEnableCustomizedQueryInterface = ((mode == CustomQueryInterfaceMode.Allow) ? true : false);
-
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && o != null && T != null)
- {
- // The managed ETW class only allows three parameters, so we have to improvise in passing all four
- string interfaceAndMode = o.GetType().ImplementInterface(typeof(System.Runtime.InteropServices.ICustomQueryInterface)) ? "1:" : "0:";
- interfaceAndMode += bEnableCustomizedQueryInterface ? "1" : "0";
- FrameworkEventSource.Log.MarshalGetComInterfaceForObject(o.GetType().GetFullNameForEtw(), T.GetFullNameForEtw(), interfaceAndMode);
- }
-#endif
return GetComInterfaceForObjectNative(o, T, false, bEnableCustomizedQueryInterface);
}
@@ -1965,21 +1792,7 @@ namespace System.Runtime.InteropServices
[System.Security.SecurityCritical] // auto-generated_required
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- private static extern Object InternalGetObjectForIUnknown(IntPtr /* IUnknown* */ pUnk);
-
- [System.Security.SecurityCritical]
- public static Object GetObjectForIUnknown(IntPtr /* IUnknown* */ pUnk)
- {
- Object o = InternalGetObjectForIUnknown(pUnk);
-
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && o != null)
- {
- FrameworkEventSource.Log.MarshalGetObjectForIUnknown(o.GetType().GetFullNameForEtw());
- }
-#endif
- return o;
- }
+ public static extern Object GetObjectForIUnknown(IntPtr /* IUnknown* */ pUnk);
//====================================================================
// Return a unique Object given an IUnknown. This ensures that you
@@ -1991,22 +1804,7 @@ namespace System.Runtime.InteropServices
[System.Security.SecurityCritical] // auto-generated_required
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- private static extern Object InternalGetUniqueObjectForIUnknown(IntPtr unknown);
-
- [System.Security.SecurityCritical]
- public static Object GetUniqueObjectForIUnknown(IntPtr unknown)
- {
- Object o = InternalGetUniqueObjectForIUnknown(unknown);
-
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && o != null)
- {
- FrameworkEventSource.Log.MarshalGetUniqueObjectForIUnknown(o.GetType().GetFullNameForEtw());
- }
-#endif
-
- return o;
- }
+ public static extern Object GetUniqueObjectForIUnknown(IntPtr unknown);
//====================================================================
// return an Object for IUnknown, using the Type T,
@@ -2022,20 +1820,8 @@ namespace System.Runtime.InteropServices
[System.Security.SecurityCritical] // auto-generated_required
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- private static extern IntPtr InternalCreateAggregatedObject(IntPtr pOuter, Object o);
-
- [System.Security.SecurityCritical]
- public static IntPtr CreateAggregatedObject(IntPtr pOuter, Object o)
- {
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && o != null)
- {
- FrameworkEventSource.Log.MarshalCreateAggregatedObject(o.GetType().GetFullNameForEtw());
- }
-#endif
- return InternalCreateAggregatedObject(pOuter,o);
- }
-
+ public static extern IntPtr CreateAggregatedObject(IntPtr pOuter, Object o);
+
[System.Security.SecurityCritical]
public static IntPtr CreateAggregatedObject<T>(IntPtr pOuter, T o)
{
@@ -2052,24 +1838,16 @@ namespace System.Runtime.InteropServices
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public static extern bool AreComObjectsAvailableForCleanup();
-#endif // FEATURE_COMINTEROP
-
-
//====================================================================
// check if the object is classic COM component
//====================================================================
#if !FEATURE_CORECLR // with FEATURE_CORECLR, the whole type is SecurityCritical
[System.Security.SecuritySafeCritical]
#endif
-#if FEATURE_COMINTEROP
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public static extern bool IsComObject(Object o);
-#else
- public static bool IsComObject(Object o)
- {
- return false;
- }
+
#endif // FEATURE_COMINTEROP
[System.Security.SecurityCritical] // auto-generated_required
@@ -2083,7 +1861,6 @@ namespace System.Runtime.InteropServices
return pNewMem;
}
-#if FEATURE_COMINTEROP || FEATURE_LEGACYNETCF
[System.Security.SecurityCritical] // auto-generated_required
unsafe public static IntPtr StringToCoTaskMemUni(String s)
{
@@ -2160,7 +1937,17 @@ namespace System.Runtime.InteropServices
}
}
-#endif //FEATURE_COMINTEROP || FEATURE_LEGACYNETCF
+ [System.Security.SecurityCritical] // auto-generated_required
+ public static IntPtr ReAllocCoTaskMem(IntPtr pv, int cb)
+ {
+ IntPtr pNewMem = Win32Native.CoTaskMemRealloc(pv, new UIntPtr((uint)cb));
+ if (pNewMem == IntPtr.Zero && cb != 0)
+ {
+ throw new OutOfMemoryException();
+ }
+ return pNewMem;
+ }
+
#if FEATURE_COMINTEROP
//====================================================================
@@ -2316,13 +2103,6 @@ namespace System.Runtime.InteropServices
if (o == null)
return null;
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.MarshalCreateWrapperOfType(o.GetType().GetFullNameForEtw(), t.GetFullNameForEtw());
- }
-#endif
-
// Make sure the object is a COM object.
if (!o.GetType().IsCOMObject)
throw new ArgumentException(Environment.GetResourceString("Argument_ObjNotComObject"), "o");
@@ -2406,16 +2186,6 @@ namespace System.Runtime.InteropServices
// BSTR allocation and dealocation.
//====================================================================
[System.Security.SecurityCritical] // auto-generated_required
- public static IntPtr ReAllocCoTaskMem(IntPtr pv, int cb)
- {
- IntPtr pNewMem = Win32Native.CoTaskMemRealloc(pv, new UIntPtr((uint)cb));
- if (pNewMem == IntPtr.Zero && cb != 0) {
- throw new OutOfMemoryException();
- }
- return pNewMem;
- }
-
- [System.Security.SecurityCritical] // auto-generated_required
public static void FreeBSTR(IntPtr ptr)
{
if (IsNotWin32Atom(ptr)) {
@@ -2423,7 +2193,6 @@ namespace System.Runtime.InteropServices
}
}
-
[System.Security.SecurityCritical] // auto-generated_required
public static IntPtr StringToBSTR(String s)
{
@@ -2450,19 +2219,7 @@ namespace System.Runtime.InteropServices
[System.Security.SecurityCritical] // auto-generated_required
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- internal static extern void InternalGetNativeVariantForObject(Object obj, /* VARIANT * */ IntPtr pDstNativeVariant);
-
- [System.Security.SecurityCritical]
- public static void GetNativeVariantForObject(Object obj, /* VARIANT * */ IntPtr pDstNativeVariant)
- {
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && obj != null)
- {
- FrameworkEventSource.Log.MarshalGetNativeVariantForObject(obj.GetType().GetFullNameForEtw());
- }
-#endif
- InternalGetNativeVariantForObject(obj, pDstNativeVariant);
- }
+ public static extern void GetNativeVariantForObject(Object obj, /* VARIANT * */ IntPtr pDstNativeVariant);
[System.Security.SecurityCritical]
public static void GetNativeVariantForObject<T>(T obj, IntPtr pDstNativeVariant)
@@ -2473,50 +2230,23 @@ namespace System.Runtime.InteropServices
[System.Security.SecurityCritical] // auto-generated_required
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- internal static extern Object InternalGetObjectForNativeVariant(/* VARIANT * */ IntPtr pSrcNativeVariant );
-
- [System.Security.SecurityCritical]
- public static Object GetObjectForNativeVariant(/* VARIANT * */ IntPtr pSrcNativeVariant )
- {
- return InternalGetObjectForNativeVaraintLogging(pSrcNativeVariant);
- }
+ public static extern Object GetObjectForNativeVariant(/* VARIANT * */ IntPtr pSrcNativeVariant );
[System.Security.SecurityCritical]
public static T GetObjectForNativeVariant<T>(IntPtr pSrcNativeVariant)
{
- return (T)InternalGetObjectForNativeVaraintLogging(pSrcNativeVariant);
- }
-
- [System.Security.SecurityCritical]
- internal static object InternalGetObjectForNativeVaraintLogging(IntPtr pSrcNativeVariant)
- {
- Object o = InternalGetObjectForNativeVariant(pSrcNativeVariant);
-
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && o != null)
- {
- FrameworkEventSource.Log.MarshalGetObjectForNativeVariant(o.GetType().GetFullNameForEtw());
- }
-#endif
-
- return o;
+ return (T)GetObjectForNativeVariant(pSrcNativeVariant);
}
[System.Security.SecurityCritical] // auto-generated_required
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- private static extern Object[] InternalGetObjectsForNativeVariants(/* VARIANT * */ IntPtr aSrcNativeVariant, int cVars );
-
- [System.Security.SecurityCritical]
- public static Object[] GetObjectsForNativeVariants(/* VARIANT * */ IntPtr aSrcNativeVariant, int cVars )
- {
- return InternalGetObjectsForNativeVariantsLogging(aSrcNativeVariant, cVars);
- }
+ public static extern Object[] GetObjectsForNativeVariants(/* VARIANT * */ IntPtr aSrcNativeVariant, int cVars );
[System.Security.SecurityCritical]
public static T[] GetObjectsForNativeVariants<T>(IntPtr aSrcNativeVariant, int cVars)
{
- object[] objects = InternalGetObjectsForNativeVariantsLogging(aSrcNativeVariant, cVars);
+ object[] objects = GetObjectsForNativeVariants(aSrcNativeVariant, cVars);
T[] result = null;
if (objects != null)
@@ -2528,40 +2258,6 @@ namespace System.Runtime.InteropServices
return result;
}
- [System.Security.SecurityCritical]
- internal static Object[] InternalGetObjectsForNativeVariantsLogging(/* VARIANT * */ IntPtr aSrcNativeVariant, int cVars)
- {
- Object[] objects = InternalGetObjectsForNativeVariants(aSrcNativeVariant, cVars);
-
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && objects != null)
- {
- // Since we can only return up to 3 parameters with the managed ETW library, create a formatted string with all
- // the object type names in it. The format of the string is:
- // <length of type name 1>:<type name 1>:<length of type name 2>:<type name 2>...
- StringBuilder sb = new StringBuilder();
- foreach (Object o in objects)
- {
- if (sb.Length > 0)
- sb.Append(":");
-
- if (o != null)
- {
- String typeName = o.GetType().GetFullNameForEtw();
- sb.Append(typeName.Length);
- sb.Append(":");
- sb.Append(typeName);
- }
- }
-
- FrameworkEventSource.Log.MarshalGetObjectsForNativeVariants(sb.ToString());
- }
-#endif
-
- return objects;
- }
-
-
/// <summary>
/// <para>Returns the first valid COM slot that GetMethodInfoForSlot will work on
/// This will be 3 for IUnknown based interfaces and 7 for IDispatch based interfaces. </para>
@@ -2569,19 +2265,7 @@ namespace System.Runtime.InteropServices
[System.Security.SecurityCritical] // auto-generated_required
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- private static extern int InternalGetStartComSlot(Type t);
-
- [System.Security.SecurityCritical]
- public static int GetStartComSlot(Type t)
- {
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && t != null)
- {
- FrameworkEventSource.Log.MarshalGetStartComSlot(t.GetFullNameForEtw());
- }
-#endif
- return InternalGetStartComSlot(t);
- }
+ public static extern int GetStartComSlot(Type t);
/// <summary>
/// <para>Returns the last valid COM slot that GetMethodInfoForSlot will work on. </para>
@@ -2648,7 +2332,6 @@ namespace System.Runtime.InteropServices
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private static extern void FCallGenerateGuidForType(ref Guid result, Type type);
-#if FEATURE_CLASSIC_COMINTEROP
//====================================================================
// This method generates a PROGID for the specified type. If the type
// has a PROGID in the metadata then it is returned otherwise a stable
@@ -2774,7 +2457,6 @@ namespace System.Runtime.InteropServices
[SuppressUnmanagedCodeSecurity]
[System.Security.SecurityCritical] // auto-generated
private static extern void GetActiveObject(ref Guid rclsid, IntPtr reserved, [MarshalAs(UnmanagedType.Interface)] out Object ppunk);
-#endif // FEATURE_CLASSIC_COMINTEROP
//========================================================================
// Private method called from remoting to support ServicedComponents.
@@ -2806,15 +2488,12 @@ namespace System.Runtime.InteropServices
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public static extern void ChangeWrapperHandleStrength(Object otp, bool fIsWeak);
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
internal static extern void InitializeWrapperForWinRT(object o, ref IntPtr pUnk);
-#if FEATURE_COMINTEROP_MANAGED_ACTIVATION
+#if FEATURE_COMINTEROP_WINRT_MANAGED_ACTIVATION
[System.Security.SecurityCritical]
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
@@ -2942,13 +2621,6 @@ namespace System.Runtime.InteropServices
if (c == null || (c != typeof(Delegate) && c != typeof(MulticastDelegate)))
throw new ArgumentException(Environment.GetResourceString("Arg_MustBeDelegate"), "t");
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.MarshalGetDelegateForFunctionPointer(t.GetFullNameForEtw());
- }
-#endif
-
return GetDelegateForFunctionPointerInternal(ptr, t);
}
@@ -2969,14 +2641,6 @@ namespace System.Runtime.InteropServices
throw new ArgumentNullException("d");
Contract.EndContractBlock();
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage)
- && d.Target != null
- && d.Method != null)
- {
- FrameworkEventSource.Log.MarshalGetFunctionPointerForDelegate(d.Target.GetType().GetFullNameForEtw(), d.Method.GetFullNameForEtw());
- }
-#endif
return GetFunctionPointerForDelegateInternal(d);
}
@@ -2990,7 +2654,7 @@ namespace System.Runtime.InteropServices
[MethodImplAttribute(MethodImplOptions.InternalCall)]
internal static extern IntPtr GetFunctionPointerForDelegateInternal(Delegate d);
-#if FEATURE_COMINTEROP && (FEATURE_CRYPTO || FEATURE_X509_SECURESTRINGS || FEATURE_CORESYSTEM)
+#if FEATURE_COMINTEROP
[System.Security.SecurityCritical] // auto-generated_required
public static IntPtr SecureStringToBSTR(SecureString s) {
if( s == null) {
@@ -3000,6 +2664,7 @@ namespace System.Runtime.InteropServices
return s.ToBSTR();
}
+#endif
[System.Security.SecurityCritical] // auto-generated_required
public static IntPtr SecureStringToCoTaskMemAnsi(SecureString s) {
@@ -3023,13 +2688,14 @@ namespace System.Runtime.InteropServices
return s.ToUniStr(false);
}
-
+#if FEATURE_COMINTEROP
[System.Security.SecurityCritical] // auto-generated_required
public static void ZeroFreeBSTR(IntPtr s)
{
Win32Native.ZeroMemory(s, (UIntPtr)(Win32Native.SysStringLen(s) * 2));
FreeBSTR(s);
}
+#endif
[System.Security.SecurityCritical] // auto-generated_required
public static void ZeroFreeCoTaskMemAnsi(IntPtr s)
@@ -3044,9 +2710,7 @@ namespace System.Runtime.InteropServices
Win32Native.ZeroMemory(s, (UIntPtr)(Win32Native.lstrlenW(s) * 2));
FreeCoTaskMem(s);
}
-#endif // FEATURE_COMINTEROP && (FEATURE_CRYPTO || FEATURE_X509_SECURESTRINGS)
-#if FEATURE_CRYPTO || FEATURE_X509_SECURESTRINGS || FEATURE_CORESYSTEM
[System.Security.SecurityCritical] // auto-generated_required
public static IntPtr SecureStringToGlobalAllocAnsi(SecureString s) {
if( s == null) {
@@ -3066,7 +2730,6 @@ namespace System.Runtime.InteropServices
return s.ToUniStr(true);
}
-#endif // FEATURE_CRYPTO || FEATURE_X509_SECURESTRINGS
[System.Security.SecurityCritical] // auto-generated_required
public static void ZeroFreeGlobalAllocAnsi(IntPtr s) {
@@ -3119,9 +2782,3 @@ namespace System.Runtime.InteropServices
#endif // FEATURE_COMINTEROP && !FEATURE_CORECLR
}
-
-
-
-
-
-
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/pinvokemap.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/pinvokemap.cs
index 5eb48c8e3ac..9b2f099b4ee 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/pinvokemap.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/pinvokemap.cs
@@ -9,7 +9,7 @@
// PInvokeMap is an enum that defines the PInvoke attributes. These
// values are defined in CorHdr.h.
//
-// <EMAIL>Author: [....]</EMAIL>
+// <EMAIL>Author: meichint</EMAIL>
// Date: Sep 99
//
namespace System.Runtime.InteropServices {
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/safebuffer.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/safebuffer.cs
index 95d518b390e..6e243c8411a 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/safebuffer.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/safebuffer.cs
@@ -135,7 +135,6 @@ using System.Diagnostics.Contracts;
_numBytes = checked((UIntPtr) (numElements * sizeOfEachElement));
}
-#if !FEATURE_CORECLR
/// <summary>
/// Specifies the the size of the region in memory, as the number of
/// elements in an array. Must be called before using the SafeBuffer.
@@ -145,7 +144,6 @@ using System.Diagnostics.Contracts;
{
Initialize(numElements, Marshal.AlignedSizeOf<T>());
}
-#endif
// Callers should ensure that they check whether the pointer ref param
// is null when AcquirePointer returns. If it is not null, they must
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/safehandle.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/safehandle.cs
index 65e02de3ae3..6536f3c77d2 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/safehandle.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/safehandle.cs
@@ -150,9 +150,6 @@ public abstract partial class SafeHandle : CriticalFinalizerObject, IDisposable
[MarshalAs(UnmanagedType.LPWStr)]
private String _stackTrace; // Where we allocated this SafeHandle.
#endif
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
protected IntPtr handle; // this must be protected so derived classes can use out params.
private int _state; // Combined ref count and closed/disposed flags (so we can atomically modify them).
private bool _ownsHandle; // Whether we can release this handle.
@@ -208,9 +205,6 @@ public abstract partial class SafeHandle : CriticalFinalizerObject, IDisposable
extern void InternalFinalize();
#endif
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
protected void SetHandle(IntPtr handle) {
this.handle = handle;
}
@@ -231,9 +225,6 @@ public abstract partial class SafeHandle : CriticalFinalizerObject, IDisposable
// and get back information for an entirely unrelated resource).
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[ResourceExposure(ResourceScope.None)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public IntPtr DangerousGetHandle()
{
return handle;
@@ -241,9 +232,6 @@ public abstract partial class SafeHandle : CriticalFinalizerObject, IDisposable
public bool IsClosed {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return (_state & 1) == 1; }
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/IClosable.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/IClosable.cs
index 3a2f02690ee..e15957adfcc 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/IClosable.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/IClosable.cs
@@ -18,7 +18,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
[ComImport]
[Guid("30d5a829-7fa4-4026-83bb-d75bae4ea99e")]
[WindowsRuntimeImport]
- [ForceTokenStabilization]
internal interface IClosable
{
void Close();
@@ -33,7 +32,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
}
[SecurityCritical]
- [ForceTokenStabilization]
public void Close()
{
IDisposable _this = JitHelpers.UnsafeCast<IDisposable>(this);
@@ -50,7 +48,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
Contract.Assert(false, "This class is never instantiated");
}
- [ForceTokenStabilization]
[SecurityCritical]
private void Dispose()
{
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/attributes.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/attributes.cs
index 8be810c5641..8dfd4c70ca5 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/attributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/attributes.cs
@@ -4,9 +4,9 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/bindablevectortocollectionadapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/bindablevectortocollectionadapter.cs
index 215e0d159cd..248643a3c15 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/bindablevectortocollectionadapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/bindablevectortocollectionadapter.cs
@@ -5,7 +5,7 @@
// ==--==
//
// <OWNER>GPaperin</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Runtime;
@@ -36,7 +36,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// int Count { get }
[Pure]
[SecurityCritical]
- [ForceTokenStabilization]
internal int Count()
{
IBindableVector _this = JitHelpers.UnsafeCast<IBindableVector>(this);
@@ -52,7 +51,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// bool IsSynchronized { get }
[Pure]
[SecurityCritical]
- [ForceTokenStabilization]
internal bool IsSynchronized()
{
return false;
@@ -61,7 +59,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// object SyncRoot { get }
[Pure]
[SecurityCritical]
- [ForceTokenStabilization]
internal object SyncRoot()
{
return this;
@@ -70,7 +67,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// void CopyTo(Array array, int index)
[Pure]
[SecurityCritical]
- [ForceTokenStabilization]
internal void CopyTo(Array array, int arrayIndex)
{
if (array == null)
@@ -89,7 +85,7 @@ namespace System.Runtime.InteropServices.WindowsRuntime
throw new ArgumentOutOfRangeException("arrayIndex");
// Does the dimension in question have sufficient space to copy the expected number of entries?
- // We perform this check before valid index check to ensure the exception message is in [....] with
+ // We perform this check before valid index check to ensure the exception message is in sync with
// the following snippet that uses regular framework code:
//
// ArrayList list = new ArrayList();
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/bindablevectortolistadapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/bindablevectortolistadapter.cs
index 9842d24a937..e8aa7ecb1fb 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/bindablevectortolistadapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/bindablevectortolistadapter.cs
@@ -5,7 +5,7 @@
// ==--==
//
// <OWNER>GPaperin</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Runtime;
@@ -35,7 +35,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// object this[int index] { get }
[SecurityCritical]
- [ForceTokenStabilization]
internal object Indexer_Get(int index)
{
if (index < 0)
@@ -47,7 +46,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// object this[int index] { set }
[SecurityCritical]
- [ForceTokenStabilization]
internal void Indexer_Set(int index, object value)
{
if (index < 0)
@@ -59,7 +57,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// int Add(object value)
[SecurityCritical]
- [ForceTokenStabilization]
internal int Add(object value)
{
IBindableVector _this = JitHelpers.UnsafeCast<IBindableVector>(this);
@@ -76,7 +73,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// bool Contains(object item)
[SecurityCritical]
- [ForceTokenStabilization]
internal bool Contains(object item)
{
IBindableVector _this = JitHelpers.UnsafeCast<IBindableVector>(this);
@@ -87,7 +83,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// void Clear()
[SecurityCritical]
- [ForceTokenStabilization]
internal void Clear()
{
IBindableVector _this = JitHelpers.UnsafeCast<IBindableVector>(this);
@@ -97,7 +92,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// bool IsFixedSize { get }
[Pure]
[SecurityCritical]
- [ForceTokenStabilization]
internal bool IsFixedSize()
{
return false;
@@ -106,7 +100,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// bool IsReadOnly { get }
[Pure]
[SecurityCritical]
- [ForceTokenStabilization]
internal bool IsReadOnly()
{
return false;
@@ -114,7 +107,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// int IndexOf(object item)
[SecurityCritical]
- [ForceTokenStabilization]
internal int IndexOf(object item)
{
IBindableVector _this = JitHelpers.UnsafeCast<IBindableVector>(this);
@@ -135,7 +127,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// void Insert(int index, object item)
[SecurityCritical]
- [ForceTokenStabilization]
internal void Insert(int index, object item)
{
if (index < 0)
@@ -147,7 +138,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// bool Remove(object item)
[SecurityCritical]
- [ForceTokenStabilization]
internal void Remove(object item)
{
IBindableVector _this = JitHelpers.UnsafeCast<IBindableVector>(this);
@@ -168,7 +158,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// void RemoveAt(int index)
[SecurityCritical]
- [ForceTokenStabilization]
internal void RemoveAt(int index)
{
if (index < 0)
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/clrikeyvaluepairimpl.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/clrikeyvaluepairimpl.cs
index 25c3184066d..44b63f91154 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/clrikeyvaluepairimpl.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/clrikeyvaluepairimpl.cs
@@ -4,8 +4,8 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/clripropertyvalueimpl.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/clripropertyvalueimpl.cs
index c7781abf070..3dc29580b28 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/clripropertyvalueimpl.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/clripropertyvalueimpl.cs
@@ -4,9 +4,9 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Diagnostics.Contracts;
@@ -475,7 +475,7 @@ namespace System.Runtime.InteropServices.WindowsRuntime
return (T)(object)ipv.GetDouble();
}
else {
- BCLDebug.Assert(false, "T in coersion function wasn't understood as a type that can be coerced - make sure that CoerceScalarValue and NumericScalarTypes are in [....]");
+ BCLDebug.Assert(false, "T in coersion function wasn't understood as a type that can be coerced - make sure that CoerceScalarValue and NumericScalarTypes are in sync");
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/clrireferenceimpl.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/clrireferenceimpl.cs
index b8730c204ec..831358e2d52 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/clrireferenceimpl.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/clrireferenceimpl.cs
@@ -4,14 +4,13 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Collections;
using System.Diagnostics.Contracts;
-using System.Diagnostics.Tracing;
using System.Reflection;
using System.Security;
@@ -78,6 +77,10 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// We have T in an IReference<T>. Need to QI for IReference<T> with the appropriate GUID, call
// the get_Value property, allocate an appropriately-sized managed object, marshal the native object
// to the managed object, and free the native method. Also we want the return value boxed (aka normal value type boxing).
+ //
+ // This method is called by VM. Mark the method with FriendAccessAllowed attribute to ensure that the unreferenced method
+ // optimization skips it and the code will be saved into NGen image.
+ [System.Runtime.CompilerServices.FriendAccessAllowed]
internal static Object UnboxHelper(Object wrapper)
{
Contract.Requires(wrapper != null);
@@ -104,7 +107,7 @@ namespace System.Runtime.InteropServices.WindowsRuntime
_value = obj;
// This should not fail but I'm making a cast here anyway just in case
- // we have a bug (that _value is not an array) or there is a runtime failure
+ // we have a
_list = (IList) _value;
}
@@ -263,6 +266,10 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// We have T in an IReferenceArray<T>. Need to QI for IReferenceArray<T> with the appropriate GUID, call
// the get_Value property, allocate an appropriately-sized managed object, marshal the native object
// to the managed object, and free the native method.
+ //
+ // This method is called by VM. Mark the method with FriendAccessAllowed attribute to ensure that the unreferenced method
+ // optimization skips it and the code will be saved into NGen image.
+ [System.Runtime.CompilerServices.FriendAccessAllowed]
internal static Object UnboxHelper(Object wrapper)
{
Contract.Requires(wrapper != null);
@@ -286,28 +293,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
Contract.Requires(obj != null, "Null should not be boxed.");
Contract.Ensures(Contract.Result<Object>() != null);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginCreateIReference();
- }
-#endif
-
- Object returnObj = CreateIReferenceWorker(obj);
-
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndCreateIReference(returnObj != null ? returnObj.GetType().GetFullNameForEtw() : "");
- }
-#endif
-
- return returnObj;
- }
-
- [SecuritySafeCritical]
- private static Object CreateIReferenceWorker(Object obj)
- {
Type type = obj.GetType();
if (type.IsArray)
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/custompropertyimpl.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/custompropertyimpl.cs
index 6344d096343..bf762dbefe9 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/custompropertyimpl.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/custompropertyimpl.cs
@@ -4,13 +4,12 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
using System.Reflection;
using System.Diagnostics.Contracts;
-using System.Diagnostics.Tracing;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
@@ -69,77 +68,26 @@ namespace System.Runtime.InteropServices.WindowsRuntime
public object GetValue(object target)
{
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginCustomPropertyImplGetValue(target != null ? target.GetType().GetFullNameForEtw() : "", m_property.GetFullNameForEtw());
- }
-#endif
- object o = InvokeInternal(target, null, true);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndCustomPropertyImplGetValue(target != null ? target.GetType().GetFullNameForEtw() : "", m_property.GetFullNameForEtw());
- }
-#endif
- return o;
+ return InvokeInternal(target, null, true);
}
// Unlike normal .Net, Jupiter properties can have at most one indexer parameter. A null
// indexValue here means that the property has an indexer argument and its value is null.
public object GetValue(object target, object indexValue)
{
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginCustomPropertyImplGetValueIndexValue(target != null ? target.GetType().GetFullNameForEtw() : "", indexValue != null ? indexValue.GetType().GetFullNameForEtw() : "");
- }
-#endif
- object o = InvokeInternal(target, new object[] { indexValue }, true);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndCustomPropertyImplGetValueIndexValue(target != null ? target.GetType().GetFullNameForEtw() : "", indexValue != null ? indexValue.GetType().GetFullNameForEtw() : "");
- }
-#endif
- return o;
+ return InvokeInternal(target, new object[] { indexValue }, true);
}
public void SetValue(object target, object value)
{
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginCustomPropertyImplSetValue(target != null ? target.GetType().GetFullNameForEtw() : "", value != null ? value.GetType().GetFullNameForEtw() : "");
- }
-#endif
InvokeInternal(target, new object[] { value }, false);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndCustomPropertyImplSetValue(target != null ? target.GetType().GetFullNameForEtw() : "", value != null ? value.GetType().GetFullNameForEtw() : "");
- }
-#endif
}
// Unlike normal .Net, Jupiter properties can have at most one indexer parameter. A null
// indexValue here means that the property has an indexer argument and its value is null.
public void SetValue(object target, object value, object indexValue)
{
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginCustomPropertyImplSetValueIndexValue(target != null ? target.GetType().GetFullNameForEtw() : "", value != null ? value.GetType().GetFullNameForEtw() : "", indexValue != null ? indexValue.GetType().GetFullNameForEtw() : "");
- }
-#endif
InvokeInternal(target, new object[] { indexValue, value }, false);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndCustomPropertyImplSetValueIndexValue(target != null ? target.GetType().GetFullNameForEtw() : "", value != null ? value.GetType().GetFullNameForEtw() : "", indexValue != null ? indexValue.GetType().GetFullNameForEtw() : "");
- }
-#endif
-
}
[SecuritySafeCritical]
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/dictionarytomapadapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/dictionarytomapadapter.cs
index db7e014764b..94a0d9e60c5 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/dictionarytomapadapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/dictionarytomapadapter.cs
@@ -5,7 +5,7 @@
// ==--==
//
// <OWNER>GPaperin</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/enumeratortoiteratoradapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/enumeratortoiteratoradapter.cs
index a4ee4b1ed8a..60e229954f0 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/enumeratortoiteratoradapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/enumeratortoiteratoradapter.cs
@@ -4,9 +4,9 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/eventregistrationtoken.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/eventregistrationtoken.cs
index 5f96a90e75d..092e43a2bcc 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/eventregistrationtoken.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/eventregistrationtoken.cs
@@ -4,9 +4,9 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/eventregistrationtokentable.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/eventregistrationtokentable.cs
index 2de657df7f7..152e46f3403 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/eventregistrationtokentable.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/eventregistrationtokentable.cs
@@ -4,9 +4,9 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Collections.Generic;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iactivationfactory.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iactivationfactory.cs
index b0cfa61eead..bdcfc012d91 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iactivationfactory.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iactivationfactory.cs
@@ -4,9 +4,9 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>LadiPro</OWNER>
+// <OWNER>RByers</OWNER>
+// <OWNER>ShawnFa</OWNER>
using System;
using System.Runtime.InteropServices;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/icustomproperty.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/icustomproperty.cs
index 0d199998982..4eafca925e7 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/icustomproperty.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/icustomproperty.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>yzha</OWNER>
using System;
using System.Diagnostics.Contracts;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/icustompropertyprovider.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/icustompropertyprovider.cs
index bc692915c60..d505dfac3bb 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/icustompropertyprovider.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/icustompropertyprovider.cs
@@ -4,13 +4,12 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.StubHelpers;
using System.Reflection;
using System.Diagnostics.Contracts;
-using System.Diagnostics.Tracing;
using System.Runtime.InteropServices;
using System.Collections;
using System.Collections.Generic;
@@ -54,24 +53,11 @@ namespace System.Runtime.InteropServices.WindowsRuntime
Contract.Requires(target != null);
Contract.Requires(propertyName != null);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginICustomPropertyProviderCreateProperty(target.GetType().GetFullNameForEtw(), propertyName);
- }
-#endif
// Only return public instance/static properties
PropertyInfo propertyInfo = target.GetType().GetProperty(
propertyName,
BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndICustomPropertyProviderCreateProperty(target.GetType().GetFullNameForEtw(), propertyName);
- }
-#endif
-
if (propertyInfo == null)
return null;
else
@@ -99,13 +85,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
Contract.Requires(target != null);
Contract.Requires(propertyName != null);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.BeginICustomPropertyProviderCreateIndexedProperty(target.GetType().GetFullNameForEtw(), propertyName, indexedParamType != null ? indexedParamType.GetFullNameForEtw() : "");
- }
-#endif
-
// Only return public instance/static properties
PropertyInfo propertyInfo = target.GetType().GetProperty(
propertyName,
@@ -116,13 +95,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
null // ignore type modifier
);
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.EndICustomPropertyProviderCreateIndexedProperty(target.GetType().GetFullNameForEtw(), propertyName, indexedParamType != null ? indexedParamType.GetFullNameForEtw() : "");
- }
-#endif
-
if (propertyInfo == null)
return null;
else
@@ -250,7 +222,7 @@ namespace System.Runtime.InteropServices.WindowsRuntime
{
return _target.GetType();
}
- }
+ }
//
// override ToString() to make sure callers get correct IStringable.ToString() behavior in native code
@@ -259,7 +231,7 @@ namespace System.Runtime.InteropServices.WindowsRuntime
{
return WindowsRuntime.IStringableHelper.ToString(_target);
}
-
+
//
// IGetProxyTarget - unwraps the target object and use it for data binding
//
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iiterable.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iiterable.cs
index ff1ad9c9229..58db0a50ade 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iiterable.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iiterable.cs
@@ -4,8 +4,8 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>LadiPro</OWNER>
+// <OWNER>ShawnFa</OWNER>
using System;
using System.Collections.Generic;
@@ -18,7 +18,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
[ComImport]
[Guid("faa585ea-6214-4217-afda-7f46de5869b3")]
[WindowsRuntimeImport]
- [System.Runtime.ForceTokenStabilization]
internal interface IIterable<T> : IEnumerable<T>
{
[Pure]
@@ -28,7 +27,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
[ComImport]
[Guid("036d2c08-df29-41af-8aa2-d774be62ba6f")]
[WindowsRuntimeImport]
- [System.Runtime.ForceTokenStabilization]
internal interface IBindableIterable
{
[Pure]
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iiterator.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iiterator.cs
index 157e907da04..ab9251987c9 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iiterator.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iiterator.cs
@@ -4,9 +4,9 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>LadiPro</OWNER>
+// <OWNER>RByers</OWNER>
+// <OWNER>ShawnFa</OWNER>
using System;
using System.Diagnostics.Contracts;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/imap.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/imap.cs
index b3a62c8c79e..dda04d6350c 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/imap.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/imap.cs
@@ -4,8 +4,8 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>LadiPro</OWNER>
+// <OWNER>ShawnFa</OWNER>
using System;
using System.Collections.Generic;
@@ -19,7 +19,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
[ComImport]
[Guid("3c2925fe-8519-45c1-aa79-197b6718c1c1")]
[WindowsRuntimeImport]
- [System.Runtime.ForceTokenStabilization]
internal interface IMap<K, V> : IIterable<IKeyValuePair<K, V>>
{
[Pure]
@@ -38,7 +37,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
[ComImport]
[Guid("e480ce40-a338-4ada-adcf-272272e48cb9")]
[WindowsRuntimeImport]
- [System.Runtime.ForceTokenStabilization]
internal interface IMapView<K, V> : IIterable<IKeyValuePair<K, V>>
{
[Pure]
@@ -54,7 +52,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
[ComImport]
[Guid("02b51929-c1c4-4a7e-8940-0312b5c18500")]
[WindowsRuntimeImport]
- [System.Runtime.ForceTokenStabilization]
internal interface IKeyValuePair<K, V>
{
[Pure]
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/imapviewtoireadonlydictionaryadapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/imapviewtoireadonlydictionaryadapter.cs
index 4817cbcf25c..cd73d355f8c 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/imapviewtoireadonlydictionaryadapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/imapviewtoireadonlydictionaryadapter.cs
@@ -5,7 +5,7 @@
// ==--==
//
// <OWNER>GPaperin</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
@@ -98,7 +98,7 @@ namespace System.Runtime.InteropServices.WindowsRuntime
value = _this.Lookup(key);
return true;
}
- catch (Exception ex) // Still may hit this case due to a ----, or a potential bug.
+ catch (Exception ex) // Still may hit this case due to a ----, or a potential
{
if (__HResults.E_BOUNDS == ex._HResult)
{
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ipropertyvalue.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ipropertyvalue.cs
index cdec88e445f..086f209f758 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ipropertyvalue.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ipropertyvalue.cs
@@ -4,9 +4,9 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>LadiPro</OWNER>
+// <OWNER>RByers</OWNER>
+// <OWNER>ShawnFa</OWNER>
using System;
using System.Diagnostics.Contracts;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ireadonlydictionarytoimapviewadapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ireadonlydictionarytoimapviewadapter.cs
index 32433c99c73..9a9c98ab416 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ireadonlydictionarytoimapviewadapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ireadonlydictionarytoimapviewadapter.cs
@@ -5,7 +5,7 @@
// ==--==
//
// <OWNER>GPaperin</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ireadonlylisttoivectorviewadapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ireadonlylisttoivectorviewadapter.cs
index bec4e3e70d0..1bf26b164de 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ireadonlylisttoivectorviewadapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ireadonlylisttoivectorviewadapter.cs
@@ -5,7 +5,7 @@
// ==--==
//
// <OWNER>GPaperin</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ireference.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ireference.cs
index 04e568a8f99..bf53a3a6a96 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ireference.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ireference.cs
@@ -4,9 +4,9 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>LadiPro</OWNER>
+// <OWNER>RByers</OWNER>
+// <OWNER>ShawnFa</OWNER>
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/irestrictederrorinfo.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/irestrictederrorinfo.cs
index e07268eb805..1c1f66c7d03 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/irestrictederrorinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/irestrictederrorinfo.cs
@@ -4,12 +4,15 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
using System;
namespace System.Runtime.InteropServices.WindowsRuntime
{
+#if FEATURE_CORECLR
+ [System.Runtime.CompilerServices.FriendAccessAllowed]
+#endif
[ComImport]
[Guid("82BA7092-4C88-427D-A7BC-16DD93FEB67E")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iteratortoenumeratoradapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iteratortoenumeratoradapter.cs
index ab7dce2e033..e1460806c42 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iteratortoenumeratoradapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iteratortoenumeratoradapter.cs
@@ -4,8 +4,8 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Collections;
@@ -92,7 +92,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// This method is invoked when GetEnumerator is called on a WinRT-backed implementation of IEnumerable.
[SecurityCritical]
- [ForceTokenStabilization]
internal IEnumerator GetEnumerator_Stub()
{
IBindableIterable _this = JitHelpers.UnsafeCast<IBindableIterable>(this);
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ivector.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ivector.cs
index dc931010608..9f74c73ef48 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ivector.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ivector.cs
@@ -4,8 +4,8 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>LadiPro</OWNER>
+// <OWNER>ShawnFa</OWNER>
using System;
using System.Collections.Generic;
@@ -19,7 +19,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
[ComImport]
[Guid("913337e9-11a1-4345-a3a2-4e7f956e222d")]
[WindowsRuntimeImport]
- [System.Runtime.ForceTokenStabilization]
internal interface IVector<T> : IIterable<T>
{
[Pure]
@@ -45,7 +44,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
[ComImport]
[Guid("913337e9-11a1-4345-a3a2-4e7f956e222d")]
[WindowsRuntimeImport]
- [System.Runtime.ForceTokenStabilization]
internal interface IVector_Raw<T> : IIterable<T>
{
[Pure]
@@ -70,7 +68,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
[ComImport]
[Guid("bbe1fa4c-b0e3-4583-baef-1f1b2e483e56")]
[WindowsRuntimeImport]
- [System.Runtime.ForceTokenStabilization]
internal interface IVectorView<T> : IIterable<T>
{
[Pure]
@@ -86,7 +83,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
[ComImport]
[Guid("393de7de-6fd0-4c0d-bb71-47244a113e93")]
[WindowsRuntimeImport]
- [System.Runtime.ForceTokenStabilization]
internal interface IBindableVector : IBindableIterable
{
[Pure]
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ivectorviewtoireadonlylistadapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ivectorviewtoireadonlylistadapter.cs
index 2e0631196df..14e43b37e0a 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ivectorviewtoireadonlylistadapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/ivectorviewtoireadonlylistadapter.cs
@@ -5,7 +5,7 @@
// ==--==
//
// <OWNER>GPaperin</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iwinrtclassactivator.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iwinrtclassactivator.cs
index 8cc05316e35..c049d558057 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iwinrtclassactivator.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/iwinrtclassactivator.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
using System;
using System.Security;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/listtobindablevectoradapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/listtobindablevectoradapter.cs
index 7212db3e4f3..fa9e01eb236 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/listtobindablevectoradapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/listtobindablevectoradapter.cs
@@ -5,7 +5,7 @@
// ==--==
//
// <OWNER>GPaperin</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/listtobindablevectorviewadapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/listtobindablevectorviewadapter.cs
index 80cd46fb64d..08e99c52631 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/listtobindablevectorviewadapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/listtobindablevectorviewadapter.cs
@@ -5,7 +5,7 @@
// ==--==
//
// <OWNER>GPaperin</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/listtovectoradapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/listtovectoradapter.cs
index 7f5e9cf83fa..a093837c5af 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/listtovectoradapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/listtovectoradapter.cs
@@ -5,7 +5,7 @@
// ==--==
//
// <OWNER>GPaperin</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/managedactivationfactory.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/managedactivationfactory.cs
index a519b59eac5..dd963c54a2b 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/managedactivationfactory.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/managedactivationfactory.cs
@@ -4,13 +4,12 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Diagnostics.Contracts;
-using System.Diagnostics.Tracing;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Security;
@@ -48,12 +47,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// with at least one ActivatableAttribute or StaticAttribute.
if (!(type is RuntimeType) || !type.IsExportedToWindowsRuntime)
throw new ArgumentException(Environment.GetResourceString("Argument_TypeNotActivatableViaWindowsRuntime", type), "type");
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.ManagedActivationFactoryConstructor(type.GetFullNameForEtw());
- }
-#endif
m_type = type;
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/maptocollectionadapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/maptocollectionadapter.cs
index ecaedd87be0..c04a9a0cf63 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/maptocollectionadapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/maptocollectionadapter.cs
@@ -5,7 +5,7 @@
// ==--==
//
// <OWNER>GPaperin</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/maptodictionaryadapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/maptodictionaryadapter.cs
index 320397249b3..8b68eca2b56 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/maptodictionaryadapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/maptodictionaryadapter.cs
@@ -5,7 +5,7 @@
// ==--==
//
// <OWNER>GPaperin</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/mapviewtoreadonlycollectionadapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/mapviewtoreadonlycollectionadapter.cs
index d9ea83ecbe7..8854c87e36f 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/mapviewtoreadonlycollectionadapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/mapviewtoreadonlycollectionadapter.cs
@@ -5,7 +5,7 @@
// ==--==
//
// <OWNER>GPaperin</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/nativemethods.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/nativemethods.cs
index 7f94167b414..f9cec78699e 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/nativemethods.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/nativemethods.cs
@@ -4,9 +4,9 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>LadiPro</OWNER>
+// <OWNER>RByers</OWNER>
+// <OWNER>ShawnFa</OWNER>
using System;
using System.Runtime.InteropServices;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/propertyvalue.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/propertyvalue.cs
index 047b4112770..3cd8d0fd79b 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/propertyvalue.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/propertyvalue.cs
@@ -4,10 +4,10 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>BLanders</OWNER>
+// <OWNER>LadiPro</OWNER>
+// <OWNER>RByers</OWNER>
+// <OWNER>ShawnFa</OWNER>
using System;
using System.Diagnostics.Contracts;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/runtimeclass.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/runtimeclass.cs
index bb5a3e4604c..3d55152acc4 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/runtimeclass.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/runtimeclass.cs
@@ -25,7 +25,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime {
[ComImport]
[Guid("96369f54-8eb6-48f0-abce-c1b211e627c3")]
[WindowsRuntimeImport]
- [ForceTokenStabilization]
internal interface IStringable
{
string ToString();
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/vectortocollectionadapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/vectortocollectionadapter.cs
index af4674c3a0d..0443ed2d142 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/vectortocollectionadapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/vectortocollectionadapter.cs
@@ -5,7 +5,7 @@
// ==--==
//
// <OWNER>GPaperin</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/vectortolistadapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/vectortolistadapter.cs
index edc20f2b6ba..51858b00038 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/vectortolistadapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/vectortolistadapter.cs
@@ -5,7 +5,7 @@
// ==--==
//
// <OWNER>GPaperin</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/vectorviewtoreadonlycollectionadapter.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/vectorviewtoreadonlycollectionadapter.cs
index b704460e7f9..f1e95611b3a 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/vectorviewtoreadonlycollectionadapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/vectorviewtoreadonlycollectionadapter.cs
@@ -5,7 +5,7 @@
// ==--==
//
// <OWNER>GPaperin</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/windowsfoundationeventhandler.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/windowsfoundationeventhandler.cs
index 611fd89c955..66a9662514b 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/windowsfoundationeventhandler.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/windowsfoundationeventhandler.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
using System;
@@ -13,6 +13,5 @@ namespace System.Runtime.InteropServices.WindowsRuntime
// WindowsFoundationEventHandler<T> a copy of the definition for the Windows.Foundation.EventHandler<T> delegate
[Guid("9de1c535-6ae1-11e0-84e1-18a905bcc53f")]
[WindowsRuntimeImport]
- [System.Runtime.ForceTokenStabilization]
internal delegate void WindowsFoundationEventHandler<T>(object sender, T args);
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/windowsruntimemarshal.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/windowsruntimemarshal.cs
index a27bc01bad4..c186cf73fe5 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/windowsruntimemarshal.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/windowsruntimemarshal.cs
@@ -4,14 +4,13 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
-using System.Diagnostics.Tracing;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
@@ -1203,7 +1202,7 @@ namespace System.Runtime.InteropServices.WindowsRuntime
return false;
}
-#if FEATURE_COMINTEROP_MANAGED_ACTIVATION
+#if FEATURE_COMINTEROP_WINRT_MANAGED_ACTIVATION
// Get an IActivationFactory * for a managed type
[SecurityCritical]
internal static IntPtr GetActivationFactoryForType(Type type)
@@ -1279,25 +1278,18 @@ namespace System.Runtime.InteropServices.WindowsRuntime
if (type == null)
throw new ArgumentNullException("type");
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.WindowsRuntimeMarshalGetActivationFactory(type.GetFullNameForEtw());
- }
-#endif
-
if (type.IsWindowsRuntimeObject && type.IsImport)
{
return (IActivationFactory)Marshal.GetNativeActivationFactory(type);
}
else
{
-#if !FEATURE_CORECLR
+#if FEATURE_COMINTEROP_WINRT_MANAGED_ACTIVATION
return GetManagedActivationFactory(type);
-#else // FEATURE_CORECLR
+#else
// Managed factories are not supported so as to minimize public surface (and test effort)
throw new NotSupportedException();
-#endif // !FEATURE_CORECLR
+#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/windowsruntimemetadata.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/windowsruntimemetadata.cs
index 137a190b607..ff320ed95cd 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/windowsruntimemetadata.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/windowsruntimemetadata.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace System.Runtime.InteropServices.WindowsRuntime
{
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/winrtclassactivator.cs b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/winrtclassactivator.cs
index 3de33410c57..0aa99ce421f 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/winrtclassactivator.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/interopservices/windowsruntime/winrtclassactivator.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/memoryfailpoint.cs b/mcs/class/referencesource/mscorlib/system/runtime/memoryfailpoint.cs
index c01585fb423..5e6810c225f 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/memoryfailpoint.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/memoryfailpoint.cs
@@ -321,7 +321,7 @@ namespace System.Runtime
{
bool r;
Win32Native.MEMORYSTATUSEX memory = new Win32Native.MEMORYSTATUSEX();
- r = Win32Native.GlobalMemoryStatusEx(memory);
+ r = Win32Native.GlobalMemoryStatusEx(ref memory);
if (!r)
__Error.WinIOError();
availPageFile = memory.availPageFile;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/activationservices.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/activationservices.cs
index d4abed638f2..4e57e1e55b9 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/activationservices.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/activationservices.cs
@@ -198,7 +198,6 @@ namespace System.Runtime.Remoting.Activation {
return retObj;
}
-#if FEATURE_COMINTEROP
[System.Security.SecurityCritical] // auto-generated
private static MarshalByRefObject CreateObjectForCom(
RuntimeType serverType, Object[] props, bool bNewObj)
@@ -230,7 +229,6 @@ namespace System.Runtime.Remoting.Activation {
Contract.Assert(null != retObj, "null != retObj");
return retObj;
}
-#endif // FEATURE_COMINTEROP
// For types with no proxy attribute, we take the default route of
// querying attributes if the current context is suitable for
@@ -1747,7 +1745,7 @@ namespace System.Runtime.Remoting.Activation {
// Need to grow our arrays ... this will be exceedingly rare
Object[] newTypes = new Object[activationTypes.Length * 2];
Object[] newAttr = new Object[activationAttributes.Length * 2];
- Contract.Assert(newAttr.Length == newTypes.Length,"These should be in [....]!");
+ Contract.Assert(newAttr.Length == newTypes.Length,"These should be in sync!");
Array.Copy(activationTypes, newTypes, activationTypes.Length);
Array.Copy(activationAttributes, newAttr, activationAttributes.Length);
activationTypes = newTypes;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/callcontext.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/callcontext.cs
index 397c8461c54..6ed752cb05f 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/callcontext.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/callcontext.cs
@@ -127,9 +127,9 @@ namespace System.Runtime.Remoting.Messaging{
}
}
- // <STRIP>For callContexts we intend to expose only name, value dictionary
- // type of behavior for now. We will re-consider if we need to expose
- // the other functions above for Beta-2.</STRIP>
+ // <
+
+
[System.Security.SecurityCritical] // auto-generated
public static Object GetData(String name)
{
@@ -644,7 +644,7 @@ namespace System.Runtime.Remoting.Messaging{
}
return currentPrincipal;
}
-#if FEATURE_REMOTING
+
// Takes outgoing headers and inserts them
[System.Security.SecurityCritical] // auto-generated
internal void PropagateOutgoingHeadersToMessage(IMessage msg)
@@ -672,7 +672,7 @@ namespace System.Runtime.Remoting.Messaging{
}
}
} // PropagateOutgoingHeadersToMessage
-#endif
+
// Retrieve key to use for header.
internal static String GetPropertyKeyForHeader(Header header)
{
@@ -685,7 +685,6 @@ namespace System.Runtime.Remoting.Messaging{
return header.Name;
} // GetPropertyKeyForHeader
-#if FEATURE_REMOTING
// Take headers out of message and stores them in call context
[System.Security.SecurityCritical] // auto-generated
internal void PropagateIncomingHeadersToCallContext(IMessage msg)
@@ -747,7 +746,6 @@ namespace System.Runtime.Remoting.Messaging{
_recvHeaders = headers;
_sendHeaders = null;
} // PropagateIncomingHeadersToCallContext
-#endif // FEATURE_REMOTING
} // class LogicalCallContext
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/channelservices.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/channelservices.cs
index 3f5593c8a14..cc38933cfe8 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/channelservices.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/channelservices.cs
@@ -6,7 +6,7 @@ using System.Diagnostics.Contracts;
// ==--==
//* File: Channel.cs
//*
-//* <EMAIL>Author: Tarun Anand ([....])</EMAIL>
+//* <EMAIL>Author: Tarun Anand (Microsoft)</EMAIL>
//*
//* Purpose: Defines the general purpose remoting proxy
//*
@@ -1191,9 +1191,9 @@ namespace System.Runtime.Remoting.Channels {
// This list should be considered immutable once created.
- // <STRIP>Ideally, this class would encapsulate more functionality, but
- // to help minimize the number of changes in the RTM tree, only
- // a small amount of code has been moved here.</STRIP>
+ // <
+
+
internal class RegisteredChannelList
{
private RegisteredChannel[] _channels;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/channelsinkstacks.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/channelsinkstacks.cs
index 20709a5bd9c..95d3b542f76 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/channelsinkstacks.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/channelsinkstacks.cs
@@ -453,7 +453,7 @@ namespace System.Runtime.Remoting.Channels {
} // ServerChannelSinkStack
- // helper class for transforming [....] message parameter lists into its
+ // helper class for transforming sync message parameter lists into its
// async counterparts
internal static class AsyncMessageHelper
{
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/clientsponsor.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/clientsponsor.cs
index 07758b1775b..d20b7b9ef9c 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/clientsponsor.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/clientsponsor.cs
@@ -7,9 +7,9 @@
//
// File: ClientSponsor.cs
//
-// Contents: Agent for keeping Server Object's lifetime in [....] with a client's lifetime
+// Contents: Agent for keeping Server Object's lifetime in sync with a client's lifetime
//
-// History: 8/9/00 <EMAIL>[....]</EMAIL> Created
+// History: 8/9/00 <EMAIL>Microsoft</EMAIL> Created
//
//+----------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/configuration.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/configuration.cs
index a853fb62598..dc299d0898e 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/configuration.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/configuration.cs
@@ -844,7 +844,7 @@ namespace System.Runtime.Remoting {
lock (Info)
{
// We make an entry in our config tables so as to keep
- // both the file-based and programmatic config in [....].
+ // both the file-based and programmatic config in sync.
Info.AddWellKnownEntry(entry);
}
} // RegisterWellKnownServiceType
@@ -1592,7 +1592,11 @@ namespace System.Runtime.Remoting {
// type, and forwards incoming messages to the actual proxy.
RedirectionProxy redirectedProxy = new RedirectionProxy(obj, serverType);
redirectedProxy.ObjectMode = mode;
- RemotingServices.MarshalInternal(redirectedProxy, URI, serverType);
+
+ // DevDiv 720951 and 911924:
+ // 'isInitializing' is propagated into the new ServerIdentity so that other concurrent
+ // operations that find it in URITable do not use it prematurely.
+ RemotingServices.MarshalInternal(redirectedProxy, URI, serverType, updateChannelData: true, isInitializing: true);
srvID = (ServerIdentity)IdentityHolder.ResolveIdentity(URI);
Contract.Assert(null != srvID, "null != srvID");
@@ -1608,7 +1612,9 @@ namespace System.Runtime.Remoting {
// recreated when an RPC server not available is thrown
// if dllhost.exe is killed.
ComRedirectionProxy comRedirectedProxy = new ComRedirectionProxy(obj, serverType);
- RemotingServices.MarshalInternal(comRedirectedProxy, URI, serverType);
+
+ // DevDiv 720951 and 911924: isInitializing = true
+ RemotingServices.MarshalInternal(comRedirectedProxy, URI, serverType, updateChannelData: true, isInitializing: true);
srvID = (ServerIdentity)IdentityHolder.ResolveIdentity(URI);
Contract.Assert(null != srvID, "null != srvID");
@@ -1628,8 +1634,9 @@ namespace System.Runtime.Remoting {
"Remoting_WellKnown_CtorCantMarshal"),
URI));
}
-
- RemotingServices.MarshalInternal(obj, URI, serverType);
+
+ // DevDiv 720951 and 911924: isInitializing = true
+ RemotingServices.MarshalInternal(obj, URI, serverType, updateChannelData: true, isInitializing: true);
srvID = (ServerIdentity)IdentityHolder.ResolveIdentity(URI);
Contract.Assert(null != srvID, "null != srvID");
@@ -1646,12 +1653,31 @@ namespace System.Runtime.Remoting {
srvID.SetSingletonObjectMode();
}
}
+
}
catch
{
+ // DevDiv 720951 and 911924:
+ // An exception thrown in the scope of this attempt to create a
+ // new ServerIdentity may leave a ServerIdentity instance in the
+ // URITable that has not been properly initialized. This condition
+ // has been true for all versions of the framework but was first
+ // recognized in making this fix in 4.5.3. Ideally, a damaged
+ // ServerIdentity should be removed from URITable. But due to risk
+ // and lack of customer reports of a problem, we chose not to fix it.
throw;
}
finally {
+
+ // DevDiv 720951 and 911924:
+ // This flag is cleared only after the new ServerIdentity is completely
+ // initialized and ready for use. It is done here in the 'finally' to
+ // ensure all exit paths reset the flag, including exceptions.
+ if (srvID != null)
+ {
+ srvID.IsInitializing = false;
+ }
+
SecurityPermission.RevertAssert();
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/context.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/context.cs
index 91d0bbecfd1..7ee42e4f6ac 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/context.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/context.cs
@@ -436,7 +436,7 @@ namespace System.Runtime.Remoting.Contexts {
}
iSink++;
}
- // now check if we ----d and set appropriately
+ // now check if we raced and set appropriately
lock (this)
{
if (_clientContextChain==null)
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/crossappdomainchannel.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/crossappdomainchannel.cs
index 010996b9ea8..a6c628de3dd 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/crossappdomainchannel.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/crossappdomainchannel.cs
@@ -284,7 +284,7 @@ namespace System.Runtime.Remoting.Channels {
// warning in CrossAppDomainSink::.ctor above
//
lock(staticSyncObject) {
- // Note: keep this in [....] with DomainUnloaded below
+ // Note: keep this in sync with DomainUnloaded below
int key = xadData.DomainID;
if (_sinks == null)
{
@@ -321,7 +321,7 @@ namespace System.Runtime.Remoting.Channels {
{
return;
}
- // Note: keep this in [....] with FindOrCreateSink
+ // Note: keep this in sync with FindOrCreateSink
int i = 0;
int remove = -1;
while (_sinks[i] != null)
@@ -476,7 +476,7 @@ namespace System.Runtime.Remoting.Channels {
[System.Security.SecurityCritical] // auto-generated
public virtual IMessage SyncProcessMessage(IMessage reqMsg)
{
- Message.DebugOut("\n::::::::::::::::::::::::: CrossAppDomain Channel: [....] call starting");
+ Message.DebugOut("\n::::::::::::::::::::::::: CrossAppDomain Channel: Sync call starting");
IMessage errMsg = InternalSink.ValidateMessage(reqMsg);
if (errMsg != null)
{
@@ -520,7 +520,7 @@ namespace System.Runtime.Remoting.Channels {
// will terminate the security stackwalk caused when
// serialization checks for the correct permissions at the
// remoting stack frame so the check won't continue on to
- // the user and fail. <EMAIL>[from [....]]</EMAIL>
+ // the user and fail. <EMAIL>[from Microsoft]</EMAIL>
// We will hold off from doing this for x-process channels
// until the big picture of distributed security is finalized.
@@ -560,7 +560,7 @@ namespace System.Runtime.Remoting.Channels {
if (responseBytes != null) {
retStm = new MemoryStream(responseBytes);
- Message.DebugOut("::::::::::::::::::::::::::: CrossAppDomain Channel: [....] call returning!!\n");
+ Message.DebugOut("::::::::::::::::::::::::::: CrossAppDomain Channel: Sync call returning!!\n");
//*********************** DESERIALIZE RET-MSG **************
desRetMsg = CrossAppDomainSerializer.DeserializeMessage(retStm, reqMsg as IMethodCallMessage);
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/crosscontextchannel.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/crosscontextchannel.cs
index 154fc9839c5..52aaf451e8f 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/crosscontextchannel.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/crosscontextchannel.cs
@@ -133,7 +133,7 @@ namespace System.Runtime.Remoting.Channels {
try
{
- Message.DebugOut("\n::::::::::::::::::::::::: CrossContext Channel: [....] call starting");
+ Message.DebugOut("\n::::::::::::::::::::::::: CrossContext Channel: Sync call starting");
IMessage errMsg = ValidateMessage(reqMsg);
if (errMsg != null)
{
@@ -163,7 +163,7 @@ namespace System.Runtime.Remoting.Channels {
}
}
- Message.DebugOut("::::::::::::::::::::::::::: CrossContext Channel: [....] call returning!!\n");
+ Message.DebugOut("::::::::::::::::::::::::::: CrossContext Channel: Sync call returning!!\n");
return replyMsg;
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/identity.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/identity.cs
index e6362ccb417..957e8dfce9e 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/identity.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/identity.cs
@@ -139,8 +139,6 @@ namespace System.Runtime.Remoting {
return (String.CompareOrdinal(s1, 0, prefix, 0, prefix.Length) == 0);
} // StringStartsWith
-
-
// DISCONNECTED_FULL denotes that the object is disconnected
// from both local & remote (x-appdomain & higher) clients
@@ -177,6 +175,9 @@ namespace System.Runtime.Remoting {
// Lease for object
internal Lease _lease;
+ // Set when Identity is initializing and not yet ready for use.
+ private volatile bool _initializing;
+
internal static String ProcessGuid {get {return ProcessIDGuid;}}
private static int GetNextSeqNum()
@@ -233,6 +234,15 @@ namespace System.Runtime.Remoting {
}
}
+ internal bool IsInitializing {
+ get {
+ return (_initializing);
+ }
+ set {
+ _initializing = value;
+ }
+ }
+
internal bool IsWellKnown()
{
return (_flags&IDFLG_WELLKNOWN) == IDFLG_WELLKNOWN;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/identityholder.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/identityholder.cs
index 3b0fc3a46a1..6959edaf974 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/identityholder.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/identityholder.cs
@@ -28,13 +28,19 @@ namespace System.Runtime.Remoting {
internal struct IdOps
{
internal const int None = 0x00000000;
- internal const int GenerateURI = 0x00000001;
- internal const int StrongIdentity = 0x00000002;
+ internal const int GenerateURI = 0x00000001;
+ internal const int StrongIdentity = 0x00000002;
+ internal const int IsInitializing = 0x00000004; // Identity has not been fully initialized yet
internal static bool bStrongIdentity(int flags)
{
return (flags&StrongIdentity)!=0;
}
+
+ internal static bool bIsInitializing(int flags)
+ {
+ return (flags & IsInitializing) != 0;
+ }
}
// Internal enum to specify options for SetIdentity
@@ -201,7 +207,16 @@ namespace System.Runtime.Remoting {
Identity id = CasualResolveReference(URITable[MakeURIKeyNoLower(uri)]);
if (id == null) {
id = CasualResolveReference(URITable[MakeURIKey(uri)]);
- if(id == null)
+
+ // DevDiv 720951 and 911924:
+ // CreateWellKnownObject inserts the Identity into the URITable before
+ // it is fully initialized. This can cause a race condition if another
+ // concurrent operation re-enters this code and attempts to use it.
+ // If we discover this situation, behave as if it is not in the URITable.
+ // This falls into the code below to call CreateWellKnownObject again.
+ // That method operates under a lock and will not return until it
+ // has been fully initialized. It will not create or initialize twice.
+ if (id == null || id.IsInitializing)
{
// Check if this a well-known object which needs to be faulted in
id = RemotingConfigHandler.CreateWellKnownObject(uri);
@@ -290,6 +305,16 @@ namespace System.Runtime.Remoting {
srvID = (ServerIdentity) rp.IdentityObject;
}
+ // DevDiv 720951 and 911924:
+ // CreateWellKnownObject creates a ServerIdentity and places it in URITable
+ // before it is fully initialized. This transient flag is set to to prevent
+ // other concurrent operations from using it. CreateWellKnownObject is the
+ // only code path that sets this flag, and by default it is false.
+ if (IdOps.bIsInitializing(flags))
+ {
+ srvID.IsInitializing = true;
+ }
+
Message.DebugOut("Created ServerIdentity \n");
}
@@ -424,7 +449,7 @@ namespace System.Runtime.Remoting {
if (takeAndRelease)
rwlock.AcquireWriterLock(INFINITE);
- // SetIdentity will give the correct Id if we ----d
+ // SetIdentity will give the correct Id if we raced
// between the ResolveIdentity call above and now.
// (we are unmarshaling, and the server should guarantee
// that the uri is unique, so we will use an existing identity
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/iinternalmessage.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/iinternalmessage.cs
index b191318fafe..86603084502 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/iinternalmessage.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/iinternalmessage.cs
@@ -19,8 +19,8 @@ namespace System.Runtime.Remoting.Messaging {
using System.Runtime.Remoting;
using System.Security.Permissions;
using System;
- // <
-
+ // <TODO>Change this back to internal when the classes implementing this interface
+ // are also made internal TarunA 12/16/99</TODO>
internal interface IInternalMessage
{
ServerIdentity ServerIdentityObject
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/ilease.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/ilease.cs
index 6160ef466df..3526e4c09e1 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/ilease.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/ilease.cs
@@ -10,7 +10,7 @@
//
// Contents: Interface for Lease
//
-// History: 1/5/00 <EMAIL>[....]</EMAIL> Created
+// History: 1/5/00 <EMAIL>pdejong</EMAIL> Created
//
//+----------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/isponsor.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/isponsor.cs
index 0abf23849e5..26f96699a4b 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/isponsor.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/isponsor.cs
@@ -10,7 +10,7 @@
//
// Contents: Interface for Sponsors
//
-// History: 1/5/00 <EMAIL>[....]</EMAIL> Created
+// History: 1/5/00 <EMAIL>pdejong</EMAIL> Created
//
//+----------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/lease.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/lease.cs
index a0884ce4e52..cafb08d7099 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/lease.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/lease.cs
@@ -10,7 +10,7 @@
//
// Contents: Lease class
//
-// History: 1/5/00 <EMAIL>[....]</EMAIL> Created
+// History: 1/5/00 <EMAIL>Microsoft</EMAIL> Created
//
//+----------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/leasemanager.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/leasemanager.cs
index 464f27515f1..8acbeb04933 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/leasemanager.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/leasemanager.cs
@@ -10,7 +10,7 @@
//
// Contents: Administers the leases in an appdomain
//
-// History: 1/5/00 <EMAIL>[....]</EMAIL> Created
+// History: 1/5/00 <EMAIL>Microsoft</EMAIL> Created
//
//+----------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/leasestate.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/leasestate.cs
index 5e9734e3524..6b189246e4b 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/leasestate.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/leasestate.cs
@@ -10,7 +10,7 @@
//
// Contents: Lease States
//
-// History: 1/5/00 <EMAIL>[....]</EMAIL> Created
+// History: 1/5/00 <EMAIL>pdejong</EMAIL> Created
//
//+----------------------------------------------------------------------------
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/message.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/message.cs
index 4cba7cf9b12..dda57505bcc 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/message.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/message.cs
@@ -48,7 +48,7 @@ namespace System.Runtime.Remoting.Messaging {
{
// *** NOTE ***
- // Keep these in [....] with the flags in Message.h
+ // Keep these in sync with the flags in Message.h
// flags
internal const int Sync = 0; // Synchronous call
internal const int BeginAsync = 1; // Async Begin call
@@ -2018,7 +2018,7 @@ namespace System.Runtime.Remoting.Messaging {
}
return null;
}
- [System.Security.SecuritySafeCritical] // TODO: review - implements transparent public method
+ [System.Security.SecuritySafeCritical] //
set
{
if (ContainsSpecialKey(key))
@@ -5502,7 +5502,7 @@ namespace System.Runtime.Remoting.Messaging {
//
// Helper methods for expanding and contracting argument lists
- // when translating from async methods to [....] methods and back.
+ // when translating from async methods to sync methods and back.
//
internal static Object[] ExpandAsyncEndArgsToSyncArgs(RemotingMethodCachedData syncMethod,
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/objref.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/objref.cs
index 4336d1cda8b..a88d0220a0d 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/objref.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/objref.cs
@@ -632,9 +632,9 @@ namespace System.Runtime.Remoting {
if (oldChannelData == null)
return oldChannelInfo;
- // <STRIP>This will work for the IIS scenario since the machine name + application name
- // will differentiate the url. If we generalize this mechanism in the future,
- // we should only [....] the url if the ObjRef is from the current appdomain.</STRIP>
+ // <
+
+
String[] bashInfo = (String[])CallContext.GetData("__bashChannelUrl");
if (bashInfo == null)
return oldChannelInfo;
@@ -642,21 +642,21 @@ namespace System.Runtime.Remoting {
String urlToBash = bashInfo[0];
String replacementUrl = bashInfo[1];
- // Copy channel info and go [....] urls.
+ // Copy channel info and go Microsoft urls.
ChannelInfo newChInfo = new ChannelInfo();
newChInfo.ChannelData = new Object[oldChannelData.Length];
for (int co = 0; co < oldChannelData.Length; co++)
{
newChInfo.ChannelData[co] = oldChannelData[co];
- // see if this is one of the ones that we need to [....]
+ // see if this is one of the ones that we need to Microsoft
ChannelDataStore channelDataStore = newChInfo.ChannelData[co] as ChannelDataStore;
if (channelDataStore != null)
{
String[] urls = channelDataStore.ChannelUris;
if ((urls != null) && (urls.Length == 1) && urls[0].Equals(urlToBash))
{
- // We want to [....] just the url, so we do a shallow copy
+ // We want to Microsoft just the url, so we do a shallow copy
// and replace the url array with the replacementUrl.
ChannelDataStore newChannelDataStore = channelDataStore.InternalShallowCopy();
newChannelDataStore.ChannelUris = new String[1];
@@ -759,7 +759,6 @@ namespace System.Runtime.Remoting {
[System.Security.SecurityCritical] // auto-generated
private Object GetCustomMarshaledCOMObject(Object ret)
{
-#if FEATURE_COMINTEROP
// Some special work we need to do for __COMObject
// (Note that we use typeInfo to detect this case instead of
// calling GetType on 'ret' so as to not refine the proxy)
@@ -817,7 +816,6 @@ namespace System.Runtime.Remoting {
}
}
}
-#endif // FEATURE_COMINTEROP
return ret;
}
@@ -997,7 +995,6 @@ namespace System.Runtime.Remoting {
requestedType.ToString())); ;
}
-#if FEATURE_COMINTEROP
// Create the type info
if(serverType.IsCOMObject)
{
@@ -1006,7 +1003,6 @@ namespace System.Runtime.Remoting {
TypeInfo = (IRemotingTypeInfo) dt;
}
else
-#endif // FEATURE_COMINTEROP
{
RemotingTypeCachedData cache = (RemotingTypeCachedData)
InternalRemotingServices.GetReflectionCachedData(typeOfObj);
@@ -1027,7 +1023,7 @@ namespace System.Runtime.Remoting {
Object[] channelData = chan.ChannelData;
int channelDataLength = channelData.Length;
Object[] newChannelData = new Object[channelDataLength];
- // Clone the data so that we dont [....] the current appdomain data which is stored
+ // Clone the data so that we dont Microsoft the current appdomain data which is stored
// as a static
Array.Copy(channelData, newChannelData, channelDataLength);
for (int i = 0; i < channelDataLength; i++)
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/realproxy.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/realproxy.cs
index e53e0ba030e..c574c932796 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/realproxy.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/realproxy.cs
@@ -35,7 +35,7 @@ namespace System.Runtime.Remoting.Proxies {
using System.Diagnostics.Contracts;
- // NOTE: Keep this in [....] with unmanaged enum definition in Remoting.h
+ // NOTE: Keep this in sync with unmanaged enum definition in Remoting.h
[Serializable]
internal enum CallType
{
@@ -52,7 +52,7 @@ namespace System.Runtime.Remoting.Proxies {
Initialized = 0x2
};
- // NOTE: Keep this in [....] with unmanaged struct "messageData" in Remoting.h
+ // NOTE: Keep this in sync with unmanaged struct "messageData" in Remoting.h
[System.Runtime.InteropServices.StructLayout(LayoutKind.Sequential)]
internal struct MessageData
{
@@ -641,7 +641,6 @@ namespace System.Runtime.Remoting.Proxies {
return retMsg;
} // EndInvokeHelper
-#if FEATURE_COMINTEROP
// itnerop methods
[System.Security.SecurityCritical] // auto-generated
public virtual IntPtr GetCOMIUnknown(bool fIsMarshalled)
@@ -659,7 +658,6 @@ namespace System.Runtime.Remoting.Proxies {
{
return IntPtr.Zero;
}
-#endif // FEATURE_COMINTEROP
// Method used for traversing back to the TP
public virtual Object GetTransparentProxy()
@@ -744,7 +742,7 @@ namespace System.Runtime.Remoting.Proxies {
// but the constructormessage hasn't been setup.
// so let us just bail out..
// this is currently used by ServicedComponent's for cross appdomain
- // pooling: <EMAIL>[....]</EMAIL>
+ // pooling: <EMAIL>Microsoft</EMAIL>
//
ctorMsg = new ConstructorCallMessage(null, null, null, (RuntimeType)GetProxiedType());
// Set the constructor frame info in the CCM
@@ -836,7 +834,7 @@ namespace System.Runtime.Remoting.Proxies {
{
// This was a begin-async on a non-Remoting Proxy. For V-1 they
- // cannot support Async and end up doing a [....] call. We need
+ // cannot support Async and end up doing a Sync call. We need
// to fill up here to make the call look like async to
// the caller.
// Create the async result to return
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingattributes.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingattributes.cs
index 244006ea4d7..a11ffd983c5 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingattributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingattributes.cs
@@ -258,7 +258,7 @@ namespace System.Runtime.Remoting.Metadata
// parameter maps
// NOTE: these fields are all initialized at the same time however access to
// the internal property of each field is locked only on that specific field
- // having been initialized. - [....]
+ // having been initialized. - Microsoft
private int[] _inRefArgMap = null; // parameter map of input and ref parameters
private int[] _outRefArgMap = null; // parameter map of out and ref parameters (exactly all byref parameters)
private int[] _outOnlyArgMap = null; // parameter map of only output parameters
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingconfigparser.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingconfigparser.cs
index ad0e587547a..2d822201930 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingconfigparser.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingconfigparser.cs
@@ -689,8 +689,8 @@ namespace System.Runtime.Remoting.Activation {
private static void ReportError(String errorStr, RemotingXmlConfigFileData configData)
{
- // <STRIP>NOTE: In the future, this might log all errors to the configData object
- // instead of throwing immediately.</STRIP>
+ // <
+
throw new RemotingException(errorStr);
} // ReportError
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingproxy.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingproxy.cs
index e5689202d45..3898b45afc6 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingproxy.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingproxy.cs
@@ -233,7 +233,7 @@ namespace System.Runtime.Remoting.Proxies {
// This is called for all remoted calls on a TP except Ctors
- // The method called may be [....], Async or OneWay(special case of Async)
+ // The method called may be Sync, Async or OneWay(special case of Async)
// In the Async case we come here for both BeginInvoke & EndInvoke
internal virtual IMessage InternalInvoke(
IMethodCallMessage reqMcmMsg, bool useDispatchMessage, int callType)
@@ -588,7 +588,6 @@ namespace System.Runtime.Remoting.Proxies {
}
}
-#if FEATURE_COMINTEROP
// interop methods
[System.Security.SecurityCritical]
public override IntPtr GetCOMIUnknown(bool fIsBeingMarshalled)
@@ -634,7 +633,6 @@ namespace System.Runtime.Remoting.Proxies {
{
// for now ignore this
}
-#endif // FEATURE_COMINTEROP
// Check whether we can cast the transparent proxy to the given type
[System.Security.SecurityCritical]
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingservices.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingservices.cs
index c27996c8c86..679d4eff45a 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingservices.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/remotingservices.cs
@@ -6,7 +6,7 @@
//
// File: RemotingServices.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Author(s): <EMAIL>Gopal Kakivaya (GopalK)</EMAIL>
//
@@ -198,8 +198,8 @@ namespace System.Runtime.Remoting {
// Note: for each of these calls that take a RuntimeXXX reflection
// structure, there is a wrapper that takes XXX and throws if it is
// not a RuntimeXXX. This is to avoid clutter in code where these
- // methods are called. <BUGNUM>(48721)</BUGNUM> <STRIP> Ideally this should have been done
- // as a breaking change to the public APIs that use them!</STRIP>
+ // methods are called. <BUGNUM>(48721)</BUGNUM> <
+
[System.Security.SecurityCritical] // auto-generated
internal static Object CreateTransparentProxy(
@@ -488,7 +488,14 @@ namespace System.Runtime.Remoting {
// Internal flavor without security!
[System.Security.SecurityCritical] // auto-generated
internal static ObjRef MarshalInternal(MarshalByRefObject Obj, String ObjURI, Type RequestedType, bool updateChannelData)
- {
+ {
+ return MarshalInternal(Obj, ObjURI, RequestedType, updateChannelData, isInitializing: false);
+ }
+
+ // Internal flavor without security!
+ [System.Security.SecurityCritical] // auto-generated
+ internal static ObjRef MarshalInternal(MarshalByRefObject Obj, String ObjURI, Type RequestedType, bool updateChannelData, bool isInitializing)
+ {
BCLDebug.Trace("REMOTE", "Entered Marshal for URI" + ObjURI + "\n");
if (null == Obj)
@@ -497,7 +504,7 @@ namespace System.Runtime.Remoting {
ObjRef objectRef = null;
Identity idObj = null;
- idObj = GetOrCreateIdentity(Obj, ObjURI);
+ idObj = GetOrCreateIdentity(Obj, ObjURI, isInitializing);
if (RequestedType != null)
{
ServerIdentity srvIdObj = idObj as ServerIdentity;
@@ -609,7 +616,7 @@ namespace System.Runtime.Remoting {
{
int channelDataLength = channelData.Length;
Object[] newChannelData = new Object[channelDataLength];
- // Clone the data so that we dont [....] the current appdomain data which is stored
+ // Clone the data so that we dont Microsoft the current appdomain data which is stored
// as a static
Array.Copy(channelData, newChannelData, channelDataLength);
for (int i = 0; i < channelDataLength; i++)
@@ -658,8 +665,20 @@ namespace System.Runtime.Remoting {
[System.Security.SecurityCritical] // auto-generated
private static Identity GetOrCreateIdentity(
MarshalByRefObject Obj,
- String ObjURI)
+ String ObjURI,
+ bool isInitializing)
{
+ int idOpsFlags = IdOps.StrongIdentity;
+
+ // DevDiv 720951 and 911924:
+ // This flag is propagated into the new ServerIdentity to indicate
+ // it is not yet ready for use. CreateWellKnownObject is the only
+ // code path that sets it to 'true'.
+ if (isInitializing)
+ {
+ idOpsFlags |= IdOps.IsInitializing;
+ }
+
Identity idObj = null;
if (IsTransparentProxy(Obj))
{
@@ -679,7 +698,7 @@ namespace System.Runtime.Remoting {
idObj = IdentityHolder.FindOrCreateServerIdentity(
Obj,
ObjURI,
- IdOps.StrongIdentity);
+ idOpsFlags);
idObj.RaceSetTransparentProxy(Obj);
}
@@ -712,7 +731,7 @@ namespace System.Runtime.Remoting {
idObj = IdentityHolder.FindOrCreateServerIdentity(
srvID.TPOrObject,
ObjURI,
- IdOps.StrongIdentity);
+ idOpsFlags);
// if an objURI was specified we need to make sure that
// the same one was used.
@@ -776,7 +795,7 @@ namespace System.Runtime.Remoting {
idObj = IdentityHolder.FindOrCreateServerIdentity(
Obj,
ObjURI,
- IdOps.StrongIdentity);
+ idOpsFlags);
// If the object had an ID to begin with that is the one
// we must have set in the table.
@@ -2477,9 +2496,9 @@ namespace System.Runtime.Remoting {
// A qualified type name describes the name that we use in the ObjRef and
// message TypeName. It consists either of the actual type name or
// "<typeId>:typename" where for now "soap:<soap type name>" is the only
- // supported alternative. <STRIP>In the future, we may make this type resolution
- // extensible and publicly exposed.</STRIP>
- //
+ // supported alternative. <
+
+
// This is used by the cached type data to figure out which type name
// to use (this should never be publicly exposed; GetDefaultQualifiedTypeName should,
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/soapinteroptypes.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/soapinteroptypes.cs
index 07d820acf83..21de0d6cd08 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/soapinteroptypes.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/soapinteroptypes.cs
@@ -231,7 +231,7 @@ namespace System.Runtime.Remoting.Metadata.W3cXsd2001
{
// Convert from ISO/xsd TimeDuration to urt TimeSpan
// The form of the time duration is PxxYxxDTxxHxxMxx.xxxS or PxxYxxDTxxHxxMxxS
- // Keep in [....] with Message.cs
+ // Keep in sync with Message.cs
public static String XsdType
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/synchronizeddispatch.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/synchronizeddispatch.cs
index dc03e3ee70c..7ade238a044 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/synchronizeddispatch.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/synchronizeddispatch.cs
@@ -271,7 +271,7 @@ namespace System.Runtime.Remoting.Contexts {
/*
* Call back function -- executed for each work item that
* was enqueued. This is invoked by a thread-pool thread for
- * async work items and the caller thread for [....] items.
+ * async work items and the caller thread for sync items.
*/
private void DispatcherCallBack(Object stateIgnored, bool ignored)
{
@@ -356,7 +356,7 @@ namespace System.Runtime.Remoting.Contexts {
// See if we found a non-signaled work item at the head.
if (bNotify)
{
- // In both [....] and async cases we just hand off the _locked state to
+ // In both sync and async cases we just hand off the _locked state to
// the next thread which will execute.
if (nextWork.IsAsync())
{
@@ -366,7 +366,7 @@ namespace System.Runtime.Remoting.Contexts {
}
else
{
- // [....]-WorkItem: notify the waiting [....]-thread.
+ // Sync-WorkItem: notify the waiting sync-thread.
lock(nextWork)
{
Monitor.Pulse(nextWork);
@@ -419,7 +419,7 @@ namespace System.Runtime.Remoting.Contexts {
}
else
{
- // [....] work is queued only if there are other items
+ // Sync work is queued only if there are other items
// already in the queue.
lock(work)
{
@@ -434,7 +434,7 @@ namespace System.Runtime.Remoting.Contexts {
}
else
{
- //DBGConsole.WriteLine(Thread.CurrentThread.GetHashCode()+"] ~~~ ENQUEUE [....]!" + (work.IsDummy()?" DUMMY ":" REAL ") + work._thread);
+ //DBGConsole.WriteLine(Thread.CurrentThread.GetHashCode()+"] ~~~ ENQUEUE Sync!" + (work.IsDummy()?" DUMMY ":" REAL ") + work._thread);
bQueued = true;
work.SetWaiting();
_workItemQueue.Enqueue(work);
@@ -514,7 +514,7 @@ namespace System.Runtime.Remoting.Contexts {
// This returns TRUE only if it is a non-reEntrant context
// AND
// (the LCID of the reqMsg matches that of
- // the top level [....] call lcid associated with the context.
+ // the top level sync call lcid associated with the context.
// OR
// it matches one of the async call out lcids)
@@ -668,7 +668,7 @@ namespace System.Runtime.Remoting.Contexts {
//*************************************** WORK ITEM ********************************//
/*
- * A work item holds the info about a call to [....] or
+ * A work item holds the info about a call to Sync or
* Async-ProcessMessage.
*/
internal class WorkItem
@@ -681,9 +681,9 @@ namespace System.Runtime.Remoting.Contexts {
internal int _flags;
internal IMessage _reqMsg;
internal IMessageSink _nextSink;
- // ReplySink will be null for an [....] work item.
+ // ReplySink will be null for an sync work item.
internal IMessageSink _replySink;
- // ReplyMsg is set once the [....] call is completed
+ // ReplyMsg is set once the sync call is completed
internal IMessage _replyMsg;
// Context in which the work should execute.
@@ -778,14 +778,14 @@ namespace System.Runtime.Remoting.Contexts {
}
/*
- * Execute is called to complete a work item ([....] or async).
+ * Execute is called to complete a work item (sync or async).
* Execute assumes that the context is set correctly and the lock
* is taken (i.e. it makes no policy decisions)
*
* It is called from the following 3 points:
* 1. thread pool thread executing the callback for an async item
- * 2. calling thread executing the callback for a queued [....] item
- * 3. calling thread directly calling Execute for a non-queued [....] item
+ * 2. calling thread executing the callback for a queued sync item
+ * 3. calling thread directly calling Execute for a non-queued sync item
*/
[System.Security.SecurityCritical] // auto-generated
internal virtual void Execute()
@@ -842,20 +842,20 @@ namespace System.Runtime.Remoting.Contexts {
// Notify the property that we are leaving
_property.HandleThreadExit();
- //DBGConsole.WriteLine(Thread.CurrentThread.GetHashCode()+"] R: [....] call-out");
+ //DBGConsole.WriteLine(Thread.CurrentThread.GetHashCode()+"] R: Sync call-out");
replyMsg = _nextSink.SyncProcessMessage(reqMsg);
// We will just block till we are given permission to re-enter
// Notify the property that we wish to re-enter the domain.
// This will block the thread here if someone is in the domain.
- //DBGConsole.WriteLine(Thread.CurrentThread.GetHashCode()+"] R: [....] call-out returned, waiting for lock");
+ //DBGConsole.WriteLine(Thread.CurrentThread.GetHashCode()+"] R: Sync call-out returned, waiting for lock");
_property.HandleThreadReEntry();
Contract.Assert(_property.Locked == true,"_property.Locked == true");
}
else
{
// In the non-reentrant case we are just a pass-through sink
- //DBGConsole.WriteLine(Thread.CurrentThread.GetHashCode()+"] NR: [....] call-out (pass through)");
+ //DBGConsole.WriteLine(Thread.CurrentThread.GetHashCode()+"] NR: Sync call-out (pass through)");
// We should mark the domain with our LCID so that call-backs are allowed to enter..
LogicalCallContext cctx =
(LogicalCallContext) reqMsg.Properties[Message.CallContextKey];
@@ -868,7 +868,7 @@ namespace System.Runtime.Remoting.Contexts {
// start of each Invoke. As an optimization we now do it
// here in a delayed fashion... since currently only
// Synchronization needs it
- // Note that for [....]-calls we would just inherit an LCID
+ // Note that for Sync-calls we would just inherit an LCID
// if the call has one, if not we create one. However for
// async calls we always generate a new LCID.
lcid = Identity.GetNewLogicalCallID();
@@ -896,7 +896,7 @@ namespace System.Runtime.Remoting.Contexts {
{
_property.SyncCallOutLCID = null;
- // The [....] callOut is done, we do not need the lcid
+ // The sync callOut is done, we do not need the lcid
// that was associated with the call any more.
// (clear it only if we added one to the reqMsg)
if (bClear)
@@ -914,7 +914,7 @@ namespace System.Runtime.Remoting.Contexts {
}
}
- //DBGConsole.WriteLine(Thread.CurrentThread.GetHashCode()+"] NR: [....] call-out returned");
+ //DBGConsole.WriteLine(Thread.CurrentThread.GetHashCode()+"] NR: Sync call-out returned");
}
return replyMsg;
}
@@ -952,7 +952,7 @@ namespace System.Runtime.Remoting.Contexts {
Contract.Assert(
_property.SyncCallOutLCID == null,
- "Cannot handle async call outs when already in a top-level [....] call out");
+ "Cannot handle async call outs when already in a top-level sync call out");
//DBGConsole.WriteLine(Thread.CurrentThread.GetHashCode()+"] NR: Async CallOut: adding to lcidList: " + lcid);
_property.AsyncCallOutLCIDList.Add(lcid);
}
@@ -1012,7 +1012,7 @@ namespace System.Runtime.Remoting.Contexts {
public virtual IMessage SyncProcessMessage(IMessage reqMsg)
{
- // We handle this as a regular new [....] workItem
+ // We handle this as a regular new Sync workItem
// 1. Create a work item
WorkItem work = new WorkItem(reqMsg,
_nextSink,
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/remoting/urlattribute.cs b/mcs/class/referencesource/mscorlib/system/runtime/remoting/urlattribute.cs
index 37f9d0f7a4d..d900c52225d 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/remoting/urlattribute.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/remoting/urlattribute.cs
@@ -7,12 +7,12 @@
**
** File: UrlAttribute.cs
**
-** <EMAIL>Author: Tarun Anand ([....])</EMAIL>
+** <EMAIL>Author: Tarun Anand (Microsoft)</EMAIL>
**
** Purpose: Defines an attribute which can be used at the callsite to
** specify the URL at which the activation will happen.
**
-** Date: [....] 30, 2000
+** Date: Microsoft 30, 2000
**
===========================================================*/
namespace System.Runtime.Remoting.Activation {
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/serialization/formatters/soapfault.cs b/mcs/class/referencesource/mscorlib/system/runtime/serialization/formatters/soapfault.cs
index d3ef1e362b8..8fe12ccefc0 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/serialization/formatters/soapfault.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/serialization/formatters/soapfault.cs
@@ -7,7 +7,7 @@
**
** Class: SoapFault
**
- ** <EMAIL>Author: Peter de Jong ([....])</EMAIL>
+ ** <EMAIL>Author: Peter de Jong (Microsoft)</EMAIL>
**
** Purpose: Specifies information for a Soap Fault
**
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/serialization/formatterservices.cs b/mcs/class/referencesource/mscorlib/system/runtime/serialization/formatterservices.cs
index f4521515a0c..ded0c4bfb71 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/serialization/formatterservices.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/serialization/formatterservices.cs
@@ -33,14 +33,14 @@ namespace System.Runtime.Serialization {
[System.Runtime.InteropServices.ComVisible(true)]
public static class FormatterServices {
- internal static Dictionary<MemberHolder, MemberInfo[]> m_MemberInfoTable = new Dictionary<MemberHolder, MemberInfo[]>(32);
#if FEATURE_SERIALIZATION
+ internal static Dictionary<MemberHolder, MemberInfo[]> m_MemberInfoTable = new Dictionary<MemberHolder, MemberInfo[]>(32);
[System.Security.SecurityCritical]
private static bool unsafeTypeForwardersIsEnabled = false;
[System.Security.SecurityCritical]
private static volatile bool unsafeTypeForwardersIsEnabledInitialized = false;
-#endif
+
private static Object s_FormatterServicesSyncObject = null;
private static Object formatterServicesSyncObject
@@ -247,6 +247,7 @@ namespace System.Runtime.Serialization {
}
}
}
+#endif // FEATURE_SERIALIZATION
// Gets a new instance of the object. The entire object is initalized to 0 and no
// constructors have been run. **THIS MEANS THAT THE OBJECT MAY NOT BE IN A STATE
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/serialization/objectclonehelper.cs b/mcs/class/referencesource/mscorlib/system/runtime/serialization/objectclonehelper.cs
index fa47f3bff4e..bfab816e81c 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/serialization/objectclonehelper.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/serialization/objectclonehelper.cs
@@ -93,7 +93,7 @@ namespace System.Runtime.Serialization
}
else
{
- // Getting here means a bug in cloner
+ // Getting here means a
throw new ArgumentException(Environment.GetResourceString("Arg_SerializationException"));
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/serialization/objectidgenerator.cs b/mcs/class/referencesource/mscorlib/system/runtime/serialization/objectidgenerator.cs
index c4a5ffc86c0..5942bdcaae6 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/serialization/objectidgenerator.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/serialization/objectidgenerator.cs
@@ -52,9 +52,9 @@ namespace System.Runtime.Serialization {
// we set found to false and return the position where the object should be inserted.
//
private int FindElement(Object obj, out bool found) {
- //<STRIP>This double-hashing algorithm is recomended by CLR, pg 236.
- //We're hosed if somebody rehashes the table while we're doing the lookup, but that's
- //generally true for most of these operations.</STRIP>
+ //<
+
+
int hashcode = RuntimeHelpers.GetHashCode(obj);
int hashIncrement = (1+((hashcode&0x7FFFFFFF)%(m_currentSize-2)));
do {
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/serialization/safeserializationmanager.cs b/mcs/class/referencesource/mscorlib/system/runtime/serialization/safeserializationmanager.cs
index 8dbe02ab77b..5f1b03000b4 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/serialization/safeserializationmanager.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/serialization/safeserializationmanager.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Collections;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/serialization/serializationinfo.cs b/mcs/class/referencesource/mscorlib/system/runtime/serialization/serializationinfo.cs
index 75965dfa421..4d43c78a620 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/serialization/serializationinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/serialization/serializationinfo.cs
@@ -17,6 +17,7 @@ namespace System.Runtime.Serialization
{
using System;
+ using System.Collections.Generic;
using System.Reflection;
using System.Runtime.Remoting;
#if FEATURE_REMOTING
@@ -30,18 +31,18 @@ namespace System.Runtime.Serialization
#endif
[System.Runtime.InteropServices.ComVisible(true)]
-#if FEATURE_CORECLR
- [FriendAccessAllowed]
-#endif
public sealed class SerializationInfo
{
private const int defaultSize = 4;
private const string s_mscorlibAssemblySimpleName = "mscorlib";
private const string s_mscorlibFileName = s_mscorlibAssemblySimpleName + ".dll";
+ // Even though we have a dictionary, we're still keeping all the arrays around for back-compat.
+ // Otherwise we may run into potentially breaking behaviors like GetEnumerator() not returning entries in the same order they were added.
internal String[] m_members;
internal Object[] m_data;
internal Type[] m_types;
+ private Dictionary<string, int> m_nameToIndex;
internal int m_currMember;
internal IFormatterConverter m_converter;
private String m_fullTypeName;
@@ -83,6 +84,8 @@ namespace System.Runtime.Serialization
m_data = new Object[defaultSize];
m_types = new Type[defaultSize];
+ m_nameToIndex = new Dictionary<string, int>();
+
m_converter = converter;
#if FEATURE_SERIALIZATION
@@ -298,22 +301,7 @@ namespace System.Runtime.Serialization
}
Contract.EndContractBlock();
- //
- // Walk until we find a member by the same name or until
- // we reach the end. If we find a member by the same name,
- // throw.
- for (int i = 0; i < m_currMember; i++)
- {
- if (m_members[i].Equals(name))
- {
- BCLDebug.Trace("SER", "[SerializationInfo.AddValue]Tried to add ", name, " twice to the SI.");
-
- throw new SerializationException(Environment.GetResourceString("Serialization_SameNameTwice"));
- }
- }
-
- AddValue(name, value, type, m_currMember);
-
+ AddValueInternal(name, value, type);
}
public void AddValue(String name, Object value)
@@ -403,12 +391,19 @@ namespace System.Runtime.Serialization
AddValue(name, (Object)value, typeof(DateTime));
}
- internal void AddValue(String name, Object value, Type type, int index)
+ internal void AddValueInternal(String name, Object value, Type type)
{
+ if (m_nameToIndex.ContainsKey(name))
+ {
+ BCLDebug.Trace("SER", "[SerializationInfo.AddValue]Tried to add ", name, " twice to the SI.");
+ throw new SerializationException(Environment.GetResourceString("Serialization_SameNameTwice"));
+ }
+ m_nameToIndex.Add(name, m_currMember);
+
//
// If we need to expand the arrays, do so.
//
- if (index >= m_members.Length)
+ if (m_currMember >= m_members.Length)
{
ExpandArrays();
}
@@ -416,9 +411,9 @@ namespace System.Runtime.Serialization
//
// Add the data and then advance the counter.
//
- m_members[index] = name;
- m_data[index] = value;
- m_types[index] = type;
+ m_members[m_currMember] = name;
+ m_data[m_currMember] = value;
+ m_types[m_currMember] = type;
m_currMember++;
}
@@ -443,11 +438,10 @@ namespace System.Runtime.Serialization
int index = FindElement(name);
if (index < 0)
{
- AddValue(name, value, type, m_currMember);
+ AddValueInternal(name, value, type);
}
else
{
- m_members[index] = name;
m_data[index] = value;
m_types[index] = type;
}
@@ -462,13 +456,10 @@ namespace System.Runtime.Serialization
}
Contract.EndContractBlock();
BCLDebug.Trace("SER", "[SerializationInfo.FindElement]Looking for ", name, " CurrMember is: ", m_currMember);
- for (int i = 0; i < m_currMember; i++)
+ int index;
+ if (m_nameToIndex.TryGetValue(name, out index))
{
- Contract.Assert(m_members[i] != null, "[SerializationInfo.FindElement]Null Member in String array.");
- if (m_members[i].Equals(name))
- {
- return i;
- }
+ return index;
}
return -1;
}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/serialization/streamingcontext.cs b/mcs/class/referencesource/mscorlib/system/runtime/serialization/streamingcontext.cs
index 0f223e74b22..978d9ce78c6 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/serialization/streamingcontext.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/serialization/streamingcontext.cs
@@ -56,7 +56,7 @@ namespace System.Runtime.Serialization {
}
// **********************************************************
- // Keep these in [....] with the version in vm\runtimehandles.h
+ // Keep these in sync with the version in vm\runtimehandles.h
// **********************************************************
[Serializable]
[Flags]
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/versioning/CompatibilitySwitch.cs b/mcs/class/referencesource/mscorlib/system/runtime/versioning/CompatibilitySwitch.cs
index 3d698232b74..ec8f9801608 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/versioning/CompatibilitySwitch.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/versioning/CompatibilitySwitch.cs
@@ -2,18 +2,20 @@ using System;
using System.Globalization;
using System.Runtime.CompilerServices;
-#if FEATURE_WIN_DB_APPCOMPAT
namespace System.Runtime.Versioning
{
public static class CompatibilitySwitch
{
- /* This class contains two sets of api:
+ /* This class contains 3 sets of api:
* 1. internal apis : These apis are supposed to be used by mscorlib.dll and other assemblies which use the <runtime> section in config
* These apis query for the value of quirk not only in windows quirk DB but also in runtime section of config files,
* registry and environment vars.
* 2. public apis : These apis are supposed to be used by FX assemblies which do not read the runtime section of config files and have
* have their own section in config files or do not use configs at all.
*
+ * 3. specialized apis: These apis are defined in order to retrieve a specific value defined in CLR Config. That value can have specific look-up rules
+ * for the order and location of the config sources used.
+ *
* These apis are for internal use only for FX assmeblies. It has not been decided if they can be used by OOB components due to EULA restrictions
*/
[System.Security.SecurityCritical]
@@ -25,6 +27,9 @@ namespace System.Runtime.Versioning
[System.Security.SecurityCritical]
public static string GetValue(string compatibilitySwitchName)
{
+ // This is used by AppContext.TryGetSwitch to check switch overrides in the Windows Quirk DB
+ // If this method is updated to check other locations than the DB, please ensure compat with
+ // the AppContext class.
return GetValueInternalCall(compatibilitySwitchName, true);
}
@@ -40,12 +45,14 @@ namespace System.Runtime.Versioning
return GetValueInternalCall(compatibilitySwitchName, false);
}
+ [System.Security.SecurityCritical]
+ [MethodImpl(MethodImplOptions.InternalCall)]
+ internal static extern string GetAppContextOverridesInternalCall();
+
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern bool IsEnabledInternalCall(string compatibilitySwitchName, bool onlyDB);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern string GetValueInternalCall(string compatibilitySwitchName, bool onlyDB);
-
}
}
-#endif
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/versioning/NonVersionableAttribute.cs b/mcs/class/referencesource/mscorlib/system/runtime/versioning/NonVersionableAttribute.cs
new file mode 100644
index 00000000000..1803733e545
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/runtime/versioning/NonVersionableAttribute.cs
@@ -0,0 +1,34 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+/*============================================================
+**
+** Class: NonVersionableAttribute
+**
+**
+** The [NonVersionable] attribute is applied to indicate that the implementation
+** of a particular member or layout of a struct cannot be changed for given platform in incompatible way.
+** This allows cross-module inlining of methods and data structures whose implementation
+** is never changed in ReadyToRun native images. Any changes to such members or types would be
+** breaking changes for ReadyToRun.
+**
+===========================================================*/
+using System;
+using System.Diagnostics;
+
+namespace System.Runtime.Versioning {
+
+ // This Conditional is here to strip the annotations for targets where ReadyToRun is not supported.
+ // If this attribute is ever made public, this Conditional should be removed.
+ [Conditional("FEATURE_READYTORUN")]
+ [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Constructor,
+ AllowMultiple = false, Inherited = false)]
+ sealed class NonVersionableAttribute : Attribute {
+
+ public NonVersionableAttribute()
+ {
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/versioning/binarycompatibility.cs b/mcs/class/referencesource/mscorlib/system/runtime/versioning/binarycompatibility.cs
index 090d13f1b9b..e9f6817ab48 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/versioning/binarycompatibility.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/versioning/binarycompatibility.cs
@@ -7,7 +7,7 @@
**
** Class: BinaryCompatibility
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: This class is used to determine which binary compatibility
@@ -67,9 +67,9 @@ namespace System.Runtime.Versioning
// .NET Framework 3.5
// Silverlight 3
// Silverlight 4
- // .NET Framework 4
- // Expected additions:
- // .NET Framework 4.5 <-> Silverlight 5 <-> Phone 7.1
+ // .NET Framework 4 Phone 8.0
+ // .NET Framework 4.5 Phone 8.1
+ // .NET Framework 4.5.1 Phone 8.1
//
// (Note: Windows Phone 7.0 was built using the .NET Compact Framework, which forked around v1 or v1.1)
//
@@ -145,25 +145,8 @@ namespace System.Runtime.Versioning
// Version number is major * 10000 + minor * 100 + build (ie, 4.5.1.0 would be version 40501).
private static int s_AppWasBuiltForVersion;
- readonly static BinaryCompatibilityMap s_map;
+ readonly static BinaryCompatibilityMap s_map = new BinaryCompatibilityMap();
- // Consider initializing the field directly instead of declaring a .cctor. There is a perf
- // tradeoff to either choice. The tradeoff is some startup perf if you compile code
- // that references this type, vs. a bit of a hit every time you use one of these methods
- // because we must verify that the .cctor ran. For now, we'll make this class slower
- // to use, but you can write code with quirks in it that only triggers iff you need legacy
- // behavior (ie, if you need to not throw an exception, see if you need to throw it first
- // via normal logic then check the compatibility flag).
-
- // Initialize the s_map field right before it's going to be used, not the moment we
- // JITs code that contains a call to this class. For this reason, explicitly create a
- // .cctor instead of letting the compiler generate one with different initialization
- // semantics.
- static BinaryCompatibility()
- {
- s_map = new BinaryCompatibilityMap();
- }
-
// For parsing a target Framework moniker, from the FrameworkName class
private const char c_componentSeparator = ',';
private const char c_keyValueSeparator = '=';
@@ -180,6 +163,7 @@ namespace System.Runtime.Versioning
// A bit for each property
internal bool TargetsAtLeast_Phone_V7_1;
internal bool TargetsAtLeast_Phone_V8_0;
+ internal bool TargetsAtLeast_Phone_V8_1;
internal bool TargetsAtLeast_Desktop_V4_5;
internal bool TargetsAtLeast_Desktop_V4_5_1;
internal bool TargetsAtLeast_Desktop_V4_5_2;
@@ -234,10 +218,15 @@ namespace System.Runtime.Versioning
case TargetFrameworkId.Phone:
if (buildAgainstVersion >= 80000)
{
+ // This is for Apollo apps. For Apollo apps we don't want to enable any of the 4.5 or 4.5.1 quirks
TargetsAtLeast_Phone_V8_0 = true;
- // @
-
-
+ //TargetsAtLeast_Desktop_V4_5 = true;
+ }
+ if (buildAgainstVersion >= 80100)
+ {
+ // For WindowsPhone 8.1 and SL 8.1 scenarios we want to enable both 4.5 and 4.5.1 quirks.
+ TargetsAtLeast_Desktop_V4_5 = true;
+ TargetsAtLeast_Desktop_V4_5_1 = true;
}
if (buildAgainstVersion >= 710)
@@ -301,6 +290,24 @@ namespace System.Runtime.Versioning
targetFramework = TargetFrameworkId.NetCore;
break;
+ case "WindowsPhone":
+ if (targetFrameworkVersion >= 80100)
+ {
+ // A TFM of the form WindowsPhone,Version=v8.1 corresponds to SL 8.1 scenario
+ // and gets the same quirks as WindowsPhoneApp\v8.1 store apps.
+ targetFramework = TargetFrameworkId.Phone;
+ }
+ else
+ {
+ // There is no TFM for Apollo or below and hence we assign the targetFramework to Unspecified.
+ targetFramework = TargetFrameworkId.Unspecified;
+ }
+ break;
+
+ case "WindowsPhoneApp":
+ targetFramework = TargetFrameworkId.Phone;
+ break;
+
case "Silverlight":
targetFramework = TargetFrameworkId.Silverlight;
// Windows Phone 7 is Silverlight,Version=v4.0,Profile=WindowsPhone
@@ -443,15 +450,69 @@ namespace System.Runtime.Versioning
}
}
+#if FEATURE_CORECLR
+ /// <summary>
+ /// This method checks for CompatibilitySwitches for SL8.1 scenarios.
+ /// PS - This is used only for SL 8.1
+ /// </summary>
+ [System.Security.SecuritySafeCritical]
+ private static bool IsAppUnderSL81CompatMode()
+ {
+ Contract.Assert(s_AppWasBuiltForFramework == TargetFrameworkId.NotYetChecked);
+
+ if (CompatibilitySwitches.IsAppSilverlight81)
+ {
+ // This is an SL8.1 scenario and hence it gets the same quirks as WPBlue+ settings.
+ s_AppWasBuiltForFramework = TargetFrameworkId.Phone;
+ s_AppWasBuiltForVersion = 80100;
+
+ return true;
+ }
+
+ return false;
+ }
+#endif //FEATURE_CORECLR
+ [System.Security.SecuritySafeCritical]
private static void ReadTargetFrameworkId()
{
+#if FEATURE_CORECLR
+ if (IsAppUnderSL81CompatMode())
+ {
+ // Since the SL does not have any Main() the reading of the TFM will not work and as a workaround we use the CompatibilitySwitch.IsAppSilverlight81
+ // to identify if the given app targets SL 8.1 and accordingly give it the value TargetFrameworkId.Phone;80100
+
+ // PS - This also means that the CompatMode set by AppDomain m_compatFlags with AppDomainCompatMode.APPDOMAINCOMPAT_APP_SL81
+ // will override any other mechanism like TFM, RegistryKey, env variable or config file settings. Since this option
+ // is only used by SL8.1 scenario's I don't think this is an issue and is rather desirable.
+
+ return;
+ }
+#endif //FEATURE_CORECLR
String targetFrameworkName = AppDomain.CurrentDomain.GetTargetFrameworkName();
+
+ var overrideValue = System.Runtime.Versioning.CompatibilitySwitch.GetValueInternal("TargetFrameworkMoniker");
+ if (!string.IsNullOrEmpty(overrideValue))
+ {
+ targetFrameworkName = overrideValue;
+ }
+
// Write to a local then to _targetFramework, after writing the version number.
TargetFrameworkId fxId;
int fxVersion = 0;
if (targetFrameworkName == null)
- fxId = TargetFrameworkId.Unspecified;
+ {
+#if FEATURE_CORECLR
+ // if we don't have a value for targetFrameworkName we need to figure out if we should give the newest behavior or not.
+ if (CompatibilitySwitches.UseLatestBehaviorWhenTFMNotSpecified)
+ {
+ fxId = TargetFrameworkId.NetFramework;
+ fxVersion = 50000; // We are going to default to the latest value for version that we have in our code.
+ }
+ else
+#endif
+ fxId = TargetFrameworkId.Unspecified;
+ }
else if (!ParseTargetFrameworkMonikerIntoEnum(targetFrameworkName, out fxId, out fxVersion))
fxId = TargetFrameworkId.Unrecognized;
diff --git a/mcs/class/referencesource/mscorlib/system/runtime/versioning/multitargetinghelpers.cs b/mcs/class/referencesource/mscorlib/system/runtime/versioning/multitargetinghelpers.cs
index 51f68edb96e..4d6f0b3ffb4 100644
--- a/mcs/class/referencesource/mscorlib/system/runtime/versioning/multitargetinghelpers.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtime/versioning/multitargetinghelpers.cs
@@ -7,7 +7,7 @@
**
** Class: MultitargetingHelpers
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Central repository for helpers supporting
diff --git a/mcs/class/referencesource/mscorlib/system/runtimehandles.cs b/mcs/class/referencesource/mscorlib/system/runtimehandles.cs
index 7615eca6f37..5d5818e306f 100644
--- a/mcs/class/referencesource/mscorlib/system/runtimehandles.cs
+++ b/mcs/class/referencesource/mscorlib/system/runtimehandles.cs
@@ -104,9 +104,6 @@ namespace System
// This is the RuntimeType for the type
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private RuntimeType m_type;
public override int GetHashCode()
@@ -141,9 +138,6 @@ namespace System
}
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecuritySafeCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
[MethodImpl(MethodImplOptions.InternalCall)]
@@ -657,9 +651,6 @@ namespace System
internal extern static void GetInstantiation(RuntimeTypeHandle type, ObjectHandleOnStack types, bool fAsRuntimeTypeArray);
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal RuntimeType[] GetInstantiationInternal()
{
RuntimeType[] types = null;
@@ -788,9 +779,6 @@ namespace System
private extern static void GetGenericTypeDefinition(RuntimeTypeHandle type, ObjectHandleOnStack retType);
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal static RuntimeType GetGenericTypeDefinition(RuntimeType type)
{
RuntimeType retType = type;
@@ -961,9 +949,6 @@ namespace System
internal IntPtr m_handle;
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
internal class RuntimeMethodInfoStub : IRuntimeMethodInfo
{
public RuntimeMethodInfoStub(RuntimeMethodHandleInternal methodHandleValue, object keepalive)
@@ -994,9 +979,6 @@ namespace System
object m_h;
#endif
#pragma warning restore 169
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
public RuntimeMethodHandleInternal m_value;
RuntimeMethodHandleInternal IRuntimeMethodInfo.Value
@@ -1033,9 +1015,6 @@ namespace System
get { return new RuntimeMethodHandle(); }
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private IRuntimeMethodInfo m_value;
internal RuntimeMethodHandle(IRuntimeMethodInfo method)
@@ -1049,9 +1028,6 @@ namespace System
}
// Used by EE
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[SecurityCritical]
private static IntPtr GetValueInternal(RuntimeMethodHandle rmh)
{
@@ -1303,9 +1279,6 @@ namespace System
static extern internal void PerformSecurityCheck(Object obj, RuntimeMethodHandleInternal method, RuntimeType parent, uint invocationFlags);
[System.Security.SecurityCritical]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
static internal void PerformSecurityCheck(Object obj, IRuntimeMethodInfo method, RuntimeType parent, uint invocationFlags)
{
RuntimeMethodHandle.PerformSecurityCheck(obj, method.Value, parent, invocationFlags);
@@ -1624,9 +1597,6 @@ namespace System
return new RuntimeFieldHandle(field);
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private IRuntimeFieldInfo m_ptr;
internal RuntimeFieldHandle(IRuntimeFieldInfo fieldInfo)
@@ -1921,9 +1891,6 @@ namespace System
[MethodImplAttribute(MethodImplOptions.InternalCall)]
internal static extern int GetToken(RuntimeModule module);
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
private static void ValidateModulePointer(RuntimeModule module)
{
// Make sure we have a valid Module to resolve against.
@@ -2139,9 +2106,6 @@ namespace System
private extern static IntPtr _GetMetadataImport(RuntimeModule module);
[System.Security.SecurityCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal static MetadataImport GetMetadataImport(RuntimeModule module)
{
return new MetadataImport(_GetMetadataImport(module.GetNativeHandle()), module);
@@ -2185,7 +2149,7 @@ namespace System
#region Private Data Members
//
- // Keep the layout in [....] with SignatureNative in the VM
+ // Keep the layout in sync with SignatureNative in the VM
//
internal RuntimeType[] m_arguments;
internal RuntimeType m_declaringType;
diff --git a/mcs/class/referencesource/mscorlib/system/sbyte.cs b/mcs/class/referencesource/mscorlib/system/sbyte.cs
index be53b6b1a80..294a70c2f4e 100644
--- a/mcs/class/referencesource/mscorlib/system/sbyte.cs
+++ b/mcs/class/referencesource/mscorlib/system/sbyte.cs
@@ -70,6 +70,7 @@ namespace System {
return m_value == ((SByte)obj).m_value;
}
+ [System.Runtime.Versioning.NonVersionable]
public bool Equals(SByte obj)
{
return m_value == obj;
diff --git a/mcs/class/referencesource/mscorlib/system/security/accesscontrol/ace.cs b/mcs/class/referencesource/mscorlib/system/security/accesscontrol/ace.cs
index f0dcbd61941..4776e5f6dba 100644
--- a/mcs/class/referencesource/mscorlib/system/security/accesscontrol/ace.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/accesscontrol/ace.cs
@@ -137,8 +137,8 @@ namespace System.Security.AccessControl
{
//
// Only have two bytes to store the length in.
- // Indicates a bug in the implementation, not in user's code.
- //
+ // Indicates a
+
Contract.Assert( false, "Length > ushort.MaxValue" );
throw new SystemException();
@@ -395,8 +395,8 @@ namespace System.Security.AccessControl
if (((!( result is ObjectAce )) && (( binaryForm[offset + 2] << 0 ) + ( binaryForm[offset + 3] << 8 ) != result.BinaryLength ))
//
// This is needed because object aces created through ADSI have the advertised ACE length
- // greater than the actual length by 32 (bug in ADSI).
- //
+ // greater than the actual length by 32 (
+
|| (( result is ObjectAce ) && (( binaryForm[offset + 2] << 0 ) + ( binaryForm[offset + 3] << 8 ) != result.BinaryLength ) && ((( binaryForm[offset + 2] << 0 ) + ( binaryForm[offset + 3] << 8 ) - 32 ) != result.BinaryLength )))
{
goto InvalidParameter;
@@ -1199,8 +1199,8 @@ namespace System.Security.AccessControl
default:
//
- // Indicates a bug in the implementation, not in user's code
- //
+ // Indicates a
+
Contract.Assert( false, "Invalid ACE type" );
throw new SystemException();
diff --git a/mcs/class/referencesource/mscorlib/system/security/accesscontrol/acl.cs b/mcs/class/referencesource/mscorlib/system/security/accesscontrol/acl.cs
index 16df8b1e453..71d016bddd9 100644
--- a/mcs/class/referencesource/mscorlib/system/security/accesscontrol/acl.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/accesscontrol/acl.cs
@@ -373,9 +373,9 @@ namespace System.Security.AccessControl
if ( aceLength % 4 != 0 )
{
//
- // This indicates a bug in one of the ACE classes.
- // Binary length of an ace must ALWAYS be divisible by 4.
- //
+ // This indicates a
+
+
Contract.Assert( false, "aceLength % 4 != 0" );
throw new SystemException();
@@ -389,8 +389,8 @@ namespace System.Security.AccessControl
// Increment the offset by the advertised length rather than the
// actual binary length. (Ideally these two should match, but for
// object aces created through ADSI, the actual length is 32 bytes
- // less than the allocated size of the ACE. This is a bug in ADSI.)
- //
+ // less than the allocated size of the ACE. This is a
+
offset += (binaryForm[offset + 2] << 0) + (binaryForm[offset + 3] << 8);
}
else
@@ -512,9 +512,9 @@ namespace System.Security.AccessControl
if ( aceLength % 4 != 0 )
{
//
- // This indicates a bug in one of the ACE classes.
- // Binary length of an ace must ALWAYS be divisible by 4.
- //
+ // This indicates a
+
+
Contract.Assert( false, "aceLength % 4 != 0" );
throw new SystemException();
@@ -548,9 +548,9 @@ namespace System.Security.AccessControl
if ( value.BinaryLength % 4 != 0 )
{
//
- // This indicates a bug in one of the ACE classes.
- // Binary length of an ace must ALWAYS be divisible by 4.
- //
+ // This indicates a
+
+
Contract.Assert( false, "aceLength % 4 != 0" );
throw new SystemException();
@@ -1787,7 +1787,7 @@ namespace System.Security.AccessControl
if ( ace == null )
{
//
- // <[....]-9/19/2004> Afraid to yank this statement now
+ // <Microsoft-9/19/2004> Afraid to yank this statement now
// for fear of destabilization, so adding an assert instead
//
@@ -2991,6 +2991,11 @@ namespace System.Security.AccessControl
RemoveQualifiedAcesSpecific( sid, AceQualifier.SystemAudit, accessMask, GenericAce.AceFlagsFromAuditFlags( auditFlags ) | GenericAce.AceFlagsFromInheritanceFlags( inheritanceFlags, propagationFlags ), ObjectAceFlags.None, Guid.Empty, Guid.Empty );
}
+ public void AddAudit(SecurityIdentifier sid, ObjectAuditRule rule)
+ {
+ AddAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
+ }
+
public void AddAudit( AuditFlags auditFlags, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType )
{
//
@@ -3007,6 +3012,11 @@ namespace System.Security.AccessControl
AddQualifiedAce(sid, AceQualifier.SystemAudit, accessMask, GenericAce.AceFlagsFromAuditFlags(auditFlags) | GenericAce.AceFlagsFromInheritanceFlags(inheritanceFlags, propagationFlags), objectFlags, objectType, inheritedObjectType);
}
+ public void SetAudit(SecurityIdentifier sid, ObjectAuditRule rule)
+ {
+ SetAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
+ }
+
public void SetAudit( AuditFlags auditFlags, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType )
{
//
@@ -3023,6 +3033,11 @@ namespace System.Security.AccessControl
SetQualifiedAce(sid, AceQualifier.SystemAudit, accessMask, GenericAce.AceFlagsFromAuditFlags(auditFlags) | GenericAce.AceFlagsFromInheritanceFlags(inheritanceFlags, propagationFlags), objectFlags, objectType, inheritedObjectType);
}
+ public bool RemoveAudit(SecurityIdentifier sid, ObjectAuditRule rule)
+ {
+ return RemoveAudit(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
+ }
+
public bool RemoveAudit( AuditFlags auditFlags, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType )
{
//
@@ -3038,6 +3053,11 @@ namespace System.Security.AccessControl
return RemoveQualifiedAces(sid, AceQualifier.SystemAudit, accessMask, GenericAce.AceFlagsFromAuditFlags(auditFlags) | GenericAce.AceFlagsFromInheritanceFlags(inheritanceFlags, propagationFlags), true, objectFlags, objectType, inheritedObjectType);
}
+ public void RemoveAuditSpecific(SecurityIdentifier sid, ObjectAuditRule rule)
+ {
+ RemoveAuditSpecific(rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
+ }
+
public void RemoveAuditSpecific( AuditFlags auditFlags, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType )
{
//
@@ -3134,6 +3154,11 @@ namespace System.Security.AccessControl
RemoveQualifiedAcesSpecific(sid, accessType == AccessControlType.Allow ? AceQualifier.AccessAllowed : AceQualifier.AccessDenied, accessMask, GenericAce.AceFlagsFromInheritanceFlags( inheritanceFlags, propagationFlags ), ObjectAceFlags.None, Guid.Empty, Guid.Empty );
}
+ public void AddAccess(AccessControlType accessType, SecurityIdentifier sid, ObjectAccessRule rule)
+ {
+ AddAccess(accessType, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
+ }
+
public void AddAccess( AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType )
{
//
@@ -3152,6 +3177,11 @@ namespace System.Security.AccessControl
AddQualifiedAce( sid, accessType == AccessControlType.Allow ? AceQualifier.AccessAllowed : AceQualifier.AccessDenied, accessMask, GenericAce.AceFlagsFromInheritanceFlags( inheritanceFlags, propagationFlags ), objectFlags, objectType, inheritedObjectType );
}
+ public void SetAccess(AccessControlType accessType, SecurityIdentifier sid, ObjectAccessRule rule)
+ {
+ SetAccess(accessType, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
+ }
+
public void SetAccess( AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType )
{
//
@@ -3170,6 +3200,11 @@ namespace System.Security.AccessControl
SetQualifiedAce( sid, accessType == AccessControlType.Allow ? AceQualifier.AccessAllowed : AceQualifier.AccessDenied, accessMask, GenericAce.AceFlagsFromInheritanceFlags( inheritanceFlags, propagationFlags ), objectFlags, objectType, inheritedObjectType);
}
+ public bool RemoveAccess(AccessControlType accessType, SecurityIdentifier sid, ObjectAccessRule rule)
+ {
+ return RemoveAccess(accessType, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
+ }
+
public bool RemoveAccess( AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType )
{
//
@@ -3187,6 +3222,11 @@ namespace System.Security.AccessControl
return RemoveQualifiedAces(sid, accessType == AccessControlType.Allow ? AceQualifier.AccessAllowed : AceQualifier.AccessDenied, accessMask, GenericAce.AceFlagsFromInheritanceFlags( inheritanceFlags, propagationFlags ), false, objectFlags, objectType, inheritedObjectType );
}
+ public void RemoveAccessSpecific(AccessControlType accessType, SecurityIdentifier sid, ObjectAccessRule rule)
+ {
+ RemoveAccessSpecific(accessType, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
+ }
+
public void RemoveAccessSpecific( AccessControlType accessType, SecurityIdentifier sid, int accessMask, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, ObjectAceFlags objectFlags, Guid objectType, Guid inheritedObjectType )
{
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/accesscontrol/objectsecurity.cs b/mcs/class/referencesource/mscorlib/system/security/accesscontrol/objectsecurity.cs
index dedd7d4e5bb..75ffca9e5e4 100644
--- a/mcs/class/referencesource/mscorlib/system/security/accesscontrol/objectsecurity.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/accesscontrol/objectsecurity.cs
@@ -67,7 +67,7 @@ namespace System.Security.AccessControl
#region Constructors
- private ObjectSecurity()
+ protected ObjectSecurity()
{
}
@@ -79,7 +79,7 @@ namespace System.Security.AccessControl
_securityDescriptor = new CommonSecurityDescriptor( isContainer, isDS, ControlFlags.None, null, null, null, dacl );
}
- internal ObjectSecurity( CommonSecurityDescriptor securityDescriptor )
+ protected ObjectSecurity( CommonSecurityDescriptor securityDescriptor )
: this()
{
if ( securityDescriptor == null )
diff --git a/mcs/class/referencesource/mscorlib/system/security/accesscontrol/privilege.cs b/mcs/class/referencesource/mscorlib/system/security/accesscontrol/privilege.cs
index aabc4a4e172..86a29142f16 100644
--- a/mcs/class/referencesource/mscorlib/system/security/accesscontrol/privilege.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/accesscontrol/privilege.cs
@@ -171,11 +171,11 @@ namespace System.Security.AccessControl
private bool disposed = false;
private int referenceCount = 1;
[System.Security.SecurityCritical] // auto-generated
- private SafeTokenHandle threadHandle = new SafeTokenHandle( IntPtr.Zero );
+ private SafeAccessTokenHandle threadHandle = new SafeAccessTokenHandle( IntPtr.Zero );
private bool isImpersonating = false;
[System.Security.SecurityCritical] // auto-generated
- private static volatile SafeTokenHandle processHandle = new SafeTokenHandle( IntPtr.Zero );
+ private static volatile SafeAccessTokenHandle processHandle = new SafeAccessTokenHandle( IntPtr.Zero );
private static readonly object syncRoot = new object();
#region Constructor and Finalizer
@@ -201,7 +201,7 @@ namespace System.Security.AccessControl
{
if ( processHandle.IsInvalid)
{
- SafeTokenHandle localProcessHandle;
+ SafeAccessTokenHandle localProcessHandle;
if ( false == Win32Native.OpenProcessToken(
Win32Native.GetCurrentProcess(),
TokenAccessLevels.Duplicate,
@@ -229,7 +229,7 @@ namespace System.Security.AccessControl
// the process token by impersonating self.
//
- SafeTokenHandle threadHandleBefore = this.threadHandle;
+ SafeAccessTokenHandle threadHandleBefore = this.threadHandle;
error = FCall.OpenThreadToken(
TokenAccessLevels.Query | TokenAccessLevels.AdjustPrivileges,
WinSecurityContext.Process,
@@ -386,7 +386,7 @@ namespace System.Security.AccessControl
#region Properties
- public SafeTokenHandle ThreadHandle
+ public SafeAccessTokenHandle ThreadHandle
{
[System.Security.SecurityCritical] // auto-generated
get { return this.threadHandle; }
diff --git a/mcs/class/referencesource/mscorlib/system/security/accesscontrol/rules.cs b/mcs/class/referencesource/mscorlib/system/security/accesscontrol/rules.cs
index 118bf926432..c9b3504f6ae 100644
--- a/mcs/class/referencesource/mscorlib/system/security/accesscontrol/rules.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/accesscontrol/rules.cs
@@ -346,16 +346,16 @@ namespace System.Security.AccessControl
{
#region Constructors
- internal AuthorizationRuleCollection()
+ public AuthorizationRuleCollection()
: base()
{
}
#endregion
- #region Internal methods
+ #region Public methods
- internal void AddRule( AuthorizationRule rule )
+ public void AddRule( AuthorizationRule rule )
{
InnerList.Add( rule );
}
diff --git a/mcs/class/referencesource/mscorlib/system/security/accesscontrol/securitydescriptor.cs b/mcs/class/referencesource/mscorlib/system/security/accesscontrol/securitydescriptor.cs
index 2e6560ef073..cf75b4a7dba 100644
--- a/mcs/class/referencesource/mscorlib/system/security/accesscontrol/securitydescriptor.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/accesscontrol/securitydescriptor.cs
@@ -42,7 +42,6 @@ namespace System.Security.AccessControl
SelfRelative = 0x8000, // must always be on
}
-
public abstract class GenericSecurityDescriptor
{
#region Protected Members
@@ -914,7 +913,7 @@ namespace System.Security.AccessControl
ControlFlags actualFlags = flags | ControlFlags.DiscretionaryAclPresent;
//
- // Keep SACL and the flag bit in [....].
+ // Keep SACL and the flag bit in sync.
//
if (systemAcl == null)
@@ -1241,6 +1240,18 @@ namespace System.Security.AccessControl
}
}
+ public void AddDiscretionaryAcl(byte revision, int trusted)
+ {
+ this.DiscretionaryAcl = new DiscretionaryAcl(this.IsContainer, this.IsDS, revision, trusted);
+ this.AddControlFlags(ControlFlags.DiscretionaryAclPresent);
+ }
+
+ public void AddSystemAcl(byte revision, int trusted)
+ {
+ this.SystemAcl = new SystemAcl(this.IsContainer, this.IsDS, revision, trusted);
+ this.AddControlFlags(ControlFlags.SystemAclPresent);
+ }
+
#endregion
#region internal Methods
@@ -1252,7 +1263,7 @@ namespace System.Security.AccessControl
//
// These two add/remove method must be called with great care (and thus it is internal)
- // The caller is responsible for keeping the SaclPresent and DaclPresent bits in [....]
+ // The caller is responsible for keeping the SaclPresent and DaclPresent bits in sync
// with the actual SACL and DACL.
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/attributes.cs b/mcs/class/referencesource/mscorlib/system/security/attributes.cs
index cd8b165baaf..f76ef8a2b26 100644
--- a/mcs/class/referencesource/mscorlib/system/security/attributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/attributes.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System.Runtime.InteropServices;
namespace System.Security
diff --git a/mcs/class/referencesource/mscorlib/system/security/builtinpermissionsets.cs b/mcs/class/referencesource/mscorlib/system/security/builtinpermissionsets.cs
index be1d10fdce6..b3f65637603 100644
--- a/mcs/class/referencesource/mscorlib/system/security/builtinpermissionsets.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/builtinpermissionsets.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/security/claims/Claim.cs b/mcs/class/referencesource/mscorlib/system/security/claims/Claim.cs
index d7ad4e38025..9a49bc497d4 100644
--- a/mcs/class/referencesource/mscorlib/system/security/claims/Claim.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/claims/Claim.cs
@@ -7,7 +7,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -18,6 +18,7 @@ namespace System.Security.Claims
{
using System.Collections.Generic;
using System.Diagnostics.Contracts;
+ using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
@@ -36,6 +37,9 @@ namespace System.Security.Claims
string m_value;
string m_valueType;
+ [NonSerialized]
+ byte[] m_userSerializationData;
+
Dictionary<string, string> m_properties;
[NonSerialized]
@@ -43,10 +47,49 @@ namespace System.Security.Claims
[NonSerialized]
ClaimsIdentity m_subject;
-
+
+ private enum SerializationMask
+ {
+ None = 0,
+ NameClaimType = 1,
+ RoleClaimType = 2,
+ StringType = 4,
+ Issuer = 8,
+ OriginalIssuerEqualsIssuer = 16,
+ OriginalIssuer = 32,
+ HasProperties = 64,
+ UserData = 128,
+ }
+
#region Claim Constructors
/// <summary>
+ /// Initializes an instance of <see cref="Claim"/> using a <see cref="BinaryReader"/>.
+ /// Normally the <see cref="BinaryReader"/> is constructed using the bytes from <see cref="WriteTo(BinaryWriter)"/> and initialized in the same way as the <see cref="BinaryWriter"/>.
+ /// </summary>
+ /// <param name="reader">a <see cref="BinaryReader"/> pointing to a <see cref="Claim"/>.</param>
+ /// <exception cref="ArgumentNullException">if 'reader' is null.</exception>
+ public Claim(BinaryReader reader)
+ : this(reader, null)
+ {
+ }
+
+ /// <summary>
+ /// Initializes an instance of <see cref="Claim"/> using a <see cref="BinaryReader"/>.
+ /// Normally the <see cref="BinaryReader"/> is constructed using the bytes from <see cref="WriteTo(BinaryWriter)"/> and initialized in the same way as the <see cref="BinaryWriter"/>.
+ /// </summary>
+ /// <param name="reader">a <see cref="BinaryReader"/> pointing to a <see cref="Claim"/>.</param>
+ /// <param name="subject"> the value for <see cref="Claim.Subject"/>, which is the <see cref="ClaimsIdentity"/> that has these claims.</param>
+ /// <exception cref="ArgumentNullException">if 'reader' is null.</exception>
+ public Claim(BinaryReader reader, ClaimsIdentity subject)
+ {
+ if (reader == null)
+ throw new ArgumentNullException("reader");
+
+ Initialize(reader, subject);
+ }
+
+ /// <summary>
/// Creates a <see cref="Claim"/> with the specified type and value.
/// </summary>
/// <param name="type">The claim type.</param>
@@ -203,9 +246,64 @@ namespace System.Security.Claims
}
}
+ /// <summary>
+ /// Copy constructor for <see cref="Claim"/>
+ /// </summary>
+ /// <param name="other">the <see cref="Claim"/> to copy.</param>
+ /// <remarks><see cref="Claim.Subject"/>will be set to 'null'.</remarks>
+ /// <exception cref="ArgumentNullException">if 'other' is null.</exception>
+ protected Claim(Claim other)
+ : this(other, (other == null ? (ClaimsIdentity)null : other.m_subject))
+ {
+ }
+
+ /// <summary>
+ /// Copy constructor for <see cref="Claim"/>
+ /// </summary>
+ /// <param name="other">the <see cref="Claim"/> to copy.</param>
+ /// <param name="subject">the <see cref="ClaimsIdentity"/> to assign to <see cref="Claim.Subject"/>.</param>
+ /// <remarks><see cref="Claim.Subject"/>will be set to 'subject'.</remarks>
+ /// <exception cref="ArgumentNullException">if 'other' is null.</exception>
+ protected Claim(Claim other, ClaimsIdentity subject)
+ {
+ if (other == null)
+ throw new ArgumentNullException("other");
+
+ m_issuer = other.m_issuer;
+ m_originalIssuer = other.m_originalIssuer;
+ m_subject = subject;
+ m_type = other.m_type;
+ m_value = other.m_value;
+ m_valueType = other.m_valueType;
+ if (other.m_properties != null)
+ {
+ m_properties = new Dictionary<string, string>();
+ foreach (var key in other.m_properties.Keys)
+ {
+ m_properties.Add(key, other.m_properties[key]);
+ }
+ }
+
+ if (other.m_userSerializationData != null)
+ {
+ m_userSerializationData = other.m_userSerializationData.Clone() as byte[];
+ }
+ }
+
#endregion
/// <summary>
+ /// Contains any additional data provided by a derived type, typically set when calling <see cref="WriteTo(BinaryWriter, byte[])"/>.</param>
+ /// </summary>
+ protected virtual byte[] CustomSerializationData
+ {
+ get
+ {
+ return m_userSerializationData;
+ }
+ }
+
+ /// <summary>
/// Gets the issuer of the <see cref="Claim"/>.
/// </summary>
public string Issuer
@@ -266,6 +364,7 @@ namespace System.Security.Claims
/// <summary>
/// Gets the claim type of the <see cref="Claim"/>.
/// </summary>
+ /// <seealso cref="ClaimTypes"/>.
public string Type
{
get { return m_type; }
@@ -282,39 +381,233 @@ namespace System.Security.Claims
/// <summary>
/// Gets the value type of the <see cref="Claim"/>.
/// </summary>
+ /// <seealso cref="ClaimValueTypes"/>
public string ValueType
{
get { return m_valueType; }
}
/// <summary>
- /// Returns a new <see cref="Claim"/> object copied from this object. The subject of the new claim object is set to null.
+ /// Creates a new instance <see cref="Claim"/> with values copied from this object.
/// </summary>
- /// <returns>A new <see cref="Claim"/> object copied from this object.</returns>
- /// <remarks>This is a shallow copy operation.</remarks>
public virtual Claim Clone()
{
return Clone((ClaimsIdentity)null);
}
/// <summary>
- /// Returns a new <see cref="Claim"/> object copied from this object. The subject of the new claim object is set to identity.
+ /// Creates a new instance <see cref="Claim"/> with values copied from this object.
/// </summary>
- /// <param name="identity">The <see cref="ClaimsIdentity"/> that this <see cref="Claim"/> is associated with.</param>
- /// <returns>A new <see cref="Claim"/> object copied from this object.</returns>
- /// <remarks>This is a shallow copy operation.</remarks>
+ /// <param name="identity">the value for <see cref="Claim.Subject"/>, which is the <see cref="ClaimsIdentity"/> that has these claims.
+ /// <remarks><see cref="Claim.Subject"/> will be set to 'identity'.</remarks>
public virtual Claim Clone(ClaimsIdentity identity)
{
- Claim newClaim = new Claim(m_type, m_value, m_valueType, m_issuer, m_originalIssuer, identity);
- if (m_properties != null)
+ return new Claim(this, identity);
+ }
+
+ private void Initialize(BinaryReader reader, ClaimsIdentity subject)
+ {
+ if (reader == null)
+ {
+ throw new ArgumentNullException("reader");
+ }
+
+ m_subject = subject;
+
+ SerializationMask mask = (SerializationMask)reader.ReadInt32();
+ int numPropertiesRead = 1;
+ int numPropertiesToRead = reader.ReadInt32();
+ m_value = reader.ReadString();
+
+ if ((mask & SerializationMask.NameClaimType) == SerializationMask.NameClaimType)
+ {
+ m_type = ClaimsIdentity.DefaultNameClaimType;
+ }
+ else if ((mask & SerializationMask.RoleClaimType) == SerializationMask.RoleClaimType)
+ {
+ m_type = ClaimsIdentity.DefaultRoleClaimType;
+ }
+ else
+ {
+ m_type = reader.ReadString();
+ numPropertiesRead++;
+ }
+
+ if ((mask & SerializationMask.StringType) == SerializationMask.StringType)
+ {
+ m_valueType = reader.ReadString();
+ numPropertiesRead++;
+ }
+ else
+ {
+ m_valueType = ClaimValueTypes.String;
+ }
+
+ if ((mask & SerializationMask.Issuer) == SerializationMask.Issuer)
+ {
+ m_issuer = reader.ReadString();
+ numPropertiesRead++;
+ }
+ else
+ {
+ m_issuer = ClaimsIdentity.DefaultIssuer;
+ }
+
+ if ((mask & SerializationMask.OriginalIssuerEqualsIssuer) == SerializationMask.OriginalIssuerEqualsIssuer)
{
- foreach (string key in m_properties.Keys)
+ m_originalIssuer = m_issuer;
+ }
+ else if ((mask & SerializationMask.OriginalIssuer) == SerializationMask.OriginalIssuer)
+ {
+ m_originalIssuer = reader.ReadString();
+ numPropertiesRead++;
+ }
+ else
+ {
+ m_originalIssuer = ClaimsIdentity.DefaultIssuer;
+ }
+
+ if ((mask & SerializationMask.HasProperties) == SerializationMask.HasProperties)
+ {
+ //
+ int numProperties = reader.ReadInt32();
+ for (int i = 0; i < numProperties; i++)
{
- newClaim.Properties[key] = m_properties[key];
+ Properties.Add(reader.ReadString(), reader.ReadString());
}
}
- return newClaim;
+ if ((mask & SerializationMask.UserData) == SerializationMask.UserData)
+ {
+ //
+ int cb = reader.ReadInt32();
+ m_userSerializationData = reader.ReadBytes(cb);
+ numPropertiesRead++;
+ }
+
+ for (int i = numPropertiesRead; i < numPropertiesToRead; i++)
+ {
+ reader.ReadString();
+ }
+ }
+
+ /// <summary>
+ /// Serializes using a <see cref="BinaryWriter"/>
+ /// </summary>
+ /// <param name="writer">the <see cref="BinaryWriter"/> to use for data storage.</param>
+ /// <exception cref="ArgumentNullException">if 'writer' is null.</exception>
+ public virtual void WriteTo(BinaryWriter writer)
+ {
+ WriteTo(writer, null);
+ }
+
+ /// <summary>
+ /// Serializes using a <see cref="BinaryWriter"/>
+ /// </summary>
+ /// <param name="writer">the <see cref="BinaryWriter"/> to use for data storage.</param>
+ /// <param name="userData">additional data provided by derived type.</param>
+ /// <exception cref="ArgumentNullException">if 'writer' is null.</exception>
+ protected virtual void WriteTo(BinaryWriter writer, byte[] userData)
+ {
+ if (writer == null)
+ {
+ throw new ArgumentNullException("writer");
+ }
+
+ //
+
+
+ int numberOfPropertiesWritten = 1;
+ SerializationMask mask = SerializationMask.None;
+ if (string.Equals(m_type, ClaimsIdentity.DefaultNameClaimType))
+ {
+ mask |= SerializationMask.NameClaimType;
+ }
+ else if (string.Equals(m_type, ClaimsIdentity.DefaultRoleClaimType))
+ {
+ mask |= SerializationMask.RoleClaimType;
+ }
+ else
+ {
+ numberOfPropertiesWritten++;
+ }
+
+ if (!string.Equals(m_valueType, ClaimValueTypes.String, StringComparison.Ordinal))
+ {
+ numberOfPropertiesWritten++;
+ mask |= SerializationMask.StringType;
+ }
+
+ if (!string.Equals(m_issuer, ClaimsIdentity.DefaultIssuer, StringComparison.Ordinal))
+ {
+ numberOfPropertiesWritten++;
+ mask |= SerializationMask.Issuer;
+ }
+
+ if (string.Equals(m_originalIssuer, m_issuer, StringComparison.Ordinal))
+ {
+ mask |= SerializationMask.OriginalIssuerEqualsIssuer;
+ }
+ else if (!string.Equals(m_originalIssuer, ClaimsIdentity.DefaultIssuer, StringComparison.Ordinal))
+ {
+ numberOfPropertiesWritten++;
+ mask |= SerializationMask.OriginalIssuer;
+ }
+
+ if (Properties.Count > 0)
+ {
+ numberOfPropertiesWritten++;
+ mask |= SerializationMask.HasProperties;
+ }
+
+ //
+ if (userData != null && userData.Length > 0)
+ {
+ numberOfPropertiesWritten++;
+ mask |= SerializationMask.UserData;
+ }
+
+ writer.Write((Int32)mask);
+ writer.Write((Int32)numberOfPropertiesWritten);
+ writer.Write(m_value);
+
+ if (((mask & SerializationMask.NameClaimType) != SerializationMask.NameClaimType) && ((mask & SerializationMask.RoleClaimType) != SerializationMask.RoleClaimType))
+ {
+ writer.Write(m_type);
+ }
+
+ if ((mask & SerializationMask.StringType) == SerializationMask.StringType)
+ {
+ writer.Write(m_valueType);
+ }
+
+ if ((mask & SerializationMask.Issuer) == SerializationMask.Issuer)
+ {
+ writer.Write(m_issuer);
+ }
+
+ if ((mask & SerializationMask.OriginalIssuer) == SerializationMask.OriginalIssuer)
+ {
+ writer.Write(m_originalIssuer);
+ }
+
+ if ((mask & SerializationMask.HasProperties) == SerializationMask.HasProperties)
+ {
+ writer.Write(Properties.Count);
+ foreach (var key in Properties.Keys)
+ {
+ writer.Write(key);
+ writer.Write(Properties[key]);
+ }
+ }
+
+ if ((mask & SerializationMask.UserData) == SerializationMask.UserData)
+ {
+ writer.Write((Int32)userData.Length);
+ writer.Write(userData);
+ }
+
+ writer.Flush();
}
/// <summary>
diff --git a/mcs/class/referencesource/mscorlib/system/security/claims/ClaimTypes.cs b/mcs/class/referencesource/mscorlib/system/security/claims/ClaimTypes.cs
index 12019f397f2..f91627ba885 100644
--- a/mcs/class/referencesource/mscorlib/system/security/claims/ClaimTypes.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/claims/ClaimTypes.cs
@@ -7,7 +7,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Brentsch</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/claims/ClaimValueTypes.cs b/mcs/class/referencesource/mscorlib/system/security/claims/ClaimValueTypes.cs
index 32c9b0b2c07..2eb238f4908 100644
--- a/mcs/class/referencesource/mscorlib/system/security/claims/ClaimValueTypes.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/claims/ClaimValueTypes.cs
@@ -7,7 +7,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Brentsch</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/claims/ClaimsIdentity.cs b/mcs/class/referencesource/mscorlib/system/security/claims/ClaimsIdentity.cs
index 698f87bafec..87a8604ab14 100644
--- a/mcs/class/referencesource/mscorlib/system/security/claims/ClaimsIdentity.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/claims/ClaimsIdentity.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -30,6 +30,22 @@ namespace System.Security.Claims
[ComVisible(true)]
public class ClaimsIdentity : IIdentity
{
+ private enum SerializationMask
+ {
+ None = 0,
+ AuthenticationType = 1,
+ BootstrapConext = 2,
+ NameClaimType = 4,
+ RoleClaimType = 8,
+ HasClaims = 16,
+ HasLabel = 32,
+ Actor = 64,
+ UserData = 128,
+ }
+
+ [NonSerialized]
+ private byte[] m_userSerializationData;
+
[NonSerialized]
const string PreFix = "System.Security.ClaimsIdentity.";
[NonSerialized]
@@ -333,6 +349,49 @@ namespace System.Security.Claims
}
}
+ /// Initializes an instance of <see cref="ClaimsIdentity"/> using a <see cref="BinaryReader"/>.
+ /// Normally the reader is constructed from the bytes returned from <see cref="WriteTo"/>
+ /// </summary>
+ /// <param name="reader">a <see cref="BinaryReader"/> pointing to a <see cref="ClaimsIdentity"/>.</param>
+ /// <exception cref="ArgumentNullException">if 'reader' is null.</exception>
+ public ClaimsIdentity(BinaryReader reader)
+ {
+ if (reader == null)
+ throw new ArgumentNullException("reader");
+
+ Initialize(reader);
+ }
+
+ /// <summary>
+ /// Copy constructor.
+ /// </summary>
+ /// <param name="other"><see cref="ClaimsIdentity"/> to copy.</param>
+ /// <exception cref="ArgumentNullException">if 'other' is null.</exception>
+ protected ClaimsIdentity(ClaimsIdentity other)
+ {
+ if (other == null)
+ {
+ throw new ArgumentNullException("other");
+ }
+
+ if (other.m_actor != null)
+ {
+ m_actor = other.m_actor.Clone();
+ }
+
+ m_authenticationType = other.m_authenticationType;
+ m_bootstrapContext = other.m_bootstrapContext;
+ m_label = other.m_label;
+ m_nameType = other.m_nameType;
+ m_roleType = other.m_roleType;
+ if (other.m_userSerializationData != null)
+ {
+ m_userSerializationData = other.m_userSerializationData.Clone() as byte[];
+ }
+
+ SafeAddClaims(other.m_instanceClaims);
+ }
+
/// <summary>
/// Initializes an instance of <see cref="Identity"/> from a serialized stream created via
/// <see cref="ISerializable"/>.
@@ -451,6 +510,17 @@ namespace System.Security.Claims
}
/// <summary>
+ /// Contains any additional data provided by a derived type, typically set when calling <see cref="WriteTo(BinaryWriter, byte[])"/>.</param>
+ /// </summary>
+ protected virtual byte[] CustomSerializationData
+ {
+ get
+ {
+ return m_userSerializationData;
+ }
+ }
+
+ /// <summary>
/// Allow the association of claims with this instance of <see cref="ClaimsIdentity"/>.
/// The claims will not be serialized or added in Clone(). They will be included in searches, finds and returned from the call to Claims.
/// It is recommended the creator of the claims ensures the subject of the claims reflects this <see cref="ClaimsIdentity"/>.
@@ -998,6 +1068,203 @@ namespace System.Security.Claims
return false;
}
+ /// <summary>
+ /// Initializes from a <see cref="BinaryReader"/>. Normally the reader is initialized in the same as the one passed to <see cref="Serialize(BinaryWriter)"/>
+ /// </summary>
+ /// <param name="reader">a <see cref="BinaryReader"/> pointing to a <see cref="ClaimsIdentity"/>.</param>
+ /// <exception cref="ArgumentNullException">if 'reader' is null.</exception>
+ private void Initialize(BinaryReader reader)
+ {
+ if (reader == null)
+ {
+ throw new ArgumentNullException("reader");
+ }
+
+ //
+ SerializationMask mask = (SerializationMask)reader.ReadInt32();
+
+ if ((mask & SerializationMask.AuthenticationType) == SerializationMask.AuthenticationType)
+ {
+ m_authenticationType = reader.ReadString();
+ }
+
+ if ((mask & SerializationMask.BootstrapConext) == SerializationMask.BootstrapConext)
+ {
+ m_bootstrapContext = reader.ReadString();
+ }
+
+ if ((mask & SerializationMask.NameClaimType) == SerializationMask.NameClaimType)
+ {
+ m_nameType = reader.ReadString();
+ }
+ else
+ {
+ m_nameType = ClaimsIdentity.DefaultNameClaimType;
+ }
+
+ if ((mask & SerializationMask.RoleClaimType) == SerializationMask.RoleClaimType)
+ {
+ m_roleType = reader.ReadString();
+ }
+ else
+ {
+ m_roleType = ClaimsIdentity.DefaultRoleClaimType;
+ }
+
+ if ((mask & SerializationMask.HasClaims) == SerializationMask.HasClaims)
+ {
+ //
+ int numberOfClaims = reader.ReadInt32();
+ for (int index = 0; index < numberOfClaims; ++index)
+ {
+ Claim claim = new Claim(reader, this);
+ m_instanceClaims.Add(claim);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Provides and extensibility point for derived types to create a custom <see cref="Claim"/>.
+ /// </summary>
+ /// <param name="reader">the <see cref="BinaryReader"/>that points at the claim.</param>
+ /// <returns>a new <see cref="Claim"/>.</returns>
+ protected virtual Claim CreateClaim(BinaryReader reader)
+ {
+ if (reader == null)
+ {
+ throw new ArgumentNullException("reader");
+ }
+
+ return new Claim(reader, this);
+ }
+
+ /// <summary>
+ /// Serializes using a <see cref="BinaryWriter"/>
+ /// </summary>
+ /// <param name="writer">the <see cref="BinaryWriter"/> to use for data storage.</param>
+ /// <exception cref="ArgumentNullException">if 'writer' is null.</exception>
+ public virtual void WriteTo(BinaryWriter writer)
+ {
+ WriteTo(writer, null);
+ }
+
+ /// <summary>
+ /// Serializes using a <see cref="BinaryWriter"/>
+ /// </summary>
+ /// <param name="writer">the <see cref="BinaryWriter"/> to use for data storage.</param>
+ /// <param name="userData">additional data provided by derived type.</param>
+ /// <exception cref="ArgumentNullException">if 'writer' is null.</exception>
+ protected virtual void WriteTo(BinaryWriter writer, byte[] userData)
+ {
+ if (writer == null)
+ {
+ throw new ArgumentNullException("writer");
+ }
+
+ int numberOfPropertiesWritten = 0;
+ var mask = SerializationMask.None;
+ if (m_authenticationType != null)
+ {
+ mask |= SerializationMask.AuthenticationType;
+ numberOfPropertiesWritten++;
+ }
+
+ if (m_bootstrapContext != null)
+ {
+ string rawData = m_bootstrapContext as string;
+ if (rawData != null)
+ {
+ mask |= SerializationMask.BootstrapConext;
+ numberOfPropertiesWritten++;
+ }
+ }
+
+ if (!string.Equals(m_nameType, ClaimsIdentity.DefaultNameClaimType, StringComparison.Ordinal))
+ {
+ mask |= SerializationMask.NameClaimType;
+ numberOfPropertiesWritten++;
+ }
+
+ if (!string.Equals(m_roleType, ClaimsIdentity.DefaultRoleClaimType, StringComparison.Ordinal))
+ {
+ mask |= SerializationMask.RoleClaimType;
+ numberOfPropertiesWritten++;
+ }
+
+ if (!string.IsNullOrWhiteSpace(m_label))
+ {
+ mask |= SerializationMask.HasLabel;
+ numberOfPropertiesWritten++;
+ }
+
+ if (m_instanceClaims.Count > 0)
+ {
+ mask |= SerializationMask.HasClaims;
+ numberOfPropertiesWritten++;
+ }
+
+ if (m_actor != null)
+ {
+ mask |= SerializationMask.Actor;
+ numberOfPropertiesWritten++;
+ }
+
+ if (userData != null && userData.Length > 0)
+ {
+ numberOfPropertiesWritten++;
+ mask |= SerializationMask.UserData;
+ }
+
+ writer.Write((Int32)mask);
+ writer.Write((Int32)numberOfPropertiesWritten);
+ if ((mask & SerializationMask.AuthenticationType) == SerializationMask.AuthenticationType)
+ {
+ writer.Write(m_authenticationType);
+ }
+
+ if ((mask & SerializationMask.BootstrapConext) == SerializationMask.BootstrapConext)
+ {
+ writer.Write(m_bootstrapContext as string);
+ }
+
+ if ((mask & SerializationMask.NameClaimType) == SerializationMask.NameClaimType)
+ {
+ writer.Write(m_nameType);
+ }
+
+ if ((mask & SerializationMask.RoleClaimType) == SerializationMask.RoleClaimType)
+ {
+ writer.Write(m_roleType);
+ }
+
+ if ((mask & SerializationMask.HasLabel) == SerializationMask.HasLabel)
+ {
+ writer.Write(m_label);
+ }
+
+ if ((mask & SerializationMask.HasClaims) == SerializationMask.HasClaims)
+ {
+ writer.Write((Int32)m_instanceClaims.Count);
+ foreach (var claim in m_instanceClaims)
+ {
+ claim.WriteTo(writer);
+ }
+ }
+
+ if ((mask & SerializationMask.Actor) == SerializationMask.Actor)
+ {
+ m_actor.WriteTo(writer);
+ }
+
+ if ((mask & SerializationMask.UserData) == SerializationMask.UserData)
+ {
+ writer.Write((Int32)userData.Length);
+ writer.Write(userData);
+ }
+
+ writer.Flush();
+ }
+
// <param name="useContext"></param> The reason for this param is due to WindowsIdentity deciding to have an
// api that doesn't pass the context to its internal constructor.
[SecurityCritical]
diff --git a/mcs/class/referencesource/mscorlib/system/security/claims/ClaimsPrincipal.cs b/mcs/class/referencesource/mscorlib/system/security/claims/ClaimsPrincipal.cs
index 0d4be8ae0c6..3512df9da93 100644
--- a/mcs/class/referencesource/mscorlib/system/security/claims/ClaimsPrincipal.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/claims/ClaimsPrincipal.cs
@@ -7,7 +7,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -36,6 +36,16 @@ namespace System.Security.Claims
[ComVisible(true)]
public class ClaimsPrincipal : IPrincipal
{
+ private enum SerializationMask
+ {
+ None = 0,
+ HasIdentities = 1,
+ UserData = 2
+ }
+
+ [NonSerialized]
+ private byte[] m_userSerializationData;
+
[NonSerialized]
const string PreFix = "System.Security.ClaimsPrincipal.";
[NonSerialized]
@@ -230,6 +240,21 @@ namespace System.Security.Claims
}
}
+ /// <summary>
+ /// Initializes an instance of <see cref="ClaimsPrincipal"/> using a <see cref="BinaryReader"/>.
+ /// Normally the <see cref="BinaryReader"/> is constructed using the bytes from <see cref="WriteTo(BinaryWriter)"/> and initialized in the same way as the <see cref="BinaryWriter"/>.
+ /// </summary>
+ /// <param name="reader">a <see cref="BinaryReader"/> pointing to a <see cref="ClaimsPrincipal"/>.</param>
+ /// <exception cref="ArgumentNullException">if 'reader' is null.</exception>
+ public ClaimsPrincipal(BinaryReader reader)
+ {
+ if (reader == null)
+ throw new ArgumentNullException("reader");
+
+ Initialize(reader);
+ }
+
+
[SecurityCritical]
protected ClaimsPrincipal(SerializationInfo info, StreamingContext context)
{
@@ -241,6 +266,41 @@ namespace System.Security.Claims
Deserialize(info, context);
}
+ /// <summary>
+ /// Contains any additional data provided by derived type, typically set when calling <see cref="WriteTo(BinaryWriter, byte[])"/>.</param>
+ /// </summary>
+ protected virtual byte[] CustomSerializationData
+ {
+ get
+ {
+ return m_userSerializationData;
+ }
+ }
+
+ /// <summary>
+ /// Creates a new instance of <see cref="ClaimsPrincipal"/> with values copied from this object.
+ /// </summary>
+ public virtual ClaimsPrincipal Clone()
+ {
+ return new ClaimsPrincipal(this);
+ }
+
+ /// <summary>
+ /// Provides and extensibility point for derived types to create a custom <see cref="ClaimsIdentity"/>.
+ /// </summary>
+ /// <param name="reader">the <see cref="BinaryReader"/>that points at the claim.</param>
+ /// <exception cref="ArgumentNullException">if 'reader' is null.</exception>
+ /// <returns>a new <see cref="ClaimsIdentity"/>.</returns>
+ protected virtual ClaimsIdentity CreateClaimsIdentity(BinaryReader reader)
+ {
+ if (reader == null)
+ {
+ throw new ArgumentNullException("reader");
+ }
+
+ return new ClaimsIdentity(reader);
+ }
+
#endregion ClaimsPrincipal Constructors
[OnSerializing()]
@@ -717,6 +777,104 @@ namespace System.Security.Claims
return false;
}
+
+ /// <summary>
+ /// Initializes from a <see cref="BinaryReader"/>. Normally the reader is initialized with the results from <see cref="WriteTo(BinaryWriter)"/>
+ /// Normally the <see cref="BinaryReader"/> is initialized in the same way as the <see cref="BinaryWriter"/> passed to <see cref="WriteTo(BinaryWriter)"/>.
+ /// </summary>
+ /// <param name="reader">a <see cref="BinaryReader"/> pointing to a <see cref="ClaimsPrincipal"/>.</param>
+ /// <exception cref="ArgumentNullException">if 'reader' is null.</exception>
+ private void Initialize(BinaryReader reader)
+ {
+ if (reader == null)
+ {
+ throw new ArgumentNullException("reader");
+ }
+
+ SerializationMask mask = (SerializationMask)reader.ReadInt32();
+ int numPropertiesToRead = reader.ReadInt32();
+ int numPropertiesRead = 0;
+ if ((mask & SerializationMask.HasIdentities) == SerializationMask.HasIdentities)
+ {
+ numPropertiesRead++;
+ int numberOfIdentities = reader.ReadInt32();
+ for (int index = 0; index < numberOfIdentities; ++index)
+ {
+ // directly add to m_identities as that is what we serialized from
+ m_identities.Add(CreateClaimsIdentity(reader));
+ }
+ }
+
+ if ((mask & SerializationMask.UserData) == SerializationMask.UserData)
+ {
+ //
+ int cb = reader.ReadInt32();
+ m_userSerializationData = reader.ReadBytes(cb);
+ numPropertiesRead++;
+ }
+
+ for (int i = numPropertiesRead; i < numPropertiesToRead; i++)
+ {
+ reader.ReadString();
+ }
+ }
+
+ /// <summary>
+ /// Serializes using a <see cref="BinaryWriter"/>
+ /// </summary>
+ /// <exception cref="ArgumentNullException">if 'writer' is null.</exception>
+ public virtual void WriteTo(BinaryWriter writer)
+ {
+ WriteTo(writer, null);
+ }
+
+ /// <summary>
+ /// Serializes using a <see cref="BinaryWriter"/>
+ /// </summary>
+ /// <param name="writer">the <see cref="BinaryWriter"/> to use for data storage.</param>
+ /// <param name="userData">additional data provided by derived type.</param>
+ /// <exception cref="ArgumentNullException">if 'writer' is null.</exception>
+ protected virtual void WriteTo(BinaryWriter writer, byte[] userData)
+ {
+
+ if (writer == null)
+ {
+ throw new ArgumentNullException("writer");
+ }
+
+ int numberOfPropertiesWritten = 0;
+ var mask = SerializationMask.None;
+ if (m_identities.Count > 0)
+ {
+ mask |= SerializationMask.HasIdentities;
+ numberOfPropertiesWritten++;
+ }
+
+ if (userData != null && userData.Length > 0)
+ {
+ numberOfPropertiesWritten++;
+ mask |= SerializationMask.UserData;
+ }
+
+ writer.Write((Int32)mask);
+ writer.Write((Int32)numberOfPropertiesWritten);
+ if ((mask & SerializationMask.HasIdentities) == SerializationMask.HasIdentities)
+ {
+ writer.Write(m_identities.Count);
+ foreach (var identity in m_identities)
+ {
+ identity.WriteTo(writer);
+ }
+ }
+
+ if ((mask & SerializationMask.UserData) == SerializationMask.UserData)
+ {
+ writer.Write((Int32)userData.Length);
+ writer.Write(userData);
+ }
+
+ writer.Flush();
+ }
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/security/claims/RoleClaimProvider.cs b/mcs/class/referencesource/mscorlib/system/security/claims/RoleClaimProvider.cs
index 3a061e99c19..3664f914222 100644
--- a/mcs/class/referencesource/mscorlib/system/security/claims/RoleClaimProvider.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/claims/RoleClaimProvider.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
// RoleClaimProvider.cs
diff --git a/mcs/class/referencesource/mscorlib/system/security/codeaccesspermission.cs b/mcs/class/referencesource/mscorlib/system/security/codeaccesspermission.cs
index 98fb570b48e..e1d1bb12ce3 100644
--- a/mcs/class/referencesource/mscorlib/system/security/codeaccesspermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/codeaccesspermission.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace System.Security
{
using System.IO;
diff --git a/mcs/class/referencesource/mscorlib/system/security/codeaccesssecurityengine.cs b/mcs/class/referencesource/mscorlib/system/security/codeaccesssecurityengine.cs
index 45b3eccba21..804cc50b1af 100644
--- a/mcs/class/referencesource/mscorlib/system/security/codeaccesssecurityengine.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/codeaccesssecurityengine.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security {
@@ -20,7 +20,7 @@ namespace System.Security {
using System.Diagnostics.Contracts;
// Used in DemandInternal, to remember the result of previous demands
- // KEEP IN [....] WITH DEFINITIONS IN SECURITYPOLICY.H
+ // KEEP IN SYNC WITH DEFINITIONS IN SECURITYPOLICY.H
[Serializable]
internal enum PermissionType
{
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/HashAlgorithmName.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/HashAlgorithmName.cs
new file mode 100644
index 00000000000..3e75d7b5ad1
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/HashAlgorithmName.cs
@@ -0,0 +1,109 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+
+namespace System.Security.Cryptography
+{
+ // Strongly typed string representing the name of a hash algorithm.
+ // Open ended to allow extensibility while giving the discoverable feel of an enum for common values.
+
+ /// <summary>
+ /// Specifies the name of a cryptographic hash algorithm.
+ /// </summary>
+ /// Asymmetric Algorithms implemented using Microsoft's CNG (Cryptography Next Generation) API
+ /// will interpret the underlying string value as a CNG algorithm identifier:
+ /// * https://msdn.microsoft.com/en-us/library/windows/desktop/aa375534(v=vs.85).aspx
+ ///
+ /// As with CNG, the names are case-sensitive.
+ ///
+ /// Asymmetric Algorithms implemented using other technologies:
+ /// * Must recognize at least "MD5", "SHA1", "SHA256", "SHA384", and "SHA512".
+ /// * Should recognize additional CNG IDs for any other hash algorithms that they also support.
+ /// </remarks>
+ public struct HashAlgorithmName : IEquatable<HashAlgorithmName>
+ {
+ // Returning a new instance every time is free here since HashAlgorithmName is a struct with
+ // a single string field. The optimized codegen should be equivalent to return "MD5".
+
+ /// <summary>
+ /// Gets a <see cref="HashAlgorithmName" /> representing "MD5"
+ /// </summary>
+ public static HashAlgorithmName MD5 { get { return new HashAlgorithmName("MD5"); } }
+
+ /// <summary>
+ /// Gets a <see cref="HashAlgorithmName" /> representing "SHA1"
+ /// </summary>
+ public static HashAlgorithmName SHA1 { get { return new HashAlgorithmName("SHA1"); } }
+
+ /// <summary>
+ /// Gets a <see cref="HashAlgorithmName" /> representing "SHA256"
+ /// </summary>
+ public static HashAlgorithmName SHA256 { get { return new HashAlgorithmName("SHA256"); } }
+
+ /// <summary>
+ /// Gets a <see cref="HashAlgorithmName" /> representing "SHA384"
+ /// </summary>
+ public static HashAlgorithmName SHA384 { get { return new HashAlgorithmName("SHA384"); } }
+
+ /// <summary>
+ /// Gets a <see cref="HashAlgorithmName" /> representing "SHA512"
+ /// </summary>
+ public static HashAlgorithmName SHA512 { get { return new HashAlgorithmName("SHA512"); } }
+
+ private readonly string _name;
+
+ /// <summary>
+ /// Gets a <see cref="HashAlgorithmName" /> representing a custom name.
+ /// </summary>
+ /// <param name="name">The custom hash algorithm name.</param>
+ public HashAlgorithmName(string name)
+ {
+ // Note: No validation because we have to deal with default(HashAlgorithmName) regardless.
+ _name = name;
+ }
+
+ /// <summary>
+ /// Gets the underlying string representation of the algorithm name.
+ /// </summary>
+ /// <remarks>
+ /// May be null or empty to indicate that no hash algorithm is applicable.
+ /// </remarks>
+ public string Name
+ {
+ get { return _name; }
+ }
+
+ public override string ToString()
+ {
+ return _name ?? String.Empty;
+ }
+
+ public override bool Equals(object obj)
+ {
+ return obj is HashAlgorithmName && Equals((HashAlgorithmName)obj);
+ }
+
+ public bool Equals(HashAlgorithmName other)
+ {
+ // NOTE: intentionally ordinal and case sensitive, matches CNG.
+ return _name == other._name;
+ }
+
+ public override int GetHashCode()
+ {
+ return _name == null ? 0 : _name.GetHashCode();
+ }
+
+ public static bool operator ==(HashAlgorithmName left, HashAlgorithmName right)
+ {
+ return left.Equals(right);
+ }
+
+ public static bool operator !=(HashAlgorithmName left, HashAlgorithmName right)
+ {
+ return !(left == right);
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/RSAEncryptionPadding.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/RSAEncryptionPadding.cs
new file mode 100644
index 00000000000..9494908361d
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/RSAEncryptionPadding.cs
@@ -0,0 +1,130 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+
+namespace System.Security.Cryptography
+{
+ /// <summary>
+ /// Specifies the padding mode and parameters to use with RSA encryption or decryption operations.
+ /// </summary>
+ public sealed class RSAEncryptionPadding : IEquatable<RSAEncryptionPadding>
+ {
+ private static readonly RSAEncryptionPadding s_pkcs1 = new RSAEncryptionPadding(RSAEncryptionPaddingMode.Pkcs1, default(HashAlgorithmName));
+ private static readonly RSAEncryptionPadding s_oaepSHA1 = CreateOaep(HashAlgorithmName.SHA1);
+ private static readonly RSAEncryptionPadding s_oaepSHA256 = CreateOaep(HashAlgorithmName.SHA256);
+ private static readonly RSAEncryptionPadding s_oaepSHA384 = CreateOaep(HashAlgorithmName.SHA384);
+ private static readonly RSAEncryptionPadding s_oaepSHA512 = CreateOaep(HashAlgorithmName.SHA512);
+
+ /// <summary>
+ /// <see cref="RSAEncryptionPaddingMode.Pkcs1"/> mode.
+ /// </summary>
+ public static RSAEncryptionPadding Pkcs1 { get { return s_pkcs1; } }
+
+ /// <summary>
+ /// <see cref="RSAEncryptionPaddingMode.Oaep"/> mode with SHA1 hash algorithm.
+ /// </summary>
+ public static RSAEncryptionPadding OaepSHA1 { get { return s_oaepSHA1; } }
+
+ /// <summary>
+ /// <see cref="RSAEncrytpionPaddingMode.Oaep"/> mode with SHA256 hash algorithm.
+ /// </summary>
+ public static RSAEncryptionPadding OaepSHA256 { get { return s_oaepSHA256; } }
+
+ /// <summary>
+ /// <see cref="RSAEncrytpionPaddingMode.Oaep"/> mode with SHA384 hash algorithm.
+ /// </summary>
+ public static RSAEncryptionPadding OaepSHA384 { get { return s_oaepSHA384; } }
+
+ /// <summary>
+ /// <see cref="RSAEncrytpionPaddingMode.Oaep"/> mode with SHA512 hash algorithm.
+ /// </summary>
+ public static RSAEncryptionPadding OaepSHA512 { get { return s_oaepSHA512; } }
+
+ private RSAEncryptionPaddingMode _mode;
+ private HashAlgorithmName _oaepHashAlgorithm;
+
+ private RSAEncryptionPadding(RSAEncryptionPaddingMode mode, HashAlgorithmName oaepHashAlgorithm)
+ {
+ _mode = mode;
+ _oaepHashAlgorithm = oaepHashAlgorithm;
+ }
+
+ /// <summary>
+ /// Creates a new instance instance representing <see cref="RSAEncryptionPaddingMode.Oaep"/>
+ /// with the given hash algorithm.
+ /// </summary>
+ public static RSAEncryptionPadding CreateOaep(HashAlgorithmName hashAlgorithm)
+ {
+ if (String.IsNullOrEmpty(hashAlgorithm.Name))
+ {
+ throw new ArgumentException(Environment.GetResourceString("Cryptography_HashAlgorithmNameNullOrEmpty"), "hashAlgorithm");
+ }
+
+ return new RSAEncryptionPadding(RSAEncryptionPaddingMode.Oaep, hashAlgorithm);
+ }
+
+ /// <summary>
+ /// Gets the padding mode to use.
+ /// </summary>
+ public RSAEncryptionPaddingMode Mode
+ {
+ get { return _mode; }
+ }
+
+ /// <summary>
+ /// Gets the padding mode to use in conjunction with <see cref="RSAEncryptionPaddingMode.Oaep"/>.
+ /// </summary>
+ /// <remarks>
+ /// If <see cref="Mode"/> is not <see cref="RSAEncryptionPaddingMode.Oaep"/>, then <see cref="HashAlgorithmName.Name" /> will be null.
+ /// </remarks>
+ public HashAlgorithmName OaepHashAlgorithm
+ {
+ get { return _oaepHashAlgorithm; }
+ }
+
+ public override int GetHashCode()
+ {
+ return CombineHashCodes(_mode.GetHashCode(), _oaepHashAlgorithm.GetHashCode());
+ }
+
+ // Same as non-public Tuple.CombineHashCodes
+ private static int CombineHashCodes(int h1, int h2)
+ {
+ return (((h1 << 5) + h1) ^ h2);
+ }
+
+ public override bool Equals(object obj)
+ {
+ return Equals(obj as RSAEncryptionPadding);
+ }
+
+ public bool Equals(RSAEncryptionPadding other)
+ {
+ return other != null
+ && _mode == other._mode
+ && _oaepHashAlgorithm == other._oaepHashAlgorithm;
+ }
+
+ public static bool operator ==(RSAEncryptionPadding left, RSAEncryptionPadding right)
+ {
+ if (Object.ReferenceEquals(left, null))
+ {
+ return Object.ReferenceEquals(right, null);
+ }
+
+ return left.Equals(right);
+ }
+
+ public static bool operator !=(RSAEncryptionPadding left, RSAEncryptionPadding right)
+ {
+ return !(left == right);
+ }
+
+ public override string ToString()
+ {
+ return _mode.ToString() + _oaepHashAlgorithm.Name;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/RSAEncryptionPaddingMode.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/RSAEncryptionPaddingMode.cs
new file mode 100644
index 00000000000..7c1bb10d44f
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/RSAEncryptionPaddingMode.cs
@@ -0,0 +1,32 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+
+namespace System.Security.Cryptography
+{
+ /// <summary>
+ /// Specifies the padding mode to use with RSA encryption or decryption operations.
+ /// </summary>
+ public enum RSAEncryptionPaddingMode
+ {
+ /// <summary>
+ /// PKCS #1 v1.5.
+ /// </summary>
+ /// <remarks>
+ /// This mode correpsonds to the RSAES-PKCS1-v1_5 encryption scheme described in the PKCS #1 RSA Encryption Standard.
+ /// It is supported for compatibility with existing applications.
+ /// </remarks>
+ Pkcs1,
+
+ /// <summary>
+ /// Optimal Asymmetric Encryption Padding.
+ /// </summary>
+ /// <remarks>
+ /// This mode corresponds to the RSAES-OEAP encryption scheme described in the PKCS #1 RSA Encryption Standard.
+ /// It is recommended for new applications.
+ /// </remarks>
+ Oaep,
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/RSASignaturePadding.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/RSASignaturePadding.cs
new file mode 100644
index 00000000000..61989c70232
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/RSASignaturePadding.cs
@@ -0,0 +1,87 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+
+namespace System.Security.Cryptography
+{
+ // NOTE: This is *currently* 1:1 with the enum, but it exists to reserve room for more options
+ // such as custom # of PSS salt bytes without having to modify other parts of the API
+ // surface.
+
+ /// <summary>
+ /// Specifies the padding mode and parameters to use with RSA signature creation or verification operations.
+ /// </summary>
+ public sealed class RSASignaturePadding : IEquatable<RSASignaturePadding>
+ {
+ private static readonly RSASignaturePadding s_pkcs1 = new RSASignaturePadding(RSASignaturePaddingMode.Pkcs1);
+ private static readonly RSASignaturePadding s_pss = new RSASignaturePadding(RSASignaturePaddingMode.Pss);
+
+ private readonly RSASignaturePaddingMode _mode;
+
+ private RSASignaturePadding(RSASignaturePaddingMode mode)
+ {
+ _mode = mode;
+ }
+
+ /// <summary>
+ /// <see cref="RSASignaturePaddingMode.Pkcs1"/> mode.
+ /// </summary>
+ public static RSASignaturePadding Pkcs1
+ {
+ get { return s_pkcs1; }
+ }
+
+ /// <summary>
+ /// <see cref="RSASignaturePaddingMode.Pss"/> mode with the number of salt bytes equal to the size of the hash.
+ /// </summary>
+ public static RSASignaturePadding Pss
+ {
+ get { return s_pss; }
+ }
+
+ /// <summary>
+ /// Gets the padding mode to use.
+ /// </summary>
+ public RSASignaturePaddingMode Mode
+ {
+ get { return _mode; }
+ }
+
+ public override int GetHashCode()
+ {
+ return _mode.GetHashCode();
+ }
+
+ public override bool Equals(object obj)
+ {
+ return Equals(obj as RSASignaturePadding);
+ }
+
+ public bool Equals(RSASignaturePadding other)
+ {
+ return other != null && _mode == other._mode;
+ }
+
+ public static bool operator ==(RSASignaturePadding left, RSASignaturePadding right)
+ {
+ if (Object.ReferenceEquals(left, null))
+ {
+ return Object.ReferenceEquals(right, null);
+ }
+
+ return left.Equals(right);
+ }
+
+ public static bool operator !=(RSASignaturePadding left, RSASignaturePadding right)
+ {
+ return !(left == right);
+ }
+
+ public override string ToString()
+ {
+ return _mode.ToString();
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/RSASignaturePaddingMode.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/RSASignaturePaddingMode.cs
new file mode 100644
index 00000000000..356852937fd
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/RSASignaturePaddingMode.cs
@@ -0,0 +1,32 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+
+namespace System.Security.Cryptography
+{
+ /// <summary>
+ /// Specifies the padding mode to use with RSA signature creation or verification operations.
+ /// </summary>
+ public enum RSASignaturePaddingMode
+ {
+ /// <summary>
+ /// PKCS #1 v1.5.
+ /// </summary>
+ /// <remarks>
+ /// This corresponds to the RSASSA-PKCS1-v1.5 signature scheme of the PKCS #1 RSA Encryption Standard.
+ /// It is supported for compatibility with existing applications.
+ /// </remarks>
+ Pkcs1,
+
+ /// <summary>
+ /// Probabilistic Signature Scheme.
+ /// </summary>
+ /// <remarks>
+ /// This corresponds to the RSASSA-PKCS1-v1.5 signature scheme of the PKCS #1 RSA Encryption Standard.
+ /// It is recommended for new applications.
+ /// </remarks>
+ Pss,
+ }
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetricalgorithm.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetricalgorithm.cs
index 027dc7304aa..45cdaa749e6 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetricalgorithm.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetricalgorithm.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -11,7 +11,7 @@
//
namespace System.Security.Cryptography {
-[System.Runtime.InteropServices.ComVisible(true)]
+ [System.Runtime.InteropServices.ComVisible(true)]
public abstract class AsymmetricAlgorithm : IDisposable {
protected int KeySizeValue;
protected KeySizes[] LegalKeySizesValue;
@@ -71,13 +71,19 @@ namespace System.Security.Cryptography {
public virtual KeySizes[] LegalKeySizes {
get { return (KeySizes[]) LegalKeySizesValue.Clone(); }
}
-
- public abstract String SignatureAlgorithm {
- get;
+
+ // This method must be implemented by derived classes. In order to conform to the contract, it cannot be abstract.
+ public virtual String SignatureAlgorithm {
+ get {
+ throw new NotImplementedException();
+ }
}
- public abstract String KeyExchangeAlgorithm {
- get;
+ // This method must be implemented by derived classes. In order to conform to the contract, it cannot be abstract.
+ public virtual String KeyExchangeAlgorithm {
+ get {
+ throw new NotImplementedException();
+ }
}
//
@@ -98,7 +104,14 @@ namespace System.Security.Cryptography {
return (AsymmetricAlgorithm) CryptoConfig.CreateFromName(algName);
}
- public abstract void FromXmlString(String xmlString);
- public abstract String ToXmlString(bool includePrivateParameters);
+ // This method must be implemented by derived classes. In order to conform to the contract, it cannot be abstract.
+ public virtual void FromXmlString(String xmlString) {
+ throw new NotImplementedException();
+ }
+
+ // This method must be implemented by derived classes. In order to conform to the contract, it cannot be abstract.
+ public virtual String ToXmlString(bool includePrivateParameters) {
+ throw new NotImplementedException();
+ }
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetrickeyexchangedeformatter.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetrickeyexchangedeformatter.cs
index f9272ee23e6..1492e46ba29 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetrickeyexchangedeformatter.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetrickeyexchangedeformatter.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetrickeyexchangeformatter.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetrickeyexchangeformatter.cs
index 1da8d9b89a3..5dca811ed20 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetrickeyexchangeformatter.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetrickeyexchangeformatter.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetricsignaturedeformatter.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetricsignaturedeformatter.cs
index 232e711da08..df836d2b039 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetricsignaturedeformatter.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetricsignaturedeformatter.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetricsignatureformatter.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetricsignatureformatter.cs
index 6911141f48a..37f1d65f64c 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetricsignatureformatter.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/asymmetricsignatureformatter.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/base64transforms.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/base64transforms.cs
index 91ffbd4f42b..05efe3c3e4a 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/base64transforms.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/base64transforms.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/capinative.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/capinative.cs
new file mode 100644
index 00000000000..ea377f350a3
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/capinative.cs
@@ -0,0 +1,598 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+
+//
+// This source file is marked up so that it can be built both as part of the BCL and as part of the fx tree
+// as well. Since the security annotation process is different between the two trees, SecurityCritical
+// attributes appear directly in this file, instead of being marked up by the BCL annotator tool.
+//
+
+using System;
+using System.Diagnostics;
+using System.Globalization;
+using System.Runtime.ConstrainedExecution;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Security;
+using System.Text;
+using Microsoft.Win32.SafeHandles;
+using System.Diagnostics.Contracts;
+
+namespace System.Security.Cryptography {
+
+ /// <summary>
+ /// Native interop with CAPI. Native code definitions can be found in wincrypt.h
+ /// </summary>
+ internal static class CapiNative {
+ /// <summary>
+ /// Class fields for CAPI algorithm identifiers
+ /// </summary>
+ internal enum AlgorithmClass
+ {
+ Any = (0 << 13), // ALG_CLASS_ANY
+ Signature = (1 << 13), // ALG_CLASS_SIGNATURE
+ Hash = (4 << 13), // ALG_CLASS_HASH
+ KeyExchange = (5 << 13), // ALG_CLASS_KEY_EXCHANGE
+ }
+
+ /// <summary>
+ /// Type identifier fields for CAPI algorithm identifiers
+ /// </summary>
+ internal enum AlgorithmType
+ {
+ Any = (0 << 9), // ALG_TYPE_ANY
+ Rsa = (2 << 9), // ALG_TYPE_RSA
+ }
+
+ /// <summary>
+ /// Sub identifiers for CAPI algorithm identifiers
+ /// </summary>
+ internal enum AlgorithmSubId
+ {
+ Any = 0, // ALG_SID_ANY
+
+ RsaAny = 0, // ALG_SID_RSA_ANY
+
+ Sha1 = 4, // ALG_SID_SHA1
+ Sha256 = 12, // ALG_SID_SHA_256
+ Sha384 = 13, // ALG_SID_SHA_384
+ Sha512 = 14, // ALG_SID_SHA_512
+ }
+
+ /// <summary>
+ /// CAPI algorithm identifiers
+ /// </summary>
+ internal enum AlgorithmID
+ {
+ None = 0,
+
+ RsaSign = (AlgorithmClass.Signature | AlgorithmType.Rsa | AlgorithmSubId.RsaAny), // CALG_RSA_SIGN
+ RsaKeyExchange = (AlgorithmClass.KeyExchange | AlgorithmType.Rsa | AlgorithmSubId.RsaAny), // CALG_RSA_KEYX
+
+ Sha1 = (AlgorithmClass.Hash | AlgorithmType.Any | AlgorithmSubId.Sha1), // CALG_SHA1
+ Sha256 = (AlgorithmClass.Hash | AlgorithmType.Any | AlgorithmSubId.Sha256), // CALG_SHA_256
+ Sha384 = (AlgorithmClass.Hash | AlgorithmType.Any | AlgorithmSubId.Sha384), // CALG_SHA_384
+ Sha512 = (AlgorithmClass.Hash | AlgorithmType.Any | AlgorithmSubId.Sha512), // CALG_SHA_512
+ }
+
+ /// <summary>
+ /// Flags for the CryptAcquireContext API
+ /// </summary>
+ [Flags]
+ internal enum CryptAcquireContextFlags {
+ None = 0x00000000,
+ NewKeyset = 0x00000008, // CRYPT_NEWKEYSET
+ DeleteKeyset = 0x00000010, // CRYPT_DELETEKEYSET
+ MachineKeyset = 0x00000020, // CRYPT_MACHINE_KEYSET
+ Silent = 0x00000040, // CRYPT_SILENT
+ VerifyContext = unchecked((int)0xF0000000) // CRYPT_VERIFYCONTEXT
+ }
+
+ /// <summary>
+ /// Error codes returned by CAPI
+ /// </summary>
+ internal enum ErrorCode {
+ Ok = 0x00000000,
+ MoreData = 0x000000ea, // ERROR_MORE_DATA
+ BadHash = unchecked((int)0x80090002), // NTE_BAD_HASH
+ BadData = unchecked((int)0x80090005), // NTE_BAD_DATA
+ BadSignature = unchecked((int)0x80090006), // NTE_BAD_SIGNATURE
+ NoKey = unchecked((int)0x8009000d) // NTE_NO_KEY
+ }
+
+ /// <summary>
+ /// Properties of CAPI hash objects
+ /// </summary>
+ internal enum HashProperty {
+ None = 0,
+ HashValue = 0x0002, // HP_HASHVAL
+ HashSize = 0x0004, // HP_HASHSIZE
+ }
+
+ /// <summary>
+ /// Flags for the CryptGenKey API
+ /// </summary>
+ [Flags]
+ internal enum KeyGenerationFlags {
+ None = 0x00000000,
+ Exportable = 0x00000001, // CRYPT_EXPORTABLE
+ UserProtected = 0x00000002, // CRYPT_USER_PROTECTED
+ Archivable = 0x00004000 // CRYPT_ARCHIVABLE
+ }
+
+ /// <summary>
+ /// Properties that can be read or set on a key
+ /// </summary>
+ internal enum KeyProperty {
+ None = 0,
+ AlgorithmID = 7, // KP_ALGID
+ KeyLength = 9 // KP_KEYLEN
+ }
+
+ /// <summary>
+ /// Key numbers for identifying specific keys within a single container
+ /// </summary>
+ internal enum KeySpec {
+ KeyExchange = 1, // AT_KEYEXCHANGE
+ Signature = 2 // AT_SIGNATURE
+ }
+
+ /// <summary>
+ /// Well-known names of crypto service providers
+ /// </summary>
+ internal static class ProviderNames {
+ // MS_ENHANCED_PROV
+ internal const string MicrosoftEnhanced = "Microsoft Enhanced Cryptographic Provider v1.0";
+ }
+
+ /// <summary>
+ /// Provider type accessed in a crypto service provider. These provide the set of algorithms
+ /// available to use for an application.
+ /// </summary>
+ internal enum ProviderType {
+ RsaFull = 1 // PROV_RSA_FULL
+ }
+
+ [System.Security.SecurityCritical]
+ internal static class UnsafeNativeMethods {
+ /// <summary>
+ /// Open a crypto service provider, if a key container is specified KeyContainerPermission
+ /// should be demanded.
+ /// </summary>
+ [DllImport("advapi32", SetLastError = true, CharSet = CharSet.Unicode)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal static extern bool CryptAcquireContext([Out] out SafeCspHandle phProv,
+ string pszContainer,
+ string pszProvider,
+ ProviderType dwProvType,
+ CryptAcquireContextFlags dwFlags);
+
+ /// <summary>
+ /// Create an object to hash data with
+ /// </summary>
+ [DllImport("advapi32", SetLastError = true)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal static extern bool CryptCreateHash(SafeCspHandle hProv,
+ AlgorithmID Algid,
+ IntPtr hKey, // SafeCspKeyHandle
+ int dwFlags,
+ [Out] out SafeCspHashHandle phHash);
+
+ /// <summary>
+ /// Create a new key in the given key container
+ /// </summary>
+ [DllImport("advapi32", SetLastError = true)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal static extern bool CryptGenKey(SafeCspHandle hProv,
+ int Algid,
+ uint dwFlags,
+ [Out] out SafeCspKeyHandle phKey);
+
+ /// <summary>
+ /// Fill a buffer with randomly generated data
+ /// </summary>
+ [DllImport("advapi32", SetLastError = true)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal static extern bool CryptGenRandom(SafeCspHandle hProv,
+ int dwLen,
+ [In, Out, MarshalAs(UnmanagedType.LPArray)] byte[] pbBuffer);
+
+ /// <summary>
+ /// Fill a buffer with randomly generated data
+ /// </summary>
+ [DllImport("advapi32", SetLastError = true)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal static extern unsafe bool CryptGenRandom(SafeCspHandle hProv,
+ int dwLen,
+ byte* pbBuffer);
+
+ /// <summary>
+ /// Read the value of a property from a hash object
+ /// </summary>
+ [DllImport("advapi32", SetLastError = true)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal static extern bool CryptGetHashParam(SafeCspHashHandle hHash,
+ HashProperty dwParam,
+ [In, Out, MarshalAs(UnmanagedType.LPArray)] byte[] pbData,
+ [In, Out] ref int pdwDataLen,
+ int dwFlags);
+
+ /// <summary>
+ /// Read the value of a property from a key
+ /// </summary>
+ [DllImport("advapi32", SetLastError = true)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal static extern bool CryptGetKeyParam(SafeCspKeyHandle hKey,
+ KeyProperty dwParam,
+ [In, Out, MarshalAs(UnmanagedType.LPArray)] byte[] pbData,
+ [In, Out] ref int pdwDataLen,
+ int dwFlags);
+
+ /// <summary>
+ /// Import a key blob into a CSP
+ /// </summary>
+ [DllImport("advapi32", SetLastError = true)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal static extern bool CryptImportKey(SafeCspHandle hProv,
+ [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbData,
+ int pdwDataLen,
+ IntPtr hPubKey, // SafeCspKeyHandle
+ KeyGenerationFlags dwFlags,
+ [Out] out SafeCspKeyHandle phKey);
+
+ /// <summary>
+ /// Set the value of a property on a hash object
+ /// </summary>
+ [DllImport("advapi32", SetLastError = true)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal static extern bool CryptSetHashParam(SafeCspHashHandle hHash,
+ HashProperty dwParam,
+ [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbData,
+ int dwFlags);
+
+ /// <summary>
+ /// Verify the a digital signature
+ /// </summary>
+ [DllImport("advapi32", SetLastError = true, CharSet = CharSet.Unicode)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal static extern bool CryptVerifySignature(SafeCspHashHandle hHash,
+ [In, MarshalAs(UnmanagedType.LPArray)] byte[] pbSignature,
+ int dwSigLen,
+ SafeCspKeyHandle hPubKey,
+ string sDescription,
+ int dwFlags);
+ }
+
+ /// <summary>
+ /// Acquire a handle to a crypto service provider and optionally a key container
+ /// </summary>
+ [SecurityCritical]
+ internal static SafeCspHandle AcquireCsp(string keyContainer,
+ string providerName,
+ ProviderType providerType,
+ CryptAcquireContextFlags flags) {
+ Contract.Assert(keyContainer == null, "Key containers are not supported");
+
+ // Specifying both verify context (for an ephemeral key) and machine keyset (for a persisted machine key)
+ // does not make sense. Additionally, Widows is beginning to lock down against uses of MACHINE_KEYSET
+ // (for instance in the app container), even if verify context is present. Therefore, if we're using
+ // an ephemeral key, strip out MACHINE_KEYSET from the flags.
+ if (((flags & CryptAcquireContextFlags.VerifyContext) == CryptAcquireContextFlags.VerifyContext) &&
+ ((flags & CryptAcquireContextFlags.MachineKeyset) == CryptAcquireContextFlags.MachineKeyset)) {
+ flags &= ~CryptAcquireContextFlags.MachineKeyset;
+ }
+
+ SafeCspHandle cspHandle = null;
+ if (!UnsafeNativeMethods.CryptAcquireContext(out cspHandle,
+ keyContainer,
+ providerName,
+ providerType,
+ flags)) {
+ throw new CryptographicException(Marshal.GetLastWin32Error());
+ }
+
+ return cspHandle;
+ }
+
+ /// <summary>
+ /// Create a CSP hash object for the specified hash algorithm
+ /// </summary>
+ [SecurityCritical]
+ internal static SafeCspHashHandle CreateHashAlgorithm(SafeCspHandle cspHandle, AlgorithmID algorithm) {
+ Contract.Assert(cspHandle != null && !cspHandle.IsInvalid, "cspHandle != null && !cspHandle.IsInvalid");
+ Contract.Assert(((AlgorithmClass)algorithm & AlgorithmClass.Hash) == AlgorithmClass.Hash, "Invalid hash algorithm");
+
+ SafeCspHashHandle hashHandle = null;
+ if (!UnsafeNativeMethods.CryptCreateHash(cspHandle, algorithm, IntPtr.Zero, 0, out hashHandle)) {
+ throw new CryptographicException(Marshal.GetLastWin32Error());
+ }
+
+ return hashHandle;
+ }
+
+ /// <summary>
+ /// Fill a buffer with random data generated by the CSP
+ /// </summary>
+ [SecurityCritical]
+ internal static void GenerateRandomBytes(SafeCspHandle cspHandle, byte[] buffer) {
+ Contract.Assert(cspHandle != null && !cspHandle.IsInvalid, "cspHandle != null && !cspHandle.IsInvalid");
+ Contract.Assert(buffer != null && buffer.Length > 0, "buffer != null && buffer.Length > 0");
+
+ if (!UnsafeNativeMethods.CryptGenRandom(cspHandle, buffer.Length, buffer)) {
+ throw new CryptographicException(Marshal.GetLastWin32Error());
+ }
+ }
+
+ /// <summary>
+ /// Fill part of a buffer with random data generated by the CSP
+ /// </summary>
+ [SecurityCritical]
+ internal static unsafe void GenerateRandomBytes(SafeCspHandle cspHandle, byte[] buffer, int offset, int count)
+ {
+ Contract.Assert(cspHandle != null && !cspHandle.IsInvalid, "cspHandle != null && !cspHandle.IsInvalid");
+ Contract.Assert(buffer != null && buffer.Length > 0, "buffer != null && buffer.Length > 0");
+ Contract.Assert(offset >= 0 && count > 0, "offset >= 0 && count > 0");
+ Contract.Assert(buffer.Length >= offset + count, "buffer.Length >= offset + count");
+
+ fixed (byte* pBuffer = &buffer[offset])
+ {
+ if (!UnsafeNativeMethods.CryptGenRandom(cspHandle, count, pBuffer))
+ {
+ throw new CryptographicException(Marshal.GetLastWin32Error());
+ }
+ }
+ }
+
+ /// <summary>
+ /// Get a DWORD sized property of a hash object
+ /// </summary>
+ [SecurityCritical]
+ internal static int GetHashPropertyInt32(SafeCspHashHandle hashHandle, HashProperty property) {
+ byte[] rawProperty = GetHashProperty(hashHandle, property);
+ Contract.Assert(rawProperty.Length == sizeof(int) || rawProperty.Length == 0, "Unexpected property size");
+ return rawProperty.Length == sizeof(int) ? BitConverter.ToInt32(rawProperty, 0) : 0;
+ }
+
+ /// <summary>
+ /// Get an arbitrary property of a hash object
+ /// </summary>
+ [SecurityCritical]
+ internal static byte[] GetHashProperty(SafeCspHashHandle hashHandle, HashProperty property) {
+ Contract.Assert(hashHandle != null && !hashHandle.IsInvalid, "keyHandle != null && !keyHandle.IsInvalid");
+
+ int bufferSize = 0;
+ byte[] buffer = null;
+
+ // Figure out how big of a buffer we need to hold the property
+ if (!UnsafeNativeMethods.CryptGetHashParam(hashHandle, property, buffer, ref bufferSize, 0)) {
+ int errorCode = Marshal.GetLastWin32Error();
+ if (errorCode != (int)ErrorCode.MoreData) {
+ throw new CryptographicException(errorCode);
+ }
+ }
+
+ // Now get the property bytes directly
+ buffer = new byte[bufferSize];
+ if (!UnsafeNativeMethods.CryptGetHashParam(hashHandle, property, buffer, ref bufferSize, 0)) {
+ throw new CryptographicException(Marshal.GetLastWin32Error());
+ }
+
+ return buffer;
+ }
+
+ /// <summary>
+ /// Get a DWORD sized property of a key stored in a CSP
+ /// </summary>
+ [SecurityCritical]
+ internal static int GetKeyPropertyInt32(SafeCspKeyHandle keyHandle, KeyProperty property) {
+ byte[] rawProperty = GetKeyProperty(keyHandle, property);
+ Contract.Assert(rawProperty.Length == sizeof(int) || rawProperty.Length == 0, "Unexpected property size");
+ return rawProperty.Length == sizeof(int) ? BitConverter.ToInt32(rawProperty, 0) : 0;
+ }
+
+ /// <summary>
+ /// Get an arbitrary property of a key stored in a CSP
+ /// </summary>
+ [SecurityCritical]
+ internal static byte[] GetKeyProperty(SafeCspKeyHandle keyHandle, KeyProperty property) {
+ Contract.Assert(keyHandle != null && !keyHandle.IsInvalid, "keyHandle != null && !keyHandle.IsInvalid");
+
+ int bufferSize = 0;
+ byte[] buffer = null;
+
+ // Figure out how big of a buffer we need to hold the property
+ if (!UnsafeNativeMethods.CryptGetKeyParam(keyHandle, property, buffer, ref bufferSize, 0)) {
+ int errorCode = Marshal.GetLastWin32Error();
+ if (errorCode != (int)ErrorCode.MoreData) {
+ throw new CryptographicException(errorCode);
+ }
+ }
+
+ // Now get the property bytes directly
+ buffer = new byte[bufferSize];
+ if (!UnsafeNativeMethods.CryptGetKeyParam(keyHandle, property, buffer, ref bufferSize, 0)) {
+ throw new CryptographicException(Marshal.GetLastWin32Error());
+ }
+
+ return buffer;
+ }
+
+ /// <summary>
+ /// Set an arbitrary property on a hash object
+ /// </summary>
+ [SecurityCritical]
+ internal static void SetHashProperty(SafeCspHashHandle hashHandle,
+ HashProperty property,
+ byte[] value) {
+ Contract.Assert(hashHandle != null && !hashHandle.IsInvalid, "hashHandle != null && !hashHandle.IsInvalid");
+
+ if (!UnsafeNativeMethods.CryptSetHashParam(hashHandle, property, value, 0)) {
+ throw new CryptographicException(Marshal.GetLastWin32Error());
+ }
+ }
+
+ /// <summary>
+ /// Verify that the digital signature created with the specified hash and asymmetric algorithm
+ /// is valid for the given hash value.
+ /// </summary>
+ [SecurityCritical]
+ internal static bool VerifySignature(SafeCspHandle cspHandle,
+ SafeCspKeyHandle keyHandle,
+ AlgorithmID signatureAlgorithm,
+ AlgorithmID hashAlgorithm,
+ byte[] hashValue,
+ byte[] signature) {
+ Contract.Assert(cspHandle != null && !cspHandle.IsInvalid, "cspHandle != null && !cspHandle.IsInvalid");
+ Contract.Assert(keyHandle != null && !keyHandle.IsInvalid, "keyHandle != null && !keyHandle.IsInvalid");
+ Contract.Assert(((AlgorithmClass)signatureAlgorithm & AlgorithmClass.Signature) == AlgorithmClass.Signature, "Invalid signature algorithm");
+ Contract.Assert(((AlgorithmClass)hashAlgorithm & AlgorithmClass.Hash) == AlgorithmClass.Hash, "Invalid hash algorithm");
+ Contract.Assert(hashValue != null, "hashValue != null");
+ Contract.Assert(signature != null, "signature != null");
+
+ // CAPI and the CLR have inverse byte orders for signatures, so we need to reverse before verifying
+ byte[] signatureValue = new byte[signature.Length];
+ Array.Copy(signature, signatureValue, signatureValue.Length);
+ Array.Reverse(signatureValue);
+
+ using (SafeCspHashHandle hashHandle = CreateHashAlgorithm(cspHandle, hashAlgorithm)) {
+ // Make sure the hash value is the correct size and import it into the CSP
+ if (hashValue.Length != GetHashPropertyInt32(hashHandle, HashProperty.HashSize)) {
+ throw new CryptographicException((int)ErrorCode.BadHash);
+ }
+ SetHashProperty(hashHandle, HashProperty.HashValue, hashValue);
+
+ // Do the signature verification. A TRUE result means that the signature was valid. A FALSE
+ // result either means an invalid signature or some other error, so we need to check the last
+ // error to see which occured.
+ if (UnsafeNativeMethods.CryptVerifySignature(hashHandle,
+ signatureValue,
+ signatureValue.Length,
+ keyHandle,
+ null,
+ 0)) {
+ return true;
+ }
+ else {
+ int error = Marshal.GetLastWin32Error();
+
+ if (error != (int)ErrorCode.BadSignature) {
+ throw new CryptographicException(error);
+ }
+
+ return false;
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// SafeHandle representing a native HCRYPTPROV on Windows, or representing all state associated with
+ /// loading a CSSM CSP on the Mac. The HCRYPTPROV SafeHandle usage is straightforward, however CSSM
+ /// usage is slightly different.
+ ///
+ /// For CSSM we hold three pieces of state:
+ /// * m_initializedCssm - a flag indicating that CSSM_Init() was successfully called
+ /// * m_cspModuleGuid - the module GUID of the CSP we loaded, if that CSP was successfully loaded
+ /// * handle - handle resulting from attaching to the CSP
+ ///
+ /// We need to keep all three pieces of state, since we need to teardown in a specific order. If
+ /// these pieces of state were in seperate SafeHandles we could not guarantee their order of
+ /// finalization.
+ /// </summary>
+ [SecurityCritical]
+ internal sealed class SafeCspHandle : SafeHandleZeroOrMinusOneIsInvalid {
+
+ private SafeCspHandle() : base(true) {
+ }
+
+ [DllImport("advapi32")]
+#if FEATURE_CORECLR || FEATURE_CER
+ [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
+#endif // FEATURE_CORECLR || FEATURE_CER
+ [return: MarshalAs(UnmanagedType.Bool)]
+ private extern static bool CryptReleaseContext(IntPtr hProv, int dwFlags);
+
+ /// <summary>
+ /// Clean up the safe handle's resources.
+ ///
+ /// On Windows the cleanup is a straightforward release of the HCRYPTPROV handle. However, on
+ /// the Mac, CSSM requires that we release resources in the following order:
+ ///
+ /// 1. Detach from the CSP
+ /// 2. Unload the CSP
+ /// 3. Terminate CSSM
+ ///
+ /// Both the unload and terminate operations are ref-counted by CSSM, so it is safe to do these
+ /// even if other handles are open on the CSP or other CSSM objects are in use.
+ /// </summary>
+ [SecurityCritical]
+ protected override bool ReleaseHandle() {
+ return CryptReleaseContext(handle, 0);
+ }
+
+ }
+
+ /// <summary>
+ /// SafeHandle representing a native HCRYPTHASH
+ /// </summary>
+ [SecurityCritical]
+ internal sealed class SafeCspHashHandle : SafeHandleZeroOrMinusOneIsInvalid {
+ private SafeCspHashHandle() : base(true) {
+ }
+
+ [DllImport("advapi32")]
+#if FEATURE_CORECLR || FEATURE_CER
+ [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
+#endif // FEATURE_CORECLR || FEATURE_CER
+ [return: MarshalAs(UnmanagedType.Bool)]
+ private extern static bool CryptDestroyHash(IntPtr hKey);
+
+ [SecurityCritical]
+ protected override bool ReleaseHandle() {
+ return CryptDestroyHash(handle);
+ }
+ }
+
+ /// <summary>
+ /// SafeHandle representing a native HCRYPTKEY on Windows.
+ ///
+ /// On the Mac, we generate our keys by hand, so they are really just CSSM_KEY structures along with
+ /// the associated data blobs. Because of this, the only resource that needs to be released when the
+ /// key is freed is the memory associated with the key blob.
+ ///
+ /// However, in order for a SafeCspKeyHandle to marshal as a CSSM_KEY_PTR, as one would expect, the
+ /// handle value on the Mac is actually a pointer to the CSSM_KEY. We maintain a seperate m_data
+ /// pointer which is the buffer holding the actual key data.
+ ///
+ /// Both of these details add a further invarient that on the Mac a SafeCspKeyHandle may never be an
+ /// [out] parameter from an API. This is because we always expect that we control the memory buffer
+ /// that the CSSM_KEY resides in and that we don't have to call CSSM_FreeKey on the data.
+ ///
+ /// Keeping this in a SafeHandle rather than just marshaling the key structure direclty buys us a
+ /// level of abstraction, in that if we ever do need to work with keys that require a CSSM_FreeKey
+ /// call, we can continue to use the same key handle object. It also means that keys are represented
+ /// by the same type on both Windows and Mac, so that consumers of the CapiNative layer don't have
+ /// to know the difference between the two.
+ /// </summary>
+ [SecurityCritical]
+ internal sealed class SafeCspKeyHandle : SafeHandleZeroOrMinusOneIsInvalid {
+
+ internal SafeCspKeyHandle() : base(true) {
+ }
+
+ [DllImport("advapi32")]
+#if FEATURE_CORECLR || FEATURE_CER
+ [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
+#endif // FEATURE_CORECLR || FEATURE_CER
+ [return: MarshalAs(UnmanagedType.Bool)]
+ private extern static bool CryptDestroyKey(IntPtr hKey);
+
+ [SecurityCritical]
+ protected override bool ReleaseHandle() {
+ return CryptDestroyKey(handle);
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/crypto.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/crypto.cs
index 8315aefb43c..0e9cc0fa86d 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/crypto.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/crypto.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -20,7 +20,7 @@ namespace System.Security.Cryptography {
// and ciphertext-stealing (CTS). Not all implementations will support all modes.
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
- public enum CipherMode { // Please keep in [....] with wincrypt.h
+ public enum CipherMode { // Please keep in sync with wincrypt.h
CBC = 1,
ECB = 2,
OFB = 3,
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/cryptoapitransform.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/cryptoapitransform.cs
index 96765edbf32..ebd6ef63097 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/cryptoapitransform.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/cryptoapitransform.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -332,7 +332,7 @@ namespace System.Security.Cryptography {
}
#endif
-#if FEATURE_CRYPTO && FEATURE_X509_SECURESTRINGS
+#if (FEATURE_CRYPTO && FEATURE_X509_SECURESTRINGS) || FEATURE_CORECLR
private SecureString m_keyPassword;
public SecureString KeyPassword {
get {
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/cryptoconfig.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/cryptoconfig.cs
index 348d0ec8a1d..7a81d9b05fd 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/cryptoconfig.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/cryptoconfig.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -57,6 +57,7 @@ namespace System.Security.Cryptography {
// on Vista and the FIPS registry key downlevel.
//
+#if !FEATURE_CORECLR
if (Utils._GetEnforceFipsPolicySetting()) {
if (Environment.OSVersion.Version.Major >= 6) {
bool fipsEnabled;
@@ -73,7 +74,9 @@ namespace System.Security.Cryptography {
s_haveFipsAlgorithmPolicy = true;
}
}
- else {
+ else
+#endif // !FEATURE_CORECLR
+ {
s_fipsAlgorithmPolicy = false;
s_haveFipsAlgorithmPolicy = true;
}
@@ -194,7 +197,7 @@ namespace System.Security.Cryptography {
#if FEATURE_CRYPTO || FEATURE_LEGACYNETCFCRYPTO
Type RSACryptoServiceProviderType = typeof(System.Security.Cryptography.RSACryptoServiceProvider);
#endif //FEATURE_CRYPTO || FEATURE_LEGACYNETCFCRYPTO
-#if FEATURE_CRYPTO
+#if FEATURE_CRYPTO && !FEATURE_CORECLR
Type DSACryptoServiceProviderType = typeof(System.Security.Cryptography.DSACryptoServiceProvider);
Type DESCryptoServiceProviderType = typeof(System.Security.Cryptography.DESCryptoServiceProvider);
Type TripleDESCryptoServiceProviderType = typeof(System.Security.Cryptography.TripleDESCryptoServiceProvider);
@@ -308,7 +311,7 @@ namespace System.Security.Cryptography {
ht.Add("System.Security.Cryptography.RSA", RSACryptoServiceProviderType);
ht.Add("System.Security.Cryptography.AsymmetricAlgorithm", RSACryptoServiceProviderType);
#endif //FEATURE_CRYPTO || FEATURE_LEGACYNETCFCRYPTO
-#if FEATURE_CRYPTO
+#if FEATURE_CRYPTO && !FEATURE_CORECLR
ht.Add("DSA", DSACryptoServiceProviderType);
ht.Add("System.Security.Cryptography.DSA", DSACryptoServiceProviderType);
ht.Add("ECDsa", ECDsaCngType);
@@ -362,7 +365,7 @@ namespace System.Security.Cryptography {
#if FEATURE_CRYPTO || FEATURE_LEGACYNETCFCRYPTO
ht.Add("http://www.w3.org/2001/04/xmlenc#sha256", SHA256ManagedType);
#endif //FEATURE_CRYPTO || FEATURE_LEGACYNETCFCRYPTO
-#if FEATURE_CRYPTO
+#if FEATURE_CRYPTO && !FEATURE_CORECLR
ht.Add("http://www.w3.org/2001/04/xmlenc#sha512", SHA512ManagedType);
ht.Add("http://www.w3.org/2001/04/xmlenc#ripemd160", RIPEMD160ManagedType);
@@ -461,7 +464,7 @@ namespace System.Security.Cryptography {
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
private static void InitializeConfigInfo()
{
-#if FEATURE_CRYPTO
+#if FEATURE_CRYPTO && !FEATURE_CORECLR
if (machineNameHT == null)
{
lock(InternalSyncObject)
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/cryptostream.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/cryptostream.cs
index efbe8b77384..71cd2fd18ea 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/cryptostream.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/cryptostream.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/derivebytes.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/derivebytes.cs
index 41b18c8e5ac..ee2265e727b 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/derivebytes.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/derivebytes.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -13,12 +13,7 @@
namespace System.Security.Cryptography {
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class DeriveBytes
- // On Orcas DeriveBytes is not disposable, so we cannot add the IDisposable implementation to the
- // CoreCLR mscorlib. However, this type does need to be disposable since subtypes can and do hold onto
- // native resources. Therefore, on desktop mscorlibs we add an IDisposable implementation.
-#if !FEATURE_CORECLR
: IDisposable
-#endif // !FEATURE_CORECLR
{
//
// public methods
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/des.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/des.cs
index 1ee88690879..56d89ed2ee4 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/des.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/des.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/descryptoserviceprovider.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/descryptoserviceprovider.cs
index 43e779d8731..bb01d69877b 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/descryptoserviceprovider.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/descryptoserviceprovider.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/dsa.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/dsa.cs
index 51f9a9ae4cc..2e6feaae3a8 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/dsa.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/dsa.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/dsacryptoserviceprovider.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/dsacryptoserviceprovider.cs
index 318b09813ab..469b1f49d11 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/dsacryptoserviceprovider.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/dsacryptoserviceprovider.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/dsasignaturedeformatter.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/dsasignaturedeformatter.cs
index 3f8d457d9df..bf57d241cac 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/dsasignaturedeformatter.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/dsasignaturedeformatter.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/dsasignatureformatter.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/dsasignatureformatter.cs
index 8bc61b1c355..260113a9e12 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/dsasignatureformatter.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/dsasignatureformatter.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/hashalgorithm.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/hashalgorithm.cs
index 6b033c2f1d6..479a0b68d79 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/hashalgorithm.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/hashalgorithm.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -195,9 +195,12 @@ namespace System.Security.Cryptography {
// implementation. Post-Orcas the desktop has an implicit IDispoable implementation.
#if FEATURE_CORECLR
void IDisposable.Dispose()
-#else
- public void Dispose()
+ {
+ Dispose();
+ }
#endif // FEATURE_CORECLR
+
+ public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/hmac.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/hmac.cs
index 6c00533d3e5..32b61120db2 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/hmac.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/hmac.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacmd5.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacmd5.cs
index da536c01f03..0a3347113d7 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacmd5.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacmd5.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacripemd160.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacripemd160.cs
index 991d877ff7e..8b2aabebda8 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacripemd160.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacripemd160.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha1.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha1.cs
index 1d0b4e75d6b..f31252e2745 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha1.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha1.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha256.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha256.cs
index 72e2b56e67d..ef7986240e3 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha256.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha256.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha384.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha384.cs
index 1e7418a89f1..e1a973c1c3d 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha384.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha384.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha512.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha512.cs
index e8af775a36c..f252b7f53b4 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha512.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/hmacsha512.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/icryptotransform.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/icryptotransform.cs
index 68747a9001e..cc6068be927 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/icryptotransform.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/icryptotransform.cs
@@ -7,9 +7,9 @@
*
* ICryptoTransform.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
*
- * Author: [....]
+ * Author: bal
*
*/
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/icspasymmetricalgorithm.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/icspasymmetricalgorithm.cs
index f726d36a05f..d5b501ce558 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/icspasymmetricalgorithm.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/icspasymmetricalgorithm.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/keyedhashalgorithm.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/keyedhashalgorithm.cs
index 0cb2075cc53..6fb7dccd1aa 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/keyedhashalgorithm.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/keyedhashalgorithm.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/mactripledes.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/mactripledes.cs
index a0d4e7d9255..19d8be12240 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/mactripledes.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/mactripledes.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/maskgenerationmethod.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/maskgenerationmethod.cs
index 63c09e7c0ec..0aa22ac46bb 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/maskgenerationmethod.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/maskgenerationmethod.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
namespace System.Security.Cryptography {
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/md5.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/md5.cs
index 2d4bdb70ff9..1029764fd01 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/md5.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/md5.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/md5cryptoserviceprovider.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/md5cryptoserviceprovider.cs
index 33c71335eba..bbd42c334cd 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/md5cryptoserviceprovider.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/md5cryptoserviceprovider.cs
@@ -4,7 +4,7 @@ using System.Diagnostics.Contracts;
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/passwordderivebytes.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/passwordderivebytes.cs
index ba6b40ec0ef..a18ec5af8f3 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/passwordderivebytes.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/passwordderivebytes.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/pkcs1maskgenerationmethod.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/pkcs1maskgenerationmethod.cs
index cb2d19469e4..c88a2811b2d 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/pkcs1maskgenerationmethod.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/pkcs1maskgenerationmethod.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Cryptography {
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/randomnumbergenerator.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/randomnumbergenerator.cs
index 82a129167ce..bd78f5ea4d8 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/randomnumbergenerator.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/randomnumbergenerator.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -18,7 +18,7 @@ namespace System.Security.Cryptography {
// On Orcas RandomNumberGenerator is not disposable, so we cannot add the IDisposable implementation to the
// CoreCLR mscorlib. However, this type does need to be disposable since subtypes can and do hold onto
// native resources. Therefore, on desktop mscorlibs we add an IDisposable implementation.
-#if !FEATURE_CORECLR
+#if !FEATURE_CORECLR || FEATURE_CORESYSTEM
: IDisposable
#endif // !FEATURE_CORECLR
{
@@ -54,6 +54,19 @@ namespace System.Security.Cryptography {
public abstract void GetBytes(byte[] data);
+ public virtual void GetBytes(byte[] data, int offset, int count) {
+ if (data == null) throw new ArgumentNullException("data");
+ if (offset < 0) throw new ArgumentOutOfRangeException("offset", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ if (count < 0) throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ if (offset + count > data.Length) throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen"));
+
+ if (count > 0) {
+ byte[] tempData = new byte[count];
+ GetBytes(tempData);
+ Array.Copy(tempData, 0, data, offset, count);
+ }
+ }
+
#if (!FEATURE_CORECLR && !SILVERLIGHT) || FEATURE_LEGACYNETCFCRYPTO
public virtual void GetNonZeroBytes(byte[] data)
{
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/rc2.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/rc2.cs
index e8542464bc3..a33eb7255d1 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/rc2.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/rc2.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/rc2cryptoserviceprovider.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/rc2cryptoserviceprovider.cs
index c97acf8e60b..7d51c3a60da 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/rc2cryptoserviceprovider.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/rc2cryptoserviceprovider.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/rfc2898derivebytes.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/rfc2898derivebytes.cs
index 9585beea6de..ab8edce4816 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/rfc2898derivebytes.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/rfc2898derivebytes.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -18,6 +18,10 @@ namespace System.Security.Cryptography {
using System.IO;
using System.Text;
using System.Diagnostics.Contracts;
+ using System.Runtime.CompilerServices;
+ using System.Runtime.InteropServices;
+ using System.Runtime.Versioning;
+ using System.Security.Cryptography.X509Certificates;
[System.Runtime.InteropServices.ComVisible(true)]
public class Rfc2898DeriveBytes : DeriveBytes
@@ -25,6 +29,8 @@ namespace System.Security.Cryptography {
private byte[] m_buffer;
private byte[] m_salt;
private HMACSHA1 m_hmacsha1; // The pseudo-random generator function used in PBKDF2
+ private byte[] m_password;
+ private CspParameters m_cspParams = new CspParameters();
private uint m_iterations;
private uint m_block;
@@ -39,6 +45,10 @@ namespace System.Security.Cryptography {
public Rfc2898DeriveBytes(string password, int saltSize) : this(password, saltSize, 1000) {}
+ // This method needs to be safe critical, because in debug builds the C# compiler will include null
+ // initialization of the _safeProvHandle field in the method. Since SafeProvHandle is critical, a
+ // transparent reference triggers an error using PasswordDeriveBytes.
+ [SecuritySafeCritical]
public Rfc2898DeriveBytes(string password, int saltSize, int iterations) {
if (saltSize < 0)
throw new ArgumentOutOfRangeException("saltSize", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
@@ -49,7 +59,8 @@ namespace System.Security.Cryptography {
Salt = salt;
IterationCount = iterations;
- m_hmacsha1 = new HMACSHA1(new UTF8Encoding(false).GetBytes(password));
+ m_password = new UTF8Encoding(false).GetBytes(password);
+ m_hmacsha1 = new HMACSHA1(m_password);
Initialize();
}
@@ -57,9 +68,14 @@ namespace System.Security.Cryptography {
public Rfc2898DeriveBytes(string password, byte[] salt, int iterations) : this (new UTF8Encoding(false).GetBytes(password), salt, iterations) {}
+ // This method needs to be safe critical, because in debug builds the C# compiler will include null
+ // initialization of the _safeProvHandle field in the method. Since SafeProvHandle is critical, a
+ // transparent reference triggers an error using PasswordDeriveBytes.
+ [SecuritySafeCritical]
public Rfc2898DeriveBytes(byte[] password, byte[] salt, int iterations) {
Salt = salt;
IterationCount = iterations;
+ m_password = password;
m_hmacsha1 = new HMACSHA1(password);
Initialize();
}
@@ -191,5 +207,61 @@ namespace System.Security.Cryptography {
m_block++;
return ret;
}
+
+ [System.Security.SecuritySafeCritical] // auto-generated
+ public byte[] CryptDeriveKey(string algname, string alghashname, int keySize, byte[] rgbIV)
+ {
+ if (keySize < 0)
+ throw new CryptographicException(Environment.GetResourceString("Cryptography_InvalidKeySize"));
+
+ int algidhash = X509Utils.NameOrOidToAlgId(alghashname, OidGroup.HashAlgorithm);
+ if (algidhash == 0)
+ throw new CryptographicException(Environment.GetResourceString("Cryptography_PasswordDerivedBytes_InvalidAlgorithm"));
+
+ int algid = X509Utils.NameOrOidToAlgId(algname, OidGroup.AllGroups);
+ if (algid == 0)
+ throw new CryptographicException(Environment.GetResourceString("Cryptography_PasswordDerivedBytes_InvalidAlgorithm"));
+
+ // Validate the rgbIV array
+ if (rgbIV == null)
+ throw new CryptographicException(Environment.GetResourceString("Cryptography_PasswordDerivedBytes_InvalidIV"));
+
+ byte[] key = null;
+ DeriveKey(ProvHandle, algid, algidhash,
+ m_password, m_password.Length, keySize << 16, rgbIV, rgbIV.Length,
+ JitHelpers.GetObjectHandleOnStack(ref key));
+ return key;
+ }
+
+ [System.Security.SecurityCritical] // auto-generated
+ private SafeProvHandle _safeProvHandle = null;
+ private SafeProvHandle ProvHandle
+ {
+ [System.Security.SecurityCritical] // auto-generated
+ get
+ {
+ if (_safeProvHandle == null)
+ {
+ lock (this)
+ {
+ if (_safeProvHandle == null)
+ {
+ SafeProvHandle safeProvHandle = Utils.AcquireProvHandle(m_cspParams);
+ System.Threading.Thread.MemoryBarrier();
+ _safeProvHandle = safeProvHandle;
+ }
+ }
+ }
+ return _safeProvHandle;
+ }
+ }
+
+ [System.Security.SecurityCritical] // auto-generated
+ [ResourceExposure(ResourceScope.None)]
+ [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
+ private static extern void DeriveKey(SafeProvHandle hProv, int algid, int algidHash,
+ byte[] password, int cbPassword, int dwFlags, byte[] IV, int cbIV,
+ ObjectHandleOnStack retKey);
+
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/rijndael.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/rijndael.cs
index 1c7a9f75c2a..46211eb3074 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/rijndael.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/rijndael.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/rijndaelmanaged.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/rijndaelmanaged.cs
index b12bdfbece7..c394cec048a 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/rijndaelmanaged.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/rijndaelmanaged.cs
@@ -4,7 +4,7 @@ using System.Diagnostics.Contracts;
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/rijndaelmanagedtransform.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/rijndaelmanagedtransform.cs
index 79829fac683..dc93a6317d8 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/rijndaelmanagedtransform.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/rijndaelmanagedtransform.cs
@@ -4,7 +4,7 @@ using System.Diagnostics.Contracts;
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/ripemd160.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/ripemd160.cs
index a75deb9a76d..094a3319b04 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/ripemd160.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/ripemd160.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/ripemd160managed.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/ripemd160managed.cs
index bf13aabcddb..4196bd8de20 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/ripemd160managed.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/ripemd160managed.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/rngcryptoserviceprovider.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/rngcryptoserviceprovider.cs
index 63b2dc29c89..226632e81e2 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/rngcryptoserviceprovider.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/rngcryptoserviceprovider.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -171,6 +171,20 @@ namespace System.Security.Cryptography {
CapiNative.GenerateRandomBytes(m_cspHandle, data);
}
}
+
+ #if FEATURE_CORECLR
+ [System.Security.SecuritySafeCritical] // auto-generated
+ #endif
+ public override void GetBytes(byte[] data, int offset, int count) {
+ if (data == null) throw new ArgumentNullException("data");
+ if (offset < 0) throw new ArgumentOutOfRangeException("offset", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ if (count < 0) throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ if (offset + count > data.Length) throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen"));
+
+ if (count > 0) {
+ CapiNative.GenerateRandomBytes(m_cspHandle, data, offset, count);
+ }
+ }
#endif // !FEATURE_CORECLR
#if !FEATURE_PAL
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/rsa.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/rsa.cs
index 98d3280cefe..f196b12ba77 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/rsa.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/rsa.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -11,6 +11,7 @@
//
namespace System.Security.Cryptography {
+ using System.IO;
using System.Text;
using System.Runtime.Serialization;
using System.Security.Util;
@@ -44,17 +45,7 @@ namespace System.Security.Cryptography {
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class RSA : AsymmetricAlgorithm
{
- //
- // Extending this class allows us to know that you are really implementing
- // an RSA key. This is required for anybody providing a new RSA key value
- // implemention.
- //
- // The class provides no methods, fields or anything else. Its only purpose is
- // as a heirarchy member for identification of algorithm.
- //
-
protected RSA() { }
-
//
// public methods
//
@@ -71,13 +62,186 @@ namespace System.Security.Cryptography {
return (RSA) CryptoConfig.CreateFromName(algName);
}
- // Apply the private key to the data. This function represents a
- // raw RSA operation -- no implicit depadding of the imput value
- abstract public byte[] DecryptValue(byte[] rgb);
+ //
+ // New RSA encrypt/decrypt/sign/verify RSA abstractions in .NET 4.6+ and .NET Core
+ //
+ // Methods that throw DerivedClassMustOverride are effectively abstract but we
+ // cannot mark them as such as it would be a breaking change. We'll make them
+ // abstract in .NET Core.
+
+ public virtual byte[] Encrypt(byte[] data, RSAEncryptionPadding padding) {
+ throw DerivedClassMustOverride();
+ }
+
+ public virtual byte[] Decrypt(byte[] data, RSAEncryptionPadding padding) {
+ throw DerivedClassMustOverride();
+ }
+
+ public virtual byte[] SignHash(byte[] hash, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) {
+ throw DerivedClassMustOverride();
+ }
+
+ public virtual bool VerifyHash(byte[] hash, byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) {
+ throw DerivedClassMustOverride();
+ }
+
+ protected virtual byte[] HashData(byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm) {
+ throw DerivedClassMustOverride();
+ }
+
+ protected virtual byte[] HashData(Stream data, HashAlgorithmName hashAlgorithm) {
+ throw DerivedClassMustOverride();
+ }
+
+ public byte[] SignData(byte[] data, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) {
+ if (data == null) {
+ throw new ArgumentNullException("data");
+ }
+ return SignData(data, 0, data.Length, hashAlgorithm, padding);
+ }
+
+ public virtual byte[] SignData(byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) {
+ if (data == null) {
+ throw new ArgumentNullException("data");
+ }
+ if (offset < 0 || offset > data.Length) {
+ throw new ArgumentOutOfRangeException("offset");
+ }
+ if (count < 0 || count > data.Length - offset) {
+ throw new ArgumentOutOfRangeException("count");
+ }
+ if (String.IsNullOrEmpty(hashAlgorithm.Name)) {
+ throw HashAlgorithmNameNullOrEmpty();
+ }
+ if (padding == null) {
+ throw new ArgumentNullException("padding");
+ }
+
+ byte[] hash = HashData(data, offset, count, hashAlgorithm);
+ return SignHash(hash, hashAlgorithm, padding);
+ }
+
+ public virtual byte[] SignData(Stream data, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) {
+ if (data == null) {
+ throw new ArgumentNullException("data");
+ }
+ if (String.IsNullOrEmpty(hashAlgorithm.Name)) {
+ throw HashAlgorithmNameNullOrEmpty();
+ }
+ if (padding == null) {
+ throw new ArgumentNullException("padding");
+ }
+
+ byte[] hash = HashData(data, hashAlgorithm);
+ return SignHash(hash, hashAlgorithm, padding);
+ }
+
+ public bool VerifyData(byte[] data, byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) {
+ if (data == null) {
+ throw new ArgumentNullException("data");
+ }
+ return VerifyData(data, 0, data.Length, signature, hashAlgorithm, padding);
+ }
+
+ public virtual bool VerifyData(byte[] data, int offset, int count, byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) {
+ if (data == null) {
+ throw new ArgumentNullException("data");
+ }
+ if (offset < 0 || offset > data.Length) {
+ throw new ArgumentOutOfRangeException("offset");
+ }
+ if (count < 0 || count > data.Length - offset) {
+ throw new ArgumentOutOfRangeException("count");
+ }
+ if (signature == null) {
+ throw new ArgumentNullException("signature");
+ }
+ if (String.IsNullOrEmpty(hashAlgorithm.Name)) {
+ throw HashAlgorithmNameNullOrEmpty();
+ }
+ if (padding == null) {
+ throw new ArgumentNullException("padding");
+ }
+
+ byte[] hash = HashData(data, offset, count, hashAlgorithm);
+ return VerifyHash(hash, signature, hashAlgorithm, padding);
+ }
+
+ public bool VerifyData(Stream data, byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) {
+ if (data == null) {
+ throw new ArgumentNullException("data");
+ }
+ if (signature == null) {
+ throw new ArgumentNullException("signature");
+ }
+ if (String.IsNullOrEmpty(hashAlgorithm.Name)) {
+ throw HashAlgorithmNameNullOrEmpty();
+ }
+ if (padding == null) {
+ throw new ArgumentNullException("padding");
+ }
+
+ byte[] hash = HashData(data, hashAlgorithm);
+ return VerifyHash(hash, signature, hashAlgorithm, padding);
+ }
+
+ private static Exception DerivedClassMustOverride() {
+ return new NotImplementedException(Environment.GetResourceString("NotSupported_SubclassOverride"));
+ }
+
+ internal static Exception HashAlgorithmNameNullOrEmpty() {
+ return new ArgumentException(Environment.GetResourceString("Cryptography_HashAlgorithmNameNullOrEmpty"), "hashAlgorithm");
+ }
+
+ //
+ // Legacy encrypt/decrypt RSA abstraction from .NET < 4.6
+ //
+ // These should be obsolete, but we can't mark them as such here due to rules around not introducing
+ // source breaks to scenarios that compile against the GAC.
+ //
+ // They used to be abstract, but the only concrete implementation in RSACryptoServiceProvider threw
+ // NotSupportedException! This has been moved up to the base so all subclasses can ignore them moving forward.
+ // They will also be removed from .NET Core altogether.
+ //
+ // The original intent was for these to perform the RSA algorithm without padding/depadding. This can
+ // be seen by how the RSAXxx(De)Formatter classes call them in the non-RSACryptoServiceProvider case --
+ // they do the padding/depadding in managed code.
+ //
+ // Unfortunately, these formatter classes are still incompatible with RSACng or any derived class that does not
+ // implement EncryptValue, DecryptValue as the formatters speculatively expected non-RSACryptoServiceProvider
+ // to do. That needs to be fixed in a subsequent release. We can still do it as it would move an exception to a
+ // correct result...
+ //
+
+ // [Obsolete]
+ public virtual byte[] DecryptValue(byte[] rgb) {
+ throw new NotSupportedException(Environment.GetResourceString("NotSupported_Method"));
+ }
+
+ // [Obsolete]
+ public virtual byte[] EncryptValue(byte[] rgb) {
+ throw new NotSupportedException(Environment.GetResourceString("NotSupported_Method"));
+ }
+
+ //
+ // These should also be obsolete (on the base). They aren't well defined nor are they used
+ // anywhere in the FX apart from checking that they're not null.
+ //
+ // For new derived RSA classes, we'll just return "RSA" which is analagous to what ECDsa
+ // and ECDiffieHellman do.
+ //
+ // Note that for compat, RSACryptoServiceProvider still overrides and returns RSA-PKCS1-KEYEX
+ // and http://www.w3.org/2000/09/xmldsig#rsa-sha1
+ //
+
+ public override string KeyExchangeAlgorithm {
+ get { return "RSA"; }
+ }
+
+ public override string SignatureAlgorithm {
+ get { return "RSA"; }
+ }
- // Apply the public key to the data. Again, this is a raw operation, no
- // automatic padding.
- abstract public byte[] EncryptValue(byte[] rgb);
// Import/export functions
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/rsacryptoserviceprovider.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/rsacryptoserviceprovider.cs
index fd285c5514a..e27577d7a9c 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/rsacryptoserviceprovider.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/rsacryptoserviceprovider.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -502,5 +502,145 @@ namespace System.Security.Cryptography {
private static bool IsPublic(RSAParameters rsaParams) {
return (rsaParams.P == null);
}
+
+ //
+ // Adapt new RSA abstraction to legacy RSACryptoServiceProvider surface area.
+ //
+
+ // NOTE: For the new API, we go straight to CAPI for fixed set of hash algorithms and don't use crypto config here.
+ //
+ // Reasons:
+ // 1. We're moving away from crypto config and we won't have it when porting to .NET Core
+ //
+ // 2. It's slow to lookup and slow to use as the base HashAlgorithm adds considerable overhead
+ // (redundant defensive copy + double-initialization for the single-use case).
+ //
+
+ [SecuritySafeCritical]
+ protected override byte[] HashData(byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm) {
+ // we're sealed and the base should have checked this already
+ Contract.Assert(data != null);
+ Contract.Assert(offset >= 0 && offset <= data.Length);
+ Contract.Assert(count >= 0 && count <= data.Length);
+ Contract.Assert(!String.IsNullOrEmpty(hashAlgorithm.Name));
+
+ using (SafeHashHandle hashHandle = Utils.CreateHash(Utils.StaticProvHandle, GetAlgorithmId(hashAlgorithm))) {
+ Utils.HashData(hashHandle, data, offset, count);
+ return Utils.EndHash(hashHandle);
+ }
+ }
+
+ [SecuritySafeCritical]
+ protected override byte[] HashData(Stream data, HashAlgorithmName hashAlgorithm) {
+ // we're sealed and the base should have checked this already
+ Contract.Assert(data != null);
+ Contract.Assert(!String.IsNullOrEmpty(hashAlgorithm.Name));
+
+ using (SafeHashHandle hashHandle = Utils.CreateHash(Utils.StaticProvHandle, GetAlgorithmId(hashAlgorithm))) {
+ // Read the data 4KB at a time, providing similar read characteristics to a standard HashAlgorithm
+ byte[] buffer = new byte[4096];
+ int bytesRead = 0;
+ do {
+ bytesRead = data.Read(buffer, 0, buffer.Length);
+ if (bytesRead > 0) {
+ Utils.HashData(hashHandle, buffer, 0, bytesRead);
+ }
+ } while (bytesRead > 0);
+
+ return Utils.EndHash(hashHandle);
+ }
+ }
+
+ private static int GetAlgorithmId(HashAlgorithmName hashAlgorithm) {
+ switch (hashAlgorithm.Name) {
+ case "MD5":
+ return Constants.CALG_MD5;
+ case "SHA1":
+ return Constants.CALG_SHA1;
+ case "SHA256":
+ return Constants.CALG_SHA_256;
+ case "SHA384":
+ return Constants.CALG_SHA_384;
+ case "SHA512":
+ return Constants.CALG_SHA_512;
+ default:
+ throw new CryptographicException(Environment.GetResourceString("Cryptography_UnknownHashAlgorithm", hashAlgorithm.Name));
+ }
+ }
+
+ public override byte[] Encrypt(byte[] data, RSAEncryptionPadding padding) {
+ if (data == null) {
+ throw new ArgumentNullException("data");
+ }
+ if (padding == null) {
+ throw new ArgumentNullException("padding");
+ }
+
+ if (padding == RSAEncryptionPadding.Pkcs1) {
+ return Encrypt(data, fOAEP: false);
+ } else if (padding == RSAEncryptionPadding.OaepSHA1) {
+ return Encrypt(data, fOAEP: true);
+ } else {
+ throw PaddingModeNotSupported();
+ }
+ }
+
+ public override byte[] Decrypt(byte[] data, RSAEncryptionPadding padding) {
+ if (data == null) {
+ throw new ArgumentNullException("data");
+ }
+ if (padding == null) {
+ throw new ArgumentNullException("padding");
+ }
+
+ if (padding == RSAEncryptionPadding.Pkcs1) {
+ return Decrypt(data, fOAEP: false);
+ } else if (padding == RSAEncryptionPadding.OaepSHA1) {
+ return Decrypt(data, fOAEP: true);
+ } else {
+ throw PaddingModeNotSupported();
+ }
+ }
+
+ public override byte[] SignHash(byte[] hash, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) {
+ if (hash == null) {
+ throw new ArgumentNullException("hash");
+ }
+ if (String.IsNullOrEmpty(hashAlgorithm.Name)) {
+ throw HashAlgorithmNameNullOrEmpty();
+ }
+ if (padding == null) {
+ throw new ArgumentNullException("padding");
+ }
+ if (padding != RSASignaturePadding.Pkcs1) {
+ throw PaddingModeNotSupported();
+ }
+
+ return SignHash(hash, GetAlgorithmId(hashAlgorithm));
+ }
+
+ public override bool VerifyHash(byte[] hash, byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) {
+ if (hash == null) {
+ throw new ArgumentNullException("hash");
+ }
+ if (signature == null) {
+ throw new ArgumentNullException("signature");
+ }
+ if (String.IsNullOrEmpty(hashAlgorithm.Name)) {
+ throw HashAlgorithmNameNullOrEmpty();
+ }
+ if (padding == null) {
+ throw new ArgumentNullException("padding");
+ }
+ if (padding != RSASignaturePadding.Pkcs1) {
+ throw PaddingModeNotSupported();
+ }
+
+ return VerifyHash(hash, GetAlgorithmId(hashAlgorithm), signature);
+ }
+
+ private static Exception PaddingModeNotSupported() {
+ return new CryptographicException(Environment.GetResourceString("Cryptography_InvalidPaddingMode"));
+ }
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/rsaoaepkeyexchangedeformatter.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/rsaoaepkeyexchangedeformatter.cs
index 416b29f5079..87910a4e171 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/rsaoaepkeyexchangedeformatter.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/rsaoaepkeyexchangedeformatter.cs
@@ -4,7 +4,7 @@ using System.Diagnostics.Contracts;
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Cryptography {
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/rsaoaepkeyexchangeformatter.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/rsaoaepkeyexchangeformatter.cs
index 68746fe1773..3162663047a 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/rsaoaepkeyexchangeformatter.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/rsaoaepkeyexchangeformatter.cs
@@ -4,7 +4,7 @@ using System.Diagnostics.Contracts;
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Cryptography {
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1keyexchangedeformatter.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1keyexchangedeformatter.cs
index ed412c64dba..3ea79366871 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1keyexchangedeformatter.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1keyexchangedeformatter.cs
@@ -4,7 +4,7 @@ using System.Diagnostics.Contracts;
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Cryptography {
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1keyexchangeformatter.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1keyexchangeformatter.cs
index 19f34b6d6fb..a741449a8bd 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1keyexchangeformatter.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1keyexchangeformatter.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Cryptography {
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1signaturedeformatter.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1signaturedeformatter.cs
index 01363fefbdd..3c500c5fdb6 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1signaturedeformatter.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1signaturedeformatter.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1signatureformatter.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1signatureformatter.cs
index 249ea4b072c..9157b7bf243 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1signatureformatter.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/rsapkcs1signatureformatter.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/safecryptohandles.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/safecryptohandles.cs
index 19b8885deef..e7dc76c0944 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/safecryptohandles.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/safecryptohandles.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha1.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha1.cs
index 772e725d66a..c1a4b21232c 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha1.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha1.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha1cryptoserviceprovider.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha1cryptoserviceprovider.cs
index ed886250ff9..0b25472e251 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha1cryptoserviceprovider.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha1cryptoserviceprovider.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha1managed.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha1managed.cs
index ef07a4b17c8..863cea2e183 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha1managed.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha1managed.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha256.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha256.cs
index e403045f332..5230a1eaebc 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha256.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha256.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha256managed.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha256managed.cs
index 41711c80843..242bfff1b17 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha256managed.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha256managed.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha384.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha384.cs
index 268be7eae9b..64036523daa 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha384.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha384.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha384managed.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha384managed.cs
index d17eaaa5301..c10ab52f6d6 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha384managed.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha384managed.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha512.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha512.cs
index cfff7e2bb3a..a5e1a9f80b4 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha512.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha512.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha512managed.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha512managed.cs
index 31641440b60..20ec6a6b7b7 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/sha512managed.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/sha512managed.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/signaturedescription.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/signaturedescription.cs
index f115e8afc39..4f02d3702c8 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/signaturedescription.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/signaturedescription.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/symmetricalgorithm.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/symmetricalgorithm.cs
index e1b332657ac..d2c2a022b20 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/symmetricalgorithm.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/symmetricalgorithm.cs
@@ -4,7 +4,7 @@ using System.Diagnostics.Contracts;
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -41,9 +41,12 @@ namespace System.Security.Cryptography {
// implementation. Post-Orcas the desktop has an implicit IDispoable implementation.
#if FEATURE_CORECLR
void IDisposable.Dispose()
-#else
- public void Dispose()
+ {
+ Dispose();
+ }
#endif // FEATURE_CORECLR
+
+ public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/tripledes.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/tripledes.cs
index 2481830012f..c26517093e3 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/tripledes.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/tripledes.cs
@@ -4,7 +4,7 @@ using System.Diagnostics.Contracts;
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/tripledescryptoserviceprovider.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/tripledescryptoserviceprovider.cs
index aaa5948e46b..25e63a78a89 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/tripledescryptoserviceprovider.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/tripledescryptoserviceprovider.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/utils.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/utils.cs
index f18ade9e402..c9677213bcc 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/utils.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/utils.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -87,7 +87,7 @@ namespace System.Security.Cryptography
internal const int CALG_RC4 = (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | 1);
#endif // FEATURE_CRYPTO
- internal const int PROV_RSA_FULL = 1;
+ internal const int PROV_RSA_FULL = 1;
internal const int PROV_DSS_DH = 13;
internal const int PROV_RSA_AES = 24;
@@ -142,6 +142,10 @@ namespace System.Security.Cryptography
{
}
+ // Provider type to use by default for RSA operations. We want to use RSA-AES CSP
+ // since it enables access to SHA-2 operations. All currently supported OSes support RSA-AES.
+ internal const int DefaultRsaProviderType = Constants.PROV_RSA_AES;
+#if !MONO
#if FEATURE_CRYPTO || FEATURE_LEGACYNETCFCRYPTO
// Private object for locking instead of locking on a public type for SQL reliability work.
private static Object s_InternalSyncObject = new Object();
@@ -149,40 +153,7 @@ namespace System.Security.Cryptography
private static Object InternalSyncObject {
get { return s_InternalSyncObject; }
}
-#endif // FEATURE_CRYPTO || FEATURE_LEGACYNETCFCRYPTO
-
- // Provider type to use by default for RSA operations. On systems which support the RSA-AES CSP, we
- // want to use that since it enables access to SHA-2 operations, downlevel we fall back to the
- // RSA-FULL CSP.
- private static volatile int _defaultRsaProviderType;
- private static volatile bool _haveDefaultRsaProviderType;
- internal static int DefaultRsaProviderType
- {
- get {
- if (!_haveDefaultRsaProviderType)
- {
-#if MONO
- // The default provider value must remain 1 for Mono, otherwise we won't be able
- // to locate keypairs that were serialized by Mono versions 4.0 and lower.
- // (The ProviderType property in the CspParameters class affects serialization)
- _defaultRsaProviderType = 1;
-#else
- // The AES CSP is only supported on WinXP and higher
- bool osSupportsAesCsp = Environment.OSVersion.Platform == PlatformID.Win32NT &&
- (Environment.OSVersion.Version.Major > 5 ||
- (Environment.OSVersion.Version.Major == 5 && Environment.OSVersion.Version.Minor >= 1));
-
- _defaultRsaProviderType = osSupportsAesCsp ? Constants.PROV_RSA_AES : Constants.PROV_RSA_FULL;
-#endif
- _haveDefaultRsaProviderType = true;
- }
- return _defaultRsaProviderType;
- }
- }
-#if !MONO
-#if FEATURE_CRYPTO || FEATURE_LEGACYNETCFCRYPTO
-#if !FEATURE_PAL
[System.Security.SecurityCritical] // auto-generated
private static volatile SafeProvHandle _safeProvHandle;
internal static SafeProvHandle StaticProvHandle {
@@ -191,16 +162,13 @@ namespace System.Security.Cryptography
if (_safeProvHandle == null) {
lock (InternalSyncObject) {
if (_safeProvHandle == null) {
- SafeProvHandle safeProvHandle = AcquireProvHandle(new CspParameters(DefaultRsaProviderType));
- Thread.MemoryBarrier();
- _safeProvHandle = safeProvHandle;
+ _safeProvHandle = AcquireProvHandle(new CspParameters(DefaultRsaProviderType));
}
}
}
return _safeProvHandle;
}
}
-#endif // !FEATURE_PAL
[System.Security.SecurityCritical] // auto-generated
private static volatile SafeProvHandle _safeDssProvHandle;
@@ -210,9 +178,7 @@ namespace System.Security.Cryptography
if (_safeDssProvHandle == null) {
lock (InternalSyncObject) {
if (_safeDssProvHandle == null) {
- SafeProvHandle safeProvHandle = CreateProvHandle(new CspParameters(Constants.PROV_DSS_DH), true);
- Thread.MemoryBarrier();
- _safeDssProvHandle = safeProvHandle;
+ _safeDssProvHandle = CreateProvHandle(new CspParameters(Constants.PROV_DSS_DH), true);
}
}
}
@@ -512,8 +478,9 @@ namespace System.Security.Cryptography
}
}
#endif // FEATURE_CRYPTO
+
#endif
- private static volatile RNGCryptoServiceProvider _rng = null;
+ private static volatile RNGCryptoServiceProvider _rng;
internal static RNGCryptoServiceProvider StaticRandomNumberGenerator {
get {
if (_rng == null)
diff --git a/mcs/class/referencesource/mscorlib/system/security/cryptography/x509certificates/x509certificate.cs b/mcs/class/referencesource/mscorlib/system/security/cryptography/x509certificates/x509certificate.cs
index 114fbc7241b..31d9a126e94 100644
--- a/mcs/class/referencesource/mscorlib/system/security/cryptography/x509certificates/x509certificate.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/cryptography/x509certificates/x509certificate.cs
@@ -26,9 +26,7 @@ namespace System.Security.Cryptography.X509Certificates {
[System.Runtime.InteropServices.ComVisible(true)]
public enum X509ContentType {
Unknown = 0x00,
- Cert = 0x01
-#if !FEATURE_CORECLR
- ,
+ Cert = 0x01,
SerializedCert = 0x02,
#if !FEATURE_PAL
Pfx = 0x03,
@@ -37,7 +35,6 @@ namespace System.Security.Cryptography.X509Certificates {
SerializedStore = 0x04,
Pkcs7 = 0x05,
Authenticode = 0x06
-#endif // !FEATURE_CORECLR
}
// DefaultKeySet, UserKeySet and MachineKeySet are mutually exclusive
@@ -45,20 +42,20 @@ namespace System.Security.Cryptography.X509Certificates {
[Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum X509KeyStorageFlags {
- DefaultKeySet = 0x00
-#if !FEATURE_CORECLR
- ,
+ DefaultKeySet = 0x00,
UserKeySet = 0x01,
MachineKeySet = 0x02,
Exportable = 0x04,
UserProtected = 0x08,
PersistKeySet = 0x10
-#endif // !FEATURE_CORECLR
}
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
- public class X509Certificate : IDeserializationCallback, ISerializable {
+ public class X509Certificate :
+ IDisposable,
+ IDeserializationCallback,
+ ISerializable {
private const string m_format = "X509";
private string m_subjectName;
private string m_issuerName;
@@ -416,7 +413,6 @@ namespace System.Security.Cryptography.X509Certificates {
CultureInfo culture = CultureInfo.CurrentCulture;
if (!culture.DateTimeFormat.Calendar.IsValidDay(date.Year, date.Month, date.Day, 0)) {
-#if !FEATURE_ONLY_CORE_CALENDARS
// The most common case of culture failing to work is in the Um-AlQuara calendar. In this case,
// we can fall back to the Hijri calendar, otherwise fall back to the invariant culture.
if (culture.DateTimeFormat.Calendar is UmAlQuraCalendar) {
@@ -424,7 +420,6 @@ namespace System.Security.Cryptography.X509Certificates {
culture.DateTimeFormat.Calendar = new HijriCalendar();
}
else
-#endif // !FEATURE_ONLY_CORE_CALENDARS
{
culture = CultureInfo.InvariantCulture;
}
@@ -577,6 +572,17 @@ namespace System.Security.Cryptography.X509Certificates {
}
m_certContextCloned = false;
}
+
+ public void Dispose() {
+ Dispose(true);
+ }
+
+ [System.Security.SecuritySafeCritical]
+ protected virtual void Dispose(bool disposing) {
+ if (disposing) {
+ Reset();
+ }
+ }
#if FEATURE_SERIALIZATION
/// <internalonly/>
diff --git a/mcs/class/referencesource/mscorlib/system/security/framesecuritydescriptor.cs b/mcs/class/referencesource/mscorlib/system/security/framesecuritydescriptor.cs
index 42b2db3370d..92f4f22dfa3 100644
--- a/mcs/class/referencesource/mscorlib/system/security/framesecuritydescriptor.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/framesecuritydescriptor.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace System.Security {
using System.Text;
using System.Runtime.CompilerServices;
@@ -45,10 +45,10 @@ namespace System.Security {
// Used during exceptionstackwalks to revert impersonation before calling filters
[System.Security.SecurityCritical] // auto-generated
[NonSerialized]
- private SafeTokenHandle m_callerToken;
+ private SafeAccessTokenHandle m_callerToken;
[System.Security.SecurityCritical] // auto-generated
[NonSerialized]
- private SafeTokenHandle m_impToken;
+ private SafeAccessTokenHandle m_impToken;
#endif
private bool m_AssertFT;
@@ -198,10 +198,10 @@ namespace System.Security {
}
#if !FEATURE_PAL
//-----------------------------------------------------------+
- // SafeTokenHandle (Impersonation + EH purposes)
+ // SafeAccessTokenHandle (Impersonation + EH purposes)
//-----------------------------------------------------------+
[System.Security.SecurityCritical] // auto-generated
- internal void SetTokenHandles (SafeTokenHandle callerToken, SafeTokenHandle impToken)
+ internal void SetTokenHandles (SafeAccessTokenHandle callerToken, SafeAccessTokenHandle impToken)
{
m_callerToken = callerToken;
m_impToken = impToken;
diff --git a/mcs/class/referencesource/mscorlib/system/security/hostprotectionexception.cs b/mcs/class/referencesource/mscorlib/system/security/hostprotectionexception.cs
index 638ddf75b44..ee480cb7f62 100644
--- a/mcs/class/referencesource/mscorlib/system/security/hostprotectionexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/hostprotectionexception.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
/*=============================================================================
diff --git a/mcs/class/referencesource/mscorlib/system/security/hostsecuritymanager.cs b/mcs/class/referencesource/mscorlib/system/security/hostsecuritymanager.cs
index 113a75e1fc3..4d90a44fc55 100644
--- a/mcs/class/referencesource/mscorlib/system/security/hostsecuritymanager.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/hostsecuritymanager.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/ievidencefactory.cs b/mcs/class/referencesource/mscorlib/system/security/ievidencefactory.cs
index 87965215834..1e0a1e5d346 100644
--- a/mcs/class/referencesource/mscorlib/system/security/ievidencefactory.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/ievidencefactory.cs
@@ -5,7 +5,7 @@
// ==--==
// IEvidenceFactory.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
namespace System.Security {
diff --git a/mcs/class/referencesource/mscorlib/system/security/ipermission.cs b/mcs/class/referencesource/mscorlib/system/security/ipermission.cs
index 54b32bb8b8a..f88a7811c3c 100644
--- a/mcs/class/referencesource/mscorlib/system/security/ipermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/ipermission.cs
@@ -5,7 +5,7 @@
// ==--==
// IPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
// Defines the interface that all Permission objects must support.
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/isecurityencodable.cs b/mcs/class/referencesource/mscorlib/system/security/isecurityencodable.cs
index 0a39aa5506f..8b22b5979ce 100644
--- a/mcs/class/referencesource/mscorlib/system/security/isecurityencodable.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/isecurityencodable.cs
@@ -5,7 +5,7 @@
// ==--==
// ISecurityEncodable.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
// All encodable security classes that support encoding need to
// implement this interface
diff --git a/mcs/class/referencesource/mscorlib/system/security/isecuritypolicyencodable.cs b/mcs/class/referencesource/mscorlib/system/security/isecuritypolicyencodable.cs
index 4b9d1df4118..9cfc6bbfa60 100644
--- a/mcs/class/referencesource/mscorlib/system/security/isecuritypolicyencodable.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/isecuritypolicyencodable.cs
@@ -5,7 +5,7 @@
// ==--==
// ISecurityPolicyEncodable.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
// All encodable security classes that support encoding need to
// implement this interface
diff --git a/mcs/class/referencesource/mscorlib/system/security/istackwalk.cs b/mcs/class/referencesource/mscorlib/system/security/istackwalk.cs
index adcec6d912e..d877e7927eb 100644
--- a/mcs/class/referencesource/mscorlib/system/security/istackwalk.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/istackwalk.cs
@@ -5,7 +5,7 @@
// ==--==
// IStackWalk.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
namespace System.Security
diff --git a/mcs/class/referencesource/mscorlib/system/security/namedpermissionset.cs b/mcs/class/referencesource/mscorlib/system/security/namedpermissionset.cs
index d2baa4899db..24629138dd9 100644
--- a/mcs/class/referencesource/mscorlib/system/security/namedpermissionset.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/namedpermissionset.cs
@@ -5,7 +5,7 @@
// ==--==
// NamedPermissionSet.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Extends PermissionSet to allow an associated name and description
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissionlistset.cs b/mcs/class/referencesource/mscorlib/system/security/permissionlistset.cs
index fa855d0fae0..27cf6cd5aa0 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissionlistset.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissionlistset.cs
@@ -7,8 +7,8 @@
**
** Class: PermissionListSet.cs
**
-** <OWNER>[....]</OWNER>
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Purpose: Holds state about A/G/R permissionsets in a callstack or appdomain
** (Replacement for PermissionListSet)
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/environmentpermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/environmentpermission.cs
index 5da4d1999f3..9b86f00aaa8 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/environmentpermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/environmentpermission.cs
@@ -5,7 +5,7 @@
// ==--==
// EnvironmentPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions {
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/filedialogpermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/filedialogpermission.cs
index a46bc0dc8ff..55308ce4e81 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/filedialogpermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/filedialogpermission.cs
@@ -5,7 +5,7 @@
// ==--==
// FileDialogPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions {
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/fileiopermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/fileiopermission.cs
index c138bbefecc..a1861b1f478 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/fileiopermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/fileiopermission.cs
@@ -5,7 +5,7 @@
// ==--==
// FileIOPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions {
@@ -940,6 +940,40 @@ namespace System.Security.Permissions {
// This implementation is only to silence a compiler warning.
return base.GetHashCode();
}
+
+ /// <summary>
+ /// Call this method if you don't need a the FileIOPermission for anything other than calling Demand() once.
+ ///
+ /// This method tries to verify full access before allocating a FileIOPermission object.
+ /// If full access is there, then we still have to emulate the checks that creating the
+ /// FileIOPermission object would have performed.
+ ///
+ /// IMPORTANT: This method should only be used after calling GetFullPath on the path to verify
+ ///
+ /// </summary>
+ /// <param name="access"></param>
+ /// <param name="path"></param>
+ /// <param name="checkForDuplicates"></param>
+ /// <param name="needFullPath"></param>
+ [System.Security.SecuritySafeCritical]
+ internal static void QuickDemand(FileIOPermissionAccess access, string fullPath, bool checkForDuplicates, bool needFullPath)
+ {
+ if (!CodeAccessSecurityEngine.QuickCheckForAllDemands())
+ {
+ new FileIOPermission(access, new string[] { fullPath }, checkForDuplicates, needFullPath).Demand();
+ }
+ else
+ {
+ //Emulate FileIOPermission checks
+ Path.CheckInvalidPathChars(fullPath, true);
+
+ if (fullPath.Length > 2 && fullPath.IndexOf(':', 2) != -1)
+ {
+ throw new NotSupportedException(Environment.GetResourceString("Argument_PathFormatNotSupported"));
+ }
+ }
+ }
+
}
[Serializable]
@@ -1214,13 +1248,8 @@ namespace System.Security.Permissions {
private static String GetRoot( String path )
{
-#if !PLATFORM_UNIX
String str = path.Substring( 0, 3 );
if (str.EndsWith( ":\\", StringComparison.Ordinal))
-#else
- String str = path.Substring( 0, 1 );
- if(str == "/")
-#endif // !PLATFORM_UNIX
{
return str;
}
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/gacidentitypermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/gacidentitypermission.cs
index 0f130ad1339..df59f63a298 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/gacidentitypermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/gacidentitypermission.cs
@@ -5,7 +5,7 @@
// ==--==
// GacIdentityPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/hostprotectionpermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/hostprotectionpermission.cs
index 9ade132ea2e..837cac3c1e0 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/hostprotectionpermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/hostprotectionpermission.cs
@@ -5,7 +5,7 @@
// ==--==
// HostProtectionPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions
@@ -22,7 +22,7 @@ namespace System.Security.Permissions
using System.Globalization;
using System.Diagnostics.Contracts;
- // Keep this enum in [....] with tools\ngen\ngen.cpp and inc\mscoree.idl
+ // Keep this enum in sync with tools\ngen\ngen.cpp and inc\mscoree.idl
[Serializable]
[Flags]
@@ -47,6 +47,11 @@ namespace System.Security.Permissions
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly | AttributeTargets.Delegate, AllowMultiple = true, Inherited = false )]
[System.Runtime.InteropServices.ComVisible(true)]
[Serializable]
+#if FEATURE_CORECLR
+ // This needs to be in the asmmeta to enable SecAnnotate to successfully resolve and run the security rules. It gets marked
+ // as internal by BCLRewriter so we are simply marking it as FriendAccessAllowed so it stays in the asmmeta.
+ [System.Runtime.CompilerServices.FriendAccessAllowedAttribute]
+#endif // FEATURE_CORECLR
#pragma warning disable 618
sealed public class HostProtectionAttribute : CodeAccessSecurityAttribute
#pragma warning restore 618
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/ibuiltinpermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/ibuiltinpermission.cs
index 4ad75f52ed9..eb7a6ce1ad8 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/ibuiltinpermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/ibuiltinpermission.cs
@@ -5,7 +5,7 @@
// ==--==
// IBuiltInPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
namespace System.Security.Permissions
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/isolatedstoragefilepermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/isolatedstoragefilepermission.cs
index 031cf0983c5..e52c1caf1ef 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/isolatedstoragefilepermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/isolatedstoragefilepermission.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Purpose : This permission is used to controls/administer access to
// IsolatedStorageFile
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/isolatedstoragepermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/isolatedstoragepermission.cs
index 7fad3c55ed3..69c7f743a89 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/isolatedstoragepermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/isolatedstoragepermission.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions {
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/iunrestrictedpermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/iunrestrictedpermission.cs
index f1cc3cfa19c..5d8eb0a5922 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/iunrestrictedpermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/iunrestrictedpermission.cs
@@ -5,7 +5,7 @@
// ==--==
// IUnrestrictedPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
namespace System.Security.Permissions {
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/keycontainerpermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/keycontainerpermission.cs
index a606bf2ca0e..0afd60558c8 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/keycontainerpermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/keycontainerpermission.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/permissionattributes.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/permissionattributes.cs
index 09f2ae38647..1e36a44ecb4 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/permissionattributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/permissionattributes.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace System.Security.Permissions
{
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/permissionstate.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/permissionstate.cs
index b8b0b00ba50..c736ccc6aa2 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/permissionstate.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/permissionstate.cs
@@ -5,7 +5,7 @@
// ==--==
// PermissionState.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
// The Runtime policy manager. Maintains a set of IdentityMapper objects that map
// inbound evidence to groups. Resolves an identity into a set of permissions
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/principalpermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/principalpermission.cs
index 7598e6286ef..4ed6ff549dd 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/principalpermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/principalpermission.cs
@@ -5,7 +5,7 @@
// ==--==
// PrincipalPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/publisheridentitypermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/publisheridentitypermission.cs
index 7c41b3be1cd..5f78b238df5 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/publisheridentitypermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/publisheridentitypermission.cs
@@ -5,7 +5,7 @@
// ==--==
// PublisherIdentityPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/reflectionpermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/reflectionpermission.cs
index 00e79a1ee0c..7e0d2fd2762 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/reflectionpermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/reflectionpermission.cs
@@ -5,7 +5,7 @@
// ==--==
// ReflectionPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/registrypermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/registrypermission.cs
index 0805d55ac21..1f7cfddeb89 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/registrypermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/registrypermission.cs
@@ -5,7 +5,7 @@
// ==--==
// RegistryPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/securitypermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/securitypermission.cs
index 18b328f88fb..1e501c5997e 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/securitypermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/securitypermission.cs
@@ -5,7 +5,7 @@
// ==--==
// SecurityPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/siteidentitypermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/siteidentitypermission.cs
index d08ccce13ca..a6c530be87e 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/siteidentitypermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/siteidentitypermission.cs
@@ -5,7 +5,7 @@
// ==--==
// SiteIdentityPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/strongnameidentitypermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/strongnameidentitypermission.cs
index 31cbc12167b..1ab3804bdc1 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/strongnameidentitypermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/strongnameidentitypermission.cs
@@ -6,7 +6,7 @@
// ==--==
// StrongNameIdentityPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/strongnamepublickeyblob.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/strongnamepublickeyblob.cs
index 2367f8ba842..ac3cac3e2c0 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/strongnamepublickeyblob.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/strongnamepublickeyblob.cs
@@ -5,7 +5,7 @@
// ==--==
// StrongNamePublicKeyBlob.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/uipermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/uipermission.cs
index dea740ad6f7..6e34b862759 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/uipermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/uipermission.cs
@@ -5,7 +5,7 @@
// ==--==
// UIPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/urlidentitypermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/urlidentitypermission.cs
index ce61fad8493..bab282e8893 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/urlidentitypermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/urlidentitypermission.cs
@@ -5,7 +5,7 @@
// ==--==
// UrlIdentityPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissions/zoneidentitypermission.cs b/mcs/class/referencesource/mscorlib/system/security/permissions/zoneidentitypermission.cs
index 6b3f6c56be3..13574f3f265 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissions/zoneidentitypermission.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissions/zoneidentitypermission.cs
@@ -5,7 +5,7 @@
// ==--==
// ZoneIdentityPermission.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Permissions
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissionset.cs b/mcs/class/referencesource/mscorlib/system/security/permissionset.cs
index 1edd3c8ad16..b7118829962 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissionset.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissionset.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security {
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissionsetenumerator.cs b/mcs/class/referencesource/mscorlib/system/security/permissionsetenumerator.cs
index e65e24d5040..c8f04173903 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissionsetenumerator.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissionsetenumerator.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissionsettriple.cs b/mcs/class/referencesource/mscorlib/system/security/permissionsettriple.cs
index f319aa37114..170cd203378 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissionsettriple.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissionsettriple.cs
@@ -7,7 +7,7 @@
**
** Class: PermissionSetTriple
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Purpose: Container class for holding an AppDomain's Grantset and Refused sets.
** Also used for CompressedStacks which brings in the third PermissionSet.
diff --git a/mcs/class/referencesource/mscorlib/system/security/permissiontoken.cs b/mcs/class/referencesource/mscorlib/system/security/permissiontoken.cs
index bb328a7e669..92051b8ee6e 100644
--- a/mcs/class/referencesource/mscorlib/system/security/permissiontoken.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/permissiontoken.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace System.Security {
using System;
using System.Security.Util;
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/allmembershipcondition.cs b/mcs/class/referencesource/mscorlib/system/security/policy/allmembershipcondition.cs
index 9b517b50349..e6d327d14f2 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/allmembershipcondition.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/allmembershipcondition.cs
@@ -5,7 +5,7 @@
// ==--==
// AllMembershipCondition.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Simple IMembershipCondition implementation that always passes
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/applicationdirectory.cs b/mcs/class/referencesource/mscorlib/system/security/policy/applicationdirectory.cs
index b521a618d22..3b568460ecd 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/applicationdirectory.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/applicationdirectory.cs
@@ -5,7 +5,7 @@
// ==--==
// ApplicationDirectory.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// ApplicationDirectory is an evidence type representing the directory the assembly
// was loaded from.
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/applicationdirectorymembershipcondition.cs b/mcs/class/referencesource/mscorlib/system/security/policy/applicationdirectorymembershipcondition.cs
index 97194d1142c..5bc3e8dffa8 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/applicationdirectorymembershipcondition.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/applicationdirectorymembershipcondition.cs
@@ -5,7 +5,7 @@
// ==--==
// ApplicationDirectoryMembershipCondition.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Implementation of membership condition for "application directories"
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/applicationsecurityinfo.cs b/mcs/class/referencesource/mscorlib/system/security/policy/applicationsecurityinfo.cs
index 825d6b02787..477b44575ea 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/applicationsecurityinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/applicationsecurityinfo.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/applicationsecuritymanager.cs b/mcs/class/referencesource/mscorlib/system/security/policy/applicationsecuritymanager.cs
index 07c3d8267df..d3bbfbd9cd4 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/applicationsecuritymanager.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/applicationsecuritymanager.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/applicationtrust.cs b/mcs/class/referencesource/mscorlib/system/security/policy/applicationtrust.cs
index 11092a47e25..c93e68a367a 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/applicationtrust.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/applicationtrust.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -55,11 +55,11 @@ namespace System.Security.Policy {
private IList<StrongName> m_fullTrustAssemblies;
// Permission special flags for the default grant set in this ApplicationTrust. This should be
- // updated in [....] with any updates to the default grant set.
+ // updated in sync with any updates to the default grant set.
//
// In the general case, these values cannot be trusted - we only store a reference to the
// DefaultGrantSet, and return the reference directly, which means that code can update the
- // permission set without our knowledge. That would lead to the flags getting out of [....] with the
+ // permission set without our knowledge. That would lead to the flags getting out of sync with the
// grant set.
//
// However, we only care about these flags when we're creating a homogenous AppDomain, and in that
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/assemblyevidencefactory.cs b/mcs/class/referencesource/mscorlib/system/security/policy/assemblyevidencefactory.cs
index cdd0434f7b7..df5f539e8af 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/assemblyevidencefactory.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/assemblyevidencefactory.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/codegroup.cs b/mcs/class/referencesource/mscorlib/system/security/policy/codegroup.cs
index d7e9a65339d..a6439b55253 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/codegroup.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/codegroup.cs
@@ -5,7 +5,7 @@
// ==--==
// CodeGroup.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Representation for code groups used for the policy mechanism
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/evidence.cs b/mcs/class/referencesource/mscorlib/system/security/policy/evidence.cs
index 41cc55871e6..a3e9ab07c25 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/evidence.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/evidence.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Policy
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/evidencebase.cs b/mcs/class/referencesource/mscorlib/system/security/policy/evidencebase.cs
index daf220938f1..30a8fbee735 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/evidencebase.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/evidencebase.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
@@ -166,7 +166,7 @@ namespace System.Security.Policy
{
Contract.Assert(evidence != null);
Contract.Assert(m_legacyEvidenceList.Count == 0 || EvidenceType == evidence.GetType() || (evidence is LegacyEvidenceWrapper && (evidence as LegacyEvidenceWrapper).EvidenceType == EvidenceType),
- "LegacyEvidenceList must be ----geonous");
+ "LegacyEvidenceList must be homogeonous");
Contract.Assert(evidence.GetType() != typeof(LegacyEvidenceList),
"Attempt to add a legacy evidence list to another legacy evidence list");
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/evidencetypedescriptor.cs b/mcs/class/referencesource/mscorlib/system/security/policy/evidencetypedescriptor.cs
index b45c5411321..ce063253c3e 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/evidencetypedescriptor.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/evidencetypedescriptor.cs
@@ -2,7 +2,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/filecodegroup.cs b/mcs/class/referencesource/mscorlib/system/security/policy/filecodegroup.cs
index e3a2bb4879a..d36c6402a74 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/filecodegroup.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/filecodegroup.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/firstmatchcodegroup.cs b/mcs/class/referencesource/mscorlib/system/security/policy/firstmatchcodegroup.cs
index 4700bbbe705..0afbd3c4c66 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/firstmatchcodegroup.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/firstmatchcodegroup.cs
@@ -5,7 +5,7 @@
// ==--==
// FirstMatchCodeGroup.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Representation for code groups used for the policy mechanism
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/gac.cs b/mcs/class/referencesource/mscorlib/system/security/policy/gac.cs
index 78f0eea16dd..a6abea898e4 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/gac.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/gac.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/gacmembershipcondition.cs b/mcs/class/referencesource/mscorlib/system/security/policy/gacmembershipcondition.cs
index fc96793581a..84d65e5e3f7 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/gacmembershipcondition.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/gacmembershipcondition.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/hash.cs b/mcs/class/referencesource/mscorlib/system/security/policy/hash.cs
index 9705ad9897f..184faec0ee7 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/hash.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/hash.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -424,25 +424,8 @@ namespace System.Security.Policy
else if (hashAlgorithm.IsAssignableFrom(typeof(SHA256)))
{
// The managed SHA256 implementation is not a FIPS certified implementation, however on
- // Windows 2003 and higher we have a FIPS alternative. If we're on Windows 2003 or better,
- // use the CAPI implementation - otherwise, we fall back to the managed implementation if
- // FIPS is not enabled.
- Version osVersion = Environment.OSVersion.Version;
- bool isWin2k3OrHigher = Environment.RunningOnWinNT &&
- (osVersion.Major > 5 || (osVersion.Major == 5 && osVersion.Minor >= 2));
-
- if (isWin2k3OrHigher)
- {
- return Type.GetType("System.Security.Cryptography.SHA256CryptoServiceProvider, " + AssemblyRef.SystemCore);
- }
- else if (!CryptoConfig.AllowOnlyFipsAlgorithms)
- {
- return typeof(SHA256Managed);
- }
- else
- {
- return null;
- }
+ // we have a FIPS alternative.
+ return Type.GetType("System.Security.Cryptography.SHA256CryptoServiceProvider, " + AssemblyRef.SystemCore);
}
else
{
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/hashmembershipcondition.cs b/mcs/class/referencesource/mscorlib/system/security/policy/hashmembershipcondition.cs
index befd3261ff2..690034bc65c 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/hashmembershipcondition.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/hashmembershipcondition.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/iapplicationtrustmanager.cs b/mcs/class/referencesource/mscorlib/system/security/policy/iapplicationtrustmanager.cs
index 46990db4863..194bfbdce7a 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/iapplicationtrustmanager.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/iapplicationtrustmanager.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/iconstantmembershipcondition.cs b/mcs/class/referencesource/mscorlib/system/security/policy/iconstantmembershipcondition.cs
index adec0e0b96c..fc1107a1d98 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/iconstantmembershipcondition.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/iconstantmembershipcondition.cs
@@ -5,7 +5,7 @@
// ==--==
// IConstantMembershipCondition.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
// Interface that all constant membership conditions must implement
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/idelayevaluatedevidence.cs b/mcs/class/referencesource/mscorlib/system/security/policy/idelayevaluatedevidence.cs
index e695ef7b33c..407a424e917 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/idelayevaluatedevidence.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/idelayevaluatedevidence.cs
@@ -33,4 +33,4 @@ namespace System.Security.Policy {
/// </summary>
void MarkUsed();
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/iidentitypermissionfactory.cs b/mcs/class/referencesource/mscorlib/system/security/policy/iidentitypermissionfactory.cs
index 88bfe5f1652..617328d6f4f 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/iidentitypermissionfactory.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/iidentitypermissionfactory.cs
@@ -5,7 +5,7 @@
// ==--==
// IIdentityPermissionFactory.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
// All Identities will implement this interface.
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/imembershipcondition.cs b/mcs/class/referencesource/mscorlib/system/security/policy/imembershipcondition.cs
index be9da01d7e9..5885ba1dc1a 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/imembershipcondition.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/imembershipcondition.cs
@@ -5,7 +5,7 @@
// ==--==
// IMembershipCondition.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
// Interface that all MembershipConditions must implement
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/iruntimeevidencefactory.cs b/mcs/class/referencesource/mscorlib/system/security/policy/iruntimeevidencefactory.cs
index 3acfbf41145..64b8f9a1482 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/iruntimeevidencefactory.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/iruntimeevidencefactory.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/netcodegroup.cs b/mcs/class/referencesource/mscorlib/system/security/policy/netcodegroup.cs
index 17fe906c481..5916875e672 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/netcodegroup.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/netcodegroup.cs
@@ -5,7 +5,7 @@
// ==--==
// NetCodeGroup.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Representation for code groups used for the policy mechanism
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/pefileevidencefactory.cs b/mcs/class/referencesource/mscorlib/system/security/policy/pefileevidencefactory.cs
index 266e7b5f9ca..b70b1d262c2 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/pefileevidencefactory.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/pefileevidencefactory.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
@@ -25,7 +25,7 @@ using Microsoft.Win32.SafeHandles;
namespace System.Security.Policy
{
/// <summary>
- /// Arguments to the ETW evidence generation event. This enumeration should be kept in [....] with
+ /// Arguments to the ETW evidence generation event. This enumeration should be kept in sync with
/// the VM enumeration EvidenceType in SecurityPolicy.h.
/// </summary>
internal enum EvidenceTypeGenerated
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/permissionrequestevidence.cs b/mcs/class/referencesource/mscorlib/system/security/policy/permissionrequestevidence.cs
index e4826330f82..ed71bdab120 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/permissionrequestevidence.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/permissionrequestevidence.cs
@@ -5,7 +5,7 @@
// ==--==
// PermissionRequestEvidence.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Encapsulation of permission request as an evidence type.
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/policyexception.cs b/mcs/class/referencesource/mscorlib/system/security/policy/policyexception.cs
index c0716d3c61a..11ef230b648 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/policyexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/policyexception.cs
@@ -5,7 +5,7 @@
// ==--==
// PolicyException.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Use this class to throw a PolicyException
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/policylevel.cs b/mcs/class/referencesource/mscorlib/system/security/policy/policylevel.cs
index 5a766ce01fb..10def8e6810 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/policylevel.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/policylevel.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/policystatement.cs b/mcs/class/referencesource/mscorlib/system/security/policy/policystatement.cs
index 35e7033408c..9dbb1239fe2 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/policystatement.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/policystatement.cs
@@ -6,7 +6,7 @@ using System.Diagnostics.Contracts;
// ==--==
// PolicyStatement.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Represents the policy associated with some piece of evidence
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/publisher.cs b/mcs/class/referencesource/mscorlib/system/security/policy/publisher.cs
index b28e9c13bbb..1234d776ca7 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/publisher.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/publisher.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/publishermembershipcondition.cs b/mcs/class/referencesource/mscorlib/system/security/policy/publishermembershipcondition.cs
index 3c6dda1f414..c3da15b832c 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/publishermembershipcondition.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/publishermembershipcondition.cs
@@ -5,7 +5,7 @@
// ==--==
// PublisherMembershipCondition.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Implementation of membership condition for X509 certificate based publishers
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/site.cs b/mcs/class/referencesource/mscorlib/system/security/policy/site.cs
index 86ef1763ada..c18dc21604c 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/site.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/site.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/sitemembershipcondition.cs b/mcs/class/referencesource/mscorlib/system/security/policy/sitemembershipcondition.cs
index 4dc9af6f3a0..067d63f24c1 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/sitemembershipcondition.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/sitemembershipcondition.cs
@@ -6,7 +6,7 @@ using System.Diagnostics.Contracts;
// ==--==
// SiteMembershipCondition.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Implementation of membership condition for zones
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/strongname.cs b/mcs/class/referencesource/mscorlib/system/security/policy/strongname.cs
index 775d5d75d96..4714828772d 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/strongname.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/strongname.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/strongnamemembershipcondition.cs b/mcs/class/referencesource/mscorlib/system/security/policy/strongnamemembershipcondition.cs
index afd302a4950..c6470c861c6 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/strongnamemembershipcondition.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/strongnamemembershipcondition.cs
@@ -5,7 +5,7 @@
// ==--==
// StrongNameMembershipCondition.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Implementation of membership condition for zones
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/unioncodegroup.cs b/mcs/class/referencesource/mscorlib/system/security/policy/unioncodegroup.cs
index 4d6570786dd..470d0fb8a6e 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/unioncodegroup.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/unioncodegroup.cs
@@ -5,7 +5,7 @@
// ==--==
// UnionCodeGroup.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Representation for code groups used for the policy mechanism
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/url.cs b/mcs/class/referencesource/mscorlib/system/security/policy/url.cs
index b41f2cfe580..632d2ce3d7a 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/url.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/url.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/urlmembershipcondition.cs b/mcs/class/referencesource/mscorlib/system/security/policy/urlmembershipcondition.cs
index 2891234f930..a8745a5cbb9 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/urlmembershipcondition.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/urlmembershipcondition.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/zone.cs b/mcs/class/referencesource/mscorlib/system/security/policy/zone.cs
index 74f60e5ce9a..9942af9f271 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/zone.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/zone.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policy/zonemembershipcondition.cs b/mcs/class/referencesource/mscorlib/system/security/policy/zonemembershipcondition.cs
index 329ef5e6401..a9afd303393 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policy/zonemembershipcondition.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policy/zonemembershipcondition.cs
@@ -6,7 +6,7 @@ using System.Diagnostics.Contracts;
// ==--==
// ZoneMembershipCondition.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Implementation of membership condition for zones
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/policymanager.cs b/mcs/class/referencesource/mscorlib/system/security/policymanager.cs
index ff35a450c87..814c460eed5 100644
--- a/mcs/class/referencesource/mscorlib/system/security/policymanager.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/policymanager.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -414,7 +414,7 @@ namespace System.Security {
{
if (FullTrustMap == null)
{
- // This mapping must stay in [....] with the SecurityZone enumeration in SecurityZone.cs
+ // This mapping must stay in sync with the SecurityZone enumeration in SecurityZone.cs
FullTrustMap = new QuickCacheEntryType[]
{
QuickCacheEntryType.FullTrustZoneMyComputer,
diff --git a/mcs/class/referencesource/mscorlib/system/security/principal/genericidentity.cs b/mcs/class/referencesource/mscorlib/system/security/principal/genericidentity.cs
index 02037c6391b..b771a70180f 100644
--- a/mcs/class/referencesource/mscorlib/system/security/principal/genericidentity.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/principal/genericidentity.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/principal/genericprincipal.cs b/mcs/class/referencesource/mscorlib/system/security/principal/genericprincipal.cs
index f2f6cacc626..ceac53d1bc2 100644
--- a/mcs/class/referencesource/mscorlib/system/security/principal/genericprincipal.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/principal/genericprincipal.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -63,7 +63,7 @@ namespace System.Security.Principal
//
// 4.5 4.5 Yes There should be a ClaimsIdentity, DebugAssert if this is not the case
// If there are roles, attach them to the first ClaimsIdentity.
- // If there is no non-null ClaimsIdentity, add one. However, this is unusual and may be a bug.
+ // If there is no non-null ClaimsIdentity, add one. However, this is unusual and may be a
ClaimsIdentity firstNonNullIdentity = null;
foreach (var identity in base.Identities)
diff --git a/mcs/class/referencesource/mscorlib/system/security/principal/identitynotmappedexception.cs b/mcs/class/referencesource/mscorlib/system/security/principal/identitynotmappedexception.cs
index 8985f087ee9..f5f9bbabe9a 100644
--- a/mcs/class/referencesource/mscorlib/system/security/principal/identitynotmappedexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/principal/identitynotmappedexception.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/security/principal/identityreference.cs b/mcs/class/referencesource/mscorlib/system/security/principal/identityreference.cs
index 3be7e0e96de..727c8ea733f 100644
--- a/mcs/class/referencesource/mscorlib/system/security/principal/identityreference.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/principal/identityreference.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/security/principal/iidentity.cs b/mcs/class/referencesource/mscorlib/system/security/principal/iidentity.cs
index f73c0442b24..2601f13ed1a 100644
--- a/mcs/class/referencesource/mscorlib/system/security/principal/iidentity.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/principal/iidentity.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/principal/iprincipal.cs b/mcs/class/referencesource/mscorlib/system/security/principal/iprincipal.cs
index 045b8c001f9..82bc40bd85b 100644
--- a/mcs/class/referencesource/mscorlib/system/security/principal/iprincipal.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/principal/iprincipal.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/principal/ircollection.cs b/mcs/class/referencesource/mscorlib/system/security/principal/ircollection.cs
index 979704be569..3eff01e8d09 100644
--- a/mcs/class/referencesource/mscorlib/system/security/principal/ircollection.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/principal/ircollection.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace System.Security.Principal
{
using System;
@@ -212,9 +212,9 @@ namespace System.Security.Principal
{
//
// Rare case that we have defined a type of identity reference and
- // not included it in the code logic above (this is more like a bug in the implementation
- // but only as long as we do not allow IdentityReference to be subclassed outside of the BCL)
- //
+ // not included it in the code logic above (this is more like a
+
+
Contract.Assert( false, "Source type is an IdentityReference type which has not been included in translation logic.");
throw new SystemException();
}
@@ -275,9 +275,9 @@ namespace System.Security.Principal
{
//
// Rare case that we have defined a type of identity reference and
- // not included it in the code logic above (this is more like a bug in the implementation
- // but only as long as we do not allow IdentityReference to be subclassed outside of the BCL)
- //
+ // not included it in the code logic above (this is more like a
+
+
Contract.Assert( false, "Source type is an IdentityReference type which has not been included in translation logic.");
throw new SystemException();
}
@@ -372,9 +372,9 @@ namespace System.Security.Principal
{
//
// Rare case that we have defined a type of identity reference and
- // not included it in the code logic above (this is more like a bug in the implementation
- // but only as long as we do not allow IdentityReference to be subclassed outside of the BCL)
- //
+ // not included it in the code logic above (this is more like a
+
+
Contract.Assert( false, "Source type is an IdentityReference type which has not been included in translation logic.");
throw new SystemException();
}
diff --git a/mcs/class/referencesource/mscorlib/system/security/principal/ntaccount.cs b/mcs/class/referencesource/mscorlib/system/security/principal/ntaccount.cs
index 291d56499dd..19b7ec76408 100644
--- a/mcs/class/referencesource/mscorlib/system/security/principal/ntaccount.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/principal/ntaccount.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using Microsoft.Win32;
diff --git a/mcs/class/referencesource/mscorlib/system/security/principal/principalpolicy.cs b/mcs/class/referencesource/mscorlib/system/security/principal/principalpolicy.cs
index e29ba59d7c8..5d1ba55f0a4 100644
--- a/mcs/class/referencesource/mscorlib/system/security/principal/principalpolicy.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/principal/principalpolicy.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/principal/sid.cs b/mcs/class/referencesource/mscorlib/system/security/principal/sid.cs
index bfc99ecf311..e8558b29568 100644
--- a/mcs/class/referencesource/mscorlib/system/security/principal/sid.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/principal/sid.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/security/principal/tokenaccesslevels.cs b/mcs/class/referencesource/mscorlib/system/security/principal/tokenaccesslevels.cs
index 036fd811835..3e1d5392b48 100644
--- a/mcs/class/referencesource/mscorlib/system/security/principal/tokenaccesslevels.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/principal/tokenaccesslevels.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
namespace System.Security.Principal
diff --git a/mcs/class/referencesource/mscorlib/system/security/principal/tokenimpersonationlevel.cs b/mcs/class/referencesource/mscorlib/system/security/principal/tokenimpersonationlevel.cs
index cf599ea99f2..90332cb5f8d 100644
--- a/mcs/class/referencesource/mscorlib/system/security/principal/tokenimpersonationlevel.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/principal/tokenimpersonationlevel.cs
@@ -3,12 +3,12 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
namespace System.Security.Principal
{
-#if !FEATURE_NETCORE
+#if !FEATURE_CORECLR
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
#endif
@@ -19,4 +19,4 @@ namespace System.Security.Principal
Impersonation = 3,
Delegation = 4
}
-}
+} \ No newline at end of file
diff --git a/mcs/class/referencesource/mscorlib/system/security/principal/win32.cs b/mcs/class/referencesource/mscorlib/system/security/principal/win32.cs
index ec346c8450f..2aedb26bc2d 100644
--- a/mcs/class/referencesource/mscorlib/system/security/principal/win32.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/principal/win32.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using Microsoft.Win32;
@@ -436,12 +436,12 @@ namespace System.Security.Principal
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.Process)]
[DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
- internal static extern int ImpersonateLoggedOnUser (SafeTokenHandle hToken);
+ internal static extern int ImpersonateLoggedOnUser (SafeAccessTokenHandle hToken);
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.Process)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- internal static extern int OpenThreadToken (TokenAccessLevels dwDesiredAccess, WinSecurityContext OpenAs, out SafeTokenHandle phThreadToken);
+ internal static extern int OpenThreadToken (TokenAccessLevels dwDesiredAccess, WinSecurityContext OpenAs, out SafeAccessTokenHandle phThreadToken);
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
@@ -451,7 +451,7 @@ namespace System.Security.Principal
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
[DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode), SuppressUnmanagedCodeSecurity]
- internal static extern int SetThreadToken(SafeTokenHandle hToken);
+ internal static extern int SetThreadToken(SafeAccessTokenHandle hToken);
#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/security/principal/windowsidentity.cs b/mcs/class/referencesource/mscorlib/system/security/principal/windowsidentity.cs
index 6ef59677443..87c57938e5b 100644
--- a/mcs/class/referencesource/mscorlib/system/security/principal/windowsidentity.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/principal/windowsidentity.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -46,7 +46,7 @@ namespace System.Security.Principal
Anonymous = 3
}
- // Keep in [....] with vm\comprincipal.h
+ // Keep in sync with vm\comprincipal.h
internal enum WinSecurityContext {
Thread = 1, // OpenAsSelf = false
Process = 2, // OpenAsSelf = true
@@ -67,13 +67,13 @@ namespace System.Security.Principal
public class WindowsIdentity : IIdentity, ISerializable, IDeserializationCallback, IDisposable {
#endif
[System.Security.SecurityCritical] // auto-generated
- static SafeTokenHandle s_invalidTokenHandle = SafeTokenHandle.InvalidHandle;
+ static SafeAccessTokenHandle s_invalidTokenHandle = SafeAccessTokenHandle.InvalidHandle;
private string m_name = null;
private SecurityIdentifier m_owner = null;
private SecurityIdentifier m_user = null;
private object m_groups = null;
[System.Security.SecurityCritical] // auto-generated
- private SafeTokenHandle m_safeTokenHandle = SafeTokenHandle.InvalidHandle;
+ private SafeAccessTokenHandle m_safeTokenHandle = SafeAccessTokenHandle.InvalidHandle;
private string m_authType = null;
private int m_isAuthenticated = -1;
private volatile TokenImpersonationLevel m_impersonationLevel;
@@ -125,7 +125,7 @@ namespace System.Security.Principal
#endif
[System.Security.SecurityCritical] // auto-generated
- internal WindowsIdentity (SafeTokenHandle safeTokenHandle) : this (safeTokenHandle.DangerousGetHandle(), null, -1) {
+ internal WindowsIdentity (SafeAccessTokenHandle safeTokenHandle) : this (safeTokenHandle.DangerousGetHandle(), null, -1) {
GC.KeepAlive(safeTokenHandle);
}
@@ -370,8 +370,8 @@ namespace System.Security.Principal
get {
if (m_isAuthenticated == -1) {
- // There is a known bug where this approach will not work correctly for domain guests (will return false
- // instead of true). But this is a corner-case that is not very interesting.
+ // There is a known
+
#if !FEATURE_CORECLR
m_isAuthenticated = CheckNtTokenForSid(new SecurityIdentifier(IdentifierAuthority.NTAuthority,
new int[] { Win32Native.SECURITY_AUTHENTICATED_USER_RID })) ? 1 : 0;
@@ -400,7 +400,7 @@ namespace System.Security.Principal
return false;
// CheckTokenMembership expects an impersonation token
- SafeTokenHandle token = SafeTokenHandle.InvalidHandle;
+ SafeAccessTokenHandle token = SafeAccessTokenHandle.InvalidHandle;
TokenImpersonationLevel til = ImpersonationLevel;
bool isMember = false;
@@ -423,7 +423,7 @@ namespace System.Security.Principal
throw new SecurityException(Win32Native.GetMessage(Marshal.GetLastWin32Error()));
}
finally {
- if (token != SafeTokenHandle.InvalidHandle) {
+ if (token != SafeAccessTokenHandle.InvalidHandle) {
token.Dispose();
}
}
@@ -562,9 +562,9 @@ namespace System.Security.Principal
using (SafeLocalAllocHandle pGroups = GetTokenInformation(m_safeTokenHandle, TokenInformationClass.TokenGroups)) {
uint groupCount = pGroups.Read<uint>(0);
- // Work-around bug on WS03 that only populates the GroupCount field of TOKEN_GROUPS if the count is 0
- // In that situation, attempting to read the entire TOKEN_GROUPS structure will lead to InsufficientBuffer exception
- // since the field is only 4 bytes long (uint only, for GroupCount), but we try to read more (including the pointer to GroupDetails).
+ // Work-around
+
+
if (groupCount != 0)
{
@@ -608,6 +608,45 @@ namespace System.Security.Principal
//
// Public methods.
//
+ [SecuritySafeCritical]
+ public static void RunImpersonated(SafeAccessTokenHandle safeAccessTokenHandle, Action action)
+ {
+ if (action == null)
+ throw new ArgumentNullException("action");
+
+ StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller;
+
+ WindowsIdentity wi = null;
+ if (!safeAccessTokenHandle.IsInvalid)
+ wi = new WindowsIdentity(safeAccessTokenHandle);
+
+ using (WindowsImpersonationContext wiContext = SafeImpersonate(safeAccessTokenHandle, wi, ref stackMark))
+ {
+ action();
+ }
+ }
+
+ [SecuritySafeCritical]
+ public static T RunImpersonated<T>(SafeAccessTokenHandle safeAccessTokenHandle, Func<T> func)
+ {
+ if (func == null)
+ throw new ArgumentNullException("func");
+
+ StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller;
+
+ WindowsIdentity wi = null;
+ if (!safeAccessTokenHandle.IsInvalid)
+ wi = new WindowsIdentity(safeAccessTokenHandle);
+
+ T result = default(T);
+ using (WindowsImpersonationContext wiContext = SafeImpersonate(safeAccessTokenHandle, wi, ref stackMark))
+ {
+ result = func();
+ }
+
+ return result;
+ }
+
[System.Security.SecuritySafeCritical] // auto-generated
[DynamicSecurityMethodAttribute()]
[ResourceExposure(ResourceScope.Process)] // Call from within a CER, or use a RunAsUser helper.
@@ -658,17 +697,17 @@ namespace System.Security.Principal
Dispose(true);
}
- //
- // internal.
- //
-
- internal SafeTokenHandle TokenHandle {
+ public SafeAccessTokenHandle AccessToken {
[System.Security.SecurityCritical] // auto-generated
get {
return m_safeTokenHandle;
}
}
+ //
+ // internal.
+ //
+
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Process, ResourceScope.Process)]
@@ -680,15 +719,15 @@ namespace System.Security.Principal
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.Process)]
[ResourceConsumption(ResourceScope.Process)]
- internal static WindowsImpersonationContext SafeImpersonate (SafeTokenHandle userToken, WindowsIdentity wi, ref StackCrawlMark stackMark)
+ internal static WindowsImpersonationContext SafeImpersonate (SafeAccessTokenHandle userToken, WindowsIdentity wi, ref StackCrawlMark stackMark)
{
bool isImpersonating;
int hr = 0;
- SafeTokenHandle safeTokenHandle = GetCurrentToken(TokenAccessLevels.MaximumAllowed, false, out isImpersonating, out hr);
+ SafeAccessTokenHandle safeTokenHandle = GetCurrentToken(TokenAccessLevels.MaximumAllowed, false, out isImpersonating, out hr);
if (safeTokenHandle == null || safeTokenHandle.IsInvalid)
throw new SecurityException(Win32Native.GetMessage(hr));
- // Set the SafeTokenHandle on the FSD:
+ // Set the SafeAccessTokenHandle on the FSD:
FrameSecurityDescriptor secObj = SecurityRuntime.GetSecurityObjectForFrame(ref stackMark, true);
if (secObj == null)
{
@@ -705,7 +744,7 @@ namespace System.Security.Principal
Environment.FailFast(Win32Native.GetMessage(hr));
// update identity on the thread
UpdateThreadWI(wi);
- secObj.SetTokenHandles(safeTokenHandle, (wi == null?null:wi.TokenHandle));
+ secObj.SetTokenHandles(safeTokenHandle, (wi == null?null:wi.AccessToken));
} else {
hr = Win32.RevertToSelf();
if (hr < 0)
@@ -716,7 +755,7 @@ namespace System.Security.Principal
throw new SecurityException(Environment.GetResourceString("Argument_ImpersonateUser"));
}
UpdateThreadWI(wi);
- secObj.SetTokenHandles(safeTokenHandle, (wi == null?null:wi.TokenHandle));
+ secObj.SetTokenHandles(safeTokenHandle, (wi == null?null:wi.AccessToken));
}
return context;
@@ -758,7 +797,7 @@ namespace System.Security.Principal
internal static WindowsIdentity GetCurrentInternal (TokenAccessLevels desiredAccess, bool threadOnly) {
int hr = 0;
bool isImpersonating;
- SafeTokenHandle safeTokenHandle = GetCurrentToken(desiredAccess, threadOnly, out isImpersonating, out hr);
+ SafeAccessTokenHandle safeTokenHandle = GetCurrentToken(desiredAccess, threadOnly, out isImpersonating, out hr);
if (safeTokenHandle == null || safeTokenHandle.IsInvalid) {
// either we wanted only ThreadToken - return null
if (threadOnly && !isImpersonating)
@@ -803,9 +842,9 @@ namespace System.Security.Principal
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.Process)]
[ResourceConsumption(ResourceScope.Process)]
- private static SafeTokenHandle GetCurrentToken(TokenAccessLevels desiredAccess, bool threadOnly, out bool isImpersonating, out int hr) {
+ private static SafeAccessTokenHandle GetCurrentToken(TokenAccessLevels desiredAccess, bool threadOnly, out bool isImpersonating, out int hr) {
isImpersonating = true;
- SafeTokenHandle safeTokenHandle = GetCurrentThreadToken(desiredAccess, out hr);
+ SafeAccessTokenHandle safeTokenHandle = GetCurrentThreadToken(desiredAccess, out hr);
if (safeTokenHandle == null && hr == GetHRForWin32Error(Win32Native.ERROR_NO_TOKEN)) {
// No impersonation
isImpersonating = false;
@@ -818,9 +857,9 @@ namespace System.Security.Principal
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.Process)]
[ResourceConsumption(ResourceScope.Process)]
- private static SafeTokenHandle GetCurrentProcessToken (TokenAccessLevels desiredAccess, out int hr) {
+ private static SafeAccessTokenHandle GetCurrentProcessToken (TokenAccessLevels desiredAccess, out int hr) {
hr = 0;
- SafeTokenHandle safeTokenHandle;
+ SafeAccessTokenHandle safeTokenHandle;
if (!Win32Native.OpenProcessToken(Win32Native.GetCurrentProcess(), desiredAccess, out safeTokenHandle))
hr = GetHRForWin32Error(Marshal.GetLastWin32Error());
return safeTokenHandle;
@@ -829,8 +868,8 @@ namespace System.Security.Principal
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.Process)]
[ResourceConsumption(ResourceScope.Process)]
- internal static SafeTokenHandle GetCurrentThreadToken(TokenAccessLevels desiredAccess, out int hr) {
- SafeTokenHandle safeTokenHandle;
+ internal static SafeAccessTokenHandle GetCurrentThreadToken(TokenAccessLevels desiredAccess, out int hr) {
+ SafeAccessTokenHandle safeTokenHandle;
hr = Win32.OpenThreadToken(desiredAccess, WinSecurityContext.Both, out safeTokenHandle);
return safeTokenHandle;
}
@@ -860,7 +899,7 @@ namespace System.Security.Principal
[ResourceExposure(ResourceScope.Process)]
[ResourceConsumption(ResourceScope.Process)]
internal static ImpersonationQueryResult QueryImpersonation() {
- SafeTokenHandle safeTokenHandle = null;
+ SafeAccessTokenHandle safeTokenHandle = null;
int hr = Win32.OpenThreadToken(TokenAccessLevels.Query, WinSecurityContext.Thread, out safeTokenHandle);
if (safeTokenHandle != null) {
@@ -884,7 +923,7 @@ namespace System.Security.Principal
}
[System.Security.SecurityCritical] // auto-generated
- private static Win32Native.LUID GetLogonAuthId (SafeTokenHandle safeTokenHandle) {
+ private static Win32Native.LUID GetLogonAuthId (SafeAccessTokenHandle safeTokenHandle) {
using (SafeLocalAllocHandle pStatistics = GetTokenInformation(safeTokenHandle, TokenInformationClass.TokenStatistics)) {
Win32Native.TOKEN_STATISTICS statistics = pStatistics.Read<Win32Native.TOKEN_STATISTICS>(0);
return statistics.AuthenticationId;
@@ -892,7 +931,7 @@ namespace System.Security.Principal
}
[System.Security.SecurityCritical]
- private static SafeLocalAllocHandle GetTokenInformation (SafeTokenHandle tokenHandle, TokenInformationClass tokenInformationClass) {
+ private static SafeLocalAllocHandle GetTokenInformation (SafeAccessTokenHandle tokenHandle, TokenInformationClass tokenInformationClass) {
SafeLocalAllocHandle safeLocalAllocHandle = SafeLocalAllocHandle.InvalidHandle;
uint dwLength = (uint) Marshal.SizeOf(typeof(uint));
bool result = Win32Native.GetTokenInformation(tokenHandle,
@@ -933,7 +972,7 @@ namespace System.Security.Principal
#if FEATURE_CORRUPTING_EXCEPTIONS
[HandleProcessCorruptedStateExceptions] //
#endif // FEATURE_CORRUPTING_EXCEPTIONS
- private unsafe static SafeTokenHandle KerbS4ULogon (string upn, ref SafeTokenHandle safeTokenHandle)
+ private unsafe static SafeAccessTokenHandle KerbS4ULogon (string upn, ref SafeAccessTokenHandle safeTokenHandle)
{
// source name
byte[] sourceName = new byte[] { (byte)'C', (byte)'L', (byte)'R' }; // we set the source name to "CLR".
@@ -1119,7 +1158,7 @@ namespace System.Security.Principal
RuntimeHelpers.PrepareConstrainedRegions();
try
{
- if (!identity.m_safeTokenHandle.IsInvalid && identity.m_safeTokenHandle != SafeTokenHandle.InvalidHandle && identity.m_safeTokenHandle.DangerousGetHandle() != IntPtr.Zero)
+ if (!identity.m_safeTokenHandle.IsInvalid && identity.m_safeTokenHandle != SafeAccessTokenHandle.InvalidHandle && identity.m_safeTokenHandle.DangerousGetHandle() != IntPtr.Zero)
{
identity.m_safeTokenHandle.DangerousAddRef(ref mustDecrement);
diff --git a/mcs/class/referencesource/mscorlib/system/security/principal/windowsimpersonationcontext.cs b/mcs/class/referencesource/mscorlib/system/security/principal/windowsimpersonationcontext.cs
index 0343e877711..5315ae7ba39 100644
--- a/mcs/class/referencesource/mscorlib/system/security/principal/windowsimpersonationcontext.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/principal/windowsimpersonationcontext.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -28,7 +28,7 @@ namespace System.Security.Principal
[System.Runtime.InteropServices.ComVisible(true)]
public class WindowsImpersonationContext : IDisposable {
[System.Security.SecurityCritical] // auto-generated
- private SafeTokenHandle m_safeTokenHandle = SafeTokenHandle.InvalidHandle;
+ private SafeAccessTokenHandle m_safeTokenHandle = SafeAccessTokenHandle.InvalidHandle;
private WindowsIdentity m_wi;
private FrameSecurityDescriptor m_fsd;
@@ -38,7 +38,7 @@ namespace System.Security.Principal
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
- internal WindowsImpersonationContext (SafeTokenHandle safeTokenHandle, WindowsIdentity wi, bool isImpersonating, FrameSecurityDescriptor fsd) {
+ internal WindowsImpersonationContext (SafeAccessTokenHandle safeTokenHandle, WindowsIdentity wi, bool isImpersonating, FrameSecurityDescriptor fsd) {
if (safeTokenHandle.IsInvalid)
throw new ArgumentException(Environment.GetResourceString("Argument_InvalidImpersonationToken"));
Contract.EndContractBlock();
diff --git a/mcs/class/referencesource/mscorlib/system/security/principal/windowsprincipal.cs b/mcs/class/referencesource/mscorlib/system/security/principal/windowsprincipal.cs
index 12f44f8c588..6e60e7de374 100644
--- a/mcs/class/referencesource/mscorlib/system/security/principal/windowsprincipal.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/principal/windowsprincipal.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
@@ -232,13 +232,13 @@ namespace System.Security.Principal
Contract.EndContractBlock();
// special case the anonymous identity.
- if (m_identity.TokenHandle.IsInvalid)
+ if (m_identity.AccessToken.IsInvalid)
return false;
// CheckTokenMembership expects an impersonation token
- SafeTokenHandle token = SafeTokenHandle.InvalidHandle;
+ SafeAccessTokenHandle token = SafeAccessTokenHandle.InvalidHandle;
if (m_identity.ImpersonationLevel == TokenImpersonationLevel.None) {
- if (!Win32Native.DuplicateTokenEx(m_identity.TokenHandle,
+ if (!Win32Native.DuplicateTokenEx(m_identity.AccessToken,
(uint) TokenAccessLevels.Query,
IntPtr.Zero,
(uint) TokenImpersonationLevel.Identification,
@@ -249,7 +249,7 @@ namespace System.Security.Principal
bool isMember = false;
// CheckTokenMembership will check if the SID is both present and enabled in the access token.
- if (!Win32Native.CheckTokenMembership((m_identity.ImpersonationLevel != TokenImpersonationLevel.None ? m_identity.TokenHandle : token),
+ if (!Win32Native.CheckTokenMembership((m_identity.ImpersonationLevel != TokenImpersonationLevel.None ? m_identity.AccessToken : token),
sid.BinaryForm,
ref isMember))
throw new SecurityException(Win32Native.GetMessage(Marshal.GetLastWin32Error()));
diff --git a/mcs/class/referencesource/mscorlib/system/security/readonlypermissionset.cs b/mcs/class/referencesource/mscorlib/system/security/readonlypermissionset.cs
index 1b9e0ae98ed..8bb357870dd 100644
--- a/mcs/class/referencesource/mscorlib/system/security/readonlypermissionset.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/readonlypermissionset.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/security/safesecurityhandles.cs b/mcs/class/referencesource/mscorlib/system/security/safesecurityhandles.cs
index 474c5c85441..460d619947d 100644
--- a/mcs/class/referencesource/mscorlib/system/security/safesecurityhandles.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/safesecurityhandles.cs
@@ -1,4 +1,4 @@
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace Microsoft.Win32.SafeHandles {
using System;
using System.Runtime.CompilerServices;
@@ -7,6 +7,41 @@ namespace Microsoft.Win32.SafeHandles {
using System.Runtime.Versioning;
using System.Security;
+ // Introduce this handle to replace internal SafeTokenHandle,
+ // which is mainly used to hold Windows thread or process access token
+ [SecurityCritical]
+ public sealed class SafeAccessTokenHandle : SafeHandle
+ {
+ private SafeAccessTokenHandle()
+ : base(IntPtr.Zero, true)
+ { }
+
+ // 0 is an Invalid Handle
+ public SafeAccessTokenHandle(IntPtr handle)
+ : base(IntPtr.Zero, true)
+ {
+ SetHandle(handle);
+ }
+
+ public static SafeAccessTokenHandle InvalidHandle
+ {
+ [SecurityCritical]
+ get { return new SafeAccessTokenHandle(IntPtr.Zero); }
+ }
+
+ public override bool IsInvalid
+ {
+ [SecurityCritical]
+ get { return handle == IntPtr.Zero || handle == new IntPtr(-1); }
+ }
+
+ [SecurityCritical]
+ protected override bool ReleaseHandle()
+ {
+ return Win32Native.CloseHandle(handle);
+ }
+ }
+
#if !FEATURE_PAL
[System.Security.SecurityCritical] // auto-generated
internal sealed class SafeLsaLogonProcessHandle : SafeHandleZeroOrMinusOneIsInvalid {
@@ -130,27 +165,5 @@ namespace Microsoft.Win32.SafeHandles {
}
}
- [System.Security.SecurityCritical] // auto-generated
- internal sealed class SafeTokenHandle : SafeHandleZeroOrMinusOneIsInvalid {
- private SafeTokenHandle() : base (true) {}
-
- // 0 is an Invalid Handle
- internal SafeTokenHandle(IntPtr handle) : base (true) {
- SetHandle(handle);
- }
-
- internal static SafeTokenHandle InvalidHandle {
- get { return new SafeTokenHandle(IntPtr.Zero); }
- }
-
- [System.Security.SecurityCritical]
- [ResourceExposure(ResourceScope.None)]
- [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
- override protected bool ReleaseHandle()
- {
- return Win32Native.CloseHandle(handle);
- }
- }
-
#endif // !FEATURE_PAL
}
diff --git a/mcs/class/referencesource/mscorlib/system/security/securestring.cs b/mcs/class/referencesource/mscorlib/system/security/securestring.cs
index 6d06b7ce3eb..ca2e8aea6c1 100644
--- a/mcs/class/referencesource/mscorlib/system/security/securestring.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/securestring.cs
@@ -1,4 +1,4 @@
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace System.Security {
using System.Security.Cryptography;
using System.Runtime.InteropServices;
@@ -14,7 +14,6 @@ namespace System.Security {
using Microsoft.Win32.SafeHandles;
using System.Diagnostics.Contracts;
-#if FEATURE_CRYPTO || FEATURE_X509_SECURESTRINGS || FEATURE_CORESYSTEM
public sealed class SecureString: IDisposable {
[System.Security.SecurityCritical] // auto-generated
private SafeBSTRHandle m_buffer;
@@ -544,12 +543,7 @@ namespace System.Security {
ptr = Marshal.AllocHGlobal((length + 1) * 2);
}
else {
-#if FEATURE_COMINTEROP
ptr = Marshal.AllocCoTaskMem((length + 1) * 2);
-#else // FEATURE_COMINTEROP
- Contract.Assert(false, "allocateFromHeap must never be set to false when FEATURE_COMINTEROP isn't enabled!");
- throw new NotSupportedException();
-#endif // FEATURE_COMINTEROP
}
}
@@ -579,12 +573,7 @@ namespace System.Security {
Marshal.FreeHGlobal(ptr);
}
else {
-#if FEATURE_COMINTEROP
Marshal.FreeCoTaskMem(ptr);
-#else // FEATURE_COMINTEROP
- Contract.Assert(false, "allocateFromHeap must never be set to false when FEATURE_COMINTEROP isn't enabled!");
- throw new NotSupportedException();
-#endif // FEATURE_COMINTEROP
}
}
}
@@ -622,13 +611,8 @@ namespace System.Security {
ptr = Marshal.AllocHGlobal(byteCount);
}
else {
-#if FEATURE_COMINTEROP
ptr = Marshal.AllocCoTaskMem(byteCount);
-#else // FEATURE_COMINTEROP
- Contract.Assert(false, "allocateFromHeap must never be set to false when FEATURE_COMINTEROP isn't enabled!");
- throw new NotSupportedException();
-#endif // FEATURE_COMINTEROP
- }
+ }
}
if (ptr == IntPtr.Zero) {
@@ -652,12 +636,7 @@ namespace System.Security {
Marshal.FreeHGlobal(ptr);
}
else {
-#if FEATURE_COMINTEROP
Marshal.FreeCoTaskMem(ptr);
-#else // FEATURE_COMINTEROP
- Contract.Assert(false, "allocateFromHeap must never be set to false when FEATURE_COMINTEROP isn't enabled!");
- throw new NotSupportedException();
-#endif // FEATURE_COMINTEROP
}
}
}
@@ -696,7 +675,6 @@ namespace System.Security {
}
}
}
-#endif // FEATURE_CRYPTO || FEATURE_X509_SECURESTRINGS || FEATURE_CORESYSTEM
[System.Security.SecurityCritical] // auto-generated
[SuppressUnmanagedCodeSecurityAttribute()]
diff --git a/mcs/class/referencesource/mscorlib/system/security/securitycontext.cs b/mcs/class/referencesource/mscorlib/system/security/securitycontext.cs
index fa2785a6d32..2f3268e234c 100644
--- a/mcs/class/referencesource/mscorlib/system/security/securitycontext.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/securitycontext.cs
@@ -6,7 +6,7 @@
**
** Class: SecurityContext
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Capture security context for a thread
@@ -32,7 +32,7 @@ namespace System.Security
using System.Runtime.Versioning;
using System.Diagnostics.Contracts;
- // This enum must be kept in [....] with the SecurityContextSource enum in the VM
+ // This enum must be kept in sync with the SecurityContextSource enum in the VM
public enum SecurityContextSource
{
CurrentAppDomain = 0,
@@ -519,7 +519,7 @@ namespace System.Security
#if !FEATURE_PAL && FEATURE_IMPERSONATION
if (WindowsIdentity != null)
- sc._windowsIdentity = new WindowsIdentity(WindowsIdentity.TokenHandle);
+ sc._windowsIdentity = new WindowsIdentity(WindowsIdentity.AccessToken);
#endif //!FEATURE_PAL && FEATURE_IMPERSONATION
if (_compressedStack != null)
@@ -539,7 +539,7 @@ namespace System.Security
#if !FEATURE_PAL && FEATURE_IMPERSONATION
if (this.WindowsIdentity != null)
- sc._windowsIdentity = new WindowsIdentity(this.WindowsIdentity.TokenHandle);
+ sc._windowsIdentity = new WindowsIdentity(this.WindowsIdentity.AccessToken);
#endif //!FEATURE_PAL && FEATURE_IMPERSONATION
//
@@ -592,7 +592,7 @@ namespace System.Security
{
WindowsIdentity currentIdentity = GetCurrentWI(currThreadEC);
if (currentIdentity != null)
- sc._windowsIdentity = new WindowsIdentity(currentIdentity.TokenHandle);
+ sc._windowsIdentity = new WindowsIdentity(currentIdentity.AccessToken);
}
else
{
@@ -685,7 +685,7 @@ namespace System.Security
if (targetWI != null)
{
- SafeTokenHandle tokenHandle = targetWI.TokenHandle;
+ SafeAccessTokenHandle tokenHandle = targetWI.AccessToken;
if (tokenHandle != null && !tokenHandle.IsInvalid)
{
hr = Win32.ImpersonateLoggedOnUser(tokenHandle);
diff --git a/mcs/class/referencesource/mscorlib/system/security/securitydocument.cs b/mcs/class/referencesource/mscorlib/system/security/securitydocument.cs
index fffcf0cbfdb..f0c95e2abab 100644
--- a/mcs/class/referencesource/mscorlib/system/security/securitydocument.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/securitydocument.cs
@@ -7,7 +7,7 @@
//
// CLASS: SecurityDocument.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// PURPOSE: Represent an XML document
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/securityelement.cs b/mcs/class/referencesource/mscorlib/system/security/securityelement.cs
index 8715f42ce95..e238ae5d77b 100644
--- a/mcs/class/referencesource/mscorlib/system/security/securityelement.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/securityelement.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security
diff --git a/mcs/class/referencesource/mscorlib/system/security/securityexception.cs b/mcs/class/referencesource/mscorlib/system/security/securityexception.cs
index 4b3a571a88d..d5fe3578526 100644
--- a/mcs/class/referencesource/mscorlib/system/security/securityexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/securityexception.cs
@@ -7,7 +7,7 @@
**
** Class: SecurityException
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** Purpose: Exception class for security
diff --git a/mcs/class/referencesource/mscorlib/system/security/securitymanager.cs b/mcs/class/referencesource/mscorlib/system/security/securitymanager.cs
index 1a60f9bc4d2..777eb6ebfb4 100644
--- a/mcs/class/referencesource/mscorlib/system/security/securitymanager.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/securitymanager.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/securityruntime.cs b/mcs/class/referencesource/mscorlib/system/security/securityruntime.cs
index 1c874c24365..7989ee4dbd5 100644
--- a/mcs/class/referencesource/mscorlib/system/security/securityruntime.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/securityruntime.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security {
diff --git a/mcs/class/referencesource/mscorlib/system/security/securitystate.cs b/mcs/class/referencesource/mscorlib/system/security/securitystate.cs
index 126860c0008..0670730089d 100644
--- a/mcs/class/referencesource/mscorlib/system/security/securitystate.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/securitystate.cs
@@ -2,7 +2,7 @@
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Security;
@@ -22,7 +22,13 @@ namespace System.Security
public bool IsStateAvailable()
{
AppDomainManager domainManager = AppDomainManager.CurrentAppDomainManager;
+#if FEATURE_CORECLR
+ // CheckSecuritySettings only when appdomainManager is present. So if there is no
+ // appDomain Manager return true as by default coreclr runs in fulltrust.
+ return domainManager != null ? domainManager.CheckSecuritySettings(this) : true;
+#else
return domainManager != null ? domainManager.CheckSecuritySettings(this) : false;
+#endif
}
// override this function and throw the appropriate
public abstract void EnsureState();
diff --git a/mcs/class/referencesource/mscorlib/system/security/securityzone.cs b/mcs/class/referencesource/mscorlib/system/security/securityzone.cs
index 8ed882510f6..8ed3f12767e 100644
--- a/mcs/class/referencesource/mscorlib/system/security/securityzone.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/securityzone.cs
@@ -5,7 +5,7 @@
// ==--==
// SecurityZone.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ShawnFa</OWNER>
//
// Enumeration of the zones code can come from
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/util/config.cs b/mcs/class/referencesource/mscorlib/system/security/util/config.cs
index 135979dce40..3ddf27c3cfc 100644
--- a/mcs/class/referencesource/mscorlib/system/security/util/config.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/util/config.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/util/hex.cs b/mcs/class/referencesource/mscorlib/system/security/util/hex.cs
index 9a7d22d4d5b..c072698526b 100644
--- a/mcs/class/referencesource/mscorlib/system/security/util/hex.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/util/hex.cs
@@ -6,7 +6,7 @@
/*
* Hex.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
*
* Operations to convert to and from Hex
*
diff --git a/mcs/class/referencesource/mscorlib/system/security/util/parser.cs b/mcs/class/referencesource/mscorlib/system/security/util/parser.cs
index 10b7aa70259..ef53c555fe4 100644
--- a/mcs/class/referencesource/mscorlib/system/security/util/parser.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/util/parser.cs
@@ -7,7 +7,7 @@
**
** CLASS: Parser
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** PURPOSE: Parse "Elementary XML", that is, XML without
diff --git a/mcs/class/referencesource/mscorlib/system/security/util/sitestring.cs b/mcs/class/referencesource/mscorlib/system/security/util/sitestring.cs
index 7e705d7cbd4..f78b85ba71b 100644
--- a/mcs/class/referencesource/mscorlib/system/security/util/sitestring.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/util/sitestring.cs
@@ -5,7 +5,7 @@
// ==--==
// SiteString
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Util {
diff --git a/mcs/class/referencesource/mscorlib/system/security/util/stringexpressionset.cs b/mcs/class/referencesource/mscorlib/system/security/util/stringexpressionset.cs
index 0d60a87d38b..ce34f9d68e9 100644
--- a/mcs/class/referencesource/mscorlib/system/security/util/stringexpressionset.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/util/stringexpressionset.cs
@@ -5,7 +5,7 @@
// ==--==
// StringExpressionSet
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Util {
@@ -44,13 +44,9 @@ namespace System.Security.Util {
protected static readonly char[] m_separators = { ';' };
protected static readonly char[] m_trimChars = { ' ' };
-#if !PLATFORM_UNIX
+
protected static readonly char m_directorySeparator = '\\';
protected static readonly char m_alternateDirectorySeparator = '/';
-#else
- protected static readonly char m_directorySeparator = '/';
- protected static readonly char m_alternateDirectorySeparator = '\\';
-#endif // !PLATFORM_UNIX
public StringExpressionSet()
: this( true, null, false )
@@ -653,14 +649,10 @@ namespace System.Security.Util {
return false;
}
-#if !PLATFORM_UNIX
if (shortString.Length == 3 &&
shortString.EndsWith( ":\\", StringComparison.Ordinal ) &&
((shortString[0] >= 'A' && shortString[0] <= 'Z') ||
(shortString[0] >= 'a' && shortString[0] <= 'z')))
-#else
- if (shortString.Length == 1 && shortString[0]== m_directorySeparator)
-#endif // !PLATFORM_UNIX
return true;
return longString[shortString.Length] == m_directorySeparator;
@@ -756,8 +748,6 @@ namespace System.Security.Util {
[ResourceConsumption(ResourceScope.Machine)]
internal static String CanonicalizePath( String path, bool needFullPath )
{
-
-#if !PLATFORM_UNIX
if (path.IndexOf( '~' ) != -1)
{
string longPath = null;
@@ -767,7 +757,6 @@ namespace System.Security.Util {
if (path.IndexOf( ':', 2 ) != -1)
throw new NotSupportedException( Environment.GetResourceString( "Argument_PathFormatNotSupported" ) );
-#endif // !PLATFORM_UNIX
if (needFullPath)
{
diff --git a/mcs/class/referencesource/mscorlib/system/security/util/tokenbasedset.cs b/mcs/class/referencesource/mscorlib/system/security/util/tokenbasedset.cs
index 6f7fe1de29d..cbbb43c6398 100644
--- a/mcs/class/referencesource/mscorlib/system/security/util/tokenbasedset.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/util/tokenbasedset.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
//
diff --git a/mcs/class/referencesource/mscorlib/system/security/util/tokenbasedsetenumerator.cs b/mcs/class/referencesource/mscorlib/system/security/util/tokenbasedsetenumerator.cs
index 4c18c5bcee5..a9dd114ddb9 100644
--- a/mcs/class/referencesource/mscorlib/system/security/util/tokenbasedsetenumerator.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/util/tokenbasedsetenumerator.cs
@@ -5,7 +5,7 @@
// ==--==
// TokenBasedSetEnumerator.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security.Util
diff --git a/mcs/class/referencesource/mscorlib/system/security/util/tokenizer.cs b/mcs/class/referencesource/mscorlib/system/security/util/tokenizer.cs
index 3a9ab669422..f942b027ca3 100644
--- a/mcs/class/referencesource/mscorlib/system/security/util/tokenizer.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/util/tokenizer.cs
@@ -7,7 +7,7 @@
**
** CLASS: Tokenizer.cs
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
**
** PURPOSE: Tokenize "Elementary XML", that is, XML without
diff --git a/mcs/class/referencesource/mscorlib/system/security/util/urlstring.cs b/mcs/class/referencesource/mscorlib/system/security/util/urlstring.cs
index f879223682c..c97e70efcde 100644
--- a/mcs/class/referencesource/mscorlib/system/security/util/urlstring.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/util/urlstring.cs
@@ -5,7 +5,7 @@
// ==--==
// URLString
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Implementation of membership condition for zones
//
@@ -32,9 +32,7 @@ namespace System.Security.Util {
private String m_userpass;
private SiteString m_siteString;
private int m_port;
-#if !PLATFORM_UNIX
private LocalSiteString m_localSite;
-#endif // !PLATFORM_UNIX
private DirectoryString m_directory;
private const String m_defaultProtocol = "file";
@@ -92,9 +90,7 @@ namespace System.Security.Util {
m_userpass = "";
m_siteString = new SiteString();
m_port = -1;
-#if !PLATFORM_UNIX
m_localSite = null;
-#endif // !PLATFORM_UNIX
m_directory = new DirectoryString();
m_parseDeferred = false;
}
@@ -237,14 +233,9 @@ namespace System.Security.Util {
}
else if (url[index+1] != '\\')
{
-#if !PLATFORM_UNIX
if (url.Length > index + 2 &&
url[index+1] == '/' &&
url[index+2] == '/')
-#else
- if (url.Length > index + 1 &&
- url[index+1] == '/' ) // UNIX style "file:/home/me" is allowed, so account for that
-#endif // !PLATFORM_UNIX
{
m_protocol = url.Substring( 0, index );
@@ -266,23 +257,7 @@ namespace System.Security.Util {
throw new ArgumentException( Environment.GetResourceString( "Argument_InvalidUrl" ) );
}
}
-#if !PLATFORM_UNIX
temp = url.Substring( index + 3 );
-#else
- // In UNIX, we don't know how many characters we'll have to skip past.
- // Skip past \, /, and :
- //
- for ( int j=index ; j<url.Length ; j++ )
- {
- if ( url[j] != '\\' && url[j] != '/' && url[j] != ':' )
- {
- index = j;
- break;
- }
- }
-
- temp = url.Substring( index );
-#endif // !PLATFORM_UNIX
}
else
{
@@ -472,9 +447,7 @@ namespace System.Security.Util {
// Do any misc massaging of data in the URL
private String PreProcessURL(String url, bool isFileURL)
{
-
-#if !PLATFORM_UNIX
- if (isFileURL) {
+ if (isFileURL) {
// Remove when the Path class supports "\\?\"
url = PreProcessForExtendedPathRemoval(url, true, ref m_isUncShare);
}
@@ -482,34 +455,12 @@ namespace System.Security.Util {
url = url.Replace('\\', '/');
}
return url;
-#else
- // Remove superfluous '/'
- // For UNIX, the file path would look something like:
- // file:///home/johndoe/here
- // file:/home/johndoe/here
- // file:../johndoe/here
- // file:~/johndoe/here
- String temp = url;
- int nbSlashes = 0;
- while(nbSlashes<temp.Length && '/'==temp[nbSlashes])
- nbSlashes++;
-
- // if we get a path like file:///directory/name we need to convert
- // this to /directory/name.
- if(nbSlashes > 2)
- temp = temp.Substring(nbSlashes-1, temp.Length - (nbSlashes-1));
- else if (2 == nbSlashes) /* it's a relative path */
- temp = temp.Substring(nbSlashes, temp.Length - nbSlashes);
- return temp;
-#endif // !PLATFORM_UNIX
-
}
private void ParseFileURL(String url)
{
-
String temp = url;
-#if !PLATFORM_UNIX
+
int index = temp.IndexOf( '/');
if (index != -1 &&
@@ -604,9 +555,6 @@ namespace System.Security.Util {
m_directory = new DirectoryString( directoryString, true);
}
}
-#else // !PLATFORM_UNIX
- m_directory = new DirectoryString( temp, true);
-#endif // !PLATFORM_UNIX
m_siteString = null;
return;
@@ -619,15 +567,12 @@ namespace System.Security.Util {
if (index == -1)
{
-#if !PLATFORM_UNIX
m_localSite = null; // for drive letter
-#endif // !PLATFORM_UNIX
m_siteString = new SiteString( temp );
m_directory = new DirectoryString();
}
else
{
-#if !PLATFORM_UNIX
String site = temp.Substring( 0, index );
m_localSite = null;
m_siteString = new SiteString( site );
@@ -642,12 +587,6 @@ namespace System.Security.Util {
{
m_directory = new DirectoryString( directoryString, false );
}
-#else
- String directoryString = temp.Substring( index + 1 );
- String site = temp.Substring( 0, index );
- m_directory = new DirectoryString( directoryString, false );
- m_siteString = new SiteString( site );
-#endif //!PLATFORM_UNIX
}
return;
}
@@ -736,11 +675,7 @@ namespace System.Security.Util {
}
else
{
-#if !PLATFORM_UNIX
return m_localSite.ToString();
-#else
- return( "" );
-#endif // !PLATFORM_UNIX
}
}
}
@@ -791,22 +726,15 @@ namespace System.Security.Util {
if (String.Equals(m_protocol, "file", StringComparison.OrdinalIgnoreCase) && !m_isUncShare)
{
-#if !PLATFORM_UNIX
string host = m_localSite != null ? m_localSite.ToString() : null;
// If the host name ends with the * character, treat this as an absolute URL since the *
// could represent the rest of the full path.
if (host.EndsWith('*'))
return false;
-#endif // !PLATFORM_UNIX
string directory = m_directory != null ? m_directory.ToString() : null;
-#if !PLATFORM_UNIX
return host == null || host.Length < 2 || !host.EndsWith(':') ||
String.IsNullOrEmpty(directory);
-#else
- return String.IsNullOrEmpty(directory);
-#endif // !PLATFORM_UNIX
-
}
// Since this is not a local URL, it cannot be relative
@@ -818,7 +746,6 @@ namespace System.Security.Util {
{
DoDeferredParse();
-#if !PLATFORM_UNIX
if (String.Compare( m_protocol, "file", StringComparison.OrdinalIgnoreCase) != 0)
return null;
@@ -844,14 +771,6 @@ namespace System.Security.Util {
directory += "\\" + intermediateDirectory;
return directory;
-#else
- // In Unix, directory contains the full pathname
- // (this is what we get in Win32)
- if (String.Compare( m_protocol, "file", StringComparison.OrdinalIgnoreCase ) != 0)
- return null;
-
- return this.Directory;
-#endif // !PLATFORM_UNIX
}
@@ -859,7 +778,6 @@ namespace System.Security.Util {
{
DoDeferredParse();
-#if !PLATFORM_UNIX
if (String.Compare( m_protocol, "file", StringComparison.OrdinalIgnoreCase ) != 0)
return null;
@@ -900,28 +818,6 @@ namespace System.Security.Util {
}
return directory;
-#else
- if (String.Compare( m_protocol, "file", StringComparison.OrdinalIgnoreCase) != 0)
- return null;
-
- String directory = this.Directory.ToString();
- int slashIndex = 0;
- for (int i = directory.Length; i > 0; i--)
- {
- if (directory[i-1] == '/')
- {
- slashIndex = i;
- break;
- }
- }
-
- if (slashIndex > 0)
- {
- directory = directory.Substring( 0, slashIndex );
- }
-
- return directory;
-#endif // !PLATFORM_UNIX
}
public override SiteString Copy()
@@ -954,7 +850,6 @@ namespace System.Security.Util {
if (String.Compare( normalUrl1.m_protocol, normalUrl2.m_protocol, StringComparison.OrdinalIgnoreCase) == 0 &&
normalUrl1.m_directory.IsSubsetOf( normalUrl2.m_directory ))
{
-#if !PLATFORM_UNIX
if (normalUrl1.m_localSite != null)
{
// We do a little extra processing in here for local files since we allow
@@ -963,7 +858,6 @@ namespace System.Security.Util {
return normalUrl1.m_localSite.IsSubsetOf( normalUrl2.m_localSite );
}
else
-#endif // !PLATFORM_UNIX
{
if (normalUrl1.m_port != normalUrl2.m_port)
return false;
@@ -1002,7 +896,6 @@ namespace System.Security.Util {
if (this.m_protocol != null)
accumulator = info.GetCaseInsensitiveHashCode( this.m_protocol );
-#if !PLATFORM_UNIX
if (this.m_localSite != null)
{
accumulator = accumulator ^ this.m_localSite.GetHashCode();
@@ -1012,11 +905,6 @@ namespace System.Security.Util {
accumulator = accumulator ^ this.m_siteString.GetHashCode();
}
accumulator = accumulator ^ this.m_directory.GetHashCode();
-#else
- accumulator = accumulator ^ info.GetCaseInsensitiveHashCode(this.m_urlOriginal);
-#endif // !PLATFORM_UNIX
-
-
return accumulator;
}
@@ -1051,14 +939,9 @@ namespace System.Security.Util {
if (String.Compare( normalUrl1.m_protocol, "file", StringComparison.OrdinalIgnoreCase) == 0)
{
-#if !PLATFORM_UNIX
if (!normalUrl1.m_localSite.IsSubsetOf( normalUrl2.m_localSite ) ||
!normalUrl2.m_localSite.IsSubsetOf( normalUrl1.m_localSite ))
return false;
-#else
- return url1.IsSubsetOf( url2 ) &&
- url2.IsSubsetOf( url1 );
-#endif // !PLATFORM_UNIX
}
else
{
@@ -1087,11 +970,7 @@ namespace System.Security.Util {
if (String.Compare( m_protocol, "file", StringComparison.OrdinalIgnoreCase) == 0)
{
-#if !PLATFORM_UNIX
builtUrl = builtUrl.AppendFormat("FILE:///{0}/{1}", m_localSite.ToString(), m_directory.ToString());
-#else
- builtUrl = builtUrl.AppendFormat("FILE:///{0}", m_directory.ToString());
-#endif // !PLATFORM_UNIX
}
else
{
@@ -1105,8 +984,7 @@ namespace System.Security.Util {
return StringBuilderCache.GetStringAndRelease(builtUrl).ToUpper(CultureInfo.InvariantCulture);
}
-
-#if !PLATFORM_UNIX
+
[System.Security.SecuritySafeCritical] // auto-generated
[ResourceExposure(ResourceScope.Machine)]
[ResourceConsumption(ResourceScope.Machine)]
@@ -1164,14 +1042,6 @@ namespace System.Security.Util {
[DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
[SuppressUnmanagedCodeSecurity]
private static extern void GetDeviceName( String driveLetter, StringHandleOnStack retDeviceName );
-
-#else
- internal URLString SpecialNormalizeUrl()
- {
- return this;
- }
-#endif // !PLATFORM_UNIX
-
}
@@ -1262,7 +1132,6 @@ namespace System.Security.Util {
}
}
-#if !PLATFORM_UNIX
[Serializable]
internal class LocalSiteString : SiteString
{
@@ -1345,5 +1214,4 @@ namespace System.Security.Util {
}
}
}
-#endif // !PLATFORM_UNIX
}
diff --git a/mcs/class/referencesource/mscorlib/system/security/util/xmlutil.cs b/mcs/class/referencesource/mscorlib/system/security/util/xmlutil.cs
index 936eaff9e40..ad0a9cb25a4 100644
--- a/mcs/class/referencesource/mscorlib/system/security/util/xmlutil.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/util/xmlutil.cs
@@ -7,7 +7,7 @@
**
** CLASS: XMLUtil
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** PURPOSE: Helpers for XML input & output
**
diff --git a/mcs/class/referencesource/mscorlib/system/security/verificationexception.cs b/mcs/class/referencesource/mscorlib/system/security/verificationexception.cs
index 2e799519b29..90fc2eb72d6 100644
--- a/mcs/class/referencesource/mscorlib/system/security/verificationexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/verificationexception.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security {
diff --git a/mcs/class/referencesource/mscorlib/system/security/xmlsyntaxexception.cs b/mcs/class/referencesource/mscorlib/system/security/xmlsyntaxexception.cs
index 0ec69646c8a..2c64008ef87 100644
--- a/mcs/class/referencesource/mscorlib/system/security/xmlsyntaxexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/security/xmlsyntaxexception.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
namespace System.Security {
diff --git a/mcs/class/referencesource/mscorlib/system/sharedstatics.cs b/mcs/class/referencesource/mscorlib/system/sharedstatics.cs
index 79afcfbb3f6..87f99a67da3 100644
--- a/mcs/class/referencesource/mscorlib/system/sharedstatics.cs
+++ b/mcs/class/referencesource/mscorlib/system/sharedstatics.cs
@@ -146,32 +146,5 @@ namespace System {
return (ulong) Volatile.Read(ref _sharedStatics._memFailPointReservedMemory);
}
}
-
-#if FEATURE_CORECLR
- // Silverlight2 implementation restriction (all hosts must specify the same PLATFORM_ASSEMBLIES list.)
- internal static bool ConflictsWithPriorPlatformList(String platformListString)
- {
- if (platformListString == null)
- {
- platformListString = ""; // null is valid but collides with _platformListString sentinel so convert to semantically equivalent "".
- }
- String prior = Interlocked.CompareExchange<String>(ref _sharedStatics._platformListString, platformListString, null);
-
- if (prior == null)
- {
- return false;
- }
- if (prior == platformListString)
- {
- return false;
- }
-
- return true;
- }
-
- private String _platformListString;
-
-#endif //FEATURE_CORECLR
-
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/single.cs b/mcs/class/referencesource/mscorlib/system/single.cs
index 5818ac43379..5e2cf73befd 100644
--- a/mcs/class/referencesource/mscorlib/system/single.cs
+++ b/mcs/class/referencesource/mscorlib/system/single.cs
@@ -49,18 +49,21 @@ namespace System {
[Pure]
[System.Security.SecuritySafeCritical] // auto-generated
+ [System.Runtime.Versioning.NonVersionable]
public unsafe static bool IsInfinity(float f) {
return (*(int*)(&f) & 0x7FFFFFFF) == 0x7F800000;
}
[Pure]
[System.Security.SecuritySafeCritical] // auto-generated
+ [System.Runtime.Versioning.NonVersionable]
public unsafe static bool IsPositiveInfinity(float f) {
return *(int*)(&f) == 0x7F800000;
}
[Pure]
[System.Security.SecuritySafeCritical] // auto-generated
+ [System.Runtime.Versioning.NonVersionable]
public unsafe static bool IsNegativeInfinity(float f) {
return *(int*)(&f) == unchecked((int)0xFF800000);
}
@@ -68,6 +71,7 @@ namespace System {
[Pure]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[System.Security.SecuritySafeCritical]
+ [System.Runtime.Versioning.NonVersionable]
public unsafe static bool IsNaN(float f) {
return (*(int*)(&f) & 0x7FFFFFFF) > 0x7F800000;
}
@@ -110,26 +114,32 @@ namespace System {
return 1;
}
+ [System.Runtime.Versioning.NonVersionable]
public static bool operator ==(Single left, Single right) {
return left == right;
}
+ [System.Runtime.Versioning.NonVersionable]
public static bool operator !=(Single left, Single right) {
return left != right;
}
+ [System.Runtime.Versioning.NonVersionable]
public static bool operator <(Single left, Single right) {
return left < right;
}
+ [System.Runtime.Versioning.NonVersionable]
public static bool operator >(Single left, Single right) {
return left > right;
}
+ [System.Runtime.Versioning.NonVersionable]
public static bool operator <=(Single left, Single right) {
return left <= right;
}
+ [System.Runtime.Versioning.NonVersionable]
public static bool operator >=(Single left, Single right) {
return left >= right;
}
diff --git a/mcs/class/referencesource/mscorlib/system/string.cs b/mcs/class/referencesource/mscorlib/system/string.cs
index b8df883ebe6..3172d7532be 100644
--- a/mcs/class/referencesource/mscorlib/system/string.cs
+++ b/mcs/class/referencesource/mscorlib/system/string.cs
@@ -57,14 +57,11 @@ namespace System {
//
[NonSerialized]private int m_stringLength;
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[NonSerialized]private char m_firstChar;
//private static readonly char FmtMsgMarkerChar='%';
//private static readonly char FmtMsgFmtCodeChar='!';
- //These are defined in Com99/src/vm/COMStringCommon.h and must be kept in [....].
+ //These are defined in Com99/src/vm/COMStringCommon.h and must be kept in sync.
private const int TrimHead = 0;
private const int TrimTail = 1;
private const int TrimBoth = 2;
@@ -528,9 +525,6 @@ namespace System {
// Determines whether two strings match.
[Pure]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public bool Equals(String value) {
if (this == null) //this is necessary to guard against reverse-pinvokes and
throw new NullReferenceException(); //other callers who do not use the callvirt instruction
@@ -599,9 +593,6 @@ namespace System {
// Determines whether two Strings match.
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool Equals(String a, String b) {
if ((Object)a==(Object)b) {
return true;
@@ -669,16 +660,10 @@ namespace System {
}
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool operator == (String a, String b) {
return String.Equals(a, b);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool operator != (String a, String b) {
return !String.Equals(a, b);
}
@@ -736,7 +721,7 @@ namespace System {
// Returns the entire string as an array of characters.
[System.Security.SecuritySafeCritical] // auto-generated
unsafe public char[] ToCharArray() {
- // <STRIP> huge performance improvement for short strings by doing this </STRIP>
+ // <
int length = Length;
char[] chars = new char[length];
if (length > 0)
@@ -773,9 +758,6 @@ namespace System {
}
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool IsNullOrEmpty(String value) {
return (value == null || value.Length == 0);
}
@@ -792,11 +774,12 @@ namespace System {
}
#if FEATURE_RANDOMIZED_STRING_HASHING
+ // Do not remove!
+ // This method is called by reflection in System.Xml
[System.Security.SecurityCritical]
- [System.Security.SuppressUnmanagedCodeSecurity]
[ResourceExposure(ResourceScope.None)]
- [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
- internal static extern int InternalMarvin32HashString(string s, int sLen, long additionalEntropy);
+ [MethodImplAttribute(MethodImplOptions.InternalCall)]
+ internal static extern int InternalMarvin32HashString(string s, int strLen, long additionalEntropy);
[System.Security.SecuritySafeCritical]
[ResourceExposure(ResourceScope.None)]
@@ -1245,9 +1228,6 @@ namespace System {
// Returns a substring of this string.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public String Substring (int startIndex) {
return this.Substring (startIndex, Length-startIndex);
}
@@ -1304,9 +1284,6 @@ namespace System {
// Removes a string of characters from the ends of this string.
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public String Trim(params char[] trimChars) {
if (null==trimChars || trimChars.Length == 0) {
return TrimHelper(TrimBoth);
@@ -1315,9 +1292,6 @@ namespace System {
}
// Removes a string of characters from the beginning of this string.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public String TrimStart(params char[] trimChars) {
if (null==trimChars || trimChars.Length == 0) {
return TrimHelper(TrimHead);
@@ -1327,9 +1301,6 @@ namespace System {
// Removes a string of characters from the end of this string.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public String TrimEnd(params char[] trimChars) {
if (null==trimChars || trimChars.Length == 0) {
return TrimHelper(TrimTail);
@@ -1612,29 +1583,32 @@ namespace System {
{
if (count > 0) {
String result = FastAllocateString(count);
- unsafe {
- fixed (char *dest = result) {
- char *dmem = dest;
- while (((uint)dmem & 3) != 0 && count > 0) {
- *dmem++ = c;
- count--;
- }
- uint cc = (uint)((c << 16) | c);
- if (count >= 4) {
- count -= 4;
- do{
- ((uint *)dmem)[0] = cc;
- ((uint *)dmem)[1] = cc;
- dmem += 4;
+ if (c != 0)
+ {
+ unsafe {
+ fixed (char *dest = result) {
+ char *dmem = dest;
+ while (((uint)dmem & 3) != 0 && count > 0) {
+ *dmem++ = c;
+ count--;
+ }
+ uint cc = (uint)((c << 16) | c);
+ if (count >= 4) {
count -= 4;
- } while (count >= 0);
- }
- if ((count & 2) != 0) {
- ((uint *)dmem)[0] = cc;
- dmem += 2;
+ do{
+ ((uint *)dmem)[0] = cc;
+ ((uint *)dmem)[1] = cc;
+ dmem += 4;
+ count -= 4;
+ } while (count >= 0);
+ }
+ if ((count & 2) != 0) {
+ ((uint *)dmem)[0] = cc;
+ dmem += 2;
+ }
+ if ((count & 1) != 0)
+ dmem[0] = c;
}
- if ((count & 1) != 0)
- dmem[0] = c;
}
}
return result;
@@ -1646,9 +1620,6 @@ namespace System {
}
[System.Security.SecurityCritical] // auto-generated
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private static unsafe int wcslen(char *ptr)
{
char *end = ptr;
@@ -1710,9 +1681,6 @@ namespace System {
}
[System.Security.SecurityCritical] // auto-generated
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
private unsafe String CtorCharPtrStartLength(char *ptr, int startIndex, int length)
{
if (length < 0) {
@@ -1762,9 +1730,6 @@ namespace System {
// either a negative integer, 0, or a positive integer; respectively.
//
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int Compare(String strA, String strB) {
return CultureInfo.CurrentCulture.CompareInfo.Compare(strA, strB, CompareOptions.None);
}
@@ -1776,9 +1741,6 @@ namespace System {
// The case-sensitive option is set by ignoreCase
//
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int Compare(String strA, String strB, bool ignoreCase)
{
if (ignoreCase) {
@@ -1855,9 +1817,6 @@ namespace System {
// negative integer, 0, or a positive integer is returned; respectively.
//
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int Compare(String strA, String strB, CultureInfo culture, CompareOptions options) {
if (culture==null) {
throw new ArgumentNullException("culture");
@@ -1876,9 +1835,6 @@ namespace System {
// by culture
//
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int Compare(String strA, String strB, bool ignoreCase, CultureInfo culture) {
if (culture == null) {
throw new ArgumentNullException("culture");
@@ -2101,9 +2057,6 @@ namespace System {
// greater than all non-String objects. Note that this means sorted
// arrays would contain nulls, other objects, then Strings in that order.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[Pure]
public int CompareTo(Object value) {
if (value == null) {
@@ -2119,9 +2072,6 @@ namespace System {
// Determines the sorting relation of StrB to the current instance.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[Pure]
public int CompareTo(String strB) {
if (strB==null) {
@@ -2134,9 +2084,6 @@ namespace System {
// Compares strA and strB using an ordinal (code-point) comparison.
//
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int CompareOrdinal(String strA, String strB) {
if ((Object)strA == (Object)strB) {
return 0;
@@ -2166,9 +2113,6 @@ namespace System {
//
[Pure]
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int CompareOrdinal(String strA, int indexA, String strB, int indexB, int length) {
if (strA == null || strB == null) {
if ((Object)strA==(Object)strB) { //they're both null;
@@ -2183,9 +2127,6 @@ namespace System {
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public bool Contains( string value ) {
return ( IndexOf(value, StringComparison.Ordinal) >=0 );
}
@@ -2197,7 +2138,7 @@ namespace System {
//
[Pure]
public Boolean EndsWith(String value) {
- return EndsWith(value, (LegacyMode ? StringComparison.Ordinal : StringComparison.CurrentCulture));
+ return EndsWith(value, StringComparison.CurrentCulture);
}
[Pure]
@@ -2258,7 +2199,7 @@ namespace System {
CultureInfo referenceCulture;
if (culture == null)
- referenceCulture = (LegacyMode ? CultureInfo.InvariantCulture : CultureInfo.CurrentCulture);
+ referenceCulture = CultureInfo.CurrentCulture;
else
referenceCulture = culture;
@@ -2266,9 +2207,6 @@ namespace System {
}
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal bool EndsWith(char value) {
int thisLen = this.Length;
if (thisLen != 0) {
@@ -2283,17 +2221,11 @@ namespace System {
// The search starts at startIndex and runs thorough the next count characters.
//
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public int IndexOf(char value) {
return IndexOf(value, 0, this.Length);
}
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public int IndexOf(char value, int startIndex) {
return IndexOf(value, startIndex, this.Length - startIndex);
}
@@ -2308,17 +2240,11 @@ namespace System {
// The search starts at startIndex and runs to endIndex-1. [startIndex,endIndex).
//
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public int IndexOfAny(char [] anyOf) {
return IndexOfAny(anyOf,0, this.Length);
}
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public int IndexOfAny(char [] anyOf, int startIndex) {
return IndexOfAny(anyOf, startIndex, this.Length - startIndex);
}
@@ -2337,7 +2263,7 @@ namespace System {
//
[Pure]
public int IndexOf(String value) {
- return IndexOf(value, (LegacyMode ? StringComparison.Ordinal : StringComparison.CurrentCulture));
+ return IndexOf(value, StringComparison.CurrentCulture);
}
// Determines the position within this string of the first occurence of the specified
@@ -2346,7 +2272,7 @@ namespace System {
//
[Pure]
public int IndexOf(String value, int startIndex) {
- return IndexOf(value, startIndex, (LegacyMode ? StringComparison.Ordinal : StringComparison.CurrentCulture));
+ return IndexOf(value, startIndex, StringComparison.CurrentCulture);
}
// Determines the position within this string of the first occurence of the specified
@@ -2364,21 +2290,15 @@ namespace System {
}
Contract.EndContractBlock();
- return IndexOf(value, startIndex, count, (LegacyMode ? StringComparison.Ordinal : StringComparison.CurrentCulture));
+ return IndexOf(value, startIndex, count, StringComparison.CurrentCulture);
}
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public int IndexOf(String value, StringComparison comparisonType) {
return IndexOf(value, 0, this.Length, comparisonType);
}
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public int IndexOf(String value, int startIndex, StringComparison comparisonType) {
return IndexOf(value, startIndex, this.Length - startIndex, comparisonType);
}
@@ -2430,9 +2350,6 @@ namespace System {
// index within the string.
//
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public int LastIndexOf(char value) {
return LastIndexOf(value, this.Length-1, this.Length);
}
@@ -2480,14 +2397,12 @@ namespace System {
//
[Pure]
public int LastIndexOf(String value) {
- return LastIndexOf(value, this.Length-1,this.Length,
- (LegacyMode ? StringComparison.Ordinal : StringComparison.CurrentCulture));
+ return LastIndexOf(value, this.Length-1,this.Length, StringComparison.CurrentCulture);
}
[Pure]
public int LastIndexOf(String value, int startIndex) {
- return LastIndexOf(value, startIndex, startIndex + 1,
- (LegacyMode ? StringComparison.Ordinal : StringComparison.CurrentCulture));
+ return LastIndexOf(value, startIndex, startIndex + 1, StringComparison.CurrentCulture);
}
[Pure]
@@ -2497,14 +2412,10 @@ namespace System {
}
Contract.EndContractBlock();
- return LastIndexOf(value, startIndex, count,
- (LegacyMode ? StringComparison.Ordinal : StringComparison.CurrentCulture));
+ return LastIndexOf(value, startIndex, count, StringComparison.CurrentCulture);
}
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public int LastIndexOf(String value, StringComparison comparisonType) {
return LastIndexOf(value, this.Length-1, this.Length, comparisonType);
}
@@ -2602,15 +2513,12 @@ namespace System {
// Determines whether a specified string is a prefix of the current instance
//
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public Boolean StartsWith(String value) {
if ((Object)value == null) {
throw new ArgumentNullException("value");
}
Contract.EndContractBlock();
- return StartsWith(value, (LegacyMode ? StringComparison.Ordinal : StringComparison.CurrentCulture));
+ return StartsWith(value, StringComparison.CurrentCulture);
}
[Pure]
@@ -2678,7 +2586,7 @@ namespace System {
CultureInfo referenceCulture;
if (culture == null)
- referenceCulture = (LegacyMode ? CultureInfo.InvariantCulture : CultureInfo.CurrentCulture);
+ referenceCulture = CultureInfo.CurrentCulture;
else
referenceCulture = culture;
@@ -2690,14 +2598,11 @@ namespace System {
public String ToLower() {
Contract.Ensures(Contract.Result<String>() != null);
Contract.EndContractBlock();
- return this.ToLower(LegacyMode ? CultureInfo.InvariantCulture : CultureInfo.CurrentCulture);
+ return this.ToLower(CultureInfo.CurrentCulture);
}
// Creates a copy of this string in lower case. The culture is set by culture.
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public String ToLower(CultureInfo culture) {
if (culture==null) {
throw new ArgumentNullException("culture");
@@ -2709,9 +2614,6 @@ namespace System {
// Creates a copy of this string in lower case based on invariant culture.
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public String ToLowerInvariant() {
Contract.Ensures(Contract.Result<String>() != null);
Contract.EndContractBlock();
@@ -2723,15 +2625,12 @@ namespace System {
public String ToUpper() {
Contract.Ensures(Contract.Result<String>() != null);
Contract.EndContractBlock();
- return this.ToUpper(LegacyMode ? CultureInfo.InvariantCulture : CultureInfo.CurrentCulture);
+ return this.ToUpper(CultureInfo.CurrentCulture);
}
// Creates a copy of this string in upper case. The culture is set by culture.
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public String ToUpper(CultureInfo culture) {
if (culture==null) {
throw new ArgumentNullException("culture");
@@ -2744,9 +2643,6 @@ namespace System {
//Creates a copy of this string in upper case based on invariant culture.
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public String ToUpperInvariant() {
Contract.Ensures(Contract.Result<String>() != null);
Contract.EndContractBlock();
@@ -2755,18 +2651,12 @@ namespace System {
// Returns this string.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override String ToString() {
Contract.Ensures(Contract.Result<String>() != null);
Contract.EndContractBlock();
return this;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public String ToString(IFormatProvider provider) {
Contract.Ensures(Contract.Result<String>() != null);
Contract.EndContractBlock();
@@ -2944,9 +2834,6 @@ namespace System {
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private extern String ReplaceInternal(String oldValue, String newValue);
#endif
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public String Replace(String oldValue, String newValue)
{
if (oldValue == null)
@@ -2960,10 +2847,10 @@ namespace System {
if (CompatibilitySwitches.IsAppEarlierThanWindowsPhoneMango)
{
// Dev11 453753 quirk
- // for pre-Mango this function had a bug that would cause it to
- // drop all characters to the right of the first embedded NULL.
- // this was quirked on Mango for pre-Mango apps however for apps
- // targeting Mango the bug was fixed.
+ // for pre-Mango this function had a
+
+
+
int i = s.IndexOf('\0');
if (i > 0)
return s.Substring(0, i);
@@ -3029,49 +2916,69 @@ namespace System {
}
public static String Format(String format, Object arg0) {
- if (format == null)
- throw new ArgumentNullException("format");
Contract.Ensures(Contract.Result<String>() != null);
- Contract.EndContractBlock();
- return Format(null, format, new Object[] {arg0});
+ return FormatHelper(null, format, new ParamsArray(arg0));
}
public static String Format(String format, Object arg0, Object arg1) {
- if (format == null)
- throw new ArgumentNullException("format");
Contract.Ensures(Contract.Result<String>() != null);
- Contract.EndContractBlock();
- return Format(null, format, new Object[] {arg0, arg1});
+ return FormatHelper(null, format, new ParamsArray(arg0, arg1));
}
public static String Format(String format, Object arg0, Object arg1, Object arg2) {
- if (format == null)
- throw new ArgumentNullException("format");
Contract.Ensures(Contract.Result<String>() != null);
- Contract.EndContractBlock();
-
- return Format(null, format, new Object[] {arg0, arg1, arg2});
+ return FormatHelper(null, format, new ParamsArray(arg0, arg1, arg2));
}
-
public static String Format(String format, params Object[] args) {
- if (format == null || args == null)
+ if (args == null)
+ {
+ // To preserve the original exception behavior, throw an exception about format if both
+ // args and format are null. The actual null check for format is in FormatHelper.
throw new ArgumentNullException((format == null) ? "format" : "args");
+ }
Contract.Ensures(Contract.Result<String>() != null);
Contract.EndContractBlock();
-
- return Format(null, format, args);
+
+ return FormatHelper(null, format, new ParamsArray(args));
+ }
+
+ public static String Format(IFormatProvider provider, String format, Object arg0) {
+ Contract.Ensures(Contract.Result<String>() != null);
+ return FormatHelper(provider, format, new ParamsArray(arg0));
+ }
+
+ public static String Format(IFormatProvider provider, String format, Object arg0, Object arg1) {
+ Contract.Ensures(Contract.Result<String>() != null);
+ return FormatHelper(provider, format, new ParamsArray(arg0, arg1));
+ }
+
+ public static String Format(IFormatProvider provider, String format, Object arg0, Object arg1, Object arg2) {
+ Contract.Ensures(Contract.Result<String>() != null);
+ return FormatHelper(provider, format, new ParamsArray(arg0, arg1, arg2));
}
- public static String Format( IFormatProvider provider, String format, params Object[] args) {
- if (format == null || args == null)
+ public static String Format(IFormatProvider provider, String format, params Object[] args) {
+ if (args == null)
+ {
+ // To preserve the original exception behavior, throw an exception about format if both
+ // args and format are null. The actual null check for format is in FormatHelper.
throw new ArgumentNullException((format == null) ? "format" : "args");
+ }
Contract.Ensures(Contract.Result<String>() != null);
Contract.EndContractBlock();
-
- StringBuilder sb = StringBuilderCache.Acquire(format.Length + args.Length * 8);
- sb.AppendFormat(provider,format,args);
- return StringBuilderCache.GetStringAndRelease(sb);
+
+ return FormatHelper(provider, format, new ParamsArray(args));
+ }
+
+ private static String FormatHelper(IFormatProvider provider, String format, ParamsArray args) {
+ if (format == null)
+ throw new ArgumentNullException("format");
+
+ return StringBuilderCache.GetStringAndRelease(
+ StringBuilderCache
+ .Acquire(format.Length + args.Length * 8)
+ .AppendFormatHelper(provider, format, args));
}
[System.Security.SecuritySafeCritical] // auto-generated
@@ -3380,9 +3287,6 @@ namespace System {
}
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static String Intern(String str) {
if (str==null) {
throw new ArgumentNullException("str");
@@ -3419,9 +3323,6 @@ namespace System {
// IConvertible implementation
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public TypeCode GetTypeCode() {
return TypeCode.String;
}
@@ -3501,37 +3402,6 @@ namespace System {
return Convert.DefaultToType((IConvertible)this, type, provider);
}
- //
- // Silverlight v2 - v3 defaulted to using Ordinal for the following APIs
- // [System.String]
- // public Boolean EndsWith(String value)
- // public Boolean EndsWith(String value, Boolean ignoreCase, CultureInfo culture)
- // public int IndexOf(String value)
- // public int IndexOf(String value, int startIndex)
- // public int IndexOf(String value, int startIndex, int count)
- // public int LastIndexOf(String value)
- // public int LastIndexOf(String value, int startIndex)
- // public int LastIndexOf(String value, int startIndex, int count)
- // public Boolean StartsWith(String value)
- // public Boolean StartsWith(String value, Boolean ignoreCase, CultureInfo culture)
- // public String ToLower()
- // public String ToUpper()
- // [System.Char]
- // public static char ToUpper(char c)
- // public static char ToLower(char c)
- //
- // Starting with Silverlight 4 these APIs default to using CurrentCulture
- // for alignment with Desktop CLR. Applications can enable the legacy v2-v3
- // System.String behavior by using the 'APP_EARLIER_THAN_SL4.0' configuration option.
- //
- internal static bool LegacyMode
- {
- get
- {
- return CompatibilitySwitches.IsAppEarlierThanSilverlight4;
- }
- }
-
#if !MONO
// Is this a string that can be compared quickly (that is it has only characters > 0x80
// and not a - or '
@@ -3582,9 +3452,6 @@ namespace System {
// Copies the source String (byte buffer) to the destination IntPtr memory allocated with len bytes.
[System.Security.SecurityCritical] // auto-generated
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
internal unsafe static void InternalCopy(String src, IntPtr dest,int len)
{
if (len == 0)
diff --git a/mcs/class/referencesource/mscorlib/system/stubhelpers.cs b/mcs/class/referencesource/mscorlib/system/stubhelpers.cs
index 107f5992080..909502dc4f1 100644
--- a/mcs/class/referencesource/mscorlib/system/stubhelpers.cs
+++ b/mcs/class/referencesource/mscorlib/system/stubhelpers.cs
@@ -18,16 +18,12 @@ namespace System.StubHelpers {
using System.Runtime.CompilerServices;
using System.Runtime.ConstrainedExecution;
using System.Diagnostics.Contracts;
- using System.Diagnostics.Tracing;
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class AnsiCharMarshaler
{
// The length of the returned array is an approximation based on the length of the input string and the system
// character set. It is only guaranteed to be larger or equal to cbLength, don't depend on the exact value.
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
unsafe static internal byte[] DoAnsiConversion(string str, bool fBestFit, bool fThrowOnUnmappableChar, out int cbLength)
{
@@ -39,9 +35,6 @@ namespace System.StubHelpers {
return buffer;
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
unsafe static internal byte ConvertToNative(char managedChar, bool fBestFit, bool fThrowOnUnmappableChar)
{
@@ -54,9 +47,6 @@ namespace System.StubHelpers {
return bufferPtr[0];
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
static internal char ConvertToManaged(byte nativeChar)
{
byte[] bytes = new byte[1] { nativeChar };
@@ -68,9 +58,6 @@ namespace System.StubHelpers {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class CSTRMarshaler
{
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
static internal unsafe IntPtr ConvertToNative(int flags, string strManaged, IntPtr pNativeBuffer)
{
@@ -123,9 +110,6 @@ namespace System.StubHelpers {
return (IntPtr)pbNativeBuffer;
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
static internal unsafe string ConvertToManaged(IntPtr cstr)
{
@@ -135,9 +119,6 @@ namespace System.StubHelpers {
return new String((sbyte*)cstr);
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
static internal void ClearNative(IntPtr pNative)
{
@@ -148,9 +129,6 @@ namespace System.StubHelpers {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class BSTRMarshaler
{
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
static internal unsafe IntPtr ConvertToNative(string strManaged, IntPtr pNativeBuffer)
{
@@ -216,9 +194,6 @@ namespace System.StubHelpers {
}
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
static internal unsafe string ConvertToManaged(IntPtr bstr)
{
@@ -264,9 +239,6 @@ namespace System.StubHelpers {
}
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
static internal void ClearNative(IntPtr pNative)
{
@@ -280,9 +252,6 @@ namespace System.StubHelpers {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class VBByValStrMarshaler
{
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
static internal unsafe IntPtr ConvertToNative(string strManaged, bool fBestFit, bool fThrowOnUnmappableChar, ref int cch)
{
@@ -325,9 +294,6 @@ namespace System.StubHelpers {
return new IntPtr(pNative);
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
static internal unsafe string ConvertToManaged(IntPtr pNative, int cch)
{
@@ -339,9 +305,6 @@ namespace System.StubHelpers {
return new String((sbyte*)pNative, 0, cch);
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
static internal unsafe void ClearNative(IntPtr pNative)
{
@@ -355,9 +318,6 @@ namespace System.StubHelpers {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class AnsiBSTRMarshaler
{
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
static internal unsafe IntPtr ConvertToNative(int flags, string strManaged)
{
@@ -381,9 +341,6 @@ namespace System.StubHelpers {
return Win32Native.SysAllocStringByteLen(bytes, (uint)nb);
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
static internal unsafe string ConvertToManaged(IntPtr bstr)
{
@@ -400,9 +357,6 @@ namespace System.StubHelpers {
}
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
static internal unsafe void ClearNative(IntPtr pNative)
{
@@ -438,9 +392,6 @@ namespace System.StubHelpers {
#if FEATURE_COMINTEROP
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[StructLayout(LayoutKind.Sequential)]
internal struct DateTimeNative
{
@@ -454,9 +405,6 @@ namespace System.StubHelpers {
// You can get this through: (new DateTimeOffset(1601, 1, 1, 0, 0, 1, TimeSpan.Zero)).Ticks;
private const Int64 ManagedUtcTicksAtNativeZero = 504911232000000000;
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static void ConvertToNative(ref DateTimeOffset managedDTO, out DateTimeNative dateTime) {
@@ -464,9 +412,6 @@ namespace System.StubHelpers {
dateTime.UniversalTime = managedUtcTicks - ManagedUtcTicksAtNativeZero;
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static void ConvertToManaged(out DateTimeOffset managedLocalDTO, ref DateTimeNative nativeTicks) {
@@ -487,9 +432,6 @@ namespace System.StubHelpers {
internal static class HStringMarshaler
{
// Slow-path, which requires making a copy of the managed string into the resulting HSTRING
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static unsafe IntPtr ConvertToNative(string managed)
{
@@ -510,9 +452,6 @@ namespace System.StubHelpers {
// Note that the managed string input to this method MUST be pinned, and stay pinned for the lifetime of
// the returned HSTRING object. If the string is not pinned, or becomes unpinned before the HSTRING's
// lifetime ends, the HSTRING instance will be corrupted.
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static unsafe IntPtr ConvertToNativeReference(string managed,
[Out] HSTRING_HEADER *hstringHeader)
@@ -533,9 +472,6 @@ namespace System.StubHelpers {
}
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static string ConvertToManaged(IntPtr hstring)
{
@@ -547,9 +483,6 @@ namespace System.StubHelpers {
return WindowsRuntimeMarshal.HStringToString(hstring);
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static void ClearNative(IntPtr hstring)
{
@@ -565,21 +498,12 @@ namespace System.StubHelpers {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class ObjectMarshaler
{
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ConvertToNative(object objSrc, IntPtr pDstVariant);
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern object ConvertToManaged(IntPtr pSrcVariant);
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ClearNative(IntPtr pVariant);
} // class ObjectMarshaler
@@ -589,22 +513,13 @@ namespace System.StubHelpers {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class ValueClassMarshaler
{
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[SecurityCritical]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ConvertToNative(IntPtr dst, IntPtr src, IntPtr pMT, ref CleanupWorkList pCleanupWorkList);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ConvertToManaged(IntPtr dst, IntPtr src, IntPtr pMT);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ClearNative(IntPtr dst, IntPtr pMT);
} // class ValueClassMarshaler
@@ -612,16 +527,10 @@ namespace System.StubHelpers {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class DateMarshaler
{
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern double ConvertToNative(DateTime managedDate);
// The return type is really DateTime but we use long to avoid the pain associated with returning structures.
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern long ConvertToManaged(double nativeDate);
} // class DateMarshaler
@@ -631,28 +540,16 @@ namespace System.StubHelpers {
[FriendAccessAllowed]
internal static class InterfaceMarshaler
{
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern IntPtr ConvertToNative(object objSrc, IntPtr itfMT, IntPtr classMT, int flags);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern object ConvertToManaged(IntPtr pUnk, IntPtr itfMT, IntPtr classMT, int flags);
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
[DllImport(JitHelpers.QCall), SuppressUnmanagedCodeSecurity]
static internal extern void ClearNative(IntPtr pUnk);
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[FriendAccessAllowed]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern object ConvertToManagedWithoutUnboxing(IntPtr pNative);
@@ -663,22 +560,13 @@ namespace System.StubHelpers {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class UriMarshaler
{
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern string GetRawUriFromNative(IntPtr pUri);
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
[System.Security.SecurityCritical]
static unsafe internal extern IntPtr CreateNativeUriInstanceHelper(char* rawUri, int strLen);
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
static unsafe internal IntPtr CreateNativeUriInstance(string rawUri)
{
@@ -733,46 +621,25 @@ namespace System.StubHelpers {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class MngdNativeArrayMarshaler
{
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void CreateMarshaler(IntPtr pMarshalState, IntPtr pMT, int dwFlags);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ConvertSpaceToNative(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ConvertContentsToNative(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ConvertSpaceToManaged(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome,
int cElements);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ConvertContentsToManaged(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ClearNative(IntPtr pMarshalState, IntPtr pNativeHome, int cElements);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ClearNativeContents(IntPtr pMarshalState, IntPtr pNativeHome, int cElements);
} // class MngdNativeArrayMarshaler
@@ -781,39 +648,21 @@ namespace System.StubHelpers {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class MngdSafeArrayMarshaler
{
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void CreateMarshaler(IntPtr pMarshalState, IntPtr pMT, int iRank, int dwFlags);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ConvertSpaceToNative(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ConvertContentsToNative(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome, object pOriginalManaged);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ConvertSpaceToManaged(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ConvertContentsToManaged(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ClearNative(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome);
} // class MngdSafeArrayMarshaler
@@ -821,30 +670,18 @@ namespace System.StubHelpers {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class MngdHiddenLengthArrayMarshaler
{
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void CreateMarshaler(IntPtr pMarshalState, IntPtr pMT, IntPtr cbElementSize, ushort vt);
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
internal static extern void ConvertSpaceToNative(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome);
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
internal static extern void ConvertContentsToNative(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome);
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static unsafe void ConvertContentsToNative_DateTime(ref DateTimeOffset[] managedArray, IntPtr pNativeHome)
{
@@ -858,9 +695,6 @@ namespace System.StubHelpers {
}
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static unsafe void ConvertContentsToNative_Type(ref System.Type[] managedArray, IntPtr pNativeHome)
{
@@ -874,9 +708,6 @@ namespace System.StubHelpers {
}
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static unsafe void ConvertContentsToNative_Exception(ref Exception[] managedArray, IntPtr pNativeHome)
{
@@ -890,9 +721,6 @@ namespace System.StubHelpers {
}
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static unsafe void ConvertContentsToNative_Nullable<T>(ref Nullable<T>[] managedArray, IntPtr pNativeHome)
where T : struct
@@ -907,9 +735,6 @@ namespace System.StubHelpers {
}
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static unsafe void ConvertContentsToNative_KeyValuePair<K, V>(ref KeyValuePair<K, V>[] managedArray, IntPtr pNativeHome)
{
@@ -923,23 +748,14 @@ namespace System.StubHelpers {
}
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
internal static extern void ConvertSpaceToManaged(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome, int elementCount);
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
internal static extern void ConvertContentsToManaged(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome);
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static unsafe void ConvertContentsToManaged_DateTime(ref DateTimeOffset[] managedArray, IntPtr pNativeHome)
{
@@ -953,9 +769,6 @@ namespace System.StubHelpers {
}
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static unsafe void ConvertContentsToManaged_Type(ref System.Type[] managedArray, IntPtr pNativeHome)
{
@@ -969,9 +782,6 @@ namespace System.StubHelpers {
}
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static unsafe void ConvertContentsToManaged_Exception(ref Exception[] managedArray, IntPtr pNativeHome)
{
@@ -985,9 +795,6 @@ namespace System.StubHelpers {
}
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static unsafe void ConvertContentsToManaged_Nullable<T>(ref Nullable<T>[] managedArray, IntPtr pNativeHome)
where T : struct
@@ -997,14 +804,11 @@ namespace System.StubHelpers {
IntPtr *nativeBuffer = *(IntPtr **)pNativeHome;
for (int i = 0; i < managedArray.Length; i++)
{
- managedArray[i] = NullableMarshaler.ConvertToManaged<T>(nativeBuffer[i]);
+ managedArray[i] = NullableMarshaler.ConvertToManaged<T>(nativeBuffer[i]);
}
}
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static unsafe void ConvertContentsToManaged_KeyValuePair<K, V>(ref KeyValuePair<K, V>[] managedArray, IntPtr pNativeHome)
{
@@ -1018,16 +822,10 @@ namespace System.StubHelpers {
}
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
internal static extern void ClearNativeContents(IntPtr pMarshalState, IntPtr pNativeHome, int cElements);
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static unsafe void ClearNativeContents_Type(IntPtr pNativeHome, int cElements)
{
@@ -1050,41 +848,23 @@ namespace System.StubHelpers {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class MngdRefCustomMarshaler
{
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void CreateMarshaler(IntPtr pMarshalState, IntPtr pCMHelper);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ConvertContentsToNative(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ConvertContentsToManaged(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ClearNative(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ClearManaged(IntPtr pMarshalState, ref object pManagedHome, IntPtr pNativeHome);
} // class MngdRefCustomMarshaler
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
internal struct AsAnyMarshaler
{
@@ -1118,9 +898,6 @@ namespace System.StubHelpers {
private static bool IsThrowOn(int dwFlags) { return ((dwFlags & 0x0000FF00) != 0); }
private static bool IsBestFit(int dwFlags) { return ((dwFlags & 0x000000FF) != 0); }
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
internal AsAnyMarshaler(IntPtr pvArrayMarshaler)
{
// we need this in case the value being marshaled turns out to be array
@@ -1346,9 +1123,6 @@ namespace System.StubHelpers {
#endregion
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
internal IntPtr ConvertToNative(object pManagedHome, int dwFlags)
{
@@ -1392,19 +1166,9 @@ namespace System.StubHelpers {
}
}
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage))
- {
- FrameworkEventSource.Log.MarshalAsAnyConvertToNative(pManagedHome.GetType().GetFullNameForEtw());
- }
-#endif
-
return pNativeHome;
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
internal unsafe void ConvertToManaged(object pManagedHome, IntPtr pNativeHome)
{
@@ -1441,18 +1205,8 @@ namespace System.StubHelpers {
// nothing to do for BackPropAction.None
}
-
-#if !FEATURE_CORECLR
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && pManagedHome != null)
- {
- FrameworkEventSource.Log.MarshalAsAnyConvertToManaged(pManagedHome.GetType().GetFullNameForEtw());
- }
-#endif
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
internal void ClearNative(IntPtr pNativeHome)
{
@@ -1473,9 +1227,6 @@ namespace System.StubHelpers {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class NullableMarshaler
{
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
static internal IntPtr ConvertToNative<T>(ref Nullable<T> pManaged) where T : struct
{
@@ -1490,9 +1241,6 @@ namespace System.StubHelpers {
}
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
static internal void ConvertToManagedRetVoid<T>(IntPtr pNative, ref Nullable<T> retObj) where T : struct
{
@@ -1500,9 +1248,6 @@ namespace System.StubHelpers {
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
static internal Nullable<T> ConvertToManaged<T>(IntPtr pNative) where T : struct
{
@@ -1519,9 +1264,6 @@ namespace System.StubHelpers {
} // class NullableMarshaler
// Corresponds to Windows.UI.Xaml.Interop.TypeName
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[StructLayout(LayoutKind.Sequential)]
internal struct TypeNameNative
{
@@ -1550,9 +1292,6 @@ namespace System.StubHelpers {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class SystemTypeMarshaler
{
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static unsafe void ConvertToNative(System.Type managedType, TypeNameNative *pNativeType)
{
@@ -1597,9 +1336,6 @@ namespace System.StubHelpers {
Marshal.ThrowExceptionForHR(hrCreate, new IntPtr(-1));
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static unsafe void ConvertToManaged(TypeNameNative *pNativeType, ref System.Type managedType)
{
@@ -1630,9 +1366,6 @@ namespace System.StubHelpers {
}
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static unsafe void ClearNative(TypeNameNative *pNativeType)
{
@@ -1649,9 +1382,6 @@ namespace System.StubHelpers {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class HResultExceptionMarshaler
{
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
static internal unsafe int ConvertToNative(Exception ex)
{
if (!Environment.IsWinRTSupported)
@@ -1665,9 +1395,6 @@ namespace System.StubHelpers {
return ex._HResult;
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecuritySafeCritical]
static internal unsafe Exception ConvertToManaged(int hr)
{
@@ -1694,9 +1421,6 @@ namespace System.StubHelpers {
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
internal static class KeyValuePairMarshaler
{
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static IntPtr ConvertToNative<K, V>([In] ref KeyValuePair<K, V> pair)
{
@@ -1704,9 +1428,6 @@ namespace System.StubHelpers {
return Marshal.GetComInterfaceForObject(impl, typeof(IKeyValuePair<K, V>));
}
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[SecurityCritical]
internal static KeyValuePair<K, V> ConvertToManaged<K, V>(IntPtr pInsp)
{
@@ -1727,9 +1448,6 @@ namespace System.StubHelpers {
#endif // FEATURE_COMINTEROP
[StructLayout(LayoutKind.Sequential)]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
internal struct NativeVariant
{
ushort vt;
@@ -1756,10 +1474,8 @@ namespace System.StubHelpers {
// on value types pushed on the stack. The structure is stored in s_copyCtorStubDesc by
// SetCopyCtorCookieChain and fetched by CopyCtorCallStubWorker. Must be stack-allocated.
[StructLayout(LayoutKind.Sequential)]
- [System.Runtime.ForceTokenStabilization]
unsafe internal struct CopyCtorStubCookie
{
- [System.Runtime.ForceTokenStabilization]
public void SetData(IntPtr srcInstancePtr, uint dstStackOffset, IntPtr ctorPtr, IntPtr dtorPtr)
{
m_srcInstancePtr = srcInstancePtr;
@@ -1768,7 +1484,6 @@ namespace System.StubHelpers {
m_dtorPtr = dtorPtr;
}
- [System.Runtime.ForceTokenStabilization]
public void SetNext(IntPtr pNext)
{
m_pNext = pNext;
@@ -1811,9 +1526,6 @@ namespace System.StubHelpers {
} // class CleanupWorkListElement
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
internal sealed class CleanupWorkList
{
@@ -1841,27 +1553,15 @@ namespace System.StubHelpers {
[SuppressUnmanagedCodeSecurityAttribute()]
internal static class StubHelpers
{
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern bool IsQCall(IntPtr pMD);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void InitDeclaringType(IntPtr pMD);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern IntPtr GetNDirectTarget(IntPtr pMD);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern IntPtr GetDelegateTarget(Delegate pThis, ref IntPtr pStubArg);
@@ -1870,7 +1570,6 @@ namespace System.StubHelpers {
[ThreadStatic]
static CopyCtorStubDesc s_copyCtorStubDesc;
- [System.Runtime.ForceTokenStabilization]
static internal void SetCopyCtorCookieChain(IntPtr pStubArg, IntPtr pUnmngThis, int dwStubFlags, IntPtr pCookie)
{
// we store both the cookie chain head and the target of the copy ctor stub to a thread
@@ -1881,31 +1580,20 @@ namespace System.StubHelpers {
// Returns the final unmanaged stub target, ignores interceptors.
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- [System.Runtime.ForceTokenStabilization]
static internal extern IntPtr GetFinalStubTarget(IntPtr pStubArg, IntPtr pUnmngThis, int dwStubFlags);
#endif // !FEATURE_CORECLR && !WIN64
#if !FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- [System.Runtime.ForceTokenStabilization]
static internal extern void DemandPermission(IntPtr pNMD);
#endif // !FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
static internal extern void SetLastError();
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ThrowInteropParamException(int resID, int paramIdx);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
static internal IntPtr AddToCleanupList(ref CleanupWorkList pCleanupWorkList, SafeHandle handle)
{
@@ -1919,9 +1607,6 @@ namespace System.StubHelpers {
return SafeHandleAddRef(handle, ref element.m_owned);
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
static internal void DestroyCleanupList(ref CleanupWorkList pCleanupWorkList)
@@ -1933,9 +1618,6 @@ namespace System.StubHelpers {
}
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
static internal Exception GetHRExceptionObject(int hr)
{
Exception ex = InternalGetHRExceptionObject(hr);
@@ -1943,16 +1625,10 @@ namespace System.StubHelpers {
return ex;
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern Exception InternalGetHRExceptionObject(int hr);
#if FEATURE_COMINTEROP
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif
static internal Exception GetCOMHRExceptionObject(int hr, IntPtr pCPCMD, object pThis)
{
Exception ex = InternalGetCOMHRExceptionObject(hr, pCPCMD, pThis, false);
@@ -1960,9 +1636,6 @@ namespace System.StubHelpers {
return ex;
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif
static internal Exception GetCOMHRExceptionObject_WinRT(int hr, IntPtr pCPCMD, object pThis)
{
Exception ex = InternalGetCOMHRExceptionObject(hr, pCPCMD, pThis, true);
@@ -1971,16 +1644,10 @@ namespace System.StubHelpers {
}
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
static internal extern Exception InternalGetCOMHRExceptionObject(int hr, IntPtr pCPCMD, object pThis, bool fForWinRT);
#endif // FEATURE_COMINTEROP
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern IntPtr CreateCustomMarshalerHelper(IntPtr pMD, int paramToken, IntPtr hndManagedType);
@@ -1989,9 +1656,6 @@ namespace System.StubHelpers {
//-------------------------------------------------------
// AddRefs the SH and returns the underlying unmanaged handle.
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
static internal IntPtr SafeHandleAddRef(SafeHandle pHandle, ref bool success)
{
@@ -2007,9 +1671,6 @@ namespace System.StubHelpers {
}
// Releases the SH (to be called from finally block).
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
static internal void SafeHandleRelease(SafeHandle pHandle)
@@ -2037,93 +1698,56 @@ namespace System.StubHelpers {
#if FEATURE_COMINTEROP
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
static internal extern IntPtr GetCOMIPFromRCW(object objSrc, IntPtr pCPCMD, out IntPtr ppTarget, out bool pfNeedsRelease);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
static internal extern IntPtr GetCOMIPFromRCW_WinRT(object objSrc, IntPtr pCPCMD, out IntPtr ppTarget);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
static internal extern IntPtr GetCOMIPFromRCW_WinRTSharedGeneric(object objSrc, IntPtr pCPCMD, out IntPtr ppTarget);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
static internal extern IntPtr GetCOMIPFromRCW_WinRTDelegate(object objSrc, IntPtr pCPCMD, out IntPtr ppTarget);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
static internal extern bool ShouldCallWinRTInterface(object objSrc, IntPtr pCPCMD);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern Delegate GetTargetForAmbiguousVariantCall(object objSrc, IntPtr pMT, out bool fUseString);
//-------------------------------------------------------
- // Helper for the MDA RaceOnRCWCleanup
+ // Helper for the MDA ----OnRCWCleanup
//-------------------------------------------------------
[MethodImplAttribute(MethodImplOptions.InternalCall)]
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
static internal extern void StubRegisterRCW(object pThis);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
static internal extern void StubUnregisterRCW(object pThis);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
static internal extern IntPtr GetDelegateInvokeMethod(Delegate pThis);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
static internal extern object GetWinRTFactoryObject(IntPtr pCPCMD);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
static internal extern IntPtr GetWinRTFactoryReturnValue(object pThis, IntPtr pCtorEntry);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
[System.Security.SecurityCritical]
static internal extern IntPtr GetOuterInspectable(object pThis, IntPtr pCtorMD);
#if MDA_SUPPORTED
[MethodImplAttribute(MethodImplOptions.InternalCall)]
-#if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
-#endif //!FEATURE_CORECLR
static internal extern Exception TriggerExceptionSwallowedMDA(Exception ex, IntPtr pManagedTarget);
#endif // MDA_SUPPORTED
#endif // FEATURE_COMINTEROP
#if MDA_SUPPORTED
- [System.Runtime.ForceTokenStabilization]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void CheckCollectedDelegateMDA(IntPtr pEntryThunk);
#endif // MDA_SUPPORTED
@@ -2133,14 +1757,8 @@ namespace System.StubHelpers {
//-------------------------------------------------------
#if PROFILING_SUPPORTED
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
static internal extern IntPtr ProfilerBeginTransitionCallback(IntPtr pSecretParam, IntPtr pThread, object pThis);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ProfilerEndTransitionCallback(IntPtr pMD, IntPtr pThread);
#endif // PROFILING_SUPPORTED
@@ -2148,19 +1766,11 @@ namespace System.StubHelpers {
//------------------------------------------------------
// misc
//------------------------------------------------------
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
- #endif //!FEATURE_CORECLR
static internal void CheckStringLength(int length)
{
CheckStringLength((uint)length);
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
- #endif //!FEATURE_CORECLR
static internal void CheckStringLength(uint length)
{
if (length > 0x7ffffff0)
@@ -2169,103 +1779,60 @@ namespace System.StubHelpers {
}
}
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal unsafe extern int strlen(sbyte* ptr);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void DecimalCanonicalizeInternal(ref Decimal dec);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal unsafe extern void FmtClassUpdateNativeInternal(object obj, byte* pNative, ref CleanupWorkList pCleanupWorkList);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal unsafe extern void FmtClassUpdateCLRInternal(object obj, byte* pNative);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal unsafe extern void LayoutDestroyNativeInternal(byte* pNative, IntPtr pMT);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern object AllocateInternal(IntPtr typeHandle);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void MarshalToUnmanagedVaListInternal(IntPtr va_list, uint vaListSize, IntPtr pArgIterator);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void MarshalToManagedVaListInternal(IntPtr va_list, IntPtr pArgIterator);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern uint CalcVaListSize(IntPtr va_list);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ValidateObject(object obj, IntPtr pMD, object pThis);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void LogPinnedArgument(IntPtr localDesc, IntPtr nativeArg);
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern void ValidateByref(IntPtr byref, IntPtr pMD, object pThis); // the byref is pinned so we can safely "cast" it to IntPtr
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern IntPtr GetStubContext();
#if WIN64
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[MethodImplAttribute(MethodImplOptions.InternalCall)]
static internal extern IntPtr GetStubContextAddr();
#endif // WIN64
#if MDA_SUPPORTED
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
static internal extern void TriggerGCForMDA();
#endif // MDA_SUPPORTED
#if FEATURE_ARRAYSTUB_AS_IL
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
internal static extern void ArrayTypeCheck(object o, Object[] arr);
#endif
+
+#if FEATURE_STUBS_AS_IL
+ [MethodImplAttribute(MethodImplOptions.InternalCall)]
+ internal static extern void MulticastDebuggerTraceHelper(object o, Int32 count);
+#endif
} // class StubHelpers
}
diff --git a/mcs/class/referencesource/mscorlib/system/supportedplatformsattribute.cs b/mcs/class/referencesource/mscorlib/system/supportedplatformsattribute.cs
index bffad6221d6..1129644be2b 100644
--- a/mcs/class/referencesource/mscorlib/system/supportedplatformsattribute.cs
+++ b/mcs/class/referencesource/mscorlib/system/supportedplatformsattribute.cs
@@ -41,4 +41,4 @@ namespace System
}
}
-#endif // FEATURE_CORECLR
+#endif // FEATURE_CORECLR \ No newline at end of file
diff --git a/mcs/class/referencesource/mscorlib/system/text/asciiencoding.cs b/mcs/class/referencesource/mscorlib/system/text/asciiencoding.cs
index 471635e01dc..9c6e967206c 100644
--- a/mcs/class/referencesource/mscorlib/system/text/asciiencoding.cs
+++ b/mcs/class/referencesource/mscorlib/system/text/asciiencoding.cs
@@ -44,7 +44,7 @@ namespace System.Text
//
// The following methods are copied from EncodingNLS.cs.
// Unfortunately EncodingNLS.cs is internal and we're public, so we have to reimpliment them here.
- // These should be kept in [....] for the following classes:
+ // These should be kept in sync for the following classes:
// EncodingNLS, UTF7Encoding, UTF8Encoding, UTF32Encoding, ASCIIEncoding, UnicodeEncoding
//
diff --git a/mcs/class/referencesource/mscorlib/system/text/decoder.cs b/mcs/class/referencesource/mscorlib/system/text/decoder.cs
index 8a5e8085314..28ea64f9361 100644
--- a/mcs/class/referencesource/mscorlib/system/text/decoder.cs
+++ b/mcs/class/referencesource/mscorlib/system/text/decoder.cs
@@ -219,7 +219,7 @@ namespace System.Text
// Do the work
int result = GetChars(arrByte, 0, byteCount, arrChar, 0, flush);
- // The only way this could fail is a bug in GetChars
+ // The only way this could fail is a
Contract.Assert(result <= charCount, "Returned more chars than we have space for");
// Copy the char array
@@ -231,7 +231,7 @@ namespace System.Text
charCount = result;
// We check both result and charCount so that we don't accidentally overrun
- // our pointer buffer just because of any GetChars bug.
+ // our pointer buffer just because of any GetChars
for (index = 0; index < charCount; index++)
chars[index] = arrChar[index];
diff --git a/mcs/class/referencesource/mscorlib/system/text/encoder.cs b/mcs/class/referencesource/mscorlib/system/text/encoder.cs
index 04f3ac245a3..55af2cb6fb0 100644
--- a/mcs/class/referencesource/mscorlib/system/text/encoder.cs
+++ b/mcs/class/referencesource/mscorlib/system/text/encoder.cs
@@ -212,7 +212,7 @@ namespace System.Text
// Do the work
int result = GetBytes(arrChar, 0, charCount, arrByte, 0, flush);
- // The only way this could fail is a bug in GetBytes
+ // The only way this could fail is a
Contract.Assert(result <= byteCount, "Returned more bytes than we have space for");
// Copy the byte array
diff --git a/mcs/class/referencesource/mscorlib/system/text/encoderreplacementfallback.cs b/mcs/class/referencesource/mscorlib/system/text/encoderreplacementfallback.cs
index e4b5b9923f7..735540e9ce0 100644
--- a/mcs/class/referencesource/mscorlib/system/text/encoderreplacementfallback.cs
+++ b/mcs/class/referencesource/mscorlib/system/text/encoderreplacementfallback.cs
@@ -84,18 +84,12 @@ namespace System.Text
// Maximum number of characters that this instance of this fallback could return
public override int MaxCharCount
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
return strDefault.Length;
}
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override bool Equals(Object value)
{
EncoderReplacementFallback that = value as EncoderReplacementFallback;
diff --git a/mcs/class/referencesource/mscorlib/system/text/encoding.cs b/mcs/class/referencesource/mscorlib/system/text/encoding.cs
index 54f60741aee..5e9d2201696 100644
--- a/mcs/class/referencesource/mscorlib/system/text/encoding.cs
+++ b/mcs/class/referencesource/mscorlib/system/text/encoding.cs
@@ -109,7 +109,7 @@ namespace System.Text
//
// The following values are from mlang.idl. These values
- // should be in [....] with those in mlang.idl.
+ // should be in sync with those in mlang.idl.
//
private const int MIMECONTF_MAILNEWS = 0x00000001;
private const int MIMECONTF_BROWSER = 0x00000002;
@@ -219,19 +219,32 @@ namespace System.Text
this.SetDefaultFallbacks();
}
+ // This constructor is needed to allow any sub-classing implementation to provide encoder/decoder fallback objects
+ // because the encoding object is always created as read-only object and don’t allow setting encoder/decoder fallback
+ // after the creation is done.
+ protected Encoding(int codePage, EncoderFallback encoderFallback, DecoderFallback decoderFallback)
+ {
+ // Validate code page
+ if (codePage < 0)
+ {
+ throw new ArgumentOutOfRangeException("codePage");
+ }
+ Contract.EndContractBlock();
+
+ // Remember code page
+ m_codePage = codePage;
+
+ this.encoderFallback = encoderFallback ?? new InternalEncoderBestFitFallback(this);
+ this.decoderFallback = decoderFallback ?? new InternalDecoderBestFitFallback(this);
+ }
+
// Default fallback that we'll use.
internal virtual void SetDefaultFallbacks()
{
-#if FEATURE_CORECLR
- // For coreclr we only have Unicode, so we don't have best fit fallbacks
- this.encoderFallback = new EncoderReplacementFallback("\xFFFD");
- this.decoderFallback = new DecoderReplacementFallback("\xFFFD");
-#else // !FEATURE_CORECLR
// For UTF-X encodings, we use a replacement fallback with an "\xFFFD" string,
// For ASCII we use "?" replacement fallback, etc.
this.encoderFallback = new InternalEncoderBestFitFallback(this);
this.decoderFallback = new InternalDecoderBestFitFallback(this);
-#endif // FEATURE_CORECLR
}
@@ -389,12 +402,25 @@ namespace System.Text
}
}
+#if !FEATURE_CORECLR
+ [System.Security.SecurityCritical]
+#endif
+ public static void RegisterProvider(EncodingProvider provider)
+ {
+ // Parameters validated inside EncodingProvider
+ EncodingProvider.AddProvider(provider);
+ }
+
[Pure]
#if !FEATURE_CORECLR
[System.Security.SecuritySafeCritical] // auto-generated
#endif
public static Encoding GetEncoding(int codepage)
{
+ Encoding result = EncodingProvider.GetEncodingFromProvider(codepage);
+ if (result != null)
+ return result;
+
//
// NOTE: If you add a new encoding that can be get by codepage, be sure to
// add the corresponding item in EncodingTable.
@@ -410,7 +436,6 @@ namespace System.Text
Contract.EndContractBlock();
// Our Encoding
- Encoding result = null;
// See if we have a hash table with our encoding in it already.
if (encodings != null) {
@@ -460,7 +485,16 @@ namespace System.Text
break;
#endif
-#endif
+#if FEATURE_UTF32
+ case CodePageUTF32: // 12000
+ result = UTF32;
+ break;
+ case CodePageUTF32BE: // 12001
+ result = new UTF32Encoding(true, true);
+ break;
+#endif
+
+#endif
case CodePageUTF8: // 65001, UTF8
result = UTF8;
break;
@@ -538,8 +572,13 @@ namespace System.Text
public static Encoding GetEncoding(int codepage,
EncoderFallback encoderFallback, DecoderFallback decoderFallback)
{
+ Encoding baseEncoding = EncodingProvider.GetEncodingFromProvider(codepage, encoderFallback, decoderFallback);
+
+ if (baseEncoding != null)
+ return baseEncoding;
+
// Get the default encoding (which is cached and read only)
- Encoding baseEncoding = GetEncoding(codepage);
+ baseEncoding = GetEncoding(codepage);
// Clone it and set the fallback
Encoding fallbackEncoding = (Encoding)baseEncoding.Clone();
@@ -644,6 +683,10 @@ namespace System.Text
[Pure]
public static Encoding GetEncoding(String name)
{
+ Encoding baseEncoding = EncodingProvider.GetEncodingFromProvider(name);
+ if (baseEncoding != null)
+ return baseEncoding;
+
//
// NOTE: If you add a new encoding that can be requested by name, be sure to
// add the corresponding item in EncodingTable.
@@ -659,6 +702,10 @@ namespace System.Text
public static Encoding GetEncoding(String name,
EncoderFallback encoderFallback, DecoderFallback decoderFallback)
{
+ Encoding baseEncoding = EncodingProvider.GetEncodingFromProvider(name, encoderFallback, decoderFallback);
+ if (baseEncoding != null)
+ return baseEncoding;
+
//
// NOTE: If you add a new encoding that can be requested by name, be sure to
// add the corresponding item in EncodingTable.
@@ -738,9 +785,6 @@ namespace System.Text
public virtual String WebName
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
if (dataItem==null) {
@@ -894,9 +938,6 @@ namespace System.Text
public static Encoding ASCII
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
if (asciiEncoding == null) asciiEncoding = new ASCIIEncoding();
@@ -1013,9 +1054,6 @@ namespace System.Text
// of characters in a character array.
//
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public virtual byte[] GetBytes(char[] chars, int index, int count)
{
byte[] result = new byte[GetByteCount(chars, index, count)];
@@ -1117,7 +1155,7 @@ namespace System.Text
// Do the work
int result = GetBytes(arrChar, 0, charCount, arrByte, 0);
- // The only way this could fail is a bug in GetBytes
+ // The only way this could fail is a
Contract.Assert(result <= byteCount, "[Encoding.GetBytes]Returned more bytes than we have space for");
// Copy the byte array
@@ -1277,7 +1315,7 @@ namespace System.Text
// Do the work
int result = GetChars(arrByte, 0, byteCount, arrChar, 0);
- // The only way this could fail is a bug in GetChars
+ // The only way this could fail is a
Contract.Assert(result <= charCount, "[Encoding.GetChars]Returned more chars than we have space for");
// Copy the char array
@@ -1305,6 +1343,22 @@ namespace System.Text
return GetChars(bytes, byteCount, chars, charCount);
}
+
+ [System.Security.SecurityCritical] // auto-generated
+ [CLSCompliant(false)]
+ [System.Runtime.InteropServices.ComVisible(false)]
+ public unsafe string GetString(byte* bytes, int byteCount)
+ {
+ if (bytes == null)
+ throw new ArgumentNullException("bytes", Environment.GetResourceString("ArgumentNull_Array"));
+
+ if (byteCount < 0)
+ throw new ArgumentOutOfRangeException("byteCount", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+ Contract.EndContractBlock();
+
+ return String.CreateStringFromEncoding(bytes, byteCount, this);
+ }
+
// Returns the code page identifier of this encoding. The returned value is
// an integer between 0 and 65535 if the encoding has a code page
// identifier, or -1 if the encoding does not represent a code page.
@@ -1401,9 +1455,6 @@ namespace System.Text
public static Encoding Default {
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
if (defaultEncoding == null) {
defaultEncoding = CreateDefaultEncoding();
@@ -1489,9 +1540,6 @@ namespace System.Text
//
public static Encoding Unicode {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
if (unicodeEncoding == null) unicodeEncoding = new UnicodeEncoding(false, true);
return unicodeEncoding;
@@ -1528,9 +1576,6 @@ namespace System.Text
//
public static Encoding UTF8 {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
if (utf8Encoding == null) utf8Encoding = new UTF8Encoding(true);
return utf8Encoding;
diff --git a/mcs/class/referencesource/mscorlib/system/text/encodingprovider.cs b/mcs/class/referencesource/mscorlib/system/text/encodingprovider.cs
new file mode 100644
index 00000000000..b51f22228ee
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/text/encodingprovider.cs
@@ -0,0 +1,138 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+namespace System.Text
+{
+ using System;
+ using System.Collections;
+ using System.Collections.Generic;
+
+ [System.Runtime.InteropServices.ComVisible(true)]
+ public abstract class EncodingProvider
+ {
+ public EncodingProvider() { }
+ public abstract Encoding GetEncoding(string name);
+ public abstract Encoding GetEncoding(int codepage);
+
+ // GetEncoding should return either valid encoding or null. shouldn't throw any exception except on null name
+ public virtual Encoding GetEncoding(string name, EncoderFallback encoderFallback, DecoderFallback decoderFallback)
+ {
+ Encoding enc = GetEncoding(name);
+ if (enc != null)
+ {
+ enc = (Encoding)GetEncoding(name).Clone();
+ enc.EncoderFallback = encoderFallback;
+ enc.DecoderFallback = decoderFallback;
+ }
+
+ return enc;
+ }
+
+ public virtual Encoding GetEncoding(int codepage, EncoderFallback encoderFallback, DecoderFallback decoderFallback)
+ {
+ Encoding enc = GetEncoding(codepage);
+ if (enc != null)
+ {
+ enc = (Encoding)GetEncoding(codepage).Clone();
+ enc.EncoderFallback = encoderFallback;
+ enc.DecoderFallback = decoderFallback;
+ }
+
+ return enc;
+ }
+
+ internal static void AddProvider(EncodingProvider provider)
+ {
+ if (provider == null)
+ throw new ArgumentNullException("provider");
+
+ lock (s_InternalSyncObject)
+ {
+ if (s_providers == null)
+ {
+ s_providers = new EncodingProvider[1] { provider };
+ return;
+ }
+
+ if (Array.IndexOf(s_providers, provider) >= 0)
+ {
+ return;
+ }
+
+ var providers = new EncodingProvider[s_providers.Length + 1];
+ Array.Copy(s_providers, providers, s_providers.Length);
+ providers[providers.Length - 1] = provider;
+ s_providers = providers;
+ }
+ }
+
+ internal static Encoding GetEncodingFromProvider(int codepage)
+ {
+ if (s_providers == null)
+ return null;
+
+ var providers = s_providers;
+ foreach (EncodingProvider provider in providers)
+ {
+ Encoding enc = provider.GetEncoding(codepage);
+ if (enc != null)
+ return enc;
+ }
+
+ return null;
+ }
+
+ internal static Encoding GetEncodingFromProvider(string encodingName)
+ {
+ if (s_providers == null)
+ return null;
+
+ var providers = s_providers;
+ foreach (EncodingProvider provider in providers)
+ {
+ Encoding enc = provider.GetEncoding(encodingName);
+ if (enc != null)
+ return enc;
+ }
+
+ return null;
+ }
+
+ internal static Encoding GetEncodingFromProvider(int codepage, EncoderFallback enc, DecoderFallback dec)
+ {
+ if (s_providers == null)
+ return null;
+
+ var providers = s_providers;
+ foreach (EncodingProvider provider in providers)
+ {
+ Encoding encing = provider.GetEncoding(codepage, enc, dec);
+ if (encing != null)
+ return encing;
+ }
+
+ return null;
+ }
+
+ internal static Encoding GetEncodingFromProvider(string encodingName, EncoderFallback enc, DecoderFallback dec)
+ {
+ if (s_providers == null)
+ return null;
+
+ var providers = s_providers;
+ foreach (EncodingProvider provider in providers)
+ {
+ Encoding encoding = provider.GetEncoding(encodingName, enc, dec);
+ if (encoding != null)
+ return encoding;
+ }
+
+ return null;
+ }
+
+ private static Object s_InternalSyncObject = new Object();
+ private static volatile EncodingProvider[] s_providers;
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/text/gb18030encoding.cs b/mcs/class/referencesource/mscorlib/system/text/gb18030encoding.cs
index 57d2adb0949..63816b70b7d 100644
--- a/mcs/class/referencesource/mscorlib/system/text/gb18030encoding.cs
+++ b/mcs/class/referencesource/mscorlib/system/text/gb18030encoding.cs
@@ -12,78 +12,78 @@
// Abstract:
//
// Managed implimentation of GB18030-2000 (code page 54936) ported from implimentation in c_g18030.dll
-// If you find a bug here you should check there (in windows) as well and visa versa.
-// This file contains functions to convert GB18030-2000 (code page 54936) into Unicode, and vice versa.
-//
-// Notes:
-// GB18030-2000 (aka GBK2K) is designed to be mostly compatible with GBK (codepage 936),
-// while supports the full range of Unicode code points (BMP + 16 supplementary planes).
-//
-// The structure for GB18030 is:
-// * Single byte:
-// 0x00 ~ 0x7f
-// * Two-byte:
-// 0x81 ~ 0xfe, 0x40 ~ 0x7e (leading byte, trailing byte)
-// 0x81 ~ 0xfe, 0x80 ~ 0xfe (leading byte, trailing byte)
-// * Four-byte:
-// 0x81 ~ 0xfe, 0x30 ~ 0x39, 0x81 ~ 0xfe, 0x30 ~ 0x39.
-// The surrogare pair will be encoded from 0x90, 0x30, 0x81, 0x30
-//
-// The BMP range is fully supported in GB18030 using 1-byte, 2-byte and 4-byte sequences.
-// In valid 4-byte GB18030, there are two gaps that can not be mapped to Unicode characters.
-// 0x84, 0x31, 0xa5, 0x30 (just after the GB18030 bytes for U+FFFF(*)) ~ 0x8f, 0x39, 0xfe, 0x39 (just before the first GB18030 bytes for U+D800,U+DC00)
-// 0xe3, 0x32, 0x9a, 0x36 (just after the GB18030 bytes for U+DBFF U+DFFF(**)) ~ 0xfe, 0x39, 0xfe, 0x39
-//
-//
-// Note1: U+FFFF = 0x84, 0x31, 0xa4, 0x39
-// Note2: U+DBFF U+DFFF = 0xe3, 0x32, 0x9a, 0x35
-//
-// Tables used in GB18030Encoding:
-//
-// Our data is similar to the 936 Code Page, so we start from there to build our tables. We build the
-// normal double byte mapUnicodeToBytes and mapBytesToUnicode tables by applying differences from 936.
-// We also build a map4BytesToUnicode table and a mapUnicodeTo4BytesFlags
-//
-// * mapUnicodeTo4BytesFlags
-// This is an array of bytes, so we have to do a / 8 and << %8 to check the appropriate bit (see Is4Byte())
-// If the bit is set its true.
-//
-// true - If set/true this is a 4 byte code. The value in mapUnicodeToBytes will be the 4 byte offset
-// false - If cleared/false this is a 1 or 2 byte code. The value in mapUnicodeToBytes will be the 2 bytes.
-//
-// * mapUnicodeToBytes
-// Contains either the 2 byte value of double byte GB18030 or the 4 byte offset for 4 byte GB18030,
-// depending on the value of the flag in mapUnicodeTo4BytesFlags
-//
-// * mapBytesToUnicode
-// mapBytesToUnicode maps 2 byte GB 18030 to Unicode like other DBCS code pages.
-//
-// * map4BytesToUnicode
-// map4BytesToUnicode is indexed by the 4 byte offset and contains the unicode value for each 4 byte offset
-//
-//
-// 4 Byte sequences
-// We generally use the offset for the 4 byte sequence, such as:
-//
-// The index value is the offset of the 4-byte GB18030.
-//
-// 4-byte GB18030 Index value
-// ============== ===========
-// 81,30,81,30 0
-// 81,30,81,31 1
-// 81,30,81,32 2
-// ... ...
-//
-// The value of map4BytesToUnicode cotains the Unicode codepoint for the offset of the
-// corresponding 4-byte GB18030.
-//
-// E.g. map4BytesToUnicode[0] = 0x0080. This means that GB18030 0x81, 0x30, 0x81, 0x30 will be converted to Unicode U+0800.
-//
-// 4 Byte Surrogate Sequences
-// Those work similarly to the normal 4 byte sequences, but start at a different offset
-//
-// We don't override IsAlwaysNormalized because GB18030 covers all of the unicode space, so isn't guaranteed to be normal.
-//
+// If you find a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
#if FEATURE_CODEPAGES_FILE // requires BaseCodePageEncooding
namespace System.Text
{
diff --git a/mcs/class/referencesource/mscorlib/system/text/iso2022encoding.cs b/mcs/class/referencesource/mscorlib/system/text/iso2022encoding.cs
index 6443a665fbf..39c6e68ba70 100644
--- a/mcs/class/referencesource/mscorlib/system/text/iso2022encoding.cs
+++ b/mcs/class/referencesource/mscorlib/system/text/iso2022encoding.cs
@@ -11,7 +11,7 @@
// Abstract:
//
// Managed implimentation of ISO 2022 code pages, ported from the implimentation in c_is2022.dll
-// This code should be kept in [....] with the other implimentations
+// This code should be kept in sync with the other implimentations
// This encoding wraps the basic encodings in code that adds the shift in/out wrapper methods
//
// Notes:
diff --git a/mcs/class/referencesource/mscorlib/system/text/normalization.cs b/mcs/class/referencesource/mscorlib/system/text/normalization.cs
index 2e4f14051ef..954f3abc4e1 100644
--- a/mcs/class/referencesource/mscorlib/system/text/normalization.cs
+++ b/mcs/class/referencesource/mscorlib/system/text/normalization.cs
@@ -214,7 +214,7 @@ namespace System.Text
Environment.GetResourceString("Arg_OutOfMemoryException"));
default:
throw new InvalidOperationException(
- Environment.GetRuntimeResourceString("UnknownError_Num", iError));
+ Environment.GetResourceString("UnknownError_Num", iError));
}
return result;
@@ -249,7 +249,7 @@ namespace System.Text
// Who knows what happened? Not us!
throw new InvalidOperationException(
- Environment.GetRuntimeResourceString("UnknownError_Num", iError));
+ Environment.GetResourceString("UnknownError_Num", iError));
}
// Don't break for empty strings (only possible for D & KD and not really possible at that)
@@ -295,7 +295,7 @@ namespace System.Text
default:
// We shouldn't get here...
throw new InvalidOperationException(
- Environment.GetRuntimeResourceString("UnknownError_Num", iError));
+ Environment.GetResourceString("UnknownError_Num", iError));
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/text/stringbuilder.cs b/mcs/class/referencesource/mscorlib/system/text/stringbuilder.cs
index a87a9a9cb31..357bfe6c6ae 100644
--- a/mcs/class/referencesource/mscorlib/system/text/stringbuilder.cs
+++ b/mcs/class/referencesource/mscorlib/system/text/stringbuilder.cs
@@ -85,18 +85,12 @@ namespace System.Text {
// Creates a new empty string builder (i.e., it represents String.Empty)
// with the default capacity (16 characters).
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public StringBuilder()
: this(DefaultCapacity) {
}
// Create a new empty string builder (i.e., it represents String.Empty)
// with the specified capacity.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public StringBuilder(int capacity)
: this(String.Empty, capacity) {
}
@@ -116,9 +110,6 @@ namespace System.Text {
// (i.e., it will also represent String.NullString).
// The maximum number of characters this string may contain is set by capacity.
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public StringBuilder(String value, int capacity)
: this(value, 0, ((value != null) ? value.Length : 0), capacity) {
}
@@ -295,9 +286,6 @@ namespace System.Text {
}
public int Capacity {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return m_ChunkChars.Length + m_ChunkOffset; }
set {
if (value < 0) {
@@ -468,9 +456,6 @@ namespace System.Text {
// instance, nulls are appended. The capacity is adjusted to be the same as the length.
public int Length {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
Contract.Ensures(Contract.Result<int>() >= 0);
return m_ChunkOffset + m_ChunkLength;
@@ -687,9 +672,6 @@ namespace System.Text {
// We put this fixed in its own helper to avoid the cost zero initing valueChars in the
// case we don't actually use it.
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
private void AppendHelper(string value) {
unsafe {
fixed (char* valueChars = value)
@@ -700,17 +682,11 @@ namespace System.Text {
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
[SecurityCritical]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
internal unsafe extern void ReplaceBufferInternal(char* newBuffer, int newLength);
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
[SecurityCritical]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
internal unsafe extern void ReplaceBufferAnsiInternal(sbyte* newBuffer, int newLength);
#endif
// Appends a copy of the characters in value from startIndex to startIndex +
@@ -968,9 +944,6 @@ namespace System.Text {
// Appends an int to this string builder.
// The capacity is adjusted as needed.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public StringBuilder Append(int value) {
Contract.Ensures(Contract.Result<StringBuilder>() != null);
return Append(value.ToString(CultureInfo.CurrentCulture));
@@ -1028,9 +1001,6 @@ namespace System.Text {
// Appends an Object to this string builder.
// The capacity is adjusted as needed.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public StringBuilder Append(Object value) {
Contract.Ensures(Contract.Result<StringBuilder>() != null);
@@ -1291,37 +1261,70 @@ namespace System.Text {
return Insert(index, value.ToString(), 1);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public StringBuilder AppendFormat(String format, Object arg0) {
Contract.Ensures(Contract.Result<StringBuilder>() != null);
- return AppendFormat(null, format, new Object[] { arg0 });
+ return AppendFormatHelper(null, format, new ParamsArray(arg0));
}
public StringBuilder AppendFormat(String format, Object arg0, Object arg1) {
Contract.Ensures(Contract.Result<StringBuilder>() != null);
- return AppendFormat(null, format, new Object[] { arg0, arg1 });
+ return AppendFormatHelper(null, format, new ParamsArray(arg0, arg1));
}
public StringBuilder AppendFormat(String format, Object arg0, Object arg1, Object arg2) {
Contract.Ensures(Contract.Result<StringBuilder>() != null);
- return AppendFormat(null, format, new Object[] { arg0, arg1, arg2 });
+ return AppendFormatHelper(null, format, new ParamsArray(arg0, arg1, arg2));
}
public StringBuilder AppendFormat(String format, params Object[] args) {
- Contract.Ensures(Contract.Result<StringBuilder>() != null);
- return AppendFormat(null, format, args);
+ if (args == null)
+ {
+ // To preserve the original exception behavior, throw an exception about format if both
+ // args and format are null. The actual null check for format is in AppendFormatHelper.
+ throw new ArgumentNullException((format == null) ? "format" : "args");
+ }
+ Contract.Ensures(Contract.Result<String>() != null);
+ Contract.EndContractBlock();
+
+ return AppendFormatHelper(null, format, new ParamsArray(args));
}
- private static void FormatError() {
- throw new FormatException(Environment.GetResourceString("Format_InvalidString"));
+ public StringBuilder AppendFormat(IFormatProvider provider, String format, Object arg0) {
+ Contract.Ensures(Contract.Result<StringBuilder>() != null);
+ return AppendFormatHelper(provider, format, new ParamsArray(arg0));
}
-
+
+ public StringBuilder AppendFormat(IFormatProvider provider, String format, Object arg0, Object arg1) {
+ Contract.Ensures(Contract.Result<StringBuilder>() != null);
+ return AppendFormatHelper(provider, format, new ParamsArray(arg0, arg1));
+ }
+
+ public StringBuilder AppendFormat(IFormatProvider provider, String format, Object arg0, Object arg1, Object arg2) {
+ Contract.Ensures(Contract.Result<StringBuilder>() != null);
+ return AppendFormatHelper(provider, format, new ParamsArray(arg0, arg1, arg2));
+ }
+
public StringBuilder AppendFormat(IFormatProvider provider, String format, params Object[] args) {
- if (format == null || args == null) {
+ if (args == null)
+ {
+ // To preserve the original exception behavior, throw an exception about format if both
+ // args and format are null. The actual null check for format is in AppendFormatHelper.
throw new ArgumentNullException((format == null) ? "format" : "args");
}
+ Contract.Ensures(Contract.Result<String>() != null);
+ Contract.EndContractBlock();
+
+ return AppendFormatHelper(provider, format, new ParamsArray(args));
+ }
+
+ private static void FormatError() {
+ throw new FormatException(Environment.GetResourceString("Format_InvalidString"));
+ }
+
+ internal StringBuilder AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args) {
+ if (format == null) {
+ throw new ArgumentNullException("format");
+ }
Contract.Ensures(Contract.Result<StringBuilder>() != null);
Contract.EndContractBlock();
@@ -1659,10 +1662,14 @@ namespace System.Text {
/// Appends 'value' of length 'count' to the stringBuilder.
/// </summary>
[SecurityCritical]
- internal unsafe StringBuilder Append(char* value, int valueCount)
+ [System.CLSCompliantAttribute(false)]
+ public unsafe StringBuilder Append(char* value, int valueCount)
{
- Contract.Assert(value != null, "Value can't be null");
- Contract.Assert(valueCount >= 0, "Count can't be negative");
+ // We don't check null value as this case will throw null reference exception anyway
+ if (valueCount < 0)
+ {
+ throw new ArgumentOutOfRangeException("valueCount", Environment.GetResourceString("ArgumentOutOfRange_NegativeCount"));
+ }
// This case is so common we want to optimize for it heavily.
int newIndex = valueCount + m_ChunkLength;
@@ -1876,9 +1883,6 @@ namespace System.Text {
}
#if !MONO
// Copies the source StringBuilder to the destination IntPtr memory allocated with len bytes.
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
[System.Security.SecurityCritical] // auto-generated
internal unsafe void InternalCopy(IntPtr dest, int len) {
if(len ==0)
diff --git a/mcs/class/referencesource/mscorlib/system/text/unicodeencoding.cs b/mcs/class/referencesource/mscorlib/system/text/unicodeencoding.cs
index a5124cf0eb3..a4854fdb7a8 100644
--- a/mcs/class/referencesource/mscorlib/system/text/unicodeencoding.cs
+++ b/mcs/class/referencesource/mscorlib/system/text/unicodeencoding.cs
@@ -84,7 +84,7 @@ namespace System.Text
//
// The following methods are copied from EncodingNLS.cs.
// Unfortunately EncodingNLS.cs is internal and we're public, so we have to reimpliment them here.
- // These should be kept in [....] for the following classes:
+ // These should be kept in sync for the following classes:
// EncodingNLS, UTF7Encoding, UTF8Encoding, UTF32Encoding, ASCIIEncoding, UnicodeEncoding
//
diff --git a/mcs/class/referencesource/mscorlib/system/text/utf32encoding.cs b/mcs/class/referencesource/mscorlib/system/text/utf32encoding.cs
index 6b6eaa06a59..3a80fa65d86 100644
--- a/mcs/class/referencesource/mscorlib/system/text/utf32encoding.cs
+++ b/mcs/class/referencesource/mscorlib/system/text/utf32encoding.cs
@@ -85,7 +85,7 @@ namespace System.Text
//
// The following methods are copied from EncodingNLS.cs.
// Unfortunately EncodingNLS.cs is internal and we're public, so we have to reimpliment them here.
- // These should be kept in [....] for the following classes:
+ // These should be kept in sync for the following classes:
// EncodingNLS, UTF7Encoding, UTF8Encoding, UTF32Encoding, ASCIIEncoding, UnicodeEncoding
//
diff --git a/mcs/class/referencesource/mscorlib/system/text/utf7encoding.cs b/mcs/class/referencesource/mscorlib/system/text/utf7encoding.cs
index 9da1fcb524b..b8d6403c2d6 100644
--- a/mcs/class/referencesource/mscorlib/system/text/utf7encoding.cs
+++ b/mcs/class/referencesource/mscorlib/system/text/utf7encoding.cs
@@ -149,7 +149,7 @@ namespace System.Text
//
// The following methods are copied from EncodingNLS.cs.
// Unfortunately EncodingNLS.cs is internal and we're public, so we have to reimpliment them here.
- // These should be kept in [....] for the following classes:
+ // These should be kept in sync for the following classes:
// EncodingNLS, UTF7Encoding, UTF8Encoding, UTF32Encoding, ASCIIEncoding, UnicodeEncoding
//
diff --git a/mcs/class/referencesource/mscorlib/system/text/utf8encoding.cs b/mcs/class/referencesource/mscorlib/system/text/utf8encoding.cs
index fca5a790fed..02e89abd0e6 100644
--- a/mcs/class/referencesource/mscorlib/system/text/utf8encoding.cs
+++ b/mcs/class/referencesource/mscorlib/system/text/utf8encoding.cs
@@ -107,7 +107,7 @@ namespace System.Text
//
// The following methods are copied from EncodingNLS.cs.
// Unfortunately EncodingNLS.cs is internal and we're public, so we have to reimpliment them here.
- // These should be kept in [....] for the following classes:
+ // These should be kept in sync for the following classes:
// EncodingNLS, UTF7Encoding, UTF8Encoding, UTF32Encoding, ASCIIEncoding, UnicodeEncoding
//
diff --git a/mcs/class/referencesource/mscorlib/system/threadattributes.cs b/mcs/class/referencesource/mscorlib/system/threadattributes.cs
index 9eb711a58c1..ac4cd73cb3a 100644
--- a/mcs/class/referencesource/mscorlib/system/threadattributes.cs
+++ b/mcs/class/referencesource/mscorlib/system/threadattributes.cs
@@ -19,9 +19,6 @@
namespace System {
[AttributeUsage (AttributeTargets.Method)]
[System.Runtime.InteropServices.ComVisible(true)]
-#if FEATURE_CORECLR && !FEATURE_NETCORE
- [Obsolete("STAThreadAttribute is not supported in this release. It has been left in so that legacy tools can be used with this release, but it cannot be used in your code.", true)]
-#endif // FEATURE_CORECLR
public sealed class STAThreadAttribute : Attribute
{
public STAThreadAttribute()
diff --git a/mcs/class/referencesource/mscorlib/system/threading/CDSsyncETWBCLProvider.cs b/mcs/class/referencesource/mscorlib/system/threading/CDSsyncETWBCLProvider.cs
index c6ec27a1370..6038171c503 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/CDSsyncETWBCLProvider.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/CDSsyncETWBCLProvider.cs
@@ -7,12 +7,12 @@
//
// CdsSyncEtwBCLProvider.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A helper class for firing ETW events related to the Coordination Data Structure
-// [....] primitives. This provider is used by CDS [....] primitives in both mscorlib.dll
+// sync primitives. This provider is used by CDS sync primitives in both mscorlib.dll
// and system.dll. The purpose of sharing the provider class is to be able to enable
-// ETW tracing on all CDS [....] types with a single ETW provider GUID, and to minimize
+// ETW tracing on all CDS sync types with a single ETW provider GUID, and to minimize
// the number of providers in use.
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
@@ -36,8 +36,8 @@ namespace System.Threading
internal sealed class CdsSyncEtwBCLProvider : EventSource
{
/// <summary>
- /// Defines the singleton instance for the CDS [....] ETW provider.
- /// The CDS [....] Event provider GUID is {EC631D38-466B-4290-9306-834971BA0217}.
+ /// Defines the singleton instance for the CDS Sync ETW provider.
+ /// The CDS Sync Event provider GUID is {EC631D38-466B-4290-9306-834971BA0217}.
/// </summary>
public static CdsSyncEtwBCLProvider Log = new CdsSyncEtwBCLProvider();
/// <summary>Prevent external instantiation. All logging should go through the Log instance.</summary>
diff --git a/mcs/class/referencesource/mscorlib/system/threading/CancellationToken.cs b/mcs/class/referencesource/mscorlib/system/threading/CancellationToken.cs
index c2ea89ac2b3..5367d15d323 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/CancellationToken.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/CancellationToken.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
////////////////////////////////////////////////////////////////////////////////
#pragma warning disable 0420 // turn off 'a reference to a volatile field will not be treated as volatile' during CAS.
@@ -61,9 +61,6 @@ namespace System.Threading
/// </remarks>
public static CancellationToken None
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return default(CancellationToken); }
}
@@ -88,9 +85,6 @@ namespace System.Threading
/// </remarks>
public bool IsCancellationRequested
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
return m_source != null && m_source.IsCancellationRequested;
@@ -107,9 +101,6 @@ namespace System.Threading
/// </remarks>
public bool CanBeCanceled
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
return m_source != null && m_source.CanBeCanceled;
@@ -146,9 +137,6 @@ namespace System.Threading
/// <summary>
/// Internal constructor only a CancellationTokenSource should create a CancellationToken
/// </summary>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal CancellationToken(CancellationTokenSource source)
{
m_source = source;
@@ -203,8 +191,6 @@ namespace System.Threading
/// <returns>The <see cref="T:System.Threading.CancellationTokenRegistration"/> instance that can
/// be used to deregister the callback.</returns>
/// <exception cref="T:System.ArgumentNullException"><paramref name="callback"/> is null.</exception>
- /// <exception cref="T:System.ObjectDisposedException">The associated <see
- /// cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
public CancellationTokenRegistration Register(Action callback)
{
if (callback == null)
@@ -240,8 +226,6 @@ namespace System.Threading
/// <returns>The <see cref="T:System.Threading.CancellationTokenRegistration"/> instance that can
/// be used to deregister the callback.</returns>
/// <exception cref="T:System.ArgumentNullException"><paramref name="callback"/> is null.</exception>
- /// <exception cref="T:System.ObjectDisposedException">The associated <see
- /// cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
public CancellationTokenRegistration Register(Action callback, bool useSynchronizationContext)
{
if (callback == null)
@@ -275,8 +259,6 @@ namespace System.Threading
/// <returns>The <see cref="T:System.Threading.CancellationTokenRegistration"/> instance that can
/// be used to deregister the callback.</returns>
/// <exception cref="T:System.ArgumentNullException"><paramref name="callback"/> is null.</exception>
- /// <exception cref="T:System.ObjectDisposedException">The associated <see
- /// cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
public CancellationTokenRegistration Register(Action<Object> callback, Object state)
{
if (callback == null)
@@ -352,8 +334,8 @@ namespace System.Threading
return new CancellationTokenRegistration(); // nothing to do for tokens than can never reach the canceled state. Give them a dummy registration.
}
- // Capture [....]/execution contexts if required.
- // Note: Only capture [....]/execution contexts if IsCancellationRequested = false
+ // Capture sync/execution contexts if required.
+ // Note: Only capture sync/execution contexts if IsCancellationRequested = false
// as we know that if it is true that the callback will just be called synchronously.
SynchronizationContext capturedSyncContext = null;
@@ -481,9 +463,6 @@ namespace System.Threading
/// <exception cref="System.OperationCanceledException">The token has had cancellation requested.</exception>
/// <exception cref="T:System.ObjectDisposedException">The associated <see
/// cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public void ThrowIfCancellationRequested()
{
if (IsCancellationRequested)
diff --git a/mcs/class/referencesource/mscorlib/system/threading/CancellationTokenRegistration.cs b/mcs/class/referencesource/mscorlib/system/threading/CancellationTokenRegistration.cs
index a340d721ca0..11dbf0bd3c1 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/CancellationTokenRegistration.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/CancellationTokenRegistration.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
////////////////////////////////////////////////////////////////////////////////
using System.Diagnostics.Contracts;
diff --git a/mcs/class/referencesource/mscorlib/system/threading/CancellationTokenSource.cs b/mcs/class/referencesource/mscorlib/system/threading/CancellationTokenSource.cs
index a0a682b8598..5080d1cafbf 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/CancellationTokenSource.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/CancellationTokenSource.cs
@@ -5,7 +5,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
////////////////////////////////////////////////////////////////////////////////
using System;
@@ -115,9 +115,6 @@ namespace System.Threading
/// </remarks>
public bool IsCancellationRequested
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return m_state >= NOTIFYING; }
}
@@ -156,9 +153,6 @@ namespace System.Threading
/// disposed.</exception>
public CancellationToken Token
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
ThrowIfDisposed();
@@ -174,9 +168,6 @@ namespace System.Threading
/// </summary>
internal bool CanBeCanceled
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return m_state != CANNOT_BE_CANCELED; }
}
@@ -260,9 +251,6 @@ namespace System.Threading
/// <summary>
/// Initializes the <see cref="T:System.Threading.CancellationTokenSource"/>.
/// </summary>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public CancellationTokenSource()
{
m_state = NOT_CANCELED;
@@ -572,6 +560,15 @@ namespace System.Threading
// This is safe without locks because the reg.Dispose() only
// mutates a sparseArrayFragment and then reads from properties of the CTS that are not
// invalidated by cts.Dispose().
+ //
+ // We also tolerate that a callback can be registered after the CTS has been
+ // disposed. This is safe without locks because InternalRegister is tolerant
+ // of m_registeredCallbacksLists becoming null during its execution. However,
+ // we run the acceptable risk of m_registeredCallbacksLists getting reinitialized
+ // to non-null if there is a ---- between Dispose and Register, in which case this
+ // instance may unnecessarily hold onto a registered callback. But that's no worse
+ // than if Dispose wasn't safe to use concurrently, as Dispose would never be called,
+ // and thus no handlers would be dropped.
if (m_disposed != 0 || Interlocked.CompareExchange (ref m_disposed, 1, 0) != 0)
return;
@@ -606,9 +603,6 @@ namespace System.Threading
/// <summary>
/// Throws an exception if the source has been disposed.
/// </summary>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal void ThrowIfDisposed()
{
if (m_disposed == 1)
@@ -638,7 +632,10 @@ namespace System.Threading
internal CancellationTokenRegistration InternalRegister(
Action<object> callback, object stateForCallback, SynchronizationContext targetSyncContext, ExecutionContext executionContext)
{
- ThrowIfDisposed();
+ if (AppContextSwitches.ThrowExceptionIfDisposedCancellationTokenSource)
+ {
+ ThrowIfDisposed();
+ }
// the CancellationToken has already checked that the token is cancelable before calling this method.
Contract.Assert(CanBeCanceled, "Cannot register for uncancelable token src");
@@ -650,6 +647,20 @@ namespace System.Threading
if (!IsCancellationRequested)
{
+ // In order to enable code to not leak too many handlers, we allow Dispose to be called concurrently
+ // with Register. While this is not a recommended practice, consumers can and do use it this way.
+ // We don't make any guarantees about whether the CTS will hold onto the supplied callback
+ // if the CTS has already been disposed when the callback is registered, but we try not to
+ // while at the same time not paying any non-negligible overhead. The simple compromise
+ // is to check whether we're disposed (not volatile), and if we see we are, to return an empty
+ // registration, just as if CanBeCanceled was false for the check made in CancellationToken.Register.
+ // If there's a ---- and m_disposed is false even though it's been disposed, or if the disposal request
+ // comes in after this line, we simply run the minor risk of having m_registeredCallbacksLists reinitialized
+ // (after it was cleared to null during Dispose).
+
+ if (m_disposed && !AppContextSwitches.ThrowExceptionIfDisposedCancellationTokenSource)
+ return new CancellationTokenRegistration();
+
int myIndex = Thread.CurrentThread.ManagedThreadId % s_nLists;
CancellationCallbackInfo callbackInfo = new CancellationCallbackInfo(callback, stateForCallback, targetSyncContext, executionContext, this);
@@ -776,7 +787,7 @@ namespace System.Threading
m_executingCallback = currArrayFragment[i];
if (m_executingCallback != null)
{
- //Transition to the target [....] context (if necessary), and continue our work there.
+ //Transition to the target sync context (if necessary), and continue our work there.
CancellationCallbackCoreWorkArguments args = new CancellationCallbackCoreWorkArguments(currArrayFragment, i);
// marshal exceptions: either aggregate or perform an immediate rethrow
@@ -842,7 +853,7 @@ namespace System.Threading
{
if (callback.TargetExecutionContext != null)
{
- // we are running via a custom [....] context, so update the executing threadID
+ // we are running via a custom sync context, so update the executing threadID
callback.CancellationTokenSource.ThreadIDExecutingCallbacks = Thread.CurrentThread.ManagedThreadId;
}
callback.ExecuteCallback();
@@ -858,9 +869,6 @@ namespace System.Threading
/// <param name="token2">The second <see cref="T:System.Threading.CancellationToken">CancellationToken</see> to observe.</param>
/// <returns>A <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> that is linked
/// to the source tokens.</returns>
- /// <exception cref="T:System.ObjectDisposedException">A <see
- /// cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with
- /// one of the source tokens has been disposed.</exception>
public static CancellationTokenSource CreateLinkedTokenSource(CancellationToken token1, CancellationToken token2)
{
CancellationTokenSource linkedTokenSource = new CancellationTokenSource();
@@ -895,9 +903,6 @@ namespace System.Threading
/// <returns>A <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> that is linked
/// to the source tokens.</returns>
/// <exception cref="T:System.ArgumentNullException"><paramref name="tokens"/> is null.</exception>
- /// <exception cref="T:System.ObjectDisposedException">A <see
- /// cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with
- /// one of the source tokens has been disposed.</exception>
public static CancellationTokenSource CreateLinkedTokenSource(params CancellationToken[] tokens)
{
if (tokens == null)
@@ -944,7 +949,7 @@ namespace System.Threading
// ----------------------------------------------------------
// -- CancellationCallbackCoreWorkArguments --
// ----------------------------------------------------------
- // Helper struct for passing data to the target [....] context
+ // Helper struct for passing data to the target sync context
internal struct CancellationCallbackCoreWorkArguments
{
internal SparselyPopulatedArrayFragment<CancellationCallbackInfo> m_currArrayFragment;
diff --git a/mcs/class/referencesource/mscorlib/system/threading/CountdownEvent.cs b/mcs/class/referencesource/mscorlib/system/threading/CountdownEvent.cs
index 4e1addf985a..1f1e95ee3a5 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/CountdownEvent.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/CountdownEvent.cs
@@ -7,7 +7,7 @@
//
// CountdownEvent.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A simple coordination data structure that we use for fork/join style parallelism.
//
@@ -115,7 +115,7 @@ namespace System.Threading
// The latch is "completed" if its current count has reached 0. Note that this is NOT
// the same thing is checking the event's IsCompleted property. There is a tiny window
// of time, after the final decrement of the current count to 0 and before setting the
- // event, where the two values are out of [....].
+ // event, where the two values are out of sync.
return (m_currentCount <= 0);
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/threading/LazyInitializer.cs b/mcs/class/referencesource/mscorlib/system/threading/LazyInitializer.cs
index 7be5f6a1a6c..f34e183d051 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/LazyInitializer.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/LazyInitializer.cs
@@ -7,7 +7,7 @@
//
// LazyInitializer.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// a set of lightweight static helpers for lazy initialization.
//
diff --git a/mcs/class/referencesource/mscorlib/system/threading/ManualResetEventSlim.cs b/mcs/class/referencesource/mscorlib/system/threading/ManualResetEventSlim.cs
index 7d9e15d1084..2d1278ab9be 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/ManualResetEventSlim.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/ManualResetEventSlim.cs
@@ -8,7 +8,7 @@
//
// SlimManualResetEvent.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// An manual-reset event that mixes a little spinning with a true Win32 event.
//
@@ -281,7 +281,7 @@ namespace System.Threading
// guarantee only one event is actually stored in this field.
if (Interlocked.CompareExchange(ref m_eventObj, newEventObj, null) != null)
{
- // We ----d with someone else and lost. Destroy the garbage event.
+ // We raced with someone else and lost. Destroy the garbage event.
newEventObj.Close();
return false;
diff --git a/mcs/class/referencesource/mscorlib/system/threading/SemaphoreSlim.cs b/mcs/class/referencesource/mscorlib/system/threading/SemaphoreSlim.cs
index f97d1ccc833..ddda1718769 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/SemaphoreSlim.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/SemaphoreSlim.cs
@@ -7,7 +7,7 @@
//
// SemaphoreSlim.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A lightweight semahore class that contains the basic semaphore functions plus some useful functions like interrupt
// and wait handle exposing to allow waiting on multiple semaphores.
diff --git a/mcs/class/referencesource/mscorlib/system/threading/SpinLock.cs b/mcs/class/referencesource/mscorlib/system/threading/SpinLock.cs
index 6dd635a31df..78e7968eb12 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/SpinLock.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/SpinLock.cs
@@ -11,7 +11,7 @@
// repeatedly checking until the lock becomes available. As the thread remains active performing a non-useful task,
// the use of such a lock is a kind of busy waiting and consumes CPU resources without performing real work.
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/threading/SpinWait.cs b/mcs/class/referencesource/mscorlib/system/threading/SpinWait.cs
index 3fb4a1fdc81..596f9885a41 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/SpinWait.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/SpinWait.cs
@@ -7,7 +7,7 @@
//
// SpinWait.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Central spin logic used across the entire code-base.
//
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/AsyncCausalityTracer.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/AsyncCausalityTracer.cs
index 28ab48749b6..2fb3b6ba01c 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/AsyncCausalityTracer.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/AsyncCausalityTracer.cs
@@ -1,4 +1,3 @@
-#if !FEATURE_PAL && !FEATURE_CORECLR
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
@@ -10,12 +9,17 @@
using System;
using System.Security;
+using System.Diagnostics;
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
+
+#if FEATURE_COMINTEROP
using System.Runtime.InteropServices.WindowsRuntime;
using WFD = Windows.Foundation.Diagnostics;
+#endif
+
namespace System.Threading.Tasks
{
@@ -23,39 +27,89 @@ namespace System.Threading.Tasks
[FriendAccessAllowed]
internal enum CausalityTraceLevel
{
+#if FEATURE_COMINTEROP
Required = WFD.CausalityTraceLevel.Required,
Important = WFD.CausalityTraceLevel.Important,
Verbose = WFD.CausalityTraceLevel.Verbose
+#else
+ Required,
+ Important,
+ Verbose
+#endif
}
[FriendAccessAllowed]
internal enum AsyncCausalityStatus
{
+#if FEATURE_COMINTEROP
Canceled = WFD.AsyncCausalityStatus.Canceled,
Completed = WFD.AsyncCausalityStatus.Completed,
Error = WFD.AsyncCausalityStatus.Error,
Started = WFD.AsyncCausalityStatus.Started
+#else
+ Started,
+ Completed,
+ Canceled,
+ Error
+#endif
}
internal enum CausalityRelation
{
+#if FEATURE_COMINTEROP
AssignDelegate = WFD.CausalityRelation.AssignDelegate,
Join = WFD.CausalityRelation.Join,
Choice = WFD.CausalityRelation.Choice,
Cancel = WFD.CausalityRelation.Cancel,
Error = WFD.CausalityRelation.Error
+#else
+ AssignDelegate,
+ Join,
+ Choice,
+ Cancel,
+ Error
+#endif
}
internal enum CausalitySynchronousWork
{
+#if FEATURE_COMINTEROP
CompletionNotification = WFD.CausalitySynchronousWork.CompletionNotification,
ProgressNotification = WFD.CausalitySynchronousWork.ProgressNotification,
Execution = WFD.CausalitySynchronousWork.Execution
+#else
+ CompletionNotification,
+ ProgressNotification,
+ Execution
+#endif
}
[FriendAccessAllowed]
internal static class AsyncCausalityTracer
{
+ static internal void EnableToETW(bool enabled)
+ {
+ if (enabled)
+ f_LoggingOn |= Loggers.ETW;
+ else
+ f_LoggingOn &= ~Loggers.ETW;
+ }
+
+ [FriendAccessAllowed]
+ internal static bool LoggingOn
+ {
+ [FriendAccessAllowed]
+ get
+ {
+#if FEATURE_COMINTEROP
+ return f_LoggingOn != 0;
+#else
+ return false;
+#endif
+ }
+ }
+
+#if FEATURE_COMINTEROP
//s_PlatformId = {4B0171A6-F3D0-41A0-9B33-02550652B995}
private static readonly Guid s_PlatformId = new Guid(0x4B0171A6, 0xF3D0, 0x41A0, 0x9B, 0x33, 0x02, 0x55, 0x06, 0x52, 0xB9, 0x95);
@@ -65,33 +119,23 @@ namespace System.Threading.Tasks
//Lazy initialize the actual factory
private static WFD.IAsyncCausalityTracerStatics s_TracerFactory;
- //We receive the actual value for these as a callback
- private static bool f_LoggingOn; //assumes false by default
-
- [FriendAccessAllowed]
- internal static bool LoggingOn
- {
- [FriendAccessAllowed]
- get
- {
- if (!f_FactoryInitialized)
- FactoryInitialized();
-
- return f_LoggingOn;
- }
+ // The loggers that this Tracer knows about.
+ [Flags]
+ private enum Loggers : byte {
+ CausalityTracer = 1,
+ ETW = 2
}
- private static bool f_FactoryInitialized; //assumes false by default
- private static object _InitializationLock = new object();
- //explicit cache
- private static readonly Func<WFD.IAsyncCausalityTracerStatics> s_loadFactoryDelegate = LoadFactory;
+ //We receive the actual value for these as a callback
+ private static Loggers f_LoggingOn; //assumes false by default
+ // The precise static constructor will run first time somebody attempts to access this class
[SecuritySafeCritical]
- private static WFD.IAsyncCausalityTracerStatics LoadFactory()
+ static AsyncCausalityTracer()
{
- if (!Environment.IsWinRTSupported) return null;
-
+ if (!Environment.IsWinRTSupported) return;
+
//COM Class Id
string ClassId = "Windows.Foundation.Diagnostics.AsyncCausalityTracer";
@@ -99,84 +143,149 @@ namespace System.Threading.Tasks
Guid guid = new Guid(0x50850B26, 0x267E, 0x451B, 0xA8, 0x90, 0XAB, 0x6A, 0x37, 0x02, 0x45, 0xEE);
Object factory = null;
-
- WFD.IAsyncCausalityTracerStatics validFactory = null;
try
{
int hresult = Microsoft.Win32.UnsafeNativeMethods.RoGetActivationFactory(ClassId, ref guid, out factory);
- if (hresult < 0 || factory == null) return null; //This prevents having an exception thrown in case IAsyncCausalityTracerStatics isn't registered.
+ if (hresult < 0 || factory == null) return; //This prevents having an exception thrown in case IAsyncCausalityTracerStatics isn't registered.
- validFactory = (WFD.IAsyncCausalityTracerStatics)factory;
+ s_TracerFactory = (WFD.IAsyncCausalityTracerStatics)factory;
- EventRegistrationToken token = validFactory.add_TracingStatusChanged(new EventHandler<WFD.TracingStatusChangedEventArgs>(TracingStatusChangedHandler));
- Contract.Assert(token != null, "EventRegistrationToken is null");
+ EventRegistrationToken token = s_TracerFactory.add_TracingStatusChanged(new EventHandler<WFD.TracingStatusChangedEventArgs>(TracingStatusChangedHandler));
+ Contract.Assert(token != default(EventRegistrationToken), "EventRegistrationToken is null");
}
- catch (Exception)
+ catch (Exception ex)
{
// Although catching generic Exception is not recommended, this file is one exception
// since we don't want to propagate any kind of exception to the user since all we are
// doing here depends on internal state.
- return null;
+ LogAndDisable(ex);
}
-
- return validFactory;
- }
-
- private static bool FactoryInitialized()
- {
- return (LazyInitializer.EnsureInitialized(ref s_TracerFactory, ref f_FactoryInitialized, ref _InitializationLock, s_loadFactoryDelegate) != null);
+
}
[SecuritySafeCritical]
private static void TracingStatusChangedHandler(Object sender, WFD.TracingStatusChangedEventArgs args)
{
- f_LoggingOn = args.Enabled;
+ if (args.Enabled)
+ f_LoggingOn |= Loggers.CausalityTracer;
+ else
+ f_LoggingOn &= ~Loggers.CausalityTracer;
}
+#endif
+
+ //
+ // The TraceXXX methods should be called only if LoggingOn property returned true
+ //
[FriendAccessAllowed]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)] // Tracking is slow path. Disable inlining for it.
internal static void TraceOperationCreation(CausalityTraceLevel traceLevel, int taskId, string operationName, ulong relatedContext)
{
- if (LoggingOn)
+#if FEATURE_COMINTEROP
+ try
+ {
+ if ((f_LoggingOn & Loggers.ETW) != 0)
+ TplEtwProvider.Log.TraceOperationBegin(taskId, operationName, (long) relatedContext);
+ if ((f_LoggingOn & Loggers.CausalityTracer) != 0)
+ s_TracerFactory.TraceOperationCreation((WFD.CausalityTraceLevel)traceLevel, s_CausalitySource, s_PlatformId, GetOperationId((uint)taskId), operationName, relatedContext);
+ }
+ catch(Exception ex)
{
- s_TracerFactory.TraceOperationCreation((WFD.CausalityTraceLevel)traceLevel, s_CausalitySource, s_PlatformId, GetOperationId((uint)taskId), operationName, relatedContext);
+ //view function comment
+ LogAndDisable(ex);
}
+#endif
}
[FriendAccessAllowed]
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
internal static void TraceOperationCompletion(CausalityTraceLevel traceLevel, int taskId, AsyncCausalityStatus status)
{
- if (LoggingOn)
+#if FEATURE_COMINTEROP
+ try
+ {
+ if ((f_LoggingOn & Loggers.ETW) != 0)
+ TplEtwProvider.Log.TraceOperationEnd(taskId, status);
+ if ((f_LoggingOn & Loggers.CausalityTracer) != 0)
+ s_TracerFactory.TraceOperationCompletion((WFD.CausalityTraceLevel)traceLevel, s_CausalitySource, s_PlatformId, GetOperationId((uint)taskId), (WFD.AsyncCausalityStatus)status);
+ }
+ catch(Exception ex)
{
- s_TracerFactory.TraceOperationCompletion((WFD.CausalityTraceLevel)traceLevel, s_CausalitySource, s_PlatformId, GetOperationId((uint)taskId), (WFD.AsyncCausalityStatus)status);
+ //view function comment
+ LogAndDisable(ex);
}
+#endif
}
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
internal static void TraceOperationRelation(CausalityTraceLevel traceLevel, int taskId, CausalityRelation relation)
{
- if (LoggingOn)
+#if FEATURE_COMINTEROP
+ try
+ {
+ if ((f_LoggingOn & Loggers.ETW) != 0)
+ TplEtwProvider.Log.TraceOperationRelation(taskId, relation);
+ if ((f_LoggingOn & Loggers.CausalityTracer) != 0)
+ s_TracerFactory.TraceOperationRelation((WFD.CausalityTraceLevel)traceLevel, s_CausalitySource, s_PlatformId, GetOperationId((uint)taskId), (WFD.CausalityRelation)relation);
+ }
+ catch(Exception ex)
{
- s_TracerFactory.TraceOperationRelation((WFD.CausalityTraceLevel)traceLevel, s_CausalitySource, s_PlatformId, GetOperationId((uint)taskId), (WFD.CausalityRelation)relation);
+ //view function comment
+ LogAndDisable(ex);
}
+#endif
}
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
internal static void TraceSynchronousWorkStart(CausalityTraceLevel traceLevel, int taskId, CausalitySynchronousWork work)
{
- if (LoggingOn)
+#if FEATURE_COMINTEROP
+ try
+ {
+ if ((f_LoggingOn & Loggers.ETW) != 0)
+ TplEtwProvider.Log.TraceSynchronousWorkBegin(taskId, work);
+ if ((f_LoggingOn & Loggers.CausalityTracer) != 0)
+ s_TracerFactory.TraceSynchronousWorkStart((WFD.CausalityTraceLevel)traceLevel, s_CausalitySource, s_PlatformId, GetOperationId((uint)taskId), (WFD.CausalitySynchronousWork)work);
+ }
+ catch(Exception ex)
{
- s_TracerFactory.TraceSynchronousWorkStart((WFD.CausalityTraceLevel)traceLevel, s_CausalitySource, s_PlatformId, GetOperationId((uint)taskId), (WFD.CausalitySynchronousWork)work);
+ //view function comment
+ LogAndDisable(ex);
}
+#endif
}
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
internal static void TraceSynchronousWorkCompletion(CausalityTraceLevel traceLevel, CausalitySynchronousWork work)
{
- if (LoggingOn)
+#if FEATURE_COMINTEROP
+ try
+ {
+ if ((f_LoggingOn & Loggers.ETW) != 0)
+ TplEtwProvider.Log.TraceSynchronousWorkEnd(work);
+ if ((f_LoggingOn & Loggers.CausalityTracer) != 0)
+ s_TracerFactory.TraceSynchronousWorkCompletion((WFD.CausalityTraceLevel)traceLevel, s_CausalitySource, (WFD.CausalitySynchronousWork)work);
+ }
+ catch(Exception ex)
{
- s_TracerFactory.TraceSynchronousWorkCompletion((WFD.CausalityTraceLevel)traceLevel, s_CausalitySource, (WFD.CausalitySynchronousWork)work);
+ //view function comment
+ LogAndDisable(ex);
}
+#endif
}
+#if FEATURE_COMINTEROP
+ //fix for 796185: leaking internal exceptions to customers,
+ //we should catch and log exceptions but never propagate them.
+ private static void LogAndDisable(Exception ex)
+ {
+ f_LoggingOn = 0;
+ Debugger.Log(0, "AsyncCausalityTracer", ex.ToString());
+ }
+#endif
+
private static ulong GetOperationId(uint taskId)
{
return (((ulong)AppDomain.CurrentDomain.Id) << 32) + taskId;
@@ -184,5 +293,3 @@ namespace System.Threading.Tasks
}
}
-
-#endif
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/BeginEndAwaitableAdapter.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/BeginEndAwaitableAdapter.cs
index 68b89d53aa9..73d21b566d3 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/BeginEndAwaitableAdapter.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/BeginEndAwaitableAdapter.cs
@@ -3,7 +3,7 @@
/// Copyright (c) Microsoft Corporation. All rights reserved.
/// </copyright>
///
-/// <owner>[....]</owner>
+/// <owner>Microsoft</owner>
/// <owner>gpaperin</owner>
///----------- ----------- ----------- ----------- ----------- -----------
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/ConcurrentExclusiveSchedulerPair.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/ConcurrentExclusiveSchedulerPair.cs
index 50e9a8122e8..ec8b1be4cb9 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/ConcurrentExclusiveSchedulerPair.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/ConcurrentExclusiveSchedulerPair.cs
@@ -7,7 +7,7 @@
//
// ConcurrentExclusiveSchedulerPair.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A pair of schedulers that together support concurrent (reader) / exclusive (writer)
// task scheduling. Using just the exclusive scheduler can be used to simulate a serial
@@ -70,7 +70,7 @@ namespace System.Threading.Tasks
/// <summary>Default MaxConcurrencyLevel is the processor count if not otherwise specified.</summary>
private static Int32 DefaultMaxConcurrencyLevel { get { return Environment.ProcessorCount; } }
- /// <summary>Gets the [....] obj used to protect all state on this instance.</summary>
+ /// <summary>Gets the sync obj used to protect all state on this instance.</summary>
private object ValueLock { get { return m_threadProcessingMapping; } }
/// <summary>
@@ -763,7 +763,7 @@ namespace System.Threading.Tasks
/// <param name="isReplacementReplica">If this task is being created to replace another.</param>
/// <remarks>
/// These options should be used for all tasks that have the potential to run user code or
- /// that are repeatedly spawned and thus need a modi---- of fair treatment.
+ /// that are repeatedly spawned and thus need a modicum of fair treatment.
/// </remarks>
/// <returns>The options to use.</returns>
internal static TaskCreationOptions GetCreationOptionsForTask(bool isReplacementReplica = false)
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/Future.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/Future.cs
index f8d097c6537..b04813409d8 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/Future.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/Future.cs
@@ -7,7 +7,7 @@
//
// Future.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A task that produces a value.
//
@@ -529,9 +529,6 @@ namespace System.Threading.Tasks
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
public TResult Result
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return IsWaitNotificationEnabledOrNotRanToCompletion ? GetResultCore(waitCompletionNotification: true) : m_result; }
}
@@ -544,9 +541,6 @@ namespace System.Threading.Tasks
/// </remarks>
internal TResult ResultOnSuccess
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
Contract.Assert(!IsWaitNotificationEnabledOrNotRanToCompletion,
@@ -695,15 +689,11 @@ namespace System.Threading.Tasks
Contract.Assert(false, "Invalid m_action in Task<TResult>");
}
-#if !FEATURE_CORECLR || FEATURE_NETCORE
#region Await Support
/// <summary>Gets an awaiter used to await this <see cref="System.Threading.Tasks.Task{TResult}"/>.</summary>
/// <returns>An awaiter instance.</returns>
/// <remarks>This method is intended for compiler user rather than use directly in code.</remarks>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public new TaskAwaiter<TResult> GetAwaiter()
{
return new TaskAwaiter<TResult>(this);
@@ -714,16 +704,13 @@ namespace System.Threading.Tasks
/// true to attempt to marshal the continuation back to the original context captured; otherwise, false.
/// </param>
/// <returns>An object used to await this task.</returns>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public new ConfiguredTaskAwaitable<TResult> ConfigureAwait(bool continueOnCapturedContext)
{
return new ConfiguredTaskAwaitable<TResult>(this, continueOnCapturedContext);
}
#endregion
-#endif
+
#region Continuation methods
#region Action<Task<TResult>> continuations
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/FutureFactory.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/FutureFactory.cs
index f17b2462e40..afe64ec37d0 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/FutureFactory.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/FutureFactory.cs
@@ -7,7 +7,7 @@
//
// FutureFactory.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// As with TaskFactory, TaskFactory<TResult> encodes common factory patterns into helper methods.
//
@@ -68,9 +68,7 @@ namespace System.Threading.Tasks
{
if (m_defaultScheduler != null) return m_defaultScheduler;
else if ((currTask != null)
-#if !FEATURE_CORECLR || FEATURE_NETCORE
&& ((currTask.CreationOptions & TaskCreationOptions.HideScheduler) == 0)
-#endif
)
return currTask.ExecutingTaskScheduler;
else return TaskScheduler.Default;
@@ -574,7 +572,6 @@ namespace System.Threading.Tasks
}
else
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, promise.Id, AsyncCausalityStatus.Completed);
@@ -582,7 +579,6 @@ namespace System.Threading.Tasks
{
Task.RemoveFromActiveTasks(promise.Id);
}
-#endif
if (requiresSynchronization)
{
promise.TrySetResult(result);
@@ -710,7 +706,6 @@ namespace System.Threading.Tasks
Task<TResult> promise = new Task<TResult>((object)null, creationOptions);
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, promise.Id, "TaskFactory.FromAsync", 0);
@@ -718,7 +713,6 @@ namespace System.Threading.Tasks
{
Task.AddToActiveTasks(promise);
}
-#endif
// Just specify this task as detached. No matter what happens, we want endMethod
// to be called -- even if the parent is canceled. So we don't want to flow
@@ -730,7 +724,6 @@ namespace System.Threading.Tasks
(object)null, null,
default(CancellationToken), TaskCreationOptions.None, InternalTaskOptions.None, null, ref stackMark);
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Verbose, t.Id, "TaskFactory.FromAsync Callback", 0);
@@ -738,7 +731,6 @@ namespace System.Threading.Tasks
{
Task.AddToActiveTasks(t);
}
-#endif
if (asyncResult.IsCompleted)
{
@@ -833,7 +825,6 @@ namespace System.Threading.Tasks
Task<TResult> promise = new Task<TResult>(state, creationOptions);
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, promise.Id, "TaskFactory.FromAsync: " + beginMethod.Method.Name, 0);
@@ -841,7 +832,6 @@ namespace System.Threading.Tasks
{
Task.AddToActiveTasks(promise);
}
-#endif
try
{
@@ -876,7 +866,6 @@ namespace System.Threading.Tasks
}
catch
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, promise.Id, AsyncCausalityStatus.Error);
@@ -884,7 +873,7 @@ namespace System.Threading.Tasks
{
Task.RemoveFromActiveTasks(promise.Id);
}
-#endif
+
// Make sure we don't leave promise "dangling".
promise.TrySetResult(default(TResult));
throw;
@@ -974,7 +963,6 @@ namespace System.Threading.Tasks
Task<TResult> promise = new Task<TResult>(state, creationOptions);
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, promise.Id, "TaskFactory.FromAsync: " + beginMethod.Method.Name, 0);
@@ -982,7 +970,6 @@ namespace System.Threading.Tasks
{
Task.AddToActiveTasks(promise);
}
-#endif
try
{
@@ -1016,7 +1003,7 @@ namespace System.Threading.Tasks
}
catch
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
+
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, promise.Id, AsyncCausalityStatus.Error);
@@ -1024,7 +1011,7 @@ namespace System.Threading.Tasks
{
Task.RemoveFromActiveTasks(promise.Id);
}
-#endif
+
// Make sure we don't leave promise "dangling".
promise.TrySetResult(default(TResult));
throw;
@@ -1122,7 +1109,6 @@ namespace System.Threading.Tasks
Task<TResult> promise = new Task<TResult>(state, creationOptions);
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, promise.Id, "TaskFactory.FromAsync: " + beginMethod.Method.Name, 0);
@@ -1130,7 +1116,6 @@ namespace System.Threading.Tasks
{
Task.AddToActiveTasks(promise);
}
-#endif
try
{
@@ -1164,7 +1149,6 @@ namespace System.Threading.Tasks
}
catch
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, promise.Id, AsyncCausalityStatus.Error);
@@ -1172,7 +1156,7 @@ namespace System.Threading.Tasks
{
Task.RemoveFromActiveTasks(promise.Id);
}
-#endif
+
// Make sure we don't leave promise "dangling".
promise.TrySetResult(default(TResult));
throw;
@@ -1278,7 +1262,6 @@ namespace System.Threading.Tasks
Task<TResult> promise = new Task<TResult>(state, creationOptions);
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, promise.Id, "TaskFactory.FromAsync: " + beginMethod.Method.Name, 0);
@@ -1286,7 +1269,6 @@ namespace System.Threading.Tasks
{
Task.AddToActiveTasks(promise);
}
-#endif
try
{
@@ -1320,7 +1302,6 @@ namespace System.Threading.Tasks
}
catch
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, promise.Id, AsyncCausalityStatus.Error);
@@ -1328,7 +1309,7 @@ namespace System.Threading.Tasks
{
Task.RemoveFromActiveTasks(promise.Id);
}
-#endif
+
// Make sure we don't leave the promise "dangling".
promise.TrySetResult(default(TResult));
throw;
@@ -1808,9 +1789,7 @@ namespace System.Threading.Tasks
// Bail early if cancellation has been requested.
if (cancellationToken.IsCancellationRequested
-#if !FEATURE_CORECLR || FEATURE_NETCORE
&& ((continuationOptions & TaskContinuationOptions.LazyCancellation) == 0)
-#endif
)
{
return CreateCanceledTask(continuationOptions, cancellationToken);
@@ -1857,9 +1836,7 @@ namespace System.Threading.Tasks
// Bail early if cancellation has been requested.
if (cancellationToken.IsCancellationRequested
-#if !FEATURE_CORECLR || FEATURE_NETCORE
&& ((continuationOptions & TaskContinuationOptions.LazyCancellation) == 0)
-#endif
)
{
return CreateCanceledTask(continuationOptions, cancellationToken);
@@ -2213,9 +2190,7 @@ namespace System.Threading.Tasks
// Bail early if cancellation has been requested.
if (cancellationToken.IsCancellationRequested
-#if !FEATURE_CORECLR || FEATURE_NETCORE
&& ((continuationOptions & TaskContinuationOptions.LazyCancellation) == 0)
-#endif
)
{
return CreateCanceledTask(continuationOptions, cancellationToken);
@@ -2262,9 +2237,7 @@ namespace System.Threading.Tasks
// Bail early if cancellation has been requested.
if (cancellationToken.IsCancellationRequested
-#if !FEATURE_CORECLR || FEATURE_NETCORE
&& ((continuationOptions & TaskContinuationOptions.LazyCancellation) == 0)
-#endif
)
{
return CreateCanceledTask(continuationOptions, cancellationToken);
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/Parallel.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/Parallel.cs
index 612ac932e33..d2358ec0951 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/Parallel.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/Parallel.cs
@@ -7,7 +7,7 @@
//
// Parallel.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A helper class that contains parallel versions of various looping constructs. This
// internally uses the task parallel library, but takes care to expose very little
@@ -153,10 +153,8 @@ namespace System.Threading.Tasks
[HostProtection(Synchronization = true, ExternalThreading = true)]
public static class Parallel
{
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// static counter for generating unique Fork/Join Context IDs to be used in ETW events
internal static int s_forkJoinContextID;
-#endif
// We use a stride for loops to amortize the frequency of interlocked operations.
internal const int DEFAULT_LOOP_STRIDE = 16;
@@ -226,9 +224,11 @@ namespace System.Threading.Tasks
}
// Throw an ODE if we're passed a disposed CancellationToken.
- if (parallelOptions.CancellationToken.CanBeCanceled)
+ if (parallelOptions.CancellationToken.CanBeCanceled
+ && AppContextSwitches.ThrowExceptionIfDisposedCancellationTokenSource)
+ {
parallelOptions.CancellationToken.ThrowIfSourceDisposed();
-
+ }
// Quit early if we're already canceled -- avoid a bunch of work.
if (parallelOptions.CancellationToken.IsCancellationRequested)
throw new OperationCanceledException(parallelOptions.CancellationToken);
@@ -245,7 +245,6 @@ namespace System.Threading.Tasks
}
}
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for Parallel Invoke Begin
int forkJoinContextID = 0;
Task callerTask = null;
@@ -257,7 +256,6 @@ namespace System.Threading.Tasks
forkJoinContextID, TplEtwProvider.ForkJoinOperationType.ParallelInvoke,
actionsCopy.Length);
}
-#endif
#if DEBUG
actions = null; // Ensure we don't accidentally use this below.
@@ -361,12 +359,16 @@ namespace System.Threading.Tasks
throw new OperationCanceledException(parallelOptions.CancellationToken);
// Launch all actions as tasks
- for (int i = 0; i < tasks.Length; i++)
+ for (int i = 1; i < tasks.Length; i++)
{
tasks[i] = Task.Factory.StartNew(actionsCopy[i], parallelOptions.CancellationToken, TaskCreationOptions.None,
InternalTaskOptions.None, parallelOptions.EffectiveTaskScheduler);
}
+ // Optimization: Use current thread to run something before we block waiting for all tasks.
+ tasks[0] = new Task(actionsCopy[0]);
+ tasks[0].RunSynchronously(parallelOptions.EffectiveTaskScheduler);
+
// Now wait for the tasks to complete. This will not unblock until all of
// them complete, and it will throw an exception if one or more of them also
// threw an exception. We let such exceptions go completely unhandled.
@@ -400,14 +402,12 @@ namespace System.Threading.Tasks
}
finally
{
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for Parallel Invoke End
if (TplEtwProvider.Log.IsEnabled())
{
TplEtwProvider.Log.ParallelInvokeEnd((callerTask != null ? callerTask.m_taskScheduler.Id : TaskScheduler.Current.Id), (callerTask != null ? callerTask.Id : 0),
forkJoinContextID);
}
-#endif
}
}
@@ -1091,7 +1091,6 @@ namespace System.Threading.Tasks
}, null);
}
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for Parallel For begin
int forkJoinContextID = 0;
Task callingTask = null;
@@ -1103,9 +1102,8 @@ namespace System.Threading.Tasks
forkJoinContextID, TplEtwProvider.ForkJoinOperationType.ParallelFor,
fromInclusive, toExclusive);
}
-#endif
- ParallelForReplicatingTask rootTask = null; // eliminates "Use of unassigned local variable" compiler bug below.
+ ParallelForReplicatingTask rootTask = null; // eliminates "Use of unassigned local variable" compiler
try
{
@@ -1149,14 +1147,12 @@ namespace System.Threading.Tasks
return; // no need to run
}
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for ParallelFor Worker Fork
if (TplEtwProvider.Log.IsEnabled())
{
TplEtwProvider.Log.ParallelFork((currentWorkerTask != null ? currentWorkerTask.m_taskScheduler.Id : TaskScheduler.Current.Id), (currentWorkerTask != null ? currentWorkerTask.Id : 0),
forkJoinContextID);
}
-#endif
TLocal localValue = default(TLocal);
bool bLocalValueInitialized = false; // Tracks whether localInit ran without exceptions, so that we can skip localFinally if it wasn't
@@ -1254,14 +1250,12 @@ namespace System.Threading.Tasks
localFinally(localValue);
}
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for ParallelFor Worker Join
if (TplEtwProvider.Log.IsEnabled())
{
TplEtwProvider.Log.ParallelJoin((currentWorkerTask != null ? currentWorkerTask.m_taskScheduler.Id : TaskScheduler.Current.Id), (currentWorkerTask != null ? currentWorkerTask.Id : 0),
forkJoinContextID);
}
-#endif
}
},
creationOptions, internalOptions);
@@ -1312,8 +1306,6 @@ namespace System.Threading.Tasks
if ((rootTask != null) && rootTask.IsCompleted) rootTask.Dispose();
-
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for Parallel For End
if (TplEtwProvider.Log.IsEnabled())
{
@@ -1330,7 +1322,6 @@ namespace System.Threading.Tasks
TplEtwProvider.Log.ParallelLoopEnd((callingTask != null ? callingTask.m_taskScheduler.Id : TaskScheduler.Current.Id), (callingTask != null ? callingTask.Id : 0),
forkJoinContextID, nTotalIterations);
}
-#endif
}
return result;
@@ -1415,7 +1406,6 @@ namespace System.Threading.Tasks
}, null);
}
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for Parallel For begin
Task callerTask = null;
int forkJoinContextID = 0;
@@ -1427,10 +1417,8 @@ namespace System.Threading.Tasks
forkJoinContextID, TplEtwProvider.ForkJoinOperationType.ParallelFor,
fromInclusive, toExclusive);
}
-#endif
-
- ParallelForReplicatingTask rootTask = null; // eliminates "Use of unassigned local variable" compiler bug below.
+ ParallelForReplicatingTask rootTask = null; // eliminates "Use of unassigned local variable" compiler
try
{
@@ -1472,16 +1460,12 @@ namespace System.Threading.Tasks
return; // no need to run
}
-
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for ParallelFor Worker Fork
if (TplEtwProvider.Log.IsEnabled())
{
TplEtwProvider.Log.ParallelFork((currentWorkerTask != null ? currentWorkerTask.m_taskScheduler.Id : TaskScheduler.Current.Id), (currentWorkerTask != null ? currentWorkerTask.Id : 0),
forkJoinContextID);
}
-#endif
-
TLocal localValue = default(TLocal);
bool bLocalValueInitialized = false; // Tracks whether localInit ran without exceptions, so that we can skip localFinally if it wasn't
@@ -1579,14 +1563,12 @@ namespace System.Threading.Tasks
localFinally(localValue);
}
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for ParallelFor Worker Join
if (TplEtwProvider.Log.IsEnabled())
{
TplEtwProvider.Log.ParallelJoin((currentWorkerTask != null ? currentWorkerTask.m_taskScheduler.Id : TaskScheduler.Current.Id), (currentWorkerTask != null ? currentWorkerTask.Id : 0),
forkJoinContextID);
}
-#endif
}
},
creationOptions, internalOptions);
@@ -1637,7 +1619,6 @@ namespace System.Threading.Tasks
if ((rootTask != null) && rootTask.IsCompleted) rootTask.Dispose();
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for Parallel For End
if (TplEtwProvider.Log.IsEnabled())
{
@@ -1654,7 +1635,6 @@ namespace System.Threading.Tasks
TplEtwProvider.Log.ParallelLoopEnd((callerTask != null ? callerTask.m_taskScheduler.Id : TaskScheduler.Current.Id), (callerTask != null ? callerTask.Id : 0),
forkJoinContextID, nTotalIterations);
}
-#endif
}
return result;
@@ -3240,7 +3220,6 @@ namespace System.Threading.Tasks
throw new OperationCanceledException(parallelOptions.CancellationToken);
}
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for Parallel For begin
int forkJoinContextID = 0;
Task callerTask = null;
@@ -3252,7 +3231,6 @@ namespace System.Threading.Tasks
forkJoinContextID, TplEtwProvider.ForkJoinOperationType.ParallelForEach,
0, 0);
}
-#endif
// For all loops we need a shared flag even though we don't have a body with state,
// because the shared flag contains the exceptional bool, which triggers other workers
@@ -3307,14 +3285,12 @@ namespace System.Threading.Tasks
{
Task currentWorkerTask = Task.InternalCurrent;
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for ParallelForEach Worker Fork
if (TplEtwProvider.Log.IsEnabled())
{
TplEtwProvider.Log.ParallelFork((currentWorkerTask != null ? currentWorkerTask.m_taskScheduler.Id : TaskScheduler.Current.Id), (currentWorkerTask != null ? currentWorkerTask.Id : 0),
forkJoinContextID);
}
-#endif
TLocal localValue = default(TLocal);
bool bLocalValueInitialized = false; // Tracks whether localInit ran without exceptions, so that we can skip localFinally if it wasn't
@@ -3472,14 +3448,12 @@ namespace System.Threading.Tasks
myPartitionToDispose.Dispose();
}
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for ParallelFor Worker Join
if (TplEtwProvider.Log.IsEnabled())
{
TplEtwProvider.Log.ParallelJoin((currentWorkerTask != null ? currentWorkerTask.m_taskScheduler.Id : TaskScheduler.Current.Id), (currentWorkerTask != null ? currentWorkerTask.Id : 0),
forkJoinContextID);
}
-#endif
}
};
@@ -3556,15 +3530,12 @@ namespace System.Threading.Tasks
d.Dispose();
}
-
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for Parallel For End
if (TplEtwProvider.Log.IsEnabled())
{
TplEtwProvider.Log.ParallelLoopEnd((callerTask != null ? callerTask.m_taskScheduler.Id : TaskScheduler.Current.Id), (callerTask != null ? callerTask.Id : 0),
forkJoinContextID, 0);
}
-#endif
}
return result;
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/ParallelLoopState.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/ParallelLoopState.cs
index 2ae0c879045..4fd15a87a9c 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/ParallelLoopState.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/ParallelLoopState.cs
@@ -7,7 +7,7 @@
//
// ParallelState.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A non-generic and generic parallel state class, used by the Parallel helper class
// for parallel loop management.
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/ParallelRangeManager.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/ParallelRangeManager.cs
index 89d3b65b40e..7c625cf2292 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/ParallelRangeManager.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/ParallelRangeManager.cs
@@ -7,7 +7,7 @@
//
// ParallelRangeManager.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Implements the algorithm for distributing loop indices to parallel loop workers
//
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/ProducerConsumerQueues.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/ProducerConsumerQueues.cs
index 50febfcbcf4..b0b8db284d5 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/ProducerConsumerQueues.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/ProducerConsumerQueues.cs
@@ -7,7 +7,7 @@
//
// ProducerConsumerQueues.cs
//
-// <OWNER>[....], [....]</OWNER>
+// <OWNER>Microsoft, Microsoft</OWNER>
//
// Specialized producer/consumer queues.
//
@@ -58,7 +58,7 @@ namespace System.Threading.Tasks
int Count { get; }
/// <summary>A thread-safe way to get the number of items in the collection. May synchronize access by locking the provided synchronization object.</summary>
- /// <param name="syncObj">The [....] object used to lock</param>
+ /// <param name="syncObj">The sync object used to lock</param>
/// <returns>The collection count</returns>
int GetCountSafe(object syncObj);
}
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TPLETWProvider.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TPLETWProvider.cs
index 373af8c0f0e..005e7d3854c 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TPLETWProvider.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TPLETWProvider.cs
@@ -7,7 +7,7 @@
//
// TplEtwProvider.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// EventSource for TPL.
//
@@ -18,10 +18,10 @@ using System.Collections.Generic;
using System.Text;
using System.Security;
using System.Security.Permissions;
+using System.Runtime.CompilerServices;
namespace System.Threading.Tasks
{
-#if !FEATURE_PAL // PAL doesn't support eventing
using System.Diagnostics.Tracing;
/// <summary>Provides an event source for tracing TPL information.</summary>
@@ -31,6 +31,31 @@ namespace System.Threading.Tasks
LocalizationResources = "mscorlib")]
internal sealed class TplEtwProvider : EventSource
{
+ /// Used to determine if tasks should generate Activity IDs for themselves
+ internal bool TasksSetActivityIds; // This keyword is set
+ internal bool Debug;
+ private bool DebugActivityId;
+
+ /// <summary>
+ /// Get callbacks when the ETW sends us commands`
+ /// </summary>
+ protected override void OnEventCommand(EventCommandEventArgs command)
+ {
+ // To get the AsyncCausality events, we need to inform the AsyncCausalityTracer
+ if (command.Command == EventCommand.Enable)
+ AsyncCausalityTracer.EnableToETW(true);
+ else if (command.Command == EventCommand.Disable)
+ AsyncCausalityTracer.EnableToETW(false);
+
+ if (IsEnabled(EventLevel.Informational, Keywords.TasksFlowActivityIds))
+ ActivityTracker.Instance.Enable();
+ else
+ TasksSetActivityIds = IsEnabled(EventLevel.Informational, Keywords.TasksSetActivityIds);
+
+ Debug = IsEnabled(EventLevel.Informational, Keywords.Debug);
+ DebugActivityId = IsEnabled(EventLevel.Informational, Keywords.DebugActivityId);
+ }
+
/// <summary>
/// Defines the singleton instance for the TPL ETW provider.
/// The TPL Event provider GUID is {2e5dba47-a3d2-4d16-8ee0-6671ffdcd7b5}.
@@ -76,6 +101,10 @@ namespace System.Threading.Tasks
public const EventTask TaskScheduled = (EventTask)6;
/// <summary>An await task continuation is scheduled to execute.</summary>
public const EventTask AwaitTaskContinuationScheduled = (EventTask)7;
+
+ /// <summary>AsyncCausalityFunctionality.</summary>
+ public const EventTask TraceOperation = (EventTask)8;
+ public const EventTask TraceSynchronousWork = (EventTask)9;
}
public class Keywords // thisname is important for EventSource
@@ -94,6 +123,40 @@ namespace System.Threading.Tasks
/// Events associted with the higher level parallel APIs
/// </summary>
public const EventKeywords Parallel = (EventKeywords) 4;
+ /// <summary>
+ /// These are relatively verbose events that effectively just redirect
+ /// the windows AsyncCausalityTracer to ETW
+ /// </summary>
+ public const EventKeywords AsyncCausalityOperation = (EventKeywords) 8;
+ public const EventKeywords AsyncCausalityRelation = (EventKeywords) 0x10;
+ public const EventKeywords AsyncCausalitySynchronousWork = (EventKeywords) 0x20;
+
+ /// <summary>
+ /// Emit the stops as well as the schedule/start events
+ /// </summary>
+ public const EventKeywords TaskStops = (EventKeywords) 0x40;
+
+ /// <summary>
+ /// TasksFlowActivityIds indicate that activity ID flow from one task
+ /// to any task created by it.
+ /// </summary>
+ public const EventKeywords TasksFlowActivityIds = (EventKeywords) 0x80;
+
+ /// <summary>
+ /// TasksSetActivityIds will cause the task operations to set Activity Ids
+ /// This option is incompatible with TasksFlowActivityIds flow is ignored
+ /// if that keyword is set. This option is likley to be removed in the future
+ /// </summary>
+ public const EventKeywords TasksSetActivityIds = (EventKeywords) 0x10000;
+
+ /// <summary>
+ /// Relatively Verbose logging meant for debugging the Task library itself. Will probably be removed in the future
+ /// </summary>
+ public const EventKeywords Debug = (EventKeywords) 0x20000;
+ /// <summary>
+ /// Relatively Verbose logging meant for debugging the Task library itself. Will probably be removed in the future
+ /// </summary>
+ public const EventKeywords DebugActivityId = (EventKeywords) 0x40000;
}
/// <summary>Enabled for all keywords.</summary>
@@ -129,6 +192,18 @@ namespace System.Threading.Tasks
private const int TASKWAITEND_ID = 11;
/// <summary>A continuation of a task is scheduled.</summary>
private const int AWAITTASKCONTINUATIONSCHEDULED_ID = 12;
+ /// <summary>A continuation of a taskWaitEnd is complete </summary>
+ private const int TASKWAITCONTINUATIONCOMPLETE_ID = 13;
+ /// <summary>A continuation of a taskWaitEnd is complete </summary>
+ private const int TASKWAITCONTINUATIONSTARTED_ID = 19;
+
+ private const int TRACEOPERATIONSTART_ID = 14;
+ private const int TRACEOPERATIONSTOP_ID = 15;
+ private const int TRACEOPERATIONRELATION_ID = 16;
+ private const int TRACESYNCHRONOUSWORKSTART_ID = 17;
+ private const int TRACESYNCHRONOUSWORKSTOP_ID = 18;
+
+
//-----------------------------------------------------------------------------------
//
// Parallel Events
@@ -145,7 +220,8 @@ namespace System.Threading.Tasks
/// <param name="InclusiveFrom">The lower bound of the loop.</param>
/// <param name="ExclusiveTo">The upper bound of the loop.</param>
[SecuritySafeCritical]
- [Event(PARALLELLOOPBEGIN_ID, Level = EventLevel.Informational, Task = TplEtwProvider.Tasks.Loop, Opcode = EventOpcode.Start)]
+ [Event(PARALLELLOOPBEGIN_ID, Level = EventLevel.Informational, ActivityOptions=EventActivityOptions.Recursive,
+ Task = TplEtwProvider.Tasks.Loop, Opcode = EventOpcode.Start)]
public void ParallelLoopBegin(
int OriginatingTaskSchedulerID, int OriginatingTaskID, // PFX_COMMON_EVENT_HEADER
int ForkJoinContextID, ForkJoinOperationType OperationType, // PFX_FORKJOIN_COMMON_EVENT_HEADER
@@ -226,7 +302,8 @@ namespace System.Threading.Tasks
/// <param name="OperationType">The kind of fork/join operation.</param>
/// <param name="ActionCount">The number of actions being invoked.</param>
[SecuritySafeCritical]
- [Event(PARALLELINVOKEBEGIN_ID, Level = EventLevel.Informational, Task = TplEtwProvider.Tasks.Invoke, Opcode = EventOpcode.Start)]
+ [Event(PARALLELINVOKEBEGIN_ID, Level = EventLevel.Informational, ActivityOptions=EventActivityOptions.Recursive,
+ Task = TplEtwProvider.Tasks.Invoke, Opcode = EventOpcode.Start)]
public void ParallelInvokeBegin(
int OriginatingTaskSchedulerID, int OriginatingTaskID, // PFX_COMMON_EVENT_HEADER
int ForkJoinContextID, ForkJoinOperationType OperationType, // PFX_FORKJOIN_COMMON_EVENT_HEADER
@@ -286,7 +363,8 @@ namespace System.Threading.Tasks
/// <param name="OriginatingTaskSchedulerID">The scheduler ID.</param>
/// <param name="OriginatingTaskID">The task ID.</param>
/// <param name="ForkJoinContextID">The invoke ID.</param>
- [Event(PARALLELFORK_ID, Level = EventLevel.Verbose, Task = TplEtwProvider.Tasks.ForkJoin, Opcode = EventOpcode.Start)]
+ [Event(PARALLELFORK_ID, Level = EventLevel.Verbose, ActivityOptions=EventActivityOptions.Recursive,
+ Task = TplEtwProvider.Tasks.ForkJoin, Opcode = EventOpcode.Start)]
public void ParallelFork(
int OriginatingTaskSchedulerID, int OriginatingTaskID, // PFX_COMMON_EVENT_HEADER
int ForkJoinContextID)
@@ -338,11 +416,11 @@ namespace System.Threading.Tasks
/// <param name="CreatingTaskID">The task ID</param>
/// <param name="TaskCreationOptions">The options used to create the task.</param>
[SecuritySafeCritical]
- [Event(TASKSCHEDULED_ID, Task = Tasks.TaskScheduled, Opcode = EventOpcode.Send,
+ [Event(TASKSCHEDULED_ID, Task = Tasks.TaskScheduled, Version=1, Opcode = EventOpcode.Send,
Level = EventLevel.Informational, Keywords = Keywords.TaskTransfer|Keywords.Tasks)]
public void TaskScheduled(
int OriginatingTaskSchedulerID, int OriginatingTaskID, // PFX_COMMON_EVENT_HEADER
- int TaskID, int CreatingTaskID, int TaskCreationOptions)
+ int TaskID, int CreatingTaskID, int TaskCreationOptions, int appDomain)
{
// IsEnabled() call is an inlined quick check that makes this very fast when provider is off
if (IsEnabled() && IsEnabled(EventLevel.Informational, Keywords.TaskTransfer|Keywords.Tasks))
@@ -360,8 +438,13 @@ namespace System.Threading.Tasks
eventPayload[3].DataPointer = ((IntPtr) (&CreatingTaskID));
eventPayload[4].Size = sizeof(int);
eventPayload[4].DataPointer = ((IntPtr) (&TaskCreationOptions));
- Guid childActivityId = CreateGuidForTaskID(TaskID);
- WriteEventWithRelatedActivityIdCore(TASKSCHEDULED_ID, &childActivityId, 5, eventPayload);
+ if (TasksSetActivityIds)
+ {
+ Guid childActivityId = CreateGuidForTaskID(TaskID);
+ WriteEventWithRelatedActivityIdCore(TASKSCHEDULED_ID, &childActivityId, 5, eventPayload);
+ }
+ else
+ WriteEventCore(TASKSCHEDULED_ID, 5, eventPayload);
}
}
}
@@ -374,7 +457,7 @@ namespace System.Threading.Tasks
/// <param name="OriginatingTaskSchedulerID">The scheduler ID.</param>
/// <param name="OriginatingTaskID">The task ID.</param>
/// <param name="TaskID">The task ID.</param>
- [Event(TASKSTARTED_ID, Task = TplEtwProvider.Tasks.TaskExecute, Opcode = EventOpcode.Start,
+ [Event(TASKSTARTED_ID,
Level = EventLevel.Informational, Keywords = Keywords.Tasks)]
public void TaskStarted(
int OriginatingTaskSchedulerID, int OriginatingTaskID, // PFX_COMMON_EVENT_HEADER
@@ -394,8 +477,8 @@ namespace System.Threading.Tasks
/// <param name="TaskID">The task ID.</param>
/// <param name="IsExceptional">Whether the task completed due to an error.</param>
[SecuritySafeCritical]
- [Event(TASKCOMPLETED_ID, Version=1, Task = TplEtwProvider.Tasks.TaskExecute, Opcode = EventOpcode.Stop,
- Level = EventLevel.Informational, Keywords = Keywords.Tasks)]
+ [Event(TASKCOMPLETED_ID, Version=1,
+ Level = EventLevel.Informational, Keywords = Keywords.TaskStops)]
public void TaskCompleted(
int OriginatingTaskSchedulerID, int OriginatingTaskID, // PFX_COMMON_EVENT_HEADER
int TaskID, bool IsExceptional)
@@ -420,7 +503,7 @@ namespace System.Threading.Tasks
}
#endregion
- #region TaskWaitBegin
+ #region TaskWaitBegin
/// <summary>
/// Fired when starting to wait for a taks's completion explicitly or implicitly.
/// </summary>
@@ -428,18 +511,21 @@ namespace System.Threading.Tasks
/// <param name="OriginatingTaskID">The task ID.</param>
/// <param name="TaskID">The task ID.</param>
/// <param name="Behavior">Configured behavior for the wait.</param>
+ /// <param name="ContinueWithTaskID">If known, if 'TaskID' has a 'continueWith' task, mention give its ID here.
+ /// 0 means unknown. This allows better visualization of the common sequential chaining case.</param>
+ /// </summary>
[SecuritySafeCritical]
- [Event(TASKWAITBEGIN_ID, Version=1, Task = TplEtwProvider.Tasks.TaskWait, Opcode = EventOpcode.Send,
+ [Event(TASKWAITBEGIN_ID, Version=3, Task = TplEtwProvider.Tasks.TaskWait, Opcode = EventOpcode.Send,
Level = EventLevel.Informational, Keywords = Keywords.TaskTransfer|Keywords.Tasks)]
public void TaskWaitBegin(
int OriginatingTaskSchedulerID, int OriginatingTaskID, // PFX_COMMON_EVENT_HEADER
- int TaskID, TaskWaitBehavior Behavior)
+ int TaskID, TaskWaitBehavior Behavior, int ContinueWithTaskID, int appDomain)
{
if (IsEnabled() && IsEnabled(EventLevel.Informational, Keywords.TaskTransfer|Keywords.Tasks))
{
unsafe
{
- EventData* eventPayload = stackalloc EventData[4];
+ EventData* eventPayload = stackalloc EventData[5];
eventPayload[0].Size = sizeof(int);
eventPayload[0].DataPointer = ((IntPtr)(&OriginatingTaskSchedulerID));
eventPayload[1].Size = sizeof(int);
@@ -448,21 +534,27 @@ namespace System.Threading.Tasks
eventPayload[2].DataPointer = ((IntPtr)(&TaskID));
eventPayload[3].Size = sizeof(int);
eventPayload[3].DataPointer = ((IntPtr)(&Behavior));
- Guid childActivityId = CreateGuidForTaskID(TaskID);
- WriteEventWithRelatedActivityIdCore(TASKWAITBEGIN_ID, &childActivityId, 4, eventPayload);
+ eventPayload[4].Size = sizeof(int);
+ eventPayload[4].DataPointer = ((IntPtr)(&ContinueWithTaskID));
+ if (TasksSetActivityIds)
+ {
+ Guid childActivityId = CreateGuidForTaskID(TaskID);
+ WriteEventWithRelatedActivityIdCore(TASKWAITBEGIN_ID, &childActivityId, 5, eventPayload);
+ }
+ else
+ WriteEventCore(TASKWAITBEGIN_ID, 5, eventPayload);
}
}
}
#endregion
- #region TaskWaitEnd
/// <summary>
/// Fired when the wait for a tasks completion returns.
/// </summary>
/// <param name="OriginatingTaskSchedulerID">The scheduler ID.</param>
/// <param name="OriginatingTaskID">The task ID.</param>
/// <param name="TaskID">The task ID.</param>
- [Event(TASKWAITEND_ID, Task = TplEtwProvider.Tasks.TaskWait, Opcode = EventOpcode.Stop,
+ [Event(TASKWAITEND_ID,
Level = EventLevel.Verbose, Keywords = Keywords.Tasks)]
public void TaskWaitEnd(
int OriginatingTaskSchedulerID, int OriginatingTaskID, // PFX_COMMON_EVENT_HEADER
@@ -474,6 +566,36 @@ namespace System.Threading.Tasks
}
/// <summary>
+ /// Fired when the the work (method) associated with a TaskWaitEnd completes
+ /// </summary>
+ /// <param name="OriginatingTaskSchedulerID">The scheduler ID.</param>
+ /// <param name="OriginatingTaskID">The task ID.</param>
+ /// <param name="TaskID">The task ID.</param>
+ [Event(TASKWAITCONTINUATIONCOMPLETE_ID,
+ Level = EventLevel.Verbose, Keywords = Keywords.TaskStops)]
+ public void TaskWaitContinuationComplete(int TaskID)
+ {
+ // Log an event if indicated.
+ if (IsEnabled() && IsEnabled(EventLevel.Verbose, Keywords.Tasks))
+ WriteEvent(TASKWAITCONTINUATIONCOMPLETE_ID, TaskID);
+ }
+
+ /// <summary>
+ /// Fired when the the work (method) associated with a TaskWaitEnd completes
+ /// </summary>
+ /// <param name="OriginatingTaskSchedulerID">The scheduler ID.</param>
+ /// <param name="OriginatingTaskID">The task ID.</param>
+ /// <param name="TaskID">The task ID.</param>
+ [Event(TASKWAITCONTINUATIONSTARTED_ID,
+ Level = EventLevel.Verbose, Keywords = Keywords.TaskStops)]
+ public void TaskWaitContinuationStarted(int TaskID)
+ {
+ // Log an event if indicated.
+ if (IsEnabled() && IsEnabled(EventLevel.Verbose, Keywords.Tasks))
+ WriteEvent(TASKWAITCONTINUATIONSTARTED_ID, TaskID);
+ }
+
+ /// <summary>
/// Fired when the an asynchronous continuation for a task is scheduled
/// </summary>
/// <param name="OriginatingTaskSchedulerID">The scheduler ID.</param>
@@ -484,7 +606,7 @@ namespace System.Threading.Tasks
Level = EventLevel.Informational, Keywords = Keywords.TaskTransfer|Keywords.Tasks)]
public void AwaitTaskContinuationScheduled(
int OriginatingTaskSchedulerID, int OriginatingTaskID, // PFX_COMMON_EVENT_HEADER
- int continuationId)
+ int ContinuwWithTaskId)
{
if (IsEnabled() && IsEnabled(EventLevel.Informational, Keywords.TaskTransfer|Keywords.Tasks))
{
@@ -496,13 +618,131 @@ namespace System.Threading.Tasks
eventPayload[1].Size = sizeof(int);
eventPayload[1].DataPointer = ((IntPtr) (&OriginatingTaskID));
eventPayload[2].Size = sizeof(int);
- eventPayload[2].DataPointer = ((IntPtr) (&continuationId));
- Guid continuationActivityId = CreateGuidForTaskID(continuationId);
- WriteEventWithRelatedActivityIdCore(AWAITTASKCONTINUATIONSCHEDULED_ID, &continuationActivityId, 3, eventPayload);
+ eventPayload[2].DataPointer = ((IntPtr) (&ContinuwWithTaskId));
+ if (TasksSetActivityIds)
+ {
+ Guid continuationActivityId = CreateGuidForTaskID(ContinuwWithTaskId);
+ WriteEventWithRelatedActivityIdCore(AWAITTASKCONTINUATIONSCHEDULED_ID, &continuationActivityId, 3, eventPayload);
+ }
+ else
+ WriteEventCore(AWAITTASKCONTINUATIONSCHEDULED_ID, 3, eventPayload);
}
}
}
+ [SecuritySafeCritical]
+ [Event(TRACEOPERATIONSTART_ID, Version=1,
+ Level = EventLevel.Informational, Keywords = Keywords.AsyncCausalityOperation)]
+ public void TraceOperationBegin(int TaskID, string OperationName, long RelatedContext)
+ {
+ if (IsEnabled() && IsEnabled(EventLevel.Informational, Keywords.AsyncCausalityOperation))
+ {
+ unsafe
+ {
+ fixed(char* operationNamePtr = OperationName)
+ {
+ EventData* eventPayload = stackalloc EventData[3];
+ eventPayload[0].Size = sizeof(int);
+ eventPayload[0].DataPointer = ((IntPtr) (&TaskID));
+
+ eventPayload[1].Size = ((OperationName.Length + 1) * 2);
+ eventPayload[1].DataPointer = ((IntPtr) operationNamePtr);
+
+ eventPayload[2].Size = sizeof(long);
+ eventPayload[2].DataPointer = ((IntPtr) (&RelatedContext));
+ WriteEventCore(TRACEOPERATIONSTART_ID, 3, eventPayload);
+ }
+ }
+ }
+ }
+
+ [SecuritySafeCritical]
+ [Event(TRACEOPERATIONRELATION_ID, Version=1,
+ Level = EventLevel.Informational, Keywords = Keywords.AsyncCausalityRelation)]
+ public void TraceOperationRelation(int TaskID, CausalityRelation Relation)
+ {
+ if (IsEnabled() && IsEnabled(EventLevel.Informational, Keywords.AsyncCausalityRelation))
+ WriteEvent(TRACEOPERATIONRELATION_ID, TaskID,(int) Relation); // optmized overload for this exists
+ }
+
+ [SecuritySafeCritical]
+ [Event(TRACEOPERATIONSTOP_ID, Version=1,
+ Level = EventLevel.Informational, Keywords = Keywords.AsyncCausalityOperation)]
+ public void TraceOperationEnd(int TaskID, AsyncCausalityStatus Status)
+ {
+ if (IsEnabled() && IsEnabled(EventLevel.Informational, Keywords.AsyncCausalityOperation))
+ WriteEvent(TRACEOPERATIONSTOP_ID, TaskID,(int) Status); // optmized overload for this exists
+ }
+
+ [SecuritySafeCritical]
+ [Event(TRACESYNCHRONOUSWORKSTART_ID, Version=1,
+ Level = EventLevel.Informational, Keywords = Keywords.AsyncCausalitySynchronousWork)]
+ public void TraceSynchronousWorkBegin(int TaskID, CausalitySynchronousWork Work)
+ {
+ if (IsEnabled() && IsEnabled(EventLevel.Informational, Keywords.AsyncCausalitySynchronousWork))
+ WriteEvent(TRACESYNCHRONOUSWORKSTART_ID, TaskID,(int) Work); // optmized overload for this exists
+ }
+
+ [SecuritySafeCritical]
+ [Event(TRACESYNCHRONOUSWORKSTOP_ID, Version=1,
+ Level = EventLevel.Informational, Keywords = Keywords.AsyncCausalitySynchronousWork)]
+ public void TraceSynchronousWorkEnd(CausalitySynchronousWork Work)
+ {
+ if (IsEnabled() && IsEnabled(EventLevel.Informational, Keywords.AsyncCausalitySynchronousWork))
+ {
+ unsafe
+ {
+ EventData* eventPayload = stackalloc EventData[1];
+ eventPayload[0].Size = sizeof(int);
+ eventPayload[0].DataPointer = ((IntPtr) (&Work));
+
+ WriteEventCore(TRACESYNCHRONOUSWORKSTOP_ID, 1, eventPayload);
+ }
+ }
+ }
+
+ [NonEvent, System.Security.SecuritySafeCritical]
+ unsafe public void RunningContinuation(int TaskID, object Object) { RunningContinuation(TaskID, (long) *((void**) JitHelpers.UnsafeCastToStackPointer(ref Object))); }
+ [Event(20, Keywords = Keywords.Debug)]
+ private void RunningContinuation(int TaskID, long Object)
+ {
+ if (Debug)
+ WriteEvent(20, TaskID, Object);
+ }
+
+ [NonEvent, System.Security.SecuritySafeCritical]
+ unsafe public void RunningContinuationList(int TaskID, int Index, object Object) { RunningContinuationList(TaskID, Index, (long) *((void**) JitHelpers.UnsafeCastToStackPointer(ref Object))); }
+
+ [Event(21, Keywords = Keywords.Debug)]
+ public void RunningContinuationList(int TaskID, int Index, long Object)
+ {
+ if (Debug)
+ WriteEvent(21, TaskID, Index, Object);
+ }
+
+ [Event(22, Keywords = Keywords.Debug)]
+ public void DebugMessage(string Message) { WriteEvent(22, Message); }
+
+ [Event(23, Keywords = Keywords.Debug)]
+ public void DebugFacilityMessage(string Facility, string Message) { WriteEvent(23, Facility, Message); }
+
+ [Event(24, Keywords = Keywords.Debug)]
+ public void DebugFacilityMessage1(string Facility, string Message, string Value1) { WriteEvent(24, Facility, Message, Value1); }
+
+ [Event(25, Keywords = Keywords.DebugActivityId)]
+ public void SetActivityId(Guid NewId)
+ {
+ if (DebugActivityId)
+ WriteEvent(25, NewId);
+ }
+
+ [Event(26, Keywords = Keywords.Debug)]
+ public void NewID(int TaskID)
+ {
+ if (Debug)
+ WriteEvent(26, TaskID);
+ }
+
/// <summary>
/// Activity IDs are GUIDS but task IDS are integers (and are not unique across appdomains
/// This routine creates a process wide unique GUID given a task ID
@@ -515,12 +755,10 @@ namespace System.Threading.Tasks
// These were generated by CreateGuid, and are reasonably random (and thus unlikley to collide
uint pid = EventSource.s_currentPid;
int appDomainID = System.Threading.Thread.GetDomainID();
- return new Guid(taskID,
- (short) appDomainID , (short) (appDomainID >> 16),
- (byte)pid, (byte)(pid >> 8), (byte)(pid >> 16), (byte)(pid >> 24),
- 0xff, 0xdc, 0xd7, 0xb5);
+ return new Guid(taskID,
+ (short) appDomainID , (short) (appDomainID >> 16),
+ (byte)pid, (byte)(pid >> 8), (byte)(pid >> 16), (byte)(pid >> 24),
+ 0xff, 0xdc, 0xd7, 0xb5);
}
- #endregion
}
-#endif // !FEATURE_PAL
}
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs
index 13fd19158d0..cb9928edd6a 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs
@@ -7,7 +7,7 @@
//
// Task.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A schedulable unit of work.
//
@@ -16,7 +16,6 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
-using System.Collections.Concurrent;
using System.Runtime;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
@@ -27,9 +26,7 @@ using System.Threading;
using System.Diagnostics;
using System.Diagnostics.Contracts;
using Microsoft.Win32;
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
using System.Diagnostics.Tracing;
-#endif
// Disable the "reference to volatile field not treated as volatile" error.
#pragma warning disable 0420
@@ -208,7 +205,8 @@ namespace System.Threading.Tasks
// Values for ContingentProperties.m_internalCancellationRequested.
private const int CANCELLATION_REQUESTED = 0x1;
- // Can be null, a single continuation, a list of continuations, or s_taskCompletionSentinel.
+ // Can be null, a single continuation, a list of continuations, or s_taskCompletionSentinel,
+ // in that order. The logic arround this object assumes it will never regress to a previous state.
private volatile object m_continuationObject = null;
// m_continuationObject is set to this when the task completes.
@@ -219,10 +217,10 @@ namespace System.Threading.Tasks
[FriendAccessAllowed]
internal static bool s_asyncDebuggingEnabled; //false by default
-#if !FEATURE_PAL && !FEATURE_CORECLR
// This dictonary relates the task id, from an operation id located in the Async Causality log to the actual
// task. This is to be used by the debugger ONLY. Task in this dictionary represent current active tasks.
- private static readonly ConcurrentDictionary<int, Task> s_currentActiveTasks = new ConcurrentDictionary<int, Task>();
+ private static readonly Dictionary<int, Task> s_currentActiveTasks = new Dictionary<int, Task>();
+ private static readonly Object s_activeTasksLock = new Object();
// These methods are a way to access the dictionary both from this class and for other classes that also
// activate dummy tasks. Specifically the AsyncTaskMethodBuilder and AsyncTaskMethodBuilder<>
@@ -230,16 +228,22 @@ namespace System.Threading.Tasks
internal static bool AddToActiveTasks(Task task)
{
Contract.Requires(task != null, "Null Task objects can't be added to the ActiveTasks collection");
- return s_currentActiveTasks.TryAdd(task.Id, task);
+ lock (s_activeTasksLock)
+ {
+ s_currentActiveTasks[task.Id] = task;
+ }
+ //always return true to keep signature as bool for backwards compatibility
+ return true;
}
[FriendAccessAllowed]
internal static void RemoveFromActiveTasks(int taskId)
{
- Task ignored;
- s_currentActiveTasks.TryRemove(taskId, out ignored);
+ lock (s_activeTasksLock)
+ {
+ s_currentActiveTasks.Remove(taskId);
+ }
}
-#endif
// We moved a number of Task properties into this class. The idea is that in most cases, these properties never
// need to be accessed during the life cycle of a Task, so we don't want to instantiate them every time. Once
@@ -348,8 +352,9 @@ namespace System.Threading.Tasks
{
Contract.Assert(promiseStyle, "Promise CTOR: promiseStyle was false");
- // Check the creationOptions. We only allow the AttachedToParent option to be specified for promise tasks.
- if ((creationOptions & ~TaskCreationOptions.AttachedToParent) != 0)
+ // Check the creationOptions. We allow the AttachedToParent option to be specified for promise tasks.
+ // Also allow RunContinuationsAsynchronously because this is the constructor called by TCS
+ if ((creationOptions & ~(TaskCreationOptions.AttachedToParent | TaskCreationOptions.RunContinuationsAsynchronously)) != 0)
{
throw new ArgumentOutOfRangeException("creationOptions");
}
@@ -593,11 +598,10 @@ namespace System.Threading.Tasks
if ((creationOptions &
~(TaskCreationOptions.AttachedToParent |
TaskCreationOptions.LongRunning |
-#if !FEATURE_CORECLR || FEATURE_NETCORE
TaskCreationOptions.DenyChildAttach |
TaskCreationOptions.HideScheduler |
-#endif
- TaskCreationOptions.PreferFairness)) != 0)
+ TaskCreationOptions.PreferFairness |
+ TaskCreationOptions.RunContinuationsAsynchronously)) != 0)
{
throw new ArgumentOutOfRangeException("creationOptions");
}
@@ -610,9 +614,7 @@ namespace System.Threading.Tasks
InternalTaskOptions.ChildReplica |
InternalTaskOptions.PromiseTask |
InternalTaskOptions.ContinuationTask |
-#if !FEATURE_CORECLR || FEATURE_NETCORE
InternalTaskOptions.LazyCancellation |
-#endif
InternalTaskOptions.QueuedByRuntime));
Contract.Assert(illegalInternalOptions == 0, "TaskConstructorCore: Illegal internal options");
#endif
@@ -643,10 +645,8 @@ namespace System.Threading.Tasks
if (m_parent != null
&& ((creationOptions & TaskCreationOptions.AttachedToParent) != 0)
-#if !FEATURE_CORECLR || FEATURE_NETCORE
&& ((m_parent.CreationOptions & TaskCreationOptions.DenyChildAttach) == 0)
-#endif
- )
+ )
{
m_parent.AddNewChild();
}
@@ -676,18 +676,17 @@ namespace System.Threading.Tasks
try
{
- cancellationToken.ThrowIfSourceDisposed();
+ if (AppContextSwitches.ThrowExceptionIfDisposedCancellationTokenSource)
+ {
+ cancellationToken.ThrowIfSourceDisposed();
+ }
// If an unstarted task has a valid CancellationToken that gets signalled while the task is still not queued
// we need to proactively cancel it, because it may never execute to transition itself.
// The only way to accomplish this is to register a callback on the CT.
// We exclude Promise tasks from this, because TaskCompletionSource needs to fully control the inner tasks's lifetime (i.e. not allow external cancellations)
if ((((InternalTaskOptions)Options &
- (InternalTaskOptions.QueuedByRuntime | InternalTaskOptions.PromiseTask
-#if !FEATURE_CORECLR || FEATURE_NETCORE
- | InternalTaskOptions.LazyCancellation
-#endif
- )) == 0))
+ (InternalTaskOptions.QueuedByRuntime | InternalTaskOptions.PromiseTask | InternalTaskOptions.LazyCancellation)) == 0))
{
if (cancellationToken.IsCancellationRequested)
{
@@ -720,12 +719,9 @@ namespace System.Threading.Tasks
{
// If we have an exception related to our CancellationToken, then we need to subtract ourselves
// from our parent before throwing it.
- if ((m_parent != null)
- && ((Options & TaskCreationOptions.AttachedToParent) != 0)
-#if !FEATURE_CORECLR || FEATURE_NETCORE
- && ((m_parent.Options & TaskCreationOptions.DenyChildAttach) == 0)
-#endif
- )
+ if ((m_parent != null) &&
+ ((Options & TaskCreationOptions.AttachedToParent) != 0)
+ && ((m_parent.Options & TaskCreationOptions.DenyChildAttach) == 0))
{
m_parent.DisregardChild();
}
@@ -916,10 +912,7 @@ namespace System.Threading.Tasks
/// <returns>(DebuggerBitSet || !RanToCompletion)</returns>
internal bool IsWaitNotificationEnabledOrNotRanToCompletion
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
get
{
return (m_stateFlags & (Task.TASK_STATE_WAIT_COMPLETION_NOTIFICATION | Task.TASK_STATE_RAN_TO_COMPLETION))
@@ -978,7 +971,6 @@ namespace System.Threading.Tasks
return AtomicStateUpdate(TASK_STATE_STARTED, TASK_STATE_CANCELED | TASK_STATE_STARTED);
}
-#if !FEATURE_PAL && !FEATURE_CORECLR
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal bool FireTaskScheduledIfNeeded(TaskScheduler ts)
{
@@ -990,13 +982,13 @@ namespace System.Threading.Tasks
Task currentTask = Task.InternalCurrent;
Task parentTask = this.m_parent;
etwLog.TaskScheduled(ts.Id, currentTask == null ? 0 : currentTask.Id,
- this.Id, parentTask == null ? 0 : parentTask.Id, (int)this.Options);
+ this.Id, parentTask == null ? 0 : parentTask.Id, (int)this.Options,
+ System.Threading.Thread.GetDomainID());
return true;
}
else
return false;
}
-#endif
/// <summary>
/// Internal function that will be called by a new child task to add itself to
@@ -1315,6 +1307,7 @@ namespace System.Threading.Tasks
newId = Interlocked.Increment(ref s_taskIdCounter);
}
while (newId == 0);
+ TplEtwProvider.Log.NewID(newId);
return newId;
}
@@ -1554,9 +1547,6 @@ namespace System.Threading.Tasks
/// </remarks>
public bool IsCompleted
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
int stateFlags = m_stateFlags; // enable inlining of IsCompletedMethod by "cast"ing away the volatility
@@ -1566,9 +1556,6 @@ namespace System.Threading.Tasks
// Similar to IsCompleted property, but allows for the use of a cached flags value
// rather than reading the volatile m_stateFlags field.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
private static bool IsCompletedMethod(int flags)
{
return (flags & TASK_STATE_COMPLETED_MASK) != 0;
@@ -1660,14 +1647,8 @@ namespace System.Threading.Tasks
/// <summary>Gets a task that's already been completed successfully.</summary>
/// <remarks>May not always return the same instance.</remarks>
- #if NET_4_6
- public
- #else
- internal
- #endif
- static Task CompletedTask
+ public static Task CompletedTask
{
- [FriendAccessAllowed]
get
{
var completedTask = s_completedTask;
@@ -1947,7 +1928,6 @@ namespace System.Threading.Tasks
m_stateFlags |= TASK_STATE_STARTED;
}
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (s_asyncDebuggingEnabled)
{
AddToActiveTasks(this);
@@ -1958,7 +1938,7 @@ namespace System.Threading.Tasks
//For all other task than TaskContinuations we want to log. TaskContinuations log in their constructor
AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, this.Id, "Task: "+((Delegate)m_action).Method.Name, 0);
}
-#endif
+
try
{
@@ -2189,10 +2169,8 @@ namespace System.Threading.Tasks
{
if ((m_parent != null)
&& ((Options & TaskCreationOptions.AttachedToParent) != 0)
-#if !FEATURE_CORECLR || FEATURE_NETCORE
- && ((m_parent.CreationOptions & TaskCreationOptions.DenyChildAttach) == 0)
-#endif
- && Task.InternalCurrent == m_parent)
+ && ((m_parent.CreationOptions & TaskCreationOptions.DenyChildAttach) == 0)
+ && Task.InternalCurrent == m_parent)
{
m_stateFlags |= TASK_STATE_EXCEPTIONOBSERVEDBYPARENT;
}
@@ -2302,7 +2280,6 @@ namespace System.Threading.Tasks
if (ExceptionRecorded)
{
completionState = TASK_STATE_FAULTED;
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, this.Id, AsyncCausalityStatus.Error);
@@ -2310,7 +2287,6 @@ namespace System.Threading.Tasks
{
RemoveFromActiveTasks(this.Id);
}
-#endif
}
else if (IsCancellationRequested && IsCancellationAcknowledged)
{
@@ -2322,7 +2298,6 @@ namespace System.Threading.Tasks
// then we regard it as a regular exception
completionState = TASK_STATE_CANCELED;
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, this.Id, AsyncCausalityStatus.Canceled);
@@ -2330,12 +2305,10 @@ namespace System.Threading.Tasks
{
RemoveFromActiveTasks(this.Id);
}
-#endif
}
else
{
completionState = TASK_STATE_RAN_TO_COMPLETION;
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, this.Id, AsyncCausalityStatus.Completed);
@@ -2343,7 +2316,6 @@ namespace System.Threading.Tasks
{
RemoveFromActiveTasks(this.Id);
}
-#endif
}
// Use Interlocked.Exchange() to effect a memory fence, preventing
@@ -2380,10 +2352,8 @@ namespace System.Threading.Tasks
// Notify parent if this was an attached task
if (m_parent != null
-#if !FEATURE_CORECLR || FEATURE_NETCORE
- && ((m_parent.CreationOptions & TaskCreationOptions.DenyChildAttach) == 0)
-#endif
- && (((TaskCreationOptions)(m_stateFlags & OptionsMask)) & TaskCreationOptions.AttachedToParent) != 0)
+ && ((m_parent.CreationOptions & TaskCreationOptions.DenyChildAttach) == 0)
+ && (((TaskCreationOptions)(m_stateFlags & OptionsMask)) & TaskCreationOptions.AttachedToParent) != 0)
{
m_parent.ProcessChildCompletion(this);
}
@@ -2804,14 +2774,14 @@ namespace System.Threading.Tasks
// Remember the current task so we can restore it after running, and then
Task previousTask = currentTaskSlot;
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for Task Started
var etwLog = TplEtwProvider.Log;
Guid savedActivityID = new Guid();
bool etwIsEnabled = etwLog.IsEnabled();
if (etwIsEnabled)
{
- EventSource.SetCurrentThreadActivityId(TplEtwProvider.CreateGuidForTaskID(this.Id), out savedActivityID);
+ if (etwLog.TasksSetActivityIds)
+ EventSource.SetCurrentThreadActivityId(TplEtwProvider.CreateGuidForTaskID(this.Id), out savedActivityID);
// previousTask holds the actual "current task" we want to report in the event
if (previousTask != null)
etwLog.TaskStarted(previousTask.m_taskScheduler.Id, previousTask.Id, this.Id);
@@ -2821,7 +2791,7 @@ namespace System.Threading.Tasks
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceSynchronousWorkStart(CausalityTraceLevel.Required, this.Id, CausalitySynchronousWork.Execution);
-#endif
+
try
{
@@ -2854,18 +2824,15 @@ namespace System.Threading.Tasks
#endif
}
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceSynchronousWorkCompletion(CausalityTraceLevel.Required, CausalitySynchronousWork.Execution);
-#endif
Finish(true);
}
finally
{
currentTaskSlot = previousTask;
-
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
+
// ETW event for Task Completed
if (etwIsEnabled)
{
@@ -2874,9 +2841,10 @@ namespace System.Threading.Tasks
etwLog.TaskCompleted(previousTask.m_taskScheduler.Id, previousTask.Id, this.Id, IsFaulted);
else
etwLog.TaskCompleted(TaskScheduler.Current.Id, 0, this.Id, IsFaulted);
- EventSource.SetCurrentThreadActivityId(savedActivityID);
+
+ if (etwLog.TasksSetActivityIds)
+ EventSource.SetCurrentThreadActivityId(savedActivityID);
}
-#endif
}
}
@@ -2960,14 +2928,10 @@ namespace System.Threading.Tasks
}
}
-#if !FEATURE_CORECLR || FEATURE_NETCORE
#region Await Support
/// <summary>Gets an awaiter used to await this <see cref="System.Threading.Tasks.Task"/>.</summary>
/// <returns>An awaiter instance.</returns>
/// <remarks>This method is intended for compiler user rather than use directly in code.</remarks>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public TaskAwaiter GetAwaiter()
{
return new TaskAwaiter(this);
@@ -2978,9 +2942,6 @@ namespace System.Threading.Tasks
/// true to attempt to marshal the continuation back to the original context captured; otherwise, false.
/// </param>
/// <returns>An object used to await this task.</returns>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public ConfiguredTaskAwaitable ConfigureAwait(bool continueOnCapturedContext)
{
return new ConfiguredTaskAwaitable(this, continueOnCapturedContext);
@@ -3072,7 +3033,7 @@ namespace System.Threading.Tasks
return new YieldAwaitable();
}
#endregion
-#endif
+
/// <summary>
/// Waits for the <see cref="Task"/> to complete execution.
/// </summary>
@@ -3262,7 +3223,6 @@ namespace System.Threading.Tasks
[MethodImpl(MethodImplOptions.NoOptimization)] // this is needed for the parallel debugger
internal bool InternalWait(int millisecondsTimeout, CancellationToken cancellationToken)
{
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for Task Wait Begin
var etwLog = TplEtwProvider.Log;
bool etwIsEnabled = etwLog.IsEnabled();
@@ -3271,9 +3231,8 @@ namespace System.Threading.Tasks
Task currentTask = Task.InternalCurrent;
etwLog.TaskWaitBegin(
(currentTask != null ? currentTask.m_taskScheduler.Id : TaskScheduler.Default.Id), (currentTask != null ? currentTask.Id : 0),
- this.Id, TplEtwProvider.TaskWaitBehavior.Synchronous);
+ this.Id, TplEtwProvider.TaskWaitBehavior.Synchronous, 0, System.Threading.Thread.GetDomainID());
}
-#endif
bool returnValue = IsCompleted;
@@ -3303,7 +3262,6 @@ namespace System.Threading.Tasks
Contract.Assert(IsCompleted || millisecondsTimeout != Timeout.Infinite);
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// ETW event for Task Wait End
if (etwIsEnabled)
{
@@ -3316,8 +3274,9 @@ namespace System.Threading.Tasks
{
etwLog.TaskWaitEnd(TaskScheduler.Default.Id, 0, this.Id);
}
+ // logically the continuation is empty so we immediately fire
+ etwLog.TaskWaitContinuationComplete(this.Id);
}
-#endif
return returnValue;
}
@@ -3589,9 +3548,12 @@ namespace System.Threading.Tasks
// Fire completion event if it has been lazily initialized
var cp = m_contingentProperties;
- if (cp != null) cp.SetCompleted();
+ if (cp != null)
+ {
+ cp.SetCompleted();
+ cp.DeregisterCancellationCallback();
+ }
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, this.Id, AsyncCausalityStatus.Canceled);
@@ -3599,7 +3561,6 @@ namespace System.Threading.Tasks
{
RemoveFromActiveTasks(this.Id);
}
-#endif
// Notify parents, fire continuations, other cleanup.
FinishStageThree();
@@ -3634,19 +3595,19 @@ namespace System.Threading.Tasks
// Atomically store the fact that this task is completing. From this point on, the adding of continuations will
// result in the continuations being run/launched directly rather than being added to the continuation list.
object continuationObject = Interlocked.Exchange(ref m_continuationObject, s_taskCompletionSentinel);
+ TplEtwProvider.Log.RunningContinuation(Id, continuationObject);
// If continuationObject == null, then we don't have any continuations to process
if (continuationObject != null)
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceSynchronousWorkStart(CausalityTraceLevel.Required, this.Id, CausalitySynchronousWork.CompletionNotification);
-#endif
// Skip synchronous execution of continuations if this task's thread was aborted
bool bCanInlineContinuations = !(((m_stateFlags & TASK_STATE_THREAD_WAS_ABORTED) != 0) ||
- (Thread.CurrentThread.ThreadState == ThreadState.AbortRequested));
+ (Thread.CurrentThread.ThreadState == ThreadState.AbortRequested) ||
+ ((m_stateFlags & (int)TaskCreationOptions.RunContinuationsAsynchronously) != 0));
// Handle the single-Action case
Action singleAction = continuationObject as Action;
@@ -3700,6 +3661,7 @@ namespace System.Threading.Tasks
var tc = continuations[i] as StandardTaskContinuation;
if (tc != null && (tc.m_options & TaskContinuationOptions.ExecuteSynchronously) == 0)
{
+ TplEtwProvider.Log.RunningContinuationList(Id, i, tc);
continuations[i] = null; // so that we can skip this later
tc.Run(this, bCanInlineContinuations);
}
@@ -3713,6 +3675,7 @@ namespace System.Threading.Tasks
object currentContinuation = continuations[i];
if (currentContinuation == null) continue;
continuations[i] = null; // to enable free'ing up memory earlier
+ TplEtwProvider.Log.RunningContinuationList(Id, i, currentContinuation);
// If the continuation is an Action delegate, it came from an await continuation,
// and we should use AwaitTaskContinuation to run it.
@@ -3747,10 +3710,8 @@ namespace System.Threading.Tasks
private void LogFinishCompletionNotification()
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceSynchronousWorkCompletion(CausalityTraceLevel.Required, CausalitySynchronousWork.CompletionNotification);
-#endif
}
#region Continuation methods
@@ -4608,13 +4569,10 @@ namespace System.Threading.Tasks
TaskContinuationOptions creationOptionsMask =
TaskContinuationOptions.PreferFairness |
TaskContinuationOptions.LongRunning |
-#if !FEATURE_CORECLR || FEATURE_NETCORE
- TaskContinuationOptions.DenyChildAttach |
+ TaskContinuationOptions.DenyChildAttach |
TaskContinuationOptions.HideScheduler |
-#endif
- TaskContinuationOptions.AttachedToParent;
-
-
+ TaskContinuationOptions.AttachedToParent|
+ TaskContinuationOptions.RunContinuationsAsynchronously;
// Check that LongRunning and ExecuteSynchronously are not specified together
TaskContinuationOptions illegalMask = TaskContinuationOptions.ExecuteSynchronously | TaskContinuationOptions.LongRunning;
@@ -4625,11 +4583,8 @@ namespace System.Threading.Tasks
// Check that no illegal options were specified
if ((continuationOptions &
- ~(creationOptionsMask | NotOnAnything |
-#if !FEATURE_CORECLR || FEATURE_NETCORE
- TaskContinuationOptions.LazyCancellation |
-#endif
- TaskContinuationOptions.ExecuteSynchronously)) != 0)
+ ~(creationOptionsMask | NotOnAnything |
+ TaskContinuationOptions.LazyCancellation | TaskContinuationOptions.ExecuteSynchronously)) != 0)
{
throw new ArgumentOutOfRangeException("continuationOptions");
}
@@ -4645,12 +4600,10 @@ namespace System.Threading.Tasks
// internalOptions has at least ContinuationTask ...
internalOptions = InternalTaskOptions.ContinuationTask;
-#if !FEATURE_CORECLR || FEATURE_NETCORE
+
// ... and possibly LazyCancellation
if ((continuationOptions & TaskContinuationOptions.LazyCancellation) != 0)
internalOptions |= InternalTaskOptions.LazyCancellation;
-#endif
-
}
@@ -4706,7 +4659,6 @@ namespace System.Threading.Tasks
// the motions of queuing up the continuation for eventual execution.
if (!continuationTask.IsCompleted)
{
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
// We need additional correlation produced here to ensure that at least the continuation
// code will be correlatable to the currrent activity that initiated "this" task:
// . when the antecendent ("this") is a promise we have very little control over where
@@ -4727,7 +4679,6 @@ namespace System.Threading.Tasks
etwLog.AwaitTaskContinuationScheduled(TaskScheduler.Current.Id, Task.CurrentId ?? 0, continuationTask.Id);
}
}
-#endif // !FEATURE_PAL && !FEATURE_CORECLR
// Attempt to enqueue the continuation
bool continuationQueued = AddTaskContinuation(continuation, addBeforeOthers: false);
@@ -4799,6 +4750,13 @@ namespace System.Threading.Tasks
// continuation.
if (m_continuationObject != s_taskCompletionSentinel)
{
+ // Before growing the list we remove possible null entries that are the
+ // result from RemoveContinuations()
+ if (list.Count == list.Capacity)
+ {
+ list.RemoveAll(s_IsTaskContinuationNullPredicate);
+ }
+
if (addBeforeOthers)
list.Insert(0, tc);
else
@@ -4836,17 +4794,37 @@ namespace System.Threading.Tasks
// Removes a continuation task from m_continuations
internal void RemoveContinuation(object continuationObject) // could be TaskContinuation or Action<Task>
{
- // We need to snap a local reference to m_continuations
- // because we could be racing w/ FinishContinuations() which nulls out m_continuationObject in the end
- List<object> continuationsLocalRef = m_continuationObject as List<object>;
+ // We need to snap a local reference to m_continuations since reading a volatile object is more costly.
+ // Also to prevent the value to be changed as result of a race condition with another method.
+ object continuationsLocalRef = m_continuationObject;
+
+ // Task is completed. Nothing to do here.
+ if (continuationsLocalRef == s_taskCompletionSentinel) return;
- // If continuationsLocalRef == null, it means that m_continuationObject is not a list. We only
- // remove continuations if there are a list of them. We take no action if there are no continuations
- // (m_continuationObject == null), if we are tracking a single continuation (m_continuationObject is
- // TaskContinuation or Action<Task>), or if the task is complete (m_continuationObject is s_taskCompletionSentinel).
- if (continuationsLocalRef != null)
+ List<object> continuationsLocalListRef = continuationsLocalRef as List<object>;
+
+ if (continuationsLocalListRef == null)
{
- lock (continuationsLocalRef)
+ // This is not a list. If we have a single object (the one we want to remove) we try to replace it with an empty list.
+ // Note we cannot go back to a null state, since it will mess up the AddTaskContinuation logic.
+ if (Interlocked.CompareExchange(ref m_continuationObject, new List<object>(), continuationObject) != continuationObject)
+ {
+ // If we fail it means that either AddContinuationComplex won the race condition and m_continuationObject is now a List
+ // that contains the element we want to remove. Or FinishContinuations set the s_taskCompletionSentinel.
+ // So we should try to get a list one more time
+ continuationsLocalListRef = m_continuationObject as List<object>;
+ }
+ else
+ {
+ // Exchange was successful so we can skip the last comparison
+ return;
+ }
+ }
+
+ // if continuationsLocalRef == null it means s_taskCompletionSentinel has been set already and there is nothing else to do.
+ if (continuationsLocalListRef != null)
+ {
+ lock (continuationsLocalListRef)
{
// There is a small chance that this task completed since we took a local snapshot into
// continuationsLocalRef. In that case, just return; we don't want to be manipulating the
@@ -4854,25 +4832,19 @@ namespace System.Threading.Tasks
if (m_continuationObject == s_taskCompletionSentinel) return;
// Find continuationObject in the continuation list
- int index = continuationsLocalRef.IndexOf(continuationObject);
+ int index = continuationsLocalListRef.IndexOf(continuationObject);
if (index != -1)
{
// null out that TaskContinuation entry, which will be interpreted as "to be cleaned up"
- continuationsLocalRef[index] = null;
+ continuationsLocalListRef[index] = null;
- // if the list of continuations is large enough it's time to compact it by removing
- // all entries marked for clean up
- if (continuationsLocalRef.Count > 128)
- {
- continuationsLocalRef.RemoveAll(s_IsTaskContinuationNullPredicate); // RemoveAll has better performance than doing it ourselves
- }
}
}
}
}
- // statically allocated delegate for the RemoveAll expression in RemoveContinuations()
+ // statically allocated delegate for the RemoveAll expression in RemoveContinuations() and AddContinuationComplex()
private readonly static Predicate<object> s_IsTaskContinuationNullPredicate =
new Predicate<object>((tc) => { return (tc == null); });
@@ -5520,7 +5492,7 @@ namespace System.Threading.Tasks
// Return the index
return signaledTaskIndex;
}
-#if !FEATURE_CORECLR || FEATURE_NETCORE
+
#region FromResult / FromException / FromCancellation
/// <summary>Creates a <see cref="Task{TResult}"/> that's completed successfully with the specified result.</summary>
@@ -5536,13 +5508,7 @@ namespace System.Threading.Tasks
/// <typeparam name="TResult">The type of the result returned by the task.</typeparam>
/// <param name="exception">The exception with which to complete the task.</param>
/// <returns>The faulted task.</returns>
- [FriendAccessAllowed]
- #if NET_4_6
- public
- #else
- internal
- #endif
- static Task FromException(Exception exception)
+ public static Task FromException(Exception exception)
{
return FromException<VoidTaskResult>(exception);
}
@@ -5551,13 +5517,7 @@ namespace System.Threading.Tasks
/// <typeparam name="TResult">The type of the result returned by the task.</typeparam>
/// <param name="exception">The exception with which to complete the task.</param>
/// <returns>The faulted task.</returns>
- [FriendAccessAllowed]
- #if NET_4_6
- public
- #else
- internal
- #endif
- static Task<TResult> FromException<TResult>(Exception exception)
+ public static Task<TResult> FromException<TResult>(Exception exception)
{
if (exception == null) throw new ArgumentNullException("exception");
Contract.EndContractBlock();
@@ -5568,7 +5528,7 @@ namespace System.Threading.Tasks
return task;
}
- /// <summary>Creates a <see cref="Task{TResult}"/> that's completed due to cancellation with the specified token.</summary>
+ /// <summary>Creates a <see cref="Task"/> that's completed due to cancellation with the specified token.</summary>
/// <param name="cancellationToken">The token with which to complete the task.</param>
/// <returns>The canceled task.</returns>
[FriendAccessAllowed]
@@ -5586,6 +5546,14 @@ namespace System.Threading.Tasks
}
#endif
+ /// <summary>Creates a <see cref="Task"/> that's completed due to cancellation with the specified token.</summary>
+ /// <param name="cancellationToken">The token with which to complete the task.</param>
+ /// <returns>The canceled task.</returns>
+ public static Task FromCanceled(CancellationToken cancellationToken)
+ {
+ return FromCancellation(cancellationToken);
+ }
+
/// <summary>Creates a <see cref="Task{TResult}"/> that's completed due to cancellation with the specified token.</summary>
/// <typeparam name="TResult">The type of the result returned by the task.</typeparam>
/// <param name="cancellationToken">The token with which to complete the task.</param>
@@ -5605,6 +5573,15 @@ namespace System.Threading.Tasks
}
#endif
+ /// <summary>Creates a <see cref="Task{TResult}"/> that's completed due to cancellation with the specified token.</summary>
+ /// <typeparam name="TResult">The type of the result returned by the task.</typeparam>
+ /// <param name="cancellationToken">The token with which to complete the task.</param>
+ /// <returns>The canceled task.</returns>
+ public static Task<TResult> FromCanceled<TResult>(CancellationToken cancellationToken)
+ {
+ return FromCancellation<TResult>(cancellationToken);
+ }
+
/// <summary>Creates a <see cref="Task{TResult}"/> that's completed due to cancellation with the specified exception.</summary>
/// <typeparam name="TResult">The type of the result returned by the task.</typeparam>
/// <param name="exception">The exception with which to complete the task.</param>
@@ -5730,7 +5707,10 @@ namespace System.Threading.Tasks
if (function == null) throw new ArgumentNullException("function");
Contract.EndContractBlock();
- cancellationToken.ThrowIfSourceDisposed();
+ if (AppContextSwitches.ThrowExceptionIfDisposedCancellationTokenSource)
+ {
+ cancellationToken.ThrowIfSourceDisposed();
+ }
// Short-circuit if we are given a pre-canceled token
if (cancellationToken.IsCancellationRequested)
@@ -5772,16 +5752,16 @@ namespace System.Threading.Tasks
/// <exception cref="T:System.ArgumentNullException">
/// The <paramref name="function"/> parameter was null.
/// </exception>
- /// <exception cref="T:System.ObjectDisposedException">
- /// The <see cref="T:System.CancellationTokenSource"/> associated with <paramref name="cancellationToken"/> was disposed.
- /// </exception>
public static Task<TResult> Run<TResult>(Func<Task<TResult>> function, CancellationToken cancellationToken)
{
// Check arguments
if (function == null) throw new ArgumentNullException("function");
Contract.EndContractBlock();
- cancellationToken.ThrowIfSourceDisposed();
+ if (AppContextSwitches.ThrowExceptionIfDisposedCancellationTokenSource)
+ {
+ cancellationToken.ThrowIfSourceDisposed();
+ }
// Short-circuit if we are given a pre-canceled token
if (cancellationToken.IsCancellationRequested)
@@ -5927,7 +5907,6 @@ namespace System.Threading.Tasks
: base()
{
this.Token = token;
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, this.Id, "Task.Delay", 0);
@@ -5935,7 +5914,6 @@ namespace System.Threading.Tasks
{
AddToActiveTasks(this);
}
-#endif
}
internal readonly CancellationToken Token;
@@ -5953,7 +5931,6 @@ namespace System.Threading.Tasks
}
else
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, this.Id, AsyncCausalityStatus.Completed);
@@ -5961,7 +5938,6 @@ namespace System.Threading.Tasks
{
RemoveFromActiveTasks(this.Id);
}
-#endif
setSucceeded = TrySetResult(default(VoidTaskResult));
}
@@ -6125,7 +6101,6 @@ namespace System.Threading.Tasks
Contract.Requires(tasks != null, "Expected a non-null task array");
Contract.Requires(tasks.Length > 0, "Expected a non-zero length task array");
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, this.Id, "Task.WhenAll", 0);
@@ -6133,7 +6108,6 @@ namespace System.Threading.Tasks
{
AddToActiveTasks(this);
}
-#endif
m_tasks = tasks;
m_count = tasks.Length;
@@ -6147,10 +6121,8 @@ namespace System.Threading.Tasks
public void Invoke(Task completedTask)
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationRelation(CausalityTraceLevel.Important, this.Id, CausalityRelation.Join);
-#endif
// Decrement the count, and only continue to complete the promise if we're the last one.
if (Interlocked.Decrement(ref m_count) == 0)
@@ -6198,7 +6170,6 @@ namespace System.Threading.Tasks
}
else
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, this.Id, AsyncCausalityStatus.Completed);
@@ -6206,7 +6177,6 @@ namespace System.Threading.Tasks
{
RemoveFromActiveTasks(this.Id);
}
-#endif
TrySetResult(default(VoidTaskResult));
}
}
@@ -6378,7 +6348,6 @@ namespace System.Threading.Tasks
m_tasks = tasks;
m_count = tasks.Length;
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, this.Id, "Task.WhenAll", 0);
@@ -6386,7 +6355,6 @@ namespace System.Threading.Tasks
{
AddToActiveTasks(this);
}
-#endif
foreach (var task in tasks)
{
@@ -6397,10 +6365,8 @@ namespace System.Threading.Tasks
public void Invoke(Task ignored)
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationRelation(CausalityTraceLevel.Important, this.Id, CausalityRelation.Join);
-#endif
// Decrement the count, and only continue to complete the promise if we're the last one.
if (Interlocked.Decrement(ref m_count) == 0)
@@ -6454,7 +6420,6 @@ namespace System.Threading.Tasks
}
else
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, this.Id, AsyncCausalityStatus.Completed);
@@ -6462,7 +6427,6 @@ namespace System.Threading.Tasks
{
RemoveFromActiveTasks(this.Id);
}
-#endif
TrySetResult(results);
}
}
@@ -6621,7 +6585,7 @@ namespace System.Threading.Tasks
TaskContinuationOptions.ExecuteSynchronously | TaskContinuationOptions.DenyChildAttach, TaskScheduler.Default);
}
#endregion
-#endif
+
[FriendAccessAllowed]
internal static Task<TResult> CreateUnwrapPromise<TResult>(Task outerTask, bool lookForOce)
{
@@ -6632,7 +6596,11 @@ namespace System.Threading.Tasks
internal virtual Delegate[] GetDelegateContinuationsForDebugger()
{
- return GetDelegatesFromContinuationObject(this.m_continuationObject);
+ //Avoid an infinite loop by making sure the continuation object is not a reference to istelf.
+ if (this.m_continuationObject != this)
+ return GetDelegatesFromContinuationObject(this.m_continuationObject);
+ else
+ return null;
}
internal static Delegate[] GetDelegatesFromContinuationObject(object continuationObject)
@@ -6642,11 +6610,7 @@ namespace System.Threading.Tasks
Action singleAction = continuationObject as Action;
if (singleAction != null)
{
-#if !FEATURE_CORECLR || FEATURE_NETCORE
return new Delegate[] { AsyncMethodBuilderCore.TryGetStateMachineForDebugger(singleAction) };
-#else
- return new Delegate[] { singleAction };
-#endif
}
TaskContinuation taskContinuation = continuationObject as TaskContinuation;
@@ -6659,7 +6623,9 @@ namespace System.Threading.Tasks
if (continuationTask != null)
{
Contract.Assert(continuationTask.m_action == null);
- return continuationTask.GetDelegateContinuationsForDebugger();
+ Delegate[] delegates = continuationTask.GetDelegateContinuationsForDebugger();
+ if (delegates != null)
+ return delegates;
}
//We need this ITaskCompletionAction after the Task because in the case of UnwrapPromise
@@ -6697,19 +6663,14 @@ namespace System.Threading.Tasks
private static Task GetActiveTaskFromId(int taskId)
{
Task task = null;
-#if !FEATURE_PAL && !FEATURE_CORECLR
s_currentActiveTasks.TryGetValue(taskId, out task);
-#endif
return task;
}
private static Task[] GetActiveTasks()
{
- Task[] tasks = null;
-#if !FEATURE_PAL && !FEATURE_CORECLR
- tasks = new List<Task>(s_currentActiveTasks.Values).ToArray();
-#endif
- return tasks;
+
+ return new List<Task>(s_currentActiveTasks.Values).ToArray();
}
}
@@ -6731,7 +6692,6 @@ namespace System.Threading.Tasks
public TaskStatus Status { get { return m_task.Status; } }
}
-#if !FEATURE_CORECLR || FEATURE_NETCORE //Parallel.For/ForEach/Invoke are not supported in CoreCLR but supported in CoreSys
// Special purpose derivation of Task that supports limited replication through
// overriding the ShouldReplicate() method. This is used by the Parallel.For/ForEach
// methods.
@@ -6828,10 +6788,11 @@ namespace System.Threading.Tasks
}
}
-#endif
/// <summary>
/// Specifies flags that control optional behavior for the creation and execution of tasks.
/// </summary>
+ // NOTE: These options are a subset of TaskContinuationsOptions, thus before adding a flag check it is
+ // not already in use.
[Flags]
[Serializable]
public enum TaskCreationOptions
@@ -6860,7 +6821,6 @@ namespace System.Threading.Tasks
/// </summary>
AttachedToParent = 0x04,
-#if !FEATURE_CORECLR || FEATURE_NETCORE
/// <summary>
/// Specifies that an InvalidOperationException will be thrown if an attempt is made to attach a child task to the created task.
/// </summary>
@@ -6871,7 +6831,14 @@ namespace System.Threading.Tasks
/// like StartNew or ContinueWith that are performed in the created task will see TaskScheduler.Default as the current scheduler.
/// </summary>
HideScheduler = 0x10,
-#endif
+
+ // 0x20 is already being used in TaskContinuationOptions
+
+ /// <summary>
+ /// Forces continuations added to the current task to be executed asynchronously.
+ /// This option has precedence over TaskContinuationOptions.ExecuteSynchronously
+ /// </summary>
+ RunContinuationsAsynchronously = 0x40
}
@@ -6893,13 +6860,11 @@ namespace System.Threading.Tasks
PromiseTask = 0x0400,
SelfReplicating = 0x0800,
-#if !FEATURE_CORECLR || FEATURE_NETCORE
/// <summary>
/// Store the presence of TaskContinuationOptions.LazyCancellation, since it does not directly
/// translate into any TaskCreationOptions.
/// </summary>
LazyCancellation = 0x1000,
-#endif
/// <summary>Specifies that the task will be queued by the runtime before handing it over to the user.
/// This flag will be used to skip the cancellationtoken registration step, which is only meant for unstarted tasks.</summary>
@@ -6946,7 +6911,6 @@ namespace System.Threading.Tasks
/// </summary>
AttachedToParent = 0x04,
-#if !FEATURE_CORECLR || FEATURE_NETCORE
/// <summary>
/// Specifies that an InvalidOperationException will be thrown if an attempt is made to attach a child task to the created task.
/// </summary>
@@ -6961,7 +6925,8 @@ namespace System.Threading.Tasks
/// In the case of continuation cancellation, prevents completion of the continuation until the antecedent has completed.
/// </summary>
LazyCancellation = 0x20,
-#endif
+
+ RunContinuationsAsynchronously = 0x40,
// These are specific to continuations
@@ -7161,7 +7126,6 @@ namespace System.Threading.Tasks
_lookForOce = lookForOce;
_state = STATE_WAITING_ON_OUTER_TASK;
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, this.Id, "Task.Unwrap", 0);
@@ -7169,7 +7133,6 @@ namespace System.Threading.Tasks
{
AddToActiveTasks(this);
}
-#endif
// Link ourselves to the outer task.
// If the outer task has already completed, take the fast path
@@ -7278,10 +7241,8 @@ namespace System.Threading.Tasks
{
Contract.Requires(task != null && task.IsCompleted, "TrySetFromTask: Expected task to have completed.");
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationRelation(CausalityTraceLevel.Important, this.Id, CausalityRelation.Join);
-#endif
bool result = false;
switch (task.Status)
@@ -7308,7 +7269,7 @@ namespace System.Threading.Tasks
case TaskStatus.RanToCompletion:
var taskTResult = task as Task<TResult>;
-#if !FEATURE_PAL && !FEATURE_CORECLR
+
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, this.Id, AsyncCausalityStatus.Completed);
@@ -7316,7 +7277,7 @@ namespace System.Threading.Tasks
{
RemoveFromActiveTasks(this.Id);
}
-#endif
+
result = TrySetResult(taskTResult != null ? taskTResult.Result : default(TResult));
break;
}
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskCanceledException.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskCanceledException.cs
index fe647cdb3d6..256bd029487 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskCanceledException.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskCanceledException.cs
@@ -7,7 +7,7 @@
//
// TaskCanceledException.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// An exception for task cancellations.
//
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskCompletionSource.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskCompletionSource.cs
index 5bea5cbd7fe..7d1487a7c99 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskCompletionSource.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskCompletionSource.cs
@@ -7,7 +7,7 @@
//
// TaskCompletionSource.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// TaskCompletionSource<TResult> is the producer end of an unbound future. Its
// Task member may be distributed as the consumer end of the future.
@@ -343,9 +343,9 @@ namespace System.Threading.Tasks
}
// Enables a token to be stored into the canceled task
- internal bool TrySetCanceled(CancellationToken tokenToRecord)
+ public bool TrySetCanceled(CancellationToken cancellationToken)
{
- bool rval = m_task.TrySetCanceled(tokenToRecord);
+ bool rval = m_task.TrySetCanceled(cancellationToken);
if (!rval && !m_task.IsCompleted) SpinUntilCompleted();
return rval;
}
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskContinuation.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskContinuation.cs
index 508165a4fb4..eecbd9e124f 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskContinuation.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskContinuation.cs
@@ -7,7 +7,7 @@
//
// TaskContinuation.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Implementation of task continuations, TaskContinuation, and its descendants.
//
@@ -223,7 +223,7 @@ namespace System.Threading.Tasks
// - StandardTaskContinuation: wraps a task,options,and scheduler, and overrides Run to process the task with that configuration
// - AwaitTaskContinuation: base for continuations created through TaskAwaiter; targets default scheduler by default
// - TaskSchedulerAwaitTaskContinuation: awaiting with a non-default TaskScheduler
- // - SynchronizationContextAwaitTaskContinuation: awaiting with a "current" [....] ctx
+ // - SynchronizationContextAwaitTaskContinuation: awaiting with a "current" sync ctx
/// <summary>Represents a continuation.</summary>
internal abstract class TaskContinuation
@@ -307,7 +307,6 @@ namespace System.Threading.Tasks
m_task = task;
m_options = options;
m_taskScheduler = scheduler;
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, m_task.Id, "Task.ContinueWith: " + ((Delegate)task.m_action).Method.Name, 0);
@@ -315,7 +314,6 @@ namespace System.Threading.Tasks
{
Task.AddToActiveTasks(m_task);
}
-#endif
}
/// <summary>Invokes the continuation for the target completion task.</summary>
@@ -340,8 +338,6 @@ namespace System.Threading.Tasks
Task continuationTask = m_task;
if (isRightKind)
{
-
-#if !FEATURE_PAL && !FEATURE_CORECLR
//If the task was cancel before running (e.g a ContinueWhenAll with a cancelled caancelation token)
//we will still flow it to ScheduleAndStart() were it will check the status before running
//We check here to avoid faulty logs that contain a join event to an operation that was already set as completed.
@@ -350,7 +346,6 @@ namespace System.Threading.Tasks
// Log now that we are sure that this continuation is being ran
AsyncCausalityTracer.TraceOperationRelation(CausalityTraceLevel.Important, continuationTask.Id, CausalityRelation.AssignDelegate);
}
-#endif
continuationTask.m_taskScheduler = m_taskScheduler;
// Either run directly or just queue it up for execution, depending
@@ -426,14 +421,12 @@ namespace System.Threading.Tasks
// Otherwise, Post the action back to the SynchronizationContext.
else
{
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
TplEtwProvider etwLog = TplEtwProvider.Log;
if (etwLog.IsEnabled())
{
m_continuationId = Task.NewId();
etwLog.AwaitTaskContinuationScheduled((task.ExecutingTaskScheduler ?? TaskScheduler.Default).Id, task.Id, m_continuationId);
}
-#endif
RunCallback(GetPostActionCallback(), this, ref Task.t_currentTask);
}
// Any exceptions will be handled by RunCallback.
@@ -446,20 +439,17 @@ namespace System.Threading.Tasks
{
var c = (SynchronizationContextAwaitTaskContinuation)state;
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
TplEtwProvider etwLog = TplEtwProvider.Log;
- if (etwLog.IsEnabled() && c.m_continuationId != 0)
+ if (etwLog.TasksSetActivityIds && c.m_continuationId != 0)
{
c.m_syncContext.Post(s_postCallback, GetActionLogDelegate(c.m_continuationId, c.m_action));
}
else
-#endif
{
c.m_syncContext.Post(s_postCallback, c.m_action); // s_postCallback is manually cached, as the compiler won't in a SecurityCritical method
}
}
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
private static Action GetActionLogDelegate(int continuationId, Action action)
{
return () =>
@@ -471,16 +461,13 @@ namespace System.Threading.Tasks
finally { System.Diagnostics.Tracing.EventSource.SetCurrentThreadActivityId(savedActivityId); }
};
}
-#endif
/// <summary>Gets a cached delegate for the PostAction method.</summary>
/// <returns>
/// A delegate for PostAction, which expects a SynchronizationContextAwaitTaskContinuation
/// to be passed as state.
/// </returns>
-#if !FEATURE_CORECLR
[MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
[SecurityCritical]
private static ContextCallback GetPostActionCallback()
{
@@ -560,9 +547,7 @@ namespace System.Threading.Tasks
/// <summary>The action to invoke.</summary>
protected readonly Action m_action;
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
protected int m_continuationId;
-#endif
/// <summary>Initializes the continuation.</summary>
/// <param name="action">The action to invoke. Must not be null.</param>
@@ -630,14 +615,13 @@ namespace System.Threading.Tasks
}
else
{
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
TplEtwProvider etwLog = TplEtwProvider.Log;
if (etwLog.IsEnabled())
{
m_continuationId = Task.NewId();
etwLog.AwaitTaskContinuationScheduled((task.ExecutingTaskScheduler ?? TaskScheduler.Default).Id, task.Id, m_continuationId);
}
-#endif
+
// We couldn't inline, so now we need to schedule it
ThreadPool.UnsafeQueueCustomWorkItem(this, forceGlobal: false);
}
@@ -679,54 +663,47 @@ namespace System.Threading.Tasks
[SecurityCritical]
void ExecuteWorkItemHelper()
{
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
var etwLog = TplEtwProvider.Log;
Guid savedActivityId = Guid.Empty;
- if (etwLog.IsEnabled() && m_continuationId != 0)
+ if (etwLog.TasksSetActivityIds && m_continuationId != 0)
{
Guid activityId = TplEtwProvider.CreateGuidForTaskID(m_continuationId);
System.Diagnostics.Tracing.EventSource.SetCurrentThreadActivityId(activityId, out savedActivityId);
}
try
{
-#endif
- // We're not inside of a task, so t_currentTask doesn't need to be specially maintained.
- // We're on a thread pool thread with no higher-level callers, so exceptions can just propagate.
+ // We're not inside of a task, so t_currentTask doesn't need to be specially maintained.
+ // We're on a thread pool thread with no higher-level callers, so exceptions can just propagate.
- // If there's no execution context, just invoke the delegate.
- if (m_capturedContext == null)
- {
- m_action();
- }
- // If there is an execution context, get the cached delegate and run the action under the context.
- else
- {
- try
+ // If there's no execution context, just invoke the delegate.
+ if (m_capturedContext == null)
{
- ExecutionContext.Run(m_capturedContext, GetInvokeActionCallback(), m_action, true);
+ m_action();
+ }
+ // If there is an execution context, get the cached delegate and run the action under the context.
+ else
+ {
+ try
+ {
+ ExecutionContext.Run(m_capturedContext, GetInvokeActionCallback(), m_action, true);
+ }
+ finally { m_capturedContext.Dispose(); }
}
- finally { m_capturedContext.Dispose(); }
- }
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
}
finally
{
- if (etwLog.IsEnabled() && m_continuationId != 0)
+ if (etwLog.TasksSetActivityIds && m_continuationId != 0)
{
System.Diagnostics.Tracing.EventSource.SetCurrentThreadActivityId(savedActivityId);
}
}
-#endif
}
[SecurityCritical]
void IThreadPoolWorkItem.ExecuteWorkItem()
{
// inline the fast path
- if (m_capturedContext == null
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
- && !TplEtwProvider.Log.IsEnabled()
-#endif
+ if (m_capturedContext == null && !TplEtwProvider.Log.IsEnabled()
)
{
m_action();
@@ -752,9 +729,7 @@ namespace System.Threading.Tasks
[SecurityCritical]
private static void InvokeAction(object state) { ((Action)state)(); }
-#if !FEATURE_CORECLR
[MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
[SecurityCritical]
protected static ContextCallback GetInvokeActionCallback()
{
@@ -851,14 +826,12 @@ namespace System.Threading.Tasks
{
AwaitTaskContinuation atc = new AwaitTaskContinuation(action, flowExecutionContext: false);
-#if !FEATURE_PAL && !FEATURE_CORECLR // PAL and CoreClr don't support eventing
var etwLog = TplEtwProvider.Log;
if (etwLog.IsEnabled() && task != null)
{
atc.m_continuationId = Task.NewId();
etwLog.AwaitTaskContinuationScheduled((task.ExecutingTaskScheduler ?? TaskScheduler.Default).Id, task.Id, atc.m_continuationId);
}
-#endif
ThreadPool.UnsafeQueueCustomWorkItem(atc, forceGlobal: false);
}
@@ -890,11 +863,7 @@ namespace System.Threading.Tasks
internal override Delegate[] GetDelegateContinuationsForDebugger()
{
Contract.Assert(m_action != null);
-#if !FEATURE_CORECLR || FEATURE_NETCORE
return new Delegate[] { AsyncMethodBuilderCore.TryGetStateMachineForDebugger(m_action) };
-#else
- return new Delegate[] { m_action };
-#endif
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskExceptionHolder.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskExceptionHolder.cs
index 32d121d166c..3ba61491b73 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskExceptionHolder.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskExceptionHolder.cs
@@ -7,7 +7,7 @@
//
// TaskExceptionHolder.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// An abstraction for holding and aggregating exceptions.
//
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskFactory.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskFactory.cs
index 60e5a447ad7..b15df277ab4 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskFactory.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskFactory.cs
@@ -7,7 +7,7 @@
//
// TaskFactory.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// There are a plethora of common patterns for which Tasks are created. TaskFactory encodes
// these patterns into helper methods. These helpers also pick up default configuration settings
@@ -64,9 +64,7 @@ namespace System.Threading.Tasks
{
if (m_defaultScheduler != null) return m_defaultScheduler;
else if ((currTask != null)
-#if !FEATURE_CORECLR || FEATURE_NETCORE
&& ((currTask.CreationOptions & TaskCreationOptions.HideScheduler) == 0)
-#endif
)
return currTask.ExecutingTaskScheduler;
else return TaskScheduler.Default;
@@ -224,12 +222,11 @@ namespace System.Threading.Tasks
// Check for validity of options
if ((creationOptions &
~(TaskCreationOptions.AttachedToParent |
-#if !FEATURE_CORECLR || FEATURE_NETCORE
TaskCreationOptions.DenyChildAttach |
TaskCreationOptions.HideScheduler |
-#endif
TaskCreationOptions.LongRunning |
- TaskCreationOptions.PreferFairness)) != 0)
+ TaskCreationOptions.PreferFairness |
+ TaskCreationOptions.RunContinuationsAsynchronously)) != 0)
{
throw new ArgumentOutOfRangeException("creationOptions");
}
@@ -1607,10 +1604,8 @@ namespace System.Threading.Tasks
// Check for general validity of options
if ((creationOptions &
~(TaskCreationOptions.AttachedToParent |
-#if !FEATURE_CORECLR || FEATURE_NETCORE
TaskCreationOptions.DenyChildAttach |
TaskCreationOptions.HideScheduler |
-#endif
TaskCreationOptions.PreferFairness |
TaskCreationOptions.LongRunning)) != 0)
{
@@ -1647,7 +1642,6 @@ namespace System.Threading.Tasks
_tasks = tasksCopy;
_count = tasksCopy.Length;
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, this.Id, "TaskFactory.ContinueWhenAll", 0);
@@ -1655,19 +1649,16 @@ namespace System.Threading.Tasks
{
AddToActiveTasks(this);
}
-#endif
}
public void Invoke(Task completingTask)
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationRelation(CausalityTraceLevel.Important, this.Id, CausalityRelation.Join);
-#endif
+
if (completingTask.IsWaitNotificationEnabled) this.SetNotificationForWaitCompletion(enabled: true);
if (Interlocked.Decrement(ref _count) == 0)
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, this.Id, AsyncCausalityStatus.Completed);
@@ -1675,7 +1666,7 @@ namespace System.Threading.Tasks
{
RemoveFromActiveTasks(this.Id);
}
-#endif
+
TrySetResult(_tasks);
}
Contract.Assert(_count >= 0, "Count should never go below 0");
@@ -1729,7 +1720,6 @@ namespace System.Threading.Tasks
_tasks = tasksCopy;
_count = tasksCopy.Length;
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, this.Id, "TaskFactory.ContinueWhenAll<>", 0);
@@ -1737,20 +1727,16 @@ namespace System.Threading.Tasks
{
AddToActiveTasks(this);
}
-#endif
}
public void Invoke(Task completingTask)
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationRelation(CausalityTraceLevel.Important, this.Id, CausalityRelation.Join);
-#endif
if (completingTask.IsWaitNotificationEnabled) this.SetNotificationForWaitCompletion(enabled: true);
if (Interlocked.Decrement(ref _count) == 0)
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCompletion(CausalityTraceLevel.Required, this.Id, AsyncCausalityStatus.Completed);
@@ -1758,7 +1744,7 @@ namespace System.Threading.Tasks
{
RemoveFromActiveTasks(this.Id);
}
-#endif
+
TrySetResult(_tasks);
}
Contract.Assert(_count >= 0, "Count should never go below 0");
@@ -2436,7 +2422,6 @@ namespace System.Threading.Tasks
Contract.Requires(tasks != null, "Expected non-null collection of tasks");
_tasks = tasks;
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
AsyncCausalityTracer.TraceOperationCreation(CausalityTraceLevel.Required, this.Id, "TaskFactory.ContinueWhenAny", 0);
@@ -2444,15 +2429,12 @@ namespace System.Threading.Tasks
{
AddToActiveTasks(this);
}
-#endif
}
public void Invoke(Task completingTask)
{
if (Interlocked.CompareExchange(ref m_firstTaskAlreadyCompleted, 1, 0) == 0)
{
-
-#if !FEATURE_PAL && !FEATURE_CORECLR
if (AsyncCausalityTracer.LoggingOn)
{
AsyncCausalityTracer.TraceOperationRelation(CausalityTraceLevel.Important, this.Id, CausalityRelation.Choice);
@@ -2463,7 +2445,6 @@ namespace System.Threading.Tasks
{
RemoveFromActiveTasks(this.Id);
}
-#endif
bool success = TrySetResult(completingTask);
Contract.Assert(success, "Only one task should have gotten to this point, and thus this must be successful.");
@@ -3203,11 +3184,9 @@ namespace System.Threading.Tasks
TaskContinuationOptions.LongRunning |
TaskContinuationOptions.PreferFairness |
TaskContinuationOptions.AttachedToParent |
-#if !FEATURE_CORECLR || FEATURE_NETCORE
TaskContinuationOptions.DenyChildAttach |
TaskContinuationOptions.HideScheduler |
TaskContinuationOptions.LazyCancellation |
-#endif
NotOnAny |
TaskContinuationOptions.ExecuteSynchronously)) != 0)
{
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskScheduler.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskScheduler.cs
index 7ca0c6f3dd2..d4741e45636 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskScheduler.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskScheduler.cs
@@ -7,7 +7,7 @@
//
// TaskScheduler.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// This file contains the primary interface and management of tasks and queues.
//
@@ -215,9 +215,7 @@ namespace System.Threading.Tasks
bool bInlined = false;
try
{
-#if !FEATURE_PAL && !FEATURE_CORECLR
task.FireTaskScheduledIfNeeded(this);
-#endif
bInlined = TryExecuteTaskInline(task, taskWasPreviouslyQueued);
}
finally
@@ -272,9 +270,8 @@ namespace System.Threading.Tasks
{
Contract.Requires(task != null);
-#if !FEATURE_PAL && !FEATURE_CORECLR
task.FireTaskScheduledIfNeeded(this);
-#endif
+
this.QueueTask(task);
}
@@ -362,9 +359,7 @@ namespace System.Threading.Tasks
{
Task currentTask = Task.InternalCurrent;
return ( (currentTask != null)
-#if !FEATURE_CORECLR || FEATURE_NETCORE
&& ((currentTask.CreationOptions & TaskCreationOptions.HideScheduler) == 0)
-#endif
) ? currentTask.ExecutingTaskScheduler : null;
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskSchedulerException.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskSchedulerException.cs
index 61b75ea7fc0..5d2f9ad79e0 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskSchedulerException.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskSchedulerException.cs
@@ -7,7 +7,7 @@
//
// TaskSchedulerException.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// An exception for task schedulers.
//
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskToApm.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskToApm.cs
index 952d539a73a..e518055ee05 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskToApm.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/TaskToApm.cs
@@ -7,7 +7,7 @@
//
// TaskToApm.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Helper methods for using Tasks to implement the APM pattern.
//
diff --git a/mcs/class/referencesource/mscorlib/system/threading/Tasks/ThreadPoolTaskScheduler.cs b/mcs/class/referencesource/mscorlib/system/threading/Tasks/ThreadPoolTaskScheduler.cs
index 0da78181961..87b5a06c299 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/Tasks/ThreadPoolTaskScheduler.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/Tasks/ThreadPoolTaskScheduler.cs
@@ -7,7 +7,7 @@
//
// TaskScheduler.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// This file contains the primary interface and management of tasks and queues.
//
diff --git a/mcs/class/referencesource/mscorlib/system/threading/ThreadLocal.cs b/mcs/class/referencesource/mscorlib/system/threading/ThreadLocal.cs
index 6bc6d2b6fba..916a7751c2f 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/ThreadLocal.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/ThreadLocal.cs
@@ -8,7 +8,7 @@
//
// ThreadLocal.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// A class that provides a simple, lightweight implementation of thread-local lazy-initialization, where a value is initialized once per accessing
// thread; this provides an alternative to using a ThreadStatic static variable and having
diff --git a/mcs/class/referencesource/mscorlib/system/threading/abandonedmutexexception.cs b/mcs/class/referencesource/mscorlib/system/threading/abandonedmutexexception.cs
index d32f45303b5..593f215f14b 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/abandonedmutexexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/abandonedmutexexception.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// AbandonedMutexException
// Thrown when a wait completes because one or more mutexes was abandoned.
diff --git a/mcs/class/referencesource/mscorlib/system/threading/apartmentstate.cs b/mcs/class/referencesource/mscorlib/system/threading/apartmentstate.cs
index 9ec03c28f0e..acb89c8c091 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/apartmentstate.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/apartmentstate.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ericeil</OWNER>
/*=============================================================================
**
** Class: ApartmentState
diff --git a/mcs/class/referencesource/mscorlib/system/threading/asynclocal.cs b/mcs/class/referencesource/mscorlib/system/threading/asynclocal.cs
new file mode 100644
index 00000000000..3e1f5f9f69e
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/threading/asynclocal.cs
@@ -0,0 +1,118 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// <OWNER>Microsoft</OWNER>
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.Contracts;
+using System.Security;
+
+namespace System.Threading
+{
+ //
+ // AsyncLocal<T> represents "ambient" data that is local to a given asynchronous control flow, such as an
+ // async method. For example, say you want to associate a culture with a given async flow:
+ //
+ // static AsyncLocal<Culture> s_currentCulture = new AsyncLocal<Culture>();
+ //
+ // static async Task SomeOperationAsync(Culture culture)
+ // {
+ // s_currentCulture.Value = culture;
+ //
+ // await FooAsync();
+ // }
+ //
+ // static async Task FooAsync()
+ // {
+ // PrintStringWithCulture(s_currentCulture.Value);
+ // }
+ //
+ // AsyncLocal<T> also provides optional notifications when the value associated with the current thread
+ // changes, either because it was explicitly changed by setting the Value property, or implicitly changed
+ // when the thread encountered an "await" or other context transition. For example, we might want our
+ // current culture to be communicated to the OS as well:
+ //
+ // static AsyncLocal<Culture> s_currentCulture = new AsyncLocal<Culture>(
+ // args =>
+ // {
+ // NativeMethods.SetThreadCulture(args.CurrentValue.LCID);
+ // });
+ //
+ public sealed class AsyncLocal<T> : IAsyncLocal
+ {
+ [SecurityCritical] // critical because this action will terminate the process if it throws.
+ private readonly Action<AsyncLocalValueChangedArgs<T>> m_valueChangedHandler;
+
+ //
+ // Constructs an AsyncLocal<T> that does not receive change notifications.
+ //
+ public AsyncLocal()
+ {
+ }
+
+ //
+ // Constructs an AsyncLocal<T> with a delegate that is called whenever the current value changes
+ // on any thread.
+ //
+ [SecurityCritical]
+ public AsyncLocal(Action<AsyncLocalValueChangedArgs<T>> valueChangedHandler)
+ {
+ m_valueChangedHandler = valueChangedHandler;
+ }
+
+ public T Value
+ {
+ [SecuritySafeCritical]
+ get
+ {
+ object obj = ExecutionContext.GetLocalValue(this);
+ return (obj == null) ? default(T) : (T)obj;
+ }
+ [SecuritySafeCritical]
+ set
+ {
+ ExecutionContext.SetLocalValue(this, value, m_valueChangedHandler != null);
+ }
+ }
+
+ [SecurityCritical]
+ void IAsyncLocal.OnValueChanged(object previousValueObj, object currentValueObj, bool contextChanged)
+ {
+ Contract.Assert(m_valueChangedHandler != null);
+ T previousValue = previousValueObj == null ? default(T) : (T)previousValueObj;
+ T currentValue = currentValueObj == null ? default(T) : (T)currentValueObj;
+ m_valueChangedHandler(new AsyncLocalValueChangedArgs<T>(previousValue, currentValue, contextChanged));
+ }
+ }
+
+ //
+ // Interface to allow non-generic code in ExecutionContext to call into the generic AsyncLocal<T> type.
+ //
+ internal interface IAsyncLocal
+ {
+ [SecurityCritical]
+ void OnValueChanged(object previousValue, object currentValue, bool contextChanged);
+ }
+
+ public struct AsyncLocalValueChangedArgs<T>
+ {
+ public T PreviousValue { get; private set; }
+ public T CurrentValue { get; private set; }
+
+ //
+ // If the value changed because we changed to a different ExecutionContext, this is true. If it changed
+ // because someone set the Value property, this is false.
+ //
+ public bool ThreadContextChanged { get; private set; }
+
+ internal AsyncLocalValueChangedArgs(T previousValue, T currentValue, bool contextChanged)
+ : this()
+ {
+ PreviousValue = previousValue;
+ CurrentValue = currentValue;
+ ThreadContextChanged = contextChanged;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/threading/autoresetevent.cs b/mcs/class/referencesource/mscorlib/system/threading/autoresetevent.cs
index e7506554e42..1ed58d271af 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/autoresetevent.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/autoresetevent.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*=============================================================================
**
** Class: AutoResetEvent
diff --git a/mcs/class/referencesource/mscorlib/system/threading/compressedstack.cs b/mcs/class/referencesource/mscorlib/system/threading/compressedstack.cs
index d6c584d8276..5c18afbbb1d 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/compressedstack.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/compressedstack.cs
@@ -7,8 +7,8 @@
**
** Class: CompressedStack
**
-** <OWNER>[....]</OWNER>
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
+** <OWNER>Microsoft</OWNER>
**
** Purpose: Managed wrapper for the security stack compression implementation
**
diff --git a/mcs/class/referencesource/mscorlib/system/threading/eventresetmode.cs b/mcs/class/referencesource/mscorlib/system/threading/eventresetmode.cs
index 76dca2e3d71..7de33275b99 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/eventresetmode.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/eventresetmode.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ericeil</OWNER>
/*=============================================================================
**
** Enum: EventResetMode
diff --git a/mcs/class/referencesource/mscorlib/system/threading/eventwaithandle.cs b/mcs/class/referencesource/mscorlib/system/threading/eventwaithandle.cs
index 08426b23273..65151cff78c 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/eventwaithandle.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/eventwaithandle.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*=============================================================================
**
** Class: EventWaitHandle
diff --git a/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs b/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs
index a04c09bff0c..5ecaaed0619 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*============================================================
**
** Class: ExecutionContext
@@ -20,22 +20,268 @@ namespace System.Threading
using System.Runtime.Remoting;
using System.Security.Principal;
using System.Collections;
+ using System.Collections.Generic;
using System.Reflection;
+ using System.Runtime.ExceptionServices;
using System.Runtime.Serialization;
- using System.Security.Permissions;
+ using System.Security.Permissions;
+#if FEATURE_REMOTING
using System.Runtime.Remoting.Messaging;
+#endif // FEATURE_REMOTING
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
-#if FEATURE_CORRUPTING_EXCEPTIONS
- using System.Runtime.ExceptionServices;
-#endif // FEATURE_CORRUPTING_EXCEPTIONS
using System.Runtime.ConstrainedExecution;
using System.Diagnostics.Contracts;
using System.Diagnostics.CodeAnalysis;
- // helper delegate to statically bind to Wait method
- internal delegate int WaitDelegate(IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout);
+#if FEATURE_CORECLR
+ [System.Security.SecurityCritical] // auto-generated
+#endif
+ [System.Runtime.InteropServices.ComVisible(true)]
+ public delegate void ContextCallback(Object state);
+#if FEATURE_CORECLR
+
+ [SecurityCritical]
+ internal struct ExecutionContextSwitcher
+ {
+ internal ExecutionContext m_ec;
+ internal SynchronizationContext m_sc;
+
+ internal void Undo()
+ {
+ SynchronizationContext.SetSynchronizationContext(m_sc);
+ ExecutionContext.Restore(m_ec);
+ }
+ }
+
+ public sealed class ExecutionContext : IDisposable
+ {
+ public static readonly ExecutionContext Default = new ExecutionContext();
+
+ [ThreadStatic]
+ [SecurityCritical]
+ static ExecutionContext t_currentMaybeNull;
+
+ private readonly Dictionary<IAsyncLocal, object> m_localValues;
+ private readonly List<IAsyncLocal> m_localChangeNotifications;
+
+ private ExecutionContext()
+ {
+ m_localValues = new Dictionary<IAsyncLocal, object>();
+ m_localChangeNotifications = new List<IAsyncLocal>();
+ }
+
+ private ExecutionContext(ExecutionContext other)
+ {
+ m_localValues = new Dictionary<IAsyncLocal, object>(other.m_localValues);
+ m_localChangeNotifications = new List<IAsyncLocal>(other.m_localChangeNotifications);
+ }
+
+ [SecuritySafeCritical]
+ public static ExecutionContext Capture()
+ {
+ return t_currentMaybeNull ?? ExecutionContext.Default;
+ }
+
+ [SecurityCritical]
+ [HandleProcessCorruptedStateExceptions]
+ public static void Run(ExecutionContext executionContext, ContextCallback callback, Object state)
+ {
+ ExecutionContextSwitcher ecsw = default(ExecutionContextSwitcher);
+ try
+ {
+ EstablishCopyOnWriteScope(ref ecsw);
+
+ ExecutionContext.Restore(executionContext);
+ callback(state);
+ }
+ catch
+ {
+ // Note: we have a "catch" rather than a "finally" because we want
+ // to stop the first pass of EH here. That way we can restore the previous
+ // context before any of our callers' EH filters run. That means we need to
+ // end the scope separately in the non-exceptional case below.
+ ecsw.Undo();
+ throw;
+ }
+ ecsw.Undo();
+ }
+
+ [SecurityCritical]
+ internal static void Restore(ExecutionContext executionContext)
+ {
+ if (executionContext == null)
+ throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_NullContext"));
+
+ ExecutionContext previous = t_currentMaybeNull ?? Default;
+ t_currentMaybeNull = executionContext;
+
+ if (previous != executionContext)
+ OnContextChanged(previous, executionContext);
+ }
+
+ [SecurityCritical]
+ static internal void EstablishCopyOnWriteScope(ref ExecutionContextSwitcher ecsw)
+ {
+ ecsw.m_ec = Capture();
+ ecsw.m_sc = SynchronizationContext.CurrentNoFlow;
+ }
+
+ [SecurityCritical]
+ [HandleProcessCorruptedStateExceptions]
+ private static void OnContextChanged(ExecutionContext previous, ExecutionContext current)
+ {
+ previous = previous ?? Default;
+
+ foreach (IAsyncLocal local in previous.m_localChangeNotifications)
+ {
+ object previousValue;
+ object currentValue;
+ previous.m_localValues.TryGetValue(local, out previousValue);
+ current.m_localValues.TryGetValue(local, out currentValue);
+
+ if (previousValue != currentValue)
+ local.OnValueChanged(previousValue, currentValue, true);
+ }
+
+ if (current.m_localChangeNotifications != previous.m_localChangeNotifications)
+ {
+ try
+ {
+ foreach (IAsyncLocal local in current.m_localChangeNotifications)
+ {
+ // If the local has a value in the previous context, we already fired the event for that local
+ // in the code above.
+ object previousValue;
+ if (!previous.m_localValues.TryGetValue(local, out previousValue))
+ {
+ object currentValue;
+ current.m_localValues.TryGetValue(local, out currentValue);
+
+ if (previousValue != currentValue)
+ local.OnValueChanged(previousValue, currentValue, true);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ Environment.FailFast(
+ Environment.GetResourceString("ExecutionContext_ExceptionInAsyncLocalNotification"),
+ ex);
+ }
+ }
+ }
+
+ [SecurityCritical]
+ internal static object GetLocalValue(IAsyncLocal local)
+ {
+ ExecutionContext current = t_currentMaybeNull;
+ if (current == null)
+ return null;
+
+ object value;
+ current.m_localValues.TryGetValue(local, out value);
+ return value;
+ }
+
+ [SecurityCritical]
+ internal static void SetLocalValue(IAsyncLocal local, object newValue, bool needChangeNotifications)
+ {
+ ExecutionContext current = t_currentMaybeNull ?? ExecutionContext.Default;
+
+ object previousValue;
+ bool hadPreviousValue = current.m_localValues.TryGetValue(local, out previousValue);
+
+ if (previousValue == newValue)
+ return;
+
+ current = new ExecutionContext(current);
+ current.m_localValues[local] = newValue;
+
+ t_currentMaybeNull = current;
+
+ if (needChangeNotifications)
+ {
+ if (hadPreviousValue)
+ Contract.Assert(current.m_localChangeNotifications.Contains(local));
+ else
+ current.m_localChangeNotifications.Add(local);
+
+ local.OnValueChanged(previousValue, newValue, false);
+ }
+ }
+
+ #region Wrappers for CLR compat, to avoid ifdefs all over the BCL
+
+ [Flags]
+ internal enum CaptureOptions
+ {
+ None = 0x00,
+ IgnoreSyncCtx = 0x01,
+ OptimizeDefaultCase = 0x02,
+ }
+
+ [SecurityCritical]
+ internal static ExecutionContext Capture(ref StackCrawlMark stackMark, CaptureOptions captureOptions)
+ {
+ return Capture();
+ }
+
+ [SecuritySafeCritical]
+ [FriendAccessAllowed]
+ internal static ExecutionContext FastCapture()
+ {
+ return Capture();
+ }
+
+ [SecurityCritical]
+ [FriendAccessAllowed]
+ internal static void Run(ExecutionContext executionContext, ContextCallback callback, Object state, bool preserveSyncCtx)
+ {
+ Run(executionContext, callback, state);
+ }
+
+ [SecurityCritical]
+ internal bool IsDefaultFTContext(bool ignoreSyncCtx)
+ {
+ ExecutionContext current = t_currentMaybeNull;
+ return current == null || current == Default;
+ }
+
+ [SecuritySafeCritical]
+ public ExecutionContext CreateCopy()
+ {
+ return this; // since CoreCLR's ExecutionContext is immutable, we don't need to create copies.
+ }
+
+ public void Dispose()
+ {
+ // For CLR compat only
+ }
+
+ public static bool IsFlowSuppressed()
+ {
+ return false;
+ }
+
+ internal static ExecutionContext PreAllocatedDefault
+ {
+ [SecuritySafeCritical]
+ get { return ExecutionContext.Default; }
+ }
+
+ internal bool IsPreAllocatedDefault
+ {
+ get { return this == ExecutionContext.Default; }
+ }
+
+ #endregion
+ }
+
+#else // FEATURE_CORECLR
+
+ // Legacy desktop ExecutionContext implementation
internal struct ExecutionContextSwitcher
{
@@ -61,7 +307,7 @@ namespace System.Threading
{
try
{
- Undo(Thread.CurrentThread);
+ Undo();
}
catch
{
@@ -72,7 +318,7 @@ namespace System.Threading
[System.Security.SecurityCritical] // auto-generated
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
- internal void Undo(Thread currentThread)
+ internal void Undo()
{
//
// Don't use an uninitialized switcher, or one that's already been used.
@@ -80,7 +326,8 @@ namespace System.Threading
if (thread == null)
return; // Don't do anything
- Contract.Assert(currentThread == this.thread);
+ Contract.Assert(Thread.CurrentThread == this.thread);
+ Thread currentThread = this.thread;
//
// Restore the HostExecutionContext before restoring the ExecutionContext.
@@ -94,9 +341,7 @@ namespace System.Threading
// restore the saved Execution Context. Note that this will also restore the
// SynchronizationContext, Logical/IllogicalCallContext, etc.
//
-#if !FEATURE_PAL && FEATURE_IMPERSONATION
ExecutionContext.Reader innerEC = currentThread.GetExecutionContextReader();
-#endif
currentThread.SetExecutionContext(outerEC, outerECBelongsToScope);
#if !MONO && DEBUG
@@ -104,6 +349,7 @@ namespace System.Threading
{
currentThread.ForbidExecutionContextMutation = true;
#endif
+
//
// Tell the SecurityContext to do the side-effects of restoration.
//
@@ -128,6 +374,7 @@ namespace System.Threading
currentThread.ForbidExecutionContextMutation = false;
}
#endif
+ ExecutionContext.OnAsyncLocalContextChanged(innerEC.DangerousGetRawExecutionContext(), outerEC.DangerousGetRawExecutionContext());
}
}
@@ -200,7 +447,7 @@ namespace System.Threading
public override int GetHashCode()
{
- // review - [....]
+ // review - Microsoft
return _thread == null ? ToString().GetHashCode() : _thread.GetHashCode();
}
@@ -233,12 +480,6 @@ namespace System.Threading
}
- #if FEATURE_CORECLR
- [System.Security.SecurityCritical] // auto-generated
- #endif
- [System.Runtime.InteropServices.ComVisible(true)]
- public delegate void ContextCallback(Object state);
-
[Serializable]
public sealed class ExecutionContext : IDisposable, ISerializable
@@ -251,16 +492,16 @@ namespace System.Threading
#if FEATURE_CAS_POLICY
private HostExecutionContext _hostExecutionContext;
#endif // FEATURE_CAS_POLICY
-#if FEATURE_SYNCHRONIZATIONCONTEXT
private SynchronizationContext _syncContext;
private SynchronizationContext _syncContextNoFlow;
-#endif // FEATURE_SYNCHRONIZATIONCONTEXT
#if FEATURE_IMPERSONATION || FEATURE_COMPRESSEDSTACK
private SecurityContext _securityContext;
#endif // #if FEATURE_IMPERSONATION || FEATURE_COMPRESSEDSTACK
+#if FEATURE_REMOTING
[System.Security.SecurityCritical] // auto-generated
private LogicalCallContext _logicalCallContext;
private IllogicalCallContext _illogicalCallContext; // this call context follows the physical thread
+#endif // #if FEATURE_REMOTING
enum Flags
{
@@ -271,6 +512,9 @@ namespace System.Threading
}
private Flags _flags;
+ private Dictionary<IAsyncLocal, object> _localValues;
+ private List<IAsyncLocal> _localChangeNotifications;
+
internal bool isNewCapture
{
get
@@ -355,18 +599,14 @@ namespace System.Threading
public bool IsDefaultFTContext(bool ignoreSyncCtx) { return m_ec.IsDefaultFTContext(ignoreSyncCtx); }
public bool IsFlowSuppressed
{
-#if !FEATURE_CORECLR
[MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
get { return IsNull ? false : m_ec.isFlowSuppressed; }
}
//public Thread Thread { get { return m_ec._thread; } }
public bool IsSame(ExecutionContext.Reader other) { return m_ec == other.m_ec; }
-#if FEATURE_SYNCHRONIZATIONCONTEXT
public SynchronizationContext SynchronizationContext { get { return IsNull ? null : m_ec.SynchronizationContext; } }
public SynchronizationContext SynchronizationContextNoFlow { get { return IsNull ? null : m_ec.SynchronizationContextNoFlow; } }
-#endif
#if FEATURE_IMPERSONATION || FEATURE_COMPRESSEDSTACK
public SecurityContext.Reader SecurityContext
@@ -377,6 +617,7 @@ namespace System.Threading
}
#endif
+#if FEATURE_REMOTING
public LogicalCallContext.Reader LogicalCallContext
{
[SecurityCritical]
@@ -388,8 +629,138 @@ namespace System.Threading
[SecurityCritical]
get { return new IllogicalCallContext.Reader(IsNull ? null : m_ec.IllogicalCallContext); }
}
+#endif
+
+ [SecurityCritical]
+ public object GetLocalValue(IAsyncLocal local)
+ {
+ if (IsNull)
+ return null;
+
+ if (m_ec._localValues == null)
+ return null;
+
+ object value;
+ m_ec._localValues.TryGetValue(local, out value);
+ return value;
+ }
+
+ [SecurityCritical]
+ public bool HasSameLocalValues(ExecutionContext other)
+ {
+ var thisLocalValues = IsNull ? null : m_ec._localValues;
+ var otherLocalValues = other == null ? null : other._localValues;
+ return thisLocalValues == otherLocalValues;
+ }
+
+ [SecurityCritical]
+ public bool HasLocalValues()
+ {
+ return !this.IsNull && m_ec._localValues != null;
+ }
}
+ [SecurityCritical]
+ internal static object GetLocalValue(IAsyncLocal local)
+ {
+ return Thread.CurrentThread.GetExecutionContextReader().GetLocalValue(local);
+ }
+
+ [SecurityCritical]
+ internal static void SetLocalValue(IAsyncLocal local, object newValue, bool needChangeNotifications)
+ {
+ ExecutionContext current = Thread.CurrentThread.GetMutableExecutionContext();
+
+ object previousValue = null;
+ bool hadPreviousValue = current._localValues != null && current._localValues.TryGetValue(local, out previousValue);
+
+ if (previousValue == newValue)
+ return;
+
+ if (current._localValues == null)
+ current._localValues = new Dictionary<IAsyncLocal, object>();
+ else
+ current._localValues = new Dictionary<IAsyncLocal, object>(current._localValues);
+
+ current._localValues[local] = newValue;
+
+ if (needChangeNotifications)
+ {
+ if (hadPreviousValue)
+ {
+ Contract.Assert(current._localChangeNotifications != null);
+ Contract.Assert(current._localChangeNotifications.Contains(local));
+ }
+ else
+ {
+ if (current._localChangeNotifications == null)
+ current._localChangeNotifications = new List<IAsyncLocal>();
+ else
+ current._localChangeNotifications = new List<IAsyncLocal>(current._localChangeNotifications);
+
+ current._localChangeNotifications.Add(local);
+ }
+
+ local.OnValueChanged(previousValue, newValue, false);
+ }
+ }
+
+ [SecurityCritical]
+ [HandleProcessCorruptedStateExceptions]
+ internal static void OnAsyncLocalContextChanged(ExecutionContext previous, ExecutionContext current)
+ {
+ List<IAsyncLocal> previousLocalChangeNotifications = (previous == null) ? null : previous._localChangeNotifications;
+ if (previousLocalChangeNotifications != null)
+ {
+ foreach (IAsyncLocal local in previousLocalChangeNotifications)
+ {
+ object previousValue = null;
+ if (previous != null && previous._localValues != null)
+ previous._localValues.TryGetValue(local, out previousValue);
+
+ object currentValue = null;
+ if (current != null && current._localValues != null)
+ current._localValues.TryGetValue(local, out currentValue);
+
+ if (previousValue != currentValue)
+ local.OnValueChanged(previousValue, currentValue, true);
+ }
+ }
+
+ List<IAsyncLocal> currentLocalChangeNotifications = (current == null) ? null : current._localChangeNotifications;
+ if (currentLocalChangeNotifications != null && currentLocalChangeNotifications != previousLocalChangeNotifications)
+ {
+ try
+ {
+ foreach (IAsyncLocal local in currentLocalChangeNotifications)
+ {
+ // If the local has a value in the previous context, we already fired the event for that local
+ // in the code above.
+ object previousValue = null;
+ if (previous == null ||
+ previous._localValues == null ||
+ !previous._localValues.TryGetValue(local, out previousValue))
+ {
+ object currentValue = null;
+ if (current != null && current._localValues != null)
+ current._localValues.TryGetValue(local, out currentValue);
+
+ if (previousValue != currentValue)
+ local.OnValueChanged(previousValue, currentValue, true);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ Environment.FailFast(
+ Environment.GetResourceString("ExecutionContext_ExceptionInAsyncLocalNotification"),
+ ex);
+ }
+ }
+ }
+
+
+#if FEATURE_REMOTING
internal LogicalCallContext LogicalCallContext
{
[System.Security.SecurityCritical] // auto-generated
@@ -425,8 +796,8 @@ namespace System.Threading
_illogicalCallContext = value;
}
}
+#endif // #if FEATURE_REMOTING
-#if FEATURE_SYNCHRONIZATIONCONTEXT
internal SynchronizationContext SynchronizationContext
{
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
@@ -456,7 +827,7 @@ namespace System.Threading
_syncContextNoFlow = value;
}
}
-#endif // #if FEATURE_SYNCHRONIZATIONCONTEXT
+
#if FEATURE_CAS_POLICY
internal HostExecutionContext HostExecutionContext
{
@@ -559,7 +930,9 @@ namespace System.Threading
#if FEATURE_IMPERSONATION || FEATURE_COMPRESSEDSTACK
SecurityContext.CurrentlyInDefaultFTSecurityContext(ec) &&
#endif // #if FEATURE_IMPERSONATION || FEATURE_COMPRESSEDSTACK
- executionContext.IsDefaultFTContext(preserveSyncCtx))
+ executionContext.IsDefaultFTContext(preserveSyncCtx) &&
+ ec.HasSameLocalValues(executionContext)
+ )
{
// Neither context is interesting, so we don't need to set the context.
// We do need to reset any changes made by the user's callback,
@@ -571,7 +944,7 @@ namespace System.Threading
else
{
if (executionContext.IsPreAllocatedDefault)
- executionContext = executionContext.CreateCopy();
+ executionContext = new ExecutionContext();
ecsw = SetExecutionContext(executionContext, preserveSyncCtx);
}
@@ -582,12 +955,18 @@ namespace System.Threading
}
finally
{
- ecsw.Undo(currentThread);
+ ecsw.Undo();
}
}
[SecurityCritical]
- static internal void EstablishCopyOnWriteScope(Thread currentThread, bool knownNullWindowsIdentity, ref ExecutionContextSwitcher ecsw)
+ static internal void EstablishCopyOnWriteScope(ref ExecutionContextSwitcher ecsw)
+ {
+ EstablishCopyOnWriteScope(Thread.CurrentThread, false, ref ecsw);
+ }
+
+ [SecurityCritical]
+ static private void EstablishCopyOnWriteScope(Thread currentThread, bool knownNullWindowsIdentity, ref ExecutionContextSwitcher ecsw)
{
Contract.Assert(currentThread == Thread.CurrentThread);
@@ -643,6 +1022,8 @@ namespace System.Threading
RuntimeHelpers.PrepareConstrainedRegions();
try
{
+ OnAsyncLocalContextChanged(outerEC.DangerousGetRawExecutionContext(), executionContext);
+
#if FEATURE_IMPERSONATION || FEATURE_COMPRESSEDSTACK
//set the security context
SecurityContext sc = executionContext.SecurityContext;
@@ -689,9 +1070,9 @@ namespace System.Threading
}
ExecutionContext ec = new ExecutionContext();
ec.isNewCapture = true;
-#if FEATURE_SYNCHRONIZATIONCONTEXT
ec._syncContext = _syncContext == null ? null : _syncContext.CreateCopy();
-#endif // #if FEATURE_SYNCHRONIZATIONCONTEXT
+ ec._localValues = _localValues;
+ ec._localChangeNotifications = _localChangeNotifications;
#if FEATURE_CAS_POLICY
// capture the host execution context
ec._hostExecutionContext = _hostExecutionContext == null ? null : _hostExecutionContext.CreateCopy();
@@ -704,10 +1085,12 @@ namespace System.Threading
}
#endif // #if FEATURE_IMPERSONATION || FEATURE_COMPRESSEDSTACK
+#if FEATURE_REMOTING
if (this._logicalCallContext != null)
ec.LogicalCallContext = (LogicalCallContext)this.LogicalCallContext.Clone();
Contract.Assert(this._illogicalCallContext == null);
+#endif // #if FEATURE_REMOTING
return ec;
}
@@ -723,10 +1106,8 @@ namespace System.Threading
ExecutionContext ec = new ExecutionContext();
// We don't deep-copy the SyncCtx, since we're still in the same context after copy-on-write.
-#if FEATURE_SYNCHRONIZATIONCONTEXT
ec._syncContext = this._syncContext;
ec._syncContextNoFlow = this._syncContextNoFlow;
-#endif // #if FEATURE_SYNCHRONIZATIONCONTEXT
#if FEATURE_CAS_POLICY
// capture the host execution context
@@ -741,12 +1122,16 @@ namespace System.Threading
}
#endif // #if FEATURE_IMPERSONATION || FEATURE_COMPRESSEDSTACK
+#if FEATURE_REMOTING
if (this._logicalCallContext != null)
ec.LogicalCallContext = (LogicalCallContext)this.LogicalCallContext.Clone();
if (this._illogicalCallContext != null)
ec.IllogicalCallContext = (IllogicalCallContext)this.IllogicalCallContext.CreateCopy();
+#endif // #if FEATURE_REMOTING
+ ec._localValues = this._localValues;
+ ec._localChangeNotifications = this._localChangeNotifications;
ec.isFlowSuppressed = this.isFlowSuppressed;
return ec;
@@ -841,22 +1226,31 @@ namespace System.Threading
HostExecutionContext hostCtxNew = HostExecutionContextManager.CaptureHostExecutionContext();
#endif // FEATURE_CAS_POLICY
-#if FEATURE_SYNCHRONIZATIONCONTEXT
SynchronizationContext syncCtxNew = null;
-#endif
+
+#if FEATURE_REMOTING
LogicalCallContext logCtxNew = null;
+#endif
if (!ecCurrent.IsNull)
{
-#if FEATURE_SYNCHRONIZATIONCONTEXT
- // capture the [....] context
+ // capture the sync context
if (0 == (options & CaptureOptions.IgnoreSyncCtx))
syncCtxNew = (ecCurrent.SynchronizationContext == null) ? null : ecCurrent.SynchronizationContext.CreateCopy();
-#endif // #if FEATURE_SYNCHRONIZATIONCONTEXT
+#if FEATURE_REMOTING
// copy over the Logical Call Context
if (ecCurrent.LogicalCallContext.HasInfo)
logCtxNew = ecCurrent.LogicalCallContext.Clone();
+#endif // #if FEATURE_REMOTING
+ }
+
+ Dictionary<IAsyncLocal, object> localValues = null;
+ List<IAsyncLocal> localChangeNotifications = null;
+ if (!ecCurrent.IsNull)
+ {
+ localValues = ecCurrent.DangerousGetRawExecutionContext()._localValues;
+ localChangeNotifications = ecCurrent.DangerousGetRawExecutionContext()._localChangeNotifications;
}
//
@@ -870,10 +1264,13 @@ namespace System.Threading
#if FEATURE_CAS_POLICY
hostCtxNew == null &&
#endif // FEATURE_CAS_POLICY
-#if FEATURE_SYNCHRONIZATIONCONTEXT
syncCtxNew == null &&
-#endif // #if FEATURE_SYNCHRONIZATIONCONTEXT
- (logCtxNew == null || !logCtxNew.HasInfo))
+#if FEATURE_REMOTING
+ (logCtxNew == null || !logCtxNew.HasInfo) &&
+#endif // #if FEATURE_REMOTING
+ localValues == null &&
+ localChangeNotifications == null
+ )
{
return s_dummyDefaultEC;
}
@@ -890,10 +1287,12 @@ namespace System.Threading
#if FEATURE_CAS_POLICY
ecNew._hostExecutionContext = hostCtxNew;
#endif // FEATURE_CAS_POLICY
-#if FEATURE_SYNCHRONIZATIONCONTEXT
ecNew._syncContext = syncCtxNew;
-#endif // #if FEATURE_SYNCHRONIZATIONCONTEXT
+#if FEATURE_REMOTING
ecNew.LogicalCallContext = logCtxNew;
+#endif // #if FEATURE_REMOTING
+ ecNew._localValues = localValues;
+ ecNew._localChangeNotifications = localChangeNotifications;
ecNew.isNewCapture = true;
return ecNew;
@@ -910,10 +1309,12 @@ namespace System.Threading
throw new ArgumentNullException("info");
Contract.EndContractBlock();
+#if FEATURE_REMOTING
if (_logicalCallContext != null)
{
info.AddValue("LogicalCallContext", _logicalCallContext, typeof(LogicalCallContext));
}
+#endif // #if FEATURE_REMOTING
}
[System.Security.SecurityCritical] // auto-generated
@@ -922,10 +1323,12 @@ namespace System.Threading
SerializationInfoEnumerator e = info.GetEnumerator();
while (e.MoveNext())
{
+#if FEATURE_REMOTING
if (e.Name.Equals("LogicalCallContext"))
{
_logicalCallContext = (LogicalCallContext) e.Value;
}
+#endif // #if FEATURE_REMOTING
}
} // ObjRef .ctor
@@ -937,21 +1340,23 @@ namespace System.Threading
if (_hostExecutionContext != null)
return false;
#endif // FEATURE_CAS_POLICY
-#if FEATURE_SYNCHRONIZATIONCONTEXT
if (!ignoreSyncCtx && _syncContext != null)
return false;
-#endif // #if FEATURE_SYNCHRONIZATIONCONTEXT
#if FEATURE_IMPERSONATION || FEATURE_COMPRESSEDSTACK
if (_securityContext != null && !_securityContext.IsDefaultFTSecurityContext())
return false;
-#endif //#if FEATURE_IMPERSONATION || FEATURE_COMPRESSEDSTACK
+#endif //#if FEATURE_IMPERSONATION || FEATURE_COMPRESSEDSTACK
+#if FEATURE_REMOTING
if (_logicalCallContext != null && _logicalCallContext.HasInfo)
return false;
if (_illogicalCallContext != null && _illogicalCallContext.HasUserData)
return false;
+#endif //#if FEATURE_REMOTING
return true;
}
} // class ExecutionContext
+
+#endif //FEATURE_CORECLR
}
diff --git a/mcs/class/referencesource/mscorlib/system/threading/hostexecutioncontextmanager.cs b/mcs/class/referencesource/mscorlib/system/threading/hostexecutioncontextmanager.cs
index 981b2889b52..2f5ccc66761 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/hostexecutioncontextmanager.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/hostexecutioncontextmanager.cs
@@ -4,7 +4,7 @@ using System.Diagnostics.Contracts;
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*============================================================
**
** Class: ExecutionContext
diff --git a/mcs/class/referencesource/mscorlib/system/threading/interlocked.cs b/mcs/class/referencesource/mscorlib/system/threading/interlocked.cs
index bb4577b912a..441460b70a5 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/interlocked.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/interlocked.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace System.Threading
{
using System;
@@ -29,9 +29,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int Increment(ref int location)
{
return Add(ref location, 1);
@@ -39,9 +36,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static long Increment(ref long location)
{
return Add(ref location, 1);
@@ -55,18 +49,12 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int Decrement(ref int location)
{
return Add(ref location, -1);
}
[ResourceExposure(ResourceScope.None)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static long Decrement(ref long location)
{
return Add(ref location, -1);
@@ -103,13 +91,11 @@ namespace System.Threading
[System.Security.SecuritySafeCritical]
public static extern double Exchange(ref double location1, double value);
-#if !FEATURE_CORECLR || FEATURE_NETCORE
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[System.Security.SecuritySafeCritical]
public static extern Object Exchange(ref Object location1, Object value);
-#endif
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
@@ -242,18 +228,12 @@ namespace System.Threading
internal static extern long ExchangeAdd(ref long location1, long value);
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int Add(ref int location1, int value)
{
return ExchangeAdd(ref location1, value) + value;
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static long Add(ref long location1, long value)
{
return ExchangeAdd(ref location1, value) + value;
@@ -268,9 +248,6 @@ namespace System.Threading
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static void MemoryBarrier()
{
Thread.MemoryBarrier();
diff --git a/mcs/class/referencesource/mscorlib/system/threading/lockcookie.cs b/mcs/class/referencesource/mscorlib/system/threading/lockcookie.cs
index 86f8182221d..32c9760976f 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/lockcookie.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/lockcookie.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*============================================================
**
** Class: LockCookie
@@ -29,7 +29,7 @@ namespace System.Threading {
public override int GetHashCode()
{
- // review - [....]!
+ // review - Microsoft!
return _dwFlags + _dwWriterSeqNum + _wReaderAndWriterLevel + _dwThreadID;
}
diff --git a/mcs/class/referencesource/mscorlib/system/threading/lockrecursionexception.cs b/mcs/class/referencesource/mscorlib/system/threading/lockrecursionexception.cs
index f9c999135f7..392c72cc8a8 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/lockrecursionexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/lockrecursionexception.cs
@@ -13,8 +13,8 @@
// acquire a lock, because the particular lock kind doesn't
// support it in its current state.
//
-// <OWNER>[....]</OWNER>
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
+// <OWNER>Microsoft</OWNER>
//
============================================================*/
diff --git a/mcs/class/referencesource/mscorlib/system/threading/manualresetevent.cs b/mcs/class/referencesource/mscorlib/system/threading/manualresetevent.cs
index 40db6655c7f..1586fb44ac9 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/manualresetevent.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/manualresetevent.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*=============================================================================
**
** Class: ManualResetEvent
diff --git a/mcs/class/referencesource/mscorlib/system/threading/monitor.cs b/mcs/class/referencesource/mscorlib/system/threading/monitor.cs
index 9161c722718..9ceade56607 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/monitor.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/monitor.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*=============================================================================
**
** Class: Monitor
@@ -52,9 +52,6 @@ namespace System.Threading {
// could be uninitialized if we threw an exception in our prolog.
// The JIT should inline this method to allow check of lockTaken argument to be optimized out
// in the typical case. Note that the method has to be transparent for inlining to be allowed by the VM.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static void Enter(Object obj, ref bool lockTaken)
{
if (lockTaken)
@@ -107,9 +104,6 @@ namespace System.Threading {
// The JIT should inline this method to allow check of lockTaken argument to be optimized out
// in the typical case. Note that the method has to be transparent for inlining to be allowed by the VM.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static void TryEnter(Object obj, ref bool lockTaken)
{
if (lockTaken)
@@ -128,9 +122,6 @@ namespace System.Threading {
=========================================================================*/
// The JIT should inline this method to allow check of lockTaken argument to be optimized out
// in the typical case. Note that the method has to be transparent for inlining to be allowed by the VM.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool TryEnter(Object obj, int millisecondsTimeout)
{
bool lockTaken = false;
@@ -153,9 +144,6 @@ namespace System.Threading {
// The JIT should inline this method to allow check of lockTaken argument to be optimized out
// in the typical case. Note that the method has to be transparent for inlining to be allowed by the VM.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static void TryEnter(Object obj, int millisecondsTimeout, ref bool lockTaken)
{
if (lockTaken)
diff --git a/mcs/class/referencesource/mscorlib/system/threading/mutex.cs b/mcs/class/referencesource/mscorlib/system/threading/mutex.cs
index ec704e95a04..9e403c08a8d 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/mutex.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/mutex.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*=============================================================================
**
** Class: Mutex
@@ -40,18 +40,6 @@ namespace System.Threading
{
static bool dummyBool;
-#if FEATURE_MACL
- // Enables workaround for known OS bug at
- // http://support.microsoft.com/default.aspx?scid=kb;en-us;889318
- // Calls to OpenMutex and CloseHandle on a mutex must essentially be serialized
- // to avoid a bug in which the mutex allows multiple entries.
- static Mutex s_ReservedMutex = null;
-
- // an arbitrary, reserved name.
- //
- const string c_ReservedMutexName = "Global\\CLR_RESERVED_MUTEX_NAME";
-#endif
-
#if !FEATURE_MACL
public class MutexSecurity {
}
@@ -113,6 +101,9 @@ namespace System.Threading
#if FEATURE_LEGACYNETCF
static string WinCEObjectNameQuirk(string name)
{
+ if (name == null)
+ return null;
+
// WinCE allowed backslashes in kernel object names, but WinNT does not allow them.
// Replace all backslashes with a rare unicode character if we are in NetCF compat mode.
// Mutex was the only named kernel object exposed to phone apps, so we do not have
@@ -205,7 +196,6 @@ namespace System.Threading
}
m_newMutex = errorCode != Win32Native.ERROR_ALREADY_EXISTS;
m_mutex.SetHandleInternal(mutexHandle);
- mutexHandle.SetAsMutex();
m_mutex.hasThreadAffinity = true;
@@ -292,7 +282,6 @@ namespace System.Threading
private Mutex(SafeWaitHandle handle)
{
SetHandleInternal(handle);
- handle.SetAsMutex();
hasThreadAffinity = true;
}
@@ -444,7 +433,6 @@ namespace System.Threading
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
static int CreateMutexHandle(bool initiallyOwned, String name, Win32Native.SECURITY_ATTRIBUTES securityAttribute, out SafeWaitHandle mutexHandle) {
int errorCode;
- bool fReservedMutexObtained = false;
bool fAffinity = false;
while(true) {
@@ -472,7 +460,6 @@ namespace System.Threading
#endif
fAffinity = true;
}
- AcquireReservedMutex(ref fReservedMutexObtained);
mutexHandle = Win32Native.OpenMutex(Win32Native.MUTEX_MODIFY_STATE | Win32Native.SYNCHRONIZE, false, name);
if(!mutexHandle.IsInvalid)
{
@@ -485,9 +472,6 @@ namespace System.Threading
}
finally
{
- if (fReservedMutexObtained)
- ReleaseReservedMutex();
-
if (fAffinity) {
#if !FEATURE_CORECLR
Thread.EndThreadAffinity();
@@ -529,98 +513,5 @@ namespace System.Threading
}
#endif
- // Enables workaround for known OS bug at
- // http://support.microsoft.com/default.aspx?scid=kb;en-us;889318
- // One machine-wide mutex serializes all OpenMutex and CloseHandle operations.
- [System.Security.SecurityCritical] // auto-generated
- [ResourceExposure(ResourceScope.None)]
- [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
- [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
-#if !FEATURE_CORECLR
- [SecurityPermission(SecurityAction.Assert, ControlPrincipal = true)]
-#endif
- internal static unsafe void AcquireReservedMutex(ref bool bHandleObtained)
- {
-#if FEATURE_MACL
- SafeWaitHandle mutexHandle = null;
- int errorCode;
-
- bHandleObtained = false;
-
- if (!Environment.IsW2k3) {
- return;
- }
-
- if (s_ReservedMutex == null) {
-
- // Create a maximally-permissive security descriptor, to ensure we never get an
- // ACCESS_DENIED error when calling CreateMutex
- MutexSecurity sec = new MutexSecurity();
- SecurityIdentifier everyoneSid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
- sec.AddAccessRule(new MutexAccessRule(everyoneSid, MutexRights.FullControl, AccessControlType.Allow));
-
- // For ACL's, get the security descriptor from the MutexSecurity.
- Win32Native.SECURITY_ATTRIBUTES secAttrs = new Win32Native.SECURITY_ATTRIBUTES();
- secAttrs.nLength = (int)Marshal.SizeOf(secAttrs);
-
- byte[] sd = sec.GetSecurityDescriptorBinaryForm();
- byte * bytesOnStack = stackalloc byte[sd.Length];
- Buffer.Memcpy(bytesOnStack, 0, sd, 0, sd.Length);
- secAttrs.pSecurityDescriptor = bytesOnStack;
-
- RuntimeHelpers.PrepareConstrainedRegions();
- try {}
- finally {
- mutexHandle = Win32Native.CreateMutex(secAttrs, false, c_ReservedMutexName);
-
- // need to set specially, since this mutex cannot lock on itself while closing itself.
- mutexHandle.SetAsReservedMutex();
- }
-
- errorCode = Marshal.GetLastWin32Error();
- if (mutexHandle.IsInvalid) {
- mutexHandle.SetHandleAsInvalid();
- __Error.WinIOError(errorCode, c_ReservedMutexName);
- }
-
- Mutex m = new Mutex(mutexHandle);
- Interlocked.CompareExchange(ref s_ReservedMutex, m, null);
-
- }
-
-
- RuntimeHelpers.PrepareConstrainedRegions();
- try { }
- finally {
- try {
- s_ReservedMutex.WaitOne();
- bHandleObtained = true;
- }
- catch (AbandonedMutexException)
- {
- // we don't care if another process holding the Mutex was killed
- bHandleObtained = true;
- }
- }
-#else
- bHandleObtained = true;
-#endif
- }
-
- [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
- internal static void ReleaseReservedMutex()
- {
-#if FEATURE_MACL
- if (!Environment.IsW2k3)
- {
- return;
- }
-
- Contract.Assert(s_ReservedMutex != null,
- "ReleaseReservedMutex called without prior call to AcquireReservedMutex!");
-
- s_ReservedMutex.ReleaseMutex();
-#endif
- }
}
}
diff --git a/mcs/class/referencesource/mscorlib/system/threading/overlapped.cs b/mcs/class/referencesource/mscorlib/system/threading/overlapped.cs
index eb22b0a8c16..2a19f42f086 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/overlapped.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/overlapped.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*
* This files defines the following types:
diff --git a/mcs/class/referencesource/mscorlib/system/threading/parameterizedthreadstart.cs b/mcs/class/referencesource/mscorlib/system/threading/parameterizedthreadstart.cs
index d6145adfa17..ab73fe27461 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/parameterizedthreadstart.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/parameterizedthreadstart.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ericeil</OWNER>
/*=============================================================================
**
** Class: ParameterizedThreadStart
diff --git a/mcs/class/referencesource/mscorlib/system/threading/readerwriterlock.cs b/mcs/class/referencesource/mscorlib/system/threading/readerwriterlock.cs
index cc5a736be4a..50f61b25fae 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/readerwriterlock.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/readerwriterlock.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*============================================================
**
** Class: RWLock
diff --git a/mcs/class/referencesource/mscorlib/system/threading/semaphorefullexception.cs b/mcs/class/referencesource/mscorlib/system/threading/semaphorefullexception.cs
index 19b0632ca47..5a61c8f793d 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/semaphorefullexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/semaphorefullexception.cs
@@ -7,7 +7,7 @@
**
** Class: SemaphoreFullException
**
-** <OWNER>[....]</OWNER>
+** <OWNER>Microsoft</OWNER>
**
=============================================================================*/
namespace System.Threading {
diff --git a/mcs/class/referencesource/mscorlib/system/threading/sendorpostcallback.cs b/mcs/class/referencesource/mscorlib/system/threading/sendorpostcallback.cs
index 6dbfb37ab81..0a8d12ebe44 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/sendorpostcallback.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/sendorpostcallback.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ericeil</OWNER>
/*============================================================
**
** Class: SendOrPostCallback
diff --git a/mcs/class/referencesource/mscorlib/system/threading/synchronizationcontext.cs b/mcs/class/referencesource/mscorlib/system/threading/synchronizationcontext.cs
index 0212b840b8c..8db6ab8481c 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/synchronizationcontext.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/synchronizationcontext.cs
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*============================================================
**
** Class: SynchronizationContext
@@ -72,13 +72,16 @@ namespace System.Threading
#if FEATURE_SYNCHRONIZATIONCONTEXT_WAIT
+ // helper delegate to statically bind to Wait method
+ private delegate int WaitDelegate(IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout);
+
static Type s_cachedPreparedType1;
static Type s_cachedPreparedType2;
static Type s_cachedPreparedType3;
static Type s_cachedPreparedType4;
static Type s_cachedPreparedType5;
- // protected so that only the derived [....] context class can enable these flags
+ // protected so that only the derived sync context class can enable these flags
[System.Security.SecuritySafeCritical] // auto-generated
[SuppressMessage("Microsoft.Concurrency", "CA8001", Justification = "We never dereference s_cachedPreparedType*, so ordering is unimportant")]
protected void SetWaitNotificationRequired()
@@ -92,7 +95,7 @@ namespace System.Threading
// So we keep track of a few types we've already prepared in this AD. It is uncommon to have more than
// a few SynchronizationContext implementations, so we only cache the first five we encounter; this lets
// our cache be much faster than a more general cache might be. This is important, because this
- // is a *very* hot code path for many WPF and [....] apps.
+ // is a *very* hot code path for many WPF and Microsoft apps.
//
Type type = this.GetType();
if (s_cachedPreparedType1 != type &&
@@ -178,71 +181,76 @@ namespace System.Threading
#endif
#endif
- // set SynchronizationContext on the current thread
- [System.Security.SecurityCritical] // auto-generated_required
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
- public static void SetSynchronizationContext(SynchronizationContext syncContext)
- {
- ExecutionContext ec = Thread.CurrentThread.GetMutableExecutionContext();
- ec.SynchronizationContext = syncContext;
- ec.SynchronizationContextNoFlow = syncContext;
- }
-#if FEATURE_CORECLR || MOBILE_LEGACY
- //
- // This is a framework-internal method for Jolt's use. The problem is that SynchronizationContexts set inside of a reverse p/invoke
- // into an AppDomain are not persisted in that AppDomain; the next time the same thread calls into the same AppDomain,
- // the [....] context will be null. For Silverlight, this means that it's impossible to persist a [....] context on the UI thread,
- // since Jolt is constantly transitioning in and out of each control's AppDomain on that thread.
- //
- // So for Jolt we will track a special thread-static context, which *will* persist across calls from Jolt, and if the thread does not
- // have a [....] context set in its execution context we'll use the thread-static context instead.
- //
- // This will break any future work that requires SynchronizationContext.Current to be in [....] with the value
- // stored in a thread's ExecutionContext (wait notifications being one such example). If that becomes a problem, we will
- // need to rework this mechanism (which is one reason it's not being exposed publically).
- //
+#if FEATURE_CORECLR
[ThreadStatic]
private static SynchronizationContext s_threadStaticContext;
-#if FEATURE_LEGACYNETCF
- //
- // NetCF had a bug where SynchronizationContext.SetThreadStaticContext would set the SyncContext for every thread in the process.
- // This was because they stored the value in a regular static field (NetCF has no support for ThreadStatic fields). This was fixed in
- // Mango, but some apps built against pre-Mango WP7 do depend on the broken behavior. So for those apps we need an AppDomain-wide static
- // to hold whatever context was last set on any thread.
//
+ // NetCF had a
+
+
+
+
private static SynchronizationContext s_appDomainStaticContext;
-#endif
[System.Security.SecurityCritical]
-#if FEATURE_LEGACYNETCF || MOBILE_LEGACY
public static void SetThreadStaticContext(SynchronizationContext syncContext)
-#else
- internal static void SetThreadStaticContext(SynchronizationContext syncContext)
-#endif
{
-#if FEATURE_LEGACYNETCF
//
// If this is a pre-Mango Windows Phone app, we need to set the SC for *all* threads to match the old NetCF behavior.
//
if (CompatibilitySwitches.IsAppEarlierThanWindowsPhoneMango)
s_appDomainStaticContext = syncContext;
else
-#endif
s_threadStaticContext = syncContext;
}
+
+ public static SynchronizationContext Current
+ {
+ get
+ {
+ SynchronizationContext context = null;
+
+ if (CompatibilitySwitches.IsAppEarlierThanWindowsPhoneMango)
+ context = s_appDomainStaticContext;
+ else
+ context = s_threadStaticContext;
+
+#if FEATURE_APPX
+ if (context == null && Environment.IsWinRTSupported)
+ context = GetWinRTContext();
#endif
+ return context;
+ }
+ }
+
+ // Get the last SynchronizationContext that was set explicitly (not flowed via ExecutionContext.Capture/Run)
+ internal static SynchronizationContext CurrentNoFlow
+ {
+ [FriendAccessAllowed]
+ get
+ {
+ return Current; // SC never flows
+ }
+ }
+
+#else //FEATURE_CORECLR
+
+ // set SynchronizationContext on the current thread
+ [System.Security.SecurityCritical] // auto-generated_required
+ public static void SetSynchronizationContext(SynchronizationContext syncContext)
+ {
+ ExecutionContext ec = Thread.CurrentThread.GetMutableExecutionContext();
+ ec.SynchronizationContext = syncContext;
+ ec.SynchronizationContextNoFlow = syncContext;
+ }
+
// Get the current SynchronizationContext on the current thread
public static SynchronizationContext Current
{
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
return Thread.CurrentThread.GetExecutionContextReader().SynchronizationContext ?? GetThreadLocalContext();
@@ -259,22 +267,10 @@ namespace System.Threading
}
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
private static SynchronizationContext GetThreadLocalContext()
{
SynchronizationContext context = null;
-#if FEATURE_CORECLR
-#if FEATURE_LEGACYNETCF
- if (CompatibilitySwitches.IsAppEarlierThanWindowsPhoneMango)
- context = s_appDomainStaticContext;
- else
-#endif //FEATURE_LEGACYNETCF
- context = s_threadStaticContext;
-#endif //FEATURE_CORECLR
-
#if FEATURE_APPX
if (context == null && Environment.IsWinRTSupported)
context = GetWinRTContext();
@@ -288,6 +284,8 @@ namespace System.Threading
return context;
}
+#endif //FEATURE_CORECLR
+
#if FEATURE_APPX
[SecuritySafeCritical]
private static SynchronizationContext GetWinRTContext()
diff --git a/mcs/class/referencesource/mscorlib/system/threading/synchronizationlockexception.cs b/mcs/class/referencesource/mscorlib/system/threading/synchronizationlockexception.cs
index 884005d214b..91d4ac3639c 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/synchronizationlockexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/synchronizationlockexception.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*=============================================================================
**
** Class: SynchronizationLockException
diff --git a/mcs/class/referencesource/mscorlib/system/threading/thread.cs b/mcs/class/referencesource/mscorlib/system/threading/thread.cs
index 5d7dcbed662..70559108ed3 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/thread.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/thread.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*=============================================================================
**
** Class: Thread
@@ -21,8 +21,8 @@ namespace System.Threading {
using System.Runtime.InteropServices;
#if FEATURE_REMOTING
using System.Runtime.Remoting.Contexts;
-#endif
using System.Runtime.Remoting.Messaging;
+#endif
using System;
using System.Diagnostics;
using System.Security.Permissions;
@@ -139,7 +139,9 @@ namespace System.Threading {
#if FEATURE_REMOTING
private Context m_Context;
#endif
+#if !FEATURE_CORECLR
private ExecutionContext m_ExecutionContext; // this call context follows the logical thread
+#endif
private String m_Name;
private Delegate m_Delegate; // Delegate
@@ -190,11 +192,32 @@ namespace System.Threading {
// See code:#threadCultureInfo
#if !FEATURE_LEAK_CULTURE_INFO
[ThreadStatic]
- private static CultureInfo m_CurrentCulture;
+ internal static CultureInfo m_CurrentCulture;
[ThreadStatic]
- private static CultureInfo m_CurrentUICulture;
+ internal static CultureInfo m_CurrentUICulture;
#endif
+ static AsyncLocal<CultureInfo> s_asyncLocalCurrentCulture;
+ static AsyncLocal<CultureInfo> s_asyncLocalCurrentUICulture;
+
+ static void AsyncLocalSetCurrentCulture(AsyncLocalValueChangedArgs<CultureInfo> args)
+ {
+#if FEATURE_LEAK_CULTURE_INFO
+ Thread.CurrentThread.m_CurrentCulture = args.CurrentValue;
+#else
+ m_CurrentCulture = args.CurrentValue;
+#endif // FEATURE_LEAK_CULTURE_INFO
+ }
+
+ static void AsyncLocalSetCurrentUICulture(AsyncLocalValueChangedArgs<CultureInfo> args)
+ {
+#if FEATURE_LEAK_CULTURE_INFO
+ Thread.CurrentThread.m_CurrentUICulture = args.CurrentValue;
+#else
+ m_CurrentUICulture = args.CurrentValue;
+#endif // FEATURE_LEAK_CULTURE_INFO
+ }
+
#if FEATURE_CORECLR
// Adding an empty default ctor for annotation purposes
[System.Security.SecuritySafeCritical] // auto-generated
@@ -331,7 +354,7 @@ namespace System.Threading {
ExecutionContext.CaptureOptions.IgnoreSyncCtx);
t.SetExecutionContextHelper(ec);
}
-#if FEATURE_ROLE_BASED_SECURITY
+#if FEATURE_IMPERSONATION
IPrincipal principal = (IPrincipal)CallContext.Principal;
#else
IPrincipal principal = null;
@@ -340,6 +363,7 @@ namespace System.Threading {
}
+#if !FEATURE_CORECLR
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
internal ExecutionContext.Reader GetExecutionContextReader()
{
@@ -413,6 +437,8 @@ namespace System.Threading {
m_ExecutionContext = value.DangerousGetRawExecutionContext();
ExecutionContextBelongsToCurrentScope = belongsToCurrentScope;
}
+#endif //!FEATURE_CORECLR
+
#if !MONO
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
@@ -456,9 +482,6 @@ namespace System.Threading {
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
- #if !FEATURE_CORECLR
- [System.Runtime.ForceTokenStabilization]
- #endif //!FEATURE_CORECLR
internal extern static IntPtr InternalGetCurrentThread();
/*=========================================================================
@@ -749,10 +772,11 @@ namespace System.Threading {
}
#endif
[System.Security.SecurityCritical] // auto-generated
- [MethodImplAttribute(MethodImplOptions.InternalCall),
- HostProtection(Synchronization = true, ExternalThreading = true),
- ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success),
- ResourceExposure(ResourceScope.None)]
+ [ResourceExposure(ResourceScope.None)]
+ [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
+ [SuppressUnmanagedCodeSecurity]
+ [HostProtection(Synchronization = true, ExternalThreading = true),
+ ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
private static extern bool YieldInternal();
[System.Security.SecuritySafeCritical] // auto-generated
@@ -767,9 +791,6 @@ namespace System.Threading {
public static Thread CurrentThread {
[System.Security.SecuritySafeCritical] // auto-generated
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
Contract.Ensures(Contract.Result<Thread>() != null);
return GetCurrentThreadNative();
@@ -1143,18 +1164,30 @@ namespace System.Threading {
if (CompatibilitySwitches.IsAppEarlierThanWindowsPhone8)
{
//
- // NetCF had a bug where Thread.Current{UI}Culture would set the culture for every thread in the process.
- // This was because they stored the value in a regular static field (NetCF has no support for ThreadStatic fields).
- // Some apps depend on the broken behavior. We will emulate this behavior by redirecting setters to
- // DefaultThreadCurrentUICulture. (Note that this property did not existed in NetCF and so it is fine to piggy back
- // on it for the quirk.)
- //
+ // NetCF had a
+
+
+
+
+
CultureInfo.SetCurrentUICultureQuirk(value);
return;
}
#endif
+ if (!AppContextSwitches.NoAsyncCurrentCulture)
+ {
+ if (s_asyncLocalCurrentUICulture == null)
+ {
+ Interlocked.CompareExchange(ref s_asyncLocalCurrentUICulture, new AsyncLocal<CultureInfo>(AsyncLocalSetCurrentUICulture), null);
+ }
- m_CurrentUICulture = value;
+ // this one will set m_CurrentUICulture too
+ s_asyncLocalCurrentUICulture.Value = value;
+ }
+ else
+ {
+ m_CurrentUICulture = value;
+ }
}
}
@@ -1214,7 +1247,7 @@ namespace System.Threading {
return CultureInfo.GetCultureInfoForUserPreferredLanguageInAppX() ?? GetCurrentCultureNoAppX();
}
else
-#endif
+#endif
{
return GetCurrentCultureNoAppX();
}
@@ -1252,8 +1285,19 @@ namespace System.Threading {
return;
}
#endif
-
- m_CurrentCulture = value;
+ if (!AppContextSwitches.NoAsyncCurrentCulture)
+ {
+ if (s_asyncLocalCurrentCulture == null)
+ {
+ Interlocked.CompareExchange(ref s_asyncLocalCurrentCulture, new AsyncLocal<CultureInfo>(AsyncLocalSetCurrentCulture), null);
+ }
+ // this one will set m_CurrentCulture too
+ s_asyncLocalCurrentCulture.Value = value;
+ }
+ else
+ {
+ m_CurrentCulture = value;
+ }
}
}
@@ -1343,15 +1387,11 @@ namespace System.Threading {
[System.Security.SecuritySafeCritical] // auto-generated
[SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.ControlPrincipal)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
set
{
CallContext.Principal = value;
}
}
-#endif // FEATURE_IMPERSONATION
// Private routine called from unmanaged code to set an initial
// principal for a newly created thread.
@@ -1360,6 +1400,7 @@ namespace System.Threading {
{
GetMutableExecutionContext().LogicalCallContext.SecurityData.Principal = principal;
}
+#endif // FEATURE_IMPERSONATION
#if FEATURE_REMOTING
@@ -1385,7 +1426,7 @@ namespace System.Threading {
{
return ftnToCall(args);
}
-#endif // FEATURE_REMOTING
+#endif // FEATURE_REMOTING
/*======================================================================
** Returns the current domain in which current thread is running.
@@ -1737,7 +1778,8 @@ namespace System.Threading {
return s_LocalDataStoreMgr;
}
}
-#if !MOBILE
+
+#if !FEATURE_CORECLR && !MOBILE
void _Thread.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -1758,6 +1800,7 @@ namespace System.Threading {
throw new NotImplementedException();
}
#endif
+
#if !MONO
// Helper function to set the AbortReason for a thread abort.
// Checks that they're not alredy set, and then atomically updates
diff --git a/mcs/class/referencesource/mscorlib/system/threading/threadabortexception.cs b/mcs/class/referencesource/mscorlib/system/threading/threadabortexception.cs
index 60046c7dba2..a86b37ecd55 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/threadabortexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/threadabortexception.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*=============================================================================
**
** Class: ThreadAbortException
diff --git a/mcs/class/referencesource/mscorlib/system/threading/threadinterruptedexception.cs b/mcs/class/referencesource/mscorlib/system/threading/threadinterruptedexception.cs
index 28e1eed10d3..af9a03dc36b 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/threadinterruptedexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/threadinterruptedexception.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*=============================================================================
**
** Class: ThreadInterruptedException
diff --git a/mcs/class/referencesource/mscorlib/system/threading/threadpool.cs b/mcs/class/referencesource/mscorlib/system/threading/threadpool.cs
index 808b5eb74c5..81041e4191e 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/threadpool.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/threadpool.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*=============================================================================
**
** Class: ThreadPool
@@ -131,7 +131,7 @@ namespace System.Threading
}
else if (i == array.Length - 1)
{
- // Must resize. If we ----d and lost, we start over again.
+ // Must resize. If we raced and lost, we start over again.
if (array != m_array)
continue;
@@ -579,9 +579,7 @@ namespace System.Threading
// The head and tail of the queue. We enqueue to the head, and dequeue from the tail.
internal volatile QueueSegment queueHead;
internal volatile QueueSegment queueTail;
-#if !FEATURE_CORECLR
internal bool loggingEnabled;
-#endif
internal static SparseArray<WorkStealingQueue> allThreadQueues = new SparseArray<WorkStealingQueue>(16); //
@@ -590,7 +588,7 @@ namespace System.Threading
public ThreadPoolWorkQueue()
{
queueTail = queueHead = new QueueSegment();
-#if !MONO && !FEATURE_CORECLR
+#if !MONO
loggingEnabled = FrameworkEventSource.Log.IsEnabled(EventLevel.Verbose, FrameworkEventSource.Keywords.ThreadPool|FrameworkEventSource.Keywords.ThreadTransfer);
#endif
}
@@ -652,11 +650,10 @@ namespace System.Threading
if (!forceGlobal)
tl = ThreadPoolWorkQueueThreadLocals.threadLocals;
-#if !MONO && !FEATURE_CORECLR
+#if !MONO
if (loggingEnabled)
System.Diagnostics.Tracing.FrameworkEventSource.Log.ThreadPoolEnqueueWorkObject(callback);
-#endif
-
+#endif
if (null != tl)
{
tl.workStealingQueue.LocalPush(callback);
@@ -764,11 +761,10 @@ namespace System.Threading
//
workQueue.MarkThreadRequestSatisfied();
-#if !MONO && !FEATURE_CORECLR
+#if !MONO
// Has the desire for logging changed since the last time we entered?
workQueue.loggingEnabled = FrameworkEventSource.Log.IsEnabled(EventLevel.Verbose, FrameworkEventSource.Keywords.ThreadPool|FrameworkEventSource.Keywords.ThreadTransfer);
#endif
-
//
// Assume that we're going to need another thread if this one returns to the VM. We'll set this to
// false later, but only if we're absolutely certain that the queue is empty.
@@ -826,11 +822,10 @@ namespace System.Threading
}
else
{
-#if !MONO && !FEATURE_CORECLR
+#if !MONO
if (workQueue.loggingEnabled)
System.Diagnostics.Tracing.FrameworkEventSource.Log.ThreadPoolDequeueWorkObject(workItem);
#endif
-
//
// Execute the workitem outside of any finally blocks, so that it can be aborted if needed.
//
diff --git a/mcs/class/referencesource/mscorlib/system/threading/threadpriority.cs b/mcs/class/referencesource/mscorlib/system/threading/threadpriority.cs
index 85f57475b42..a8e8679bca2 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/threadpriority.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/threadpriority.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ericeil</OWNER>
/*=============================================================================
**
** Class: ThreadPriority
diff --git a/mcs/class/referencesource/mscorlib/system/threading/threadstart.cs b/mcs/class/referencesource/mscorlib/system/threading/threadstart.cs
index a46bf930efd..ccc92d0c8f9 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/threadstart.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/threadstart.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ericeil</OWNER>
/*=============================================================================
**
** Class: ThreadStart
diff --git a/mcs/class/referencesource/mscorlib/system/threading/threadstartexception.cs b/mcs/class/referencesource/mscorlib/system/threading/threadstartexception.cs
index a04134946c9..99163d89bd7 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/threadstartexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/threadstartexception.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace System.Threading
{
diff --git a/mcs/class/referencesource/mscorlib/system/threading/threadstate.cs b/mcs/class/referencesource/mscorlib/system/threading/threadstate.cs
index f101df8cf1f..b2116ebf43c 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/threadstate.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/threadstate.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>ericeil</OWNER>
/*=============================================================================
**
** Class: ThreadState
diff --git a/mcs/class/referencesource/mscorlib/system/threading/threadstateexception.cs b/mcs/class/referencesource/mscorlib/system/threading/threadstateexception.cs
index 3fa634c2396..fecd34441cc 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/threadstateexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/threadstateexception.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*=============================================================================
**
** Class: ThreadStateException
diff --git a/mcs/class/referencesource/mscorlib/system/threading/timeout.cs b/mcs/class/referencesource/mscorlib/system/threading/timeout.cs
index bf070e1d328..9b7d3562a09 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/timeout.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/timeout.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace System.Threading {
using System.Threading;
diff --git a/mcs/class/referencesource/mscorlib/system/threading/timer.cs b/mcs/class/referencesource/mscorlib/system/threading/timer.cs
index 6d882497fe4..f9f51d03c0f 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/timer.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/timer.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using Microsoft.Win32;
using Microsoft.Win32.SafeHandles;
@@ -72,7 +72,7 @@ namespace System.Threading
// We need to keep our notion of time synchronized with the calls to SleepEx that drive
// the underlying native timer. In Win8, SleepEx does not count the time the machine spends
// sleeping/hibernating. Environment.TickCount (GetTickCount) *does* count that time,
- // so we will get out of [....] with SleepEx if we use that method.
+ // so we will get out of sync with SleepEx if we use that method.
//
// So, on Win8, we use QueryUnbiasedInterruptTime instead; this does not count time spent
// in sleep/hibernate mode.
@@ -82,10 +82,7 @@ namespace System.Threading
[SecuritySafeCritical]
get
{
- // note: QueryUnbiasedInterruptTime is apparently not supported on CoreSystem currently.
- // Presumably this will be a problem. Will follow up with Windows team, but for now this is diabled
- // for CoreSystem builds.
-#if !FEATURE_PAL && !FEATURE_CORESYSTEM && !MONO
+#if !MONO
if (Environment.IsWindows8OrAbove)
{
ulong time100ns;
@@ -98,7 +95,7 @@ namespace System.Threading
return (int)(uint)(time100ns / 10000);
}
else
-#endif //!FEATURE_PAL && !FEATURE_CORESYSTEM
+#endif
{
return Environment.TickCount;
}
@@ -578,11 +575,10 @@ namespace System.Threading
}
else
{
-#if !FEATURE_CORECLR && !MONO
+#if !MONO
if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.ThreadTransfer))
FrameworkEventSource.Log.ThreadTransferSendObj(this, 1, string.Empty, true);
-#endif // !FEATURE_CORECLR
-
+#endif
success = TimerQueue.Instance.UpdateTimer(this, dueTime, period);
}
}
@@ -697,10 +693,10 @@ namespace System.Threading
[SecuritySafeCritical]
internal void CallCallback()
{
-#if !FEATURE_CORECLR && !MONO
+#if !MONO
if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.ThreadTransfer))
FrameworkEventSource.Log.ThreadTransferReceiveObj(this, 1, string.Empty);
-#endif // !FEATURE_CORECLR
+#endif
// call directly if EC flow is suppressed
if (m_executionContext == null)
diff --git a/mcs/class/referencesource/mscorlib/system/threading/volatile.cs b/mcs/class/referencesource/mscorlib/system/threading/volatile.cs
index 8f4bb6904aa..5682b2973fc 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/volatile.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/volatile.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
using System;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
@@ -30,9 +30,6 @@ namespace System.Threading
{
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool Read(ref bool location)
{
//
@@ -45,9 +42,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[CLSCompliant(false)]
public static sbyte Read(ref sbyte location)
{
@@ -61,9 +55,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static byte Read(ref byte location)
{
//
@@ -76,9 +67,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static short Read(ref short location)
{
//
@@ -91,9 +79,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[CLSCompliant(false)]
public static ushort Read(ref ushort location)
{
@@ -107,9 +92,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static int Read(ref int location)
{
//
@@ -122,9 +104,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[CLSCompliant(false)]
public static uint Read(ref uint location)
{
@@ -138,9 +117,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static long Read(ref long location)
{
//
@@ -154,9 +130,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[CLSCompliant(false)]
[SecuritySafeCritical] // contains unsafe code
public static ulong Read(ref ulong location)
@@ -176,9 +149,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static IntPtr Read(ref IntPtr location)
{
//
@@ -191,9 +161,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[CLSCompliant(false)]
public static UIntPtr Read(ref UIntPtr location)
{
@@ -207,9 +174,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static float Read(ref float location)
{
//
@@ -222,9 +186,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static double Read(ref double location)
{
//
@@ -239,9 +200,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[SecuritySafeCritical] //the intrinsic implementation of this method contains unverifiable code
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static T Read<T>(ref T location) where T : class
{
//
@@ -257,9 +215,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static void Write(ref bool location, bool value)
{
//
@@ -271,9 +226,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[CLSCompliant(false)]
public static void Write(ref sbyte location, sbyte value)
{
@@ -286,9 +238,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static void Write(ref byte location, byte value)
{
//
@@ -300,9 +249,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static void Write(ref short location, short value)
{
//
@@ -314,9 +260,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[CLSCompliant(false)]
public static void Write(ref ushort location, ushort value)
{
@@ -329,9 +272,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static void Write(ref int location, int value)
{
//
@@ -343,9 +283,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[CLSCompliant(false)]
public static void Write(ref uint location, uint value)
{
@@ -358,9 +295,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static void Write(ref long location, long value)
{
//
@@ -374,9 +308,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[CLSCompliant(false)]
[SecuritySafeCritical] // contains unsafe code
public static void Write(ref ulong location, ulong value)
@@ -402,9 +333,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static void Write(ref IntPtr location, IntPtr value)
{
//
@@ -416,9 +344,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
[CLSCompliant(false)]
public static void Write(ref UIntPtr location, UIntPtr value)
{
@@ -431,9 +356,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static void Write(ref float location, float value)
{
//
@@ -445,9 +367,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static void Write(ref double location, double value)
{
//
@@ -462,9 +381,6 @@ namespace System.Threading
[ResourceExposure(ResourceScope.None)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[SecuritySafeCritical] //the intrinsic implementation of this method contains unverifiable code
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static void Write<T>(ref T location, T value) where T : class
{
//
diff --git a/mcs/class/referencesource/mscorlib/system/threading/waithandle.cs b/mcs/class/referencesource/mscorlib/system/threading/waithandle.cs
index 7f4c0f83df8..972cd8120de 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/waithandle.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/waithandle.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
/*=============================================================================
**
** Class: WaitHandle (this name is NOT definitive)
@@ -107,7 +107,7 @@ namespace System.Threading
// ideally do these things:
// *) Expose a settable SafeHandle property on WaitHandle.
// *) Expose a settable OwnsHandle property on SafeHandle.
- // We're looking into this. -- [....]
+ // We're looking into this. -- Microsoft
if (safeWaitHandle != null)
{
safeWaitHandle.SetHandleAsInvalid();
@@ -597,20 +597,12 @@ namespace System.Threading
private static void ThrowAbandonedMutexException()
{
-#if !FEATURE_CORECLR
throw new AbandonedMutexException();
-#else
- throw new Exception(Environment.GetResourceString("Threading.AbandonedMutexException"));
-#endif
}
private static void ThrowAbandonedMutexException(int location, WaitHandle handle)
{
-#if !FEATURE_CORECLR
throw new AbandonedMutexException(location, handle);
-#else
- throw new Exception(Environment.GetResourceString("Threading.AbandonedMutexException"));
-#endif
}
public virtual void Close()
diff --git a/mcs/class/referencesource/mscorlib/system/threading/waithandleExtensions.cs b/mcs/class/referencesource/mscorlib/system/threading/waithandleExtensions.cs
new file mode 100644
index 00000000000..f078ee1d6b8
--- /dev/null
+++ b/mcs/class/referencesource/mscorlib/system/threading/waithandleExtensions.cs
@@ -0,0 +1,47 @@
+// ==++==
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// ==--==
+//
+
+using Microsoft.Win32.SafeHandles;
+using System.Security;
+
+namespace System.Threading
+{
+ public static class WaitHandleExtensions
+ {
+ /// <summary>
+ /// Gets the native operating system handle.
+ /// </summary>
+ /// <param name="waitHandle">The <see cref="System.Threading.WaitHandle"/> to operate on.</param>
+ /// <returns>A <see cref="System.Runtime.InteropServices.SafeHandle"/> representing the native operating system handle.</returns>
+ [SecurityCritical]
+ public static SafeWaitHandle GetSafeWaitHandle(this WaitHandle waitHandle)
+ {
+ if (waitHandle == null)
+ {
+ throw new ArgumentNullException("waitHandle");
+ }
+
+ return waitHandle.SafeWaitHandle;
+ }
+
+ /// <summary>
+ /// Sets the native operating system handle
+ /// </summary>
+ /// <param name="waitHandle">The <see cref="System.Threading.WaitHandle"/> to operate on.</param>
+ /// <param name="value">A <see cref="System.Runtime.InteropServices.SafeHandle"/> representing the native operating system handle.</param>
+ [SecurityCritical]
+ public static void SetSafeWaitHandle(this WaitHandle waitHandle, SafeWaitHandle value)
+ {
+ if (waitHandle == null)
+ {
+ throw new ArgumentNullException("waitHandle");
+ }
+
+ waitHandle.SafeWaitHandle = value;
+ }
+ }
+}
diff --git a/mcs/class/referencesource/mscorlib/system/threading/waithandlecannotbeopenedexception.cs b/mcs/class/referencesource/mscorlib/system/threading/waithandlecannotbeopenedexception.cs
index b7b80e060ea..06c941d6e62 100644
--- a/mcs/class/referencesource/mscorlib/system/threading/waithandlecannotbeopenedexception.cs
+++ b/mcs/class/referencesource/mscorlib/system/threading/waithandlecannotbeopenedexception.cs
@@ -4,7 +4,7 @@
//
// ==--==
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
namespace System.Threading
{
using System;
diff --git a/mcs/class/referencesource/mscorlib/system/throwhelper.cs b/mcs/class/referencesource/mscorlib/system/throwhelper.cs
index 4a6e28665b4..a47c670b31a 100644
--- a/mcs/class/referencesource/mscorlib/system/throwhelper.cs
+++ b/mcs/class/referencesource/mscorlib/system/throwhelper.cs
@@ -36,15 +36,15 @@ namespace System {
// It is very important we do this for generic classes because we can easily generate the same code
// multiple times for different instantiation.
//
- // <STRIP>
- // Jit will generates the code to throw exception at the end of a method, thus we can reduce working
- // set if the user code will never throw an exception. However Jit doesn't know anything about the
- // methods in ThrowHelper, so it will not moves the instructions to the end.
- // This is not a problem for ngened code because we will probably move the code based on profile data(hopefully.)
- //
- // For jitted code, it doesn't make much difference. The only advantage of moving the code to the end is to
- // improve cache locality. This doesn't make much different on newer processor like P4.
- // </STRIP>
+ // <
+
+
+
+
+
+
+
+
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
@@ -52,10 +52,8 @@ namespace System {
[Pure]
internal static class ThrowHelper {
- internal static void ThrowArgumentOutOfRangeException() {
- throw new ArgumentOutOfRangeException(
- GetArgumentName(ExceptionArgument.index),
- Environment.GetResourceString(GetResourceName(ExceptionResource.ArgumentOutOfRange_Index)));
+ internal static void ThrowArgumentOutOfRangeException() {
+ ThrowArgumentOutOfRangeException(ExceptionArgument.index, ExceptionResource.ArgumentOutOfRange_Index);
}
internal static void ThrowWrongKeyTypeArgumentException(object key, Type targetType) {
@@ -87,7 +85,14 @@ namespace System {
}
internal static void ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) {
- throw new ArgumentOutOfRangeException(GetArgumentName(argument), Environment.GetResourceString(GetResourceName(resource)));
+
+ if (CompatibilitySwitches.IsAppEarlierThanWindowsPhone8) {
+ // Dev11 474369 quirk: Mango had an empty message string:
+ throw new ArgumentOutOfRangeException(GetArgumentName(argument), String.Empty);
+ } else {
+ throw new ArgumentOutOfRangeException(GetArgumentName(argument),
+ Environment.GetResourceString(GetResourceName(resource)));
+ }
}
internal static void ThrowInvalidOperationException(ExceptionResource resource) {
@@ -220,6 +225,10 @@ namespace System {
argumentName = "view";
break;
+ case ExceptionArgument.sourceBytesToCopy:
+ argumentName = "sourceBytesToCopy";
+ break;
+
default:
Contract.Assert(false, "The enum value is not defined, please checked ExceptionArgumentName Enum.");
return string.Empty;
@@ -458,6 +467,7 @@ namespace System {
item,
options,
view,
+ sourceBytesToCopy,
}
//
diff --git a/mcs/class/referencesource/mscorlib/system/timespan.cs b/mcs/class/referencesource/mscorlib/system/timespan.cs
index 441c92f49dc..65bad44d66c 100644
--- a/mcs/class/referencesource/mscorlib/system/timespan.cs
+++ b/mcs/class/referencesource/mscorlib/system/timespan.cs
@@ -80,9 +80,6 @@ namespace System {
this._ticks = ticks;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public TimeSpan(int hours, int minutes, int seconds) {
_ticks = TimeToTicks(hours, minutes, seconds);
}
@@ -150,9 +147,6 @@ namespace System {
}
public double TotalSeconds {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return (double)_ticks * SecondsPerTick; }
}
@@ -271,9 +265,6 @@ namespace System {
return new TimeSpan(result);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static TimeSpan FromTicks(long value) {
return new TimeSpan(value);
}
@@ -352,9 +343,6 @@ namespace System {
return new TimeSpan(-t._ticks);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static TimeSpan operator -(TimeSpan t1, TimeSpan t2) {
return t1.Subtract(t2);
}
@@ -367,44 +355,26 @@ namespace System {
return t1.Add(t2);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool operator ==(TimeSpan t1, TimeSpan t2) {
return t1._ticks == t2._ticks;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool operator !=(TimeSpan t1, TimeSpan t2) {
return t1._ticks != t2._ticks;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool operator <(TimeSpan t1, TimeSpan t2) {
return t1._ticks < t2._ticks;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool operator <=(TimeSpan t1, TimeSpan t2) {
return t1._ticks <= t2._ticks;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool operator >(TimeSpan t1, TimeSpan t2) {
return t1._ticks > t2._ticks;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public static bool operator >=(TimeSpan t1, TimeSpan t2) {
return t1._ticks >= t2._ticks;
}
diff --git a/mcs/class/referencesource/mscorlib/system/timezoneinfo.cs b/mcs/class/referencesource/mscorlib/system/timezoneinfo.cs
index 349fbba349b..ffde5f269cd 100644
--- a/mcs/class/referencesource/mscorlib/system/timezoneinfo.cs
+++ b/mcs/class/referencesource/mscorlib/system/timezoneinfo.cs
@@ -16,10 +16,6 @@
**
============================================================*/
-#if FEATURE_CORECLR && !FEATURE_PAL && !FEATURE_CORESYSTEM
-#define WINXP_AND_WIN2K3_SUPPORT
-#endif
-
namespace System {
using Microsoft.Win32;
using Microsoft.Win32.SafeHandles;
@@ -98,24 +94,8 @@ namespace System {
private const string c_firstEntryValue = "FirstEntry";
private const string c_lastEntryValue = "LastEntry";
-#if WINXP_AND_WIN2K3_SUPPORT
- // registry constants for the 'TimeZoneInformation' hive
- //
- private const string c_timeZoneInfoRegistryHive = @"SYSTEM\CurrentControlSet\Control\TimeZoneInformation";
- private const string c_timeZoneInfoRegistryHivePermissionList = @"HKEY_LOCAL_MACHINE\" + c_timeZoneInfoRegistryHive;
- private const string c_disableDST = "DisableAutoDaylightTimeSet";
-#endif // WINXP_AND_WIN2K3_SUPPORT
-
#endif // FEATURE_WIN32_REGISTRY
-#if __APPLE__
- // use for generating multi-year DST periods
- private static readonly TransitionTime c_transition5_15 = TransitionTime.CreateFixedDateRule(new DateTime(1, 1, 1), 05, 15);
- private static readonly TransitionTime c_transition7_15 = TransitionTime.CreateFixedDateRule(new DateTime(1, 1, 1), 07, 15);
- private static readonly TransitionTime c_transition10_15 = TransitionTime.CreateFixedDateRule(new DateTime(1, 1, 1), 10, 15);
- private static readonly TransitionTime c_transition12_15 = TransitionTime.CreateFixedDateRule(new DateTime(1, 1, 1), 12, 15);
-#endif // __APPLE__
-
// constants for TimeZoneInfo.Local and TimeZoneInfo.Utc
private const string c_utcId = "UTC";
private const string c_localId = "Local";
@@ -277,21 +257,6 @@ namespace System {
return oneYearLocFromUtc;
}
-#if WINXP_AND_WIN2K3_SUPPORT
- private volatile OffsetAndRule m_oneYearLocalFromLocal;
-
- public OffsetAndRule GetOneYearLocalFromLocal(int year) {
- OffsetAndRule oneYearLocFromLoc = m_oneYearLocalFromLocal;
- if (oneYearLocFromLoc == null || oneYearLocFromLoc.year != year) {
- TimeZoneInfo currentYear = GetCurrentOneYearLocal();
- AdjustmentRule rule = currentYear.m_adjustmentRules == null ? null : currentYear.m_adjustmentRules[0];
- oneYearLocFromLoc = new OffsetAndRule(year, currentYear.BaseUtcOffset, rule);
- m_oneYearLocalFromLocal = oneYearLocFromLoc;
- }
- return oneYearLocFromLoc;
- }
-#endif
-
#endif // FEATURE_WIN32_REGISTRY
};
#pragma warning restore 0420
@@ -385,7 +350,7 @@ namespace System {
Boolean isAmbiguous = false;
AdjustmentRule rule = GetAdjustmentRuleForTime(adjustedTime);
- if (rule != null) {
+ if (rule != null && rule.HasDaylightSaving) {
DaylightTime daylightTime = GetDaylightTime(adjustedTime.Year, rule);
isAmbiguous = GetIsAmbiguousTime(adjustedTime, rule, daylightTime);
}
@@ -396,15 +361,17 @@ namespace System {
// the passed in dateTime is ambiguous in this TimeZoneInfo instance
TimeSpan[] timeSpans = new TimeSpan[2];
-
+
+ TimeSpan actualUtcOffset = m_baseUtcOffset + rule.BaseUtcOffsetDelta;
+
// the TimeSpan array must be sorted from least to greatest
if (rule.DaylightDelta > TimeSpan.Zero) {
- timeSpans[0] = m_baseUtcOffset; //
- timeSpans[1] = m_baseUtcOffset + rule.DaylightDelta;
+ timeSpans[0] = actualUtcOffset; // FUTURE: + rule.StandardDelta;
+ timeSpans[1] = actualUtcOffset + rule.DaylightDelta;
}
else {
- timeSpans[0] = m_baseUtcOffset + rule.DaylightDelta;
- timeSpans[1] = m_baseUtcOffset; //
+ timeSpans[0] = actualUtcOffset + rule.DaylightDelta;
+ timeSpans[1] = actualUtcOffset; // FUTURE: + rule.StandardDelta;
}
return timeSpans;
}
@@ -431,7 +398,7 @@ namespace System {
Boolean isAmbiguous = false;
AdjustmentRule rule = GetAdjustmentRuleForTime(adjustedTime);
- if (rule != null) {
+ if (rule != null && rule.HasDaylightSaving) {
DaylightTime daylightTime = GetDaylightTime(adjustedTime.Year, rule);
isAmbiguous = GetIsAmbiguousTime(adjustedTime, rule, daylightTime);
}
@@ -442,15 +409,16 @@ namespace System {
// the passed in dateTime is ambiguous in this TimeZoneInfo instance
TimeSpan[] timeSpans = new TimeSpan[2];
+ TimeSpan actualUtcOffset = m_baseUtcOffset + rule.BaseUtcOffsetDelta;
// the TimeSpan array must be sorted from least to greatest
if (rule.DaylightDelta > TimeSpan.Zero) {
- timeSpans[0] = m_baseUtcOffset; //
- timeSpans[1] = m_baseUtcOffset + rule.DaylightDelta;
+ timeSpans[0] = actualUtcOffset; // FUTURE: + rule.StandardDelta;
+ timeSpans[1] = actualUtcOffset + rule.DaylightDelta;
}
else {
- timeSpans[0] = m_baseUtcOffset + rule.DaylightDelta;
- timeSpans[1] = m_baseUtcOffset; //
+ timeSpans[0] = actualUtcOffset + rule.DaylightDelta;
+ timeSpans[1] = actualUtcOffset; // FUTURE: + rule.StandardDelta;
}
return timeSpans;
}
@@ -559,9 +527,8 @@ namespace System {
adjustedTime = dateTime;
}
-
AdjustmentRule rule = GetAdjustmentRuleForTime(adjustedTime);
- if (rule != null) {
+ if (rule != null && rule.HasDaylightSaving) {
DaylightTime daylightTime = GetDaylightTime(adjustedTime.Year, rule);
return GetIsAmbiguousTime(adjustedTime, rule, daylightTime);
}
@@ -639,7 +606,7 @@ namespace System {
// handle the normal cases...
//
AdjustmentRule rule = GetAdjustmentRuleForTime(adjustedTime);
- if (rule != null) {
+ if (rule != null && rule.HasDaylightSaving) {
DaylightTime daylightTime = GetDaylightTime(adjustedTime.Year, rule);
return GetIsDaylightSavings(adjustedTime, rule, daylightTime, flags);
}
@@ -663,8 +630,7 @@ namespace System {
// only check Unspecified and (Local when this TimeZoneInfo instance is Local)
AdjustmentRule rule = GetAdjustmentRuleForTime(dateTime);
-
- if (rule != null) {
+ if (rule != null && rule.HasDaylightSaving) {
DaylightTime daylightTime = GetDaylightTime(dateTime.Year, rule);
isInvalid = GetIsInvalidTime(dateTime, rule, daylightTime);
}
@@ -768,6 +734,10 @@ namespace System {
}
Contract.EndContractBlock();
+ // Special case to give a way clearing the cache without exposing ClearCachedData()
+ if (dateTime.Ticks == 0) {
+ ClearCachedData();
+ }
CachedData cachedData = s_cachedData;
if (dateTime.Kind == DateTimeKind.Utc) {
return ConvertTime(dateTime, cachedData.Utc, destinationTimeZone, TimeZoneInfoOptions.None, cachedData);
@@ -813,18 +783,21 @@ namespace System {
TimeSpan sourceOffset = sourceTimeZone.BaseUtcOffset;
if (sourceRule != null) {
- Boolean sourceIsDaylightSavings = false;
- DaylightTime sourceDaylightTime = GetDaylightTime(dateTime.Year, sourceRule);
+ sourceOffset = sourceOffset + sourceRule.BaseUtcOffsetDelta;
+ if (sourceRule.HasDaylightSaving) {
+ Boolean sourceIsDaylightSavings = false;
+ DaylightTime sourceDaylightTime = GetDaylightTime(dateTime.Year, sourceRule);
+
+ // 'dateTime' might be in an invalid time range since it is in an AdjustmentRule
+ // period that supports DST
+ if (((flags & TimeZoneInfoOptions.NoThrowOnInvalidTime) == 0) && GetIsInvalidTime(dateTime, sourceRule, sourceDaylightTime)) {
+ throw new ArgumentException(Environment.GetResourceString("Argument_DateTimeIsInvalid"), "dateTime");
+ }
+ sourceIsDaylightSavings = GetIsDaylightSavings(dateTime, sourceRule, sourceDaylightTime, flags);
- // 'dateTime' might be in an invalid time range since it is in an AdjustmentRule
- // period that supports DST
- if (((flags & TimeZoneInfoOptions.NoThrowOnInvalidTime) == 0) && GetIsInvalidTime(dateTime, sourceRule, sourceDaylightTime)) {
- throw new ArgumentException(Environment.GetResourceString("Argument_DateTimeIsInvalid"), "dateTime");
+ // adjust the sourceOffset according to the Adjustment Rule / Daylight Saving Rule
+ sourceOffset += (sourceIsDaylightSavings ? sourceRule.DaylightDelta : TimeSpan.Zero /*FUTURE: sourceRule.StandardDelta*/);
}
- sourceIsDaylightSavings = GetIsDaylightSavings(dateTime, sourceRule, sourceDaylightTime, flags);
-
- // adjust the sourceOffset according to the Adjustment Rule / Daylight Saving Rule
- sourceOffset += (sourceIsDaylightSavings ? sourceRule.DaylightDelta : TimeSpan.Zero /**/);
}
DateTimeKind targetKind = cachedData.GetCorrespondingKind(destinationTimeZone);
@@ -1127,7 +1100,7 @@ namespace System {
if (!dstDisabled) {
// only create the adjustment rule if DST is enabled
Win32Native.RegistryTimeZoneInformation regZone = new Win32Native.RegistryTimeZoneInformation(zone);
- AdjustmentRule rule = CreateAdjustmentRuleFromTimeZoneInformation(regZone, DateTime.MinValue.Date, DateTime.MaxValue.Date);
+ AdjustmentRule rule = CreateAdjustmentRuleFromTimeZoneInformation(regZone, DateTime.MinValue.Date, DateTime.MaxValue.Date, zone.Bias);
if (rule != null) {
m_adjustmentRules = new AdjustmentRule[1];
m_adjustmentRules[0] = rule;
@@ -1139,67 +1112,6 @@ namespace System {
m_standardDisplayName = zone.StandardName;
m_daylightDisplayName = zone.DaylightName;
}
-
-#if __APPLE__
- private TimeZoneInfo(Byte[] data, Boolean dstDisabled) {
- TZifHead t;
- DateTime[] dts;
- Byte[] typeOfLocalTime;
- TZifType[] transitionType;
- String zoneAbbreviations;
- Boolean[] StandardTime;
- Boolean[] GmtTime;
-
- // parse the raw TZif bytes; this method can throw ArgumentException when the data is malformed.
- TZif_ParseRaw(data, out t, out dts, out typeOfLocalTime, out transitionType, out zoneAbbreviations, out StandardTime, out GmtTime);
-
- m_id = c_localId;
- m_displayName = c_localId;
- m_baseUtcOffset = TimeSpan.Zero;
-
- // find the best matching baseUtcOffset and display strings based on the current utcNow value
- DateTime utcNow = DateTime.UtcNow;
- for (int i = 0; i < dts.Length && dts[i] <= utcNow; i++) {
- int type = typeOfLocalTime[i];
- if (!transitionType[type].IsDst) {
- m_baseUtcOffset = transitionType[type].UtcOffset;
- m_standardDisplayName = TZif_GetZoneAbbreviation(zoneAbbreviations, transitionType[type].AbbreviationIndex);
- }
- else {
- m_daylightDisplayName = TZif_GetZoneAbbreviation(zoneAbbreviations, transitionType[type].AbbreviationIndex);
- }
- }
-
- if (dts.Length == 0) {
- // time zones like Africa/Bujumbura and Etc/GMT* have no transition times but still contain
- // TZifType entries that may contain a baseUtcOffset and display strings
- for (int i = 0; i < transitionType.Length; i++) {
- if (!transitionType[i].IsDst) {
- m_baseUtcOffset = transitionType[i].UtcOffset;
- m_standardDisplayName = TZif_GetZoneAbbreviation(zoneAbbreviations, transitionType[i].AbbreviationIndex);
- }
- else {
- m_daylightDisplayName = TZif_GetZoneAbbreviation(zoneAbbreviations, transitionType[i].AbbreviationIndex);
- }
- }
- }
- m_id = m_standardDisplayName;
- m_displayName = m_standardDisplayName;
-
- // TZif supports seconds-level granularity with offsets but TimeZoneInfo only supports minutes since it aligns
- // with DateTimeOffset, SQL Server, and the W3C XML Specification
- if (m_baseUtcOffset.Ticks % TimeSpan.TicksPerMinute != 0) {
- m_baseUtcOffset = new TimeSpan(m_baseUtcOffset.Hours, m_baseUtcOffset.Minutes, 0);
- }
-
- if (!dstDisabled) {
- // only create the adjustment rule if DST is enabled
- TZif_GenerateAdjustmentRules(out m_adjustmentRules, dts, typeOfLocalTime, transitionType, StandardTime, GmtTime);
- }
-
- ValidateTimeZoneInfo(m_id, m_baseUtcOffset, m_adjustmentRules, out m_supportsDaylightSavingTime);
- }
-#endif // __APPLE__
private TimeZoneInfo(
String id,
@@ -1368,15 +1280,6 @@ namespace System {
return null;
}
-#if WINXP_AND_WIN2K3_SUPPORT
- // On pre-Vista versions of Windows if you run "cmd /c date" or "cmd /c time" to update the system time
- // the operating system doesn't pick up the correct time zone adjustment rule (it stays on the currently loaded rule).
- // We need to use the OS API data in this scenario instead of the loaded adjustment rules from the registry for
- // consistency. Otherwise DateTime.Now might not match the time displayed in the system tray.
- if (!Environment.IsWindowsVistaOrAbove && s_cachedData.GetCorrespondingKind(this) == DateTimeKind.Local) {
- return s_cachedData.GetOneYearLocalFromLocal(dateTime.Year).rule;
- }
-#endif
// Only check the whole-date portion of the dateTime -
// This is because the AdjustmentRule DateStart & DateEnd are stored as
// Date-only values {4/2/2006 - 10/28/2006} but actually represent the
@@ -1396,64 +1299,6 @@ namespace System {
// ----- SECTION: internal static utility methods ----------------*
-#if WINXP_AND_WIN2K3_SUPPORT
- //
- // CheckDaylightSavingTimeDisabledDownlevel -
- //
- // Helper function to check if the O/S has Daylight Saving Time Disabled. This check returns
- // true when the 'DisableAutoDaylightTimeSet' or 'DynamicDaylightTimeDisabled' REG_DWORD keys are set to 1
- //
- // This check is only meant to be used for "Local".
- //
- [System.Security.SecuritySafeCritical] // auto-generated
- [ResourceExposure(ResourceScope.None)]
- static private Boolean CheckDaylightSavingTimeDisabledDownlevel()
- {
- // Vista and newer:
- if (Environment.IsWindowsVistaOrAbove) {
- return false;
- }
-
- // Legacy downlevel:
- try {
- PermissionSet permSet = new PermissionSet(PermissionState.None);
- permSet.AddPermission(new RegistryPermission(RegistryPermissionAccess.Read, c_timeZoneInfoRegistryHivePermissionList));
- permSet.Assert();
-
- using (RegistryKey key = Registry.LocalMachine.OpenSubKey(
- c_timeZoneInfoRegistryHive,
-#if FEATURE_MACL
- RegistryKeyPermissionCheck.Default,
- System.Security.AccessControl.RegistryRights.ReadKey
-#else
- false
-#endif
- )) {
-
- if (key == null) {
- return false;
- }
-
- Int32 disabled = 0;
-
- try {
- disabled = (Int32)key.GetValue(c_disableDST, 0, RegistryValueOptions.None);
- }
- catch (InvalidCastException) {
- }
-
- if (disabled == 1) {
- return true;
- }
- }
- }
- finally {
- PermissionSet.RevertAssert();
- }
- return false;
- }
-#endif // WINXP_AND_WIN2K3_SUPPORT
-
//
// CheckDaylightSavingTimeNotSupported -
//
@@ -1521,12 +1366,24 @@ namespace System {
// Converts a Win32Native.RegistryTimeZoneInformation (REG_TZI_FORMAT struct) to an AdjustmentRule
//
[System.Security.SecurityCritical] // auto-generated
- static private AdjustmentRule CreateAdjustmentRuleFromTimeZoneInformation(Win32Native.RegistryTimeZoneInformation timeZoneInformation, DateTime startDate, DateTime endDate) {
+ static private AdjustmentRule CreateAdjustmentRuleFromTimeZoneInformation(Win32Native.RegistryTimeZoneInformation timeZoneInformation, DateTime startDate, DateTime endDate, int defaultBaseUtcOffset) {
AdjustmentRule rule;
bool supportsDst = (timeZoneInformation.StandardDate.Month != 0);
if (!supportsDst) {
- return null;
+ if (timeZoneInformation.Bias == defaultBaseUtcOffset)
+ {
+ // this rule will not contain any information to be used to adjust dates. just ignore it
+ return null;
+ }
+
+ return rule = AdjustmentRule.CreateAdjustmentRule(
+ startDate,
+ endDate,
+ TimeSpan.Zero, // no daylight saving transition
+ TransitionTime.CreateFixedDateRule(DateTime.MinValue, 1, 1),
+ TransitionTime.CreateFixedDateRule(DateTime.MinValue.AddMilliseconds(1), 1, 1),
+ new TimeSpan(0, defaultBaseUtcOffset - timeZoneInformation.Bias, 0)); // Bias delta is all what we need from this rule
}
//
@@ -1552,7 +1409,8 @@ namespace System {
endDate,
new TimeSpan(0, -timeZoneInformation.DaylightBias, 0),
(TransitionTime)daylightTransitionStart,
- (TransitionTime)daylightTransitionEnd);
+ (TransitionTime)daylightTransitionEnd,
+ new TimeSpan(0, defaultBaseUtcOffset - timeZoneInformation.Bias, 0));
return rule;
}
@@ -1615,8 +1473,6 @@ namespace System {
return new DaylightTime(startTime, endTime, delta);
}
-
-
//
// GetIsDaylightSavings -
//
@@ -1630,12 +1486,12 @@ namespace System {
DateTime startTime;
DateTime endTime;
-
+
if (time.Kind == DateTimeKind.Local) {
// startTime and endTime represent the period from either the start of DST to the end and ***includes*** the
// potentially overlapped times
- startTime = daylightTime.Start + daylightTime.Delta;
- endTime = daylightTime.End;
+ startTime = rule.IsStartDateMarkerForBeginningOfYear() ? new DateTime(daylightTime.Start.Year, 1, 1, 0, 0, 0) : daylightTime.Start + daylightTime.Delta;
+ endTime = rule.IsEndDateMarkerForEndOfYear() ? new DateTime(daylightTime.End.Year + 1, 1, 1, 0, 0, 0).AddTicks(-1) : daylightTime.End;
}
else {
// startTime and endTime represent the period from either the start of DST to the end and
@@ -1656,11 +1512,11 @@ namespace System {
// [======== DST ========>)
//
Boolean invalidAtStart = rule.DaylightDelta > TimeSpan.Zero;
- startTime = daylightTime.Start + (invalidAtStart ? rule.DaylightDelta : TimeSpan.Zero); /* */
- endTime = daylightTime.End + (invalidAtStart ? -rule.DaylightDelta : TimeSpan.Zero);
+ startTime = rule.IsStartDateMarkerForBeginningOfYear() ? new DateTime(daylightTime.Start.Year, 1, 1, 0, 0, 0) : daylightTime.Start + (invalidAtStart ? rule.DaylightDelta : TimeSpan.Zero); /* FUTURE: - rule.StandardDelta; */
+ endTime = rule.IsEndDateMarkerForEndOfYear() ? new DateTime(daylightTime.End.Year + 1, 1, 1, 0, 0, 0).AddTicks(-1) : daylightTime.End + (invalidAtStart ? -rule.DaylightDelta : TimeSpan.Zero);
}
- Boolean isDst = CheckIsDst(startTime, time, endTime);
+ Boolean isDst = CheckIsDst(startTime, time, endTime, false);
// If this date was previously converted from a UTC date and we were able to detect that the local
// DateTime would be ambiguous, this data is stored in the DateTime to resolve this ambiguity.
@@ -1683,7 +1539,7 @@ namespace System {
// Helper function that checks if a given dateTime is in Daylight Saving Time (DST)
// This function assumes the dateTime is in UTC and AdjustmentRule is in a different time zone
//
- static private Boolean GetIsDaylightSavingsFromUtc(DateTime time, Int32 Year, TimeSpan utc, AdjustmentRule rule, out Boolean isAmbiguousLocalDst) {
+ static private Boolean GetIsDaylightSavingsFromUtc(DateTime time, Int32 Year, TimeSpan utc, AdjustmentRule rule, out Boolean isAmbiguousLocalDst, TimeZoneInfo zone) {
isAmbiguousLocalDst = false;
if (rule == null) {
@@ -1691,14 +1547,53 @@ namespace System {
}
// Get the daylight changes for the year of the specified time.
- TimeSpan offset = utc; /* */
+ TimeSpan offset = utc + rule.BaseUtcOffsetDelta; /* FUTURE: + rule.StandardDelta; */
DaylightTime daylightTime = GetDaylightTime(Year, rule);
// The start and end times represent the range of universal times that are in DST for that year.
// Within that there is an ambiguous hour, usually right at the end, but at the beginning in
// the unusual case of a negative daylight savings delta.
- DateTime startTime = daylightTime.Start - offset;
- DateTime endTime = daylightTime.End - offset - rule.DaylightDelta; /* */
+ // We need to handle the case if the current rule has daylight saving end by the end of year. If so, we need to check if next year starts with daylight saving on
+ // and get the actual daylight saving end time. Here is example for such case:
+ // Converting the UTC datetime "12/31/2011 8:00:00 PM" to "(UTC+03:00) Moscow, St. Petersburg, Volgograd (RTZ 2)" zone.
+ // In 2011 the daylight saving will go through the end of the year. If we use the end of 2011 as the daylight saving end,
+ // that will fail the conversion because the UTC time +4 hours (3 hours for the zone UTC offset and 1 hour for daylight saving) will move us to the next year "1/1/2012 12:00 AM",
+ // checking against the end of 2011 will tell we are not in daylight saving which is wrong and the conversion will be off by one hour.
+ // Note we handle the similar case when rule year start with daylight saving and previous year end with daylight saving.
+
+ bool ignoreYearAdjustment = false;
+ DateTime startTime;
+ if (rule.IsStartDateMarkerForBeginningOfYear() && daylightTime.Start.Year > DateTime.MinValue.Year) {
+ AdjustmentRule previousYearRule = zone.GetAdjustmentRuleForTime(new DateTime(daylightTime.Start.Year - 1, 12, 31));
+ if (previousYearRule != null && previousYearRule.IsEndDateMarkerForEndOfYear()) {
+ DaylightTime previousDaylightTime = GetDaylightTime(daylightTime.Start.Year - 1, previousYearRule);
+ startTime = previousDaylightTime.Start - utc - previousYearRule.BaseUtcOffsetDelta;
+ ignoreYearAdjustment = true;
+ } else {
+ startTime = new DateTime(daylightTime.Start.Year, 1, 1, 0, 0, 0) - offset;
+ }
+ } else {
+ startTime = daylightTime.Start - offset;
+ }
+
+ DateTime endTime;
+ if (rule.IsEndDateMarkerForEndOfYear() && daylightTime.End.Year < DateTime.MaxValue.Year) {
+ AdjustmentRule nextYearRule = zone.GetAdjustmentRuleForTime(new DateTime(daylightTime.End.Year + 1, 1, 1));
+ if (nextYearRule != null && nextYearRule.IsStartDateMarkerForBeginningOfYear()) {
+ if (nextYearRule.IsEndDateMarkerForEndOfYear()) {// next year end with daylight saving on too
+ endTime = new DateTime(daylightTime.End.Year + 1, 12, 31) - utc - nextYearRule.BaseUtcOffsetDelta - nextYearRule.DaylightDelta;
+ } else {
+ DaylightTime nextdaylightTime = GetDaylightTime(daylightTime.End.Year + 1, nextYearRule);
+ endTime = nextdaylightTime.End - utc - nextYearRule.BaseUtcOffsetDelta - nextYearRule.DaylightDelta;
+ }
+ ignoreYearAdjustment = true;
+ } else {
+ endTime = new DateTime(daylightTime.End.Year + 1, 1, 1, 0, 0, 0).AddTicks(-1) - offset - rule.DaylightDelta; ;
+ }
+ } else {
+ endTime = daylightTime.End - offset - rule.DaylightDelta;
+ }
+
DateTime ambiguousStart;
DateTime ambiguousEnd;
if (daylightTime.Delta.Ticks > 0) {
@@ -1709,7 +1604,7 @@ namespace System {
ambiguousEnd = startTime - daylightTime.Delta;
}
- Boolean isDst = CheckIsDst(startTime, time, endTime);
+ Boolean isDst = CheckIsDst(startTime, time, endTime, ignoreYearAdjustment);
// See if the resulting local time becomes ambiguous. This must be captured here or the
// DateTime will not be able to round-trip back to UTC accurately.
@@ -1745,20 +1640,22 @@ namespace System {
}
- static private Boolean CheckIsDst(DateTime startTime, DateTime time, DateTime endTime) {
+ static private Boolean CheckIsDst(DateTime startTime, DateTime time, DateTime endTime,bool ignoreYearAdjustment) {
Boolean isDst;
- int startTimeYear = startTime.Year;
- int endTimeYear = endTime.Year;
+ if (!ignoreYearAdjustment) {
+ int startTimeYear = startTime.Year;
+ int endTimeYear = endTime.Year;
- if (startTimeYear != endTimeYear) {
- endTime = endTime.AddYears(startTimeYear - endTimeYear);
- }
+ if (startTimeYear != endTimeYear) {
+ endTime = endTime.AddYears(startTimeYear - endTimeYear);
+ }
- int timeYear = time.Year;
+ int timeYear = time.Year;
- if (startTimeYear != timeYear) {
- time = time.AddYears(startTimeYear - timeYear);
+ if (startTimeYear != timeYear) {
+ time = time.AddYears(startTimeYear - timeYear);
+ }
}
if (startTime > endTime) {
@@ -1796,12 +1693,18 @@ namespace System {
// if at DST start we transition forward in time then there is an ambiguous time range at the DST end
if (rule.DaylightDelta > TimeSpan.Zero) {
+ if (rule.IsEndDateMarkerForEndOfYear()) { // year end with daylight on so there is no ambiguous time
+ return false;
+ }
startAmbiguousTime = daylightTime.End;
- endAmbiguousTime = daylightTime.End - rule.DaylightDelta; /* */
+ endAmbiguousTime = daylightTime.End - rule.DaylightDelta; /* FUTURE: + rule.StandardDelta; */
}
else {
+ if (rule.IsStartDateMarkerForBeginningOfYear()) { // year start with daylight on so there is no ambiguous time
+ return false;
+ }
startAmbiguousTime = daylightTime.Start;
- endAmbiguousTime = daylightTime.Start + rule.DaylightDelta; /* */
+ endAmbiguousTime = daylightTime.Start + rule.DaylightDelta; /* FUTURE: - rule.StandardDelta; */
}
isAmbiguous = (time >= endAmbiguousTime && time < startAmbiguousTime);
@@ -1854,12 +1757,20 @@ namespace System {
// if at DST start we transition forward in time then there is an ambiguous time range at the DST end
if (rule.DaylightDelta < TimeSpan.Zero) {
+ // if the year ends with daylight saving on then there cannot be any time-hole's in that year.
+ if (rule.IsEndDateMarkerForEndOfYear())
+ return false;
+
startInvalidTime = daylightTime.End;
- endInvalidTime = daylightTime.End - rule.DaylightDelta; /* */
+ endInvalidTime = daylightTime.End - rule.DaylightDelta; /* FUTURE: + rule.StandardDelta; */
}
else {
+ // if the year starts with daylight saving on then there cannot be any time-hole's in that year.
+ if (rule.IsStartDateMarkerForBeginningOfYear())
+ return false;
+
startInvalidTime = daylightTime.Start;
- endInvalidTime = daylightTime.Start + rule.DaylightDelta; /* */
+ endInvalidTime = daylightTime.Start + rule.DaylightDelta; /* FUTURE: - rule.StandardDelta; */
}
isInvalid = (time >= startInvalidTime && time < endInvalidTime);
@@ -1910,87 +1821,50 @@ namespace System {
#if FEATURE_WIN32_REGISTRY
String id = null;
-#if WINXP_AND_WIN2K3_SUPPORT
- if (!Environment.IsWindowsVistaOrAbove) {
- //
- // Fall back to calling "kernel32!GetTimeZoneInformation"
- //
- Win32Native.TimeZoneInformation timeZoneInformation = new Win32Native.TimeZoneInformation();
-
- // call kernel32!GetTimeZoneInformation...
- long result = UnsafeNativeMethods.GetTimeZoneInformation(out timeZoneInformation);
- if (result == Win32Native.TIME_ZONE_ID_INVALID) {
- // return a dummy entry
- return CreateCustomTimeZone(c_localId, TimeSpan.Zero, c_localId, c_localId);
- }
-
- // this legacy win32 api does not return the key name -
- // we must search for the entry ourselves
- Boolean dstDisabled;
- id = FindIdFromTimeZoneInformation(timeZoneInformation, out dstDisabled);
- if (id != null) {
- TimeZoneInfo zone;
- Exception ex;
- if (TryGetTimeZone(id, dstDisabled, out zone, out ex, cachedData) == TimeZoneInfoResult.Success) {
- // successfully loaded the time zone from the registry
- return zone;
- }
- }
+ //
+ // Try using the "kernel32!GetDynamicTimeZoneInformation" API to get the "id"
+ //
+ Win32Native.DynamicTimeZoneInformation dynamicTimeZoneInformation =
+ new Win32Native.DynamicTimeZoneInformation();
- //
- // We could not find the data in the registry. Fall back to using
- // the data from the Win32 API
- //
- return GetLocalTimeZoneFromWin32Data(timeZoneInformation, dstDisabled);
+ // call kernel32!GetDynamicTimeZoneInformation...
+ long result = UnsafeNativeMethods.GetDynamicTimeZoneInformation(out dynamicTimeZoneInformation);
+ if (result == Win32Native.TIME_ZONE_ID_INVALID) {
+ // return a dummy entry
+ return CreateCustomTimeZone(c_localId, TimeSpan.Zero, c_localId, c_localId);
}
- else
-#endif // WINXP_AND_WIN2K3_SUPPORT
- {
- //
- // Try using the "kernel32!GetDynamicTimeZoneInformation" API to get the "id"
- //
- Win32Native.DynamicTimeZoneInformation dynamicTimeZoneInformation =
- new Win32Native.DynamicTimeZoneInformation();
- // call kernel32!GetDynamicTimeZoneInformation...
- long result = UnsafeNativeMethods.GetDynamicTimeZoneInformation(out dynamicTimeZoneInformation);
- if (result == Win32Native.TIME_ZONE_ID_INVALID) {
- // return a dummy entry
- return CreateCustomTimeZone(c_localId, TimeSpan.Zero, c_localId, c_localId);
- }
+ Win32Native.TimeZoneInformation timeZoneInformation =
+ new Win32Native.TimeZoneInformation(dynamicTimeZoneInformation);
- Win32Native.TimeZoneInformation timeZoneInformation =
- new Win32Native.TimeZoneInformation(dynamicTimeZoneInformation);
+ Boolean dstDisabled = dynamicTimeZoneInformation.DynamicDaylightTimeDisabled;
- Boolean dstDisabled = dynamicTimeZoneInformation.DynamicDaylightTimeDisabled;
-
- // check to see if we can use the key name returned from the API call
- if (!String.IsNullOrEmpty(dynamicTimeZoneInformation.TimeZoneKeyName)) {
- TimeZoneInfo zone;
- Exception ex;
+ // check to see if we can use the key name returned from the API call
+ if (!String.IsNullOrEmpty(dynamicTimeZoneInformation.TimeZoneKeyName)) {
+ TimeZoneInfo zone;
+ Exception ex;
- if (TryGetTimeZone(dynamicTimeZoneInformation.TimeZoneKeyName, dstDisabled, out zone, out ex, cachedData) == TimeZoneInfoResult.Success) {
- // successfully loaded the time zone from the registry
- return zone;
- }
+ if (TryGetTimeZone(dynamicTimeZoneInformation.TimeZoneKeyName, dstDisabled, out zone, out ex, cachedData) == TimeZoneInfoResult.Success) {
+ // successfully loaded the time zone from the registry
+ return zone;
}
+ }
- // the key name was not returned or it pointed to a bogus entry - search for the entry ourselves
- id = FindIdFromTimeZoneInformation(timeZoneInformation, out dstDisabled);
+ // the key name was not returned or it pointed to a bogus entry - search for the entry ourselves
+ id = FindIdFromTimeZoneInformation(timeZoneInformation, out dstDisabled);
- if (id != null) {
- TimeZoneInfo zone;
- Exception ex;
- if (TryGetTimeZone(id, dstDisabled, out zone, out ex, cachedData) == TimeZoneInfoResult.Success) {
- // successfully loaded the time zone from the registry
- return zone;
- }
+ if (id != null) {
+ TimeZoneInfo zone;
+ Exception ex;
+ if (TryGetTimeZone(id, dstDisabled, out zone, out ex, cachedData) == TimeZoneInfoResult.Success) {
+ // successfully loaded the time zone from the registry
+ return zone;
}
-
- // We could not find the data in the registry. Fall back to using
- // the data from the Win32 API
- return GetLocalTimeZoneFromWin32Data(timeZoneInformation, dstDisabled);
}
+
+ // We could not find the data in the registry. Fall back to using
+ // the data from the Win32 API
+ return GetLocalTimeZoneFromWin32Data(timeZoneInformation, dstDisabled);
#else // FEATURE_WIN32_REGISTRY
// Without Registry support, just create a dummy TZ for now
@@ -2125,9 +1999,12 @@ namespace System {
AdjustmentRule rule = zone.GetAdjustmentRuleForTime(time);
if (rule != null) {
- DaylightTime daylightTime = GetDaylightTime(time.Year, rule);
- Boolean isDaylightSavings = GetIsDaylightSavings(time, rule, daylightTime, flags);
- baseOffset += (isDaylightSavings ? rule.DaylightDelta : TimeSpan.Zero /* */);
+ baseOffset = baseOffset + rule.BaseUtcOffsetDelta;
+ if (rule.HasDaylightSaving) {
+ DaylightTime daylightTime = GetDaylightTime(time.Year, rule);
+ Boolean isDaylightSavings = GetIsDaylightSavings(time, rule, daylightTime, flags);
+ baseOffset += (isDaylightSavings ? rule.DaylightDelta : TimeSpan.Zero /* FUTURE: rule.StandardDelta */);
+ }
}
return baseOffset;
@@ -2163,8 +2040,11 @@ namespace System {
baseOffset = match.offset;
if (match.rule != null) {
- isDaylightSavings = GetIsDaylightSavingsFromUtc(time, timeYear, match.offset, match.rule, out isAmbiguousLocalDst);
- baseOffset += (isDaylightSavings ? match.rule.DaylightDelta : TimeSpan.Zero /* */);
+ baseOffset = baseOffset + match.rule.BaseUtcOffsetDelta;
+ if (match.rule.HasDaylightSaving) {
+ isDaylightSavings = GetIsDaylightSavingsFromUtc(time, timeYear, match.offset, match.rule, out isAmbiguousLocalDst, TimeZoneInfo.Local);
+ baseOffset += (isDaylightSavings ? match.rule.DaylightDelta : TimeSpan.Zero /* FUTURE: rule.StandardDelta */);
+ }
}
return baseOffset;
#else
@@ -2190,13 +2070,22 @@ namespace System {
}
else {
DateTime targetTime = time + baseOffset;
- year = time.Year;
+
+ // As we get the associated rule using the adjusted targetTime, we should use the adjusted year (targetTime.Year) too as after adding the baseOffset,
+ // sometimes the year value can change if the input datetime was very close to the beginning or the end of the year. Examples of such cases:
+ // “Libya Standard Time” when used with the date 2011-12-31T23:59:59.9999999Z
+ // "W. Australia Standard Time" used with date 2005-12-31T23:59:00.0000000Z
+ year = targetTime.Year;
+
rule = zone.GetAdjustmentRuleForTime(targetTime);
}
if (rule != null) {
- isDaylightSavings = GetIsDaylightSavingsFromUtc(time, year, zone.m_baseUtcOffset, rule, out isAmbiguousLocalDst);
- baseOffset += (isDaylightSavings ? rule.DaylightDelta : TimeSpan.Zero /* */);
+ baseOffset = baseOffset + rule.BaseUtcOffsetDelta;
+ if (rule.HasDaylightSaving) {
+ isDaylightSavings = GetIsDaylightSavingsFromUtc(time, year, zone.m_baseUtcOffset, rule, out isAmbiguousLocalDst, zone);
+ baseOffset += (isDaylightSavings ? rule.DaylightDelta : TimeSpan.Zero /* FUTURE: rule.StandardDelta */);
+ }
}
return baseOffset;
@@ -2418,7 +2307,7 @@ namespace System {
//
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
- static private bool TryCreateAdjustmentRules(string id, Win32Native.RegistryTimeZoneInformation defaultTimeZoneInformation, out AdjustmentRule[] rules, out Exception e) {
+ static private bool TryCreateAdjustmentRules(string id, Win32Native.RegistryTimeZoneInformation defaultTimeZoneInformation, out AdjustmentRule[] rules, out Exception e, int defaultBaseUtcOffset) {
e = null;
try {
@@ -2434,7 +2323,7 @@ namespace System {
)) {
if (dynamicKey == null) {
AdjustmentRule rule = CreateAdjustmentRuleFromTimeZoneInformation(
- defaultTimeZoneInformation, DateTime.MinValue.Date, DateTime.MaxValue.Date);
+ defaultTimeZoneInformation, DateTime.MinValue.Date, DateTime.MaxValue.Date, defaultBaseUtcOffset);
if (rule == null) {
rules = null;
@@ -2474,7 +2363,7 @@ namespace System {
if (first == last) {
// there is just 1 dynamic rule for this time zone.
- AdjustmentRule rule = CreateAdjustmentRuleFromTimeZoneInformation(dtzi, DateTime.MinValue.Date, DateTime.MaxValue.Date);
+ AdjustmentRule rule = CreateAdjustmentRuleFromTimeZoneInformation(dtzi, DateTime.MinValue.Date, DateTime.MaxValue.Date, defaultBaseUtcOffset);
if (rule == null) {
rules = null;
@@ -2493,7 +2382,8 @@ namespace System {
AdjustmentRule firstRule = CreateAdjustmentRuleFromTimeZoneInformation(
dtzi,
DateTime.MinValue.Date, // MinValue
- new DateTime(first, 12, 31)); // December 31, <FirstYear>
+ new DateTime(first, 12, 31), // December 31, <FirstYear>
+ defaultBaseUtcOffset);
if (firstRule != null) {
rulesList.Add(firstRule);
}
@@ -2509,7 +2399,8 @@ namespace System {
AdjustmentRule middleRule = CreateAdjustmentRuleFromTimeZoneInformation(
dtzi,
new DateTime(i, 1, 1), // January 01, <Year>
- new DateTime(i, 12, 31)); // December 31, <Year>
+ new DateTime(i, 12, 31), // December 31, <Year>
+ defaultBaseUtcOffset);
if (middleRule != null) {
rulesList.Add(middleRule);
}
@@ -2524,7 +2415,8 @@ namespace System {
AdjustmentRule lastRule = CreateAdjustmentRuleFromTimeZoneInformation(
dtzi,
new DateTime(last, 1, 1), // January 01, <LastYear>
- DateTime.MaxValue.Date); // MaxValue
+ DateTime.MaxValue.Date, // MaxValue
+ defaultBaseUtcOffset);
if (lastRule != null) {
rulesList.Add(lastRule);
}
@@ -2626,10 +2518,6 @@ namespace System {
return false;
}
-#if WINXP_AND_WIN2K3_SUPPORT
- dstDisabled = CheckDaylightSavingTimeDisabledDownlevel();
-#endif
-
result = dstDisabled || CheckDaylightSavingTimeNotSupported(timeZone)
//
// since Daylight Saving Time is not "disabled", do a straight comparision between
@@ -2911,7 +2799,7 @@ namespace System {
defaultTimeZoneInformation = new Win32Native.RegistryTimeZoneInformation(regValue);
AdjustmentRule[] adjustmentRules;
- if (!TryCreateAdjustmentRules(id, defaultTimeZoneInformation, out adjustmentRules, out e)) {
+ if (!TryCreateAdjustmentRules(id, defaultTimeZoneInformation, out adjustmentRules, out e, defaultTimeZoneInformation.Bias)) {
value = null;
return TimeZoneInfoResult.InvalidTimeZoneException;
}
@@ -3021,637 +2909,6 @@ namespace System {
}
#endif // FEATURE_WIN32_REGISTRY
-
-#if __APPLE__
- // TZFILE(5) BSD File Formats Manual TZFILE(5)
- //
- // NAME
- // tzfile -- timezone information
- //
- // SYNOPSIS
- // #include "/usr/src/lib/libc/stdtime/tzfile.h"
- //
- // DESCRIPTION
- // The time zone information files used by tzset(3) begin with the magic
- // characters ``TZif'' to identify them as time zone information files, fol-
- // lowed by sixteen bytes reserved for future use, followed by four four-
- // byte values written in a ``standard'' byte order (the high-order byte of
- // the value is written first). These values are, in order:
- //
- // tzh_ttisgmtcnt The number of UTC/local indicators stored in the file.
- // tzh_ttisstdcnt The number of standard/wall indicators stored in the
- // file.
- // tzh_leapcnt The number of leap seconds for which data is stored in
- // the file.
- // tzh_timecnt The number of ``transition times'' for which data is
- // stored in the file.
- // tzh_typecnt The number of ``local time types'' for which data is
- // stored in the file (must not be zero).
- // tzh_charcnt The number of characters of ``time zone abbreviation
- // strings'' stored in the file.
- //
- // The above header is followed by tzh_timecnt four-byte values of type
- // long, sorted in ascending order. These values are written in ``stan-
- // dard'' byte order. Each is used as a transition time (as returned by
- // time(3)) at which the rules for computing local time change. Next come
- // tzh_timecnt one-byte values of type unsigned char; each one tells which
- // of the different types of ``local time'' types described in the file is
- // associated with the same-indexed transition time. These values serve as
- // indices into an array of ttinfo structures that appears next in the file;
- // these structures are defined as follows:
- //
- // struct ttinfo {
- // long tt_gmtoff;
- // int tt_isdst;
- // unsigned int tt_abbrind;
- // };
- //
- // Each structure is written as a four-byte value for tt_gmtoff of type
- // long, in a standard byte order, followed by a one-byte value for tt_isdst
- // and a one-byte value for tt_abbrind. In each structure, tt_gmtoff gives
- // the number of seconds to be added to UTC, tt_isdst tells whether tm_isdst
- // should be set by localtime(3) and tt_abbrind serves as an index into the
- // array of time zone abbreviation characters that follow the ttinfo struc-
- // ture(s) in the file.
- //
- // Then there are tzh_leapcnt pairs of four-byte values, written in standard
- // byte order; the first value of each pair gives the time (as returned by
- // time(3)) at which a leap second occurs; the second gives the total number
- // of leap seconds to be applied after the given time. The pairs of values
- // are sorted in ascending order by time.b
- //
- // Then there are tzh_ttisstdcnt standard/wall indicators, each stored as a
- // one-byte value; they tell whether the transition times associated with
- // local time types were specified as standard time or wall clock time, and
- // are used when a time zone file is used in handling POSIX-style time zone
- // environment variables.
- //
- // Finally there are tzh_ttisgmtcnt UTC/local indicators, each stored as a
- // one-byte value; they tell whether the transition times associated with
- // local time types were specified as UTC or local time, and are used when a
- // time zone file is used in handling POSIX-style time zone environment
- // variables.
- //
- // localtime uses the first standard-time ttinfo structure in the file (or
- // simply the first ttinfo structure in the absence of a standard-time
- // structure) if either tzh_timecnt is zero or the time argument is less
- // than the first transition time recorded in the file.
- //
- // SEE ALSO
- // ctime(3), time2posix(3), zic(8)
- //
- // BSD September 13, 1994 BSD
- //
- //
- //
- // TIME(3) BSD Library Functions Manual TIME(3)
- //
- // NAME
- // time -- get time of day
- //
- // LIBRARY
- // Standard C Library (libc, -lc)
- //
- // SYNOPSIS
- // #include <time.h>
- //
- // time_t
- // time(time_t *tloc);
- //
- // DESCRIPTION
- // The time() function returns the value of time in seconds since 0 hours, 0
- // minutes, 0 seconds, January 1, 1970, Coordinated Universal Time, without
- // including leap seconds. If an error occurs, time() returns the value
- // (time_t)-1.
- //
- // The return value is also stored in *tloc, provided that tloc is non-null.
- //
- // ERRORS
- // The time() function may fail for any of the reasons described in
- // gettimeofday(2).
- //
- // SEE ALSO
- // gettimeofday(2), ctime(3)
- //
- // STANDARDS
- // The time function conforms to IEEE Std 1003.1-2001 (``POSIX.1'').
- //
- // BUGS
- // Neither ISO/IEC 9899:1999 (``ISO C99'') nor IEEE Std 1003.1-2001
- // (``POSIX.1'') requires time() to set errno on failure; thus, it is impos-
- // sible for an application to distinguish the valid time value -1 (repre-
- // senting the last UTC second of 1969) from the error return value.
- //
- // Systems conforming to earlier versions of the C and POSIX standards
- // (including older versions of FreeBSD) did not set *tloc in the error
- // case.
- //
- // HISTORY
- // A time() function appeared in Version 6 AT&T UNIX.
- //
- // BSD July 18, 2003 BSD
- //
- //
-
- //
- // TZif_CalculateTransitionTime -
- //
- // Example inputs:
- // -----------------
- // utc = 1918-03-31T10:00:00.0000000Z
- // transitionType = {-08:00:00 DST=False, Index 4}
- // standardTime = False
- // gmtTime = False
- //
- static private TransitionTime TZif_CalculateTransitionTime(DateTime utc, TimeSpan offset,
- TZifType transitionType, Boolean standardTime,
- Boolean gmtTime, out DateTime ruleDate) {
-
- // convert from UTC to local clock time
- Int64 ticks = utc.Ticks + offset.Ticks;
- if (ticks > DateTime.MaxValue.Ticks) {
- utc = DateTime.MaxValue;
- }
- else if (ticks < DateTime.MinValue.Ticks) {
- utc = DateTime.MinValue;
- }
- else {
- utc = new DateTime(ticks);
- }
-
- DateTime timeOfDay = new DateTime(1, 1, 1, utc.Hour, utc.Minute, utc.Second, utc.Millisecond);
- int month = utc.Month;
- int day = utc.Day;
-
- ruleDate = new DateTime(utc.Year, month, day);
- //
- return TransitionTime.CreateFixedDateRule(timeOfDay, month, day);
- }
-
- static private void TZif_GenerateAdjustmentRules(out AdjustmentRule[] rules, DateTime[] dts, Byte[] typeOfLocalTime,
- TZifType[] transitionType, Boolean[] StandardTime, Boolean[] GmtTime) {
- rules = null;
-
- int index = 0;
- List<AdjustmentRule> rulesList = new List<AdjustmentRule>(1);
- bool succeeded = true;
-
- while (succeeded && index < dts.Length) {
- succeeded = TZif_GenerateAdjustmentRule(ref index, ref rulesList, dts, typeOfLocalTime, transitionType, StandardTime, GmtTime);
- }
-
- rules = rulesList.ToArray();
- if (rules != null && rules.Length == 0) {
- rules = null;
- }
- }
-
-
- static private bool TZif_GenerateAdjustmentRule(ref int startIndex, ref List<AdjustmentRule> rulesList, DateTime[] dts, Byte[] typeOfLocalTime,
- TZifType[] transitionType, Boolean[] StandardTime, Boolean[] GmtTime) {
-
- int index = startIndex;
- bool Dst = false;
- int DstStartIndex = -1;
- int DstEndIndex = -1;
- DateTime startDate = DateTime.MinValue.Date;
- DateTime endDate = DateTime.MaxValue.Date;
-
-
- // find the next DST transition start time index
- while (!Dst && index < typeOfLocalTime.Length) {
- int typeIndex = typeOfLocalTime[index];
- if (typeIndex < transitionType.Length && transitionType[typeIndex].IsDst) {
- // found the next DST transition start time
- Dst = true;
- DstStartIndex = index;
- }
- else {
- index++;
- }
- }
-
- // find the next DST transition end time index
- while (Dst && index < typeOfLocalTime.Length) {
- int typeIndex = typeOfLocalTime[index];
- if (typeIndex < transitionType.Length && !transitionType[typeIndex].IsDst) {
- // found the next DST transition end time
- Dst = false;
- DstEndIndex = index;
- }
- else {
- index++;
- }
- }
-
-
- //
- // construct the adjustment rule from the two indices
- //
- if (DstStartIndex >= 0) {
- DateTime startTransitionDate = dts[DstStartIndex];
- DateTime endTransitionDate;
-
-
- if (DstEndIndex == -1) {
- // we found a DST start but no DST end; in this case use the
- // prior non-DST entry if it exists, else use the current entry for both start and end (e.g., zero daylightDelta)
- if (DstStartIndex > 0) {
- DstEndIndex = DstStartIndex - 1;
- }
- else {
- DstEndIndex = DstStartIndex;
- }
- endTransitionDate = DateTime.MaxValue;
- }
- else {
- endTransitionDate = dts[DstEndIndex];
- }
-
- int dstStartTypeIndex = typeOfLocalTime[DstStartIndex];
- int dstEndTypeIndex = typeOfLocalTime[DstEndIndex];
-
- TimeSpan daylightBias = transitionType[dstStartTypeIndex].UtcOffset - transitionType[dstEndTypeIndex].UtcOffset;
- // TZif supports seconds-level granularity with offsets but TimeZoneInfo only supports minutes since it aligns
- // with DateTimeOffset, SQL Server, and the W3C XML Specification
- if (daylightBias.Ticks % TimeSpan.TicksPerMinute != 0) {
- daylightBias = new TimeSpan(daylightBias.Hours, daylightBias.Minutes, 0);
- }
-
- //
- // the normal case is less than 12 months between transition times. However places like ----/Catamarca
- // have DST from 1946-1963 straight without a gap. In that case we need to create a series of Adjustment
- // Rules to fudge the multi-year DST period
- //
- if ((endTransitionDate - startTransitionDate).Ticks <= TimeSpan.TicksPerDay * 364) {
- TransitionTime dstStart;
- TransitionTime dstEnd;
- TimeSpan startTransitionOffset = (DstStartIndex > 0 ? transitionType[typeOfLocalTime[DstStartIndex - 1]].UtcOffset : transitionType[dstEndTypeIndex].UtcOffset);
- TimeSpan endTransitionOffset = (DstEndIndex > 0 ? transitionType[typeOfLocalTime[DstEndIndex - 1]].UtcOffset : transitionType[dstStartTypeIndex].UtcOffset);
-
-
- dstStart = TZif_CalculateTransitionTime(startTransitionDate,
- startTransitionOffset,
- transitionType[dstStartTypeIndex],
- StandardTime[dstStartTypeIndex],
- GmtTime[dstStartTypeIndex],
- out startDate);
-
- dstEnd = TZif_CalculateTransitionTime(endTransitionDate,
- endTransitionOffset,
- transitionType[dstEndTypeIndex],
- StandardTime[dstEndTypeIndex],
- GmtTime[dstEndTypeIndex],
- out endDate);
-
-
-
- // calculate the AdjustmentRule end date
- if (DstStartIndex >= DstEndIndex) {
- // we found a DST start but no DST end
- endDate = DateTime.MaxValue.Date;
- }
-
- AdjustmentRule r = AdjustmentRule.CreateAdjustmentRule(startDate, endDate, daylightBias, dstStart, dstEnd);
- rulesList.Add(r);
- }
- else {
- // create the multi-year DST rule series:
- //
- // For example ----/Catamarca:
- // 1946-10-01T04:00:00.0000000Z {-03:00:00 DST=True}
- // 1963-10-01T03:00:00.0000000Z {-04:00:00 DST=False}
- //
- // gets converted into a series of overlapping 5/7month adjustment rules:
- //
- // [AdjustmentRule #0] // start rule
- // [1946/09/31 - 1947/06/15] // * starts 1 day prior to startTransitionDate
- // [start: 10/01 @4:00 ] // * N months long, stopping at month 6 or 11
- // [end : 07/15 ] // notice how the _end_ is outside the range
- //
- // [AdjustmentRule #1] // middle-year all-DST rule
- // [1947/06/16 - 1947/11/15] // * starts 1 day after last day in previous rule
- // [start: 05/15 ] // * 5 months long, stopping at month 6 or 11
- // [end : 12/15 ] // notice how the _start and end_ are outside the range
- //
- // [AdjustmentRule #2] // middle-year all-DST rule
- // [1947/11/16 - 1947/06/15] // * starts 1 day after last day in previous rule
- // [start: 10/01 ] // * 7 months long, stopping at month 6 or 11
- // [end : 07/15 ] // notice how the _start and end_ are outside the range
- //
- // .........................
- //
- // [AdjustmentRule #N] // end rule
- // [1963/06/16 - 1946/10/02] // * starts 1 day after last day in previous rule
- // [start: 05/15 ] // * N months long, stopping 1 day after endTransitionDate
- // [end : 10/01 ] // notice how the _start_ is outside the range
- //
-
- // create the first rule from N to either 06/15 or 11/15
- TZif_CreateFirstMultiYearRule(ref rulesList, daylightBias, startTransitionDate, DstStartIndex, dstStartTypeIndex, dstEndTypeIndex,
- dts, transitionType, typeOfLocalTime, StandardTime, GmtTime);
-
- // create the filler rules
- TZif_CreateMiddleMultiYearRules(ref rulesList, daylightBias, endTransitionDate);
-
- // create the last rule
- TZif_CreateLastMultiYearRule(ref rulesList, daylightBias, endTransitionDate, DstStartIndex, dstStartTypeIndex, DstEndIndex, dstEndTypeIndex,
- dts, transitionType, typeOfLocalTime, StandardTime, GmtTime);
- }
-
- startIndex = index + 1;
- return true;
- }
-
- // setup the start values for the next call to TZif_GenerateAdjustmentRule(...)
- startIndex = index + 1;
- return false; // did not create a new AdjustmentRule
- }
-
- static private void TZif_CreateFirstMultiYearRule(ref List<AdjustmentRule> rulesList, TimeSpan daylightBias, DateTime startTransitionDate,
- int DstStartIndex, int dstStartTypeIndex, int dstEndTypeIndex, DateTime[] dts, TZifType[] transitionType,
- Byte[] typeOfLocalTime, bool[] StandardTime, bool[] GmtTime) {
-
- // [AdjustmentRule #0] // start rule
- // [1946/09/31 - 1947/06/15] // * starts 1 day prior to startTransitionDate
- // [start: 10/01 @4:00 ] // * N months long, stopping at month 6 or 11
- // [end : 07/15 ] // notice how the _end_ is outside the range
-
- DateTime startDate;
- DateTime endDate;
- TransitionTime dstStart;
- TransitionTime dstEnd;
-
- TimeSpan startTransitionOffset = (DstStartIndex > 0 ? transitionType[typeOfLocalTime[DstStartIndex - 1]].UtcOffset : transitionType[dstEndTypeIndex].UtcOffset);
-
- dstStart = TZif_CalculateTransitionTime(startTransitionDate,
- startTransitionOffset,
- transitionType[dstStartTypeIndex],
- StandardTime[dstStartTypeIndex],
- GmtTime[dstStartTypeIndex],
- out startDate);
-
- //
- // Choosing the endDate based on the startDate:
- //
- // startTransitionDate.Month -> end
- // 1 4|5 8|9 12
- // [-> 06/15]|[-> 11/15]|[-> 06/15]
- //
- int startDateMonth = startDate.Month;
- int startDateYear = startDate.Year;
-
- if (startDateMonth <= 4) {
- endDate = new DateTime(startDateYear, 06, 15);
- dstEnd = c_transition7_15;
- } else if (startDateMonth <= 8) {
- endDate = new DateTime(startDateYear, 11, 15);
- dstEnd = c_transition12_15;
- }
- else if (startDateYear < 9999) {
- endDate = new DateTime(startDateYear+1, 06, 15);
- dstEnd = c_transition7_15;
- }
- else {
- endDate = DateTime.MaxValue;
- dstEnd = c_transition7_15;
- }
-
- AdjustmentRule r = AdjustmentRule.CreateAdjustmentRule(startDate, endDate, daylightBias, dstStart, dstEnd);
- rulesList.Add(r);
- }
-
-
- static private void TZif_CreateLastMultiYearRule(ref List<AdjustmentRule> rulesList, TimeSpan daylightBias, DateTime endTransitionDate,
- int DstStartIndex, int dstStartTypeIndex, int DstEndIndex, int dstEndTypeIndex, DateTime[] dts, TZifType[] transitionType,
- Byte[] typeOfLocalTime, bool[] StandardTime, bool[] GmtTime) {
-
- // [AdjustmentRule #N] // end rule
- // [1963/06/16 - 1946/10/02] // * starts 1 day after last day in previous rule
- // [start: 05/15 ] // * N months long, stopping 1 day after endTransitionDate
- // [end : 10/01 ] // notice how the _start_ is outside the range
-
- DateTime endDate;
- TransitionTime dstEnd;
-
- TimeSpan endTransitionOffset = (DstEndIndex > 0 ? transitionType[typeOfLocalTime[DstEndIndex - 1]].UtcOffset : transitionType[dstStartTypeIndex].UtcOffset);
-
-
- dstEnd = TZif_CalculateTransitionTime(endTransitionDate,
- endTransitionOffset,
- transitionType[dstEndTypeIndex],
- StandardTime[dstEndTypeIndex],
- GmtTime[dstEndTypeIndex],
- out endDate);
-
- if (DstStartIndex >= DstEndIndex) {
- // we found a DST start but no DST end
- endDate = DateTime.MaxValue.Date;
- }
-
- AdjustmentRule prevRule = rulesList[ rulesList.Count - 1]; // grab the last element of the MultiYearRule sequence
- int y = prevRule.DateEnd.Year;
- if (prevRule.DateEnd.Month <= 6) {
- // create a rule from 06/16/YYYY to endDate
- AdjustmentRule r = AdjustmentRule.CreateAdjustmentRule(new DateTime(y, 06, 16), endDate, daylightBias, c_transition5_15, dstEnd);
- rulesList.Add(r);
- }
- else {
- // create a rule from 11/16/YYYY to endDate
- AdjustmentRule r = AdjustmentRule.CreateAdjustmentRule(new DateTime(y, 11, 16), endDate, daylightBias, c_transition10_15, dstEnd);
- rulesList.Add(r);
- }
- }
-
-
- static private void TZif_CreateMiddleMultiYearRules(ref List<AdjustmentRule> rulesList, TimeSpan daylightBias, DateTime endTransitionDate) {
- //
- // [AdjustmentRule #1] // middle-year all-DST rule
- // [1947/06/16 - 1947/11/15] // * starts 1 day after last day in previous rule
- // [start: 05/15 ] // * 5 months long, stopping at month 6 or 11
- // [end : 12/15 ] // notice how the _start and end_ are outside the range
- //
- // [AdjustmentRule #2] // middle-year all-DST rule
- // [1947/11/16 - 1947/06/15] // * starts 1 day after last day in previous rule
- // [start: 10/01 ] // * 7 months long, stopping at month 6 or 11
- // [end : 07/15 ] // notice how the _start and end_ are outside the range
- //
- // .........................
-
- AdjustmentRule prevRule = rulesList[ rulesList.Count - 1]; // grab the first element of the MultiYearRule sequence
- DateTime endDate;
-
- //
- // Choosing the last endDate based on the endTransitionDate
- //
- // endTransitionDate.Month -> end
- // 1 4|5 8|9 12
- // [11/15 <-]|[11/15 <-]|[06/15 <-]
- //
- if (endTransitionDate.Month <= 8) {
- // set the end date to 11/15/YYYY-1
- endDate = new DateTime(endTransitionDate.Year - 1, 11, 15);
- }
- else {
- // set the end date to 06/15/YYYY
- endDate = new DateTime(endTransitionDate.Year, 06, 15);
- }
-
- while (prevRule.DateEnd < endDate) {
- // the last endDate will be on either 06/15 or 11/15
- int y = prevRule.DateEnd.Year;
- if (prevRule.DateEnd.Month <= 6) {
- // create a rule from 06/16/YYYY to 11/15/YYYY
- AdjustmentRule r = AdjustmentRule.CreateAdjustmentRule(new DateTime(y, 06, 16), new DateTime(y, 11, 15),
- daylightBias, c_transition5_15, c_transition12_15);
- prevRule = r;
- rulesList.Add(r);
- }
- else {
- // create a rule from 11/16/YYYY to 06/15/YYYY+1
- AdjustmentRule r = AdjustmentRule.CreateAdjustmentRule(new DateTime(y, 11, 16), new DateTime(y+1, 06, 15),
- daylightBias, c_transition10_15, c_transition7_15);
- prevRule = r;
- rulesList.Add(r);
- }
- }
- }
-
-
- // Returns the Substring from zoneAbbreviations starting at index and ending at '\0'
- // zoneAbbreviations is expected to be in the form: "PST\0PDT\0PWT\0\PPT"
- static private String TZif_GetZoneAbbreviation(String zoneAbbreviations, int index) {
- int lastIndex = zoneAbbreviations.IndexOf('\0', index);
- if (lastIndex > 0) {
- return zoneAbbreviations.Substring(index, lastIndex - index);
- }
- else {
- return zoneAbbreviations.Substring(index);
- }
- }
-
- // verify the 'index' is referenced from the typeOfLocalTime byte array.
- //
- static private Boolean TZif_ValidTransitionType(int index, Byte[] typeOfLocalTime) {
- Boolean result = false;
-
- if (typeOfLocalTime != null) {
- for (int i = 0; !result && i < typeOfLocalTime.Length; i++) {
- if (index == typeOfLocalTime[i]) {
- result = true;
- }
- }
- }
- return result;
- }
-
- // Converts an array of bytes into an int - always using standard byte order (Big Endian)
- // per TZif file standard
- [System.Security.SecuritySafeCritical] // auto-generated
- static private unsafe int TZif_ToInt32 (byte[]value, int startIndex) {
- fixed( byte * pbyte = &value[startIndex]) {
- return (*pbyte << 24) | (*(pbyte + 1) << 16) | (*(pbyte + 2) << 8) | (*(pbyte + 3));
- }
- }
-
- static private void TZif_ParseRaw(Byte[] data, out TZifHead t, out DateTime[] dts, out Byte[] typeOfLocalTime, out TZifType[] transitionType,
- out String zoneAbbreviations, out Boolean[] StandardTime, out Boolean[] GmtTime) {
-
- // initialize the out parameters in case the TZifHead ctor throws
- dts = null;
- typeOfLocalTime = null;
- transitionType = null;
- zoneAbbreviations = String.Empty;
- StandardTime = null;
- GmtTime = null;
-
- // read in the 44-byte TZ header containing the count/length fields
- //
- t = new TZifHead(data, 0);
- int index = TZifHead.Length;
-
- // initialize the containers for the rest of the TZ data
- dts = new DateTime[t.TimeCount];
- typeOfLocalTime = new Byte[t.TimeCount];
- transitionType = new TZifType[t.TypeCount];
- zoneAbbreviations = String.Empty;
- StandardTime = new Boolean[t.TypeCount];
- GmtTime = new Boolean[t.TypeCount];
-
-
- // read in the 4-byte UTC transition points and convert them to Windows
- //
- for (int i = 0; i < t.TimeCount; i++) {
- int unixTime = TZif_ToInt32(data, index);
- dts[i] = TZif_UnixTimeToWindowsTime(unixTime);
- index += 4;
- }
-
- // read in the Type Indices; there is a 1:1 mapping of UTC transition points to Type Indices
- // these indices directly map to the array index in the transitionType array below
- //
- for (int i = 0; i < t.TimeCount; i++) {
- typeOfLocalTime[i] = data[index];
- index += 1;
- }
-
- // read in the Type table. Each 6-byte entry represents
- // {UtcOffset, IsDst, AbbreviationIndex}
- //
- // each AbbreviationIndex is a character index into the zoneAbbreviations string below
- //
- for (int i = 0; i < t.TypeCount; i++) {
- transitionType[i] = new TZifType(data, index);
- index += 6;
- }
-
- // read in the Abbreviation ASCII string. This string will be in the form:
- // "PST\0PDT\0PWT\0\PPT"
- //
- System.Text.Encoding enc = new System.Text.UTF8Encoding();
- zoneAbbreviations = enc.GetString(data, index, (int)t.CharCount);
- index += (int)t.CharCount;
-
- // skip ahead of the Leap-Seconds Adjustment data. In a future release, consider adding
- // support for Leap-Seconds
- //
- index += (int)(t.LeapCount * 8); // skip the leap second transition times
-
- // read in the Standard Time table. There should be a 1:1 mapping between Type-Index and Standard
- // Time table entries.
- //
- // TRUE = transition time is standard time
- // FALSE = transition time is wall clock time
- // ABSENT = transition time is wall clock time
- //
- for (int i = 0; i < t.IsStdCount && i < t.TypeCount && index < data.Length; i++) {
- StandardTime[i] = (data[index++] != 0);
- }
-
- // read in the GMT Time table. There should be a 1:1 mapping between Type-Index and GMT Time table
- // entries.
- //
- // TRUE = transition time is UTC
- // FALSE = transition time is local time
- // ABSENT = transition time is local time
- //
- for (int i = 0; i < t.IsGmtCount && i < t.TypeCount && index < data.Length; i++) {
- GmtTime[i] = (data[index++] != 0);
- }
- }
-
-
- // Windows NT time is specified as the number of 100 nanosecond intervals since January 1, 1601.
- // UNIX time is specified as the number of seconds since January 1, 1970. There are 134,774 days
- // (or 11,644,473,600 seconds) between these dates.
- //
- private static DateTime TZif_UnixTimeToWindowsTime(int unixTime) {
- // Add 11,644,473,600 and multiply by 10,000,000.
- Int64 ntTime = (((Int64)unixTime) + 11644473600) * 10000000;
- return DateTime.FromFileTimeUtc(ntTime);
- }
-#endif // __APPLE__
-
#endif
//
// UtcOffsetOutOfRange -
@@ -3761,6 +3018,7 @@ namespace System {
private TimeSpan m_daylightDelta;
private TransitionTime m_daylightTransitionStart;
private TransitionTime m_daylightTransitionEnd;
+ private TimeSpan m_baseUtcOffsetDelta; // delta from the default Utc offset (utcOffset = defaultUtcOffset + m_baseUtcOffsetDelta)
// ---- SECTION: public properties --------------*
@@ -3796,15 +3054,29 @@ namespace System {
}
}
+ internal TimeSpan BaseUtcOffsetDelta {
+ get {
+ return this.m_baseUtcOffsetDelta;
+ }
+ }
+
+ internal bool HasDaylightSaving {
+ get {
+ return this.DaylightDelta != TimeSpan.Zero ||
+ this.DaylightTransitionStart.TimeOfDay != DateTime.MinValue ||
+ this.DaylightTransitionEnd.TimeOfDay != DateTime.MinValue.AddMilliseconds(1);
+ }
+ }
// ---- SECTION: public methods --------------*
- //IEquatable<AdjustmentRule>
+ // IEquatable<AdjustmentRule>
public bool Equals(AdjustmentRule other) {
bool equals = (other != null
&& this.m_dateStart == other.m_dateStart
&& this.m_dateEnd == other.m_dateEnd
- && this.m_daylightDelta == other.m_daylightDelta);
+ && this.m_daylightDelta == other.m_daylightDelta
+ && this.m_baseUtcOffsetDelta == other.m_baseUtcOffsetDelta);
equals = equals && this.m_daylightTransitionEnd.Equals(other.m_daylightTransitionEnd)
&& this.m_daylightTransitionStart.Equals(other.m_daylightTransitionStart);
@@ -3843,15 +3115,44 @@ namespace System {
rule.m_daylightDelta = daylightDelta;
rule.m_daylightTransitionStart = daylightTransitionStart;
rule.m_daylightTransitionEnd = daylightTransitionEnd;
-
-
+ rule.m_baseUtcOffsetDelta = TimeSpan.Zero;
return rule;
}
+ static internal AdjustmentRule CreateAdjustmentRule(
+ DateTime dateStart,
+ DateTime dateEnd,
+ TimeSpan daylightDelta,
+ TransitionTime daylightTransitionStart,
+ TransitionTime daylightTransitionEnd,
+ TimeSpan baseUtcOffsetDelta) {
+ AdjustmentRule rule = CreateAdjustmentRule(dateStart, dateEnd, daylightDelta, daylightTransitionStart, daylightTransitionEnd);
+ rule.m_baseUtcOffsetDelta = baseUtcOffsetDelta;
+ return rule;
+ }
// ----- SECTION: internal utility methods ----------------*
+ //
+ // When Windows sets the daylight transition start Jan 1st at 12:00 AM, it means the year starts with the daylight saving on.
+ // We have to special case this value and not adjust it when checking if any date is in the daylight saving period.
+ //
+ internal bool IsStartDateMarkerForBeginningOfYear() {
+ return DaylightTransitionStart.Month == 1 && DaylightTransitionStart.Day == 1 && DaylightTransitionStart.TimeOfDay.Hour == 0 &&
+ DaylightTransitionStart.TimeOfDay.Minute == 0 && DaylightTransitionStart.TimeOfDay.Second == 0 &&
+ m_dateStart.Year == m_dateEnd.Year;
+ }
+
+ //
+ // When Windows sets the daylight transition end Jan 1st at 12:00 AM, it means the year ends with the daylight saving on.
+ // We have to special case this value and not adjust it when checking if any date is in the daylight saving period.
+ //
+ internal bool IsEndDateMarkerForEndOfYear() {
+ return DaylightTransitionEnd.Month == 1 && DaylightTransitionEnd.Day == 1 && DaylightTransitionEnd.TimeOfDay.Hour == 0 &&
+ DaylightTransitionEnd.TimeOfDay.Minute == 0 && DaylightTransitionEnd.TimeOfDay.Second == 0 &&
+ m_dateStart.Year == m_dateEnd.Year;
+ }
//
// ValidateAdjustmentRule -
@@ -3937,6 +3238,7 @@ namespace System {
info.AddValue("DaylightDelta", m_daylightDelta);
info.AddValue("DaylightTransitionStart", m_daylightTransitionStart);
info.AddValue("DaylightTransitionEnd", m_daylightTransitionEnd);
+ info.AddValue("BaseUtcOffsetDelta", m_baseUtcOffsetDelta);
}
AdjustmentRule(SerializationInfo info, StreamingContext context) {
@@ -3949,6 +3251,11 @@ namespace System {
m_daylightDelta = (TimeSpan)info.GetValue("DaylightDelta", typeof(TimeSpan));
m_daylightTransitionStart = (TransitionTime)info.GetValue("DaylightTransitionStart", typeof(TransitionTime));
m_daylightTransitionEnd = (TransitionTime)info.GetValue("DaylightTransitionEnd", typeof(TransitionTime));
+
+ object o = info.GetValueNoThrow("BaseUtcOffsetDelta", typeof(TimeSpan));
+ if (o != null) {
+ m_baseUtcOffsetDelta = (TimeSpan) o;
+ }
}
#endif
}
@@ -4301,6 +3608,10 @@ namespace System {
serializedText.Append(sep);
SerializeTransitionTime(rule.DaylightTransitionEnd, serializedText);
serializedText.Append(sep);
+ if (rule.BaseUtcOffsetDelta != TimeSpan.Zero) { // Serialize it only when BaseUtcOffsetDelta has a value to reduce the impact of adding rule.BaseUtcOffsetDelta
+ serializedText.Append(SerializeSubstitute(rule.BaseUtcOffsetDelta.TotalMinutes.ToString(CultureInfo.InvariantCulture)));
+ serializedText.Append(sep);
+ }
serializedText.Append(rhs);
}
}
@@ -4688,13 +3999,23 @@ namespace System {
TimeSpan daylightDelta = GetNextTimeSpanValue(false);
TransitionTime daylightStart = GetNextTransitionTimeValue(false);
TransitionTime daylightEnd = GetNextTransitionTimeValue(false);
-
+ TimeSpan baseUtcOffsetDelta = TimeSpan.Zero;
// verify that the string is now at the right-hand-side marker ("]") ...
if (m_state == State.EndOfLine || m_currentTokenStartIndex >= m_serializedText.Length) {
throw new SerializationException(Environment.GetResourceString("Serialization_InvalidData"));
}
+ // Check if we have baseUtcOffsetDelta in the serialized string and then deserialize it
+ if ((m_serializedText[m_currentTokenStartIndex] >= '0' && m_serializedText[m_currentTokenStartIndex] <= '9') ||
+ m_serializedText[m_currentTokenStartIndex] == '-' || m_serializedText[m_currentTokenStartIndex] == '+') {
+ baseUtcOffsetDelta = GetNextTimeSpanValue(false);
+ }
+
+ if (m_state == State.EndOfLine || m_currentTokenStartIndex >= m_serializedText.Length) {
+ throw new SerializationException(Environment.GetResourceString("Serialization_InvalidData"));
+ }
+
if (m_serializedText[m_currentTokenStartIndex] != rhs) {
// skip ahead of any "v.Next" data at the end of the AdjustmentRule
//
@@ -4711,7 +4032,7 @@ namespace System {
AdjustmentRule rule;
try {
- rule = AdjustmentRule.CreateAdjustmentRule(dateStart, dateEnd, daylightDelta, daylightStart, daylightEnd);
+ rule = AdjustmentRule.CreateAdjustmentRule(dateStart, dateEnd, daylightDelta, daylightStart, daylightEnd, baseUtcOffsetDelta);
}
catch (ArgumentException e) {
throw new SerializationException(Environment.GetResourceString("Serialization_InvalidData"), e);
@@ -4844,154 +4165,5 @@ namespace System {
return comparison == 0 ? String.Compare(x.DisplayName, y.DisplayName, StringComparison.Ordinal) : comparison;
}
}
-
-#if __APPLE__
-
- private struct TZifType {
- private const int c_len = 6;
- public static int Length {
- get {
- return c_len;
- }
- }
-
- public TimeSpan UtcOffset;
- public Boolean IsDst;
- public Byte AbbreviationIndex;
-
- public TZifType(Byte[] data, Int32 index) {
- if (data == null || data.Length < index + c_len) {
- throw new ArgumentException(Environment.GetResourceString("Argument_TimeZoneInfoInvalidTZif"), "data");
- }
- Contract.EndContractBlock();
- UtcOffset = new TimeSpan(0, 0, TZif_ToInt32(data, index + 00));
- IsDst = (data[index + 4] != 0);
- AbbreviationIndex = data[index + 5];
- }
- }
-
- private struct TZifHead {
- private const int c_len = 44;
- public static int Length {
- get {
- return c_len;
- }
- }
-
- public TZifHead(Byte[] data, Int32 index) {
- if (data == null || data.Length < c_len) {
- throw new ArgumentException("bad data", "data");
- }
- Contract.EndContractBlock();
-
- Magic = (uint)TZif_ToInt32(data, index + 00);
-
- if (Magic != 0x545A6966) {
- // 0x545A6966 = {0x54, 0x5A, 0x69, 0x66} = "TZif"
- throw new ArgumentException(Environment.GetResourceString("Argument_TimeZoneInfoBadTZif"), "data");
- }
-
- // don't use the BitConverter class which parses data
- // based on the Endianess of the machine architecture.
- // this data is expected to always be in "standard byte order",
- // regardless of the machine it is being processed on.
-
- IsGmtCount = (uint)TZif_ToInt32(data, index + 20);
- // skip the 16 byte reserved field
- IsStdCount = (uint)TZif_ToInt32(data, index + 24);
- LeapCount = (uint)TZif_ToInt32(data, index + 28);
- TimeCount = (uint)TZif_ToInt32(data, index + 32);
- TypeCount = (uint)TZif_ToInt32(data, index + 36);
- CharCount = (uint)TZif_ToInt32(data, index + 40);
- }
-
- public UInt32 Magic; // TZ_MAGIC "TZif"
- // public Byte[16] Reserved; // reserved for future use
- public UInt32 IsGmtCount; // number of transition time flags
- public UInt32 IsStdCount; // number of transition time flags
- public UInt32 LeapCount; // number of leap seconds
- public UInt32 TimeCount; // number of transition times
- public UInt32 TypeCount; // number of local time types
- public UInt32 CharCount; // number of abbreviated characters
- }
-
- [SecurityCritical]
- internal static Byte[] GetLocalTzFile() {
-#if !FEATURE_LEGACYNETCF
- if (Environment.OSVersion.Platform != PlatformID.MacOSX)
- throw new NotImplementedException();
-#endif
-
- byte[] toReturn = null;
- SafeCFCreateRuleHandle tz;
- SafeCFGetRuleHandle data;
-
- tz = CFTimeZoneCopyDefault();
- if (tz.IsInvalid)
- return null;
-
- data = CFTimeZoneGetData(tz);
- if (data.IsInvalid)
- return null;
-
- toReturn = new byte[CFDataGetLength(data)];
-
- CFRange range = new CFRange(0, toReturn.Length);
- CFDataGetBytes(data, range, toReturn);
-
- return toReturn;
- }
-
- [SecurityCritical]
- [DllImport("/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation", CallingConvention = CallingConvention.Cdecl)]
- private extern static SafeCFCreateRuleHandle CFTimeZoneCopyDefault();
-
- [SecurityCritical]
- [DllImport("/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation", CallingConvention = CallingConvention.Cdecl)]
- private extern static SafeCFGetRuleHandle CFTimeZoneGetData(SafeCFHandle tz);
-
-// Refer to the following link for details on CFIndex type:
-//
-// http://developer.apple.com/library/mac/#documentation/CoreFoundation/Reference/CFBaseUtils/Reference/reference.html#//apple_ref/doc/c_ref/CFIndex
-//
-// The return type of CFDataGetLength and type of the fields in CFRange are of the type CFIndex. Since their width varies with
-// architecture but C# does not allow us to do something like "#define CFIndex long", we have this big #ifdef.
-//
-#if WIN64
- [SecurityCritical]
- [DllImport("/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation", CallingConvention = CallingConvention.Cdecl)]
- private extern static long CFDataGetLength(SafeCFHandle theData);
-
- private struct CFRange {
- long location;
- long length;
-
- public CFRange(long location, long length) {
- this.location = location;
- this.length = length;
- }
- }
-
-#else // !WIN64
-
- [SecurityCritical]
- [DllImport("/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation", CallingConvention = CallingConvention.Cdecl)]
- private extern static int CFDataGetLength(SafeCFHandle theData);
-
- private struct CFRange {
- int location;
- int length;
-
- public CFRange(int location, int length) {
- this.location = location;
- this.length = length;
- }
- }
-#endif // WIN64
-
- [SecurityCritical]
- [DllImport("/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation", CallingConvention = CallingConvention.Cdecl)]
- private extern static void CFDataGetBytes(SafeCFHandle theData, CFRange range, [Out] byte[] buffer);
-#endif // __APPLE__
} // TimezoneInfo
} // namespace System
diff --git a/mcs/class/referencesource/mscorlib/system/type.cs b/mcs/class/referencesource/mscorlib/system/type.cs
index 2ec53abca25..6ac485a45d9 100644
--- a/mcs/class/referencesource/mscorlib/system/type.cs
+++ b/mcs/class/referencesource/mscorlib/system/type.cs
@@ -6,7 +6,7 @@
//
// File: Type.cs
//
-// <OWNER>[....]</OWNER>
+// <OWNER>Microsoft</OWNER>
//
// Implements System.Type
//
@@ -27,7 +27,6 @@ namespace System {
using System.Collections.Generic;
using System.Runtime.Versioning;
using System.Diagnostics.Contracts;
- using System.Diagnostics.Tracing;
using CultureInfo = System.Globalization.CultureInfo;
using StackCrawlMark = System.Threading.StackCrawlMark;
using DebuggerStepThroughAttribute = System.Diagnostics.DebuggerStepThroughAttribute;
@@ -88,12 +87,6 @@ namespace System {
// case-sensitive by default).
////
- // this method is required so Object.GetType is not made virtual by the compiler
- // _Type.GetType()
- public new Type GetType()
- {
- return base.GetType();
- }
#if !MONO
[MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable
public static Type GetType(String typeName, bool throwOnError, bool ignoreCase) {
@@ -104,30 +97,14 @@ namespace System {
[MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable
public static Type GetType(String typeName, bool throwOnError) {
StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller;
- Type t = RuntimeType.GetType(typeName, throwOnError, false, false, ref stackMark);
-
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && t != null)
- {
- FrameworkEventSource.Log.TypeGetType(t.GetFullNameForEtw());
- }
-#endif
- return t;
+ return RuntimeType.GetType(typeName, throwOnError, false, false, ref stackMark);
}
[MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable
public static Type GetType(String typeName) {
StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller;
- Type t = RuntimeType.GetType(typeName, false, false, false, ref stackMark);
-#if !FEATURE_CORECLR && !MONO
- if (FrameworkEventSource.IsInitialized && FrameworkEventSource.Log.IsEnabled(EventLevel.Informational, FrameworkEventSource.Keywords.DynamicTypeUsage) && t != null)
- {
- FrameworkEventSource.Log.TypeGetType(t.GetFullNameForEtw());
- }
-#endif
-
- return t;
+ return RuntimeType.GetType(typeName, false, false, false, ref stackMark);
}
#endif
#if !FEATURE_CORECLR
@@ -282,9 +259,6 @@ namespace System {
// Return the Default binder used by the system.
static public Binder DefaultBinder {
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {
// Allocate the default binder if it hasn't been allocated yet.
if (defaultBinder == null)
@@ -698,9 +672,6 @@ namespace System {
return GetPropertyImpl(name,Type.DefaultLookup,null,returnType,types,modifiers);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public PropertyInfo GetProperty(String name, BindingFlags bindingAttr)
{
if (name == null)
@@ -749,9 +720,6 @@ namespace System {
return GetPropertyImpl(name, bindingAttr, null, returnType, null, null);
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public PropertyInfo GetProperty(String name)
{
if (name == null)
@@ -990,9 +958,6 @@ namespace System {
public bool IsNested
{
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get
{
return DeclaringType != null;
@@ -1063,17 +1028,11 @@ namespace System {
public bool IsPublic {
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {return ((GetAttributeFlagsImpl() & TypeAttributes.VisibilityMask) == TypeAttributes.Public);}
}
public bool IsNestedPublic {
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get {return ((GetAttributeFlagsImpl() & TypeAttributes.VisibilityMask) == TypeAttributes.NestedPublic);}
}
@@ -1136,9 +1095,6 @@ namespace System {
public bool IsAbstract {
[Pure]
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
get { return ((GetAttributeFlagsImpl() & TypeAttributes.Abstract) != 0); }
}
@@ -1151,7 +1107,6 @@ namespace System {
public bool IsEnum {
#else
public virtual bool IsEnum {
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
#endif
[Pure]
get
@@ -1327,9 +1282,6 @@ namespace System {
}
// Protected routine to determine if this class represents a value class
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
// The default implementation of IsValueTypeImpl never returns true for non-runtime types.
protected virtual bool IsValueTypeImpl()
{
@@ -1428,9 +1380,6 @@ namespace System {
[Pure]
abstract protected bool HasElementTypeImpl();
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
internal Type GetRootElementType()
{
Type rootElementType = this;
@@ -1815,7 +1764,7 @@ namespace System {
{
throw new NotImplementedException();
}
-
+
// ToString
// Print the String Representation of the Type
public override String ToString()
@@ -1852,7 +1801,6 @@ namespace System {
// _Type.Equals(Type)
[Pure]
#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public virtual bool Equals(Type o)
#else
public bool Equals(Type o)
@@ -1890,9 +1838,6 @@ namespace System {
#endif // !FEATURE_CORECLR
#endif
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override int GetHashCode()
{
Type SystemType = UnderlyingSystemType;
@@ -1912,6 +1857,14 @@ namespace System {
throw new NotSupportedException(Environment.GetResourceString("NotSupported_SubclassOverride"));
}
+#if !FEATURE_CORECLR
+ // this method is required so Object.GetType is not made virtual by the compiler
+ // _Type.GetType()
+ public new Type GetType()
+ {
+ return base.GetType();
+ }
+
void _Type.GetTypeInfoCount(out uint pcTInfo)
{
throw new NotImplementedException();
@@ -1933,6 +1886,7 @@ namespace System {
{
throw new NotImplementedException();
}
+#endif
// private convenience data
private const BindingFlags DefaultLookup = BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public;
diff --git a/mcs/class/referencesource/mscorlib/system/typedreference.cs b/mcs/class/referencesource/mscorlib/system/typedreference.cs
index 997813b1f52..8aad5bb3a61 100644
--- a/mcs/class/referencesource/mscorlib/system/typedreference.cs
+++ b/mcs/class/referencesource/mscorlib/system/typedreference.cs
@@ -17,7 +17,8 @@ namespace System {
using System.Diagnostics.Contracts;
[CLSCompliant(false)]
-[System.Runtime.InteropServices.ComVisible(true)]
+ [System.Runtime.InteropServices.ComVisible(true)]
+ [System.Runtime.Versioning.NonVersionable] // This only applies to field layout
public struct TypedReference
{
#if MONO
diff --git a/mcs/class/referencesource/mscorlib/system/uint16.cs b/mcs/class/referencesource/mscorlib/system/uint16.cs
index 0c8fb083002..90e433962ca 100644
--- a/mcs/class/referencesource/mscorlib/system/uint16.cs
+++ b/mcs/class/referencesource/mscorlib/system/uint16.cs
@@ -66,6 +66,7 @@ namespace System {
return m_value == ((UInt16)obj).m_value;
}
+ [System.Runtime.Versioning.NonVersionable]
public bool Equals(UInt16 obj)
{
return m_value == obj;
diff --git a/mcs/class/referencesource/mscorlib/system/uint32.cs b/mcs/class/referencesource/mscorlib/system/uint32.cs
index e5125ffc1ac..3f79c687a62 100644
--- a/mcs/class/referencesource/mscorlib/system/uint32.cs
+++ b/mcs/class/referencesource/mscorlib/system/uint32.cs
@@ -70,9 +70,6 @@ namespace System {
return 0;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override bool Equals(Object obj) {
if (!(obj is UInt32)) {
return false;
@@ -80,24 +77,19 @@ namespace System {
return m_value == ((UInt32)obj).m_value;
}
+ [System.Runtime.Versioning.NonVersionable]
public bool Equals(UInt32 obj)
{
return m_value == obj;
}
// The absolute value of the int contained.
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override int GetHashCode() {
return ((int) m_value);
}
// The base 10 representation of the number with no extra padding.
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public override String ToString() {
Contract.Ensures(Contract.Result<String>() != null);
return Number.FormatUInt32(m_value, null, NumberFormatInfo.CurrentInfo);
@@ -116,9 +108,6 @@ namespace System {
}
[System.Security.SecuritySafeCritical] // auto-generated
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public String ToString(String format, IFormatProvider provider) {
Contract.Ensures(Contract.Result<String>() != null);
return Number.FormatUInt32(m_value, format, NumberFormatInfo.GetInstance(provider));
@@ -162,9 +151,6 @@ namespace System {
// IConvertible implementation
//
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public TypeCode GetTypeCode() {
return TypeCode.UInt32;
}
@@ -215,9 +201,6 @@ namespace System {
}
/// <internalonly/>
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
ulong IConvertible.ToUInt64(IFormatProvider provider) {
return Convert.ToUInt64(m_value);
}
diff --git a/mcs/class/referencesource/mscorlib/system/uint64.cs b/mcs/class/referencesource/mscorlib/system/uint64.cs
index 43fe1164595..9876e61961c 100644
--- a/mcs/class/referencesource/mscorlib/system/uint64.cs
+++ b/mcs/class/referencesource/mscorlib/system/uint64.cs
@@ -74,6 +74,7 @@ namespace System {
return m_value == ((UInt64)obj).m_value;
}
+ [System.Runtime.Versioning.NonVersionable]
public bool Equals(UInt64 obj)
{
return m_value == obj;
diff --git a/mcs/class/referencesource/mscorlib/system/uintptr.cs b/mcs/class/referencesource/mscorlib/system/uintptr.cs
index 32f8cc1f0dc..858a4fd728e 100644
--- a/mcs/class/referencesource/mscorlib/system/uintptr.cs
+++ b/mcs/class/referencesource/mscorlib/system/uintptr.cs
@@ -33,12 +33,14 @@ namespace System {
[System.Security.SecuritySafeCritical] // auto-generated
+ [System.Runtime.Versioning.NonVersionable]
public unsafe UIntPtr(uint value)
{
m_value = (void *)value;
}
[System.Security.SecuritySafeCritical] // auto-generated
+ [System.Runtime.Versioning.NonVersionable]
public unsafe UIntPtr(ulong value)
{
#if WIN32
@@ -50,6 +52,7 @@ namespace System {
[System.Security.SecurityCritical]
[CLSCompliant(false)]
+ [System.Runtime.Versioning.NonVersionable]
public unsafe UIntPtr(void* value)
{
m_value = value;
@@ -92,6 +95,7 @@ namespace System {
}
[System.Security.SecuritySafeCritical] // auto-generated
+ [System.Runtime.Versioning.NonVersionable]
public unsafe uint ToUInt32() {
#if WIN32
return (uint)m_value;
@@ -101,6 +105,7 @@ namespace System {
}
[System.Security.SecuritySafeCritical] // auto-generated
+ [System.Runtime.Versioning.NonVersionable]
public unsafe ulong ToUInt64() {
return (ulong)m_value;
}
@@ -116,17 +121,20 @@ namespace System {
#endif
}
+ [System.Runtime.Versioning.NonVersionable]
public static explicit operator UIntPtr (uint value)
{
return new UIntPtr(value);
}
+ [System.Runtime.Versioning.NonVersionable]
public static explicit operator UIntPtr (ulong value)
{
return new UIntPtr(value);
}
[System.Security.SecuritySafeCritical] // auto-generated
+ [System.Runtime.Versioning.NonVersionable]
public unsafe static explicit operator uint(UIntPtr value)
{
#if WIN32
@@ -137,6 +145,7 @@ namespace System {
}
[System.Security.SecuritySafeCritical] // auto-generated
+ [System.Runtime.Versioning.NonVersionable]
public unsafe static explicit operator ulong (UIntPtr value)
{
return (ulong)value.m_value;
@@ -144,6 +153,7 @@ namespace System {
[System.Security.SecurityCritical]
[CLSCompliant(false)]
+ [System.Runtime.Versioning.NonVersionable]
public static unsafe explicit operator UIntPtr (void* value)
{
return new UIntPtr(value);
@@ -151,13 +161,15 @@ namespace System {
[System.Security.SecurityCritical]
[CLSCompliant(false)]
+ [System.Runtime.Versioning.NonVersionable]
public static unsafe explicit operator void* (UIntPtr value)
{
- return value.ToPointer();
+ return value.m_value;
}
[System.Security.SecuritySafeCritical] // auto-generated
+ [System.Runtime.Versioning.NonVersionable]
public unsafe static bool operator == (UIntPtr value1, UIntPtr value2)
{
return value1.m_value == value2.m_value;
@@ -165,15 +177,18 @@ namespace System {
[System.Security.SecuritySafeCritical] // auto-generated
+ [System.Runtime.Versioning.NonVersionable]
public unsafe static bool operator != (UIntPtr value1, UIntPtr value2)
{
return value1.m_value != value2.m_value;
}
+ [System.Runtime.Versioning.NonVersionable]
public static UIntPtr Add(UIntPtr pointer, int offset) {
return pointer + offset;
}
+ [System.Runtime.Versioning.NonVersionable]
public static UIntPtr operator +(UIntPtr pointer, int offset) {
#if WIN32
return new UIntPtr(pointer.ToUInt32() + (uint)offset);
@@ -182,10 +197,12 @@ namespace System {
#endif
}
+ [System.Runtime.Versioning.NonVersionable]
public static UIntPtr Subtract(UIntPtr pointer, int offset) {
return pointer - offset;
}
+ [System.Runtime.Versioning.NonVersionable]
public static UIntPtr operator -(UIntPtr pointer, int offset) {
#if WIN32
return new UIntPtr(pointer.ToUInt32() - (uint)offset);
@@ -196,6 +213,7 @@ namespace System {
public static int Size
{
+ [System.Runtime.Versioning.NonVersionable]
get
{
#if WIN32
@@ -208,6 +226,7 @@ namespace System {
[System.Security.SecuritySafeCritical] // auto-generated
[CLSCompliant(false)]
+ [System.Runtime.Versioning.NonVersionable]
public unsafe void* ToPointer()
{
return m_value;
diff --git a/mcs/class/referencesource/mscorlib/system/version.cs b/mcs/class/referencesource/mscorlib/system/version.cs
index 9d9eedcf9b5..ccd87d0cae6 100644
--- a/mcs/class/referencesource/mscorlib/system/version.cs
+++ b/mcs/class/referencesource/mscorlib/system/version.cs
@@ -15,6 +15,7 @@
namespace System {
using System.Diagnostics.Contracts;
+ using System.Text;
using CultureInfo = System.Globalization.CultureInfo;
using NumberStyles = System.Globalization.NumberStyles;
@@ -36,6 +37,7 @@ namespace System {
private int _Minor;
private int _Build = -1;
private int _Revision = -1;
+ private static readonly char[] SeparatorsArray = new char[] { '.' };
public Version(int major, int minor, int build, int revision) {
if (major < 0)
@@ -280,29 +282,75 @@ namespace System {
}
public String ToString(int fieldCount) {
+ StringBuilder sb;
switch (fieldCount) {
case 0:
return(String.Empty);
case 1:
- return(String.Concat(_Major));
- case 2:
- return(String.Concat(_Major,".",_Minor));
+ return(_Major.ToString());
+ case 2:
+ sb = StringBuilderCache.Acquire();
+ AppendPositiveNumber(_Major, sb);
+ sb.Append('.');
+ AppendPositiveNumber(_Minor, sb);
+ return StringBuilderCache.GetStringAndRelease(sb);
default:
if (_Build == -1)
throw new ArgumentException(Environment.GetResourceString("ArgumentOutOfRange_Bounds_Lower_Upper", "0", "2"), "fieldCount");
+
if (fieldCount == 3)
- return( _Major + "." + _Minor + "." + _Build );
+ {
+ sb = StringBuilderCache.Acquire();
+ AppendPositiveNumber(_Major, sb);
+ sb.Append('.');
+ AppendPositiveNumber(_Minor, sb);
+ sb.Append('.');
+ AppendPositiveNumber(_Build, sb);
+ return StringBuilderCache.GetStringAndRelease(sb);
+ }
if (_Revision == -1)
throw new ArgumentException(Environment.GetResourceString("ArgumentOutOfRange_Bounds_Lower_Upper", "0", "3"), "fieldCount");
if (fieldCount == 4)
- return( Major + "." + _Minor + "." + _Build + "." + _Revision );
+ {
+ sb = StringBuilderCache.Acquire();
+ AppendPositiveNumber(_Major, sb);
+ sb.Append('.');
+ AppendPositiveNumber(_Minor, sb);
+ sb.Append('.');
+ AppendPositiveNumber(_Build, sb);
+ sb.Append('.');
+ AppendPositiveNumber(_Revision, sb);
+ return StringBuilderCache.GetStringAndRelease(sb);
+ }
throw new ArgumentException(Environment.GetResourceString("ArgumentOutOfRange_Bounds_Lower_Upper", "0", "4"), "fieldCount");
}
}
+ //
+ // AppendPositiveNumber is an optimization to append a number to a StringBuilder object without
+ // doing any boxing and not even creating intermediate string.
+ // Note: as we always have positive numbers then it is safe to convert the number to string
+ // regardless of the current culture as we’ll not have any punctuation marks in the number
+ //
+ private const int ZERO_CHAR_VALUE = (int) '0';
+ private static void AppendPositiveNumber(int num, StringBuilder sb)
+ {
+ Contract.Assert(num >= 0, "AppendPositiveNumber expect positive numbers");
+
+ int index = sb.Length;
+ int reminder;
+
+ do
+ {
+ reminder = num % 10;
+ num = num / 10;
+ sb.Insert(index, (char)(ZERO_CHAR_VALUE + reminder));
+ } while (num > 0);
+ }
+
public static Version Parse(string input) {
if (input == null) {
throw new ArgumentNullException("input");
@@ -333,7 +381,7 @@ namespace System {
return false;
}
- String[] parsedComponents = version.Split(new char[] { '.' });
+ String[] parsedComponents = version.Split(SeparatorsArray);
int parsedComponentsLength = parsedComponents.Length;
if ((parsedComponentsLength < 2) || (parsedComponentsLength > 4)) {
result.SetFailure(ParseFailureKind.ArgumentException);
diff --git a/mcs/class/referencesource/mscorlib/system/weakreferenceoft.cs b/mcs/class/referencesource/mscorlib/system/weakreferenceoft.cs
index 2ced889c80b..5d945816d83 100644
--- a/mcs/class/referencesource/mscorlib/system/weakreferenceoft.cs
+++ b/mcs/class/referencesource/mscorlib/system/weakreferenceoft.cs
@@ -64,14 +64,7 @@ namespace System
// if (ref.Target != null)
// DoSomething(ref.Target)
//
-#if !FEATURE_CORECLR
- // It is important for JIT to inline this method to avoid cost of write barrier for out T target argument.
- //
[MethodImplAttribute(MethodImplOptions.AggressiveInlining)]
-#endif
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public bool TryGetTarget(out T target)
{
// Call the worker method that has more performant but less user friendly signature.
@@ -80,9 +73,6 @@ namespace System
return o != null;
}
-#if !FEATURE_CORECLR
- [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
-#endif
public void SetTarget(T target)
{
this.Target = target;